style: dart format 적용
This commit is contained in:
@@ -64,7 +64,9 @@ void main() {
|
||||
final diagnosis = sim.winRate >= targetWinRate
|
||||
? '✓ 적정'
|
||||
: '✗ 조정필요 (목표: ${(targetWinRate * 100).toStringAsFixed(0)}%)';
|
||||
print('레벨 $level (${tier.name}): 승률 ${(sim.winRate * 100).toStringAsFixed(0)}% $diagnosis');
|
||||
print(
|
||||
'레벨 $level (${tier.name}): 승률 ${(sim.winRate * 100).toStringAsFixed(0)}% $diagnosis',
|
||||
);
|
||||
}
|
||||
|
||||
print('\n${'=' * 80}');
|
||||
@@ -88,7 +90,9 @@ void main() {
|
||||
final minDamage = (monster.atk * 0.8 - player.def * 0.3).round();
|
||||
final maxDamage = (monster.atk * 1.2 - player.def * 0.3).round();
|
||||
print('- 몬스터 데미지: $minDamage ~ $maxDamage');
|
||||
print('- 플레이어 생존 히트: ${(player.hp / maxDamage).floor()} ~ ${(player.hp / minDamage).ceil()}');
|
||||
print(
|
||||
'- 플레이어 생존 히트: ${(player.hp / maxDamage).floor()} ~ ${(player.hp / minDamage).ceil()}',
|
||||
);
|
||||
|
||||
print('\n#### 적용된 밸런스 수정');
|
||||
print('1. 플레이어 HP 스케일링 상향:');
|
||||
@@ -136,7 +140,8 @@ _PlayerEstimate _estimatePlayerStats(int level) {
|
||||
|
||||
// 장비 스탯 추정 (레벨 * 0.8 수준의 common 장비 10개)
|
||||
final equipLevel = (level * 0.8).round().clamp(1, level);
|
||||
final equipBaseValue = (equipLevel * 1.2 * ItemRarity.common.multiplier).round();
|
||||
final equipBaseValue = (equipLevel * 1.2 * ItemRarity.common.multiplier)
|
||||
.round();
|
||||
|
||||
// 무기 ATK (speedMultiplier 1.0 가정)
|
||||
final weaponAtk = equipBaseValue;
|
||||
@@ -182,8 +187,14 @@ _CombatSimulation _simulateCombat(int level) {
|
||||
|
||||
// 데미지 계산 (combat_calculator 평균)
|
||||
// damage = ATK * 1.0 - DEF * 0.5 (DEF 감산율 상향)
|
||||
final monsterDamage = (monster.atk * 1.0 - player.def * 0.5).round().clamp(1, 9999);
|
||||
final playerDamage = (player.atk * 1.0 - monster.def * 0.5).round().clamp(1, 9999);
|
||||
final monsterDamage = (monster.atk * 1.0 - player.def * 0.5).round().clamp(
|
||||
1,
|
||||
9999,
|
||||
);
|
||||
final playerDamage = (player.atk * 1.0 - monster.def * 0.5).round().clamp(
|
||||
1,
|
||||
9999,
|
||||
);
|
||||
|
||||
// 생존 히트 수
|
||||
final playerHits = (player.hp / monsterDamage).ceil();
|
||||
@@ -194,8 +205,8 @@ _CombatSimulation _simulateCombat(int level) {
|
||||
final winRate = playerHits > monsterHits
|
||||
? 0.95 // 압도적 유리
|
||||
: playerHits == monsterHits
|
||||
? 0.65 // 동등 (선공 이점)
|
||||
: (playerHits / monsterHits).clamp(0.2, 0.9);
|
||||
? 0.65 // 동등 (선공 이점)
|
||||
: (playerHits / monsterHits).clamp(0.2, 0.9);
|
||||
|
||||
return _CombatSimulation(
|
||||
monsterDamage: monsterDamage,
|
||||
|
||||
Reference in New Issue
Block a user