public PhaseDistanceTarget(Phase phase, FlightShip ship, float distanceTarget) { _phase = phase; _ship = ship; _shipTransform = ship.Entity.Get <Transform>(); _targetZ = _shipTransform.Location.Z - distanceTarget; }
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 )); }
public AsteroidSpawner(FlightShip playerShip, int difficult, Distribution <Type> distribution, PhaseDistanceTarget distanceTarget = null) { _flightShip = playerShip; _distanceTarget = distanceTarget; _distribution = distribution; _difficult = difficult; _spawnPerWave = 1 + (int)Math.Ceiling(_difficult / 25.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()); }
public virtual void OnHit(FlightNode node, FlightShip ship, Point gridLocation, Vector3 nodeLocation, Section section) { ship.Damage(gridLocation, Damage); Entity.Delete(); var explosionEnt = Entity.EntityManager.Create(); explosionEnt.Add(new Transform() { Location = Transform.Location }); explosionEnt.Add(new ClusterExplosionEffect()); }
public virtual void OnDestruction(FlightShip ship, FlightNode node) { var explosionEnt = ship.Entity.EntityManager.Create(); explosionEnt.Add(new Transform() { Location = node.GlobalLocation }); explosionEnt.Add(new ClusterExplosionEffect() { DistanceScaleFactor = 3f, ScaleFactor = 2f, Components = 16 }); }
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"); }
public void OnHit(FlightNode node, FlightShip ship, Point gridLocation, Vector3 nodeLocation, Section section) { if (!_claimed) { if (ship.HasUpgrade <OreProcessing>()) { ship.AddEnergy(2); } else { ship.AddEnergy(1); } _claimed = true; } Entity.Delete(); }
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"); }
private void SpawnWave(Vector3 playerOffset, float spawnDistace, int wallWave, bool startActive = false) { var shipTransform = Ship.Entity.Get <Transform>(); var enemy = Entity.EntityManager.Create(); enemy.Add(new Transform { Location = shipTransform.Location + playerOffset * spawnDistace, }); var ship = enemy.AddShipBasics(CreateWall(wallWave)); ship.Rotation = (float)Math.PI; var brain = enemy.Add(new GalactusBrain(Ship, playerOffset, 4f)); _enemies.Add(enemy); _ship = ship; }
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)); }
public override void OnDestruction(FlightShip ship, FlightNode node) { for (var direction = 0; direction < 6; direction++) { var gridLocation = HexagonHelpers.GetFromDirection(node.GridLocation, (int)direction); // Boom ship.Damage(gridLocation, 300); } var explosionEnt = ship.Entity.EntityManager.Create(); explosionEnt.Add(new Transform() { Location = node.GlobalLocation }); explosionEnt.Add(new ClusterExplosionEffect() { DistanceScaleFactor = 2f, ScaleFactor = 3f, Components = 16 }); }
public TakeAimBehaviour(FlightShip playerShip, FlightShip flightShip, Transform transform) { _playerShip = playerShip; _flightShip = flightShip; _transform = transform; }
public ShipStats(FlightShip flightShip) { _flightShip = flightShip; }
public DeathRunBehaviour(FlightShip ship, FlightShip playerShip, PositionChaserBehaviour positionChaserBehaviour) { _ship = ship; _playerShip = playerShip; _positionChaserBehaviour = positionChaserBehaviour; }
public CrusherBrain(FlightShip playerShip, Vector3 playerOffset) { _playerShip = playerShip; _playerOffset = playerOffset; }
public TransitionFromPlanet(Action runAfter, FlightShip flightShip, Camera camera) { _flightShip = flightShip; _runAfter = runAfter; _camera = camera; }
public StormWallBrain(FlightShip playerShip, Vector3 playerOffset) { _playerShip = playerShip; _playerOffset = playerOffset; }
public FlightScreenTemplate(GraphicsDevice graphicsDevice, FlightShip flightShip, ProgressTracker progressTracker) { _graphicsDevice = graphicsDevice; _flightShip = flightShip; _progressTracker = progressTracker; }
public PositionChaserBehaviour(FlightShip ship, Transform transform, Vector3 target) { _ship = ship; _transform = transform; Target = target; }
public SwarmShipBrain(FlightShip playerShip) { _playerShip = playerShip; }
public override void Tick(TickContext context) { if (!_iniTimer.Completed) { _iniTimer.Tick(context.DeltaTime); return; } _pos += context.DeltaTimeSeconds * (float)(Math.PI / 10f); _positionChaserBehaviour.Target = _playerShip.Entity.Get <Transform>().Location + new Vector3( (float)Math.Cos(_pos) * _circleRadius, 0f, (float)Math.Sin(_pos) * _circleRadius ) + _playerOffset; _positionChaserBehaviour.Tick(context); //_takeAimBehaviour.Tick(context); _fireTimer.Tick(context.DeltaTime); if (_fireTimer.Completed) { WeaponCapability.StandardFire(); _fireTimer.Restart(); } //_changeAimTimer.Tick(context.DeltaTime); //if (_changeAimTimer.Completed) //{ // _oscillateMode = !_oscillateMode; // _changeAimTimer.Restart(); // _takeAimBehaviour.SetRandomAimOffset((float)Math.PI/3); //} _shieldDeployTimer.Tick(context.DeltaTime); if (_shieldDeployTimer.Completed) { WeaponCapability.ShieldDeploy(); _shieldDeployTimer.Restart(); } _bombardTimer.Tick(context.DeltaTime); if (_bombardTimer.Completed) { _bombardTimer.Restart(); WeaponCapability.BombardFire(); } _fireTimer.Tick(context.DeltaTime); if (_fireTimer.Completed) { _shotCount++; if (_shotCount % 5 == 0) { WeaponCapability.HeavyFire(); } else { WeaponCapability.StandardFire(); } _fireTimer.Restart(); } WeaponCapability.RocketBlast(); FlightShip.Update(() => { FlightShip.Rotation += 0.01f * context.DeltaTimeSeconds; FlightShip.AddEnergy(100); }); }
public ChaseDroneBrain(FlightShip playerShip, Vector3 playerOffset, float circleRadius) { _playerShip = playerShip; _circleRadius = circleRadius; _playerOffset = playerOffset; }
public GalactusBrain(FlightShip playerShip, Vector3 playerOffset, float circleRadius) { _playerShip = playerShip; _circleRadius = circleRadius; _playerOffset = playerOffset; }
public virtual void OnHit(FlightNode node, FlightShip ship, Point gridLocation, Vector3 nodeLocation, Section section) { }