Exemple #1
0
    public void Fight()
    {
        FightStages attacker = fightersManager.GetAttacker();
        FightStages defender = fightersManager.GetDefender();

        fightersManager.ManageRounds(attacker, defender);
        attacker.BuildAttackStats();
        defender.BuildDefenseStats();
        attacker.Attack.ProcessPowers(defender.Defense);
        defender.Defense.ProcessPowers(attacker.Attack);
        defender.Defense.CalculatePercentagesOfDamage();
        CalculateDamage(attacker, defender);
        defender.ApplyDamage(attacker.Attack.DamageToAttack, attacker.Attack.DamageToDefense, attacker.Attack.DamageToSabotage);
        if (defender.ProcessInjuries())
        {
            GameFinished = true;
            attacker.Won = true;
        }
        else
        {
            defender.RestoreHealth();
        }
    }