package magic.model.choice; import magic.model.MagicCardList; import magic.model.MagicGame; import magic.model.MagicPlayer; import magic.model.MagicSource; import magic.model.event.MagicEvent; import java.util.Collection; import java.util.Collections; import magic.model.IUIGameController; public class MagicRandomCardChoice extends MagicChoice { private final int amount; public MagicRandomCardChoice(final int amount) { super(""); this.amount=amount; } private MagicCardChoiceResult discard(final MagicPlayer player, final MagicSource source) { final MagicCardChoiceResult result=new MagicCardChoiceResult(); final MagicCardList hand=new MagicCardList(player.getHand()); hand.remove(source); hand.shuffle(); final int actualAmount=Math.min(hand.size(),amount); for (int i = 0; i < actualAmount; i++) { result.add(hand.get(i)); } return result; } @Override Collection<Object> getArtificialOptions(final MagicGame game, final MagicEvent event) { final MagicPlayer player = event.getPlayer(); final MagicSource source = event.getSource(); return Collections.<Object>singletonList(discard(player, source)); } @Override public Object[] getPlayerChoiceResults(final IUIGameController controller, final MagicGame game, final MagicEvent event) { final MagicPlayer player = event.getPlayer(); final MagicSource source = event.getSource(); return new Object[]{discard(player, source)}; } }