feat(phase7): 고정 4색 팔레트 시스템 적용
- ascii_colors.dart 생성 - 흰색(object): 캐릭터, 몬스터, 아이템 - 시안(positive): 힐, 버프, 레벨업, 획득 - 마젠타(negative): 데미지, 디버프, 사망, 손실 - 검정(background): 배경 - 테마 선택 기능 제거 - AsciiAnimationCard: colorTheme 파라미터 제거, 고정 색상 사용 - TaskProgressPanel: 테마 버튼 제거 - GamePlayScreen: 테마 관련 상태/메서드 제거 - 이펙트 색상 시스템 업데이트 - '*' (히트) → 마젠타 - '!' '+' (강조/버프) → 시안 - '~' (디버프) → 마젠타
This commit is contained in:
@@ -1,16 +1,16 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:askiineverdie/l10n/app_localizations.dart';
|
||||
import 'package:askiineverdie/src/core/animation/ascii_animation_data.dart';
|
||||
import 'package:askiineverdie/src/core/animation/ascii_animation_type.dart';
|
||||
import 'package:askiineverdie/src/core/l10n/game_data_l10n.dart';
|
||||
import 'package:askiineverdie/src/core/model/game_state.dart';
|
||||
import 'package:askiineverdie/src/core/storage/theme_preferences.dart';
|
||||
import 'package:askiineverdie/src/core/util/pq_logic.dart' as pq_logic;
|
||||
import 'package:askiineverdie/src/features/game/game_session_controller.dart';
|
||||
import 'package:askiineverdie/src/features/game/widgets/task_progress_panel.dart';
|
||||
|
||||
/// 게임 진행 화면 (Main.dfm 기반 3패널 레이아웃)
|
||||
///
|
||||
/// Phase 7: colorTheme 제거됨, 고정 4색 팔레트 사용
|
||||
class GamePlayScreen extends StatefulWidget {
|
||||
const GamePlayScreen({super.key, required this.controller});
|
||||
|
||||
@@ -22,7 +22,6 @@ class GamePlayScreen extends StatefulWidget {
|
||||
|
||||
class _GamePlayScreenState extends State<GamePlayScreen>
|
||||
with WidgetsBindingObserver {
|
||||
AsciiColorTheme _colorTheme = AsciiColorTheme.green;
|
||||
AsciiAnimationType? _specialAnimation;
|
||||
|
||||
// 이전 상태 추적 (레벨업/퀘스트/Act 완료 감지용)
|
||||
@@ -30,28 +29,6 @@ class _GamePlayScreenState extends State<GamePlayScreen>
|
||||
int _lastQuestCount = 0;
|
||||
int _lastPlotStageCount = 0;
|
||||
|
||||
void _cycleColorTheme() {
|
||||
setState(() {
|
||||
_colorTheme = switch (_colorTheme) {
|
||||
AsciiColorTheme.green => AsciiColorTheme.amber,
|
||||
AsciiColorTheme.amber => AsciiColorTheme.white,
|
||||
AsciiColorTheme.white => AsciiColorTheme.system,
|
||||
AsciiColorTheme.system => AsciiColorTheme.green,
|
||||
};
|
||||
});
|
||||
// 테마 변경 시 저장
|
||||
ThemePreferences.saveColorTheme(_colorTheme);
|
||||
}
|
||||
|
||||
Future<void> _loadColorTheme() async {
|
||||
final theme = await ThemePreferences.loadColorTheme();
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
_colorTheme = theme;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
void _checkSpecialEvents(GameState state) {
|
||||
// 레벨업 감지
|
||||
if (state.traits.level > _lastLevel && _lastLevel > 0) {
|
||||
@@ -92,7 +69,6 @@ class _GamePlayScreenState extends State<GamePlayScreen>
|
||||
super.initState();
|
||||
widget.controller.addListener(_onControllerChanged);
|
||||
WidgetsBinding.instance.addObserver(this);
|
||||
_loadColorTheme();
|
||||
|
||||
// 초기 상태 설정
|
||||
final state = widget.controller.state;
|
||||
@@ -216,7 +192,7 @@ class _GamePlayScreenState extends State<GamePlayScreen>
|
||||
),
|
||||
body: Column(
|
||||
children: [
|
||||
// 상단: ASCII 애니메이션 + Task Progress
|
||||
// 상단: ASCII 애니메이션 + Task Progress (Phase 7: 고정 4색 팔레트)
|
||||
TaskProgressPanel(
|
||||
progress: state.progress,
|
||||
speedMultiplier: widget.controller.loop?.speedMultiplier ?? 1,
|
||||
@@ -224,8 +200,6 @@ class _GamePlayScreenState extends State<GamePlayScreen>
|
||||
widget.controller.loop?.cycleSpeed();
|
||||
setState(() {});
|
||||
},
|
||||
colorTheme: _colorTheme,
|
||||
onThemeCycle: _cycleColorTheme,
|
||||
isPaused: !widget.controller.isRunning,
|
||||
onPauseToggle: () async {
|
||||
await widget.controller.togglePause();
|
||||
|
||||
Reference in New Issue
Block a user