refactor(game): 게임 화면 및 위젯 정리
This commit is contained in:
@@ -247,74 +247,163 @@ class _AsciiAnimationCardState extends State<AsciiAnimationCard> {
|
||||
CombatEventType.playerAttack => (
|
||||
BattlePhase.prepare,
|
||||
event.isCritical,
|
||||
false, false, false, false, false, false, false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
),
|
||||
// 스킬 사용 → prepare 페이즈부터 시작 + 스킬 이펙트
|
||||
CombatEventType.playerSkill => (
|
||||
BattlePhase.prepare,
|
||||
event.isCritical,
|
||||
false, false, true, false, false, false, false,
|
||||
false,
|
||||
false,
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
),
|
||||
|
||||
// 몬스터 공격 → prepare 페이즈부터 시작
|
||||
CombatEventType.monsterAttack => (
|
||||
BattlePhase.prepare,
|
||||
false, false, false, false, false, false, false, false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
),
|
||||
// 블록 → hit 페이즈 + 블록 이펙트 + 텍스트
|
||||
CombatEventType.playerBlock => (
|
||||
BattlePhase.hit,
|
||||
false, true, false, false, false, false, false, false,
|
||||
false,
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
),
|
||||
// 패리 → hit 페이즈 + 패리 이펙트 + 텍스트
|
||||
CombatEventType.playerParry => (
|
||||
BattlePhase.hit,
|
||||
false, false, true, false, false, false, false, false,
|
||||
false,
|
||||
false,
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
),
|
||||
|
||||
// 플레이어 회피 → recover 페이즈 + 회피 텍스트
|
||||
CombatEventType.playerEvade => (
|
||||
BattlePhase.recover,
|
||||
false, false, false, false, true, false, false, false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
),
|
||||
// 몬스터 회피 → idle 페이즈 + 미스 텍스트
|
||||
CombatEventType.monsterEvade => (
|
||||
BattlePhase.idle,
|
||||
false, false, false, false, false, true, false, false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
),
|
||||
|
||||
// 회복/버프 → idle 페이즈 유지
|
||||
CombatEventType.playerHeal => (
|
||||
BattlePhase.idle,
|
||||
false, false, false, false, false, false, false, false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
),
|
||||
CombatEventType.playerBuff => (
|
||||
BattlePhase.idle,
|
||||
false, false, false, false, false, false, false, false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
),
|
||||
|
||||
// 디버프 적용 → idle 페이즈 + 디버프 텍스트
|
||||
CombatEventType.playerDebuff => (
|
||||
BattlePhase.idle,
|
||||
false, false, false, false, false, false, true, false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
true,
|
||||
false,
|
||||
),
|
||||
|
||||
// DOT 틱 → attack 페이즈 + DOT 텍스트
|
||||
CombatEventType.dotTick => (
|
||||
BattlePhase.attack,
|
||||
false, false, false, false, false, false, false, true,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
true,
|
||||
),
|
||||
|
||||
// 물약 사용 → idle 페이즈 유지
|
||||
CombatEventType.playerPotion => (
|
||||
BattlePhase.idle,
|
||||
false, false, false, false, false, false, false, false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
),
|
||||
|
||||
// 물약 드랍 → idle 페이즈 유지
|
||||
CombatEventType.potionDrop => (
|
||||
BattlePhase.idle,
|
||||
false, false, false, false, false, false, false, false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
),
|
||||
};
|
||||
|
||||
@@ -375,7 +464,8 @@ class _AsciiAnimationCardState extends State<AsciiAnimationCard> {
|
||||
// 특수 애니메이션 프레임 간격 계산 (200ms tick 기준)
|
||||
// 예: resurrection 600ms → 600/200 = 3 tick마다 1 프레임
|
||||
final frameInterval =
|
||||
(specialAnimationFrameIntervals[_currentSpecialAnimation] ?? 200) ~/
|
||||
(specialAnimationFrameIntervals[_currentSpecialAnimation] ??
|
||||
200) ~/
|
||||
200;
|
||||
if (_specialTick >= frameInterval) {
|
||||
_specialTick = 0;
|
||||
@@ -576,9 +666,7 @@ class _AsciiAnimationCardState extends State<AsciiAnimationCard> {
|
||||
);
|
||||
} else if (isSpecial) {
|
||||
// 특수 애니메이션: 포지티브 색상 테두리
|
||||
borderEffect = Border.all(
|
||||
color: positiveColor.withValues(alpha: 0.5),
|
||||
);
|
||||
borderEffect = Border.all(color: positiveColor.withValues(alpha: 0.5));
|
||||
}
|
||||
|
||||
return Container(
|
||||
|
||||
Reference in New Issue
Block a user