Esempio n. 1
0
        private void UpdateEnemySpawns(double gameTime)
        {
            if (UpComingEnemies.Count == 0)
            {
                return;
            }

            EnemyDef lastElement = UpComingEnemies[UpComingEnemies.Count - 1];

            if (gameTime < lastElement.LaunchTime)
            {
                UpComingEnemies.RemoveAt(UpComingEnemies.Count - 1);
                _enemies.Add(CreateEnemyFromDef(lastElement));
            }
        }
Esempio n. 2
0
        private Enemy CreateEnemyFromDef(EnemyDef enemyDef)
        {
            Enemy enemy = new Enemy(_textureManager, _effectManager, _bulletManager, _soundManager);

            switch (enemyDef.EnemyType)
            {
            case "cannon_fodder":
            {
                List <Vector> _pathPoints = new List <Vector>();
                _pathPoints.Add(enemyDef.StartPos);
                _pathPoints.Add(new Vector(0, 250, 0));
                _pathPoints.Add(new Vector(-1400, 0, 0));

                enemy.Path = new Path(_pathPoints, 10);
                return(enemy);
            }

            case "cannon_fodder_low":
            {
                List <Vector> _pathPoints = new List <Vector>();
                _pathPoints.Add(enemyDef.StartPos);
                _pathPoints.Add(new Vector(0, -250, 0));
                _pathPoints.Add(new Vector(-1400, 0, 0));

                enemy.Path = new Path(_pathPoints, 10);
                return(enemy);
            }

            case "cannon_fodder_straight":
            {
                List <Vector> _pathPoints = new List <Vector>();
                _pathPoints.Add(enemyDef.StartPos);
                _pathPoints.Add(new Vector(-1400, 0, 0));

                enemy.Path = new Path(_pathPoints, 14);
                return(enemy);
            }

            case "up_1":
            {
                List <Vector> _pathPoints = new List <Vector>();
                _pathPoints.Add(new Vector(500, -375, 0));
                _pathPoints.Add(new Vector(500, 0, 0));
                _pathPoints.Add(new Vector(500, 0, 0));
                _pathPoints.Add(new Vector(-1400, 200, 0));

                enemy.Path = new Path(_pathPoints, 10);
                return(enemy);
            }

            case "down_1":
            {
                List <Vector> _pathPoints = new List <Vector>();
                _pathPoints.Add(enemyDef.StartPos);
                _pathPoints.Add(new Vector(500, 0, 0));
                _pathPoints.Add(new Vector(500, 0, 0));
                _pathPoints.Add(new Vector(-1400, -200, 0));

                enemy.Path = new Path(_pathPoints, 10);
                return(enemy);
            }

            case "test_for_points":
            {
                List <Vector> _pathPoints = new List <Vector>();
                _pathPoints.Add(enemyDef.StartPos);
                _pathPoints.Add(new Vector(0, 0, 0));
                _pathPoints.Add(new Vector(0, 100, 0));
                _pathPoints.Add(new Vector(-250, 375, 0));
                _pathPoints.Add(new Vector(-1400, 375, 0));

                enemy.Path = new Path(_pathPoints, 5);
                return(enemy);
            }

            case "formation1_1":
            {
                List <Vector> _pathPoints = new List <Vector>();
                _pathPoints.Add(enemyDef.StartPos);
                _pathPoints.Add(new Vector(-1400, 0, 0));

                enemy.Path = new Path(_pathPoints, 10);
                return(enemy);
            }

            case "formation1_2":
            {
                List <Vector> _pathPoints = new List <Vector>();
                _pathPoints.Add(enemyDef.StartPos);
                _pathPoints.Add(new Vector(-1400, 100, 0));

                enemy.Path = new Path(_pathPoints, 10);
                return(enemy);
            }

            case "formation1_3":
            {
                List <Vector> _pathPoints = new List <Vector>();
                _pathPoints.Add(enemyDef.StartPos);
                _pathPoints.Add(new Vector(-1400, -100, 0));

                enemy.Path = new Path(_pathPoints, 10);
                return(enemy);
            }

            default:
            {
                System.Diagnostics.Debug.Assert(false, "Unknown Enemy Type.");
                return(enemy);
            }
            }
        }