feat: 보스 패턴 페이즈 제한을 애셋 기반 minPhase로 통합

- BossPatternData에 minPhase 필드 추가 (기본값 1, Inspector 설정 가능)
- BossCombatBehaviorContext의 signatureMinPhase를 minPhase로 대체
- IsPatternReady와 CheckPatternReadyActionBase에 Phase 체크 통합
- BT 경로와 Update 경로 모두 일관되게 Phase 제한 적용
- 집행개시 패턴 minPhase=3, 점프 패턴 minPhase=2 설정
This commit is contained in:
2026-03-28 15:13:14 +09:00
parent 2bc5241ff1
commit 77accc4150
5 changed files with 19 additions and 9 deletions

View File

@@ -91,9 +91,6 @@ namespace Colosseum.Enemy
[Min(1)] [SerializeField] protected int phase3SecondaryInterval = 2;
[Header("Signature Pattern")]
[Tooltip("시그니처 패턴을 사용하기 시작하는 최소 페이즈")]
[Min(1)] [SerializeField] protected int signatureMinPhase = 2;
[Tooltip("시그니처 패턴 차단에 필요한 누적 피해 비율")]
[Range(0f, 1f)] [SerializeField] protected float signatureRequiredDamageRatio = 0.1f;
@@ -497,16 +494,13 @@ namespace Colosseum.Enemy
if (IsBehaviorSuppressed)
return false;
if (CurrentPatternPhase < signatureMinPhase)
return false;
if (activePatternCoroutine != null || isSignaturePatternActive)
return false;
if (bossEnemy.IsDead || bossEnemy.IsTransitioning || skillController.IsPlayingAnimation)
return false;
return UsePatternAction.IsPatternReady(gameObject, signaturePattern);
return IsPatternReady(signaturePattern);
}
/// <summary>
@@ -692,6 +686,9 @@ namespace Colosseum.Enemy
if (pattern == null || pattern.Steps == null || pattern.Steps.Count == 0)
return false;
if (CurrentPatternPhase < pattern.MinPhase)
return false;
if (!patternCooldownTracker.TryGetValue(pattern, out float readyTime))
return true;