2.3 KiB
2.3 KiB
65. 동적 인텐트 UI 갱신 및 로직 보강
목적
적에게 '무장 해제(Disarmed)'와 같은 상태 이상이 적용되거나 해제될 때, UI에 표시되는 적의 행동 예고(인텐트) 값이 실시간으로 변경되도록 시스템을 개선합니다. 이를 통해 플레이어는 더 정확한 정보를 바탕으로 전략적인 결정을 내릴 수 있습니다.
주요 변경 사항
1. 동적 인텐트 재계산 로직 추가 (BattleProvider)
updateEnemyIntent()메서드를 추가하여, 현재 적의 능력치(totalAtk,totalDefense)를 기준으로 인텐트의 공격 값이나 방어 값을 다시 계산하는 기능을 구현했습니다.- 이 메서드는 기존 인텐트의
risk와type은 유지하면서, 변경된 스탯에 따른 결과 값만 갱신하여 UI에 즉시 반영합니다.
2. 인텐트 UI 갱신 트리거 추가
- 플레이어 공격 시: 플레이어의 공격으로 적에게 상태 이상이 적용되는 시점(
_processAttackImpact내부)에updateEnemyIntent()를 호출하여, UI의 인텐트 값이 즉시 변경되도록 했습니다. (예: '무장 해제' 적용 시 데미지 수치 감소) - 턴 시작 시: 플레이어 턴이 시작될 때(
_startPlayerTurn내부)에도updateEnemyIntent()를 호출하여, 만료된 상태 이상 효과가 인텐트 값에 반영되도록 했습니다.
3. 상태 이상 처리 로직 보강
- 적의 턴이 끝나는 시점(
_endEnemyTurn내부)에enemy.updateStatusEffects()를 호출하도록 추가했습니다. - 이를 통해 적의 상태 이상 지속시간이 매 턴 정확하게 감소하며, 다음 턴의 인텐트가 가장 최신 상태를 기준으로 생성되도록 보장합니다.
4. CombatCalculator 리팩토링
getEfficiency헬퍼 메서드를 추가하여, 행동 타입과 위험도에 따른 효율 계수를 가져오는 로직을 중앙화하고 코드 중복을 제거했습니다.
기대 효과
- 플레이어는 적의 상태 변화(버프/디버프)가 적의 다음 행동에 미치는 영향을 UI를 통해 직관적으로 확인할 수 있습니다.
- 전투 정보의 투명성이 향상되어 게임의 전략적 깊이가 더해집니다.
- 상태 이상 시스템과 전투 로직의 일관성 및 안정성이 강화됩니다.