// 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();
 }
Пример #4
0
 /// <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.
         }
     }
 }