//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); }
public void addPieceToCapturedList(componentPiece piece) { _captured.Add(piece); }
public void addPieceToList(componentPiece piece) { _pieces.Add(piece); //Debug.Log("Num Pieces : " + _pieces.Count); piece.gameObject.transform.SetParent(gameObject.transform, false); }
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; }
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; }
//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); }
public void removePieceFromList(componentPiece piece) { _pieces.Remove(piece); }
public void movePieceTo(componentPiece piece, int x, int y) { Vector2 pieceLocation = piece.getLocation(); movePiece(piece, x - (int)pieceLocation.x, y - (int)pieceLocation.y); }
//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); }
//Deltas, storing the original start x and y upon execution public cmdAddPiece(componentPiece actor, int x, int y) { _actor = actor; _x = x; _y = y; }