feat: 회피 상태와 스킬 시작 판정 분리
- CanEvade를 제거하고 IsEvading 상태와 CanStartSkill 판정으로 정리 - 침묵 중 회피 상태 유지와 회피 스킬 차단 규칙을 반영 - 자동 검증 러너와 디버그 HUD에 회피 상호작용 검증을 추가
This commit is contained in:
@@ -55,6 +55,12 @@ namespace Colosseum.Player
|
||||
/// </summary>
|
||||
public SkillData CurrentSkill => skillController != null ? skillController.CurrentSkill : null;
|
||||
|
||||
/// <summary>
|
||||
/// 현재 시전 중인 스킬이 회피 스킬일 때의 회피 상태 여부.
|
||||
/// 침묵은 회피 상태 자체를 끊지 않으며, 회피 스킬의 신규 사용만 막습니다.
|
||||
/// </summary>
|
||||
public bool IsEvading => IsCastingSkill && CurrentSkill != null && CurrentSkill.IsEvadeSkill;
|
||||
|
||||
/// <summary>
|
||||
/// 입력을 받아도 되는지 여부
|
||||
/// </summary>
|
||||
@@ -71,14 +77,27 @@ namespace Colosseum.Player
|
||||
public bool CanJump => CanReceiveInput && !IsStunned && !BlocksJumpForCurrentSkill();
|
||||
|
||||
/// <summary>
|
||||
/// 스킬 사용 가능 여부
|
||||
/// 일반 스킬 시작 가능 여부
|
||||
/// </summary>
|
||||
public bool CanUseSkills => CanReceiveInput && !IsStunned && !IsSilenced && !BlocksSkillUseForCurrentSkill();
|
||||
public bool CanUseSkills => CanReceiveInput && !IsStunned && !IsSilenced && !IsEvading && !BlocksSkillUseForCurrentSkill();
|
||||
|
||||
/// <summary>
|
||||
/// 회피 사용 가능 여부
|
||||
/// 특정 스킬의 시작 가능 여부.
|
||||
/// 회피 스킬도 일반 스킬과 같은 시작 판정을 사용하되, 현재 시전 중인 스킬의 회피 차단 정책을 따릅니다.
|
||||
/// </summary>
|
||||
public bool CanEvade => CanReceiveInput && !IsStunned && !IsSilenced && !BlocksEvadeForCurrentSkill();
|
||||
public bool CanStartSkill(SkillData skill)
|
||||
{
|
||||
if (skill == null)
|
||||
return false;
|
||||
|
||||
if (!CanReceiveInput || IsStunned || IsSilenced || IsEvading)
|
||||
return false;
|
||||
|
||||
if (skill.IsEvadeSkill)
|
||||
return !BlocksEvadeForCurrentSkill();
|
||||
|
||||
return !BlocksSkillUseForCurrentSkill();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 현재 이동 속도 배율
|
||||
|
||||
Reference in New Issue
Block a user