private static void GeneratePackedHomogene(WaveDescriptor description, int qty) { description.Distance = Distance.Near; description.SwitchEvery = qty / Main.Random.Next(5, 10); description.Delay = Main.Random.Next(4000, 8000); description.ApplyDelayEvery = description.SwitchEvery; }
private static void GenerateHomogene(WaveDescriptor description) { description.Distance = Distances[Main.Random.Next(2, Distances.Count)]; description.SwitchEvery = -1; description.Delay = 0; description.ApplyDelayEvery = -1; }
private static void GenerateDistinctsWhichFollow(WaveDescriptor description, int qty, int enemiesCount) { description.Distance = Distances[Main.Random.Next(2, Distances.Count)]; description.SwitchEvery = qty / enemiesCount; description.Delay = Main.Random.Next(2000, 4000); description.ApplyDelayEvery = description.SwitchEvery; }
public static WaveDescriptor Generate(int difficulty, int qty, List<EnemyType> enemies) { //StartingTime = 0; //Enemies = new List<EnemyType>(); //CashValue = 1; //Distance = Distance.Joined; //Delay = 0; //ApplyDelayEvery = -1; //SwitchEvery = -1; var result = new WaveDescriptor() { LivesLevel = difficulty, SpeedLevel = difficulty, Quantity = qty, Enemies = enemies }; switch (Main.Random.Next(0, 3)) { case 0: GenerateHomogene(result); break; case 1: GenerateDistinctsWhichFollow(result, qty, enemies.Count); break; case 2: GeneratePackedHomogene(result, qty); break; } return result; }
public Wave(Simulator simulator, WaveDescriptor descriptor) { Simulator = simulator; Descriptor = descriptor; NewEnemies = new List<Enemy>(); }
public void Sync(WaveDescriptor descriptor) { StartingTime.Value = (int) descriptor.StartingTime / 1000; Enemies.Sync(descriptor.Enemies); Level.Value = descriptor.LivesLevel; CashValue.Value = descriptor.CashValue; QuantityWidget.Value = descriptor.Quantity; Distance = descriptor.Distance; Delay = (int) (descriptor.Delay / 1000); ApplyDelayEvery = descriptor.ApplyDelayEvery; SwitchEvery = descriptor.SwitchEvery; }
public static LevelDescriptor GetPerformanceTestDescriptor() { LevelDescriptor d = new LevelDescriptor(); CelestialBodyDescriptor c; WaveDescriptor v; d.Player.Lives = 1; d.Player.Money = 100; d.Infos.Background = "background14"; for (int i = 0; i < 6; i++) { c = new CelestialBodyDescriptor(); c.Name = i.ToString(); c.Path = new Vector3(150, 100, 0); c.StartingPosition = (int) (i * 14f); c.Size = Size.Small; c.Speed = 120000; c.Image = "stationSpatiale1"; c.PathPriority = 30 - i; c.Invincible = true; c.AddTurret(TurretType.Gravitational, 1, new Vector3(-6, 0, 0)); c.AddTurret(TurretType.Basic, 10, new Vector3(0, 6, 0)); c.AddTurret(TurretType.Basic, 10, new Vector3(0, -6, 0)); d.PlanetarySystem.Add(c); } d.Objective.CelestialBodyToProtect = d.PlanetarySystem[0].PathPriority; for (int i = 0; i < 8; i++) { c = new CelestialBodyDescriptor(); c.Name = (i+8).ToString(); c.Path = new Vector3(300, 200, 0); c.StartingPosition = (int)(i * 11f); c.Size = Size.Small; c.Speed = 120000; c.Image = "stationSpatiale2"; c.PathPriority = 24 - i; c.Invincible = true; c.AddTurret(TurretType.Gravitational, 1, new Vector3(-6, 0, 0)); c.AddTurret(TurretType.MultipleLasers, 10, new Vector3(0, 6, 0)); c.AddTurret(TurretType.MultipleLasers, 10, new Vector3(0, -6, 0)); d.PlanetarySystem.Add(c); } for (int i = 0; i < 16; i++) { c = new CelestialBodyDescriptor(); c.Name = (i+16).ToString(); c.Path = new Vector3(450, 300, 0); c.StartingPosition = (int)(i * 5f); c.Size = Size.Small; c.Speed = 120000; c.Image = "stationSpatiale1"; c.PathPriority = 16 - i; c.Invincible = true; c.AddTurret(TurretType.Gravitational, 1, new Vector3(-6, 0, 0)); c.AddTurret(TurretType.Basic, 10, new Vector3(0, 6, 0)); c.AddTurret(TurretType.Basic, 10, new Vector3(0, -6, 0)); d.PlanetarySystem.Add(c); } c = new CelestialBodyDescriptor(); c.Name = "1111"; c.Path = new Vector3(700, -400, 0); c.Speed = 320000; c.Size = Size.Small; c.Images.Add("Asteroid"); c.Images.Add("Plutoid"); c.Images.Add("Comet"); c.Images.Add("Centaur"); c.Images.Add("Trojan"); c.Images.Add("Meteoroid"); c.PathPriority = 0; c.CanSelect = true; d.PlanetarySystem.Add(c); v = new WaveDescriptor(); v.Enemies = new List<EnemyType>() { EnemyType.Plutoid }; v.LivesLevel = 150; d.Waves.Add(v); v = new WaveDescriptor(); v.Enemies = new List<EnemyType>() { EnemyType.Comet }; v.LivesLevel = 150; v.Quantity = 100; d.Waves.Add(v); v = new WaveDescriptor(); v.Enemies = new List<EnemyType>() { EnemyType.Meteoroid }; v.LivesLevel = 150; v.Quantity = 100; d.Waves.Add(v); return d; }
public void DoNextWaveCompositionChanged(WaveDescriptor composition) { StartingPathMenu.NextWaveComposition = composition; GameBarPanel.NextWaveComposition = composition; }
public void SetWaveDescriptors(WaveDescriptor[] waveDescriptors) { m_waveDescriptors = waveDescriptors; }