namespace EerieVillage.Skills { /// /// 패시브 스킬 런타임 계약. 장착 즉시 상시 적용 + 일부는 조건부 트리거. /// BT12-Dev v1 §2-1 정합. /// public interface IPassiveSkill : ISkillRuntime { /// 상시 적용 여부 (true = 장착 즉시 효과 · false = 조건부) bool IsAlwaysOn { get; } /// /// 장착·해제·Lv 업 시 인벤토리의 PlayerStats에 보정값 반영. /// 스탯 상승형(P-A)·주기 단축(P-B)·생존 강화(P-C)·자원 확장(P-E)은 모두 이 경로. /// void ApplyModifier(PlayerStats stats); /// 해제 시 보정값 원복 void RemoveModifier(PlayerStats stats); /// /// 조건부 패시브(P11 호신부·P16 단전수련 등) 전용. /// OnPlayerDamaged·OnEnemyKilled·OnTimer 이벤트 구독 후 조건 충족 시 효과 발동. /// void OnTrigger(PassiveTriggerContext ctx); } /// 패시브 조건부 트리거 컨텍스트. BT12-Dev v1 §2-1 정합. public struct PassiveTriggerContext { public PassiveTriggerKind Kind; /// OnPlayerDamaged 전용 public float DamageTaken; /// OnEnemyKilled 전용 (누적) public int KillCount; /// OnTimer 전용 public float TimeElapsed; } /// 패시브 트리거 종류. BT12-Dev v1 §2-1 정합. public enum PassiveTriggerKind { OnPlayerDamaged, OnEnemyKilled, OnTimer } }