package chess.controller.commands; import java.util.ArrayList; import java.util.List; import chess.controller.Command; import chess.controller.event.GameListener; import chess.model.ChessBoard; import chess.model.Coordinate; import chess.model.Game; import chess.model.Piece; public class GetAllowedMovesPieceCommand extends Command { private final Coordinate start; private List destinations; public GetAllowedMovesPieceCommand(Coordinate start) { this.start = start; this.destinations = new ArrayList<>(); } @Override public CommandResult execute(Game game, GameListener outputSystem) { final ChessBoard board = game.getBoard(); Piece piece = board.pieceAt(start); if (piece == null) return CommandResult.NotAllowed; if (piece.getColor() != game.getPlayerTurn()) return CommandResult.NotAllowed; this.destinations = board.getAllowedMoves(start); return CommandResult.NotMoved; } public List getDestinations() { return destinations; } }