summaryrefslogtreecommitdiff
path: root/Penguloon/Levels
diff options
context:
space:
mode:
authoraldrikboy <aldrikboy@gmail.com>2018-01-17 14:26:43 +0100
committeraldrikboy <aldrikboy@gmail.com>2018-01-17 14:26:43 +0100
commitaf0ba50d00722e1b7330d1f9b1d23bd3b07a5567 (patch)
treefbd7f63dc9bdfc4f1019c03b8f6bf7accb2dce7d /Penguloon/Levels
parenta9daa029db68962603905eded0e29c2a2e2abd91 (diff)
upgrades
Diffstat (limited to 'Penguloon/Levels')
-rw-r--r--Penguloon/Levels/IceLevel.cs2
-rw-r--r--Penguloon/Levels/LevelBase.cs6
-rw-r--r--Penguloon/Levels/Map.cs21
-rw-r--r--Penguloon/Levels/SandLevel2.cs89
-rw-r--r--Penguloon/Levels/WaveManager.cs9
5 files changed, 120 insertions, 7 deletions
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<Tuple<Type, int>>() { new Tuple<Type, int>(typeof(OrangeBalloon), 25), new Tuple<Type, int>(typeof(PurpleBalloon), 7) }, 500));
/* 14 */ Waves.Add(new Wave(new List<Tuple<Type, int>>() { new Tuple<Type, int>(typeof(OrangeBalloon), 25), new Tuple<Type, int>(typeof(PurpleBalloon), 12) }, 500));
/* 15 */ Waves.Add(new Wave(new List<Tuple<Type, int>>() { new Tuple<Type, int>(typeof(OrangeBalloon), 7), new Tuple<Type, int>(typeof(PurpleBalloon), 20) }, 500));
+
+ /* 16 */ Waves.Add(new Wave(new List<Tuple<Type, int>>() { new Tuple<Type, int>(typeof(RainbowBalloon), 10) }, 500));
+ /* 17 */ Waves.Add(new Wave(new List<Tuple<Type, int>>() { new Tuple<Type, int>(typeof(RainbowBalloon), 25) }, 500));
+ /* 18 */ Waves.Add(new Wave(new List<Tuple<Type, int>>() { new Tuple<Type, int>(typeof(RainbowBalloon), 25), new Tuple<Type, int>(typeof(DarkRainbowBalloon), 7) }, 500));
+ /* 19 */ Waves.Add(new Wave(new List<Tuple<Type, int>>() { new Tuple<Type, int>(typeof(RainbowBalloon), 25), new Tuple<Type, int>(typeof(DarkRainbowBalloon), 12) }, 500));
+ /* 20 */ Waves.Add(new Wave(new List<Tuple<Type, int>>() { new Tuple<Type, int>(typeof(RainbowBalloon), 7), new Tuple<Type, int>(typeof(DarkRainbowBalloon), 20) }, 500));
+
+ for (int i = 0; i < 400; i++)
+ Waves.Add(new Wave(new List<Tuple<Type, int>>() { new Tuple<Type, int>(typeof(DarkRainbowBalloon), 30 + (i * 10)) }, 300));
}
public void StartSpawningEnemies()