private Color hearingColor = Color.red; //Color for hearing sphere gizmo, init. red. // Start is called before the first frame update void Start() { //Get and set data and motor on Start data = GetComponent <TankData>(); motor = GetComponent <TankMotor>(); tf = GetComponent <Transform>(); shooter = GetComponent <TankShooter>(); //get reference to manager player (temporary until next milestone) player = GameManager.instance.instantiatedPlayerTank; //Add self to GameManager list of enemies GameManager.instance.instantiatedEnemyTanks.Add(this.gameObject); //Get and Set Territory from randomly generated room, if not pre-set if (!territory) { //Set Territory to a random territory from the level game object - map generator list of territories territory = GameManager.instance.LevelGameObject.GetComponent <MapGenerator>().instantiatedTerritories[UnityEngine.Random.Range(0, GameManager.instance.LevelGameObject.GetComponent <MapGenerator>().instantiatedTerritories.Count)]; } //Get and Set Waypoints array from territory, if waypoints array is null if (waypoints == null || waypoints.Length == 0) { waypoints = territory.waypoints; } //Teleport Swiss on start to middle of assigned territory (to avoid getting lost and stuck in generated map if (personality == Personalities.Swiss) { transform.position = territory.gameObject.transform.position; } }
//Randomly generate the grid for the level public void GenerateGrid() { UnityEngine.Random.seed = mapSeed; grid = new Room[MapCols, MapRows]; //for each row for (int row = 0; row < MapRows; row++) { //for each column in row for (int col = 0; col < MapCols; col++) { float xPosition = roomWidth * col; float zPosition = roomLength * row; Vector3 newPosition = new Vector3(xPosition, 0.0f, zPosition); //Instantiate random room at position at prefab rotation GameObject tempRoomObj = Instantiate(GetRandomRoom(), newPosition, Quaternion.identity) as GameObject; //If Room has a territory child on it, add to list of territories RoomTerritory roomTerritory = tempRoomObj.GetComponentInChildren <RoomTerritory>(); if (roomTerritory) { instantiatedTerritories.Add(roomTerritory); } //Set our room's parent object tempRoomObj.transform.parent = this.transform; //Rename our room object as Room_x,y tempRoomObj.name = "Room_" + col + "," + row; //Store room in 2d array of grid Room tempRoom = tempRoomObj.GetComponent <Room>(); grid[col, row] = tempRoom; //If room is at bottom of grid, open North door if (row == 0) { tempRoom.doorNorth.SetActive(false); } //If room is at top of grid, open the south door else if (row == MapRows - 1) { tempRoom.doorSouth.SetActive(false); } //Else is in the middle, open South and North Doors else { tempRoom.doorSouth.SetActive(false); tempRoom.doorNorth.SetActive(false); } if (col == 0) { tempRoom.doorEast.SetActive(false); } else if (col == MapCols - 1) { tempRoom.doorWest.SetActive(false); } else { tempRoom.doorEast.SetActive(false); tempRoom.doorWest.SetActive(false); } } } }