示例#1
0
        public override void Start()
        {
            Ship    = Entity.EntityManager.GetAll <FlightShip>().First();
            _camera = Entity.EntityManager.GetAll <FlightCameraControl>().First();

            _oldCameraScale     = _camera.CameraScale;
            _camera.CameraScale = 5f;

            var random        = new Random();
            var takenUpgrades = Ship.Upgrades.ToArray();
            var possible      = PotentialUpgrades
                                .Where(x => takenUpgrades.All(y => y.GetType() != x.GetType()))
                                .Select(x => (x, random.Next(1000)))
                                .ToList() as List <(UpgradeBase, int)>;

            possible
            .Sort((x, y) => x.Item2 - y.Item2);
            var candidates = possible.Select(x => x.Item1)
                             .ToArray();

            if (candidates.Length < 3)
            {
                candidates = PotentialUpgrades;
            }

            _dispose = UserInterfaceManager.Create(new UpgradeMenu(
                                                       new List <UpgradeBase>()
            {
                candidates[0],
                candidates[1],
                candidates[2]
            },
                                                       OnSelect
                                                       ));
        }
示例#2
0
        public override void Start()
        {
            Ship                = Entity.EntityManager.GetAll <FlightShip>().First();
            _camera             = Entity.EntityManager.GetAll <FlightCameraControl>().First();
            _oldCameraScale     = _camera.CameraScale;
            _camera.CameraScale = 60f;
            SpawnEnemy(new Vector3(-6, 0, -5), 2, 3);

            var targetEnt = Entity.Create();

            _target = targetEnt.Add(new PhaseKillTarget(this, _droneEntities.Select(x => x.Get <FlightShip>()), 0));
            targetEnt.Add(new PhaseKillTargetRenderable());
        }
示例#3
0
        public override void Start()
        {
            Ship                = Entity.EntityManager.GetAll <FlightShip>().First();
            _camera             = Entity.EntityManager.GetAll <FlightCameraControl>().First();
            _oldCameraScale     = _camera.CameraScale;
            _camera.CameraScale = 60f;
            SpawnWave(new Vector3(0, 0, -20), 2, 0, true);

            var targetEnt = Entity.Create();

            _target = targetEnt.Add(new PhaseKillTarget(this, _enemies.Select(x => x.Get <FlightShip>()), 0));
            targetEnt.Add(new PhaseKillTargetRenderable());

            _asteroidSpawner = Entity.Create().Add(new AsteroidSpawner(Ship, 5, AsteroidDistributions.StandardAsteroidDistribution));
            MusicManager.Start("Boss2");
        }
示例#4
0
        public override void Start()
        {
            Ship                = Entity.EntityManager.GetAll <FlightShip>().First();
            _camera             = Entity.EntityManager.GetAll <FlightCameraControl>().First();
            _oldCameraScale     = _camera.CameraScale;
            _camera.CameraScale = 60f;
            SpawnWave(new Vector3(15, 0, -8), 10, 0, true);
            SpawnWave(new Vector3(15, 0, -8), 30, 1);
            SpawnWave(new Vector3(15, 0, -8), 50, 2);

            var targetEnt = Entity.Create();

            _target = targetEnt.Add(new PhaseKillTarget(this, _enemies.Select(x => x.Get <FlightShip>()), 0));
            targetEnt.Add(new PhaseKillTargetRenderable());

            MusicManager.Start("Boss");
        }
示例#5
0
        public override void Start()
        {
            Ship                = Entity.EntityManager.GetAll <FlightShip>().First();
            _camera             = Entity.EntityManager.GetAll <FlightCameraControl>().First();
            _oldCameraScale     = _camera.CameraScale;
            _camera.CameraScale = 70f;
            if (_numDrones >= 1)
            {
                SpawnDrone(new Vector3(0, 0, -5), 2, 10);
            }
            if (_numDrones >= 2)
            {
                SpawnDrone(new Vector3(0, 0, 10), 2, 20);
            }
            if (_numDrones >= 3)
            {
                SpawnDrone(new Vector3(5, 0, 10), 3, 30);
            }
            if (_numDrones >= 4)
            {
                SpawnDrone(new Vector3(5, 0, -5), 3, 40);
            }
            if (_numDrones >= 5)
            {
                SpawnDrone(new Vector3(10, 0, 5), 3, 50);
            }
            if (_numDrones >= 6)
            {
                SpawnDrone(new Vector3(0, 0, 0), 3, 60);
            }


            var targetEnt = Entity.Create();

            _target = targetEnt.Add(new PhaseKillTarget(this, _droneEntities.Select(x => x.Get <FlightShip>()), 0));
            targetEnt.Add(new PhaseKillTargetRenderable());


            _asteroidSpawner = Entity.Create().Add(new AsteroidSpawner(Ship, 5, AsteroidDistributions.StandardAsteroidDistribution));
        }