// Tile click selects tiles. Click again to unselect. public void onTileClick(PlayTile tile) { PlayTile prev = selectedTile; DeselectTile(); if (tile.Equals(prev)) { return; } switch (tile.state) { case TileData.State.TOWER: HideSendMonsterBtn(); DisplayTowerInfo(tile.tower); DisplayUpgradePanel(tile.tower); selectedTile = tile; tile.highlight(); break; case TileData.State.EMPTY: HidePanels(); selectedTile = tile; tile.highlight(); break; default: break; } }
// Called when tower button is clicked public void onTowerBtnClick(Tower towerPrefab) { if (selectedTile == null || selectedTile.state == TileData.State.TOWER) { if (selectedTile != null) { DeselectTile(); } HideSendMonsterBtn(); DisplayTowerInfo(towerPrefab); } else { // Try to build tower if (towerPrefab.price > GameState.gold) { return; } GameState.gold -= towerPrefab.price; Tower tower = Instantiate(towerPrefab); selectedTile.setTower(tower); selectedTile.unhighlight(); selectedTile = null; } }
public void DeselectTile() { if (selectedTile == null) { return; } selectedTile.unhighlight(); selectedTile = null; HidePanels(); }
/// <summary> /// Instantiate tile prefabs and add to play grid. /// </summary> public void InitializeTiles() { for (int i = 0; i < gridSize; i++) { for (int k = 0; k < gridSize; k++) { PlayTile Pieces = Instantiate(TilePrefab); Pieces.InitializeTile(i, k); // Initializethe tile Pieces.transform.SetParent(GameObject.Find("Pieces").transform, true); Vector2 tilePosition = new Vector2(); tilePosition.x = (-Board.rect.width / 2) + ((interval / 2) + (interval * k)); // Space the tile between the grid lines and edge of board. tilePosition.y = (Board.rect.height / 2) - ((interval / 2) + (interval * i)); Pieces.GetComponent <RectTransform>().anchoredPosition = tilePosition; Grid[i, k] = Pieces; // Make sure we save the new tile in the grid. } } }