diff --git a/Assets/Resources/Skills/Active/A08_jeoju_hwasal.asset b/Assets/Resources/Skills/Active/A08_jeoju_hwasal.asset index e469c6c..d0c2f6c 100644 --- a/Assets/Resources/Skills/Active/A08_jeoju_hwasal.asset +++ b/Assets/Resources/Skills/Active/A08_jeoju_hwasal.asset @@ -28,7 +28,7 @@ MonoBehaviour: BaseCooldown: 0.8 BaseDamage: 2 HitboxSize: {x: 1.5, y: 0.6} - OffsetDistance: {x: 1.5, y: 0} + OffsetDistance: {x: 0, y: 0} Trajectory: 0 MinionPrefab: {fileID: 0} ChainCount: 0 @@ -54,9 +54,9 @@ MonoBehaviour: OnHitFxPrefab: {fileID: 7053558978182834975, guid: aaba98a2ef6fecc46be2d3f1d41f9c75, type: 3} ExtraHitFxPrefab: {fileID: 0} - CastFxPrefab: {fileID: 9207792929607053519, guid: cab9ba2d706d3c04dab2b559425bac6a, - type: 3} + CastFxPrefab: {fileID: 0} ProjectileAngleOffset: 180 + TargetEnemyOnFire: 1 OnDotFxPrefab: {fileID: 0} DotDamageMultiplier: 0.25 ProjectileFxScale: 1 diff --git a/Assets/Scripts/Skills/Data/ActiveSkillData.cs b/Assets/Scripts/Skills/Data/ActiveSkillData.cs index 7fea5a2..c232b81 100644 --- a/Assets/Scripts/Skills/Data/ActiveSkillData.cs +++ b/Assets/Scripts/Skills/Data/ActiveSkillData.cs @@ -115,6 +115,10 @@ namespace EerieVillage.Skills [Range(-360f, 360f)] public float ProjectileAngleOffset = 0f; + // PD 지시 2026-05-14 — 발사 시점 가장 가까운 적 방향 영역 자동 조준 (예: A08 저주의 화살) + [Tooltip("true 시 발사 시점 가장 가까운 적 위치 방향으로 발사. 적 0명 시 PlayerController.Facing fallback.")] + public bool TargetEnemyOnFire = false; + [Tooltip("DoT 적용 시 적 자식으로 Instantiate 되는 ParticleSystem prefab")] public GameObject OnDotFxPrefab; diff --git a/Assets/Scripts/Skills/Effectors/ProjectileSpawner.cs b/Assets/Scripts/Skills/Effectors/ProjectileSpawner.cs index 3e8daee..07f7ab5 100644 --- a/Assets/Scripts/Skills/Effectors/ProjectileSpawner.cs +++ b/Assets/Scripts/Skills/Effectors/ProjectileSpawner.cs @@ -28,6 +28,28 @@ namespace EerieVillage.Skills.Effectors // PD 지시 2026-05-13 — 게임 시작 시 Player.Facing=(0,0) 영역 fallback (정지·잔존 투사체 차단) if (facing.sqrMagnitude < 0.01f) facing = Vector2.right; + // PD 지시 2026-05-14 — TargetEnemyOnFire 영역 가장 가까운 적 방향 영역 발사 (A08 저주의 화살 등) + if (data.TargetEnemyOnFire) + { + Vector2 playerPos2 = playerTransform.position; + EnemyController nearest = null; + float minDist = float.MaxValue; + var enemies = Object.FindObjectsByType(FindObjectsSortMode.None); + foreach (var e in enemies) + { + if (e == null) continue; + var h = e.GetComponent(); + if (h == null || !h.IsAlive) continue; + float d = Vector2.Distance(playerPos2, e.transform.position); + if (d < minDist) { minDist = d; nearest = e; } + } + if (nearest != null) + { + Vector2 toEnemy = (Vector2)nearest.transform.position - playerPos2; + if (toEnemy.sqrMagnitude > 0.01f) facing = toEnemy.normalized; + } + } + // PD 정합 2026-05-13 — OffsetDistance.x = facing 방향 거리·OffsetDistance.y = 직각 거리·OffsetXY = 이펙트 절대 Vector2 perpDir = new Vector2(-facing.y, facing.x); Vector2 spawnPos = (Vector2)playerTransform.position