public void Telsa_Tower_Can_Fire_On_Multiple_Targets_In_Range_At_Once() { //arrange var range = 100; var tower = new TeslaTower() { FireDelayMilis = 1000, Range = 100, Placed = true, Active = true }; var ground = new GroundEnemy(1.3F, 100, 100, null) { Center = new PointF(0, range) }; var flying = new FlyingEnemy(1.3F, 100, 100, null) { Center = new PointF(0, range) }; //act var bullets = tower.TryFire(new List<BaseEnemy>() { ground, flying }); //assert Assert.AreEqual(2, bullets.Count, "Telsa tower failed to fire on two valid targets in range at once."); }
public void Can_Only_Fire_On_Valid_TargetType() { //arrange var range = 100; var tower = new SimpleTower() { FireDelayMilis = 1000, Range = 100, TargetType = TargetTypes.Ground, Active = true }; var ground = new GroundEnemy(1.3F, 100, 100, null) { Center = new PointF(0, range) }; var flying = new FlyingEnemy(1.3F, 100, 100, null) { Center = new PointF(100, range) }; //act var targets = tower.FindTargets(new List<BaseEnemy>() { ground, flying }); //assert Assert.AreEqual(ground, targets.First(), "Tower found flying target but can only fire on ground targets."); }
public BaseEnemy SpawnOne(Map map) { LastTimeSpawn = DateTime.Now; Count--; BaseEnemy enemy = null; if (Ground) enemy = new GroundEnemy(Speed, HitPoints, 100, map) { Height = Height, Width = Width, Money = Money, Points = Points }; else enemy = new FlyingEnemy(Speed, HitPoints, 100, map) { Height = Height, Width = Width, Money = Money, Points = Points }; enemy.PositionEnemyForStart(map); return enemy; }
private void SpawnEnemiesStart(int hitPoints, int height, int width, bool ground, int count, int milis) { while (count > 0) { count--; if (ground) { BaseEnemy enemy = new GroundEnemy(1.3F, hitPoints, 100, this.Map) { Height = height, Width = width }; while (Updating) { } this.Enemies.Add(enemy); } else { BaseEnemy enemy = new FlyingEnemy(1.3F, hitPoints, 100, this.Map) { Height = height, Width = width }; while (Updating) { } this.Enemies.Add(enemy); } Thread.Sleep(milis); } }