game/prompt/65_dynamic_intent_ui_update.md

2.3 KiB

65. 동적 인텐트 UI 갱신 및 로직 보강

목적

적에게 '무장 해제(Disarmed)'와 같은 상태 이상이 적용되거나 해제될 때, UI에 표시되는 적의 행동 예고(인텐트) 값이 실시간으로 변경되도록 시스템을 개선합니다. 이를 통해 플레이어는 더 정확한 정보를 바탕으로 전략적인 결정을 내릴 수 있습니다.

주요 변경 사항

1. 동적 인텐트 재계산 로직 추가 (BattleProvider)

  • updateEnemyIntent() 메서드를 추가하여, 현재 적의 능력치(totalAtk, totalDefense)를 기준으로 인텐트의 공격 값이나 방어 값을 다시 계산하는 기능을 구현했습니다.
  • 이 메서드는 기존 인텐트의 risktype은 유지하면서, 변경된 스탯에 따른 결과 값만 갱신하여 UI에 즉시 반영합니다.

2. 인텐트 UI 갱신 트리거 추가

  • 플레이어 공격 시: 플레이어의 공격으로 적에게 상태 이상이 적용되는 시점(_processAttackImpact 내부)에 updateEnemyIntent()를 호출하여, UI의 인텐트 값이 즉시 변경되도록 했습니다. (예: '무장 해제' 적용 시 데미지 수치 감소)
  • 턴 시작 시: 플레이어 턴이 시작될 때(_startPlayerTurn 내부)에도 updateEnemyIntent()를 호출하여, 만료된 상태 이상 효과가 인텐트 값에 반영되도록 했습니다.

3. 상태 이상 처리 로직 보강

  • 적의 턴이 끝나는 시점(_endEnemyTurn 내부)에 enemy.updateStatusEffects()를 호출하도록 추가했습니다.
  • 이를 통해 적의 상태 이상 지속시간이 매 턴 정확하게 감소하며, 다음 턴의 인텐트가 가장 최신 상태를 기준으로 생성되도록 보장합니다.

4. CombatCalculator 리팩토링

  • getEfficiency 헬퍼 메서드를 추가하여, 행동 타입과 위험도에 따른 효율 계수를 가져오는 로직을 중앙화하고 코드 중복을 제거했습니다.

기대 효과

  • 플레이어는 적의 상태 변화(버프/디버프)가 적의 다음 행동에 미치는 영향을 UI를 통해 직관적으로 확인할 수 있습니다.
  • 전투 정보의 투명성이 향상되어 게임의 전략적 깊이가 더해집니다.
  • 상태 이상 시스템과 전투 로직의 일관성 및 안정성이 강화됩니다.