using Platformer.Core; namespace EerieVillage.Skills { /// /// 스킬 발동 이벤트. Simulation.Event<T> 계승. /// ActiveSkillRuntime.Fire()에서 Simulation.Schedule<SkillFireEvent>() 호출. /// BT12-Dev v1 §3-4 정합. /// /// Phase 2-A: Execute = stub (카테고리 분기 구조만 명시). /// Phase 2-B: 카테고리별 실 발동기 (ProjectileSpawner·AttackHitbox 등) 연결 예정. /// public class SkillFireEvent : Simulation.Event { /// 발동 요청한 액티브 스킬 런타임 public ActiveSkillRuntime Runtime; /// 플레이어 스킬 인벤토리 (Stats·위치·방향 조회 경로) public PlayerSkillInventory Inventory; public override void Execute() { if (Runtime == null) return; // Phase 2-B 카테고리별 실 발동기 호출 예정 영역 // 현재 Phase 2-A = 구조 stub만 배치. // // switch (Runtime.ActiveData.Category) // { // case ActiveCategory.Projectile: // ProjectileSpawner.Spawn(Runtime, Inventory); break; // case ActiveCategory.MeleeArea: // AttackHitbox.Fire(Runtime, Inventory); break; // case ActiveCategory.PlacementPersistent: // AuraZone.Place(Runtime, Inventory); break; // case ActiveCategory.Minion: // MinionSpawner.Spawn(Runtime, Inventory); break; // case ActiveCategory.Debuff: // DebuffApplier.Apply(Runtime, Inventory); break; // case ActiveCategory.SpecialJudge: // SpecialJudgeHandler.Execute(Runtime, Inventory); break; // } } internal override void Cleanup() { Runtime = null; Inventory = null; } } }