mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
Merge branch 'Card-Forge:master' into master
This commit is contained in:
3
forge-adventure/src/main/config/forge-adventure-mac.sh
Normal file
3
forge-adventure/src/main/config/forge-adventure-mac.sh
Normal file
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
cd $(dirname "${0}")
|
||||
java -XstartOnFirstThread -Xmx4096m -Dfile.encoding=UTF-8 -jar $project.build.finalName$
|
||||
@@ -40,17 +40,24 @@ public class ChangeCombatantsEffect extends SpellAbilityEffect {
|
||||
@Override
|
||||
public void resolve(SpellAbility sa) {
|
||||
boolean isCombatChanged = false;
|
||||
final Game game = sa.getActivatingPlayer().getGame();
|
||||
final Player activator = sa.getActivatingPlayer();
|
||||
final Game game = activator.getGame();
|
||||
final TargetRestrictions tgt = sa.getTargetRestrictions();
|
||||
// TODO: may expand this effect for defined blocker (False Orders, General Jarkeld, Sorrow's Path, Ydwen Efreet)
|
||||
for (final Card c : getTargetCards(sa)) {
|
||||
String cardString = CardTranslation.getTranslatedName(c.getName()) + " (" + c.getId() + ")";
|
||||
boolean isOptional = sa.hasParam("Optional");
|
||||
if (isOptional && !activator.getController().confirmAction(sa, null,
|
||||
Localizer.getInstance().getMessage("lblChangeCombatantOption", cardString), null)) {
|
||||
continue;
|
||||
}
|
||||
if ((tgt == null) || c.canBeTargetedBy(sa)) {
|
||||
final Combat combat = game.getCombat();
|
||||
final GameEntity originalDefender = combat.getDefenderByAttacker(c);
|
||||
final FCollection<GameEntity> defs = new FCollection<>();
|
||||
defs.addAll(sa.hasParam("PlayerOnly") ? combat.getDefendingPlayers() : combat.getDefenders());
|
||||
|
||||
String title = Localizer.getInstance().getMessage("lblChooseDefenderToAttackWithCard", CardTranslation.getTranslatedName(c.getName()));
|
||||
String title = Localizer.getInstance().getMessage("lblChooseDefenderToAttackWithCard", cardString);
|
||||
Map<String, Object> params = Maps.newHashMap();
|
||||
params.put("Attacker", c);
|
||||
|
||||
|
||||
@@ -426,7 +426,7 @@ public class CountersPutEffect extends SpellAbilityEffect {
|
||||
if (sa.hasParam("EachFromSource")) {
|
||||
for (Card c : AbilityUtils.getDefinedCards(card, sa.getParam("EachFromSource"), sa)) {
|
||||
for (Entry<CounterType, Integer> cti : c.getCounters().entrySet()) {
|
||||
if (gameCard != null && gameCard.canReceiveCounters(cti.getKey())) {
|
||||
if (gameCard != null) {
|
||||
gameCard.addCounter(cti.getKey(), cti.getValue(), placer, table);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ import forge.game.player.Player;
|
||||
import forge.game.spellability.SpellAbility;
|
||||
import forge.game.zone.PlayerZone;
|
||||
import forge.game.zone.ZoneType;
|
||||
import forge.util.Lang;
|
||||
import forge.util.Localizer;
|
||||
import forge.util.MyRandom;
|
||||
|
||||
@@ -40,8 +41,10 @@ public class DigUntilEffect extends SpellAbilityEffect {
|
||||
sb.append(pl).append(" ");
|
||||
}
|
||||
|
||||
sb.append("reveals cards from their library until revealing ");
|
||||
sb.append(untilAmount).append(" ").append(desc).append(" card");
|
||||
final ZoneType revealed = ZoneType.smartValueOf(sa.getParam("RevealedDestination"));
|
||||
sb.append(revealed.equals(ZoneType.Exile) ? "exiles cards from their library until they exile " :
|
||||
"reveals cards from their library until revealing ");
|
||||
sb.append(Lang.nounWithNumeralExceptOne(untilAmount, desc + " card"));
|
||||
if (untilAmount != 1) {
|
||||
sb.append("s");
|
||||
}
|
||||
@@ -49,10 +52,12 @@ public class DigUntilEffect extends SpellAbilityEffect {
|
||||
untilAmount = AbilityUtils.calculateAmount(sa.getHostCard(), sa.getParam("MaxRevealed"), sa);
|
||||
sb.append(" or ").append(untilAmount).append(" card/s");
|
||||
}
|
||||
sb.append(". Put ");
|
||||
sb.append(".");
|
||||
|
||||
if (!sa.hasParam("NoPutDesc")) {
|
||||
sb.append(" Put ");
|
||||
|
||||
final ZoneType found = ZoneType.smartValueOf(sa.getParam("FoundDestination"));
|
||||
final ZoneType revealed = ZoneType.smartValueOf(sa.getParam("RevealedDestination"));
|
||||
if (found != null) {
|
||||
sb.append(untilAmount > 1 ? "those cards" : "that card");
|
||||
sb.append(" ");
|
||||
@@ -72,6 +77,7 @@ public class DigUntilEffect extends SpellAbilityEffect {
|
||||
sb.append("all cards revealed this way into their hand");
|
||||
}
|
||||
}
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
|
||||
@@ -96,8 +96,6 @@ public class TwoPilesEffect extends SpellAbilityEffect {
|
||||
title = Localizer.getInstance().getMessage("lblDivideCardIntoTwoPiles");
|
||||
}
|
||||
|
||||
card.clearRemembered();
|
||||
|
||||
// first, separate the cards into piles
|
||||
final CardCollectionView pile1 = separator.getController().chooseCardsForEffect(pool, sa, title, 0, size, false, null);
|
||||
final CardCollection pile2 = new CardCollection(pool);
|
||||
@@ -147,25 +145,36 @@ public class TwoPilesEffect extends SpellAbilityEffect {
|
||||
}
|
||||
|
||||
|
||||
if (sa.hasParam("RememberChosen")) {
|
||||
card.addRemembered(chosenPile);
|
||||
}
|
||||
|
||||
// take action on the chosen pile
|
||||
if (sa.hasParam("ChosenPile")) {
|
||||
if (card.hasRemembered()) {
|
||||
card.clearRemembered();
|
||||
}
|
||||
card.addRemembered(chosenPile);
|
||||
|
||||
SpellAbility sub = sa.getAdditionalAbility("ChosenPile");
|
||||
if (sub != null) {
|
||||
AbilityUtils.resolve(sub);
|
||||
}
|
||||
card.clearRemembered();
|
||||
}
|
||||
|
||||
// take action on the unchosen pile
|
||||
if (sa.hasParam("UnchosenPile")) {
|
||||
if (card.hasRemembered()) {
|
||||
card.clearRemembered();
|
||||
}
|
||||
card.addRemembered(unchosenPile);
|
||||
|
||||
SpellAbility sub = sa.getAdditionalAbility("UnchosenPile");
|
||||
if (sub != null) {
|
||||
AbilityUtils.resolve(sub);
|
||||
}
|
||||
card.clearRemembered();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -152,7 +152,7 @@ public class StaticAbility extends CardTraitBase implements IIdentifiable, Clone
|
||||
layers.add(StaticAbilityLayer.MODIFYPT);
|
||||
}
|
||||
|
||||
if (hasParam("AddHiddenKeyword")
|
||||
if (hasParam("AddHiddenKeyword") || hasParam("MayPlay")
|
||||
|| hasParam("IgnoreEffectCost") || hasParam("Goad") || hasParam("CanBlockAny") || hasParam("CanBlockAmount")
|
||||
|| hasParam("AdjustLandPlays") || hasParam("ControlVote") || hasParam("AdditionalVote") || hasParam("AdditionalOptionalVote")) {
|
||||
layers.add(StaticAbilityLayer.RULES);
|
||||
|
||||
@@ -73,6 +73,8 @@ public class RewardActor extends Actor implements Disposable, ImageFetcher.Callb
|
||||
if (generatedTooltip != null)
|
||||
generatedTooltip.dispose();
|
||||
}
|
||||
if (T != null)
|
||||
T.dispose();
|
||||
}
|
||||
|
||||
public Reward getReward() {
|
||||
@@ -81,7 +83,45 @@ public class RewardActor extends Actor implements Disposable, ImageFetcher.Callb
|
||||
|
||||
@Override
|
||||
public void onImageFetched() {
|
||||
setCardImage(ImageCache.getImage(reward.getCard().getImageKey(false), false));
|
||||
image = ImageCache.getImage(reward.getCard().getImageKey(false), false);
|
||||
if (image != null) {
|
||||
try {
|
||||
TextureRegionDrawable drawable = new TextureRegionDrawable(ImageCache.croppedBorderImage(image));
|
||||
if(Forge.isLandscapeMode())
|
||||
drawable.setMinSize((Scene.getIntendedHeight() / RewardScene.CARD_WIDTH_TO_HEIGHT) * 0.95f, Scene.getIntendedHeight() * 0.95f);
|
||||
else
|
||||
drawable.setMinSize(Scene.getIntendedWidth() * 0.95f, Scene.getIntendedWidth()* RewardScene.CARD_WIDTH_TO_HEIGHT * 0.95f);
|
||||
if (toolTipImage != null) {
|
||||
if (toolTipImage.getDrawable() instanceof Texture) {
|
||||
((Texture) toolTipImage.getDrawable()).dispose();
|
||||
}
|
||||
}
|
||||
toolTipImage.remove();
|
||||
toolTipImage = new Image(drawable);
|
||||
if (GuiBase.isAndroid()) {
|
||||
if (holdTooltip.tooltip_image.getDrawable() instanceof Texture) {
|
||||
((Texture) holdTooltip.tooltip_image.getDrawable()).dispose();
|
||||
}
|
||||
Actor ht = holdTooltip.tooltip_actor.getCells().get(0).getActor();
|
||||
if (ht != null && ht instanceof Image) {
|
||||
if (((Image) ht).getDrawable() instanceof Texture) {
|
||||
((Texture) ((Image) ht).getDrawable()).dispose();
|
||||
}
|
||||
}
|
||||
holdTooltip.tooltip_actor.add(toolTipImage);
|
||||
} else {
|
||||
Image renderedImage = tooltip.getActor();
|
||||
if (renderedImage != null && renderedImage.getDrawable() instanceof Texture) {
|
||||
((Texture) tooltip.getActor().getDrawable()).dispose();
|
||||
}
|
||||
tooltip.setActor(toolTipImage);
|
||||
}
|
||||
if (T != null)
|
||||
T.dispose();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public RewardActor(Reward reward, boolean flippable) {
|
||||
@@ -106,13 +146,6 @@ public class RewardActor extends Actor implements Disposable, ImageFetcher.Callb
|
||||
}
|
||||
T = renderPlaceholder(G, reward.getCard()); //Now we can render the card.
|
||||
setCardImage(T);
|
||||
if (image == null) {
|
||||
if (T == null)
|
||||
System.err.println("Error generating placeholder image for card: "+reward.getCard().getName());
|
||||
else
|
||||
image = T;
|
||||
}
|
||||
//Set the fetcher regardless. It'll replace the preview once it lands.
|
||||
fetcher.fetchImage(reward.getCard().getImageKey(false), this);
|
||||
}
|
||||
}
|
||||
@@ -217,14 +250,19 @@ public class RewardActor extends Actor implements Disposable, ImageFetcher.Callb
|
||||
drawable.setMinSize((Scene.getIntendedHeight() / RewardScene.CARD_WIDTH_TO_HEIGHT) * 0.95f, Scene.getIntendedHeight() * 0.95f);
|
||||
else
|
||||
drawable.setMinSize(Scene.getIntendedWidth() * 0.95f, Scene.getIntendedWidth()* RewardScene.CARD_WIDTH_TO_HEIGHT * 0.95f);
|
||||
if (toolTipImage == null)
|
||||
toolTipImage = new Image(drawable);
|
||||
tooltip = new Tooltip<Image>(toolTipImage);
|
||||
holdTooltip = new HoldTooltip(new Image(drawable));
|
||||
tooltip.setInstant(true);
|
||||
if (frontSideUp()) {
|
||||
if (GuiBase.isAndroid())
|
||||
if (GuiBase.isAndroid()) {
|
||||
if (holdTooltip == null)
|
||||
holdTooltip = new HoldTooltip(toolTipImage);
|
||||
if (frontSideUp())
|
||||
addListener(holdTooltip);
|
||||
else
|
||||
|
||||
} else {
|
||||
if (tooltip == null)
|
||||
tooltip = new Tooltip<Image>(toolTipImage);
|
||||
tooltip.setInstant(true);
|
||||
if (frontSideUp())
|
||||
addListener(tooltip);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
@@ -253,6 +291,7 @@ public class RewardActor extends Actor implements Disposable, ImageFetcher.Callb
|
||||
}
|
||||
|
||||
private void setItemTooltips(Sprite icon) {
|
||||
if (generatedTooltip == null) {
|
||||
float icon_w = 64f; float icon_h = 64f; //Sizes for the embedded icon. Could be made smaller on smaller resolutions.
|
||||
Matrix4 m = new Matrix4();
|
||||
ItemData item = getReward().getItem();
|
||||
@@ -272,26 +311,36 @@ public class RewardActor extends Actor implements Disposable, ImageFetcher.Callb
|
||||
G.drawText(item.getDescription(), FSkinFont.get(18), Color.WHITE, 10, icon_h + 8, preview_w - 10, preview_h - 4, true, Align.left, false); //Description.
|
||||
G.end();
|
||||
G.endClip();
|
||||
Texture result = new Texture(Pixmap.createFromFrameBuffer(0, 0, preview_w, preview_h), Forge.isTextureFilteringEnabled());
|
||||
generatedTooltip = new Texture(Pixmap.createFromFrameBuffer(0, 0, preview_w, preview_h), Forge.isTextureFilteringEnabled());
|
||||
frameBuffer.end();
|
||||
G.dispose();
|
||||
frameBuffer.dispose();
|
||||
}
|
||||
|
||||
//Rendering code ends here.
|
||||
|
||||
TextureRegionDrawable drawable = new TextureRegionDrawable(result);
|
||||
TextureRegionDrawable drawable = new TextureRegionDrawable(generatedTooltip);
|
||||
if(Forge.isLandscapeMode())
|
||||
drawable.setMinSize((Scene.getIntendedHeight() / RewardScene.CARD_WIDTH_TO_HEIGHT) * 0.95f, Scene.getIntendedHeight() * 0.95f);
|
||||
else
|
||||
drawable.setMinSize(Scene.getIntendedWidth() * 0.95f, Scene.getIntendedWidth()* RewardScene.CARD_WIDTH_TO_HEIGHT * 0.95f);
|
||||
|
||||
if (toolTipImage == null)
|
||||
toolTipImage = new Image(drawable);
|
||||
tooltip = new Tooltip<>(toolTipImage);
|
||||
holdTooltip = new HoldTooltip(new Image(drawable));
|
||||
tooltip.setInstant(true);
|
||||
|
||||
if (frontSideUp()) {
|
||||
if (GuiBase.isAndroid()) addListener(holdTooltip);
|
||||
else addListener(tooltip);
|
||||
if (GuiBase.isAndroid()) {
|
||||
if (holdTooltip == null)
|
||||
holdTooltip = new HoldTooltip(toolTipImage);
|
||||
addListener(holdTooltip);
|
||||
} else {
|
||||
if (tooltip == null) {
|
||||
tooltip = new Tooltip<>(toolTipImage);
|
||||
tooltip.setInstant(true);
|
||||
}
|
||||
addListener(tooltip);
|
||||
}
|
||||
}
|
||||
generatedTooltip = result; //Dispose of this later.
|
||||
}
|
||||
|
||||
private boolean frontSideUp() {
|
||||
|
||||
@@ -7,7 +7,6 @@ T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.S
|
||||
SVar:DBChoosePlayer:DB$ Pump | ValidTgts$ Opponent | IsCurse$ True | SubAbility$ DBPeekAndReveal
|
||||
SVar:DBPeekAndReveal:DB$ PeekAndReveal | Defined$ You | PeekAmount$ 3 | NoPeek$ True | NoReveal$ True | RememberPeeked$ True | SubAbility$ Separate
|
||||
SVar:Separate:DB$ TwoPiles | Defined$ You | Separator$ Targeted | Chooser$ You | DefinedCards$ Remembered | ChosenPile$ DBHand | UnchosenPile$ DBGrave | Zone$ Library | FaceDown$ One | StackDescription$ None
|
||||
SVar:DBHand:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Hand | SubAbility$ DBCleanup
|
||||
SVar:DBGrave:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Graveyard | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:DBHand:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Hand
|
||||
SVar:DBGrave:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Graveyard
|
||||
Oracle:Menace\nWhen Atris, Oracle of Half-Truths enters the battlefield, target opponent looks at the top three cards of your library and separates them into a face-down pile and a face-up pile. Put one pile into your hand and the other into your graveyard.
|
||||
|
||||
@@ -4,8 +4,9 @@ Types:Creature Bird Wizard
|
||||
PT:3/1
|
||||
K:Flying
|
||||
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ TrigPutCounter | TriggerZones$ Battlefield | OptionalDecider$ You | TriggerDescription$ At the beginning of your upkeep, you may put a feather counter on target creature. If you do, that creature has base power and toughness 3/1 and has flying for as long as it has a feather counter on it.
|
||||
SVar:TrigPutCounter:DB$ PutCounter | ValidTgts$ Creature | TgtPrompt$ Select target creature | CounterType$ FEATHER | CounterNum$ 1 | SubAbility$ DBEffect
|
||||
SVar:DBEffect:DB$ Effect | RememberObjects$ Targeted | StaticAbilities$ MimeomancerStatic | ForgetOnMoved$ Battlefield | ForgetCounter$ FEATHER | Duration$ Permanent
|
||||
SVar:TrigPutCounter:DB$ PutCounter | ValidTgts$ Creature | TgtPrompt$ Select target creature | CounterType$ FEATHER | CounterNum$ 1 | RememberCards$ True | SubAbility$ DBEffect
|
||||
SVar:DBEffect:DB$ Effect | RememberObjects$ Remembered | StaticAbilities$ MimeomancerStatic | ForgetOnMoved$ Battlefield | ForgetCounter$ FEATHER | Duration$ Permanent | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:MimeomancerStatic:Mode$ Continuous | EffectZone$ Command | Affected$ Card.IsRemembered | SetPower$ 3 | SetToughness$ 1 | AddKeyword$ Flying | Description$ CARDNAME is 3/1 and has flying for as long as it has a feather counter on it.
|
||||
AI:RemoveDeck:All
|
||||
Oracle:Flying\nAt the beginning of your upkeep, you may put a feather counter on target creature. If you do, that creature has base power and toughness 3/1 and has flying for as long as it has a feather counter on it.
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
Name:Boneyard Parley
|
||||
ManaCost:5 B B
|
||||
Types:Sorcery
|
||||
A:SP$ ChangeZone | Cost$ 5 B B | Origin$ Graveyard | Destination$ Exile | TargetMin$ 0 | TargetMax$ 5 | TgtPrompt$ Select up to five target cards in graveyards | ValidTgts$ Card.Creature | RememberTargets$ True | SubAbility$ DBTwoPiles | AITgtOwnCards$ True | AIMinTgts$ 3 | SpellDescription$ Exile up to five target creature cards from graveyards. An opponent separates those cards into two piles. Put all cards from the pile of your choice onto the battlefield under your control and the rest into their owners' graveyards.
|
||||
SVar:DBTwoPiles:DB$ TwoPiles | Defined$ You | DefinedCards$ Remembered | Separator$ Opponent | ChosenPile$ DBBattlefield | UnchosenPile$ DBGrave
|
||||
SVar:DBBattlefield:DB$ ChangeZone | Defined$ Remembered | Origin$ Exile | Destination$ Battlefield | GainControl$ True | SubAbility$ DBCleanup
|
||||
SVar:DBGrave:DB$ ChangeZone | Defined$ Remembered | Origin$ Exile | Destination$ Graveyard | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
A:SP$ ChangeZone | Origin$ Graveyard | Destination$ Exile | TargetMin$ 0 | TargetMax$ 5 | TgtPrompt$ Select up to five target cards in graveyards | ValidTgts$ Card.Creature | SubAbility$ DBTwoPiles | AITgtOwnCards$ True | AIMinTgts$ 3 | SpellDescription$ Exile up to five target creature cards from graveyards. An opponent separates those cards into two piles. Put all cards from the pile of your choice onto the battlefield under your control and the rest into their owners' graveyards.
|
||||
SVar:DBTwoPiles:DB$ TwoPiles | Defined$ You | DefinedCards$ Targeted | Separator$ Opponent | ChosenPile$ DBBattlefield | UnchosenPile$ DBGrave
|
||||
SVar:DBBattlefield:DB$ ChangeZone | Defined$ Remembered | Origin$ Exile | Destination$ Battlefield | GainControl$ True
|
||||
SVar:DBGrave:DB$ ChangeZone | Defined$ Remembered | Origin$ Exile | Destination$ Graveyard
|
||||
Oracle:Exile up to five target creature cards from graveyards. An opponent separates those cards into two piles. Put all cards from the pile of your choice onto the battlefield under your control and the rest into their owners' graveyards.
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
Name:Brilliant Ultimatum
|
||||
ManaCost:W W U U U B B
|
||||
Types:Sorcery
|
||||
A:SP$ Dig | Cost$ W W U U U B B | Defined$ You | DigNum$ 5 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | SubAbility$ DBTwoPiles | SpellDescription$ Exile the top five cards of your library. An opponent separates those cards into two piles. You may play lands and cast spells from one of those piles. If you cast a spell this way, you cast it without paying its mana cost.
|
||||
SVar:DBTwoPiles:DB$ TwoPiles | Defined$ You | DefinedCards$ Remembered | Separator$ Opponent | ChosenPile$ DBPlay | SubAbility$ DBCleanup
|
||||
A:SP$ Dig | Defined$ You | DigNum$ 5 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | SubAbility$ DBTwoPiles | SpellDescription$ Exile the top five cards of your library. An opponent separates those cards into two piles. You may play lands and cast spells from one of those piles. If you cast a spell this way, you cast it without paying its mana cost.
|
||||
SVar:DBTwoPiles:DB$ TwoPiles | Defined$ You | DefinedCards$ Remembered | Separator$ Opponent | ChosenPile$ DBPlay
|
||||
SVar:DBPlay:DB$ Play | Defined$ Remembered | WithoutManaCost$ True | Optional$ True | Amount$ All
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:Y:Count$InYourLibrary
|
||||
SVar:NeedsToPlayVar:Y GE8
|
||||
Oracle:Exile the top five cards of your library. An opponent separates those cards into two piles. You may play lands and cast spells from one of those piles. If you cast a spell this way, you cast it without paying its mana cost.
|
||||
|
||||
@@ -4,7 +4,6 @@ Types:Scheme
|
||||
T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ TwoPiles | TriggerZones$ Command | TriggerDescription$ When you set this scheme in motion, look at the top four cards of your library and separate them into a face-down pile and a face-up pile. An opponent chooses one of those piles. Put the cards in that pile into your hand and the rest on the bottom of your library in any order.
|
||||
SVar:TwoPiles:DB$ PeekAndReveal | Defined$ You | PeekAmount$ 4 | NoReveal$ True | RememberPeeked$ True | SubAbility$ Separate | SpellDescription$ When you set this scheme in motion, look at the top four cards of your library and separate them into a face-down pile and a face-up pile. An opponent chooses one of those piles. Put the cards in that pile into your hand and the rest on the bottom of your library in any order.
|
||||
SVar:Separate:DB$ TwoPiles | Defined$ You | Separator$ You | Chooser$ Opponent | DefinedCards$ Remembered | ChosenPile$ DBHand | UnchosenPile$ DBLibraryBottom | Zone$ Library | FaceDown$ One | StackDescription$ None
|
||||
SVar:DBHand:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Hand | SubAbility$ DBCleanup
|
||||
SVar:DBLibraryBottom:DB$ ChangeZoneAll | ChangeType$ Card.IsRemembered | Origin$ Library | Destination$ Library | LibraryPosition$ -1 | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:DBHand:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Hand
|
||||
SVar:DBLibraryBottom:DB$ ChangeZoneAll | ChangeType$ Card.IsRemembered | Origin$ Library | Destination$ Library | LibraryPosition$ -1
|
||||
Oracle:When you set this scheme in motion, look at the top four cards of your library and separate them into a face-down pile and a face-up pile. An opponent chooses one of those piles. Put the cards in that pile into your hand and the rest on the bottom of your library in any order.
|
||||
|
||||
@@ -4,6 +4,7 @@ Types:Creature Elemental
|
||||
PT:3/4
|
||||
K:Flying
|
||||
T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Battlefield | Destination$ Graveyard | Execute$ TrigPutCounter | OptionalDecider$ You | TriggerDescription$ When CARDNAME dies, you may put three +1/+1 counters on target land you control. If you do, that land becomes a 0/0 Elemental creature with haste that's still a land.
|
||||
SVar:TrigPutCounter:DB$ PutCounter | ValidTgts$ Land.YouCtrl | TgtPrompt$ Select target land you control | CounterType$ P1P1 | CounterNum$ 3 | SubAbility$ DBAnimate
|
||||
SVar:DBAnimate:DB$ Animate | Defined$ ParentTarget | Power$ 0 | Toughness$ 0 | Types$ Creature,Elemental | Keywords$ Haste | Duration$ Permanent
|
||||
SVar:TrigPutCounter:DB$ PutCounter | ValidTgts$ Land.YouCtrl | TgtPrompt$ Select target land you control | CounterType$ P1P1 | CounterNum$ 3 | RememberCards$ True | SubAbility$ DBAnimate
|
||||
SVar:DBAnimate:DB$ Animate | Defined$ Remembered | Power$ 0 | Toughness$ 0 | Types$ Creature,Elemental | Keywords$ Haste | Duration$ Permanent | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
Oracle:Flying\nWhen Cyclone Sire dies, you may put three +1/+1 counters on target land you control. If you do, that land becomes a 0/0 Elemental creature with haste that's still a land.
|
||||
|
||||
@@ -5,8 +5,8 @@ PT:6/6
|
||||
K:Flying
|
||||
K:Trample
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigRepeat | TriggerDescription$ When CARDNAME enters the battlefield, exile cards from the top of your library until you exile a nonland card, then put that card into your hand. If the card's mana value is 4 or greater, repeat this process. CARDNAME deals 1 damage to you for each card put into your hand this way.
|
||||
SVar:TrigRepeat:DB$ Repeat | RepeatSubAbility$ DBCleanup | RepeatDefined$ Remembered | RepeatPresent$ Card.cmcGE4 | RepeatCompare$ EQ1 | StackDescription$ Exile cards from the top of your library until you exile a nonland card, then put that card into your hand. If the card's mana value is 4 or greater, repeat this process. CARDNAME deals 1 damage to you for each card put into your hand this way.
|
||||
SVar:TrigRepeat:DB$ Repeat | RepeatSubAbility$ DBCleanup | RepeatDefined$ Remembered | RepeatPresent$ Card.cmcGE4 | RepeatCompare$ EQ1
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | SubAbility$ DBDigUntil
|
||||
SVar:DBDigUntil:DB$ DigUntil | ValidPlayer$ You | Valid$ Card.nonLand | ValidDescription$ nonland | FoundDestination$ Hand | RevealedDestination$ Exile | RememberFound$ True | SubAbility$ DBDealDamage
|
||||
SVar:DBDigUntil:DB$ DigUntil | Valid$ Card.nonLand | ValidDescription$ nonland | FoundDestination$ Hand | RevealedDestination$ Exile | RememberFound$ True | SubAbility$ DBDealDamage
|
||||
SVar:DBDealDamage:DB$ DealDamage | NumDmg$ 1 | Defined$ You
|
||||
Oracle:Flying, trample\nWhen Demonlord Belzenlok enters the battlefield, exile cards from the top of your library until you exile a nonland card, then put that card into your hand. If the card's mana value is 4 or greater, repeat this process. Demonlord Belzenlok deals 1 damage to you for each card put into your hand this way.
|
||||
|
||||
@@ -4,7 +4,7 @@ Types:Creature Eldrazi
|
||||
PT:3/1
|
||||
K:Devoid
|
||||
T:Mode$ SpellCast | ValidCard$ Card.Self | Execute$ TrigChange | TriggerDescription$ When you cast this spell, you may pay {1}{C}. If you do, gain control of target creature until end of turn, untap that creature, and it gains haste until end of turn. ({C} represents colorless mana.)
|
||||
SVar:TrigChange:AB$GainControl | Cost$ 1 C | TgtPrompt$ Choose target creature. | ValidTgts$ Creature | LoseControl$ EOT | Untap$ True | AddKWs$ Haste | SpellDescription$ Gain control of target creature until end of turn, untap that creature, and it gains haste until end of turn.
|
||||
SVar:TrigChange:AB$ GainControl | Cost$ 1 C | ValidTgts$ Creature | LoseControl$ EOT | Untap$ True | AddKWs$ Haste | SpellDescription$ Gain control of target creature until end of turn, untap that creature, and it gains haste until end of turn.
|
||||
K:Haste
|
||||
DeckHints:Ability$Mana.Colorless
|
||||
Oracle:Devoid (This card has no color.)\nWhen you cast this spell, you may pay {1}{C}. If you do, gain control of target creature until end of turn, untap that creature, and it gains haste until end of turn. ({C} represents colorless mana.)\nHaste
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
Name:Epiphany at the Drownyard
|
||||
ManaCost:X U
|
||||
Types:Instant
|
||||
A:SP$ PeekAndReveal | Cost$ X U | PeekAmount$ Y | RememberRevealed$ True | NoPeek$ True | SubAbility$ DBTwoPiles | SpellDescription$ Reveal the top X plus one cards of your library and separate them into two piles. An opponent chooses one of those piles. Put that pile into your hand and the other into your graveyard.
|
||||
A:SP$ PeekAndReveal | PeekAmount$ Y | RememberRevealed$ True | NoPeek$ True | SubAbility$ DBTwoPiles | SpellDescription$ Reveal the top X plus one cards of your library and separate them into two piles. An opponent chooses one of those piles. Put that pile into your hand and the other into your graveyard.
|
||||
SVar:DBTwoPiles:DB$ TwoPiles | Chooser$ Opponent | DefinedCards$ Remembered | Separator$ You | ChosenPile$ DBHand | UnchosenPile$ DBGrave | AILogic$ Worst
|
||||
SVar:DBHand:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Hand | SubAbility$ DBCleanup
|
||||
SVar:DBGrave:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Graveyard | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:DBHand:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Hand
|
||||
SVar:DBGrave:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Graveyard
|
||||
SVar:Y:Count$xPaid/Plus.1
|
||||
SVar:X:Count$xPaid
|
||||
DeckHints:Ability$Delirium
|
||||
|
||||
@@ -3,7 +3,6 @@ ManaCost:3 U
|
||||
Types:Instant
|
||||
A:SP$ PeekAndReveal | PeekAmount$ 5 | RememberRevealed$ True | NoPeek$ True | SubAbility$ DBTwoPiles | SpellDescription$ Reveal the top five cards of your library. An opponent separates those cards into two piles. Put one pile into your hand and the other into your graveyard.
|
||||
SVar:DBTwoPiles:DB$ TwoPiles | Defined$ You | DefinedCards$ Remembered | Separator$ Opponent | ChosenPile$ DBHand | UnchosenPile$ DBGrave | StackDescription$ An opponent separates those cards into two piles. {p:You} puts one pile into their hand and the other into their graveyard.
|
||||
SVar:DBHand:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Hand | SubAbility$ DBCleanup
|
||||
SVar:DBGrave:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Graveyard | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:DBHand:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Hand
|
||||
SVar:DBGrave:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Graveyard
|
||||
Oracle:Reveal the top five cards of your library. An opponent separates those cards into two piles. Put one pile into your hand and the other into your graveyard.
|
||||
|
||||
@@ -3,8 +3,7 @@ ManaCost:3 W
|
||||
Types:Enchantment
|
||||
T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ Player.Opponent | Execute$ TrigTwoPile | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of combat on each opponent's turn, separate all creatures that player controls into two piles. Only creatures in the pile of their choice can attack this turn.
|
||||
SVar:TrigTwoPile:DB$ TwoPiles | Defined$ TriggeredPlayer | Chooser$ TriggeredPlayer | ValidCards$ Creature | Zone$ Battlefield | Separator$ You | ChosenPile$ DBEffect
|
||||
SVar:DBEffect:DB$ Effect | RememberObjects$ Remembered | StaticAbilities$ STCantAttack | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:DBEffect:DB$ Effect | RememberObjects$ Remembered | StaticAbilities$ STCantAttack
|
||||
SVar:STCantAttack:Mode$ CantAttack | EffectZone$ Command | ValidCard$ Creature.IsNotRemembered | Description$ Only creatures in the pile of their choice can attack this turn.
|
||||
SVar:NonStackingAttachEffect:True
|
||||
Oracle:At the beginning of combat on each opponent's turn, separate all creatures that player controls into two piles. Only creatures in the pile of their choice can attack this turn.
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
Name:Fortune's Favor
|
||||
ManaCost:3 U
|
||||
Types:Instant
|
||||
A:SP$ PeekAndReveal | Cost$ 3 U | Defined$ You | PeekAmount$ 4 | NoPeek$ True | NoReveal$ True | RememberPeeked$ True | SubAbility$ Separate | SpellDescription$ Target opponent looks at the top four cards of your library and separates them into a face-down pile and a face-up pile. Put one pile into your hand and the other into your graveyard.
|
||||
A:SP$ PeekAndReveal | PeekAmount$ 4 | NoPeek$ True | NoReveal$ True | RememberPeeked$ True | SubAbility$ Separate | SpellDescription$ Target opponent looks at the top four cards of your library and separates them into a face-down pile and a face-up pile. Put one pile into your hand and the other into your graveyard.
|
||||
SVar:Separate:DB$ TwoPiles | Defined$ You | Separator$ TargetedPlayer | Chooser$ You | ValidTgts$ Opponent | DefinedCards$ Remembered | ChosenPile$ DBHand | UnchosenPile$ DBGrave | Zone$ Library | FaceDown$ One | StackDescription$ None
|
||||
SVar:DBHand:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Hand | SubAbility$ DBCleanup
|
||||
SVar:DBGrave:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Graveyard | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:DBHand:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Hand
|
||||
SVar:DBGrave:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Graveyard
|
||||
DeckHints:Ability$Delirium
|
||||
DeckHas:Ability$Graveyard
|
||||
Oracle:Target opponent looks at the top four cards of your library and separates them into a face-down pile and a face-up pile. Put one pile into your hand and the other into your graveyard.
|
||||
|
||||
@@ -2,6 +2,5 @@ Name:Hatchet Bully
|
||||
ManaCost:3 R
|
||||
Types:Creature Goblin Warrior
|
||||
PT:3/3
|
||||
A:AB$ PutCounter | Cost$ 2 R T | CounterType$ M1M1 | CounterNum$ 1 | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | SubAbility$ DBDamage | SpellDescription$ Put a -1/-1 counter on a creature you control: CARDNAME deals 2 damage to any target.
|
||||
SVar:DBDamage:DB$ DealDamage | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ 2
|
||||
A:AB$ DealDamage | Cost$ 2 R T AddCounter<1/M1M1/Creature.YouCtrl/a creature you control> | | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ 2 | SpellDescription$ CARDNAME deals 2 damage to any target.
|
||||
Oracle:{2}{R}, {T}, Put a -1/-1 counter on a creature you control: Hatchet Bully deals 2 damage to any target.
|
||||
|
||||
@@ -6,7 +6,7 @@ K:Mutate:3 RG U U
|
||||
K:Flying
|
||||
K:Trample
|
||||
T:Mode$ Mutates | ValidCard$ Card.Self | Execute$ TrigDigUntil | TriggerDescription$ Whenever this creature mutates, exile cards from the top of your library until you exile a nonland permanent card. Put that card onto the battlefield or into your hand.
|
||||
SVar:TrigDigUntil:DB$ DigUntil | ValidPlayer$ You | Valid$ Permanent.nonLand | ValidDescription$ nonland permanent | FoundDestination$ Exile | RevealedDestination$ Exile | RememberFound$ True | SubAbility$ DBChoose
|
||||
SVar:TrigDigUntil:DB$ DigUntil | Valid$ Permanent.nonLand | ValidDescription$ nonland permanent | FoundDestination$ Exile | RevealedDestination$ Exile | RememberFound$ True | SubAbility$ DBChoose
|
||||
SVar:DBChoose:DB$ GenericChoice | Choices$ Battlefield,Hand | Defined$ You
|
||||
SVar:Battlefield:DB$ ChangeZone | Defined$ Remembered | Origin$ Exile | Destination$ Battlefield | SubAbility$ DBCleanup | SpellDescription$ Put the nonland permanent onto the battlefield
|
||||
SVar:Hand:DB$ ChangeZone | Defined$ Remembered | Origin$ Exile | Destination$ Hand | SubAbility$ DBCleanup | SpellDescription$ Put the nonland permanent into your hand
|
||||
|
||||
@@ -8,7 +8,7 @@ SVar:JacePump:DB$ Pump | Defined$ TriggeredAttacker | NumAtt$ -1
|
||||
A:AB$ PeekAndReveal | Cost$ SubCounter<2/LOYALTY> | Planeswalker$ True | PeekAmount$ 3 | RememberRevealed$ True | NoPeek$ True | SubAbility$ DBTwoPiles | SpellDescription$ Reveal the top three cards of your library. An opponent separates them into two piles. Put one pile into your hand and the other on the bottom of your library in any order.
|
||||
SVar:DBTwoPiles:DB$ TwoPiles | Defined$ You | DefinedCards$ Remembered | Separator$ Opponent | ChosenPile$ DBHand | UnchosenPile$ DBLibraryBottom
|
||||
SVar:DBHand:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Hand
|
||||
SVar:DBLibraryBottom:DB$ ChangeZoneAll | ChangeType$ Card.IsRemembered | Origin$ Library | Destination$ Library | LibraryPosition$ -1 | SubAbility$ DBCleanup
|
||||
SVar:DBLibraryBottom:DB$ ChangeZoneAll | ChangeType$ Card.IsRemembered | Origin$ Library | Destination$ Library | LibraryPosition$ -1
|
||||
A:AB$ RepeatEach | Cost$ SubCounter<8/LOYALTY> | Planeswalker$ True | Ultimate$ True | RepeatPlayers$ Player | RepeatSubAbility$ DBJaceExile | SubAbility$ DBPlayIt | SpellDescription$ For each player, search that player's library for a nonland card and exile it, then that player shuffles. You may cast those cards without paying their mana costs.
|
||||
SVar:DBJaceExile:DB$ ChangeZone | Origin$ Library | Destination$ Exile | DefinedPlayer$ Remembered | Chooser$ You | ChangeType$ Card.nonLand | ChangeNum$ 1 | Imprint$ True | Shuffle$ True
|
||||
SVar:DBPlayIt:DB$ Play | Defined$ Imprinted | Amount$ All | Controller$ You | WithoutManaCost$ True | ValidSA$ Spell | Optional$ True | RememberPlayed$ True | SubAbility$ DBCleanup
|
||||
|
||||
@@ -5,6 +5,6 @@ Loyalty:3
|
||||
A:AB$ Discard | Cost$ AddCounter<1/LOYALTY> | NumCards$ 1 | Mode$ TgtChoose | Defined$ Player | Planeswalker$ True | SpellDescription$ Each player discards a card.
|
||||
A:AB$ Sacrifice | Cost$ SubCounter<2/LOYALTY> | ValidTgts$ Player | SacValid$ Creature | SacMessage$ Creature | Planeswalker$ True | SpellDescription$ Target player sacrifices a creature.
|
||||
A:AB$ TwoPiles | Cost$ SubCounter<6/LOYALTY> | ValidTgts$ Player | TgtPrompt$ Select target player | Separator$ You | ChosenPile$ DBSacAll | ValidCards$ Permanent | Zone$ Battlefield | Planeswalker$ True | Ultimate$ True | AILogic$ Worst | SpellDescription$ Separate all permanents target player controls into two piles. That player sacrifices all permanents in the pile of their choice.
|
||||
SVar:DBSacAll:DB$ SacrificeAll | ValidCards$ Permanent.IsRemembered | SubAbility$ Cleanup
|
||||
SVar:Cleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:DBSacAll:DB$ SacrificeAll | ValidCards$ Permanent.IsRemembered
|
||||
DeckHas:Ability$Discard|Sacrifice
|
||||
Oracle:[+1]: Each player discards a card.\n[-2]: Target player sacrifices a creature.\n[-6]: Separate all permanents target player controls into two piles. That player sacrifices all permanents in the pile of their choice.
|
||||
|
||||
@@ -2,8 +2,7 @@ Name:Make an Example
|
||||
ManaCost:3 B
|
||||
Types:Sorcery
|
||||
A:SP$ RepeatEach | RepeatPlayers$ Opponent | RepeatSubAbility$ DBTwoPiles | SubAbility$ DBSac | SpellDescription$ Each opponent separates the creatures they control into two piles. For each opponent, you choose one of their piles.
|
||||
SVar:DBTwoPiles:DB$ TwoPiles | Defined$ Remembered | Separator$ Remembered | Chooser$ You | ChosenPile$ DBImprint | ValidCards$ Creature.RememberedPlayerCtrl | Zone$ Battlefield
|
||||
SVar:DBImprint:DB$ Pump | ImprintCards$ Remembered
|
||||
SVar:DBSac:DB$ SacrificeAll | Defined$ Imprinted | SubAbility$ DBCleanup | StackDescription$ Each opponent sacrifices the creatures in their chosen pile. | SpellDescription$ Each opponent sacrifices the creatures in their chosen pile. (Piles can be empty.)
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearImprinted$ True | ClearRemembered$ True
|
||||
SVar:DBTwoPiles:DB$ TwoPiles | Defined$ Remembered | Separator$ Remembered | Chooser$ You | RememberChosen$ True | ValidCards$ Creature.RememberedPlayerCtrl | Zone$ Battlefield
|
||||
SVar:DBSac:DB$ SacrificeAll | Defined$ Remembered | SubAbility$ DBCleanup | StackDescription$ Each opponent sacrifices the creatures in their chosen pile. | SpellDescription$ Each opponent sacrifices the creatures in their chosen pile. (Piles can be empty.)
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
Oracle:Each opponent separates the creatures they control into two piles. For each opponent, you choose one of their piles. Each opponent sacrifices the creatures in their chosen pile. (Piles can be empty.)
|
||||
|
||||
@@ -3,7 +3,8 @@ ManaCost:3 W U
|
||||
Types:Legendary Creature Merfolk Ally
|
||||
PT:4/4
|
||||
T:Mode$ SpellCast | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPutCounter | OptionalDecider$ You | TriggerDescription$ Whenever you cast an instant or sorcery spell, you may put three +1/+1 counters on target land you control. If you do, that land becomes a 0/0 Elemental creature with haste that's still a land.
|
||||
SVar:TrigPutCounter:DB$ PutCounter | ValidTgts$ Land.YouCtrl | TgtPrompt$ Select target land you control | CounterType$ P1P1 | CounterNum$ 3 | SubAbility$ DBAnimate
|
||||
SVar:DBAnimate:DB$ Animate | Defined$ ParentTarget | Power$ 0 | Toughness$ 0 | Types$ Creature,Elemental | Keywords$ Haste | Duration$ Permanent
|
||||
SVar:TrigPutCounter:DB$ PutCounter | ValidTgts$ Land.YouCtrl | TgtPrompt$ Select target land you control | CounterType$ P1P1 | CounterNum$ 3 | RememberCards$ True | SubAbility$ DBAnimate
|
||||
SVar:DBAnimate:DB$ Animate | Defined$ Remembered | Power$ 0 | Toughness$ 0 | Types$ Creature,Elemental | Keywords$ Haste | Duration$ Permanent | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:BuffedBy:Instant,Sorcery
|
||||
Oracle:Whenever you cast an instant or sorcery spell, you may put three +1/+1 counters on target land you control. If you do, that land becomes a 0/0 Elemental creature with haste that's still a land.
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
Name:Phyrexian Portal
|
||||
ManaCost:3
|
||||
Types:Artifact
|
||||
A:AB$ Dig | Cost$ 3 | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | Defined$ You | DigNum$ 10 | RememberRevealed$ True | NoLooking$ True | NoMove$ True | Choser$ Targeted | ConditionCheckSVar$ X | ConditionSVarCompare$ GE10 | SubAbility$ DBTwoPiles | SpellDescription$ If your library has ten or more cards in it, target opponent looks at the top ten cards of your library and separates them into two face-down piles. Exile one of those piles. Search the other pile for a card, put it into your hand, then shuffle the rest of that pile into your library. | StackDescription$ SpellDescription
|
||||
SVar:DBTwoPiles:DB$ TwoPiles | Defined$ You | DefinedCards$ Remembered | Separator$ Targeted | FaceDown$ True | ConditionCheckSVar$ X | ConditionSVarCompare$ GE10 | ChosenPile$ DBHand | UnchosenPile$ DBExile | SubAbility$ DBCleanup
|
||||
A:AB$ Dig | Cost$ 3 | ValidTgts$ Opponent | DigNum$ 10 | RememberRevealed$ True | NoLooking$ True | NoMove$ True | Choser$ Targeted | ConditionCheckSVar$ X | ConditionSVarCompare$ GE10 | SubAbility$ DBTwoPiles | SpellDescription$ If your library has ten or more cards in it, target opponent looks at the top ten cards of your library and separates them into two face-down piles. Exile one of those piles. Search the other pile for a card, put it into your hand, then shuffle the rest of that pile into your library. | StackDescription$ SpellDescription
|
||||
SVar:DBTwoPiles:DB$ TwoPiles | Defined$ You | DefinedCards$ Remembered | Separator$ Targeted | FaceDown$ True | ConditionCheckSVar$ X | ConditionSVarCompare$ GE10 | ChosenPile$ DBHand | UnchosenPile$ DBExile
|
||||
SVar:DBHand:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Hand | ChangeType$ Card | ChangeNum$ 1 | ChooseFromDefined$ True | Mandatory$ True | Shuffle$ True
|
||||
SVar:DBExile:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Exile
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
# This variable may be incorrect if the controller changes while the ability is on the stack
|
||||
SVar:X:Count$InYourLibrary
|
||||
AI:RemoveDeck:All
|
||||
|
||||
@@ -3,7 +3,7 @@ ManaCost:2 U
|
||||
Types:Creature Human Wizard
|
||||
PT:2/2
|
||||
K:Flash
|
||||
T:Mode$ ChangesZone | Phase$ Declare Attackers | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChangeAttacker | OptionalDecider$ You | TriggerDescription$ When Portal Mage enters the battlefield during the declare attackers step, you may reselect which player or planeswalker target attacking creature is attacking.
|
||||
T:Mode$ ChangesZone | Phase$ Declare Attackers | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChangeAttacker | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield during the declare attackers step, you may reselect which player or planeswalker target attacking creature is attacking. (It can't attack its controller or its controller's planeswalkers.)
|
||||
SVar:TrigChangeAttacker:DB$ ChangeCombatants | ValidTgts$ Creature.attacking | TgtPrompt$ Select target attacking creature
|
||||
AI:RemoveDeck:All
|
||||
Oracle:Flash\nWhen Portal Mage enters the battlefield during the declare attackers step, you may reselect which player or planeswalker target attacking creature is attacking. (It can't attack its controller or its controller's planeswalkers.)
|
||||
|
||||
@@ -10,11 +10,10 @@ SVar:DBDefLeftRight:DB$ TwoPiles | Defined$ Remembered | Separator$ Remembered |
|
||||
SVar:DBDefLeftPile:DB$ Animate | Defined$ ValidCommand Effect.namedRaging River Left+IsImprinted | ImprintCards$ Remembered | Duration$ Permanent | SubAbility$ DBLeftPump
|
||||
SVar:DBDefRightPile:DB$ Animate | Defined$ ValidCommand Effect.namedRaging River Right+IsImprinted | ImprintCards$ Remembered | Duration$ Permanent | SubAbility$ DBRightPump
|
||||
SVar:DBClearImprinted:DB$ Cleanup | ClearImprinted$ True
|
||||
SVar:DBAtkLeftRight:DB$ TwoPiles | Defined$ You | Separator$ You | ValidCards$ Creature.attacking+YouCtrl | Zone$ Battlefield | LeftRightPile$ True | ChosenPile$ DBAtkLeftPile | UnchosenPile$ DBAtkRightPile | AILogic$ Random | SubAbility$ DBCleanup
|
||||
SVar:DBAtkLeftRight:DB$ TwoPiles | Defined$ You | Separator$ You | ValidCards$ Creature.attacking+YouCtrl | Zone$ Battlefield | LeftRightPile$ True | ChosenPile$ DBAtkLeftPile | UnchosenPile$ DBAtkRightPile | AILogic$ Random
|
||||
SVar:DBAtkLeftPile:DB$ Animate | Defined$ ValidCommand Effect.namedRaging River Left | RememberObjects$ RememberedCard | Duration$ Permanent | SubAbility$ DBLeftPump
|
||||
SVar:DBAtkRightPile:DB$ Animate | Defined$ ValidCommand Effect.namedRaging River Right | RememberObjects$ RememberedCard | Duration$ Permanent | SubAbility$ DBRightPump
|
||||
SVar:DBLeftPump:DB$ Pump | Defined$ Remembered | KW$ "Left" pile | Duration$ UntilEndOfCombat
|
||||
SVar:DBRightPump:DB$ Pump | Defined$ Remembered | KW$ "Right" pile | Duration$ UntilEndOfCombat
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:PlayMain1:TRUE
|
||||
Oracle:Whenever one or more creatures you control attack, each defending player divides all creatures without flying they control into a "left" pile and a "right" pile. Then, for each attacking creature you control, choose "left" or "right." That creature can't be blocked this combat except by creatures with flying and creatures in a pile with the chosen label.
|
||||
|
||||
@@ -4,9 +4,8 @@ Types:Creature Sphinx
|
||||
PT:5/6
|
||||
K:Flying
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChangeZone | TriggerDescription$ When CARDNAME enters the battlefield, reveal the top five cards of your library. An opponent separates those cards into two piles. Put one pile into your hand and the other into your graveyard.
|
||||
SVar:TrigChangeZone:DB$ PeekAndReveal | PeekAmount$ 5 | NoPeek$ True | SubAbility$ DBTwoPiles | SpellDescription$ Reveal the top five cards of your library. An opponent separates those cards into two piles. Put one pile into your hand and the other into your graveyard.
|
||||
SVar:TrigChangeZone:DB$ PeekAndReveal | PeekAmount$ 5 | NoPeek$ True | RememberRevealed$ True | SubAbility$ DBTwoPiles | SpellDescription$ Reveal the top five cards of your library. An opponent separates those cards into two piles. Put one pile into your hand and the other into your graveyard.
|
||||
SVar:DBTwoPiles:DB$ TwoPiles | Defined$ You | DefinedCards$ Remembered | Separator$ Opponent | ChosenPile$ DBHand | UnchosenPile$ DBGrave
|
||||
SVar:DBHand:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Hand
|
||||
SVar:DBGrave:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Graveyard | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:DBGrave:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Graveyard
|
||||
Oracle:Flying\nWhen Sphinx of Uthuun enters the battlefield, reveal the top five cards of your library. An opponent separates those cards into two piles. Put one pile into your hand and the other into your graveyard.
|
||||
|
||||
@@ -3,9 +3,8 @@ ManaCost:3 R
|
||||
Types:Enchantment
|
||||
T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | Execute$ RepeatPlayer | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of combat on your turn, for each defending player, separate all creatures that player controls into two piles and that player chooses one. Only creatures in the chosen piles can block this turn.
|
||||
SVar:RepeatPlayer:DB$ RepeatEach | RepeatPlayers$ Opponent | RepeatSubAbility$ DBTwoPiles | SubAbility$ DBOnlyBlock
|
||||
SVar:DBTwoPiles:DB$ TwoPiles | Defined$ Player.IsRemembered | Chooser$ Player.IsRemembered | Zone$ Battlefield | ValidCards$ Creature.RememberedPlayerCtrl | Separator$ You | ChosenPile$ DBRemember | AILogic$ Best
|
||||
SVar:DBRemember:DB$ Pump | ImprintCards$ Remembered
|
||||
SVar:DBOnlyBlock:DB$ PumpAll | KW$ HIDDEN CARDNAME can't block. | ValidCards$ Creature.OppCtrl+IsNotImprinted | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True
|
||||
SVar:DBTwoPiles:DB$ TwoPiles | Chooser$ Remembered | Zone$ Battlefield | ValidCards$ Creature.RememberedPlayerCtrl | Separator$ You | RememberChosen$ True | AILogic$ Best
|
||||
SVar:DBOnlyBlock:DB$ PumpAll | KW$ HIDDEN CARDNAME can't block. | ValidCards$ Creature.OppCtrl+IsNotRemembered | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:PlayMain1:TRUE
|
||||
Oracle:At the beginning of combat on your turn, for each defending player, separate all creatures that player controls into two piles and that player chooses one. Only creatures in the chosen piles can block this turn.
|
||||
|
||||
@@ -3,7 +3,6 @@ ManaCost:2 U R
|
||||
Types:Instant
|
||||
A:SP$ PeekAndReveal | PeekAmount$ 5 | RememberRevealed$ True | NoPeek$ True | SubAbility$ DBTwoPiles | SpellDescription$ Reveal the top five cards of your library and separate them into two piles. An opponent chooses one of those piles. Put that pile into your hand and the other into your graveyard.
|
||||
SVar:DBTwoPiles:DB$ TwoPiles | Chooser$ Opponent | DefinedCards$ Remembered | Separator$ You | ChosenPile$ DBHand | UnchosenPile$ DBGrave | AILogic$ Worst
|
||||
SVar:DBHand:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Hand | SubAbility$ DBCleanup
|
||||
SVar:DBGrave:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Graveyard | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:DBHand:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Hand
|
||||
SVar:DBGrave:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Graveyard
|
||||
Oracle:Reveal the top five cards of your library and separate them into two piles. An opponent chooses one of those piles. Put that pile into your hand and the other into your graveyard.
|
||||
|
||||
@@ -2,7 +2,7 @@ Name:Undying Flames
|
||||
ManaCost:4 R R
|
||||
Types:Sorcery
|
||||
K:Epic
|
||||
A:SP$ DigUntil | Cost$ 4 R R | Defined$ You | Valid$ Card.nonLand | ValidDescription$ nonland | FoundDestination$ Exile | RevealedDestination$ Exile | RememberFound$ True | SubAbility$ UndyingDamage | SpellDescription$ Exile cards from the top of your library until you exile a nonland card. Undying Flames deals damage to any target equal to that card's mana value.
|
||||
A:SP$ DigUntil | Valid$ Card.nonLand | ValidDescription$ nonland | FoundDestination$ Exile | RevealedDestination$ Exile | RememberFound$ True | SubAbility$ UndyingDamage | NoPutDesc$ True | SpellDescription$ Exile cards from the top of your library until you exile a nonland card. Undying Flames deals damage to any target equal to that card's mana value.
|
||||
SVar:UndyingDamage:DB$ DealDamage | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ FlameX | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:FlameX:Remembered$CardManaCost
|
||||
|
||||
@@ -8,7 +8,6 @@ T:Mode$ ChangesZone | ValidCard$ Card.Self,Card.Sphinx+Other+YouCtrl | Origin$ A
|
||||
SVar:TrigChangeZone:DB$ PeekAndReveal | PeekAmount$ 4 | NoPeek$ True | RememberRevealed$ True | SubAbility$ DBTwoPiles | SpellDescription$ Reveal the top five cards of your library. An opponent separates those cards into two piles. Put one pile into your hand and the other into your graveyard.
|
||||
SVar:DBTwoPiles:DB$ TwoPiles | Defined$ You | DefinedCards$ Remembered | Separator$ Opponent | ChosenPile$ DBHand | UnchosenPile$ DBGrave
|
||||
SVar:DBHand:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Hand
|
||||
SVar:DBGrave:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Graveyard | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:DBGrave:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Graveyard
|
||||
SVar:BuffedBy:Sphinx
|
||||
Oracle:Flying\nSphinx spells you cast cost {2} less to cast.\nWhenever Unesh, Criosphinx Sovereign or another Sphinx enters the battlefield under your control, reveal the top four cards of your library. An opponent separates those cards into two piles. Put one pile into your hand and the other into your graveyard.
|
||||
|
||||
@@ -50,7 +50,7 @@ SVar:Mill8M:DB$ Mill | ValidTgts$ Player | TgtPrompt$ Select target player | Num
|
||||
SVar:Dig9M:DB$ PeekAndReveal | PeekAmount$ 5 | NoPeek$ True | RememberRevealed$ True | SubAbility$ DBTwoPiles9M | SpellDescription$ Reveal the top five cards of your library. An opponent separates them into two piles. Put one pile into your hand and the other on the bottom of your library in any order.
|
||||
SVar:DBTwoPiles9M:DB$ TwoPiles | Defined$ You | DefinedCards$ Remembered | Separator$ Opponent | ChosenPile$ DBHand9M | UnchosenPile$ DBLibraryBottom9M
|
||||
SVar:DBHand9M:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Hand
|
||||
SVar:DBLibraryBottom9M:DB$ ChangeZoneAll | ChangeType$ Card.IsRemembered | Origin$ Library | Destination$ Library | LibraryPosition$ -1 | SubAbility$ DBCleanup
|
||||
SVar:DBLibraryBottom9M:DB$ ChangeZoneAll | ChangeType$ Card.IsRemembered | Origin$ Library | Destination$ Library | LibraryPosition$ -1
|
||||
SVar:Exile10M:DB$ ChangeZone | ValidTgts$ Permanent | TgtPrompt$ Select target permanent | Origin$ Battlefield | Destination$ Exile | SpellDescription$ Exile target permanent.
|
||||
SVar:Reveal11M:DB$ PeekAndReveal | PeekAmount$ 5 | NoPeek$ True | RememberRevealed$ True | SubAbility$ DBChangeCreatures11M | SpellDescription$ Reveal the top five cards of your library. You may put all creature cards and/or land cards from among them into your hand. Put the rest into your graveyard.
|
||||
SVar:DBChangeCreatures11M:DB$ ChangeZoneAll | ChangeType$ Card.Creature+IsRemembered | Origin$ Library | Destination$ Hand | Optional$ True | OptionQuestion$ Put all creature cards into your hand? | ForgetChanged$ True | SubAbility$ DBChangeLands11M
|
||||
|
||||
@@ -5,7 +5,7 @@ PT:3/3
|
||||
T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigDig | TriggerDescription$ Whenever NICKNAME attacks, look at the top four cards of your library. You may exile a creature card from among them. Put the rest on the bottom of your library in any order. For as long as that card remains exiled, you may cast it. That spell has undaunted. (It costs {1} less to cast for each opponent.)
|
||||
SVar:TrigDig:DB$ Dig | DigNum$ 4 | ChangeNum$ 1 | Optional$ True | ChangeValid$ Creature | DestinationZone$ Exile | DestinationZone2$ Library | LibraryPosition$ -1 | RememberChanged$ True | SubAbility$ DBEffect
|
||||
SVar:DBEffect:DB$ Effect | RememberObjects$ Remembered | StaticAbilities$ STPlay | Duration$ Permanent | ForgetOnMoved$ Exile | SubAbility$ DBCleanup
|
||||
SVar:STPlay:Mode$ Continuous | MayPlay$ True | MayPlayIgnoreType$ True | EffectZone$ Command | Affected$ Card.IsRemembered+nonLand | AddKeyword$ Undaunted | AffectedZone$ Exile | Description$ For as long as that card remains exiled, you may cast it. That spell has undaunted. (It costs {1} less to cast for each opponent.)
|
||||
SVar:STPlay:Mode$ Continuous | MayPlay$ True | EffectZone$ Command | Affected$ Card.IsRemembered+nonLand | AddKeyword$ Undaunted | AffectedZone$ Exile | Description$ For as long as that card remains exiled, you may cast it. That spell has undaunted. (It costs {1} less to cast for each opponent.)
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:HasAttackEffect:TRUE
|
||||
K:Choose a Background
|
||||
|
||||
12
forge-gui/res/cardsfolder/upcoming/sarevoks_tome.txt
Normal file
12
forge-gui/res/cardsfolder/upcoming/sarevoks_tome.txt
Normal file
@@ -0,0 +1,12 @@
|
||||
Name:Sarevok's Tome
|
||||
ManaCost:4
|
||||
Types:Artifact
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigInitiative | TriggerDescription$ When CARDNAME enters the battlefield, you take the initiative.
|
||||
SVar:TrigInitiative:DB$ TakeInitiative
|
||||
A:AB$ Mana | Cost$ T | Produced$ C | Amount$ X | SpellDescription$ Add {C}. If you have the initiative, add {C}{C} instead.
|
||||
SVar:X:Count$Initiative.2.1
|
||||
A:AB$ DigUntil | Cost$ 3 T | Valid$ Card.nonLand | ValidDescription$ nonland | FoundDestination$ Exile | RevealedDestination$ Exile | RememberFound$ True | SubAbility$ DBPlay | CheckSVar$ Y | NoPutDesc$ True | SpellDescription$ Exile cards from the top of your library until you exile a nonland card. You may cast that card without paying its mana cost. Activate only if you've completed a dungeon.
|
||||
SVar:DBPlay:DB$ Play | Defined$ Remembered | DefinedDesc$ that card | ValidSA$ Spell | WithoutManaCost$ True | Optional$ True | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:Y:PlayerCountPropertyYou$DungeonsCompleted
|
||||
Oracle:When Sarevok's Tome enters the battlefield, you take the initiative.\n{T}: Add {C}. If you have the initiative, add {C}{C} instead.\n{3}, {T}: Exile cards from the top of your library until you exile a nonland card. You may cast that card without paying its mana cost. Activate only if you've completed a dungeon.
|
||||
15
forge-gui/res/cardsfolder/upcoming/skyline_savior.txt
Normal file
15
forge-gui/res/cardsfolder/upcoming/skyline_savior.txt
Normal file
@@ -0,0 +1,15 @@
|
||||
Name:Skyline Savior
|
||||
ManaCost:1 W W
|
||||
Types:Creature Angel
|
||||
PT:3/4
|
||||
K:Flying
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Self | Execute$ TrigChange | TriggerDescription$ When CARDNAME enters the battlefield, return a permanent you control to its owner's hand. If it's a non-Angel creature card, it perpetually gets +1/+1, gains flying, and becomes an Angel in addition to its other types.
|
||||
SVar:TrigChange:DB$ ChangeZone | Origin$ Battlefield | Destination$ Hand | TgtPrompt$ Return a permanent you control to its owner's hand | ValidTgts$ Permanent.YouCtrl | RememberChanged$ True | SubAbility$ DBEffect
|
||||
SVar:DBEffect:DB$ Effect | RememberObjects$ Remembered | StaticAbilities$ PerpetualP1P1Fly,PerpetualAbility | Duration$ Permanent | Triggers$ Update | Name$ Skyline Savior's Perpetual Effect | ConditionCheckSVar$ X | ConditionSVarCompare$ GE1 | SubAbility$ DBCleanup
|
||||
SVar:PerpetualP1P1Fly:Mode$ Continuous | Affected$ Card.IsRemembered | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ Flying | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command
|
||||
SVar:PerpetualAbility:Mode$ Continuous | Affected$ Card.IsRemembered | AddType$ Angel & Creature | EffectZone$ Command | AffectedZon$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:X:Targeted$Valid Creature.nonAngel
|
||||
SVar:Update:Mode$ ChangesZone | Origin$ Any | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered | Execute$ DBUpdate
|
||||
SVar:DBUpdate:DB$ UpdateRemember
|
||||
Oracle:Flying\nWhen Skyline Savior enters the battlefield, return a permanent you control to its owner's hand. If it's a non-Angel creature card, it perpetually gets +1/+1, gains flying, and becomes an Angel in addition to its other types.
|
||||
9
forge-gui/res/cardsfolder/upcoming/split_the_spoils.txt
Normal file
9
forge-gui/res/cardsfolder/upcoming/split_the_spoils.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
Name:Split the Spoils
|
||||
ManaCost:2 G
|
||||
Types:Sorcery
|
||||
A:SP$ ChangeZone | Origin$ Graveyard | Destination$ Exile | ValidTgts$ Permanent.YouOwn | TargetMin$ 0 | TargetMax$ 5 | TgtPrompt$ Select up to five target permanent cards from your graveyard | SubAbility$ DBTwoPiles | SpellDescription$ Exile up to five target permanent cards from your graveyard
|
||||
SVar:DBTwoPiles:DB$ TwoPiles | Chooser$ Opponent | DefinedCards$ Targeted | Separator$ You | ChosenPile$ DBHand | UnchosenPile$ DBGrave | AILogic$ Worst | StackDescription$ {p:You} separates them into two piles. An opponent chooses one of those piles. Put that pile into your hand and the other into your graveyard. | SpellDescription$ and separate them into two piles. An opponent chooses one of those piles. Put that pile into your hand and the other into your graveyard. (Piles can be empty.)
|
||||
SVar:DBHand:DB$ ChangeZone | Defined$ Remembered | Origin$ Exile | Destination$ Hand
|
||||
SVar:DBGrave:DB$ ChangeZone | Defined$ Remembered | Origin$ Exile | Destination$ Graveyard
|
||||
DeckHas:Ability$Graveyard
|
||||
Oracle:Exile up to five target permanent cards from your graveyard and separate them into two piles. An opponent chooses one of those piles. Put that pile into your hand and the other into your graveyard. (Piles can be empty.)
|
||||
11
forge-gui/res/cardsfolder/upcoming/windshaper_planetar.txt
Normal file
11
forge-gui/res/cardsfolder/upcoming/windshaper_planetar.txt
Normal file
@@ -0,0 +1,11 @@
|
||||
Name:Windshaper Planetar
|
||||
ManaCost:4 W
|
||||
Types:Creature Angel
|
||||
PT:4/4
|
||||
K:Flash
|
||||
K:Flying
|
||||
T:Mode$ ChangesZone | Phase$ Declare Attackers | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigEachAttacker | TriggerDescription$ When CARDNAME enters the battlefield during the declare attackers step, for each attacking creature, you may reselect which player or planeswalker that creature is attacking. (It can't attack its controller or its controller's planeswalkers.)
|
||||
SVar:TrigEachAttacker:DB$ RepeatEach | RepeatCards$ Creature.attacking | RepeatSubAbility$ DBChangeAttacker
|
||||
SVar:DBChangeAttacker:DB$ ChangeCombatants | Defined$ Remembered | Optional$ True
|
||||
AI:RemoveDeck:All
|
||||
Oracle:Flash\nFlying\nWhen Windshaper Planetar enters the battlefield during the declare attackers step, for each attacking creature, you may reselect which player or planeswalker that creature is attacking. (It can't attack its controller or its controller's planeswalkers.)
|
||||
@@ -4,6 +4,7 @@ Types:Creature Wall
|
||||
PT:0/6
|
||||
K:Defender
|
||||
T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | Execute$ TrigPutCounter | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may put three +1/+1 counters on target land you control. If you do, that land becomes a 0/0 Elemental creature with haste that's still a land.
|
||||
SVar:TrigPutCounter:DB$ PutCounter | ValidTgts$ Land.YouCtrl | TgtPrompt$ Select target land you control | CounterType$ P1P1 | CounterNum$ 3 | SubAbility$ DBAnimate
|
||||
SVar:DBAnimate:DB$ Animate | Defined$ ParentTarget | Power$ 0 | Toughness$ 0 | Types$ Creature,Elemental | Keywords$ Haste | Duration$ Permanent
|
||||
SVar:TrigPutCounter:DB$ PutCounter | ValidTgts$ Land.YouCtrl | TgtPrompt$ Select target land you control | CounterType$ P1P1 | CounterNum$ 3 | RememberCards$ True | SubAbility$ DBAnimate
|
||||
SVar:DBAnimate:DB$ Animate | Defined$ Remembered | Power$ 0 | Toughness$ 0 | Types$ Creature,Elemental | Keywords$ Haste | Duration$ Permanent | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
Oracle:Defender\nWhen Wall of Resurgence enters the battlefield, you may put three +1/+1 counters on target land you control. If you do, that land becomes a 0/0 Elemental creature with haste that's still a land.
|
||||
|
||||
@@ -1824,6 +1824,7 @@ lblSelectACardPair=Wähle Karte zum Verbinden
|
||||
lblChooseBlockerForAttacker=Wähle Kreatur um {0} zu blocken
|
||||
lblChooseBlockersForPile=Wähle Kreaturen für Stapel {0} (Anzahl kann Null sein)
|
||||
#ChangeCombatantsEffect.java
|
||||
lblChangeCombatantOption=Do you want to reselect what {0} is attacking?
|
||||
lblChooseDefenderToAttackWithCard=Welchen Verteidiger mit {0} angreifen?
|
||||
#ChangeTargetsEffect.java
|
||||
lblDoYouWantChangeAbilityTargets=Möchtest du das Ziel von {0} ändern?
|
||||
|
||||
@@ -1825,6 +1825,7 @@ lblSelectACardPair=Select a card to pair with
|
||||
lblChooseBlockerForAttacker=Choose a creature to block {0}
|
||||
lblChooseBlockersForPile=Choose creatures to put in pile {0} (can be empty)
|
||||
#ChangeCombatantsEffect.java
|
||||
lblChangeCombatantOption=Do you want to reselect what {0} is attacking?
|
||||
lblChooseDefenderToAttackWithCard=Choose which defender to attack with {0}
|
||||
#ChangeTargetsEffect.java
|
||||
lblDoYouWantChangeAbilityTargets=Do you want to change targets of {0}?
|
||||
|
||||
@@ -1823,6 +1823,7 @@ lblSelectACardPair=Selecciona una carta para emparejarla con
|
||||
lblChooseBlockerForAttacker=Elige una criatura para bloquear a {0}
|
||||
lblChooseBlockersForPile=Elige criaturas para poner en la pila {0} (puede estar vacía)
|
||||
#ChangeCombatantsEffect.java
|
||||
lblChangeCombatantOption=Do you want to reselect what {0} is attacking?
|
||||
lblChooseDefenderToAttackWithCard=Elige con qué defensor atacar con {0}
|
||||
#ChangeTargetsEffect.java
|
||||
lblDoYouWantChangeAbilityTargets=¿Quieres cambiar los objetivos de {0}?
|
||||
|
||||
@@ -1822,6 +1822,7 @@ lblSelectACardPair=Seleziona una carta con cui abbinarsi
|
||||
lblChooseBlockerForAttacker=Scegli una creatura per bloccare {0}
|
||||
lblChooseBlockersForPile=Scegli le creature da mettere nella pila {0} (può essere vuota)
|
||||
#ChangeCombatantsEffect.java
|
||||
lblChangeCombatantOption=Do you want to reselect what {0} is attacking?
|
||||
lblChooseDefenderToAttackWithCard=Scegli quale bloccante attaccare con {0}
|
||||
#ChangeTargetsEffect.java
|
||||
lblDoYouWantChangeAbilityTargets=Vuoi cambiare i bersagli di {0}?
|
||||
|
||||
@@ -1822,6 +1822,7 @@ lblSelectACardPair=組にしたいカードを選ぶ
|
||||
lblChooseBlockerForAttacker={0}をブロックするクリーチャーを選ぶ
|
||||
lblChooseBlockersForPile={0}番の束に入れるクリーチャーを選ぶ(空にできる)
|
||||
#ChangeCombatantsEffect.java
|
||||
lblChangeCombatantOption=Do you want to reselect what {0} is attacking?
|
||||
lblChooseDefenderToAttackWithCard={0}が攻撃する対象を選ぶ
|
||||
#ChangeTargetsEffect.java
|
||||
lblDoYouWantChangeAbilityTargets={0}の対象を変更しますか?
|
||||
|
||||
@@ -1884,6 +1884,7 @@ lblSelectACardPair=Escolha a carta para parear com
|
||||
lblChooseBlockerForAttacker=Escolha um criatura para bloquear {0}
|
||||
lblChooseBlockersForPile=Escolha criaturas para colocar na pilha {0} (pode estar vazio)
|
||||
#ChangeCombatantsEffect.java
|
||||
lblChangeCombatantOption=Do you want to reselect what {0} is attacking?
|
||||
lblChooseDefenderToAttackWithCard=Escolha qual defensor atacar com {0}
|
||||
#ChangeTargetsEffect.java
|
||||
lblDoYouWantChangeAbilityTargets=Você quer mudar os alvos de {0}?
|
||||
|
||||
@@ -1826,6 +1826,7 @@ lblSelectACardPair=选择要组成搭档的牌
|
||||
lblChooseBlockerForAttacker=选择一个用于阻挡{0}的生物
|
||||
lblChooseBlockersForPile=选择要放入堆{0}中的生物(可以一个都不放)
|
||||
#ChangeCombatantsEffect.java
|
||||
lblChangeCombatantOption=Do you want to reselect what {0} is attacking?
|
||||
lblChooseDefenderToAttackWith=选择守军进行进攻
|
||||
#ChangeTargetsEffect.java
|
||||
lblDoYouWantChangeAbilityTargets=你是否想要更改{0}的目标
|
||||
|
||||
Reference in New Issue
Block a user