diff --git a/lib/src/core/engine/progress_service.dart b/lib/src/core/engine/progress_service.dart index d481ae1..053db22 100644 --- a/lib/src/core/engine/progress_service.dart +++ b/lib/src/core/engine/progress_service.dart @@ -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,