44 lines
1.6 KiB
C#
44 lines
1.6 KiB
C#
|
|
using UnityEngine;
|
||
|
|
|
||
|
|
namespace EerieVillage.Skills
|
||
|
|
{
|
||
|
|
/// <summary>
|
||
|
|
/// 액티브 스킬 런타임 계약. 주기·이벤트 트리거로 효과 발동.
|
||
|
|
/// BT12-Dev v1 §2-1 정합.
|
||
|
|
/// </summary>
|
||
|
|
public interface IActiveSkill : ISkillRuntime
|
||
|
|
{
|
||
|
|
/// <summary>기본 쿨다운(초). balance/01 v0.2 BaseCooldown 1.5s 기반</summary>
|
||
|
|
float BaseCooldown { get; }
|
||
|
|
|
||
|
|
/// <summary>패시브 보정 후 실제 쿨다운 (연사술 P06 적용 결과)</summary>
|
||
|
|
float EffectiveCooldown { get; }
|
||
|
|
|
||
|
|
/// <summary>현재 Cooldown 타이머(초). MonoBehaviour Update가 감산</summary>
|
||
|
|
float CooldownRemaining { get; }
|
||
|
|
|
||
|
|
/// <summary>쿨다운 경과 또는 트리거 이벤트 시 호출. 효과 발동 Dispatch</summary>
|
||
|
|
void Fire();
|
||
|
|
|
||
|
|
/// <summary>트리거 이벤트 구독 — OnHit·OnKill·OnTime 중 해당</summary>
|
||
|
|
ActiveTrigger Trigger { get; }
|
||
|
|
|
||
|
|
/// <summary>PlayerSkillInventory.Update가 매 프레임 호출. OnTime 트리거 타이머 감산</summary>
|
||
|
|
void Tick(float deltaTime);
|
||
|
|
}
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
/// 액티브 발동 트리거 분류 — 카테고리·카드에 따라 결정.
|
||
|
|
/// BT12-Dev v1 §2-1 정합.
|
||
|
|
/// </summary>
|
||
|
|
public enum ActiveTrigger
|
||
|
|
{
|
||
|
|
/// <summary>주기 타이머 (카테고리 A·B·C·D·E 기본)</summary>
|
||
|
|
OnTime,
|
||
|
|
/// <summary>플레이어 피격 시 (카테고리 F·P11 호신부 등)</summary>
|
||
|
|
OnHit,
|
||
|
|
/// <summary>적 처치 시 (P16 단전수련 등 패시브도 동일 enum 재사용)</summary>
|
||
|
|
OnKill
|
||
|
|
}
|
||
|
|
}
|