game/prompt/55_fix_shop_ui_sync.md

1.1 KiB

57. 상점 구매 UI 동기화 버그 수정 (Fix Shop Purchase UI Sync Bug)

1. 목표 (Goal)

  • 상점에서 아이템 구매 성공 시, 인벤토리 및 골드 상태 변화가 UI에 즉시 반영되지 않는 문제를 해결합니다.
  • ShopProviderBattleProvider 소유의 player 객체를 수정했을 때, BattleProvider를 구독하는 위젯들이 갱신되도록 강제합니다.

2. 구현 상세 (Implementation Details)

BattleProvider

  • refreshUI() 메서드 추가: 단순히 notifyListeners()를 호출하여 BattleProvider의 상태 변경을 알리는 public 메서드.

ShopUI

  • _showBuyConfirmation 수정:
    • shopProvider.buyItem 호출 후 성공(true) 시, battleProvider.refreshUI()를 호출.
    • 이를 통해 InventoryScreen이나 상단 바의 골드 표시 등 BattleProvider를 구독하는 모든 UI가 재빌드되어, 변경된 인벤토리와 골드 상태를 즉시 반영.

3. 결과 (Result)

  • 상점 구매 직후 인벤토리에 아이템이 정상적으로 표시되고, 소모된 골드가 UI에 즉시 업데이트됩니다.