Beispiel #1
0
        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();
        }
Beispiel #2
0
        private void BringWaitingTroopsIntoBattle()
        {
            foreach (var defender in Defenders.AllCombatObjects().Where(co => co.IsWaitingToJoinBattle))
            {
                defender.JoinBattle(Round);
                dbManager.Save(defender);
            }

            foreach (var attacker in Attackers.AllCombatObjects().Where(co => co.IsWaitingToJoinBattle))
            {
                attacker.JoinBattle(Round);
                dbManager.Save(attacker);
            }
        }
Beispiel #3
0
 public ICombatObject GetCombatObject(uint id)
 {
     return(Attackers.AllCombatObjects().FirstOrDefault(co => co.Id == id) ??
            Defenders.AllCombatObjects().FirstOrDefault(co => co.Id == id));
 }