feat: 보스 공통 패턴 간격 추가
- BossBehaviorRuntimeState에 패턴 종료 후 공통 텀과 준비 판정을 추가\n- UsePatternAction이 런타임 패턴 실행 결과와 공통 텀을 함께 사용하도록 정리\n- 드로그 PlayMode 테스트에 패턴 종료 후 공통 간격 검증 케이스를 추가
This commit is contained in:
@@ -283,6 +283,44 @@ namespace Colosseum.Tests
|
||||
"상위 기본기들이 쿨다운이어도 콤보-기본기1로 폴백하지 않았습니다.");
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator Phase1_AfterPatternEnds_WaitsForCommonPatternInterval()
|
||||
{
|
||||
const float commonPatternInterval = 1.2f;
|
||||
|
||||
yield return ResetBossAndPlayerState(phase: 1, phaseElapsedTime: 0f, basicLoopCount: 0);
|
||||
SetRuntimeField("commonPatternInterval", commonPatternInterval);
|
||||
SetPlayerOffset(2f);
|
||||
ResumeBehavior();
|
||||
|
||||
yield return WaitForCondition(
|
||||
() => runtimeState.LastExecutedPattern != null
|
||||
&& runtimeState.LastPatternExecutionResult == BossPatternExecutionResult.Running,
|
||||
DefaultTimeout,
|
||||
"첫 패턴 시작을 확인하지 못했습니다.");
|
||||
|
||||
BossPatternData firstPattern = runtimeState.LastExecutedPattern;
|
||||
|
||||
yield return WaitForCondition(
|
||||
() => runtimeState.LastPatternExecutionResult != BossPatternExecutionResult.Running,
|
||||
LongPatternTimeout,
|
||||
"첫 패턴 종료를 확인하지 못했습니다.");
|
||||
|
||||
Assert.AreSame(firstPattern, runtimeState.LastExecutedPattern, "첫 패턴 종료 전에 다른 패턴이 시작되었습니다.");
|
||||
|
||||
yield return new WaitForSeconds(commonPatternInterval * 0.5f);
|
||||
|
||||
Assert.AreNotEqual(
|
||||
BossPatternExecutionResult.Running,
|
||||
runtimeState.LastPatternExecutionResult,
|
||||
"공통 텀 전에 다음 패턴이 시작되었습니다.");
|
||||
|
||||
yield return WaitForCondition(
|
||||
() => runtimeState.LastPatternExecutionResult == BossPatternExecutionResult.Running,
|
||||
commonPatternInterval,
|
||||
"공통 텀 이후 다음 패턴이 다시 시작되지 않았습니다.");
|
||||
}
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator Phase3_After90Seconds_ReusesSignature()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user