# 28. 적 방어도 누적 및 감소 (Enemy Armor Accumulation & Decay)

## 1. 배경 (Background)

사용자는 "적의 방어도 증가 액션도 플레이어와 동일하게 방어도가 누적되는 것"을 원합니다.
현재 적의 방어도는 `_generateEnemyIntent`에서 `+=` 연산자를 통해 누적되도록 수정되었으나(27번 작업), 플레이어와 달리 **턴 시작 시 방어도가 감소(Decay)하는 로직**이 부재합니다.
"플레이어와 동일하게" 동작하려면, 적의 턴이 돌아왔을 때(즉, 플레이어의 공격을 막아낸 후) 남은 방어도가 일부 감소해야 합니다.

## 2. 목표 (Objective)

- **방어도 누적 확인:** `_generateEnemyIntent`에서 `+=`를 사용하여 방어도가 누적됨을 유지.
- **방어도 감소(Decay) 추가:** 적의 턴이 시작될 때(`_enemyTurn` 초입), 적의 현재 방어도를 50% 감소시킵니다. (플레이어 로직과 대칭)

## 3. 작업 상세 (Implementation Details)

### A. 로직 수정 (`lib/providers/battle_provider.dart`)

- `_enemyTurn` 메서드 시작 부분에 방어도 감소 로직 추가:
  ```dart
  // Enemy Turn Start Logic
  // Armor decay
  if (enemy.armor > 0) {
    enemy.armor = (enemy.armor * 0.5).toInt();
    _addLog("Enemy's armor decayed to ${enemy.armor}.");
  }
  ```

### B. UI 수정 (`lib/screens/battle_screen.dart`)

- **적 스탯 표시:** `_buildCharacterStatus` 위젯에서 적(Enemy)인 경우에도 Armor, ATK, DEF 정보를 표시하도록 수정합니다.
  - 기존에는 `if (!isEnemy)` 조건으로 플레이어에게만 표시되었던 부분을 공통으로 표시되도록 변경합니다.

### C. 검증 (Verification)

- **시나리오:**
  1. 적이 방어(예: +10 Armor)를 선택.
  2. 플레이어가 공격하지 않거나 약하게 공격하여 방어도가 남음(예: 10 남음).
  3. 적의 턴이 시작될 때, 방어도가 5(50%)로 감소하는지 로그 및 UI 확인.
  4. 다음 적의 행동이 또 방어라면, 남은 5에 새로운 방어도가 더해지는지 확인.

## 4. 기대 효과

- 플레이어와 적의 방어 메커니즘이 대칭적으로 동작하여 일관성 확보.
- 적이 방어만 계속하여 무한히 단단해지는 것을 방지(밸런스 조절).
