feat: 젬 테스트 경로 및 보스 기절 디버그 추가

- 다중 젬 슬롯용 타입을 별도 스크립트로 분리하고 테스트 젬/로드아웃 자산 생성 경로를 정리

- 젬 테스트 전용 공격 스킬과 분리된 애니메이션 자산을 추가해 베이스 스킬 검증 경로를 마련

- PlayerSkillDebugMenu와 MPP 디버그 메뉴를 보강해 젬 프리셋 적용, 원격 테스트, 보스 기절 디버그 메뉴를 추가

- BossCombatBehaviorContext와 공통 BT 액션이 기절 상태를 존중하도록 수정해 보스 추적과 패턴 실행을 중단

- Unity 리프레시와 외부 빌드 통과를 확인하고 드로그전 및 MPP 기준 젬 프리셋 적용 흐름을 검증
This commit is contained in:
2026-03-25 18:38:12 +09:00
parent 35a5b272cb
commit 24b284ad7e
39 changed files with 4443 additions and 463 deletions

View File

@@ -27,6 +27,7 @@ namespace Colosseum.Enemy
[SerializeField] protected BossEnemy bossEnemy;
[SerializeField] protected EnemyBase enemyBase;
[SerializeField] protected SkillController skillController;
[SerializeField] protected AbnormalityManager abnormalityManager;
[SerializeField] protected UnityEngine.AI.NavMeshAgent navMeshAgent;
[SerializeField] protected BehaviorGraphAgent behaviorGraphAgent;
@@ -192,6 +193,11 @@ namespace Colosseum.Enemy
/// </summary>
public bool DebugModeEnabled => debugMode;
/// <summary>
/// 기절 등으로 인해 보스 전투 로직을 진행할 수 없는 상태인지 여부
/// </summary>
public bool IsBehaviorSuppressed => abnormalityManager != null && abnormalityManager.IsStunned;
/// <summary>
/// 현재 보스 패턴 페이즈
/// </summary>
@@ -238,6 +244,12 @@ namespace Colosseum.Enemy
if (bossEnemy.IsDead || bossEnemy.IsTransitioning)
return;
if (IsBehaviorSuppressed)
{
StopMovement();
return;
}
if (!disableBehaviorGraph)
return;
@@ -468,6 +480,9 @@ namespace Colosseum.Enemy
if (!IsServer || bossEnemy == null || skillController == null)
return false;
if (IsBehaviorSuppressed)
return false;
if (CurrentPatternPhase < signatureMinPhase)
return false;
@@ -699,6 +714,9 @@ namespace Colosseum.Enemy
if (skillController == null)
skillController = GetComponent<SkillController>();
if (abnormalityManager == null)
abnormalityManager = GetComponent<AbnormalityManager>();
if (navMeshAgent == null)
navMeshAgent = GetComponent<UnityEngine.AI.NavMeshAgent>();