mirror of
https://github.com/magefree/mage.git
synced 2025-12-21 02:52:02 -08:00
[FDN] Uncharted Voyage, add option for "their choice" wording
This commit is contained in:
parent
46d3201193
commit
f15b3cdb30
3 changed files with 47 additions and 1 deletions
36
Mage.Sets/src/mage/cards/u/UnchartedVoyage.java
Normal file
36
Mage.Sets/src/mage/cards/u/UnchartedVoyage.java
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
package mage.cards.u;
|
||||
|
||||
import mage.abilities.effects.common.PutOnTopOrBottomLibraryTargetEffect;
|
||||
import mage.abilities.effects.keyword.SurveilEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author notgreat
|
||||
*/
|
||||
public final class UnchartedVoyage extends CardImpl {
|
||||
|
||||
public UnchartedVoyage(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{3}{U}");
|
||||
|
||||
// Target creature's owner puts it on their choice of the top or bottom of their library.
|
||||
this.getSpellAbility().addEffect(new PutOnTopOrBottomLibraryTargetEffect(false, true));
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
|
||||
// Surveil 1.
|
||||
this.getSpellAbility().addEffect(new SurveilEffect(1));
|
||||
}
|
||||
|
||||
private UnchartedVoyage(final UnchartedVoyage card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
@Override
|
||||
public UnchartedVoyage copy() {
|
||||
return new UnchartedVoyage(this);
|
||||
}
|
||||
}
|
||||
|
|
@ -498,6 +498,7 @@ public final class Foundations extends ExpansionSet {
|
|||
cards.add(new SetCardInfo("Twinblade Paladin", 503, Rarity.UNCOMMON, mage.cards.t.TwinbladePaladin.class));
|
||||
cards.add(new SetCardInfo("Twinflame Tyrant", 97, Rarity.MYTHIC, mage.cards.t.TwinflameTyrant.class));
|
||||
cards.add(new SetCardInfo("Uncharted Haven", 564, Rarity.COMMON, mage.cards.u.UnchartedHaven.class));
|
||||
cards.add(new SetCardInfo("Uncharted Voyage", 53, Rarity.COMMON, mage.cards.u.UnchartedVoyage.class));
|
||||
cards.add(new SetCardInfo("Undying Malice", 528, Rarity.COMMON, mage.cards.u.UndyingMalice.class));
|
||||
cards.add(new SetCardInfo("Unflinching Courage", 722, Rarity.UNCOMMON, mage.cards.u.UnflinchingCourage.class));
|
||||
cards.add(new SetCardInfo("Unsummon", 599, Rarity.COMMON, mage.cards.u.Unsummon.class));
|
||||
|
|
|
|||
|
|
@ -13,15 +13,24 @@ import mage.players.Player;
|
|||
public class PutOnTopOrBottomLibraryTargetEffect extends OneShotEffect {
|
||||
|
||||
private final boolean textOwnerOf;
|
||||
private final boolean textTheirChoice;
|
||||
|
||||
public PutOnTopOrBottomLibraryTargetEffect(boolean textOwnerOf) {
|
||||
super(Outcome.ReturnToHand);
|
||||
this.textOwnerOf = textOwnerOf;
|
||||
this.textTheirChoice = false;
|
||||
}
|
||||
|
||||
public PutOnTopOrBottomLibraryTargetEffect(boolean textOwnerOf, boolean textTheirChoice) {
|
||||
super(Outcome.ReturnToHand);
|
||||
this.textOwnerOf = textOwnerOf;
|
||||
this.textTheirChoice = textTheirChoice;
|
||||
}
|
||||
|
||||
private PutOnTopOrBottomLibraryTargetEffect(final PutOnTopOrBottomLibraryTargetEffect effect) {
|
||||
super(effect);
|
||||
this.textOwnerOf = effect.textOwnerOf;
|
||||
this.textTheirChoice = effect.textTheirChoice;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -49,6 +58,6 @@ public class PutOnTopOrBottomLibraryTargetEffect extends OneShotEffect {
|
|||
}
|
||||
String targetText = getTargetPointer().describeTargets(mode.getTargets(), "that permanent");
|
||||
return (textOwnerOf ? "the owner of " + targetText : targetText + "'s owner") +
|
||||
" puts it on the top or bottom of their library";
|
||||
" puts it on " + (textTheirChoice ? "their choice of " : "") + "the top or bottom of their library";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue