Fix: Correct item name interpolation
This commit is contained in:
@@ -31,7 +31,6 @@ class EnemyIntent {
|
||||
final String description;
|
||||
final bool isSuccess;
|
||||
final int finalValue;
|
||||
bool isApplied; // New field to track if effect (like defense) is already applied
|
||||
|
||||
EnemyIntent({
|
||||
required this.type,
|
||||
@@ -40,7 +39,6 @@ class EnemyIntent {
|
||||
required this.description,
|
||||
required this.isSuccess,
|
||||
required this.finalValue,
|
||||
this.isApplied = false,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -217,7 +215,7 @@ class BattleProvider with ChangeNotifier {
|
||||
isPlayerTurn = true;
|
||||
showRewardPopup = false;
|
||||
|
||||
_generateEnemyIntent(applyImmediate: false); // Generate first intent without applying effects
|
||||
_generateEnemyIntent(); // Generate first intent
|
||||
|
||||
_addLog("Stage $stage ($type) started! A wild ${enemy.name} appeared.");
|
||||
} else if (type == StageType.shop) {
|
||||
@@ -421,73 +419,19 @@ class BattleProvider with ChangeNotifier {
|
||||
return;
|
||||
}
|
||||
|
||||
if (canAct && currentEnemyIntent != null) {
|
||||
if (canAct && currentEnemyIntent != null) {
|
||||
|
||||
final intent = currentEnemyIntent!;
|
||||
final intent = currentEnemyIntent!;
|
||||
|
||||
|
||||
|
||||
|
||||
if (intent.type == EnemyActionType.defend) {
|
||||
if (intent.type == EnemyActionType.defend) {
|
||||
|
||||
// Handle Deferred Defense (from first turn)
|
||||
// Already handled in _generateEnemyIntent
|
||||
|
||||
if (!intent.isApplied && intent.isSuccess) {
|
||||
_addLog("Enemy maintains defensive stance.");
|
||||
|
||||
// Apply defense now
|
||||
|
||||
final eventId = DateTime.now().millisecondsSinceEpoch.toString() + Random().nextInt(1000).toString();
|
||||
|
||||
final event = EffectEvent(
|
||||
|
||||
id: eventId,
|
||||
|
||||
type: ActionType.defend,
|
||||
|
||||
risk: intent.risk,
|
||||
|
||||
target: EffectTarget.enemy,
|
||||
|
||||
feedbackType: null,
|
||||
|
||||
attacker: enemy,
|
||||
|
||||
targetEntity: enemy,
|
||||
|
||||
armorGained: intent.finalValue,
|
||||
|
||||
isSuccess: true,
|
||||
|
||||
);
|
||||
|
||||
_effectEventController.sink.add(event);
|
||||
|
||||
_processAttackImpact(event); // Apply armor and log
|
||||
|
||||
intent.isApplied = true;
|
||||
|
||||
} else if (intent.isApplied) {
|
||||
|
||||
_addLog("Enemy maintains defensive stance.");
|
||||
|
||||
} else {
|
||||
|
||||
// Failed defense (already logged? maybe not if deferred)
|
||||
|
||||
// If it was deferred fail, we should log it now?
|
||||
|
||||
// But _generateEnemyIntent logged fail immediately even if deferred?
|
||||
|
||||
// No, I changed it to log only if !success.
|
||||
|
||||
// Wait, previous logic: if (!success) log.
|
||||
|
||||
// So fail is already logged.
|
||||
|
||||
_addLog("Enemy tried to defend but fumbled!");
|
||||
|
||||
}
|
||||
|
||||
} else { // Attack Logic
|
||||
} else { // Attack Logic
|
||||
if (intent.isSuccess) {
|
||||
final event = EffectEvent(
|
||||
id:
|
||||
@@ -739,7 +683,7 @@ class BattleProvider with ChangeNotifier {
|
||||
_prepareNextStage();
|
||||
}
|
||||
|
||||
void _generateEnemyIntent({bool applyImmediate = true}) {
|
||||
void _generateEnemyIntent() {
|
||||
if (enemy.isDead) {
|
||||
currentEnemyIntent = null;
|
||||
return;
|
||||
@@ -835,10 +779,9 @@ class BattleProvider with ChangeNotifier {
|
||||
finalValue: armor,
|
||||
);
|
||||
|
||||
// Apply defense immediately if successful AND allowed
|
||||
if (success && applyImmediate) {
|
||||
// Apply defense immediately if successful
|
||||
if (success) {
|
||||
enemy.armor += armor;
|
||||
currentEnemyIntent!.isApplied = true;
|
||||
_addLog("Enemy prepares defense! (+$armor Armor)");
|
||||
_effectEventController.sink.add(
|
||||
EffectEvent(
|
||||
@@ -852,11 +795,7 @@ class BattleProvider with ChangeNotifier {
|
||||
),
|
||||
);
|
||||
} else {
|
||||
// Either failed or deferred
|
||||
if (!success) {
|
||||
_addLog("Enemy tried to defend but fumbled!");
|
||||
}
|
||||
// If deferred (applyImmediate = false), we don't log or apply yet.
|
||||
_addLog("Enemy tried to defend but fumbled!");
|
||||
}
|
||||
}
|
||||
notifyListeners();
|
||||
|
||||
Reference in New Issue
Block a user