diff --git a/Assets/Scripts/Skills/Effectors/LightningStrikeSpawner.cs b/Assets/Scripts/Skills/Effectors/LightningStrikeSpawner.cs index 402646f..a1c8af0 100644 --- a/Assets/Scripts/Skills/Effectors/LightningStrikeSpawner.cs +++ b/Assets/Scripts/Skills/Effectors/LightningStrikeSpawner.cs @@ -43,13 +43,19 @@ namespace EerieVillage.Skills.Effectors if (p.x < xMin || p.x > xMax || p.y < yMin || p.y > yMax) continue; candidates.Add(e); } - if (candidates.Count == 0) return; - - // 2. 임의 1기 선택 (Primary target) - var primary = candidates[Random.Range(0, candidates.Count)]; + // PD 지시 2026-05-13 — 적 유무 관계 없이 일정 쿨타임 자동 발동. candidates 영역 0 시 Player 위치 영역 fallback. + Vector2 primaryPos; + if (candidates.Count > 0) + { + primaryPos = candidates[Random.Range(0, candidates.Count)].transform.position; + } + else + { + primaryPos = (Vector2)inventory.transform.position; + } // PD 정합 2026-05-13 — OffsetDistance = (X, Y) 절대 오프셋·OffsetXY = 이펙트만 - Vector2 hitboxPos = (Vector2)primary.transform.position + data.OffsetDistance; - Vector2 fxPos = (Vector2)primary.transform.position + data.OffsetXY; + Vector2 hitboxPos = primaryPos + data.OffsetDistance; + Vector2 fxPos = primaryPos + data.OffsetXY; // 3. 이펙트 spawn (data.OnHitFxPrefab — FX_Thunder) + 총 lifetime 측정 float fxTotalLifetime = 1f;