public static BoardNode[,] MakeBoard(Data_Board boardData) { // Debug.Log("Offset >> " + (-(boardData.boardSize.x / 2f)) + " , " + (-(boardData.boardSize.y / 2f))); Transform holder = new GameObject("Board").GetComponent <Transform>(); BoardNode[,] boardGameplay = new BoardNode[boardData.boardSize.x, boardData.boardSize.y]; BoardTile[,] boardVisual; switch (boardData.boardType) { case BoardType.Circle: boardVisual = Board_Circle.MakeBoard(boardData.boardSize, boardData.secondaryFloat); break; default: boardVisual = Board_Default.MakeBoard(boardData.boardSize); break; } //float xS = -(boardVisual.GetLength(1) / 2f); // float yS = -(boardVisual.GetLength(0) / 2f); // Vector2 startPos = new Vector2(yS * tileSize, xS * tileSize); for (int x = 0; x < boardVisual.GetLength(0); x++) { for (int y = 0; y < boardVisual.GetLength(1); y++) { Vector2 location = IndexToPos(new Vector2Int(boardVisual.GetLength(0), boardVisual.GetLength(1)), new Vector2Int(x, y)); //new Vector2(startPos.x + (tileSize * x), startPos.y + (tileSize * y)); SpriteRenderer temp = GameObject.Instantiate(Data.instance.tileObj, location, Quaternion.Euler(new Vector3(0, 0, boardVisual[x, y].rotation)), holder).GetComponent <SpriteRenderer>(); temp.color = (x + y) % 2 == 0 ? Data.instance.artData.tileBlack : Data.instance.artData.tileWhite; if (temp.GetComponentInChildren <TextMeshPro>() != null) { temp.GetComponentInChildren <TextMeshPro>().text = x + "," + y; } //init node boardGameplay[x, y] = new BoardNode(x, y); boardGameplay[x, y].areaType = boardVisual[x, y].areaType; // switch (boardVisual[x, y].areaType) { case BoardArea.Corner: temp.sprite = Data.instance.artData.corner; break; case BoardArea.Edge: temp.sprite = Data.instance.artData.edge; break; case BoardArea.Middle: temp.sprite = Data.instance.artData.middle; break; case BoardArea.Empty: temp.color = Data.instance.artData.tileBlock; boardGameplay[x, y].unitObj = temp.gameObject.AddComponent <Unit_Block>(); break; } } } return(boardGameplay); }
void Start() { Data_Board boardDat = Data.instance.currBoard; gameBoard = BoardMaker.MakeBoard(boardDat); foreach (Vector2Int charPos in boardDat.playerPositions) { AddCharacter(charPos); } foreach (ReflectorZones reflectorZ in boardDat.refZones) { AddReflector(reflectorZ.pos, reflectorZ.rot); } background.color = Data.instance.artData.characterColour[charTurn]; }
void Awake() { if (instance != null) { Destroy(this.gameObject); return; } else { instance = this; DontDestroyOnLoad(this); } if (currBoard == null) { currBoard = levelsData.levels[0]; } }