diff options
| author | aldrikboy <aldrikboy@gmail.com> | 2018-01-01 23:49:59 +0100 |
|---|---|---|
| committer | aldrikboy <aldrikboy@gmail.com> | 2018-01-01 23:49:59 +0100 |
| commit | c3c4f2c7617c393ad6e8c7f1d87abf4a9a8cf602 (patch) | |
| tree | aff9fde951a0ecbd18aac6b32f6ccbbe82709610 /Penguloon/Levels/LevelBase.cs | |
| parent | da38e93e55b6ff46a53dcd9d2be393149089d329 (diff) | |
bobba
Diffstat (limited to 'Penguloon/Levels/LevelBase.cs')
| -rw-r--r-- | Penguloon/Levels/LevelBase.cs | 38 |
1 files changed, 35 insertions, 3 deletions
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; |
