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);
        }
Ejemplo n.º 3
0
        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);
        }