void DrawMap() { foreach (Room room in rooms) { if (room == null) { continue; //skip where there is no room } Vector2 drawPos = room.gridPos; drawPos.x *= 22;//aspect ratio of map sprite drawPos.y *= 12; drawPos.y -= 0.5f; //create map obj and assign its variables MapSelector mapper = mapSelector.GetComponent <MapSelector>(); mapper.type = room.type; mapper.up = room.doorTop; mapper.down = room.doorBot; mapper.right = room.doorRight; mapper.left = room.doorLeft; mapper.gameObject.transform.parent = mapRoot; mapper.PickRoom(); GameObject roomObj = (GameObject)Object.Instantiate(mapper.getRoom(), drawPos, Quaternion.identity); CameraTriggerEnd centerTrigger = roomObj.transform.Find("Center").GetComponent <CameraTriggerEnd>(); centerTrigger.isStartingRoom = room.isStartingRoom; if (room.isEndingRoom) { GameObject exit = (GameObject)Object.Instantiate(levelExit, drawPos, Quaternion.identity); exit.transform.SetParent(roomObj.transform); centerTrigger.isSafeRoom = true; room.cameraPosition = roomObj.transform.position; room.setRoom(roomObj); continue; } if (Random.value < 0.1 && !safeRoomExists && !room.isStartingRoom) { // roomObj.transform.Find("Enemy Spawner").gameObject.GetComponent<EnemySpawner>().isSafeRoom = true; centerTrigger.isSafeRoom = true; GameObject s = (GameObject)Object.Instantiate(storage, drawPos, Quaternion.identity); GameObject s1 = (GameObject)Object.Instantiate(shop, drawPos + new Vector2(-7f, 3f), Quaternion.identity); s.transform.SetParent(roomObj.transform); s.transform.SetParent(roomObj.transform); safeRoomExists = true; } else if (Random.value < chestRoomChance && !room.isStartingRoom) { // roomObj.transform.Find("Enemy Spawner").gameObject.GetComponent<EnemySpawner>().isSafeRoom = true; centerTrigger.isSafeRoom = true; GameObject s = (GameObject)Object.Instantiate(chest, drawPos, Quaternion.identity); s.transform.SetParent(roomObj.transform); } else { centerTrigger.isSafeRoom = false; } room.cameraPosition = roomObj.transform.position; room.setRoom(roomObj); } }