|
using System.Collections; |
|
using System.Collections.Generic; |
|
using UnityEngine; |
|
using System.Linq; |
|
|
|
public class TileMap : MonoBehaviour |
|
{ |
|
|
|
public TileType[] tileTypes; |
|
public GameObject[] loot; |
|
public GameObject secret; |
|
public GameObject eyeEnemy; |
|
public GameObject enemySpawner; |
|
public GameObject smileyKey; |
|
public GameObject alienKey; |
|
public GameObject pizzaKey; |
|
public GameObject platform; |
|
|
|
int[,] tiles; |
|
|
|
int mapSizeX = 50; |
|
int mapSizeZ = 50; |
|
|
|
void Start() |
|
{ |
|
tiles = new int[mapSizeX, mapSizeZ]; |
|
|
|
GenerateMapBorder(); |
|
GenerateMapData(); |
|
GenerateMapVisual(); |
|
GenerateEnemies(); |
|
GenerateKeys(); |
|
GenerateLoot(); |
|
} |
|
|
|
void GenerateMapData() |
|
{ |
|
int x, z; |
|
|
|
for (x = 1; x < mapSizeX - 1; x++) |
|
{ |
|
for (z = 1; z < mapSizeX - 1; z++) |
|
{ |
|
tiles[x, z] = 1; |
|
} |
|
} |
|
|
|
//Walls |
|
for (x = 14; x <= 14; x++) |
|
{ |
|
for (z = 1; z < 15; z++) |
|
{ |
|
tiles[x, z] = 0; |
|
} |
|
} |
|
|
|
for (x = 14; x <= 25; x++) |
|
{ |
|
for (z = 15; z < 16; z++) |
|
{ |
|
tiles[x, z] = 0; |
|
} |
|
} |
|
|
|
for (x = 28; x <= 35; x++) |
|
{ |
|
for (z = 15; z < 16; z++) |
|
{ |
|
tiles[x, z] = 0; |
|
} |
|
} |
|
|
|
for (x = 35; x <= 35; x++) |
|
{ |
|
for (z = 4; z < 16; z++) |
|
{ |
|
tiles[x, z] = 0; |
|
} |
|
} |
|
|
|
for (x = 35; x <= 46; x++) |
|
{ |
|
for (z = 4; z < 5; z++) |
|
{ |
|
tiles[x, z] = 0; |
|
} |
|
} |
|
|
|
for (x = 46; x <= 46; x++) |
|
{ |
|
for (z = 4; z < 24; z++) |
|
{ |
|
tiles[x, z] = 0; |
|
} |
|
} |
|
|
|
for (x = 32; x <= 46; x++) |
|
{ |
|
for (z = 23; z < 24; z++) |
|
{ |
|
tiles[x, z] = 0; |
|
} |
|
} |
|
|
|
for (x = 42; x <= 47; x++) |
|
{ |
|
for (z = 46; z < 47; z++) |
|
{ |
|
tiles[x, z] = 0; |
|
} |
|
} |
|
|
|
for (x = 46; x <= 46; x++) |
|
{ |
|
for (z = 43; z < 47; z++) |
|
{ |
|
tiles[x, z] = 0; |
|
} |
|
} |
|
|
|
for (x = 42; x <= 42; x++) |
|
{ |
|
for (z = 47; z < 49; z++) |
|
{ |
|
tiles[x, z] = 0; |
|
} |
|
} |
|
|
|
for (x = 35; x <= 43; x++) |
|
{ |
|
for (z = 42; z < 43; z++) |
|
{ |
|
tiles[x, z] = 0; |
|
} |
|
} |
|
|
|
for (x = 34; x <= 34; x++) |
|
{ |
|
for (z = 42; z < 46; z++) |
|
{ |
|
tiles[x, z] = 0; |
|
} |
|
} |
|
|
|
for (x = 5; x <= 34; x++) |
|
{ |
|
for (z = 35; z < 36; z++) |
|
{ |
|
tiles[x, z] = 0; |
|
} |
|
} |
|
|
|
for (x = 5; x <= 5; x++) |
|
{ |
|
for (z = 12; z < 36; z++) |
|
{ |
|
tiles[x, z] = 0; |
|
} |
|
} |
|
|
|
for (x = 20; x <= 20; x++) |
|
{ |
|
for (z = 35; z < 49; z++) |
|
{ |
|
tiles[x, z] = 0; |
|
} |
|
} |
|
|
|
for (x = 27; x <= 27; x++) |
|
{ |
|
for (z = 28; z < 35; z++) |
|
{ |
|
tiles[x, z] = 0; |
|
} |
|
} |
|
|
|
for (x = 10; x <= 27; x++) |
|
{ |
|
for (z = 27; z < 28; z++) |
|
{ |
|
tiles[x, z] = 0; |
|
} |
|
} |
|
|
|
for (x = 29; x <= 29; x++) |
|
{ |
|
for (z = 16; z < 24; z++) |
|
{ |
|
tiles[x, z] = 0; |
|
} |
|
} |
|
|
|
for (x = 25; x <= 25; x++) |
|
{ |
|
for (z = 1; z < 6; z++) |
|
{ |
|
tiles[x, z] = 0; |
|
} |
|
} |
|
|
|
for (x = 1; x <= 9; x++) |
|
{ |
|
for (z = 8; z < 9; z++) |
|
{ |
|
tiles[x, z] = 0; |
|
} |
|
} |
|
|
|
for (x = 9; x <= 9; x++) |
|
{ |
|
for (z = 3; z < 9; z++) |
|
{ |
|
tiles[x, z] = 0; |
|
} |
|
} |
|
|
|
//Hazards |
|
|
|
for (x = 10; x <= 19; x++) |
|
{ |
|
for (z = 28; z < 35; z++) |
|
{ |
|
if (x != 14 || z != 31) |
|
{ |
|
tiles[x, z] = 2; |
|
} |
|
} |
|
} |
|
|
|
|
|
for (x = 5; x <= 13; x++) |
|
{ |
|
for (z = 39; z < 47; z++) |
|
{ |
|
if (x != 9 || z != 42) |
|
{ |
|
tiles[x, z] = 2; |
|
} |
|
} |
|
} |
|
|
|
for (x = 33; x <= 35; x++) |
|
{ |
|
for (z = 17; z < 22; z++) |
|
{ |
|
if (x != 34 || z != 19) |
|
{ |
|
tiles[x, z] = 2; |
|
} |
|
} |
|
} |
|
|
|
|
|
for (x = 30; x <= 45; x++) |
|
{ |
|
for (z = 16; z < 17; z++) |
|
{ |
|
tiles[x, z] = 2; |
|
} |
|
} |
|
|
|
for (x = 36; x <= 36; x++) |
|
{ |
|
for (z = 5; z < 23; z++) |
|
{ |
|
tiles[x, z] = 2; |
|
} |
|
} |
|
|
|
for (x = 32; x <= 33; x++) |
|
{ |
|
for (z = 16; z < 23; z++) |
|
{ |
|
tiles[x, z] = 2; |
|
} |
|
} |
|
|
|
for (x = 36; x <= 45; x++) |
|
{ |
|
for (z = 5; z < 6; z++) |
|
{ |
|
tiles[x, z] = 2; |
|
} |
|
} |
|
|
|
for (x = 45; x <= 45; x++) |
|
{ |
|
for (z = 5; z < 23; z++) |
|
{ |
|
tiles[x, z] = 2; |
|
} |
|
} |
|
|
|
for (x = 39; x <= 42; x++) |
|
{ |
|
for (z = 5; z < 23; z++) |
|
{ |
|
tiles[x, z] = 2; |
|
} |
|
} |
|
|
|
for (x = 36; x <= 45; x++) |
|
{ |
|
for (z = 11; z < 12; z++) |
|
{ |
|
tiles[x, z] = 2; |
|
} |
|
} |
|
|
|
|
|
for (x = 32; x <= 45; x++) |
|
{ |
|
for (z = 22; z < 23; z++) |
|
{ |
|
tiles[x, z] = 2; |
|
} |
|
} |
|
|
|
|
|
for (x = 44; x < 49; x++) |
|
{ |
|
for (z = 47; z < 49; z++) |
|
{ |
|
tiles[x, z] = 2; |
|
} |
|
} |
|
|
|
for (x = 47; x < 49; x++) |
|
{ |
|
for (z = 43; z < 49; z++) |
|
{ |
|
tiles[x, z] = 2; |
|
} |
|
} |
|
|
|
|
|
for (x = 3; x <= 5; x++) |
|
{ |
|
for (z = 1; z < 4; z++) |
|
{ |
|
tiles[x, z] = 2; |
|
} |
|
} |
|
|
|
for (x = 1; x <= 5; x++) |
|
{ |
|
for (z = 3; z < 6; z++) |
|
{ |
|
tiles[x, z] = 2; |
|
} |
|
} |
|
|
|
for (x = 10; x <= 13; x++) |
|
{ |
|
for (z = 8; z < 12; z++) |
|
{ |
|
tiles[x, z] = 2; |
|
} |
|
} |
|
|
|
for (x = 1; x <= 20; x++) |
|
{ |
|
for (z = 9; z < 11; z++) |
|
{ |
|
tiles[x, z] = 2; |
|
} |
|
} |
|
|
|
for (x = 19; x <= 25; x++) |
|
{ |
|
for (z = 9; z < 14; z++) |
|
{ |
|
tiles[x, z] = 2; |
|
} |
|
} |
|
|
|
for (x = 24; x <= 28; x++) |
|
{ |
|
for (z = 12; z < 24; z++) |
|
{ |
|
tiles[x, z] = 2; |
|
} |
|
} |
|
|
|
} |
|
|
|
void GenerateMapBorder() |
|
{ |
|
for (int x = 0; x < mapSizeX; x++) |
|
{ |
|
for (int z = 0; z < mapSizeZ; z++) |
|
{ |
|
if (x == 0 || x == mapSizeX || z == 0 || z == mapSizeZ) |
|
{ |
|
tiles[x, z] = 0; |
|
} |
|
} |
|
} |
|
} |
|
|
|
void GenerateMapVisual() |
|
{ |
|
for (int x = 0; x < mapSizeX; x++) |
|
{ |
|
for (int z = 0; z < mapSizeX; z++) |
|
{ |
|
|
|
TileType tt = tileTypes[tiles[x, z]]; |
|
Instantiate(tt.tileVisualPrefab, new Vector3(x, 0, z), Quaternion.identity); |
|
|
|
} |
|
} |
|
} |
|
|
|
void GenerateEnemies() |
|
{ |
|
Instantiate(eyeEnemy, new Vector3(11, 0.6f, 4), Quaternion.identity); |
|
Instantiate(eyeEnemy, new Vector3(7, 0.6f, 6), Quaternion.identity); |
|
Instantiate(eyeEnemy, new Vector3(2, 0.6f, 18), Quaternion.identity); |
|
Instantiate(eyeEnemy, new Vector3(2, 0.6f, 30), Quaternion.identity); |
|
Instantiate(eyeEnemy, new Vector3(10, 0.6f, 47), Quaternion.identity); |
|
Instantiate(eyeEnemy, new Vector3(16, 0.6f, 42), Quaternion.identity); |
|
Instantiate(eyeEnemy, new Vector3(27, 0.6f, 2), Quaternion.identity); |
|
Instantiate(eyeEnemy, new Vector3(42.5f, 0.6f, 13), Quaternion.identity); |
|
Instantiate(eyeEnemy, new Vector3(24, 0.6f, 30), Quaternion.identity); |
|
Instantiate(eyeEnemy, new Vector3(20, 0.6f, 32.5f), Quaternion.identity); |
|
|
|
Instantiate(enemySpawner, new Vector3(16, 0, 21), Quaternion.identity); |
|
Instantiate(enemySpawner, new Vector3(43.5f, 0, 7), Quaternion.identity); |
|
Instantiate(enemySpawner, new Vector3(25, 0, 42), Quaternion.identity); |
|
|
|
Instantiate(platform, new Vector3(41, 1, 33), Quaternion.identity); |
|
} |
|
|
|
void GenerateKeys() |
|
{ |
|
Instantiate(pizzaKey, new Vector3(1.7f, 0.5f, 1.7f), Quaternion.identity); |
|
Instantiate(smileyKey, new Vector3(9, 0.5f, 42.1f), Quaternion.identity); |
|
Instantiate(alienKey, new Vector3(22.7f, 0.5f, 31.3f), Quaternion.identity); |
|
} |
|
|
|
void GenerateLoot() |
|
{ |
|
GameObject lootInstanceOne = loot[Random.Range(0, loot.Length)]; |
|
GameObject lootInstanceTwo = loot[Random.Range(0, loot.Length)]; |
|
GameObject lootInstanceThree = loot[Random.Range(0, loot.Length)]; |
|
GameObject lootInstanceFour = loot[Random.Range(0, loot.Length)]; |
|
|
|
Instantiate(lootInstanceOne, new Vector3(16f, 0.6f, 13f), Quaternion.identity); |
|
Instantiate(lootInstanceTwo, new Vector3(32f, 0.6f, 12f), Quaternion.identity); |
|
Instantiate(lootInstanceThree, new Vector3(41, 0.6f, 33), Quaternion.identity); |
|
Instantiate(lootInstanceFour, new Vector3(35.7f, 0.6f, 43.6f), Quaternion.identity); |
|
|
|
Instantiate(secret, new Vector3(43.1f, 0.6f, 47.3f), Quaternion.identity); |
|
} |
|
} |