feat(phase7): 고정 4색 팔레트 시스템 적용
- ascii_colors.dart 생성 - 흰색(object): 캐릭터, 몬스터, 아이템 - 시안(positive): 힐, 버프, 레벨업, 획득 - 마젠타(negative): 데미지, 디버프, 사망, 손실 - 검정(background): 배경 - 테마 선택 기능 제거 - AsciiAnimationCard: colorTheme 파라미터 제거, 고정 색상 사용 - TaskProgressPanel: 테마 버튼 제거 - GamePlayScreen: 테마 관련 상태/메서드 제거 - 이펙트 색상 시스템 업데이트 - '*' (히트) → 마젠타 - '!' '+' (강조/버프) → 시안 - '~' (디버프) → 마젠타
This commit is contained in:
@@ -9,6 +9,7 @@ import 'package:askiineverdie/src/core/animation/battle_composer.dart';
|
||||
import 'package:askiineverdie/src/core/animation/character_frames.dart';
|
||||
import 'package:askiineverdie/src/core/animation/monster_size.dart';
|
||||
import 'package:askiineverdie/src/core/animation/weapon_category.dart';
|
||||
import 'package:askiineverdie/src/core/constants/ascii_colors.dart';
|
||||
import 'package:askiineverdie/src/core/model/game_state.dart';
|
||||
|
||||
/// ASCII 애니메이션 카드 위젯
|
||||
@@ -336,31 +337,26 @@ class _AsciiAnimationCardState extends State<AsciiAnimationCard> {
|
||||
return TextSpan(children: spans);
|
||||
}
|
||||
|
||||
/// 이펙트 문자별 색상 반환
|
||||
/// 이펙트 문자별 색상 반환 (Phase 7: 4색 팔레트)
|
||||
Color _getEffectColor(String char) {
|
||||
return switch (char) {
|
||||
'*' => Colors.orange, // 히트/폭발
|
||||
'!' => Colors.yellow, // 강조
|
||||
'=' || '>' || '<' => Colors.cyan, // 슬래시/찌르기
|
||||
'~' => Colors.purple, // 물결/마법
|
||||
_ => Colors.white,
|
||||
'*' => AsciiColors.negative, // 히트/폭발 (마젠타)
|
||||
'!' => AsciiColors.positive, // 강조 (시안)
|
||||
'=' || '>' || '<' => AsciiColors.positive, // 슬래시/찌르기 (시안)
|
||||
'~' => AsciiColors.negative, // 물결/디버프 (마젠타)
|
||||
'+' => AsciiColors.positive, // 회복/버프 (시안)
|
||||
_ => AsciiColors.object, // 오브젝트 (흰색)
|
||||
};
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final brightness = Theme.of(context).brightness;
|
||||
final colors = getThemeColors(widget.colorTheme, brightness);
|
||||
|
||||
// 특수 애니메이션 중이면 특별한 배경색 적용
|
||||
final isSpecial = _currentSpecialAnimation != null;
|
||||
final bgColor = isSpecial
|
||||
? colors.backgroundColor.withValues(alpha: 0.95)
|
||||
: colors.backgroundColor;
|
||||
// Phase 7: 고정 4색 팔레트 사용 (colorTheme 무시)
|
||||
const bgColor = AsciiColors.background;
|
||||
const textColor = AsciiColors.object;
|
||||
|
||||
// 프레임 텍스트 결정
|
||||
String frameText;
|
||||
Color textColor = colors.textColor;
|
||||
|
||||
if (_isBattleMode && _battleComposer != null) {
|
||||
// 새 배틀 시스템 사용 (배경 포함)
|
||||
@@ -380,13 +376,16 @@ class _AsciiAnimationCardState extends State<AsciiAnimationCard> {
|
||||
frameText = _animationData.frames[frameIndex];
|
||||
}
|
||||
|
||||
// 특수 애니메이션 중이면 테두리 표시
|
||||
final isSpecial = _currentSpecialAnimation != null;
|
||||
|
||||
return Container(
|
||||
padding: const EdgeInsets.all(4),
|
||||
decoration: BoxDecoration(
|
||||
color: bgColor,
|
||||
borderRadius: BorderRadius.circular(4),
|
||||
border: isSpecial
|
||||
? Border.all(color: colors.textColor.withValues(alpha: 0.5))
|
||||
? Border.all(color: AsciiColors.positive.withValues(alpha: 0.5))
|
||||
: null,
|
||||
),
|
||||
child: _isBattleMode
|
||||
|
||||
Reference in New Issue
Block a user