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; }
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; }
public Invader(IAlienInvader invader) { Health = getInitialInvaderHealth(invader); AlienInvader = invader; }