From af0ba50d00722e1b7330d1f9b1d23bd3b07a5567 Mon Sep 17 00:00:00 2001 From: aldrikboy Date: Wed, 17 Jan 2018 14:26:43 +0100 Subject: upgrades --- Penguloon/Levels/IceLevel.cs | 2 +- Penguloon/Levels/LevelBase.cs | 6 ++- Penguloon/Levels/Map.cs | 21 +++++++--- Penguloon/Levels/SandLevel2.cs | 89 +++++++++++++++++++++++++++++++++++++++++ Penguloon/Levels/WaveManager.cs | 9 +++++ 5 files changed, 120 insertions(+), 7 deletions(-) create mode 100644 Penguloon/Levels/SandLevel2.cs (limited to 'Penguloon/Levels') diff --git a/Penguloon/Levels/IceLevel.cs b/Penguloon/Levels/IceLevel.cs index 4532774..07d57b7 100644 --- a/Penguloon/Levels/IceLevel.cs +++ b/Penguloon/Levels/IceLevel.cs @@ -11,7 +11,7 @@ namespace Penguloon.Levels public IceLevel() : base() { this.SplashArt = ContentManager.GetTexture("SplashArt/1"); - this.Money = 12350; + this.Money = 123350; this.Health = 200; this.ID = 1; this.MinimumLevel = 1; diff --git a/Penguloon/Levels/LevelBase.cs b/Penguloon/Levels/LevelBase.cs index 7d67d70..a9340b2 100644 --- a/Penguloon/Levels/LevelBase.cs +++ b/Penguloon/Levels/LevelBase.cs @@ -85,6 +85,7 @@ namespace Penguloon.Levels public void Restart() { + NewPR = false; CreateMap(); Map.WaveManager.CurrentWave = 1; @@ -311,8 +312,11 @@ namespace Penguloon.Levels } - public void FinishGame() + public void FinishGame(bool exit = false) { + ParentScene.OptionsMenu.State = IngameOptionsState.Hide; + + if (!exit) SoundManager.PlayGameOverSound(); Finished = true; diff --git a/Penguloon/Levels/Map.cs b/Penguloon/Levels/Map.cs index 547c0bc..362b1ba 100644 --- a/Penguloon/Levels/Map.cs +++ b/Penguloon/Levels/Map.cs @@ -6,6 +6,7 @@ using System.Collections.Generic; using System; using Penguloon.Objects; using Penguloon.Controls; +using System.Linq; namespace Penguloon.Levels { @@ -71,9 +72,14 @@ namespace Penguloon.Levels for (int i = 0; i < Enemies.Count; i++) { - if (Enemies[i].Texture != null) - ParentScene.Main.SpriteBatch.Draw(Enemies[i].Texture, - destinationRectangle: Enemies[i].Box); + try + { + if (Enemies[i] != null) + if (Enemies[i].Texture != null) + ParentScene.Main.SpriteBatch.Draw(Enemies[i].Texture, + destinationRectangle: Enemies[i].Box); + } + catch { } } for (int i = 0; i < Objects.Count; i++) @@ -151,7 +157,12 @@ namespace Penguloon.Levels { for (int i = 0; i < Enemies.Count; i++) { - Enemies[i].Update(deltaTime); + try + { + if (Enemies[i] != null) + Enemies[i].Update(deltaTime); + } + catch { } } if (ParentScene.Level.Finished) return; @@ -169,7 +180,7 @@ namespace Penguloon.Levels if(Enemies.Count == 0 && WaveManager.DoneSpawning && WaveManager.RoundActive) { WaveManager.RoundActive = false; - Level.Money += (WaveManager.CurrentWave * 15); + Level.Money += (WaveManager.CurrentWave * 25); } } diff --git a/Penguloon/Levels/SandLevel2.cs b/Penguloon/Levels/SandLevel2.cs new file mode 100644 index 0000000..5662e84 --- /dev/null +++ b/Penguloon/Levels/SandLevel2.cs @@ -0,0 +1,89 @@ +using Microsoft.Xna.Framework; +using Microsoft.Xna.Framework.Input.Touch; +using Penguloon.Enemies; +using Penguloon.Objects; +using Penguloon.Scenes; + +namespace Penguloon.Levels +{ + public class SandLevel2 : LevelBase + { + public SandLevel2() : base() + { + this.SplashArt = ContentManager.GetTexture("SplashArt/5"); + this.Money = 350; + this.Health = 200; + this.ID = 4; + this.MinimumLevel = 20; + LevelType = LevelType.Sand; + } + + public override void DrawUnique(float deltaTime) + { + base.DrawUnique(deltaTime); + } + + public override void UpdateUnique(float deltaTime, TouchLocation[] touchLocations) + { + base.UpdateUnique(deltaTime, touchLocations); + } + + public override void CreateMap() + { + Map = new Map(ParentScene, this); + Map.SpawnPoint = new Vector2(-1 * Map.TileWidth, 6 * Map.TileHeight); + Map.SpawnPointTargetPos = new Vector2(0 * Map.TileWidth, 6 * Map.TileHeight); + Map.FinishPoint = new Vector2(-1 * Map.TileWidth, 7 * Map.TileHeight); + + Tile OO = new Tile(0, Direction.None); + + Tile DN = new Tile(6, Direction.Down); + Tile RT = new Tile(5, Direction.Right); + Tile LT = new Tile(5, Direction.Left); + Tile UP = new Tile(6, Direction.Up); + + Tile TR = new Tile(4, Direction.Right); + Tile RU = new Tile(4, Direction.Up); + Tile DR = new Tile(3, Direction.Right); + + Tile DL = new Tile(1, Direction.Down); + Tile RD = new Tile(3, Direction.Down); + Tile LD = new Tile(1, Direction.Left); + Tile LU = new Tile(2, Direction.Left); + Tile TL = new Tile(2, Direction.Up); + + Tile FN = new Tile(5, Direction.Finish); + + Map.TileMap = new Tile[13, 18] + { + { OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO }, + { OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO }, + { OO,OO,DR,RT,RT,DL,OO,OO,DR,RT,RT,DL,OO,OO,DR,RT,RT,DL }, + { OO,OO,UP,OO,OO,DN,OO,OO,UP,OO,OO,DN,OO,OO,UP,OO,OO,DN }, + { OO,OO,UP,OO,OO,DN,OO,OO,UP,OO,OO,DN,OO,OO,UP,OO,OO,DN }, + { OO,OO,UP,OO,OO,DN,OO,OO,UP,OO,OO,DN,OO,OO,UP,OO,OO,DN }, + { RT,RT,TL,OO,OO,TR,RT,RT,TL,OO,OO,TR,RT,RT,TL,OO,OO,DN }, + { FN,LT,LD,OO,OO,RD,LT,LT,LD,OO,OO,RD,LT,LT,LD,OO,OO,DN }, + { OO,OO,UP,OO,OO,DN,OO,OO,UP,OO,OO,DN,OO,OO,UP,OO,OO,DN }, + { OO,OO,UP,OO,OO,DN,OO,OO,UP,OO,OO,DN,OO,OO,UP,OO,OO,DN }, + { OO,OO,RU,LT,LT,LU,OO,OO,RU,LT,LT,LU,OO,OO,RU,LT,LT,LU }, + { OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO }, + { OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO }, + }; + + // { OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO }, + // { OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO }, + // { OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO }, + // { OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO }, + // { OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO }, + // { OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO }, + // { OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO }, + // { OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO }, + // { OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO }, + // { OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO }, + // { OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO }, + // { OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO }, + // { OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO }, + } + } +} \ No newline at end of file diff --git a/Penguloon/Levels/WaveManager.cs b/Penguloon/Levels/WaveManager.cs index d7be1ba..cb17596 100644 --- a/Penguloon/Levels/WaveManager.cs +++ b/Penguloon/Levels/WaveManager.cs @@ -43,6 +43,15 @@ namespace Penguloon.Levels /* 13 */ Waves.Add(new Wave(new List>() { new Tuple(typeof(OrangeBalloon), 25), new Tuple(typeof(PurpleBalloon), 7) }, 500)); /* 14 */ Waves.Add(new Wave(new List>() { new Tuple(typeof(OrangeBalloon), 25), new Tuple(typeof(PurpleBalloon), 12) }, 500)); /* 15 */ Waves.Add(new Wave(new List>() { new Tuple(typeof(OrangeBalloon), 7), new Tuple(typeof(PurpleBalloon), 20) }, 500)); + + /* 16 */ Waves.Add(new Wave(new List>() { new Tuple(typeof(RainbowBalloon), 10) }, 500)); + /* 17 */ Waves.Add(new Wave(new List>() { new Tuple(typeof(RainbowBalloon), 25) }, 500)); + /* 18 */ Waves.Add(new Wave(new List>() { new Tuple(typeof(RainbowBalloon), 25), new Tuple(typeof(DarkRainbowBalloon), 7) }, 500)); + /* 19 */ Waves.Add(new Wave(new List>() { new Tuple(typeof(RainbowBalloon), 25), new Tuple(typeof(DarkRainbowBalloon), 12) }, 500)); + /* 20 */ Waves.Add(new Wave(new List>() { new Tuple(typeof(RainbowBalloon), 7), new Tuple(typeof(DarkRainbowBalloon), 20) }, 500)); + + for (int i = 0; i < 400; i++) + Waves.Add(new Wave(new List>() { new Tuple(typeof(DarkRainbowBalloon), 30 + (i * 10)) }, 300)); } public void StartSpawningEnemies() -- cgit v1.2.3-70-g09d2