Update some scripts (#4949)

* Simplify bad effects
This commit is contained in:
tool4ever
2024-04-05 15:22:45 +02:00
committed by GitHub
parent a5e3b93ea3
commit 41d2c28891
40 changed files with 88 additions and 158 deletions

View File

@@ -774,8 +774,8 @@ public class PlayerControllerAi extends PlayerController {
} }
break; break;
case "BetterTgtThanRemembered": case "BetterTgtThanRemembered":
if (source.hasRemembered()) { if (source.hasGainControlTarget()) {
Card rem = (Card) source.getFirstRemembered(); Card rem = source.getGainControlTargets().get(0);
// avoid pumping opponent creature // avoid pumping opponent creature
if (!rem.isInPlay() || rem.getController().isOpponentOf(source.getController())) { if (!rem.isInPlay() || rem.getController().isOpponentOf(source.getController())) {
return true; return true;

View File

@@ -259,6 +259,7 @@ public class DestroyAi extends SpellAbilityAi {
} }
} }
} else { } else {
// TODO look for "exiled until leaves" of own stuff
choice = ComputerUtilCard.getMostExpensivePermanentAI(list); choice = ComputerUtilCard.getMostExpensivePermanentAI(list);
} }
//option to hold removal instead only applies for single targeted removal //option to hold removal instead only applies for single targeted removal

View File

@@ -21,7 +21,6 @@ import forge.game.player.Player;
import forge.game.player.PlayerActionConfirmMode; import forge.game.player.PlayerActionConfirmMode;
import forge.game.spellability.SpellAbility; import forge.game.spellability.SpellAbility;
import forge.game.spellability.TargetRestrictions; import forge.game.spellability.TargetRestrictions;
import forge.game.staticability.StaticAbility;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@@ -320,23 +319,6 @@ public class PumpAi extends PumpAiBase {
} }
} }
if ("ContinuousBonus".equals(aiLogic)) {
// P/T bonus in a continuous static ability
for (StaticAbility stAb : source.getStaticAbilities()) {
if ("Continuous".equals(stAb.getParam("Mode"))) {
if (stAb.hasParam("AddPower")) {
attack += AbilityUtils.calculateAmount(source, stAb.getParam("AddPower"), stAb);
}
if (stAb.hasParam("AddToughness")) {
defense += AbilityUtils.calculateAmount(source, stAb.getParam("AddToughness"), stAb);
}
if (stAb.hasParam("AddKeyword")) {
keywords.addAll(Lists.newArrayList(stAb.getParam("AddKeyword").split(" & ")));
}
}
}
}
if ((numDefense.contains("X") && defense == 0) || (numAttack.contains("X") && attack == 0 && !isBerserk)) { if ((numDefense.contains("X") && defense == 0) || (numAttack.contains("X") && attack == 0 && !isBerserk)) {
return false; return false;
} }

View File

@@ -88,7 +88,7 @@ public class GameCopier {
newPlayer.setLifeLostLastTurn(origPlayer.getLifeLostLastTurn()); newPlayer.setLifeLostLastTurn(origPlayer.getLifeLostLastTurn());
newPlayer.setLifeLostThisTurn(origPlayer.getLifeLostThisTurn()); newPlayer.setLifeLostThisTurn(origPlayer.getLifeLostThisTurn());
newPlayer.setLifeGainedThisTurn(origPlayer.getLifeGainedThisTurn()); newPlayer.setLifeGainedThisTurn(origPlayer.getLifeGainedThisTurn());
newPlayer.setCommitedCrimeThisTurn(origPlayer.getCommitedCrimeThisTurn()); newPlayer.setCommitedCrimeThisTurn(origPlayer.getCommittedCrimeThisTurn());
newPlayer.setLifeStartedThisTurnWith(origPlayer.getLifeStartedThisTurnWith()); newPlayer.setLifeStartedThisTurnWith(origPlayer.getLifeStartedThisTurnWith());
newPlayer.setDamageReceivedThisTurn(origPlayer.getDamageReceivedThisTurn()); newPlayer.setDamageReceivedThisTurn(origPlayer.getDamageReceivedThisTurn());
newPlayer.setActivateLoyaltyAbilityThisTurn(origPlayer.getActivateLoyaltyAbilityThisTurn()); newPlayer.setActivateLoyaltyAbilityThisTurn(origPlayer.getActivateLoyaltyAbilityThisTurn());

View File

@@ -2228,7 +2228,7 @@ public class AbilityUtils {
return doXMath(calculateAmount(c, sq[player.hasThreshold() ? 1 : 2], ctb), expr, c, ctb); return doXMath(calculateAmount(c, sq[player.hasThreshold() ? 1 : 2], ctb), expr, c, ctb);
} }
if (sq[0].equals("CommittedCrimeThisTurn")) { if (sq[0].equals("CommittedCrimeThisTurn")) {
return doXMath(calculateAmount(c, sq[player.getCommitedCrimeThisTurn() > 0 ? 1 : 2], ctb), expr, c, ctb); return doXMath(calculateAmount(c, sq[player.getCommittedCrimeThisTurn() > 0 ? 1 : 2], ctb), expr, c, ctb);
} }
if (sq[0].equals("ExtraTurn")) { if (sq[0].equals("ExtraTurn")) {
return doXMath(calculateAmount(c, sq[game.getPhaseHandler().getPlayerTurn().isExtraTurn() ? 1 : 2], ctb), expr, c, ctb); return doXMath(calculateAmount(c, sq[game.getPhaseHandler().getPlayerTurn().isExtraTurn() ? 1 : 2], ctb), expr, c, ctb);

View File

@@ -88,10 +88,6 @@ public class ControlSpellEffect extends SpellAbilityEffect {
} }
} }
if (!tgtC.equals(sa.getHostCard()) && !sa.getHostCard().getGainControlTargets().contains(tgtC)) {
sa.getHostCard().addGainControlTarget(tgtC);
}
if (remember) { if (remember) {
source.addRemembered(tgtC); source.addRemembered(tgtC);
} }

View File

@@ -116,6 +116,8 @@ public class PumpEffect extends SpellAbilityEffect {
@Override @Override
public void run() { public void run() {
host.removeGainControlTargets(gameCard);
gameCard.removePTBoost(timestamp, 0); gameCard.removePTBoost(timestamp, 0);
boolean updateText = gameCard.removeCanBlockAny(timestamp); boolean updateText = gameCard.removeCanBlockAny(timestamp);
updateText |= gameCard.removeCanBlockAdditional(timestamp); updateText |= gameCard.removeCanBlockAdditional(timestamp);
@@ -132,6 +134,9 @@ public class PumpEffect extends SpellAbilityEffect {
game.fireEvent(new GameEventCardStatsChanged(gameCard)); game.fireEvent(new GameEventCardStatsChanged(gameCard));
} }
}; };
if ("UntilUntaps".equals(duration)) {
host.addGainControlTarget(gameCard);
}
addUntilCommand(sa, untilEOT); addUntilCommand(sa, untilEOT);
} }
game.fireEvent(new GameEventCardStatsChanged(gameCard)); game.fireEvent(new GameEventCardStatsChanged(gameCard));
@@ -264,8 +269,13 @@ public class PumpEffect extends SpellAbilityEffect {
sb.append(" each combat"); sb.append(" each combat");
} }
if (!"Permanent".equals(sa.getParam("Duration"))) { String duration = sa.getParam("Duration");
if (!"Permanent".equals(duration)) {
if ("UntilUntaps".equals(duration)) {
sb.append(" for as long as CARDNAME remains tapped.");
} else {
sb.append(" until end of turn."); sb.append(" until end of turn.");
}
} else { } else {
sb.append("."); sb.append(".");
} }

View File

@@ -99,7 +99,7 @@ public class Player extends GameEntity implements Comparable<Player> {
private int lifeGainedThisTurn; private int lifeGainedThisTurn;
private int lifeGainedTimesThisTurn; private int lifeGainedTimesThisTurn;
private int lifeGainedByTeamThisTurn; private int lifeGainedByTeamThisTurn;
private int commitedCrimeThisTurn; private int committedCrimeThisTurn;
private int numManaShards; private int numManaShards;
private int numPowerSurgeLands; private int numPowerSurgeLands;
private int numLibrarySearchedOwn; //The number of times this player has searched his library private int numLibrarySearchedOwn; //The number of times this player has searched his library
@@ -3800,7 +3800,7 @@ public class Player extends GameEntity implements Comparable<Player> {
public void commitCrime() { public void commitCrime() {
//boolean firstTime = this.commitedCrimeThisTurn == 0; //boolean firstTime = this.commitedCrimeThisTurn == 0;
commitedCrimeThisTurn++; committedCrimeThisTurn++;
// Run triggers // Run triggers
final Map<AbilityKey, Object> runParams = AbilityKey.mapFromPlayer(this); final Map<AbilityKey, Object> runParams = AbilityKey.mapFromPlayer(this);
@@ -3808,10 +3808,10 @@ public class Player extends GameEntity implements Comparable<Player> {
} }
public int getCommitedCrimeThisTurn() { public int getCommittedCrimeThisTurn() {
return commitedCrimeThisTurn; return committedCrimeThisTurn;
} }
public void setCommitedCrimeThisTurn(int v) { public void setCommitedCrimeThisTurn(int v) {
commitedCrimeThisTurn = v; committedCrimeThisTurn = v;
} }
} }

View File

@@ -86,7 +86,7 @@ public class PlayerProperty {
return false; return false;
} }
} else if (property.equals("committedCrimeThisTurn")) { } else if (property.equals("committedCrimeThisTurn")) {
if (player.getCommitedCrimeThisTurn() < 1) return false; if (player.getCommittedCrimeThisTurn() < 1) return false;
} else if (property.equals("isMonarch")) { } else if (property.equals("isMonarch")) {
if (!player.isMonarch()) { if (!player.isMonarch()) {
return false; return false;

View File

@@ -831,7 +831,7 @@ public class MagicStack /* extends MyObservable */ implements Iterable<SpellAbil
final Trigger trig = sa.getTrigger(); final Trigger trig = sa.getTrigger();
final Card newHost = game.getCardState(host); final Card newHost = game.getCardState(host);
if (host.isAura() && newHost.isInZone(ZoneType.Graveyard) && trig.getMode() == TriggerType.ChangesZone && if (host.isAura() && newHost.isInZone(ZoneType.Graveyard) && trig.getMode() == TriggerType.ChangesZone &&
"Graveyard".equals(trig.getParam("Destination")) && "Card.EnchantedBy".equals(trig.getParam("ValidCard"))) { "Battlefield".equals(trig.getParam("Origin")) && "Card.EnchantedBy".equals(trig.getParam("ValidCard"))) {
sa.setHostCard(newHost); sa.setHostCard(newHost);
} }
} }

View File

@@ -2,9 +2,6 @@ Name:Ashnod's Battle Gear
ManaCost:2 ManaCost:2
Types:Artifact Types:Artifact
K:You may choose not to untap CARDNAME during your untap step. K:You may choose not to untap CARDNAME during your untap step.
A:AB$ Pump | Cost$ 2 T | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | RememberTargets$ True | AILogic$ ContinuousBonus | SpellDescription$ Target creature you control gets +2/-2 for as long as CARDNAME remains tapped. | StackDescription$ SpellDescription A:AB$ Pump | Cost$ 2 T | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | NumAtt$ 2 | NumDef$ -2 | Duration$ UntilUntaps | AILogic$ ContinuousBonus | SpellDescription$ Target creature you control gets +2/-2 for as long as CARDNAME remains tapped.
S:Mode$ Continuous | Affected$ Creature.IsRemembered | AddPower$ 2 | AddToughness$ -2
T:Mode$ Untaps | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ ClearRemembered | Static$ True
SVar:ClearRemembered:DB$ Cleanup | ClearRemembered$ True
SVar:AIUntapPreference:BetterTgtThanRemembered SVar:AIUntapPreference:BetterTgtThanRemembered
Oracle:You may choose not to untap Ashnod's Battle Gear during your untap step.\n{2}, {T}: Target creature you control gets +2/-2 for as long as Ashnod's Battle Gear remains tapped. Oracle:You may choose not to untap Ashnod's Battle Gear during your untap step.\n{2}, {T}: Target creature you control gets +2/-2 for as long as Ashnod's Battle Gear remains tapped.

View File

@@ -1,10 +1,8 @@
Name:Aven Shrine Name:Aven Shrine
ManaCost:1 W W ManaCost:1 W W
Types:Enchantment Types:Enchantment
T:Mode$ SpellCast | ValidCard$ Card | ValidActivatingPlayer$ Player | TriggerZones$ Battlefield | Execute$ TrigGainLifeRem | TriggerDescription$ Whenever a player casts a spell, that player gains X life, where X is the number of cards in all graveyards with the same name as that spell. T:Mode$ SpellCast | ValidCard$ Card | ValidActivatingPlayer$ Player | TriggerZones$ Battlefield | Execute$ TrigGainLife | TriggerDescription$ Whenever a player casts a spell, that player gains X life, where X is the number of cards in all graveyards with the same name as that spell.
SVar:TrigGainLifeRem:DB$ Pump | Defined$ TriggeredCard | PumpZone$ Stack | RememberObjects$ TriggeredCard | SubAbility$ DBGainLife SVar:TrigGainLife:DB$ GainLife | Defined$ TriggeredActivator | LifeAmount$ X
SVar:DBGainLife:DB$ GainLife | Defined$ TriggeredActivator | LifeAmount$ X | SubAbility$ DBCleanup SVar:X:Count$ValidGraveyard Card.sharesNameWith TriggeredCard
SVar:X:Count$ValidGraveyard Card.sharesNameWith Remembered
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
AI:RemoveDeck:Random AI:RemoveDeck:Random
Oracle:Whenever a player casts a spell, that player gains X life, where X is the number of cards in all graveyards with the same name as that spell. Oracle:Whenever a player casts a spell, that player gains X life, where X is the number of cards in all graveyards with the same name as that spell.

View File

@@ -1,10 +1,8 @@
Name:Cabal Shrine Name:Cabal Shrine
ManaCost:1 B B ManaCost:1 B B
Types:Enchantment Types:Enchantment
T:Mode$ SpellCast | ValidCard$ Card | ValidActivatingPlayer$ Player | TriggerZones$ Battlefield | Execute$ TrigDiscardRem | TriggerDescription$ Whenever a player casts a spell, that player discards X cards, where X is the number of cards in all graveyards with the same name as that spell. T:Mode$ SpellCast | ValidCard$ Card | ValidActivatingPlayer$ Player | TriggerZones$ Battlefield | Execute$ TrigDiscard | TriggerDescription$ Whenever a player casts a spell, that player discards X cards, where X is the number of cards in all graveyards with the same name as that spell.
SVar:TrigDiscardRem:DB$ Pump | Defined$ TriggeredCard | PumpZone$ Stack | RememberObjects$ TriggeredCard | SubAbility$ DBDiscard SVar:TrigDiscard:DB$ Discard | Defined$ TriggeredActivator | NumCards$ X | Mode$ TgtChoose
SVar:DBDiscard:DB$ Discard | Defined$ TriggeredActivator | NumCards$ X | Mode$ TgtChoose | SubAbility$ DBCleanup SVar:X:Count$ValidGraveyard Card.sharesNameWith TriggeredCard
SVar:X:Count$ValidGraveyard Card.sharesNameWith Remembered
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
AI:RemoveDeck:Random AI:RemoveDeck:Random
Oracle:Whenever a player casts a spell, that player discards X cards, where X is the number of cards in all graveyards with the same name as that spell. Oracle:Whenever a player casts a spell, that player discards X cards, where X is the number of cards in all graveyards with the same name as that spell.

View File

@@ -3,8 +3,7 @@ ManaCost:4 R
Types:Legendary Creature Human Soldier Types:Legendary Creature Human Soldier
PT:3/3 PT:3/3
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDmgOpp | TriggerDescription$ When CARDNAME enters the battlefield, target creature an opponent controls deals damage equal to its power to that player. T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDmgOpp | TriggerDescription$ When CARDNAME enters the battlefield, target creature an opponent controls deals damage equal to its power to that player.
SVar:TrigDmgOpp:DB$ Pump | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target target creature an opponent controls | RememberObjects$ Targeted | SubAbility$ DBDmgOpp | StackDescription$ None | IsCurse$ True | SpellDescription$ Target creature an opponent controls deals damage equal to its power to that player. SVar:TrigDmgOpp:DB$ Pump | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target target creature an opponent controls | SubAbility$ DBDmgOpp | StackDescription$ None | IsCurse$ True | SpellDescription$ Target creature an opponent controls deals damage equal to its power to that player.
SVar:DBDmgOpp:DB$ DealDamage | DamageSource$ Remembered | Defined$ RememberedController | NumDmg$ X | SubAbility$ DBCleanup SVar:DBDmgOpp:DB$ DealDamage | DamageSource$ Targeted | Defined$ TargetedController | NumDmg$ X
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:X:Targeted$CardPower
SVar:X:Remembered$CardPower
Oracle:When Dong Zhou, the Tyrant enters the battlefield, target creature an opponent controls deals damage equal to its power to that player. Oracle:When Dong Zhou, the Tyrant enters the battlefield, target creature an opponent controls deals damage equal to its power to that player.

View File

@@ -1,10 +1,8 @@
Name:Dwarven Shrine Name:Dwarven Shrine
ManaCost:1 R R ManaCost:1 R R
Types:Enchantment Types:Enchantment
T:Mode$ SpellCast | ValidCard$ Card | ValidActivatingPlayer$ Player | TriggerZones$ Battlefield | Execute$ TrigDmgRem | TriggerDescription$ Whenever a player casts a spell, CARDNAME deals X damage to that player, where X is twice the number of cards in all graveyards with the same name as that spell. T:Mode$ SpellCast | ValidCard$ Card | ValidActivatingPlayer$ Player | TriggerZones$ Battlefield | Execute$ TrigDmg | TriggerDescription$ Whenever a player casts a spell, CARDNAME deals X damage to that player, where X is twice the number of cards in all graveyards with the same name as that spell.
SVar:TrigDmgRem:DB$ Pump | Defined$ TriggeredCard | PumpZone$ Stack | RememberObjects$ TriggeredCard | SubAbility$ DBDmg SVar:DBDmg:DB$ DealDamage | Defined$ TriggeredActivator | NumDmg$ X
SVar:DBDmg:DB$ DealDamage | Defined$ TriggeredActivator | NumDmg$ X | SubAbility$ DBCleanup SVar:X:Count$ValidGraveyard Card.sharesNameWith TriggeredCard/Twice
SVar:X:Count$ValidGraveyard Card.sharesNameWith Remembered/Twice
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
AI:RemoveDeck:Random AI:RemoveDeck:Random
Oracle:Whenever a player casts a spell, Dwarven Shrine deals X damage to that player, where X is twice the number of cards in all graveyards with the same name as that spell. Oracle:Whenever a player casts a spell, Dwarven Shrine deals X damage to that player, where X is twice the number of cards in all graveyards with the same name as that spell.

View File

@@ -2,9 +2,6 @@ Name:Endoskeleton
ManaCost:2 ManaCost:2
Types:Artifact Types:Artifact
K:You may choose not to untap CARDNAME during your untap step. K:You may choose not to untap CARDNAME during your untap step.
A:AB$ Pump | Cost$ 2 T | ValidTgts$ Creature | RememberTargets$ True | AILogic$ ContinuousBonus | SpellDescription$ Target creature gets +0/+3 for as long as CARDNAME remains tapped. | StackDescription$ SpellDescription A:AB$ Pump | Cost$ 2 T | ValidTgts$ Creature | NumDef$ 3 | Duration$ UntilUntaps | AILogic$ ContinuousBonus | SpellDescription$ Target creature gets +0/+3 for as long as CARDNAME remains tapped.
S:Mode$ Continuous | Affected$ Creature.IsRemembered | AddToughness$ 3
T:Mode$ Untaps | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ ClearRemembered | Static$ True
SVar:ClearRemembered:DB$ Cleanup | ClearRemembered$ True
SVar:AIUntapPreference:BetterTgtThanRemembered SVar:AIUntapPreference:BetterTgtThanRemembered
Oracle:You may choose not to untap Endoskeleton during your untap step.\n{2}, {T}: Target creature gets +0/+3 for as long as Endoskeleton remains tapped. Oracle:You may choose not to untap Endoskeleton during your untap step.\n{2}, {T}: Target creature gets +0/+3 for as long as Endoskeleton remains tapped.

View File

@@ -1,11 +1,10 @@
Name:Ether Well Name:Ether Well
ManaCost:3 U ManaCost:3 U
Types:Instant Types:Instant
A:SP$ Pump | Cost$ 3 U | ValidTgts$ Creature | IsCurse$ True | RememberObjects$ Targeted | SubAbility$ DBDefaultAction | StackDescription$ SpellDescription | SpellDescription$ Put target creature on top of its owner's library. If that creature is red, you may put it on the bottom of its owner's library instead. A:SP$ Pump | Cost$ 3 U | ValidTgts$ Creature | IsCurse$ True | SubAbility$ DBDefaultAction | StackDescription$ SpellDescription | SpellDescription$ Put target creature on top of its owner's library. If that creature is red, you may put it on the bottom of its owner's library instead.
SVar:DBDefaultAction:DB$ ChangeZone | Defined$ Remembered | Origin$ Battlefield | Destination$ Library | LibraryPosition$ 0 | ConditionCheckSVar$ X | ConditionSVarCompare$ EQ0 | SubAbility$ DBChoose SVar:DBDefaultAction:DB$ ChangeZone | Defined$ Targeted | Origin$ Battlefield | Destination$ Library | LibraryPosition$ 0 | ConditionCheckSVar$ X | ConditionSVarCompare$ EQ0 | SubAbility$ DBChoose
SVar:DBChoose:DB$ GenericChoice | Choices$ DBBottomLibChoice,DBTopLibChoice | Defined$ You | ConditionCheckSVar$ X | ConditionSVarCompare$ GE1 | SubAbility$ DBCleanup SVar:DBChoose:DB$ GenericChoice | Choices$ DBBottomLibChoice,DBTopLibChoice | Defined$ You | ConditionCheckSVar$ X | ConditionSVarCompare$ GE1
SVar:DBTopLibChoice:DB$ ChangeZone | Defined$ Remembered | Origin$ Battlefield | Destination$ Library | LibraryPosition$ 0 | SpellDescription$ Put target creature on top of its owner's library. SVar:DBTopLibChoice:DB$ ChangeZone | Defined$ Targeted | Origin$ Battlefield | Destination$ Library | LibraryPosition$ 0 | SpellDescription$ Put target creature on top of its owner's library.
SVar:DBBottomLibChoice:DB$ ChangeZone | Defined$ Remembered | Origin$ Battlefield | Destination$ Library | LibraryPosition$ -1 | SpellDescription$ If that creature is red, you may put it on the bottom of its owner's library instead. SVar:DBBottomLibChoice:DB$ ChangeZone | Defined$ Targeted | Origin$ Battlefield | Destination$ Library | LibraryPosition$ -1 | SpellDescription$ If that creature is red, you may put it on the bottom of its owner's library instead.
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:X:Targeted$Valid Creature.Red
SVar:X:Count$Valid Creature.IsRemembered+Red
Oracle:Put target creature on top of its owner's library. If that creature is red, you may put it on the bottom of its owner's library instead. Oracle:Put target creature on top of its owner's library. If that creature is red, you may put it on the bottom of its owner's library instead.

View File

@@ -3,10 +3,7 @@ ManaCost:2 G
Types:Creature Elf Types:Creature Elf
PT:2/1 PT:2/1
K:You may choose not to untap CARDNAME during your untap step. K:You may choose not to untap CARDNAME during your untap step.
A:AB$ Pump | Cost$ 2 G T | ValidTgts$ Creature.Elf | TgtPrompt$ Select target Elf creature | RememberTargets$ True | AILogic$ ContinuousBonus | SpellDescription$ Target Elf creature gets +2/+2 and has trample for as long as CARDNAME remains tapped. | StackDescription$ SpellDescription A:AB$ Pump | Cost$ 2 G T | ValidTgts$ Creature.Elf | TgtPrompt$ Select target Elf creature | NumAtt$ 2 | NumDef$ 2 | KW$ Trample | Duration$ UntilUntaps | AILogic$ ContinuousBonus | SpellDescription$ Target Elf creature gets +2/+2 and has trample for as long as CARDNAME remains tapped.
S:Mode$ Continuous | Affected$ Creature.IsRemembered | AddPower$ 2 | AddToughness$ 2 | AddKeyword$ Trample
T:Mode$ Untaps | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ ClearRemembered | Static$ True
SVar:ClearRemembered:DB$ Cleanup | ClearRemembered$ True
DeckNeeds:Type$Elf DeckNeeds:Type$Elf
SVar:AIUntapPreference:BetterTgtThanRemembered SVar:AIUntapPreference:BetterTgtThanRemembered
Oracle:You may choose not to untap Everglove Courier during your untap step.\n{2}{G}, {T}: Target Elf creature gets +2/+2 and has trample for as long as Everglove Courier remains tapped. Oracle:You may choose not to untap Everglove Courier during your untap step.\n{2}{G}, {T}: Target Elf creature gets +2/+2 and has trample for as long as Everglove Courier remains tapped.

View File

@@ -2,11 +2,10 @@ Name:Expel from Orazca
ManaCost:1 U ManaCost:1 U
Types:Instant Types:Instant
K:Ascend K:Ascend
A:SP$ Pump | Cost$ 1 U | ValidTgts$ Permanent.nonLand | TgtPrompt$ Select target nonland permanent | RememberObjects$ Targeted | IsCurse$ True | SubAbility$ DBDefaultAction | StackDescription$ SpellDescription | SpellDescription$ Return target nonland permanent to its owner's hand. If you have the city's blessing, you may put that permanent on top of its owner's library instead. A:SP$ Pump | Cost$ 1 U | ValidTgts$ Permanent.nonLand | TgtPrompt$ Select target nonland permanent | IsCurse$ True | SubAbility$ DBDefaultAction | StackDescription$ SpellDescription | SpellDescription$ Return target nonland permanent to its owner's hand. If you have the city's blessing, you may put that permanent on top of its owner's library instead.
SVar:DBDefaultAction:DB$ ChangeZone | Defined$ Remembered | Origin$ Battlefield | Destination$ Hand | ConditionCheckSVar$ X | ConditionSVarCompare$ EQ0 | SubAbility$ DBChoose SVar:DBDefaultAction:DB$ ChangeZone | Defined$ Targeted | Origin$ Battlefield | Destination$ Hand | ConditionCheckSVar$ X | ConditionSVarCompare$ EQ0 | SubAbility$ DBChoose
SVar:DBChoose:DB$ GenericChoice | Choices$ DBHandChoice,DBTopLibChoice | Defined$ You | ConditionCheckSVar$ X | SubAbility$ DBCleanup | ConditionSVarCompare$ GE1 SVar:DBChoose:DB$ GenericChoice | Choices$ DBHandChoice,DBTopLibChoice | Defined$ You | ConditionCheckSVar$ X | ConditionSVarCompare$ GE1
SVar:DBHandChoice:DB$ ChangeZone | Defined$ Remembered | Origin$ Battlefield | Destination$ Hand | SpellDescription$ Hand SVar:DBHandChoice:DB$ ChangeZone | Defined$ Targeted | Origin$ Battlefield | Destination$ Hand | SpellDescription$ Hand
SVar:DBTopLibChoice:DB$ ChangeZone | Defined$ Remembered | Origin$ Battlefield | Destination$ Library | LibraryPosition$ 0 | SpellDescription$ Top of the library SVar:DBTopLibChoice:DB$ ChangeZone | Defined$ Targeted | Origin$ Battlefield | Destination$ Library | LibraryPosition$ 0 | SpellDescription$ Top of the library
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:X:Count$Blessing.1.0 SVar:X:Count$Blessing.1.0
Oracle:Ascend (If you control ten or more permanents, you get the city's blessing for the rest of the game.)\nReturn target nonland permanent to its owner's hand. If you have the city's blessing, you may put that permanent on top of its owner's library instead. Oracle:Ascend (If you control ten or more permanents, you get the city's blessing for the rest of the game.)\nReturn target nonland permanent to its owner's hand. If you have the city's blessing, you may put that permanent on top of its owner's library instead.

View File

@@ -3,10 +3,7 @@ ManaCost:2 R
Types:Creature Goblin Types:Creature Goblin
PT:2/1 PT:2/1
K:You may choose not to untap CARDNAME during your untap step. K:You may choose not to untap CARDNAME during your untap step.
A:AB$ Pump | Cost$ 2 R T | ValidTgts$ Creature.Goblin | TgtPrompt$ Select target Goblin creature | RememberTargets$ True | AILogic$ ContinuousBonus | SpellDescription$ Target Goblin creature gets +2/+2 and has haste for as long as CARDNAME remains tapped. | StackDescription$ SpellDescription A:AB$ Pump | Cost$ 2 R T | ValidTgts$ Creature.Goblin | TgtPrompt$ Select target Goblin creature | NumAtt$ 2 | NumDef$ 2 | KW$ Haste | Duration$ UntilUntaps | AILogic$ ContinuousBonus | SpellDescription$ Target Goblin creature gets +2/+2 and has haste for as long as CARDNAME remains tapped.
S:Mode$ Continuous | Affected$ Creature.IsRemembered | AddPower$ 2 | AddToughness$ 2 | AddKeyword$ Haste
T:Mode$ Untaps | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ ClearRemembered | Static$ True
SVar:ClearRemembered:DB$ Cleanup | ClearRemembered$ True
DeckNeeds:Type$Goblin DeckNeeds:Type$Goblin
SVar:AIUntapPreference:BetterTgtThanRemembered SVar:AIUntapPreference:BetterTgtThanRemembered
Oracle:You may choose not to untap Flamestick Courier during your untap step.\n{2}{R}, {T}: Target Goblin creature gets +2/+2 and has haste for as long as Flamestick Courier remains tapped. Oracle:You may choose not to untap Flamestick Courier during your untap step.\n{2}{R}, {T}: Target Goblin creature gets +2/+2 and has haste for as long as Flamestick Courier remains tapped.

View File

@@ -2,9 +2,6 @@ Name:Flowstone Armor
ManaCost:3 ManaCost:3
Types:Artifact Types:Artifact
K:You may choose not to untap CARDNAME during your untap step. K:You may choose not to untap CARDNAME during your untap step.
A:AB$ Pump | Cost$ 3 T | ValidTgts$ Creature | TgtPrompt$ Select target creature | RememberTargets$ True | AILogic$ ContinuousBonus | SpellDescription$ Target creature gets +1/-1 for as long as CARDNAME remains tapped. | StackDescription$ SpellDescription A:AB$ Pump | Cost$ 3 T | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ 1 | NumDef$ -1| Duration$ UntilUntaps | AILogic$ ContinuousBonus | SpellDescription$ Target creature gets +1/-1 for as long as CARDNAME remains tapped.
S:Mode$ Continuous | Affected$ Creature.IsRemembered | AddPower$ 1 | AddToughness$ -1
T:Mode$ Untaps | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ ClearRemembered | Static$ True
SVar:ClearRemembered:DB$ Cleanup | ClearRemembered$ True
SVar:AIUntapPreference:BetterTgtThanRemembered SVar:AIUntapPreference:BetterTgtThanRemembered
Oracle:You may choose not to untap Flowstone Armor during your untap step.\n{3}, {T}: Target creature gets +1/-1 for as long as Flowstone Armor remains tapped. Oracle:You may choose not to untap Flowstone Armor during your untap step.\n{3}, {T}: Target creature gets +1/-1 for as long as Flowstone Armor remains tapped.

View File

@@ -3,10 +3,7 @@ ManaCost:2 B
Types:Creature Zombie Types:Creature Zombie
PT:2/1 PT:2/1
K:You may choose not to untap CARDNAME during your untap step. K:You may choose not to untap CARDNAME during your untap step.
A:AB$ Pump | Cost$ 2 B T | ValidTgts$ Creature.Zombie | TgtPrompt$ Select target Zombie creature | RememberTargets$ True | AILogic$ ContinuousBonus | SpellDescription$ Target Zombie creature gets +2/+2 and has fear for as long as CARDNAME remains tapped. (It can't be blocked except by artifact creatures and/or black creatures.) | StackDescription$ SpellDescription A:AB$ Pump | Cost$ 2 B T | ValidTgts$ Creature.Zombie | TgtPrompt$ Select target Zombie creature | NumAtt$ 2 | NumDef$ 2 | KW$ Fear | Duration$ UntilUntaps | AILogic$ ContinuousBonus | SpellDescription$ Target Zombie creature gets +2/+2 and has fear for as long as CARDNAME remains tapped. (It can't be blocked except by artifact creatures and/or black creatures.)
S:Mode$ Continuous | Affected$ Creature.IsRemembered | AddPower$ 2 | AddToughness$ 2 | AddKeyword$ Fear
T:Mode$ Untaps | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ ClearRemembered | Static$ True
SVar:ClearRemembered:DB$ Cleanup | ClearRemembered$ True
DeckNeeds:Type$Zombie DeckNeeds:Type$Zombie
SVar:AIUntapPreference:BetterTgtThanRemembered SVar:AIUntapPreference:BetterTgtThanRemembered
Oracle:You may choose not to untap Frightshroud Courier during your untap step.\n{2}{B}, {T}: Target Zombie creature gets +2/+2 and has fear for as long as Frightshroud Courier remains tapped. (It can't be blocked except by artifact creatures and/or black creatures.) Oracle:You may choose not to untap Frightshroud Courier during your untap step.\n{2}{B}, {T}: Target Zombie creature gets +2/+2 and has fear for as long as Frightshroud Courier remains tapped. (It can't be blocked except by artifact creatures and/or black creatures.)

View File

@@ -3,10 +3,7 @@ ManaCost:2 U
Types:Creature Human Wizard Types:Creature Human Wizard
PT:2/1 PT:2/1
K:You may choose not to untap CARDNAME during your untap step. K:You may choose not to untap CARDNAME during your untap step.
A:AB$ Pump | Cost$ 2 U T | ValidTgts$ Creature.Wizard | TgtPrompt$ Select target Wizard creature | RememberTargets$ True | AILogic$ ContinuousBonus | SpellDescription$ Target Wizard creature gets +2/+2 and has shroud for as long as CARDNAME remains tapped. (It can't be the target of spells or abilities.) | StackDescription$ SpellDescription A:AB$ Pump | Cost$ 2 U T | ValidTgts$ Creature.Wizard | TgtPrompt$ Select target Wizard creature | NumAtt$ 2 | NumDef$ 2 | KW$ Shroud | Duration$ UntilUntaps | AILogic$ ContinuousBonus | SpellDescription$ Target Wizard creature gets +2/+2 and has shroud for as long as CARDNAME remains tapped. (It can't be the target of spells or abilities.)
S:Mode$ Continuous | Affected$ Creature.IsRemembered | AddPower$ 2 | AddToughness$ 2 | AddKeyword$ Shroud
T:Mode$ Untaps | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ ClearRemembered | Static$ True
SVar:ClearRemembered:DB$ Cleanup | ClearRemembered$ True
DeckNeeds:Type$Wizard DeckNeeds:Type$Wizard
SVar:AIUntapPreference:BetterTgtThanRemembered SVar:AIUntapPreference:BetterTgtThanRemembered
Oracle:You may choose not to untap Ghosthelm Courier during your untap step.\n{2}{U}, {T}: Target Wizard creature gets +2/+2 and has shroud for as long as Ghosthelm Courier remains tapped. (It can't be the target of spells or abilities.) Oracle:You may choose not to untap Ghosthelm Courier during your untap step.\n{2}{U}, {T}: Target Wizard creature gets +2/+2 and has shroud for as long as Ghosthelm Courier remains tapped. (It can't be the target of spells or abilities.)

View File

@@ -2,9 +2,8 @@ Name:Invoke Justice
ManaCost:1 W W W W ManaCost:1 W W W W
Types:Sorcery Types:Sorcery
A:SP$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | TgtPrompt$ Choose target permanent card in your graveyard | ValidTgts$ Permanent.YouCtrl | SubAbility$ DBPlayerTarget | SpellDescription$ Return target permanent card from your graveyard to the battlefield, then distribute four +1/+1 counters among any number of creatures and/or Vehicles target player controls. | StackDescription$ Return {c:Targeted} from your graveyard to the battlefield, A:SP$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | TgtPrompt$ Choose target permanent card in your graveyard | ValidTgts$ Permanent.YouCtrl | SubAbility$ DBPlayerTarget | SpellDescription$ Return target permanent card from your graveyard to the battlefield, then distribute four +1/+1 counters among any number of creatures and/or Vehicles target player controls. | StackDescription$ Return {c:Targeted} from your graveyard to the battlefield,
SVar:DBPlayerTarget:DB$ Pump | ValidTgts$ Player | TgtPrompt$ Select target player | RememberObjects$ ThisTargetedPlayer | SubAbility$ DBPutCounter | StackDescription$ then distribute four +1/+1 counters among any number of creatures and/or Vehicles {p:Targeted} controls. SVar:DBPlayerTarget:DB$ Pump | ValidTgts$ Player | TgtPrompt$ Select target player | SubAbility$ DBPutCounter | StackDescription$ then distribute four +1/+1 counters among any number of creatures and/or Vehicles {p:Targeted} controls.
SVar:DBPutCounter:DB$ PutCounter | Choices$ Creature.RememberedPlayerCtrl,Vehicle.RememberedPlayerCtrl | ChoiceTitle$ Choose any number of creatures and/or Vehicles target player controls to distribute counters to | ChoiceAmount$ 4 | MinChoiceAmount$ 1 | CounterType$ P1P1 | CounterNum$ 4 | DividedAsYouChoose$ 4 | StackDescription$ None | SubAbility$ DBCleanup SVar:DBPutCounter:DB$ PutCounter | Choices$ Creature.TargetedPlayerCtrl,Vehicle.TargetedPlayerCtrl | ChoiceTitle$ Choose any number of creatures and/or Vehicles target player controls to distribute counters to | ChoiceAmount$ 4 | MinChoiceAmount$ 1 | CounterType$ P1P1 | CounterNum$ 4 | DividedAsYouChoose$ 4 | StackDescription$ None
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
DeckHas:Ability$Graveyard|Counters DeckHas:Ability$Graveyard|Counters
DeckHints:Type$Creature|Vehicle DeckHints:Type$Creature|Vehicle
Oracle:Return target permanent card from your graveyard to the battlefield, then distribute four +1/+1 counters among any number of creatures and/or Vehicles target player controls. Oracle:Return target permanent card from your graveyard to the battlefield, then distribute four +1/+1 counters among any number of creatures and/or Vehicles target player controls.

View File

@@ -1,10 +1,8 @@
Name:Nantuko Shrine Name:Nantuko Shrine
ManaCost:1 G G ManaCost:1 G G
Types:Enchantment Types:Enchantment
T:Mode$ SpellCast | ValidCard$ Card | ValidActivatingPlayer$ Player | TriggerZones$ Battlefield | Execute$ TrigTokenRem | TriggerDescription$ Whenever a player casts a spell, that player creates X 1/1 green Squirrel creature tokens, where X is the number of cards in all graveyards with the same name as that spell. T:Mode$ SpellCast | ValidCard$ Card | ValidActivatingPlayer$ Player | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ Whenever a player casts a spell, that player creates X 1/1 green Squirrel creature tokens, where X is the number of cards in all graveyards with the same name as that spell.
SVar:TrigTokenRem:DB$ Pump | Defined$ TriggeredCard | PumpZone$ Stack | RememberObjects$ TriggeredCard | SubAbility$ DBToken SVar:TrigToken:DB$ Token | TokenAmount$ X | TokenScript$ g_1_1_squirrel | TokenOwner$ TriggeredActivator
SVar:DBToken:DB$ Token | TokenAmount$ X | TokenScript$ g_1_1_squirrel | TokenOwner$ TriggeredActivator | SubAbility$ DBCleanup SVar:X:Count$ValidGraveyard Card.sharesNameWith TriggeredCard
SVar:X:Count$ValidGraveyard Card.sharesNameWith Remembered
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
AI:RemoveDeck:Random AI:RemoveDeck:Random
Oracle:Whenever a player casts a spell, that player creates X 1/1 green Squirrel creature tokens, where X is the number of cards in all graveyards with the same name as that spell. Oracle:Whenever a player casts a spell, that player creates X 1/1 green Squirrel creature tokens, where X is the number of cards in all graveyards with the same name as that spell.

View File

@@ -3,9 +3,7 @@ ManaCost:6
Types:Creature Eldrazi Types:Creature Eldrazi
PT:5/8 PT:5/8
T:Mode$ SpellCast | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When you cast this spell, target opponent exiles the top four cards of their library, then you may put any number of land cards that player owns from exile onto the battlefield under your control. T:Mode$ SpellCast | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When you cast this spell, target opponent exiles the top four cards of their library, then you may put any number of land cards that player owns from exile onto the battlefield under your control.
SVar:TrigExile:DB$ Dig | DigNum$ 4 | ChangeNum$ All | DestinationZone$ Exile | ValidTgts$ Opponent | SubAbility$ DBPump | TgtPrompt$ Choose target opponent SVar:TrigExile:DB$ Dig | DigNum$ 4 | ChangeNum$ All | DestinationZone$ Exile | ValidTgts$ Opponent | SubAbility$ DBSower | TgtPrompt$ Choose target opponent
SVar:DBPump:DB$ Pump | RememberObjects$ Targeted | SubAbility$ DBSower SVar:DBSower:DB$ ChangeZone | Origin$ Exile | Destination$ Battlefield | Hidden$ True | ChangeType$ Land.TargetedPlayerOwn | GainControl$ True | ChangeNum$ X
SVar:DBSower:DB$ ChangeZone | Origin$ Exile | Destination$ Battlefield | Hidden$ True | ChangeType$ Land.RememberedPlayerOwn | GainControl$ True | ChangeNum$ X | SubAbility$ DBCleanup SVar:X:Count$ValidExile Land.TargetedPlayerOwn
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:X:Count$ValidExile Land.RememberedPlayerOwn
Oracle:When you cast this spell, target opponent exiles the top four cards of their library, then you may put any number of land cards that player owns from exile onto the battlefield under your control. Oracle:When you cast this spell, target opponent exiles the top four cards of their library, then you may put any number of land cards that player owns from exile onto the battlefield under your control.

View File

@@ -2,8 +2,6 @@ Name:Pattern Matcher
ManaCost:4 ManaCost:4
Types:Artifact Creature Golem Types:Artifact Creature Golem
PT:3/3 PT:3/3
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigRem | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for a card with the same name as another creature you control, reveal it, put it into your hand, then shuffle. T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChange | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for a card with the same name as another creature you control, reveal it, put it into your hand, then shuffle.
SVar:TrigRem:DB$ Pump | RememberObjects$ Valid Creature.YouCtrl+Other | SubAbility$ TrigChange SVar:TrigChange:DB$ ChangeZone | Origin$ Library | Destination$ Hand | ChangeType$ Card.sharesNameWith Valid Creature.YouCtrl+Other | ChangeNum$ 1 | ShuffleNonMandatory$ True
SVar:TrigChange:DB$ ChangeZone | Origin$ Library | Destination$ Hand | ChangeType$ Card.sharesNameWith Remembered | ChangeNum$ 1 | ShuffleNonMandatory$ True | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
Oracle:When Pattern Matcher enters the battlefield, you may search your library for a card with the same name as another creature you control, reveal it, put it into your hand, then shuffle. Oracle:When Pattern Matcher enters the battlefield, you may search your library for a card with the same name as another creature you control, reveal it, put it into your hand, then shuffle.

View File

@@ -3,10 +3,7 @@ ManaCost:2 W
Types:Creature Human Soldier Types:Creature Human Soldier
PT:2/1 PT:2/1
K:You may choose not to untap CARDNAME during your untap step. K:You may choose not to untap CARDNAME during your untap step.
A:AB$ Pump | Cost$ 2 W T | ValidTgts$ Creature.Soldier | TgtPrompt$ Select target Soldier creature | RememberTargets$ True | AILogic$ ContinuousBonus | SpellDescription$ Target Soldier creature gets +2/+2 and has vigilance for as long as CARDNAME remains tapped. | StackDescription$ SpellDescription A:AB$ Pump | Cost$ 2 W T | ValidTgts$ Creature.Soldier | TgtPrompt$ Select target Soldier creature | NumAtt$ 2 | NumDef$ 2 | KW$ Vigilance | Duration$ UntilUntaps | AILogic$ ContinuousBonus | SpellDescription$ Target Soldier creature gets +2/+2 and has vigilance for as long as CARDNAME remains tapped.
S:Mode$ Continuous | Affected$ Creature.IsRemembered | AddPower$ 2 | AddToughness$ 2 | AddKeyword$ Vigilance
T:Mode$ Untaps | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ ClearRemembered | Static$ True
SVar:ClearRemembered:DB$ Cleanup | ClearRemembered$ True
DeckNeeds:Type$Soldier DeckNeeds:Type$Soldier
SVar:AIUntapPreference:BetterTgtThanRemembered SVar:AIUntapPreference:BetterTgtThanRemembered
Oracle:You may choose not to untap Pearlspear Courier during your untap step.\n{2}{W}, {T}: Target Soldier creature gets +2/+2 and has vigilance for as long as Pearlspear Courier remains tapped. Oracle:You may choose not to untap Pearlspear Courier during your untap step.\n{2}{W}, {T}: Target Soldier creature gets +2/+2 and has vigilance for as long as Pearlspear Courier remains tapped.

View File

@@ -20,5 +20,5 @@ S:Mode$ Continuous | Affected$ Creature.tapped+YouCtrl+Other | AddPower$ 1 | Des
S:Mode$ Continuous | Affected$ Creature.untapped+YouCtrl+Other | AddToughness$ 1 | Description$ Other untapped creatures you control get +0/+1. S:Mode$ Continuous | Affected$ Creature.untapped+YouCtrl+Other | AddToughness$ 1 | Description$ Other untapped creatures you control get +0/+1.
T:Mode$ AttackersDeclared | Execute$ DBUnTapAll | TriggerZones$ Battlefield | AttackingPlayer$ You | TriggerDescription$ Whenever you attack, untap each creature you control, then tap any number of creatures you control. T:Mode$ AttackersDeclared | Execute$ DBUnTapAll | TriggerZones$ Battlefield | AttackingPlayer$ You | TriggerDescription$ Whenever you attack, untap each creature you control, then tap any number of creatures you control.
SVar:DBUnTapAll:DB$ UntapAll | ValidCards$ Creature.YouCtrl | SubAbility$ DBTap SVar:DBUnTapAll:DB$ UntapAll | ValidCards$ Creature.YouCtrl | SubAbility$ DBTap
SVar:DBTap:DB$ Tap | Defined$ CardChoices$ Creature.YouCtrl+untapped | AnyNumber$ True | ChoiceAmount$ Count$Valid Creature.YouCtrl+untapped SVar:DBTap:DB$ Tap | CardChoices$ Creature.YouCtrl+untapped | AnyNumber$ True | ChoiceAmount$ Count$Valid Creature.YouCtrl+untapped
Oracle:Other tapped creatures you control get +1/+0.\nOther untapped creatures you control get +0/+1.\nWhenever you attack, untap each creature you control, then tap any number of creatures you control. Oracle:Other tapped creatures you control get +1/+0.\nOther untapped creatures you control get +0/+1.\nWhenever you attack, untap each creature you control, then tap any number of creatures you control.

View File

@@ -1,7 +1,7 @@
Name:Sewers of Estark Name:Sewers of Estark
ManaCost:2 B B ManaCost:2 B B
Types:Instant Types:Instant
A:SP$ Pump | ValidTgts$ Creature | RememberObjects$ Targeted | StackDescription$ SpellDescription | SubAbility$ DBUnblockable | SpellDescription$ Choose target creature. If it's attacking, it can't be blocked this turn. If it's blocking, prevent all combat damage that would be dealt this combat by it and each creature it's blocking. A:SP$ Pump | ValidTgts$ Creature | StackDescription$ SpellDescription | SubAbility$ DBUnblockable | SpellDescription$ Choose target creature. If it's attacking, it can't be blocked this turn. If it's blocking, prevent all combat damage that would be dealt this combat by it and each creature it's blocking.
SVar:DBUnblockable:DB$ Effect | ConditionDefined$ Targeted | ConditionPresent$ Creature.attacking | RememberObjects$ Targeted | ExileOnMoved$ Battlefield | StaticAbilities$ Unblockable | SubAbility$ DBPumpAll SVar:DBUnblockable:DB$ Effect | ConditionDefined$ Targeted | ConditionPresent$ Creature.attacking | RememberObjects$ Targeted | ExileOnMoved$ Battlefield | StaticAbilities$ Unblockable | SubAbility$ DBPumpAll
SVar:Unblockable:Mode$ CantBlockBy | ValidAttacker$ Card.IsRemembered | Description$ This creature can't be blocked this turn. SVar:Unblockable:Mode$ CantBlockBy | ValidAttacker$ Card.IsRemembered | Description$ This creature can't be blocked this turn.
SVar:DBPumpAll:DB$ PumpAll | ValidCards$ TargetedCard.Self,Creature.blockedByValidThisTurn Targeted | StackDescription$ None | Duration$ UntilEndOfCombat | KW$ Prevent all combat damage that would be dealt to and dealt by CARDNAME. | ConditionDefined$ Targeted | ConditionPresent$ Creature.blocking SVar:DBPumpAll:DB$ PumpAll | ValidCards$ TargetedCard.Self,Creature.blockedByValidThisTurn Targeted | StackDescription$ None | Duration$ UntilEndOfCombat | KW$ Prevent all combat damage that would be dealt to and dealt by CARDNAME. | ConditionDefined$ Targeted | ConditionPresent$ Creature.blocking

View File

@@ -1,13 +1,9 @@
Name:Siren's Ruse Name:Siren's Ruse
ManaCost:1 U ManaCost:1 U
Types:Instant Types:Instant
A:SP$ Pump | Cost$ 1 U | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | RememberObjects$ Targeted | SubAbility$ DBRememberPirate | SpellDescription$ Exile target creature you control, then return that card to the battlefield under its owner's control. If a Pirate was exiled this way, draw a card. | StackDescription$ SpellDescription A:SP$ ChangeZone | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | Origin$ Battlefield | Destination$ Exile | RememberLKI$ True | Imprint$ True | SubAbility$ DBReturn | SpellDescription$ Exile target creature you control, then return that card to the battlefield under its owner's control. If a Pirate was exiled this way, draw a card. | StackDescription$ SpellDescription
SVar:DBRememberPirate:DB$ StoreSVar | SVar$ WasPirate | Type$ Number | Expression$ 1 | ConditionDefined$ Remembered | ConditionPresent$ Card.Pirate | ConditionCompare$ EQ1 | SubAbility$ DBChangeZone SVar:DBReturn:DB$ ChangeZone | Defined$ Imprinted | Origin$ All | Destination$ Battlefield | SubAbility$ DBPirateDraw | StackDescription$ None
SVar:DBChangeZone:DB$ ChangeZone | Defined$ ParentTarget | Origin$ Battlefield | Destination$ Exile | ForgetOtherRemembered$ True | RememberChanged$ True | SubAbility$ DBReturn SVar:DBPirateDraw:DB$ Draw | NumCards$ 1 | ConditionDefined Remembered | ConditionPresent$ Pirate | SubAbility$ DBCleanup | StackDescription$ None
SVar:DBReturn:DB$ ChangeZone | Defined$ Remembered | Origin$ All | Destination$ Battlefield | SubAbility$ DBPirateDraw SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True
SVar:DBPirateDraw:DB$ Draw | NumCards$ 1 | ConditionCheckSVar$ WasPirate | ConditionSVarCompare$ EQ1 | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | SubAbility$ DBReinitialize
SVar:DBReinitialize:DB$ StoreSVar | SVar$ WasPirate | Type$ Number | Expression$ 0
SVar:WasPirate:Number$0
AI:RemoveDeck:All AI:RemoveDeck:All
Oracle:Exile target creature you control, then return that card to the battlefield under its owner's control. If a Pirate was exiled this way, draw a card. Oracle:Exile target creature you control, then return that card to the battlefield under its owner's control. If a Pirate was exiled this way, draw a card.

View File

@@ -2,9 +2,6 @@ Name:Spirit Shield
ManaCost:3 ManaCost:3
Types:Artifact Types:Artifact
K:You may choose not to untap CARDNAME during your untap step. K:You may choose not to untap CARDNAME during your untap step.
A:AB$ Pump | Cost$ 2 T | ValidTgts$ Creature | TgtPrompt$ Select target creature | RememberTargets$ True | AILogic$ ContinuousBonus | SpellDescription$ Target creature gets +0/+2 for as long as CARDNAME remains tapped. | StackDescription$ SpellDescription A:AB$ Pump | Cost$ 2 T | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDef$ 2 | Duration$ UntilUntaps | AILogic$ ContinuousBonus | SpellDescription$ Target creature gets +0/+2 for as long as CARDNAME remains tapped.
S:Mode$ Continuous | Affected$ Creature.IsRemembered | AddToughness$ 2
T:Mode$ Untaps | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ ClearRemembered | Static$ True
SVar:ClearRemembered:DB$ Cleanup | ClearRemembered$ True
SVar:AIUntapPreference:BetterTgtThanRemembered SVar:AIUntapPreference:BetterTgtThanRemembered
Oracle:You may choose not to untap Spirit Shield during your untap step.\n{2}, {T}: Target creature gets +0/+2 for as long as Spirit Shield remains tapped. Oracle:You may choose not to untap Spirit Shield during your untap step.\n{2}, {T}: Target creature gets +0/+2 for as long as Spirit Shield remains tapped.

View File

@@ -1,7 +1,7 @@
Name:Stench of Evil Name:Stench of Evil
ManaCost:2 B B ManaCost:2 B B
Types:Sorcery Types:Sorcery
A:SP$ DestroyAll | Cost$ 2 B B | ValidCards$ Plains | RememberDestroyed$ True | SubAbility$ DBPay | SpellDescription$ Destroy all Plains. For each land destroyed this way, Stench of Evil deals 1 damage to that land's controller unless they pay {2}. A:SP$ DestroyAll | Cost$ 2 B B | ValidCards$ Plains | RememberDestroyed$ True | SubAbility$ DBPay | SpellDescription$ Destroy all Plains. For each land destroyed this way, CARDNAME deals 1 damage to that land's controller unless they pay {2}.
SVar:DBPay:DB$ RepeatEach | DefinedCards$ DirectRemembered | UseImprinted$ True | RepeatSubAbility$ DBDmg | SubAbility$ DBCleanup | DamageMap$ True SVar:DBPay:DB$ RepeatEach | DefinedCards$ DirectRemembered | UseImprinted$ True | RepeatSubAbility$ DBDmg | SubAbility$ DBCleanup | DamageMap$ True
SVar:DBDmg:DB$ DealDamage | NumDmg$ 1 | Defined$ ImprintedController | UnlessCost$ 2 | UnlessPayer$ ImprintedController | ShowCurrentCard$ Imprinted SVar:DBDmg:DB$ DealDamage | NumDmg$ 1 | Defined$ ImprintedController | UnlessCost$ 2 | UnlessPayer$ ImprintedController | ShowCurrentCard$ Imprinted
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True

View File

@@ -1,11 +1,10 @@
Name:Sweep Away Name:Sweep Away
ManaCost:2 U ManaCost:2 U
Types:Instant Types:Instant
A:SP$ Pump | Cost$ 2 U | ValidTgts$ Creature | IsCurse$ True | RememberObjects$ Targeted | SubAbility$ DBDefaultAction | StackDescription$ SpellDescription | SpellDescription$ Return target creature to its owner's hand. If that creature is attacking, you may put it on top of its owner's library instead. A:SP$ Pump | Cost$ 2 U | ValidTgts$ Creature | IsCurse$ True | SubAbility$ DBDefaultAction | StackDescription$ SpellDescription | SpellDescription$ Return target creature to its owner's hand. If that creature is attacking, you may put it on top of its owner's library instead.
SVar:DBDefaultAction:DB$ ChangeZone | Defined$ Remembered | Origin$ Battlefield | Destination$ Hand | ConditionCheckSVar$ X | ConditionSVarCompare$ EQ0 | SubAbility$ DBChoose SVar:DBDefaultAction:DB$ ChangeZone | Defined$ Targeted | Origin$ Battlefield | Destination$ Hand | ConditionCheckSVar$ X | ConditionSVarCompare$ EQ0 | SubAbility$ DBChoose
SVar:DBChoose:DB$ GenericChoice | Choices$ DBTopLibChoice,DBHandChoice | Defined$ You | ConditionCheckSVar$ X | ConditionSVarCompare$ GE1 | SubAbility$ DBCleanup SVar:DBChoose:DB$ GenericChoice | Choices$ DBTopLibChoice,DBHandChoice | Defined$ You | ConditionCheckSVar$ X | ConditionSVarCompare$ GE1
SVar:DBTopLibChoice:DB$ ChangeZone | Defined$ Remembered | Origin$ Battlefield | Destination$ Library | LibraryPosition$ 0 | SpellDescription$ If that creature is attacking, you may put it on top of its owner's library instead. SVar:DBTopLibChoice:DB$ ChangeZone | Defined$ Targeted | Origin$ Battlefield | Destination$ Library | LibraryPosition$ 0 | SpellDescription$ If that creature is attacking, you may put it on top of its owner's library instead.
SVar:DBHandChoice:DB$ ChangeZone | Defined$ Remembered | Origin$ Battlefield | Destination$ Hand | SpellDescription$ Return target creature to its owner's hand. SVar:DBHandChoice:DB$ ChangeZone | Defined$ Targeted | Origin$ Battlefield | Destination$ Hand | SpellDescription$ Return target creature to its owner's hand.
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:X:Targeted$Valid Creature.attacking
SVar:X:Count$Valid Creature.IsRemembered+attacking
Oracle:Return target creature to its owner's hand. If that creature is attacking, you may put it on top of its owner's library instead. Oracle:Return target creature to its owner's hand. If that creature is attacking, you may put it on top of its owner's library instead.

View File

@@ -2,9 +2,5 @@ Name:Tawnos's Weaponry
ManaCost:2 ManaCost:2
Types:Artifact Types:Artifact
K:You may choose not to untap CARDNAME during your untap step. K:You may choose not to untap CARDNAME during your untap step.
A:AB$ Pump | Cost$ 2 T | ValidTgts$ Creature | TgtPrompt$ Select target creature | RememberTargets$ True | AILogic$ ContinuousBonus | SpellDescription$ Target creature gets +1/+1 for as long as CARDNAME remains tapped. | StackDescription$ SpellDescription A:AB$ Pump | Cost$ 2 T | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ 1 | NumDef$ 1 | Duration$ UntilUntaps | AILogic$ ContinuousBonus | SpellDescription$ Target creature gets +1/+1 for as long as CARDNAME remains tapped.
S:Mode$ Continuous | Affected$ Creature.IsRemembered | AddPower$ 1 | AddToughness$ 1
T:Mode$ Untaps | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ ClearRemembered | Static$ True
SVar:ClearRemembered:DB$ Cleanup | ClearRemembered$ True
SVar:AIUntapPreference:BetterTgtThanRemembered
Oracle:You may choose not to untap Tawnos's Weaponry during your untap step.\n{2}, {T}: Target creature gets +1/+1 for as long as Tawnos's Weaponry remains tapped. Oracle:You may choose not to untap Tawnos's Weaponry during your untap step.\n{2}, {T}: Target creature gets +1/+1 for as long as Tawnos's Weaponry remains tapped.

View File

@@ -1,8 +1,8 @@
Name:Touch of Moonglove Name:Touch of Moonglove
ManaCost:B ManaCost:B
Types:Instant Types:Instant
A:SP$ Pump | Cost$ B | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ +1 | KW$ Deathtouch | RememberObjects$ Targeted | SubAbility$ DBMoonglove | SpellDescription$ Target creature you control gets +1/+0 and gains deathtouch until end of turn. Whenever a creature dealt damage by that creature dies this turn, its controller loses 2 life. (Any amount of damage a creature with deathtouch deals to a creature is enough to destroy it.) A:SP$ Pump | Cost$ B | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ +1 | KW$ Deathtouch | SubAbility$ DBMoonglove | SpellDescription$ Target creature you control gets +1/+0 and gains deathtouch until end of turn. Whenever a creature dealt damage by that creature dies this turn, its controller loses 2 life. (Any amount of damage a creature with deathtouch deals to a creature is enough to destroy it.)
SVar:DBMoonglove:DB$ Effect | Triggers$ MoongloveTrigger | RememberObjects$ Remembered | StackDescription$ Whenever a creature dealt damage by that creature dies this turn, its controller loses 2 life. SVar:DBMoonglove:DB$ Effect | Triggers$ MoongloveTrigger | RememberObjects$ Targeted | StackDescription$ Whenever a creature dealt damage by that creature dies this turn, its controller loses 2 life.
SVar:MoongloveTrigger:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.DamagedBy Remembered | TriggerZones$ Command | Execute$ TrigLoseLife | TriggerDescription$ Whenever a creature dealt damage by that creature dies this turn, its controller loses 2 life. SVar:MoongloveTrigger:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.DamagedBy Remembered | TriggerZones$ Command | Execute$ TrigLoseLife | TriggerDescription$ Whenever a creature dealt damage by that creature dies this turn, its controller loses 2 life.
SVar:TrigLoseLife:DB$ LoseLife | LifeAmount$ 2 | Defined$ TriggeredCardController SVar:TrigLoseLife:DB$ LoseLife | LifeAmount$ 2 | Defined$ TriggeredCardController
Oracle:Target creature you control gets +1/+0 and gains deathtouch until end of turn. Whenever a creature dealt damage by that creature dies this turn, its controller loses 2 life. (Any amount of damage a creature with deathtouch deals to a creature is enough to destroy it.) Oracle:Target creature you control gets +1/+0 and gains deathtouch until end of turn. Whenever a creature dealt damage by that creature dies this turn, its controller loses 2 life. (Any amount of damage a creature with deathtouch deals to a creature is enough to destroy it.)

View File

@@ -7,8 +7,6 @@ T:Mode$ Phase | Phase$ Upkeep | TriggerZones$ Battlefield | Execute$ TrigPutCoun
SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ PLAGUE | CounterNum$ 1 SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ PLAGUE | CounterNum$ 1
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ -X | AddToughness$ -X | Description$ Enchanted creature gets -1/-1 for each plague counter on CARDNAME. S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ -X | AddToughness$ -X | Description$ Enchanted creature gets -1/-1 for each plague counter on CARDNAME.
SVar:X:Count$CardCounters.PLAGUE SVar:X:Count$CardCounters.PLAGUE
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.EnchantedBy | Execute$ DBRem | TriggerDescription$ When enchanted creature leaves the battlefield, that creature's controller returns CARDNAME from its owner's graveyard to the battlefield. T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.EnchantedBy | Execute$ DBChangeZone | TriggerDescription$ When enchanted creature leaves the battlefield, that creature's controller returns CARDNAME from its owner's graveyard to the battlefield.
SVar:DBRem:DB$ Pump | RememberObjects$ Self | SubAbility$ DBChangeZone SVar:DBChangeZone:DB$ ChangeZone | Defined$ Self | Origin$ Graveyard | Destination$ Battlefield | GainControl$ TriggeredCardController
SVar:DBChangeZone:DB$ ChangeZone | Defined$ Remembered | Origin$ Graveyard | Destination$ Battlefield | GainControl$ TriggeredCardController | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
Oracle:Enchant creature\nAt the beginning of each upkeep, put a plague counter on Traveling Plague.\nEnchanted creature gets -1/-1 for each plague counter on Traveling Plague.\nWhen enchanted creature leaves the battlefield, that creature's controller returns Traveling Plague from its owner's graveyard to the battlefield. Oracle:Enchant creature\nAt the beginning of each upkeep, put a plague counter on Traveling Plague.\nEnchanted creature gets -1/-1 for each plague counter on Traveling Plague.\nWhen enchanted creature leaves the battlefield, that creature's controller returns Traveling Plague from its owner's graveyard to the battlefield.

View File

@@ -1,7 +1,7 @@
Name:Typhoon Name:Typhoon
ManaCost:2 G ManaCost:2 G
Types:Sorcery Types:Sorcery
A:SP$ RepeatEach | Cost$ 2 G | RepeatPlayers$ Player.Opponent | RepeatSubAbility$ TyphoonDmg | DamageMap$ True | SpellDescription$ Typhoon deals damage to each opponent equal to the number of Islands that player controls. A:SP$ RepeatEach | Cost$ 2 G | RepeatPlayers$ Player.Opponent | RepeatSubAbility$ TyphoonDmg | DamageMap$ True | SpellDescription$ CARDNAME deals damage to each opponent equal to the number of Islands that player controls.
SVar:TyphoonDmg:DB$ DealDamage | Defined$ Remembered | NumDmg$ X SVar:TyphoonDmg:DB$ DealDamage | Defined$ Remembered | NumDmg$ X
SVar:X:Count$Valid Island.RememberedPlayerCtrl SVar:X:Count$Valid Island.RememberedPlayerCtrl
AI:RemoveDeck:Random AI:RemoveDeck:Random

View File

@@ -2,10 +2,8 @@ Name:Zedruu the Greathearted
ManaCost:1 U R W ManaCost:1 U R W
Types:Legendary Creature Minotaur Monk Types:Legendary Creature Minotaur Monk
PT:2/4 PT:2/4
A:AB$ Pump | Cost$ U R W | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | SubAbility$ DBPumpPermanent | AILogic$ DonateTargetPerm | RememberObjects$ Targeted | SpellDescription$ Target opponent gains control of target permanent you control. | StackDescription$ None A:AB$ Pump | Cost$ U R W | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | SubAbility$ DBGainControl | AILogic$ DonateTargetPerm | SpellDescription$ Target opponent gains control of target permanent you control. | StackDescription$ None
SVar:DBPumpPermanent:DB$ Pump | ValidTgts$ Permanent.YouCtrl | TgtPrompt$ Select target permanent that you control | SubAbility$ DBGainControl | StackDescription$ None SVar:DBGainControl:DB$ GainControl | ValidTgts$ Permanent.YouCtrl | TgtPrompt$ Select target permanent that you control | NewController$ ParentTarget
SVar:DBGainControl:DB$ GainControl | Defined$ Targeted | NewController$ Remembered | SubAbility$ DBForgetRemembered
SVar:DBForgetRemembered:DB$ Cleanup | ClearRemembered$ True
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ GainLife | TriggerDescription$ At the beginning of your upkeep, you gain X life and draw X cards, where X is the number of permanents you own that your opponents control. T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ GainLife | TriggerDescription$ At the beginning of your upkeep, you gain X life and draw X cards, where X is the number of permanents you own that your opponents control.
SVar:GainLife:DB$ GainLife | LifeAmount$ X | SubAbility$ DBDraw SVar:GainLife:DB$ GainLife | LifeAmount$ X | SubAbility$ DBDraw
SVar:DBDraw:DB$ Draw | NumCards$ X SVar:DBDraw:DB$ Draw | NumCards$ X

View File

@@ -2,9 +2,6 @@ Name:Zelyon Sword
ManaCost:3 ManaCost:3
Types:Artifact Types:Artifact
K:You may choose not to untap CARDNAME during your untap step. K:You may choose not to untap CARDNAME during your untap step.
A:AB$ Pump | Cost$ 3 T | ValidTgts$ Creature | TgtPrompt$ Select target creature | RememberTargets$ True | AILogic$ ContinuousBonus | SpellDescription$ Target creature gets +2/+0 for as long as CARDNAME remains tapped. | StackDescription$ SpellDescription A:AB$ Pump | Cost$ 3 T | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ 2 | Duration$ UntilUntaps | AILogic$ ContinuousBonus | SpellDescription$ Target creature gets +2/+0 for as long as CARDNAME remains tapped.
S:Mode$ Continuous | Affected$ Creature.IsRemembered | AddPower$ 2
T:Mode$ Untaps | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ ClearRemembered | Static$ True
SVar:ClearRemembered:DB$ Cleanup | ClearRemembered$ True
SVar:AIUntapPreference:BetterTgtThanRemembered SVar:AIUntapPreference:BetterTgtThanRemembered
Oracle:You may choose not to untap Zelyon Sword during your untap step.\n{3}, {T}: Target creature gets +2/+0 for as long as Zelyon Sword remains tapped. Oracle:You may choose not to untap Zelyon Sword during your untap step.\n{3}, {T}: Target creature gets +2/+0 for as long as Zelyon Sword remains tapped.