Beispiel #1
0
        public void CheckStealthBoost()
        {
            var ship = new CombatShip(_game, string.Empty, 10, 10, Color.White, 1, 1, 100, 1, EShipType.StealthFighter, 0)
            {
                Signature = 1
            };

            ship.UseAbility(EAbilityType.StealthBoost);
            ship.Signature.ShouldBe(0.666f, 0.001);
        }
Beispiel #2
0
        public void CheckScanBoost()
        {
            var ship = new CombatShip(_game, string.Empty, 10, 10, Color.White, 1, 1, 100, 1, EShipType.Scout, 0)
            {
                ScanRange = 1
            };

            ship.UseAbility(EAbilityType.ScanBoost);
            ship.ScanRange.ShouldBe(1.5f, 0.001);
        }
Beispiel #3
0
        public void CheckShieldBoost()
        {
            var ship = new CombatShip(_game, string.Empty, 10, 10, Color.White, 1, 1, 100, 1, EShipType.Bomber, 0)
            {
                MaxShield = 100,
                Shield    = 10
            };

            ship.UseAbility(EAbilityType.ShieldBoost);
            ship.Shield.ShouldBe(60f, 0.001);
        }
Beispiel #4
0
        public void CheckEngineBoost()
        {
            var ship = new CombatShip(_game, string.Empty, 10, 10, Color.White, 1, 1, 100, 1, EShipType.Frigate, 0)
            {
                Speed = 1
            };

            ship.UseAbility(EAbilityType.EngineBoost);
            ship.Speed.ShouldBe(1.5f, 0.001);
            Thread.Sleep(6000);

            ship.AbilityIsActive(EAbilityType.EngineBoost).ShouldBe(false);
            ship.Speed.ShouldBe(1f, 0.001);
        }
Beispiel #5
0
        public void CheckStealthBoostWithMaxUpgrade()
        {
            var effect = _game.TechTree[0].TechItems.First(_ => _.Name == "Ability Effect +30%");

            effect.ApplyGlobalUpgrade(_game.TechTree[0]);

            var ship = new CombatShip(_game, string.Empty, 10, 10, Color.White, 1, 1, 100, 1, EShipType.StealthFighter, 0)
            {
                Signature = 1
            };

            ship.UseAbility(EAbilityType.StealthBoost);
            ship.Signature.ShouldBe(0.512f, 0.001);
        }
Beispiel #6
0
        public void CheckEngineBoostWithMaxUpgrade()
        {
            var effect = _game.TechTree[0].TechItems.First(_ => _.Name == "Ability Effect +30%");

            effect.ApplyGlobalUpgrade(_game.TechTree[0]);

            var ship = new CombatShip(_game, string.Empty, 10, 10, Color.White, 1, 1, 100, 1, EShipType.Frigate, 0)
            {
                Speed = 1
            };

            var expectedSpeed = 1 * 1.5f * 1.3f;

            ship.UseAbility(EAbilityType.EngineBoost);
            ship.Speed.ShouldBe(expectedSpeed, 0.001);
        }
Beispiel #7
0
        public void CheckDurationUpgrade()
        {
            var effect = _game.TechTree[0].TechItems.First(_ => _.Name == "Ability Duration +30%");

            effect.ApplyGlobalUpgrade(_game.TechTree[0]);

            var ship = new CombatShip(_game, string.Empty, 10, 10, Color.White, 1, 1, 100, 1, EShipType.Frigate, 0);

            var ability          = ship.Abilities[EAbilityType.WeaponBoost];
            var expectedDuration = 5 * 1.3f;

            ability.AbilityDuration.ShouldBe(expectedDuration, 0.001);
            ship.UseAbility(EAbilityType.WeaponBoost);
            ability.IsActive().ShouldBeTrue();

            var duration = ability.InActiveAfter - DateTime.Now;

            duration.TotalSeconds.ShouldBeLessThanOrEqualTo(expectedDuration);
        }