refactor(core): 진행 서비스 및 모델 개선

- ProgressService 로직 개선
- GameState 상태 관리 확장
- MonsterCombatStats 속성 추가
- game_text_l10n 번역 추가
This commit is contained in:
JiWoong Sul
2026-01-02 15:30:09 +09:00
parent c9f0e35914
commit 2ef9807cbe
4 changed files with 165 additions and 18 deletions

View File

@@ -727,6 +727,18 @@ class QuestMonsterInfo {
static const empty = QuestMonsterInfo(monsterData: '', monsterIndex: -1);
}
/// 최종 보스 상태 (Final Boss State)
enum FinalBossState {
/// 최종 보스 등장 전
notSpawned,
/// 최종 보스 전투 중
fighting,
/// 최종 보스 처치 완료
defeated,
}
class ProgressState {
const ProgressState({
required this.task,
@@ -743,6 +755,7 @@ class ProgressState {
this.currentCombat,
this.monstersKilled = 0,
this.deathCount = 0,
this.finalBossState = FinalBossState.notSpawned,
});
final ProgressBarState task;
@@ -772,6 +785,9 @@ class ProgressState {
/// 사망 횟수
final int deathCount;
/// 최종 보스 상태 (Act V)
final FinalBossState finalBossState;
factory ProgressState.empty() => ProgressState(
task: ProgressBarState.empty(),
quest: ProgressBarState.empty(),
@@ -802,6 +818,7 @@ class ProgressState {
CombatState? currentCombat,
int? monstersKilled,
int? deathCount,
FinalBossState? finalBossState,
}) {
return ProgressState(
task: task ?? this.task,
@@ -818,6 +835,7 @@ class ProgressState {
currentCombat: currentCombat ?? this.currentCombat,
monstersKilled: monstersKilled ?? this.monstersKilled,
deathCount: deathCount ?? this.deathCount,
finalBossState: finalBossState ?? this.finalBossState,
);
}
}

View File

@@ -174,6 +174,30 @@ class MonsterCombatStats {
);
}
/// 최종 보스 (Glitch God) 생성
///
/// Act V 완료 시 등장하는 최종 보스.
/// balance_constants.dart의 BossStats.glitchGod 기반.
factory MonsterCombatStats.glitchGod() {
const bossLevel = 100;
final bossStats = BossStats.glitchGod(bossLevel);
return MonsterCombatStats(
name: 'The Primordial Glitch',
level: bossLevel,
atk: bossStats.atk,
def: bossStats.def,
hpMax: bossStats.hp,
hpCurrent: bossStats.hp,
criRate: 0.25, // 보스 크리티컬 확률 25%
criDamage: 2.0, // 보스 크리티컬 데미지 200%
evasion: 0.15, // 보스 회피율 15%
accuracy: 0.95, // 보스 명중률 95%
attackDelayMs: 800, // 보스 공격 속도 (빠름)
expReward: bossStats.exp,
);
}
/// 몬스터 이름에서 속도 타입 추론
///
/// 특정 키워드 기반으로 속도 결정 (향후 확장 가능)