예제 #1
0
        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.");
        }
예제 #2
0
        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.");
        }
예제 #3
0
        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;
        }
예제 #4
0
        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);
            }
        }