diff options
| author | aldrikboy <aldrikboy@gmail.com> | 2018-01-02 17:13:32 +0100 |
|---|---|---|
| committer | aldrikboy <aldrikboy@gmail.com> | 2018-01-02 17:13:32 +0100 |
| commit | 0c58f5048e37ad40c68f56f3dc7756d60816cc0e (patch) | |
| tree | d64e3d12f4994d2b2c0f4bd9d0c2c74611289b04 /Penguloon/Levels/Map.cs | |
| parent | c3c4f2c7617c393ad6e8c7f1d87abf4a9a8cf602 (diff) | |
fanboi & chumchum
Diffstat (limited to 'Penguloon/Levels/Map.cs')
| -rw-r--r-- | Penguloon/Levels/Map.cs | 42 |
1 files changed, 40 insertions, 2 deletions
diff --git a/Penguloon/Levels/Map.cs b/Penguloon/Levels/Map.cs index f3adf64..03e1c4f 100644 --- a/Penguloon/Levels/Map.cs +++ b/Penguloon/Levels/Map.cs @@ -33,6 +33,8 @@ namespace Penguloon.Levels public LevelBase Level { get; set; } + public int SpareTilesY { get; set; } + public Map(GameScene parentScene, LevelBase level) { this.ParentScene = parentScene; @@ -56,6 +58,8 @@ namespace Penguloon.Levels MapWidth = TileWidth * 18; MapHeight = TileHeight * 13; + SpareTilesY = ((int)StaticUIValues.ScreenViewport.Y - MapHeight) / TileHeight; SpareTilesY += 1; + WaveManager = new WaveManager(this); } @@ -64,9 +68,16 @@ namespace Penguloon.Levels for (int y = 0; y < TileMap.GetLength(0); y++) { for (int x = 0; x < TileMap.GetLength(1); x++) - { - Texture2D tileTexture = ContentManager.GetTileTextureByType(TileMap[y, x].Type); + { + Texture2D tileTexture = null; + switch (Level.LevelType) + { + case LevelType.Ice: tileTexture = ContentManager.GetTileTextureByType(TileMap[y, x].Type); break; + case LevelType.Sand: tileTexture = ContentManager.GetSandTileTextureByType(TileMap[y, x].Type); break; + } + + if(tileTexture != null) ParentScene.Main.SpriteBatch.Draw(tileTexture, destinationRectangle: new Rectangle(x * TileWidth, y * TileHeight, TileWidth, TileHeight)); @@ -76,6 +87,33 @@ namespace Penguloon.Levels } } + Texture2D tileTextureSpare = null; + Texture2D unplaceableTileTexture = null; + + unplaceableTileTexture = ContentManager.GetTexture("UI/unselectableTile"); + + switch (Level.LevelType) + { + case LevelType.Ice: tileTextureSpare = ContentManager.GetTileTextureByType(0); break; + case LevelType.Sand: tileTextureSpare = ContentManager.GetSandTileTextureByType(0); break; + } + + // draw spare tiles + for (int y = 0; y < SpareTilesY; y++) + { + for (int x = 0; x < TileMap.GetLength(1); x++) + { + if (tileTextureSpare != null) + ParentScene.Main.SpriteBatch.Draw(tileTextureSpare, + destinationRectangle: new Rectangle(x * TileWidth, MapHeight + (y * TileHeight), TileWidth, TileHeight)); + + if (ParentScene.ObjectSeletor.State == Controls.State.Selected) + ParentScene.Main.SpriteBatch.Draw(unplaceableTileTexture, + destinationRectangle: new Rectangle(x * TileWidth, MapHeight + (y * TileHeight), TileWidth, TileHeight)); + } + } + + for (int i = 0; i < Enemies.Count; i++) { if (Enemies[i].Texture != null) |
