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);
    }
Exemplo n.º 2
0
    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];
    }
Exemplo n.º 3
0
 void Awake()
 {
     if (instance != null)
     {
         Destroy(this.gameObject); return;
     }
     else
     {
         instance = this;
         DontDestroyOnLoad(this);
     }
     if (currBoard == null)
     {
         currBoard = levelsData.levels[0];
     }
 }