refactor(core): 모델 및 유틸리티 개선

- GameState 확장
- BalanceConstants 조정
- PqLogic, Roman 정리
This commit is contained in:
JiWoong Sul
2026-01-12 20:02:50 +09:00
parent a1d22369cb
commit 12f195bed7
4 changed files with 83 additions and 53 deletions

View File

@@ -150,16 +150,24 @@ class MonsterBaseStats {
/// 레벨 기반 기본 스탯 생성
///
/// HP: 50 + level * 20 + (level^2 / 5)
/// ATK: 10 + level * 12 (장비 DEF 스케일링 대응)
/// - 장비 DEF ≈ level * 16 (9개 방어구 합산)
/// - 데미지 공식: ATK - DEF * 0.5 → 의미있는 피해를 위해 상향
/// ATK: 레벨별 차등 적용
/// - 레벨 1~5: 2 + level * 3 (초반 난이도 완화)
/// - 레벨 6+: 3 + level * 4 (기존 공식)
/// - DEF 감산율 0.5와 연동하여 밸런스 조정
/// - 플레이어가 5~10회 공격 생존 가능하도록 설계
/// DEF: 2 + level * 2
/// EXP: 10 + level * 5
/// GOLD: 5 + level * 3
factory MonsterBaseStats.forLevel(int level) {
// 레벨 1~5: 초반 난이도 완화 (2 + level * 3)
// 레벨 1=5, 2=8, 3=11, 4=14, 5=17
// 레벨 6+: 기존 공식 (3 + level * 4)
// 레벨 6=27, 10=43, 20=83, 50=203, 100=403
final atk = level <= 5 ? 2 + level * 3 : 3 + level * 4;
return MonsterBaseStats(
hp: 50 + level * 20 + (level * level ~/ 5),
atk: 10 + level * 12,
atk: atk,
def: 2 + level * 2,
exp: 10 + level * 5,
gold: 5 + level * 3,
@@ -447,14 +455,14 @@ class ActMonsterLevel {
class PlayerScaling {
PlayerScaling._();
/// 레벨당 HP 증가량 (10 → 12 상향)
static const int hpPerLevel = 12;
/// 레벨당 HP 증가량 (12 → 18 상향, 생존율 개선)
static const int hpPerLevel = 18;
/// 레벨당 MP 증가량 (5 → 6 상향)
static const int mpPerLevel = 6;
/// CON당 HP 보너스 (56 상향)
static const int hpPerCon = 6;
/// CON당 HP 보너스 (610 상향, 체력 투자 효율 개선)
static const int hpPerCon = 10;
/// INT당 MP 보너스 (3 → 4 상향)
static const int mpPerInt = 4;