Beispiel #1
0
 public void LaunchMissileTowardTarget()
 {
     var game = new Game();
     var system = new StarSystem();
     game.Add(system);
     var enemy = new Ship();
     system.AddEntity(enemy);
     var attacker = new Ship() { Tubes = 3 };
     system.AddEntity(attacker);
     game.Update(TimeSpan.FromSeconds(0.25));
     attacker.LoadProjectile(0, ProjectileType.Torpedo);
     enemy.ImpulsePercentage = 100;
     game.Update(TimeSpan.FromSeconds(0.25));
     game.Update(TimeSpan.FromSeconds(0.25));
     game.Update(TimeSpan.FromSeconds(0.25));
     game.Update(TimeSpan.FromSeconds(0.25));
     game.Update(TimeSpan.FromSeconds(0.25));
     game.Update(TimeSpan.FromSeconds(0.25));
     game.Update(TimeSpan.FromSeconds(0.25));
     game.Update(TimeSpan.FromSeconds(0.25));
     game.Update(TimeSpan.FromSeconds(0.25));
     game.Update(TimeSpan.FromSeconds(0.25));
     game.Update(TimeSpan.FromSeconds(0.25));
     game.Update(TimeSpan.FromSeconds(0.25));
     game.Update(TimeSpan.FromSeconds(0.25));
     game.Update(TimeSpan.FromSeconds(0.25));
     game.Update(TimeSpan.FromSeconds(0.25));
     game.Update(TimeSpan.FromSeconds(0.25));
     game.Update(TimeSpan.FromSeconds(0.25));
     game.Update(TimeSpan.FromSeconds(0.25));
     game.Update(TimeSpan.FromSeconds(0.25));
     game.Update(TimeSpan.FromSeconds(0.25));
     Assert.AreNotEqual(0, enemy.Position.X, "The enemy should have moved along the x axis");
     Assert.AreEqual(0, attacker.Position.X, "the attacker was not at the center");
     var missile = attacker.LaunchProjectile(0, enemy);
     Assert.AreEqual(0, missile.Position.X, "the missile was not at the center");
     var oldDiff = enemy.Position.X - missile.Position.X;
     missile.Update(TimeSpan.FromSeconds(0.25));
     var newDiff = enemy.Position.X - missile.Position.X;
     Assert.IsTrue(newDiff < oldDiff, "The missile didn't get closer to the ship");
 }
Beispiel #2
0
 public void LoadProjectileLaunchWithoutWaitingAfterLoading()
 {
     var game = new Game();
     var system = new StarSystem();
     system.RandomlySpawnEnemies = false;
     game.Add(system);
     var ship = new Ship() { Tubes = 3 };
     system.AddEntity(ship);
     game.Update(TimeSpan.FromSeconds(0.25));
     ship.LoadProjectile(0, ProjectileType.Torpedo);
     var projectile = ship.LaunchProjectile(0, ship);
     Assert.IsNull(projectile, "The projectile shouldn't have been launched if there hasn't been enough time to load it.");
 }
Beispiel #3
0
 public void LoadProjectileDoubleLoad()
 {
     var game = new Game();
     var system = new StarSystem();
     system.RandomlySpawnEnemies = false;
     game.Add(system);
     var ship = new Ship() { Tubes = 3 };
     system.AddEntity(ship);
     game.Update(TimeSpan.FromSeconds(0.25));
     var loaded = ship.LoadProjectile(0, ProjectileType.Torpedo);
     Assert.IsTrue(loaded, "Couldn't load the first projectile");
     loaded = ship.LoadProjectile(0, ProjectileType.Torpedo);
     Assert.IsFalse(loaded, "Somehow Loaded a second projectile.");
 }