summaryrefslogtreecommitdiff
path: root/Penguloon/Levels
diff options
context:
space:
mode:
authoraldrikboy <aldrikboy@gmail.com>2018-01-01 23:49:59 +0100
committeraldrikboy <aldrikboy@gmail.com>2018-01-01 23:49:59 +0100
commitc3c4f2c7617c393ad6e8c7f1d87abf4a9a8cf602 (patch)
treeaff9fde951a0ecbd18aac6b32f6ccbbe82709610 /Penguloon/Levels
parentda38e93e55b6ff46a53dcd9d2be393149089d329 (diff)
bobba
Diffstat (limited to 'Penguloon/Levels')
-rw-r--r--Penguloon/Levels/IceLevel3.cs88
-rw-r--r--Penguloon/Levels/LevelBase.cs38
-rw-r--r--Penguloon/Levels/Map.cs1
3 files changed, 124 insertions, 3 deletions
diff --git a/Penguloon/Levels/IceLevel3.cs b/Penguloon/Levels/IceLevel3.cs
new file mode 100644
index 0000000..1a7451d
--- /dev/null
+++ b/Penguloon/Levels/IceLevel3.cs
@@ -0,0 +1,88 @@
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Input.Touch;
+using Penguloon.Enemies;
+using Penguloon.Objects;
+using Penguloon.Scenes;
+
+namespace Penguloon.Levels
+{
+ public class IceLevel3 : LevelBase
+ {
+ public IceLevel3() : base()
+ {
+ this.SplashArt = ContentManager.GetTexture("SplashArt/3");
+ this.Money = 123550;
+ this.Health = 200;
+ this.ID = 3;
+ this.MinimumLevel = 5;
+ }
+
+ 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(9 * Map.TileWidth, -1 * Map.TileHeight);
+ Map.SpawnPointTargetPos = new Vector2(9 * Map.TileWidth, 0 * Map.TileHeight);
+ Map.FinishPoint = new Vector2(8 * Map.TileWidth, -1 * 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(6, Direction.Finish);
+
+ Map.TileMap = new Tile[13, 18]
+ {
+ { OO,OO,OO,OO,OO,OO,OO,OO,FN,DN,OO,OO,OO,OO,OO,OO,OO,OO },
+ { OO,OO,OO,OO,OO,OO,OO,OO,UP,DN,OO,OO,OO,OO,OO,OO,OO,OO },
+ { OO,OO,DR,RT,RT,RT,RT,RT,TL,TR,RT,RT,RT,RT,RT,DL,OO,OO },
+ { OO,OO,UP,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,DN,OO,OO },
+ { OO,OO,UP,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,DN,OO,OO },
+ { OO,OO,UP,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,DN,OO,OO },
+ { OO,OO,UP,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,DN,OO,OO },
+ { OO,OO,UP,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,DN,OO,OO },
+ { OO,OO,UP,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,DN,OO,OO },
+ { OO,OO,UP,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,OO,DN,OO,OO },
+ { OO,OO,RU,LT,LT,LT,LT,LT,LT,LT,LT,LT,LT,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,OO,OO },
+ }
+ }
+} \ No newline at end of file
diff --git a/Penguloon/Levels/LevelBase.cs b/Penguloon/Levels/LevelBase.cs
index 2b003cf..e077ee4 100644
--- a/Penguloon/Levels/LevelBase.cs
+++ b/Penguloon/Levels/LevelBase.cs
@@ -1,7 +1,10 @@
-using Microsoft.Xna.Framework;
+using System;
+using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input.Touch;
using Penguloon.Scenes;
+using Penguloon.Controls;
+using System.Collections.Generic;
namespace Penguloon.Levels
{
@@ -38,6 +41,8 @@ namespace Penguloon.Levels
{
this.ParentScene = sceneBase;
CreateMap();
+
+ lastLevelCheck = UserdataManager.GetLevel();
}
public void Draw(float deltaTime)
@@ -58,6 +63,23 @@ namespace Penguloon.Levels
UpdateUnique(deltaTime, touchLocations);
CheckForObjectPlacement(touchLocations);
+
+ CheckForLevelUp();
+ }
+
+ int lastLevelCheck;
+ private void CheckForLevelUp()
+ {
+ if (Finished) return;
+
+ int lvl = UserdataManager.GetLevel(UserdataManager.TotalKills + Kills);
+
+ if (lvl != lastLevelCheck)
+ {
+ lastLevelCheck = lvl;
+
+ Alert.Show("Leveled up to " + lvl + "!", 3000, ParentScene);
+ }
}
private void CheckForObjectPlacement(TouchLocation[] touchLocations)
@@ -77,6 +99,15 @@ namespace Penguloon.Levels
int posToSpawnX = tileX * Map.TileWidth;
int posToSpawnY = tileY * Map.TileHeight;
+ List<Vector2> spawnPosToCheck = new List<Vector2>();
+ for(int x = 0; x < ParentScene.ObjectSeletor.Objects[ParentScene.ObjectSeletor.SelectedObjectIndex].Item1.TileSpanX; x++)
+ {
+ for (int y = 0; y < ParentScene.ObjectSeletor.Objects[ParentScene.ObjectSeletor.SelectedObjectIndex].Item1.TileSpanY; y++)
+ {
+ spawnPosToCheck.Add(new Vector2(posToSpawnX + (Map.TileWidth * x), posToSpawnY + (Map.TileHeight * y)));
+ }
+ }
+
// check if there isnt an object already
for (int x = 0; x < Map.Objects.Count; x++)
{
@@ -86,7 +117,8 @@ namespace Penguloon.Levels
{
Vector2 posToCheck = Map.Objects[x].Position + new Vector2(px * Map.TileWidth, py * Map.TileHeight);
- if (posToCheck == new Vector2(posToSpawnX, posToSpawnY))
+ for (int t = 0; t < spawnPosToCheck.Count; t++)
+ if (posToCheck == spawnPosToCheck[t])
return;
}
}
@@ -132,7 +164,7 @@ namespace Penguloon.Levels
}
public void FinishGame()
- {
+ {
// upload score here or something
UserdataManager.GamesPlayed++;
UserdataManager.TotalKills += Kills;
diff --git a/Penguloon/Levels/Map.cs b/Penguloon/Levels/Map.cs
index e7cb864..f3adf64 100644
--- a/Penguloon/Levels/Map.cs
+++ b/Penguloon/Levels/Map.cs
@@ -5,6 +5,7 @@ using Penguloon.Scenes;
using System.Collections.Generic;
using System;
using Penguloon.Objects;
+using Penguloon.Controls;
namespace Penguloon.Levels
{