public HexTile CreateTile(HexTileData hexTileData, Player owner, HexTileRole hexTileRole) { var ans = Instantiate(HexTilePrefab); ans.Init(hexTileData, owner, hexTileRole); return(ans); }
public void CreateOption(int index) { var uiChooseTile = UIManager.Singleton.UIChoosingTile; HexTile hexTile = null; if (index == 0) { hexTile = HexUtils.BuildHexTile(_hexTile.Data, Player.MyPlayer, HexTileRole.InUI); } else { var affordAble = false; var counter = 0; HexTileData randomData = null; while (!affordAble) { randomData = HexUtils.CreateRandomData(_hexTile.Data.X, _hexTile.Data.Y); counter++; if (counter == 100) { randomData = _hexTile.Data; UnityEngine.Debug.LogWarning("Could not find Random Data"); } affordAble = Player.MyPlayer.HasResource(HexUtils.CalcHexPrice(randomData)); } hexTile = HexUtils.BuildHexTile(randomData, Player.MyPlayer, HexTileRole.InUI); } hexTile.transform.SetParent(uiChooseTile.ChoosingTransforms[index].transform, false); hexTile.OnClickCallback = OnTileChosen; }
public static HexEdgeData GetClockwiseEdge(HexTileData hexTileData, HexEdgeData currentHex, int index) { var size = currentHex.MyHexTile.HexEdgesData.Count; var newIndex = ((int)currentHex.HexDiraction + size + index) % size; return(hexTileData.HexEdgesData[newIndex]); }
public static List <City> CityCheckStart(HexTileData hexTileData) { var ans = new List <City>(); foreach (var edge in hexTileData.HexEdgesData) { if (edge.HexEdgeType == HexEdgeType.Desert) { continue; } foreach (var city in ans) { if (city.CityEdges.Contains(edge)) { continue; } } var visited = new List <HexEdgeData>(); if (CityEdgesCheck(visited, edge)) { var city = new City(visited); ans.Add(city); } } return(ans); }
public HexEdgeData(HexTileData myHexTile, HexEdgeType hexEdgeType, HexDiraction hexDiraction, bool isOpen = false) { MyHexTile = myHexTile; HexEdgeType = hexEdgeType; HexDiraction = hexDiraction; IsOpen = isOpen; }
public static Vector3 GetHexTilePosition(HexTileData hexData) { var hexSize = GridManager.Singleton.HexSize; var x = hexSize * (Mathf.Sqrt(3) * hexData.X + ((Mathf.Sqrt(3) * hexData.Y) / 2)); var y = (hexSize * 3 * hexData.Y) / 2; return(new Vector3(x, y, 0)); }
public void Init(HexTileData hexTileData, Player owner, HexTileRole hexTileRole) { HexTileRole = hexTileRole; Data = hexTileData; Data.Owner = owner; CreateEdges(); _isInitialized = true; gameObject.name = "X : " + hexTileData.X + "Y : " + hexTileData.Y; }
public static Price CalcHexPrice(HexTileData hexTileData) { Price ans = new Price(); ans.Init(); foreach (var hexEdgeData in hexTileData.HexEdgesData) { ans.Add(CalcHexEdgePrice(hexEdgeData)); } return(ans); }
public static HexTileData CreateRandomData(int x, int y) { var ans = new HexTileData(x, y, null); var edgesData = new List <HexEdgeData>(); foreach (var diraction in Utils.EnumUtil.GetValues <HexDiraction>()) { edgesData.Add(CreateRandomEdgeData(x, y, diraction)); } ans.HexEdgesData = edgesData; return(ans); }
public static HexEdgeData GetConnectedEdge(HexTileData hexTileData, HexEdgeData edgeData) { var hexDiraction = edgeData.HexDiraction; var hexTile = GridManager.Singleton.GetHex(hexTileData.GetVector()); var nieghborTile = GetNeighborTile(hexTile, hexDiraction); if (nieghborTile == null) { return(null); } return(nieghborTile.Data.HexEdgesData[(int)HexUtils.OppsiteHex[hexDiraction]]); }
public GridData() { width = Map.Instance.GetWidth(); height = Map.Instance.GetHeight(); hexGrid = new HexTileData[width, height]; for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { hexGrid[x, y] = new HexTileData(x, y, true, -1); } } }
public void CreateBoard() { var boardSize = Configuration.Singleton.BoardSize; for (int y = 0; y <= boardSize * 2; y++) { var realY = y - boardSize; for (int x = 0; x <= boardSize + boardSize - Mathf.Abs(realY); x++) { var startX = Mathf.Max(-y, -boardSize); var realX = startX + x; var hexTileData = new HexTileData(realX, realY, null); var newHex = Instantiate(HexTilePrefab, transform); newHex.Init(hexTileData, null, HexTileRole.InGrid); newHex.transform.position = GridManagerUtils.GetHexTilePosition(hexTileData); _allTiles[new Vector2Int(realX, realY)] = newHex; } } EventManager.FireBoardIsReady(); }
public HexTile GetHex(HexTileData hexTileData) { return(GetHex(hexTileData.X, hexTileData.Y)); }
public static HexTile BuildHexTile(HexTileData hexTileData, Player owner, HexTileRole hexTileRole) { return(HexMediator.Singleton.CreateTile(hexTileData, owner, hexTileRole)); }