Пример #1
0
 //NOTE: capture piece is specific to chess.
 public bool capturePiece(componentPiece captured, componentPiece capturer)
 {
     cmdCapturePiece cmd = new cmdCapturePiece((chessPiece)captured, (chessPiece)capturer);
     return processCommand(cmd);
 }
Пример #2
0
 public void addPieceToCapturedList(componentPiece piece)
 {
     _captured.Add(piece);
 }
Пример #3
0
 public void addPieceToList(componentPiece piece)
 {
     _pieces.Add(piece);
     //Debug.Log("Num Pieces : " + _pieces.Count);
     piece.gameObject.transform.SetParent(gameObject.transform, false);
 }
Пример #4
0
    private void deselectPiece()
    {
        if(_selectedPiece == null)
        {
            return;
        }

        GameObject selectedThing = GameObject.Find("Selected Tile");
        selectedThing.GetComponent<Renderer>().enabled = false;

        foreach (GameObject validMoveTileEffect in _validMoveTileEffects)
        {
            Destroy(validMoveTileEffect);
        }

        _validMoveTileEffects.Clear();
        _selectedPiece = null;
    }
Пример #5
0
    private bool selectPiece(componentPiece piece)
    {
        //Validate the piece can be selected
        if (_currentTurn == TURN_GAME_OVER)
        {
            return false;
        }
        if (_gameMode != chessGameMode.NONE) //If it's a chess game.
        {
            chessPiece cPiece = (chessPiece) piece;
            if((cPiece.getTeamColor() != _playerColors[_currentTurn]) && (_playerColors[_currentTurn] != chessPiece.TeamColor.ALL))
            {
                return false;
            }
        }

        //Deselect last selected piece if there was one
        deselectPiece();

        //Select the new piece
        _selectedPiece = piece;
        Vector2 location = _selectedPiece.getLocation();

        //Move the selected tile object
        GameObject selectedThing = GameObject.Find("Selected Tile");
        selectedThing.GetComponent<Renderer>().enabled = true;
        //Debug.Log("Location : " + location.x + "," + location.y);
        selectedThing.transform.localPosition = new Vector3(BOARD_OFFSET_X + ((int)location.x * BOARD_TILE_WIDTH), BOARD_OFFSET_Y + ((int)location.y * BOARD_TILE_HEIGHT), TILE_EFFECT_Z);

        //Generate the valid move tile effect objects
        foreach(Vector2 validMove in piece.getValidMoveList(this))
        {
            GameObject moveTileEffect = new GameObject("ValidMoveTile"+_validMoveTileEffects.Count);
            SpriteRenderer spriteRenderer = moveTileEffect.AddComponent<SpriteRenderer>();
            spriteRenderer.sprite = selectedThing.GetComponent<SpriteRenderer>().sprite;
            moveTileEffect.AddComponent<BoxCollider2D>();
            componentValidMoveTile compValidMoveTile = moveTileEffect.AddComponent<componentValidMoveTile>();
            compValidMoveTile.setLocation((int)validMove.x, (int)validMove.y);

            moveTileEffect.transform.SetParent(gameObject.transform, false);
            moveTileEffect.transform.localPosition = new Vector3(BOARD_OFFSET_X + ((int)validMove.x * BOARD_TILE_WIDTH), BOARD_OFFSET_Y + ((int)validMove.y * BOARD_TILE_HEIGHT), TILE_EFFECT_Z);

            _validMoveTileEffects.Add(moveTileEffect);
        }

        return true;
    }
Пример #6
0
 //movePiece will activate all the good stuff like taking units and what not, while setting location is more lightweight
 public void setPieceLocation(componentPiece piece, int x, int y, bool movePiece = true)
 {
     //Debug.Log("Moving piece " + piece.gameObject.name + " to (" + x + "," + y + ")");
     if (movePiece)
     {
         piece.moveTo(x, y, this);
     }
     else
     {
         piece.setLocation(x, y);
     }
     piece.gameObject.transform.localPosition = new Vector3(BOARD_OFFSET_X + (x * BOARD_TILE_WIDTH), BOARD_OFFSET_Y + (y * BOARD_TILE_HEIGHT), PIECE_Z);
 }
Пример #7
0
 public void removePieceFromList(componentPiece piece)
 {
     _pieces.Remove(piece);
 }
Пример #8
0
 public void movePieceTo(componentPiece piece, int x, int y)
 {
     Vector2 pieceLocation = piece.getLocation();
     movePiece(piece, x - (int)pieceLocation.x, y - (int)pieceLocation.y);
 }
Пример #9
0
 //x and y here refer to their deltas
 public bool movePiece(componentPiece piece, int x, int y)
 {
     cmdMovePiece cmd = new cmdMovePiece(piece, x, y);
     return processCommand(cmd);
 }
Пример #10
0
 //Deltas, storing the original start x and y upon execution
 public cmdAddPiece(componentPiece actor, int x, int y)
 {
     _actor = actor;
     _x = x;
     _y = y;
 }