示例#1
0
    private void OnTriggerExit2D(Collider2D collision)
    {
        GeneratedTile tile = collision.gameObject.GetComponent <GeneratedTile>();

        if (tile != null)
        {
            tile.IsTarget = false;
        }
    }
示例#2
0
 public void handleTileClick(GeneratedTile t)
 {
     if (selected != null)
     {
         selected.GetComponent <Renderer>().material.color = selected.baseColor;
     }
     selected = t;
     selected.GetComponent <Renderer>().material.color = Color.yellow;
 }
示例#3
0
    private void OnTriggerStay2D(Collider2D collision)
    {
        GeneratedTile tile = collision.gameObject.GetComponent <GeneratedTile>();

        if (tile != null)
        {
            tile.IsTarget = true;
            tile.player   = this;
        }
    }
示例#4
0
    public static void placePiece(Piece p, GeneratedTile gt)
    {
        GameObject g;

        if (gt.isWhite)
        {
            g = GameObject.Find("White Points");
        }
        else
        {
            g = GameObject.Find("Black Points");
        }
        int v = int.Parse(g.GetComponent <Text>().text);
        int c = p.cost;

        g.GetComponent <Text>().text = (v - c).ToString();
        GenerateGame.instance.spawnPiece(p.number, gt);
    }
示例#5
0
    public void spawnPiece(Piece p, GeneratedTile gt)
    {
        Piece piece = null;

        switch (p.title)
        {
        case "Pawn":
            piece = Instantiate(pieces[0], Vector3.zero, Quaternion.Euler(-90, 0, 0)) as Pawn;
            break;

        case "Knight":
            piece = Instantiate(pieces[1], Vector3.zero, Quaternion.Euler(-90, 0, 0)) as Knight;
            break;

        case "Bishop":
            piece = Instantiate(pieces[2], Vector3.zero, Quaternion.Euler(-90, 0, 0)) as Bishop;
            break;

        case "Rook":
            piece = Instantiate(pieces[3], Vector3.zero, Quaternion.Euler(-90, 0, 0)) as Rook;
            break;

        case "Queen":
            piece = Instantiate(pieces[4], Vector3.zero, Quaternion.Euler(-90, 0, 0)) as Queen;
            break;

        case "King":
            piece = Instantiate(pieces[5], Vector3.zero, Quaternion.Euler(-90, 0, 0)) as King;
            break;

        case "S.Pawn":
            piece = Instantiate(pieces[6], Vector3.zero, Quaternion.Euler(90, 0, 0)) as ShogiPawn;
            break;

        default:
            break;
        }


        gt.occupiedBy            = piece;
        gt.occupied              = true;
        piece.isWhite            = gt.isWhite;
        piece.transform.position = gt.transform.position + new Vector3(0, 0.5f, 0);
    }
示例#6
0
    public void spawnPiece(int p, GeneratedTile gt)
    {
        Piece piece = null;

        /*switch (p)
         * {
         *  case 0:
         *      piece = Instantiate(pieces[p], Vector3.zero, Quaternion.Euler(-90, 0, 0)) as Pawn;
         *      break;
         *  case 1:
         *      piece = Instantiate(pieces[p], Vector3.zero, Quaternion.Euler(-90, 0, 0)) as Knight;
         *      break;
         *  case 2:
         *      piece = Instantiate(pieces[p], Vector3.zero, Quaternion.Euler(-90, 0, 0)) as Bishop;
         *      break;
         *  case 3:
         *      piece = Instantiate(pieces[p], Vector3.zero, Quaternion.Euler(-90, 0, 0)) as Rook;
         *      break;
         *  case 4:
         *      piece = Instantiate(pieces[p], Vector3.zero, Quaternion.Euler(-90, 0, 0)) as Queen;
         *      break;
         *  case 5:
         *      piece = Instantiate(pieces[p], Vector3.zero, Quaternion.Euler(-90, 0, 0)) as King;
         *      break;
         *  case 6:
         *      piece = Instantiate(pieces[p], Vector3.zero, Quaternion.Euler(90, 0, 0)) as ShogiPawn;
         *      break;
         *  default:
         *      break;
         * }*/
        piece = Instantiate(pieces[p], Vector3.zero, Quaternion.Euler(-90, 0, 0)) as Piece;
        if (piece.title.Contains("S."))
        {
            piece.transform.rotation = Quaternion.Euler(90, 0, -90);
        }
        gt.occupiedBy            = piece;
        gt.occupied              = true;
        piece.isWhite            = gt.isWhite;
        piece.transform.position = gt.transform.position + new Vector3(0, 0.5f, 0);
    }
示例#7
0
    public void fillRow()
    {
        GeneratedTile lc = GenerateGame.instance.selected;

        //Debug.Log(Mathf.FloorToInt(lc.pos.x));
        if (lc != null)
        {
            if (GameObject.Find("Pieces").GetComponent <Dropdown>().options[GameObject.Find("Pieces").GetComponent <Dropdown>().value].text.Contains("King"))
            {
                return;
            }
            for (int i = 0; i < GenerateGame.instance.boardSize; i++)
            {
                GameObject g;
                if (GenerateGame.instance.selected.isWhite)
                {
                    g = GameObject.Find("White Points");
                }
                else
                {
                    g = GameObject.Find("Black Points");
                }
                int v = int.Parse(g.GetComponent <Text>().text);
                int c = GlobalVariables.pieces[GameObject.Find("Pieces").GetComponent <Dropdown>().value].cost;
                if (v - c < 0)
                {
                    return;
                }
                g.GetComponent <Text>().text = (v - c).ToString();
                if (GenerateGame.instance.board[Mathf.FloorToInt(lc.pos.x)][i].occupied)
                {
                    RemovePiece.removePiece(GenerateGame.instance.board[Mathf.FloorToInt(lc.pos.x)][i].occupiedBy);
                }
                //Debug.Log(Mathf.FloorToInt(lc.pos.x));
                int p = Mathf.FloorToInt(lc.pos.x);
                GenerateGame.instance.spawnPiece(GameObject.Find("Pieces").GetComponent <Dropdown>().value, GenerateGame.instance.board[p][i]);
            }
        }
    }
示例#8
0
    public void createBoard(int boardSize)
    {
        this.boardSize = boardSize;
        int rows = Mathf.RoundToInt((float)boardSize / 3);

        this.rows = rows;
        float height = 4 * boardSize;

        if (height < 32)
        {
            height = 32;
        }
        if (boardSize % 2 == 0)
        {
            Camera.main.transform.position = new Vector3(-TilePrefab.transform.localScale.x / 2, height, -TilePrefab.transform.localScale.z / 2);
        }
        else
        {
            Camera.main.transform.position = new Vector3(0, height, 0);
        }

        bool  rowStart = true;
        Color current  = Color.black;

        for (int i = 0; i < boardSize; i++)
        {
            List <GeneratedTile> row = new List <GeneratedTile>();
            if (i > rows - 1 && i <= (boardSize - rows - 1))
            {
                board.Add(row);
                rowStart = !rowStart;
                continue;
            }

            if (rowStart)
            {
                current = Color.black;
            }
            else
            {
                current = Color.white;
            }
            for (int j = 0; j < boardSize; j++)
            {
                GeneratedTile tile = ((GameObject)Instantiate(TilePrefab, new Vector3((i - Mathf.Floor(boardSize / 2)) * TilePrefab.transform.localScale.x, 0, (j - Mathf.Floor(boardSize / 2)) * TilePrefab.transform.localScale.z), Quaternion.Euler(new Vector3()))).GetComponent <GeneratedTile>();
                tile.pos       = new Vector2(i, j);
                tile.baseColor = current;
                tile.GetComponent <Renderer>().material.color = tile.baseColor;
                if (i < rows)
                {
                    tile.isWhite = true;
                }
                else
                {
                    tile.isWhite = false;
                }
                row.Add(tile);
                if (current == Color.white)
                {
                    current = Color.black;
                }
                else
                {
                    current = Color.white;
                }
            }
            rowStart = !rowStart;
            board.Add(row);
        }
    }