From c3c4f2c7617c393ad6e8c7f1d87abf4a9a8cf602 Mon Sep 17 00:00:00 2001 From: aldrikboy Date: Mon, 1 Jan 2018 23:49:59 +0100 Subject: bobba --- Penguloon/Levels/IceLevel3.cs | 88 +++++++++++++++++++++++++++++++++++++++++++ Penguloon/Levels/LevelBase.cs | 38 +++++++++++++++++-- Penguloon/Levels/Map.cs | 1 + 3 files changed, 124 insertions(+), 3 deletions(-) create mode 100644 Penguloon/Levels/IceLevel3.cs (limited to 'Penguloon/Levels') 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 spawnPosToCheck = new List(); + 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 { -- cgit v1.2.3-70-g09d2