feat(core): 밸런스 상수 및 진행 로직 개선
- BalanceConstants 조정 - PqLogic 개선 - ProgressService 업데이트
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user