game/prompt/34_battle_screen_refactor.md

1.6 KiB

배틀 화면 위젯 리팩토링

목표

UI 컴포넌트를 별도의 위젯으로 추출하여 BattleScreen의 코드 유지보수성, 가독성 및 구조를 개선합니다.

변경 사항

  1. 디렉토리 구조:

    • lib/widgets/battle/ 디렉토리를 생성했습니다.
  2. 추출된 위젯:

    • CharacterStatusCard (lib/widgets/battle/character_status_card.dart): 캐릭터 스탯(HP, 방어도, 공격력, 방어력), 체력 바, 상태 효과 및 의도를 표시합니다.
    • BattleLogOverlay (lib/widgets/battle/battle_log_overlay.dart): 스크롤 가능한 배틀 로그 목록을 표시합니다.
    • FloatingBattleTexts (lib/widgets/battle/floating_battle_texts.dart): 애니메이션 시각 효과를 위한 FloatingDamageText, FloatingEffect, FloatingFeedbackText를 포함합니다.
    • StageUI (lib/widgets/battle/stage_ui.dart): 비전투 스테이지를 위한 ShopUIRestUI를 포함합니다.
  3. BattleScreen 업데이트:

    • 추출된 위젯을 임포트하고 사용하도록 lib/screens/battle_screen.dart를 리팩토링했습니다.
    • 인라인 위젯 빌드 메서드(_buildCharacterStatus, _buildShopUI, _buildRestUI 등)와 내부 클래스(_FloatingDamageText 등)를 제거했습니다.

이점

  • 복잡도 감소: BattleScreen은 이제 레이아웃과 상태 관리에 집중합니다.
  • 재사용성: 위젯은 필요에 따라 앱의 다른 부분에서 재사용할 수 있습니다.
  • 유지보수성: 특정 UI 요소를 찾고 수정하기가 더 쉬워졌습니다.