52 lines
2.0 KiB
C#
52 lines
2.0 KiB
C#
|
|
using Platformer.Core;
|
||
|
|
|
||
|
|
namespace EerieVillage.Skills
|
||
|
|
{
|
||
|
|
/// <summary>
|
||
|
|
/// 스킬 발동 이벤트. Simulation.Event<T> 계승.
|
||
|
|
/// ActiveSkillRuntime.Fire()에서 Simulation.Schedule<SkillFireEvent>() 호출.
|
||
|
|
/// BT12-Dev v1 §3-4 정합.
|
||
|
|
///
|
||
|
|
/// Phase 2-A: Execute = stub (카테고리 분기 구조만 명시).
|
||
|
|
/// Phase 2-B: 카테고리별 실 발동기 (ProjectileSpawner·AttackHitbox 등) 연결 예정.
|
||
|
|
/// </summary>
|
||
|
|
public class SkillFireEvent : Simulation.Event<SkillFireEvent>
|
||
|
|
{
|
||
|
|
/// <summary>발동 요청한 액티브 스킬 런타임</summary>
|
||
|
|
public ActiveSkillRuntime Runtime;
|
||
|
|
|
||
|
|
/// <summary>플레이어 스킬 인벤토리 (Stats·위치·방향 조회 경로)</summary>
|
||
|
|
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;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|