Example #1
0
    private void RpcAddTile(TileTypes.ESubState type, int rowNo, string direction)
    {
        if (!isServer)
        {
            HexRow     row     = rows[rowNo];
            GameObject newTile = Instantiate(Resources.Load("HexTile")) as GameObject;
            newTile.transform.SetParent(row.transform, false);
            if (direction == "top" || direction == "left")
            {
                newTile.transform.SetAsFirstSibling();
            }
            HexTile tile = newTile.GetComponent <HexTile>();
            tile.InitWithType(type);

            if (direction == "top" || direction == "left")
            {
                row.tiles.Insert(0, tile);
            }
            else
            {
                row.tiles.Add(tile);
            }

            //Debug.Log("Client added tile to Row " + row.number + " w index: " + row.tiles.IndexOf(tile));

            foreach (HexTile otherTiles in row.tiles)
            {
                otherTiles.transform.name = "Tile (" + row.number + ", " + row.tiles.IndexOf(otherTiles) + ")"; //F.e. Tile (0,7)
                otherTiles.xy             = new Vector2(row.number, row.tiles.IndexOf(otherTiles));
            }
        }
    }
Example #2
0
    private void Refill(HexRow row, string direction)
    {
        int tilesNeeded = Constants.gridSizeHorizontal - row.tiles.Count;

        for (int i = 0; i < tilesNeeded; i++)
        {
            GameObject newTile = Instantiate(Resources.Load("HexTile")) as GameObject;
            newTile.transform.SetParent(row.transform, false);
            if (direction == "top" || direction == "left")
            {
                newTile.transform.SetAsFirstSibling();
            }
            HexTile tile = newTile.GetComponent <HexTile>();

            tile.InitRandom();
            if (direction == "top" || direction == "left")
            {
                row.tiles.Insert(0, tile);
            }
            else
            {
                row.tiles.Add(tile);
            }

            //Debug.Log("Server added tile to Row " + row.number + " w index: " + row.tiles.IndexOf(tile));
            RpcAddTile(tile.type.Type, row.number, direction);
        }

        foreach (HexTile tile in row.tiles)
        {
            tile.transform.name = "Tile (" + row.number + ", " + row.tiles.IndexOf(tile) + ")"; //F.e. Tile (0,7)
            tile.xy             = new Vector2(row.number, row.tiles.IndexOf(tile));
        }
        //RpcRecountTiles(row.number);
    }
Example #3
0
    private void CreateGrid()
    {
        rows.Clear();

        for (int x = 0; x < Constants.gridSizeVertical; x++)
        {
            GameObject rowObject = Instantiate(Resources.Load("HexRow")) as GameObject;
            HexRow     row       = rowObject.GetComponent <HexRow>();
            row.Init(x);
            rowObject.transform.SetParent(this.transform, false);
            rowObject.name = "Row " + x;
            rows.Add(rowObject.GetComponent <HexRow>());

            for (int y = 0; y < Constants.gridSizeHorizontal; y++)
            {
                GameObject newTile = Instantiate(Resources.Load("HexTile")) as GameObject;
                newTile.transform.SetParent(rowObject.transform, false);
                HexTile tile = newTile.GetComponent <HexTile>();

                tile.xy      = new Vector2(x, y);
                newTile.name = "Tile (" + x + "," + y + ")"; //F.e. Tile (0,7)
                tile.InitRandom();

                row.tiles.Add(tile);
            }
        }
    }
Example #4
0
    private void RpcRecountTiles(int rowNo)
    {
        HexRow row = rows[rowNo];

        foreach (HexTile tile in row.tiles)
        {
            tile.transform.name = "Tile (" + row.number + ", " + row.tiles.IndexOf(tile) + ")"; //F.e. Tile (0,7)
            tile.xy             = new Vector2(row.number, row.tiles.IndexOf(tile));
        }
    }
Example #5
0
    private void ConvertTileToBooster(Vector2 position, TileTypes.ESubState requestedType, string path)
    {
        HexRow  row        = rows[(int)position.x];
        HexTile targetTile = row.tiles.Find(item => item.x == position.x && item.y == position.y);

        if (targetTile)
        {
            int        index   = row.tiles.IndexOf(targetTile);
            GameObject newTile = Instantiate(Resources.Load(path + "HexTile")) as GameObject;
            newTile.transform.SetParent(row.transform, false);
            row.tiles.RemoveAt(index);
            Destroy(targetTile.gameObject);
            row.tiles.Insert(index, newTile.GetComponent <HexTile>());
            newTile.GetComponent <HexTile>().curType = requestedType;
            newTile.transform.SetSiblingIndex(index);
            newTile.GetComponent <HexTile>().xy = new Vector2(row.number, index);
            newTile.transform.name = "Tile (" + row.number + ", " + index + ")"; //F.e. Tile (0,7)

            GameObject boosterIcon = Instantiate(Resources.Load(path + "TileIcon")) as GameObject;
            boosterIcon.transform.SetParent(newTile.transform, false);
        }
    }