public IEnumerable<IDefenceWeapon> WeaponsFor(IAlienInvader[] alienInvaders)
        {
            var weaponsToFire = new List<IDefenceWeapon>();
            var invaderCount = alienInvaders.Count();
            NewWaveIncoming();
            foreach (var weapon in _weaponsAvailableForDefence)
            {
                if (!weapon.IsReloading())
                    weapon.DeployTo(weaponsToFire);

                if (invaderCount == weaponsToFire.Count)
                    break;
            }
            return weaponsToFire;
        }
Example #2
0
            private int getInitialInvaderHealth(IAlienInvader invader)
            {
                switch (invader.Size)
                {
                case FlyingSaucerSize.Huge:
                    return(8);

                case FlyingSaucerSize.Large:
                    return(3);

                case FlyingSaucerSize.Small:
                    return(1);
                }

                throw new Exception();
            }
 public AlienInvasionWave(IAlienInvader[] invaders, IDefenceWeapon[] weapons)
 {
     AlienInvaders = invaders;
     WeaponsAvailableForDefence = weapons;
 }
Example #4
0
 public Invader(IAlienInvader invader)
 {
     Health       = getInitialInvaderHealth(invader);
     AlienInvader = invader;
 }