feat: 스킬별 행동 제한 정책 추가

- SkillData에 시전 중 이동, 점프, 추가 스킬 사용 제한 옵션을 추가
- PlayerActionState가 현재 스킬 정책을 읽어 행동 가능 여부를 계산하도록 변경
- 스킬 입력이 공통 행동 판정 규칙을 따르도록 정리
This commit is contained in:
2026-03-19 18:34:02 +09:00
parent 5bedf01d6c
commit 975dea8b93
3 changed files with 75 additions and 8 deletions

View File

@@ -31,6 +31,16 @@ namespace Colosseum.Skills
[Tooltip("스킬 시전 시 대상 위치로 점프 이동 (UseRootMotion + IgnoreRootMotionY=false 필요)")]
[SerializeField] private bool jumpToTarget = false;
[Header("행동 제한")]
[Tooltip("시전 중 이동 입력 차단 여부")]
[SerializeField] private bool blockMovementWhileCasting = true;
[Tooltip("시전 중 점프 입력 차단 여부")]
[SerializeField] private bool blockJumpWhileCasting = true;
[Tooltip("시전 중 다른 스킬 입력 차단 여부")]
[SerializeField] private bool blockOtherSkillsWhileCasting = true;
[Tooltip("시전 중 회피 입력 차단 여부")]
[SerializeField] private bool blockEvadeWhileCasting = true;
[Header("쿨타임 & 비용")]
[Min(0f)] [SerializeField] private float cooldown = 1f;
[Min(0f)] [SerializeField] private float manaCost = 0f;
@@ -51,6 +61,10 @@ namespace Colosseum.Skills
public bool UseRootMotion => useRootMotion;
public bool IgnoreRootMotionY => ignoreRootMotionY;
public bool JumpToTarget => jumpToTarget;
public bool BlockMovementWhileCasting => blockMovementWhileCasting;
public bool BlockJumpWhileCasting => blockJumpWhileCasting;
public bool BlockOtherSkillsWhileCasting => blockOtherSkillsWhileCasting;
public bool BlockEvadeWhileCasting => blockEvadeWhileCasting;
public IReadOnlyList<SkillEffect> Effects => effects;
}
}