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; }
public void movePieceTo(componentPiece piece, int x, int y) { Vector2 pieceLocation = piece.getLocation(); movePiece(piece, x - (int)pieceLocation.x, y - (int)pieceLocation.y); }