Ejemplo n.º 1
0
    private void PlaceTile(int tileType, int x, int y, Vector3 worldStart)
    {
        // int tileIndex = (tileType < 9) ? tileType : (Random.Range(0, TilePrefabs.Length) < 9) ? 0 : Random.Range(9, TilePrefabs.Length);
        GameObject newTile;

        if (tileType > 0)
        {
            if (tileType == 7)
            {
                Tiles[y, x] = 2;
            }
            if (tileType == 8)
            {
                Tiles[y, x] = 3;
            }
            if (tileType > 0 && tileType < 7)
            {
                Tiles[y, x] = 1;
            }

            // For now we are instantiating all Paths as a generic placeholer asset.
            newTile = Instantiate(TilePrefabs[1]);

            newTile.GetComponent <Tile>().Setup(new Node(x, y), new Vector3(worldStart.x + (TileSize * x + TileSize / 2), worldStart.y - (TileSize * y + TileSize / 2), 0), this.transform);
            PathDict.Add(new Vector2(y, x), newTile);
        }
        else
        {
            Tiles[y, x] = 0;
            newTile     = Instantiate(TilePrefabs[tileType]);
            PlaceableTile newTileScript = newTile.GetComponent <PlaceableTile>();
            newTileScript.Setup(new Node(x, y), new Vector3(worldStart.x + (TileSize * x + TileSize / 2), worldStart.y - (TileSize * y + TileSize / 2), 0), this.transform);
            TileDict.Add(new Vector2(y, x), newTileScript);
        }
    }
 private void DeselectTile()
 {
     if (selectedOverlay == null)
     {
         return;
     }
     selectedOverlay.SetActive(false);
     selectedTile = null;
 }
Ejemplo n.º 3
0
    public void BuildSelectedTower(PlaceableTile tile)
    {
        var towerDataConfig = GetSelectedTowerDataConfig();

        if (towerDataConfig == null)
        {
            Debug.Log("TowerData not configured!  Skipping place tower.");
            return;
        }

        var tower = tile.PlaceTower(towerDataConfig.GetTowerPrefab());

        if (tower != null)
        {
            var towerComponent = tower.GetComponent <Tower>();
            towerComponent.SetTowerData(towerDataConfig.CreateTowerDataFromConfig());
        }
    }
    public void SelectTile()
    {
        var objectSelected = GetClickedGameObject();

        if (objectSelected == null)
        {
            DeselectTile();
            return;
        }

        var tile = objectSelected.GetComponent <PlaceableTile>();

        if (tile)
        {
            DeselectTile();
            selectedTile = tile;
            selectedOverlay.transform.position = selectedTile.GetPlacementPosition() + new Vector3(0, 0.0002f, 0);
            selectedOverlay.SetActive(true);
        }
    }
Ejemplo n.º 5
0
    // Function first checks to see if ndoe has a tower on it.
    // If no tower is on  then it should check the player's money and decide if a tower should be built.
    // TODO: Either rename this function or Node.PlaceTower to prevent ambiguous names.
    public bool PlaceTower(GameObject tower, GameObject node)
    {
        if (Nodes[node].HasTower())
        {
            // Then the node already has a tower and cannot place another one.
            Debug.Log("This node already has a tower!");
            return(false);
        }
        else
        {
            // If not then place a tower using the Node.PlaceTower() function.
            GameObject newTower = (GameObject)Instantiate(tower, node.transform);
            // Add tower and associated node to Towers Dict
            PlaceableTile nodeScript = Nodes[node];
            nodeScript.PlaceTower(newTower);
            Towers.Add(nodeScript, newTower);

            // Set new tower as a child of the TowerManager GO for organization.
            newTower.transform.SetParent(transform, true);

            return(true);
        }
    }