refactor(engine): 몬스터 레벨 기반 페널티 적용

- CombatStats 생성 시 monsterLevel 전달
- Phase 12 레벨 페널티 시스템 연동
This commit is contained in:
JiWoong Sul
2026-01-05 19:42:03 +09:00
parent f13783a35b
commit 02a59fb443

View File

@@ -543,13 +543,6 @@ class ProgressService {
questLevel,
);
// 전투 스탯 생성
final playerCombatStats = CombatStats.fromStats(
stats: state.stats,
equipment: state.equipment,
level: level,
);
// 전투용 몬스터 레벨 조정 (밸런스)
// Act별 최소 레벨과 플레이어 레벨 중 큰 값을 기준으로 ±3 범위 제한
final actMinLevel = ActMonsterLevel.forPlotStage(
@@ -560,6 +553,14 @@ class ProgressService {
.clamp(math.max(1, baseLevel - 3), baseLevel + 3)
.toInt();
// 전투 스탯 생성 (Phase 12: 몬스터 레벨 기반 페널티 적용)
final playerCombatStats = CombatStats.fromStats(
stats: state.stats,
equipment: state.equipment,
level: level,
monsterLevel: effectiveMonsterLevel,
);
final monsterCombatStats = MonsterCombatStats.fromLevel(
name: monsterResult.displayName,
level: effectiveMonsterLevel,
@@ -610,16 +611,17 @@ class ProgressService {
) {
final level = state.traits.level;
// 플레이어 전투 스탯 생성
// Glitch God 생성 (레벨 100 최종 보스)
final glitchGod = MonsterCombatStats.glitchGod();
// 플레이어 전투 스탯 생성 (Phase 12: 보스 레벨 기반 페널티 적용)
final playerCombatStats = CombatStats.fromStats(
stats: state.stats,
equipment: state.equipment,
level: level,
monsterLevel: glitchGod.level,
);
// Glitch God 생성 (레벨 100 최종 보스)
final glitchGod = MonsterCombatStats.glitchGod();
// 전투 상태 초기화
final combatState = CombatState.start(
playerStats: playerCombatStats,