game/prompt/41_refactoring_presets.md

2.3 KiB

41. Refactoring: Presets & Configs (리팩토링: 설정 중앙화)

개요 (Overview)

프로젝트 전반에 산재되어 있던 하드코딩된 값들(색상, 아이콘, 애니메이션 시간 등)을 중앙 집중식 설정 파일(Config)로 분리하여 유지보수성과 일관성을 향상시켰습니다.

변경 사항 (Changes)

1. 설정 파일 생성 (New Config Files)

lib/game/config/ 디렉토리에 다음 파일들을 생성했습니다.

  • battle_config.dart: 전투 관련 아이콘, 색상, 크기 정의 (공격/방어, 리스크 레벨별).
  • theme_config.dart: UI 전반의 색상 테마 정의.
    • Stat Colors: HP(Player/Enemy), ATK, DEF, LUCK, Gold 등.
    • UI Colors: 카드 배경, 텍스트(White/Grey), 등급별 색상 등.
    • Feedback Colors: 데미지, 회복, 미스 텍스트 색상 및 그림자.
    • Effect Colors: 상태이상 배지 배경 및 텍스트.
  • animation_config.dart: 애니메이션 관련 상수 정의.
    • Durations: Floating Text(1000ms), Fade(200ms), Attack(Risk Level별 상이).
    • Curves: easeOut, elasticOut, elasticIn 등 애니메이션 커브.

2. 코드 리팩토링 (Refactoring)

기존 하드코딩된 값을 Config 클래스의 상수로 대체했습니다.

  • lib/screens/battle_screen.dart:
    • BattleConfig를 사용하여 공격/방어 아이콘 및 이펙트 색상 결정.
  • lib/widgets/battle/character_status_card.dart:
    • ThemeConfig를 사용하여 HP/Armor/Stat 텍스트 및 게이지 색상 적용.
    • AnimationConfig를 사용하여 스탯 숨김/표시 Fade 애니메이션 시간 적용.
  • lib/widgets/battle/floating_battle_texts.dart:
    • ThemeConfig를 사용하여 데미지 텍스트 그림자 색상 적용.
    • AnimationConfig를 사용하여 텍스트 부양 및 아이콘 스케일 애니메이션의 시간과 커브 적용.

기대 효과 (Benefits)

  • 유지보수 용이성: 색상이나 애니메이션 속도를 변경할 때 단일 파일만 수정하면 프로젝트 전체에 일괄 적용됩니다.
  • 일관성 유지: UI 요소 간의 색상 및 동작 통일성을 보장합니다.
  • 확장성: 추후 '다크 모드'나 '테마 변경', '게임 속도 조절' 등의 기능을 구현하기 위한 기반이 마련되었습니다.