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)); } } }
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); }
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); } } }
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)); } }
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); } }