forked from External/mage
55 lines
1.7 KiB
Java
55 lines
1.7 KiB
Java
package mage.abilities.effects.common;
|
|
|
|
import mage.abilities.Ability;
|
|
import mage.abilities.Mode;
|
|
import mage.abilities.effects.OneShotEffect;
|
|
import mage.cards.Cards;
|
|
import mage.cards.CardsImpl;
|
|
import mage.constants.Outcome;
|
|
import mage.game.Game;
|
|
import mage.players.Player;
|
|
import mage.util.CardUtil;
|
|
|
|
/**
|
|
* @author TheElk801
|
|
*/
|
|
public class TargetPlayerShufflesTargetCardsEffect extends OneShotEffect {
|
|
|
|
public TargetPlayerShufflesTargetCardsEffect() {
|
|
super(Outcome.Neutral);
|
|
}
|
|
|
|
private TargetPlayerShufflesTargetCardsEffect(final TargetPlayerShufflesTargetCardsEffect effect) {
|
|
super(effect);
|
|
}
|
|
|
|
@Override
|
|
public TargetPlayerShufflesTargetCardsEffect copy() {
|
|
return new TargetPlayerShufflesTargetCardsEffect(this);
|
|
}
|
|
|
|
@Override
|
|
public boolean apply(Game game, Ability source) {
|
|
Player targetPlayer = game.getPlayer(source.getFirstTarget());
|
|
Cards cards = new CardsImpl(source.getTargets().get(1).getTargets());
|
|
if (targetPlayer != null && !cards.isEmpty()) {
|
|
return targetPlayer.shuffleCardsToLibrary(cards, game, source);
|
|
}
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public String getText(Mode mode) {
|
|
if (staticText != null && !staticText.isEmpty()) {
|
|
return staticText;
|
|
}
|
|
String rule = "target player shuffles ";
|
|
int targetNumber = mode.getTargets().get(1).getMaxNumberOfTargets();
|
|
if (targetNumber == Integer.MAX_VALUE) {
|
|
rule += "any number of target cards";
|
|
} else {
|
|
rule += "up to " + CardUtil.numberToText(targetNumber, "one") + " target card" + (targetNumber > 1 ? "s" : "");
|
|
}
|
|
return rule + " from their graveyard into their library";
|
|
}
|
|
}
|