Ejemplo n.º 1
0
 //private float getStrenght()
 //{
 //    return Type.getStrenght(); // bonus
 //}
 internal float getStrenght(Army army, float armyStrenghtModifier)
 {
     return(getSize() * origin.Type.getStrenght() * armyStrenghtModifier);
 }
Ejemplo n.º 2
0
 public void addArmy(Army army)
 {
     allArmies.Add(army);
 }
Ejemplo n.º 3
0
 public void RemoveArmy(Army army)
 {
     standingArmies.Remove(army);
 }
Ejemplo n.º 4
0
        /// <summary>
        /// returns true if attacker is winner
        /// </summary>
        private BattleResult attack(Army defender)
        {
            Army attacker            = this;
            int  initialAttackerSize = attacker.getSize();
            int  initialDefenderSize = defender.getSize();

            bool         attackerWon;
            BattleResult result;
            string       attackerBonus;
            var          attackerModifier = modifierStrenght.getModifier(attacker, out attackerBonus);
            string       defenderBonus;
            var          defenderModifier = modifierStrenght.getModifier(defender, out defenderBonus);

            if (attacker.getStrenght(attackerModifier) > defender.getStrenght(defenderModifier))
            {
                attackerWon = true;
                float winnerLossUnConverted;
                if (attacker.getStrenght(attackerModifier) > 0f)
                {
                    winnerLossUnConverted = defender.getStrenght(defenderModifier) * defender.getStrenght(defenderModifier) / attacker.getStrenght(attackerModifier);
                }
                else
                {
                    winnerLossUnConverted = 0f;
                }
                int attackerLoss = attacker.takeLossUnconverted(winnerLossUnConverted, defender.owner);
                int loserLoss    = defender.takeLoss(defender.getSize(), attacker.owner);



                result = new BattleResult(attacker.getOwner(), defender.getOwner(), initialAttackerSize, attackerLoss
                                          , initialDefenderSize, loserLoss, attacker.Province, attackerWon, attackerBonus, defenderBonus);
            }
            else if (attacker.getStrenght(attackerModifier) == defender.getStrenght(defenderModifier))
            {
                attacker.takeLoss(attacker.getSize(), defender.owner);
                defender.takeLoss(defender.getSize(), attacker.owner);



                result = new BattleResult(attacker.getOwner(), defender.getOwner(), attacker.getSize(), attacker.getSize(), defender.getSize(), defender.getSize(),
                                          attacker.Province, false, attackerBonus, defenderBonus);
            }
            else // defender win
            {
                attackerWon = false;
                float winnerLossUnConverted;
                if (defender.getStrenght(defenderModifier) > 0f)
                {
                    winnerLossUnConverted = attacker.getStrenght(attackerModifier) * attacker.getStrenght(attackerModifier) / (defender.getStrenght(defenderModifier));
                }
                else
                {
                    winnerLossUnConverted = 0f;
                }
                int defenderLoss = defender.takeLossUnconverted(winnerLossUnConverted, attacker.owner);

                int attackerLoss = attacker.takeLoss(attacker.getSize(), defender.owner);



                result = new BattleResult(attacker.getOwner(), defender.getOwner(), initialAttackerSize, attackerLoss
                                          , initialDefenderSize, defenderLoss, attacker.Province, attackerWon, attackerBonus, defenderBonus);
            }
            Game.provincesToRedrawArmies.Add(defender.Province);

            if (attacker.getSize() == 0)
            {
                attacker.owner.KillArmy(attacker);
            }
            if (defender.getSize() == 0)
            {
                defender.owner.KillArmy(defender);
            }
            return(result);
        }
Ejemplo n.º 5
0
 public void AddArmy(Army army)
 {
     standingArmies.Add(army);
     //Debug.Log("Added " + army);
 }