public int getNextSAAlive(int cur)
        {
            int total = secondSquad.Count;
            int i     = cur + 1;

            while (i < total)
            {
                MiddleEarthCitizen unit = (MiddleEarthCitizen)secondSquad[i];
                if (!unit.isDead())
                {
                    return(i);
                }

                ++i;
            }

            i = 0;

            while (i <= cur)
            {
                MiddleEarthCitizen unit = (MiddleEarthCitizen)secondSquad[i];
                if (!unit.isDead())
                {
                    return(i);
                }

                ++i;
            }

            return(cur);
        }
        public bool secondRoundAttack(Army oppo)
        {
            int k = -1, e = -1;

            while (getSecondArmyAlives() > 0 && oppo.getSecondArmyAlives() > 0)
            {
                int kw = getNextSAAlive(k);
                if (kw == -1)
                {
                    return(false); //defender won
                }

                int ew = oppo.getNextSAAlive(e);
                if (ew == -1)
                {
                    return(true); //attacker won
                }

                MiddleEarthCitizen warrior = (MiddleEarthCitizen)getSecondArmy()[kw];
                MiddleEarthCitizen enemy   = (MiddleEarthCitizen)oppo.getSecondArmy()[ew];

                warrior.applyAttack(enemy);
                if (!enemy.isDead())
                {
                    enemy.applyAttack(warrior);
                }

                k = kw;
                e = ew;
            }

            return(true); //will not even be called
        }
        public bool firstRoundAttack(Army oppo)
        { //Loop through alive units
            int k = -1, e = -1;

            while (getFirstArmyAlives() > 0 && oppo.getFirstArmyAlives() > 0)
            {
                int kw = getNextFAAlive(k);
                if (kw == -1)
                {
                    return(false); //defender won
                }

                int ew = oppo.getNextFAAlive(e);
                if (ew == -1)
                {
                    return(true); //attacker won
                }

                MiddleEarthCitizen warrior = (MiddleEarthCitizen)getFirstArmy()[kw];
                MiddleEarthCitizen enemy   = (MiddleEarthCitizen)oppo.getFirstArmy()[ew];

#if (DEBUG)
                Console.WriteLine(warrior.getName() + " attacked " + enemy.getName() + " with " + Convert.ToString(warrior.getPower()) + " to " + Convert.ToString((enemy.getPower() - warrior.getPower())) + "hp");
#endif
                warrior.applyAttack(enemy);
                if (!enemy.isDead())
                {
#if (DEBUG)
                    Console.WriteLine(enemy.getName() + " attacked " + warrior.getName() + " with " + Convert.ToString(enemy.getPower()) + " to " + Convert.ToString((warrior.getPower() - enemy.getPower())) + "hp");
#endif
                    enemy.applyAttack(warrior);
                }
                else
                {
                    Console.WriteLine(">>>>>>>>>> [" + enemy.getName() + " is not survived!] <<<<<<<<<<");
                }

                k = kw;
                e = ew;
            }

            return(true); //will not even be called
        }
Beispiel #4
0
 public void applyAttack(MiddleEarthCitizen enemy)
 {
     enemy.setPower(enemy.getPower() - getPower());
 }