refactor(core): 진행 서비스 및 모델 개선
- ProgressService 로직 개선 - GameState 상태 관리 확장 - MonsterCombatStats 속성 추가 - game_text_l10n 번역 추가
This commit is contained in:
@@ -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,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
);
|
||||
}
|
||||
|
||||
/// 몬스터 이름에서 속도 타입 추론
|
||||
///
|
||||
/// 특정 키워드 기반으로 속도 결정 (향후 확장 가능)
|
||||
|
||||
Reference in New Issue
Block a user