Record defeated enemy rewards before victory checks
This commit is contained in:
1 parent
f1572374f5
commit
cd9c05afb3
2 files changed
+10
-1
No files matched your search
+5
-1
@@ -152,6 +152,7 @@ namespace Cthangover.FFBattle
|
||||
_playerPanel.OnWidgetClicked += OnWidgetClicked;
|
||||
_enemyPanel.OnEnemyClicked += OnEnemyClicked;
|
||||
_enemyPanel.OnEnemyDead += OnEnemyDied;
|
||||
_enemyPanel.OnEnemyDefeated += OnEnemyDefeated;
|
||||
_menuPanel.OnItemSelected += OnMenuItemSelected;
|
||||
_menuPanel.OnSelectionChanged += OnMenuSelectionChanged;
|
||||
_menuPanel.OnCancelled += OnMenuCancel;
|
||||
@@ -909,7 +910,7 @@ namespace Cthangover.FFBattle
|
||||
OnPlayerTurnEnd();
|
||||
}
|
||||
|
||||
private void OnEnemyDied(FFCharacterWidget widget)
|
||||
private void OnEnemyDefeated(FFCharacterWidget widget)
|
||||
{
|
||||
var ctx = BattleSceneContext.Instance;
|
||||
if (ctx != null && widget?.Card != null)
|
||||
@@ -917,7 +918,10 @@ namespace Cthangover.FFBattle
|
||||
ctx.RecordEnemyDefeated(widget.Card);
|
||||
ctx.NotifyCharacterDied(widget.Card);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnEnemyDied(FFCharacterWidget widget)
|
||||
{
|
||||
UpdateHudCounts();
|
||||
|
||||
if (!_enemyPanel.HasAlive())
|
||||
|
||||
@@ -31,6 +31,8 @@ namespace Cthangover.FFBattle.UI
|
||||
|
||||
/// <summary>Raised when a widget's death animation completes and the widget is removed.</summary>
|
||||
public event System.Action<FFCharacterWidget> OnEnemyDead;
|
||||
/// <summary>Raised at lethal damage, before any victory check can consume the loot ledger.</summary>
|
||||
public event System.Action<FFCharacterWidget> OnEnemyDefeated;
|
||||
/// <summary>Raised when an enemy widget is clicked (used for target selection).</summary>
|
||||
public event System.Action<FFCharacterWidget> OnEnemyClicked;
|
||||
|
||||
@@ -168,6 +170,9 @@ namespace Cthangover.FFBattle.UI
|
||||
GridLayout(true);
|
||||
OnEnemyDead?.Invoke(widget);
|
||||
});
|
||||
// Victory can be resolved while the dissolve is still running.
|
||||
// Record rewards synchronously instead of waiting for its callback.
|
||||
OnEnemyDefeated?.Invoke(widget);
|
||||
}
|
||||
|
||||
/// <summary>Removes a widget from the panel, frees it, and re-grids the remaining widgets.</summary>
|
||||
|
||||
Reference in new issue
Block a user