public void PlasmaCannonAmmoUnAvailableTest() { IAttackImplement ai = AttackImplementFactory.CreateAttackImplement(AttackImplementType.PlasmaCannon); IFleet fleet = FleetFactory.CreateFleet(FleetConfigurationType.BalancedShips, BattleStratageyType.WeekShipsFirst); var shots = ai.Ammo; for (int i = 0; i < shots; i++) { ai.Fire(fleet, BattleStratageyType.StrongShipsFirst); } Assert.False(ai.AmmoAvailable); }
public void LaserAmmoNeverUnAvailableTest() { IAttackImplement ai = AttackImplementFactory.CreateAttackImplement(AttackImplementType.Laser); IFleet fleet = FleetFactory.CreateFleet(FleetConfigurationType.BalancedShips, BattleStratageyType.WeekShipsFirst); for (int i = 0; i < 600; i++) { ai.Fire(fleet, BattleStratageyType.StrongShipsFirst); } Assert.True(ai.AmmoAvailable); Assert.False(ai.Ammo.HasValue); }
public void FireTest() { IFleet fleet = FleetFactory.CreateFleet(FleetConfigurationType.HeavyShips, BattleStratageyType.NoPriority); var oTotalHealthAndArmor = fleet.StarShips.Sum(x => x.Health) + fleet.StarShips.Sum(x => x.Armor); IAttackImplement attackImplement = AttackImplementFactory.CreateAttackImplement(AttackImplementType.Laser); //Has A random miss rate for (int i = 0; i < 1000; i++) { attackImplement.Fire(fleet, BattleStratageyType.WeekShipsFirst); } var newTotalHealthAndArmor = fleet.StarShips.Sum(x => x.Health) + fleet.StarShips.Sum(x => x.Armor); Assert.True(oTotalHealthAndArmor > newTotalHealthAndArmor); }