private void BattleEnded(bool writeReport) { if (writeReport) { BattleReport.CompleteBattle(); } AboutToExitBattle(this, Attackers, Defenders); ExitBattle(this, Attackers, Defenders); foreach (var combatObj in Defenders.AllCombatObjects().Where(combatObj => !combatObj.IsDead)) { combatObj.ExitBattle(); } foreach (var combatObj in Attackers.AllCombatObjects().Where(combatObj => !combatObj.IsDead)) { combatObj.ExitBattle(); } foreach (var group in Attackers) { WithdrawAttacker(this, group); } foreach (var group in Defenders) { WithdrawDefender(this, group); } // Delete all groups Attackers.Clear(); Defenders.Clear(); }