feat: 플레이어 다운 및 넉백 피격 반응 추가

- HitReactionController로 다운과 넉백 전용 로직을 분리
- 다운 시작, 루프, 회복 애니메이션과 DownEffect를 연결
- 행동 상태와 스킬 취소가 피격 반응과 연동되도록 정리
- 자동 검증 러너에 다운 및 넉백 검증을 추가
This commit is contained in:
2026-03-19 23:35:51 +09:00
parent a65ba77931
commit 9791b11d13
29 changed files with 7108 additions and 55 deletions

View File

@@ -176,9 +176,16 @@ namespace Colosseum.Player
var movement = GetComponent<PlayerMovement>();
if (movement != null)
{
movement.ClearForcedMovement();
movement.enabled = false;
}
var hitReactionController = GetComponent<HitReactionController>();
if (hitReactionController != null)
{
hitReactionController.ClearHitReactionState();
}
// 스킬 입력 비활성화
var skillInput = GetComponent<PlayerSkillInput>();
if (skillInput != null)
@@ -190,7 +197,7 @@ namespace Colosseum.Player
var skillController = GetComponent<SkillController>();
if (skillController != null)
{
skillController.CancelSkill();
skillController.CancelSkill(SkillCancelReason.Death);
}
// 모든 클라이언트에서 사망 애니메이션 재생
@@ -222,9 +229,16 @@ namespace Colosseum.Player
var movement = GetComponent<PlayerMovement>();
if (movement != null)
{
movement.ClearForcedMovement();
movement.enabled = true;
}
var hitReactionController = GetComponent<HitReactionController>();
if (hitReactionController != null)
{
hitReactionController.ClearHitReactionState();
}
// 스킬 입력 재활성화
var skillInput = GetComponent<PlayerSkillInput>();
if (skillInput != null)
@@ -239,6 +253,12 @@ namespace Colosseum.Player
animator.Rebind();
}
var skillController = GetComponent<SkillController>();
if (skillController != null)
{
skillController.CancelSkill(SkillCancelReason.Respawn);
}
OnRespawned?.Invoke(this);
Debug.Log($"[Player] Player {OwnerClientId} respawned!");