From 02a59fb4431548bfc2c4bff06caf9de1add9855d Mon Sep 17 00:00:00 2001 From: JiWoong Sul Date: Mon, 5 Jan 2026 19:42:03 +0900 Subject: [PATCH] =?UTF-8?q?refactor(engine):=20=EB=AA=AC=EC=8A=A4=ED=84=B0?= =?UTF-8?q?=20=EB=A0=88=EB=B2=A8=20=EA=B8=B0=EB=B0=98=20=ED=8E=98=EB=84=90?= =?UTF-8?q?=ED=8B=B0=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - CombatStats 생성 시 monsterLevel 전달 - Phase 12 레벨 페널티 시스템 연동 --- lib/src/core/engine/progress_service.dart | 24 ++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) 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,