- refactoring conifg
This commit is contained in:
2025-12-07 14:56:43 +09:00
parent d3fca333cb
commit 8771f2c1af
15 changed files with 295 additions and 156 deletions
+20 -19
View File
@@ -16,6 +16,7 @@ import '../game/model/damage_event.dart'; // DamageEvent import
import '../game/model/effect_event.dart'; // EffectEvent import
import '../game/save_manager.dart';
import '../game/config/game_config.dart';
class EnemyIntent {
final EnemyActionType type;
@@ -104,7 +105,7 @@ class BattleProvider with ChangeNotifier {
}
// Give test gold
player.gold = 50;
player.gold = GameConfig.startingGold;
// Provide starter equipment
final starterSword = Item(
@@ -172,11 +173,11 @@ class BattleProvider with ChangeNotifier {
StageType type;
// Stage Type Logic
if (stage % 10 == 0) {
if (stage % GameConfig.eliteStageInterval == 0) {
type = StageType.elite; // Every 10th stage is a Boss/Elite
} else if (stage % 5 == 0) {
} else if (stage % GameConfig.shopStageInterval == 0) {
type = StageType.shop; // Every 5th stage is a Shop (except 10, 20...)
} else if (stage % 8 == 0) {
} else if (stage % GameConfig.restStageInterval == 0) {
type = StageType.rest; // Every 8th stage is a Rest
} else {
type = StageType.battle;
@@ -255,9 +256,9 @@ class BattleProvider with ChangeNotifier {
/// Generate 4 random items for the shop based on current stage tier
List<Item> _generateShopItems() {
ItemTier currentTier = ItemTier.tier1;
if (stage > 24)
if (stage > GameConfig.tier2StageMax)
currentTier = ItemTier.tier3;
else if (stage > 12)
else if (stage > GameConfig.tier1StageMax)
currentTier = ItemTier.tier2;
List<Item> items = [];
@@ -271,7 +272,7 @@ class BattleProvider with ChangeNotifier {
}
void rerollShopItems() {
const int rerollCost = 50;
const int rerollCost = GameConfig.shopRerollCost;
if (player.gold >= rerollCost) {
player.gold -= rerollCost;
// Modify the existing list because shopItems is final
@@ -381,11 +382,11 @@ class BattleProvider with ChangeNotifier {
// Animation Delays to sync with Impact
if (risk == RiskLevel.safe) {
await Future.delayed(const Duration(milliseconds: 500));
await Future.delayed(const Duration(milliseconds: GameConfig.animDelaySafe));
} else if (risk == RiskLevel.normal) {
await Future.delayed(const Duration(milliseconds: 400));
await Future.delayed(const Duration(milliseconds: GameConfig.animDelayNormal));
} else if (risk == RiskLevel.risky) {
await Future.delayed(const Duration(milliseconds: 1100));
await Future.delayed(const Duration(milliseconds: GameConfig.animDelayRisky));
}
int damageToHp = 0;
@@ -477,19 +478,19 @@ class BattleProvider with ChangeNotifier {
return;
}
Future.delayed(const Duration(seconds: 1), () => _enemyTurn());
Future.delayed(const Duration(milliseconds: GameConfig.animDelayEnemyTurn), () => _enemyTurn());
}
Future<void> _enemyTurn() async {
if (!isPlayerTurn && (player.isDead || enemy.isDead)) return;
_addLog("Enemy's turn...");
await Future.delayed(const Duration(seconds: 1));
await Future.delayed(const Duration(milliseconds: GameConfig.animDelayEnemyTurn));
// Enemy Turn Start Logic
// Armor decay
if (enemy.armor > 0) {
enemy.armor = (enemy.armor * 0.5).toInt();
enemy.armor = (enemy.armor * GameConfig.armorDecayRate).toInt();
_addLog("Enemy's armor decayed to ${enemy.armor}.");
}
@@ -578,7 +579,7 @@ class BattleProvider with ChangeNotifier {
// Player Turn Start Logic
// Armor decay
if (player.armor > 0) {
player.armor = (player.armor * 0.5).toInt();
player.armor = (player.armor * GameConfig.armorDecayRate).toInt();
_addLog("Player's armor decayed to ${player.armor}.");
}
@@ -665,7 +666,7 @@ class BattleProvider with ChangeNotifier {
}) {
// Check Vulnerable
if (target.hasStatus(StatusEffectType.vulnerable)) {
damage = (damage * 1.5).toInt();
damage = (damage * GameConfig.vulnerableDamageMultiplier).toInt();
_addLog("Vulnerable! Damage increased to $damage.");
type = DamageType.vulnerable;
}
@@ -704,9 +705,9 @@ class BattleProvider with ChangeNotifier {
// Since we just refactored ItemTable, let's use getRandomItem!
ItemTier currentTier = ItemTier.tier1;
if (stage > 24)
if (stage > GameConfig.tier2StageMax)
currentTier = ItemTier.tier3;
else if (stage > 12)
else if (stage > GameConfig.tier1StageMax)
currentTier = ItemTier.tier2;
rewardOptions = [];
@@ -749,7 +750,7 @@ class BattleProvider with ChangeNotifier {
}
// Heal player after selecting reward
int healAmount = GameMath.floor(player.totalMaxHp * 0.1);
int healAmount = GameMath.floor(player.totalMaxHp * GameConfig.stageHealRatio);
player.heal(healAmount);
_addLog("Stage Cleared! Recovered $healAmount HP.");
@@ -793,7 +794,7 @@ class BattleProvider with ChangeNotifier {
void sellItem(Item item) {
if (player.inventory.remove(item)) {
int sellPrice = GameMath.floor(item.price * 0.6);
int sellPrice = GameMath.floor(item.price * GameConfig.sellPriceMultiplier);
player.gold += sellPrice;
_addLog("Sold ${item.name} for $sellPrice G.");
notifyListeners();