feat(core): 밸런스 상수 및 진행 로직 개선

- BalanceConstants 조정
- PqLogic 개선
- ProgressService 업데이트
This commit is contained in:
JiWoong Sul
2026-01-08 20:10:59 +09:00
parent 76090a46b6
commit 1eaff23001
3 changed files with 32 additions and 10 deletions

View File

@@ -355,12 +355,14 @@ class ProgressService {
}
// Gain XP / level up.
// 최대 레벨(100) 제한: 100레벨에서는 더 이상 레벨업하지 않음
if (gain) {
if (progress.exp.position >= progress.exp.max) {
if (progress.exp.position >= progress.exp.max &&
nextState.traits.level < 100) {
nextState = _levelUp(nextState);
leveledUp = true;
progress = nextState.progress;
} else {
} else if (nextState.traits.level < 100) {
final uncappedExp = progress.exp.position + incrementSeconds;
final int newExpPos = uncappedExp > progress.exp.max
? progress.exp.max
@@ -863,8 +865,8 @@ class ProgressService {
final targetLevel = ActMonsterLevel.forPlotStage(nextPlotStage);
var nextState = state;
// 현재 레벨이 목표 레벨보다 낮으면 레벨업
while (nextState.traits.level < targetLevel) {
// 현재 레벨이 목표 레벨보다 낮으면 레벨업 (최대 100레벨)
while (nextState.traits.level < targetLevel && nextState.traits.level < 100) {
nextState = _levelUp(nextState);
}
@@ -885,6 +887,11 @@ class ProgressService {
}
GameState _levelUp(GameState state) {
// 최대 레벨(100) 안전장치: 이미 100레벨이면 레벨업하지 않음
if (state.traits.level >= 100) {
return state;
}
final nextLevel = state.traits.level + 1;
final rng = state.rng;
final hpGain = state.stats.con ~/ 3 + 1 + rng.nextInt(4);