mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-15 02:08:00 +00:00
YWOE high_fae_prankster.txt and support (#3921)
* high_fae_prankster.txt and support * Perpetual rework * fix imports * fix imports * 12/9 cards and tweaks * fix absorb_energy * tidy * 12/10 updates * 12/12 tweaks and fixes * 12/13 tweaks * last tweaks for this PR * revert unneeded * revert unneeded for real * tidy executePerpetual * cleanup imports * tweaks 12/15 * fix imports * LosePerpetualEffect * cleanup import
This commit is contained in:
@@ -107,6 +107,7 @@ public enum SpellApiToAi {
|
|||||||
.put(ApiType.Investigate, InvestigateAi.class)
|
.put(ApiType.Investigate, InvestigateAi.class)
|
||||||
.put(ApiType.Learn, LearnAi.class)
|
.put(ApiType.Learn, LearnAi.class)
|
||||||
.put(ApiType.LoseLife, LifeLoseAi.class)
|
.put(ApiType.LoseLife, LifeLoseAi.class)
|
||||||
|
.put(ApiType.LosePerpetual, AlwaysPlayAi.class)
|
||||||
.put(ApiType.LosesGame, GameLossAi.class)
|
.put(ApiType.LosesGame, GameLossAi.class)
|
||||||
.put(ApiType.MakeCard, AlwaysPlayAi.class)
|
.put(ApiType.MakeCard, AlwaysPlayAi.class)
|
||||||
.put(ApiType.Mana, ManaEffectAi.class)
|
.put(ApiType.Mana, ManaEffectAi.class)
|
||||||
|
|||||||
@@ -250,7 +250,7 @@ public final class CardType implements Comparable<CardType>, CardTypeView {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isEmpty() {
|
public boolean isEmpty() {
|
||||||
return coreTypes.isEmpty() && supertypes.isEmpty() && subtypes.isEmpty() && !excludedCreatureSubtypes.isEmpty();
|
return coreTypes.isEmpty() && supertypes.isEmpty() && subtypes.isEmpty() && excludedCreatureSubtypes.isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -315,6 +315,16 @@ public class GameAction {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// perpetual stuff
|
||||||
|
if (c.hasIntensity()) {
|
||||||
|
copied.setIntensity(c.getIntensity(false));
|
||||||
|
}
|
||||||
|
if (c.isSpecialized()) {
|
||||||
|
copied.setState(c.getCurrentStateName(), false);
|
||||||
|
}
|
||||||
|
if (c.hasPerpetual()) {
|
||||||
|
copied.setPerpetual(c);
|
||||||
|
}
|
||||||
// ensure that any leftover keyword/type changes are cleared in the state view
|
// ensure that any leftover keyword/type changes are cleared in the state view
|
||||||
copied.updateStateForView();
|
copied.updateStateForView();
|
||||||
|
|
||||||
@@ -577,15 +587,6 @@ public class GameAction {
|
|||||||
copied.clearEtbCounters();
|
copied.clearEtbCounters();
|
||||||
}
|
}
|
||||||
|
|
||||||
// intensity is perpetual
|
|
||||||
if (c.hasIntensity()) {
|
|
||||||
copied.setIntensity(c.getIntensity(false));
|
|
||||||
}
|
|
||||||
// specialize is perpetual
|
|
||||||
if (c.isSpecialized()) {
|
|
||||||
copied.setState(c.getCurrentStateName(), false);
|
|
||||||
}
|
|
||||||
|
|
||||||
// update state for view
|
// update state for view
|
||||||
copied.updateStateForView();
|
copied.updateStateForView();
|
||||||
|
|
||||||
|
|||||||
@@ -2154,6 +2154,10 @@ public class AbilityUtils {
|
|||||||
return doXMath(c.getRememberedCount(), expr, c, ctb);
|
return doXMath(c.getRememberedCount(), expr, c, ctb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (sq[0].startsWith("ChosenSize")) {
|
||||||
|
return doXMath(c.getChosenCards().size(), expr, c, ctb);
|
||||||
|
}
|
||||||
|
|
||||||
if (sq[0].startsWith("ImprintedSize")) {
|
if (sq[0].startsWith("ImprintedSize")) {
|
||||||
return doXMath(c.getImprintedCards().size(), expr, c, ctb);
|
return doXMath(c.getImprintedCards().size(), expr, c, ctb);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -107,6 +107,7 @@ public enum ApiType {
|
|||||||
Learn (LearnEffect.class),
|
Learn (LearnEffect.class),
|
||||||
LookAt (LookAtEffect.class),
|
LookAt (LookAtEffect.class),
|
||||||
LoseLife (LifeLoseEffect.class),
|
LoseLife (LifeLoseEffect.class),
|
||||||
|
LosePerpetual (LosePerpetualEffect.class),
|
||||||
LosesGame (GameLossEffect.class),
|
LosesGame (GameLossEffect.class),
|
||||||
MakeCard (MakeCardEffect.class),
|
MakeCard (MakeCardEffect.class),
|
||||||
Mana (ManaEffect.class),
|
Mana (ManaEffect.class),
|
||||||
|
|||||||
@@ -170,7 +170,8 @@ public abstract class SpellAbilityEffect {
|
|||||||
if ("}".equals(t)) { isPlainText = true; continue; }
|
if ("}".equals(t)) { isPlainText = true; continue; }
|
||||||
|
|
||||||
if (!isPlainText) {
|
if (!isPlainText) {
|
||||||
if (t.startsWith("n:")) { // {n:<SVar> <noun(opt.)>}
|
if (t.length() <= 2) sb.append("{").append(t).append("}"); // string includes mana cost (e.g. {2}{R})
|
||||||
|
else if (t.startsWith("n:")) { // {n:<SVar> <noun(opt.)>}
|
||||||
String parts[] = t.substring(2).split(" ", 2);
|
String parts[] = t.substring(2).split(" ", 2);
|
||||||
int n = AbilityUtils.calculateAmount(sa.getHostCard(), parts[0], sa);
|
int n = AbilityUtils.calculateAmount(sa.getHostCard(), parts[0], sa);
|
||||||
sb.append(parts.length == 1 ? Lang.getNumeral(n) : Lang.nounWithNumeral(n, parts[1]));
|
sb.append(parts.length == 1 ? Lang.getNumeral(n) : Lang.nounWithNumeral(n, parts[1]));
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ public class AnimateAllEffect extends AnimateEffectBase {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String getStackDescription(SpellAbility sa) {
|
protected String getStackDescription(SpellAbility sa) {
|
||||||
return "Animate all valid cards.";
|
return sa.getParamOrDefault("SpellDescription", "Animate all valid cards.");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -133,10 +133,12 @@ public class AnimateAllEffect extends AnimateEffectBase {
|
|||||||
|
|
||||||
CardCollectionView list;
|
CardCollectionView list;
|
||||||
|
|
||||||
|
ZoneType z = sa.hasParam("Zone") ? ZoneType.smartValueOf(sa.getParam("Zone")) : ZoneType.Battlefield;
|
||||||
|
|
||||||
if (sa.usesTargeting() || sa.hasParam("Defined")) {
|
if (sa.usesTargeting() || sa.hasParam("Defined")) {
|
||||||
list = getTargetPlayers(sa).getCardsIn(ZoneType.Battlefield);
|
list = getTargetPlayers(sa).getCardsIn(z);
|
||||||
} else {
|
} else {
|
||||||
list = game.getCardsIn(ZoneType.Battlefield);
|
list = game.getCardsIn(z);
|
||||||
}
|
}
|
||||||
|
|
||||||
list = CardLists.getValidCards(list, valid, sa.getActivatingPlayer(), host, sa);
|
list = CardLists.getValidCards(list, valid, sa.getActivatingPlayer(), host, sa);
|
||||||
|
|||||||
@@ -18,7 +18,9 @@
|
|||||||
package forge.game.ability.effects;
|
package forge.game.ability.effects;
|
||||||
|
|
||||||
import java.util.EnumSet;
|
import java.util.EnumSet;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
@@ -52,6 +54,7 @@ public abstract class AnimateEffectBase extends SpellAbilityEffect {
|
|||||||
final long timestamp, final String duration) {
|
final long timestamp, final String duration) {
|
||||||
final Card source = sa.getHostCard();
|
final Card source = sa.getHostCard();
|
||||||
final Game game = source.getGame();
|
final Game game = source.getGame();
|
||||||
|
final boolean perpetual = "Perpetual".equals(duration);
|
||||||
|
|
||||||
boolean addAllCreatureTypes = sa.hasParam("AddAllCreatureTypes");
|
boolean addAllCreatureTypes = sa.hasParam("AddAllCreatureTypes");
|
||||||
|
|
||||||
@@ -79,15 +82,40 @@ public abstract class AnimateEffectBase extends SpellAbilityEffect {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!addType.isEmpty() || !removeType.isEmpty() || addAllCreatureTypes || !remove.isEmpty()) {
|
if (!addType.isEmpty() || !removeType.isEmpty() || addAllCreatureTypes || !remove.isEmpty()) {
|
||||||
|
if (perpetual) {
|
||||||
|
Map <String, Object> params = new HashMap<>();
|
||||||
|
params.put("AddTypes", addType);
|
||||||
|
params.put("RemoveTypes", removeType);
|
||||||
|
params.put("RemoveXTypes", remove);
|
||||||
|
params.put("Timestamp", timestamp);
|
||||||
|
params.put("Category", "Types");
|
||||||
|
c.addPerpetual(params);
|
||||||
|
}
|
||||||
c.addChangedCardTypes(addType, removeType, addAllCreatureTypes, remove, timestamp, 0, true, false);
|
c.addChangedCardTypes(addType, removeType, addAllCreatureTypes, remove, timestamp, 0, true, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!keywords.isEmpty() || !removeKeywords.isEmpty() || removeAll) {
|
if (!keywords.isEmpty() || !removeKeywords.isEmpty() || removeAll) {
|
||||||
|
if (perpetual) {
|
||||||
|
Map <String, Object> params = new HashMap<>();
|
||||||
|
params.put("AddKeywords", keywords);
|
||||||
|
params.put("RemoveAll", removeAll);
|
||||||
|
params.put("Timestamp", timestamp);
|
||||||
|
params.put("Category", "Keywords");
|
||||||
|
c.addPerpetual(params);
|
||||||
|
}
|
||||||
c.addChangedCardKeywords(keywords, removeKeywords, removeAll, timestamp, 0);
|
c.addChangedCardKeywords(keywords, removeKeywords, removeAll, timestamp, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// do this after changing types in case it wasn't a creature before
|
// do this after changing types in case it wasn't a creature before
|
||||||
if (power != null || toughness != null) {
|
if (power != null || toughness != null) {
|
||||||
|
if (perpetual) {
|
||||||
|
Map <String, Object> params = new HashMap<>();
|
||||||
|
params.put("Power", power);
|
||||||
|
params.put("Toughness", toughness);
|
||||||
|
params.put("Timestamp", timestamp);
|
||||||
|
params.put("Category", "NewPT");
|
||||||
|
c.addPerpetual(params);
|
||||||
|
}
|
||||||
c.addNewPT(power, toughness, timestamp, 0);
|
c.addNewPT(power, toughness, timestamp, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -184,10 +212,16 @@ public abstract class AnimateEffectBase extends SpellAbilityEffect {
|
|||||||
|| !addedAbilities.isEmpty() || !removedAbilities.isEmpty() || !addedTriggers.isEmpty()
|
|| !addedAbilities.isEmpty() || !removedAbilities.isEmpty() || !addedTriggers.isEmpty()
|
||||||
|| !addedReplacements.isEmpty() || !addedStaticAbilities.isEmpty()) {
|
|| !addedReplacements.isEmpty() || !addedStaticAbilities.isEmpty()) {
|
||||||
c.addChangedCardTraits(addedAbilities, removedAbilities, addedTriggers, addedReplacements,
|
c.addChangedCardTraits(addedAbilities, removedAbilities, addedTriggers, addedReplacements,
|
||||||
addedStaticAbilities, removeAll, removeNonManaAbilities, timestamp, 0);
|
addedStaticAbilities, removeAll, removeNonManaAbilities, timestamp, 0);
|
||||||
|
if (perpetual) {
|
||||||
|
Map <String, Object> params = new HashMap<>();
|
||||||
|
params.put("Timestamp", timestamp);
|
||||||
|
params.put("Category", "Abilities");
|
||||||
|
c.addPerpetual(params);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!"Permanent".equals(duration)) {
|
if (!"Permanent".equals(duration) && !perpetual) {
|
||||||
if ("UntilControllerNextUntap".equals(duration)) {
|
if ("UntilControllerNextUntap".equals(duration)) {
|
||||||
game.getUntap().addUntil(c.getController(), unanimate);
|
game.getUntap().addUntil(c.getController(), unanimate);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -45,7 +45,9 @@ public class ChooseCardEffect extends SpellAbilityEffect {
|
|||||||
}
|
}
|
||||||
sb.append(Lang.nounWithNumeralExceptOne(numCards, desc));
|
sb.append(Lang.nounWithNumeralExceptOne(numCards, desc));
|
||||||
if (sa.hasParam("FromDesc")) {
|
if (sa.hasParam("FromDesc")) {
|
||||||
sb.append(" ").append(sa.getParam("FromDesc"));
|
sb.append(" from ").append(sa.getParam("FromDesc"));
|
||||||
|
} else if (sa.hasParam("ChoiceZone") && sa.getParam("ChoiceZone").equals("Hand")) {
|
||||||
|
sb.append(" in their hand");
|
||||||
}
|
}
|
||||||
sb.append(".");
|
sb.append(".");
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,8 @@ public class DestroyEffect extends SpellAbilityEffect {
|
|||||||
final StringBuilder sb = new StringBuilder();
|
final StringBuilder sb = new StringBuilder();
|
||||||
|
|
||||||
final List<Card> tgtCards = getTargetCards(sa);
|
final List<Card> tgtCards = getTargetCards(sa);
|
||||||
|
// up to X targets and chose 0 or similar situations
|
||||||
|
if (tgtCards.isEmpty()) return sa.getParamOrDefault("SpellDescription", "");
|
||||||
final boolean justOne = tgtCards.size() == 1;
|
final boolean justOne = tgtCards.size() == 1;
|
||||||
|
|
||||||
sb.append(sa.hasParam("Sacrifice") ? "Sacrifice " : "Destroy ").append(Lang.joinHomogenous(tgtCards));
|
sb.append(sa.hasParam("Sacrifice") ? "Sacrifice " : "Destroy ").append(Lang.joinHomogenous(tgtCards));
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
package forge.game.ability.effects;
|
||||||
|
|
||||||
|
import com.google.common.collect.Table.Cell;
|
||||||
|
|
||||||
|
import forge.game.ability.SpellAbilityEffect;
|
||||||
|
import forge.game.card.Card;
|
||||||
|
import forge.game.card.CardTraitChanges;
|
||||||
|
import forge.game.spellability.SpellAbility;
|
||||||
|
import forge.game.trigger.Trigger;
|
||||||
|
|
||||||
|
public class LosePerpetualEffect extends SpellAbilityEffect {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void resolve(SpellAbility sa) {
|
||||||
|
final Card host = sa.getHostCard();
|
||||||
|
long toRemove = (long) 0;
|
||||||
|
// currently only part of perpetual triggers... expand in future as needed
|
||||||
|
if (sa.getTrigger() != null) {
|
||||||
|
Trigger trig = sa.getTrigger();
|
||||||
|
for (Cell<Long, Long, CardTraitChanges> cell : host.getChangedCardTraits().cellSet()) {
|
||||||
|
if (cell.getValue().getTriggers().contains(trig)) {
|
||||||
|
toRemove = cell.getRowKey();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (toRemove != (long) 0) {
|
||||||
|
host.getChangedCardTraits().remove(toRemove, (long) 0);
|
||||||
|
host.removePerpetual(toRemove);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,8 @@
|
|||||||
package forge.game.ability.effects;
|
package forge.game.ability.effects;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import forge.GameCommand;
|
import forge.GameCommand;
|
||||||
import forge.game.Game;
|
import forge.game.Game;
|
||||||
@@ -34,6 +36,7 @@ public class PowerExchangeEffect extends SpellAbilityEffect {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void resolve(SpellAbility sa) {
|
public void resolve(SpellAbility sa) {
|
||||||
|
final boolean perpetual = "Perpetual".equals(sa.getParam("Duration"));
|
||||||
final Card source = sa.getHostCard();
|
final Card source = sa.getHostCard();
|
||||||
final Game game = source.getGame();
|
final Game game = source.getGame();
|
||||||
final Card c1;
|
final Card c1;
|
||||||
@@ -51,18 +54,28 @@ public class PowerExchangeEffect extends SpellAbilityEffect {
|
|||||||
if (!c1.isInPlay() || !c2.isInPlay()) {
|
if (!c1.isInPlay() || !c2.isInPlay()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
final int power1 = c1.getNetPower();
|
final boolean basePower = sa.hasParam("BasePower");
|
||||||
final int power2 = c2.getNetPower();
|
final int power1 = basePower ? c1.getCurrentPower() : c1.getNetPower();
|
||||||
|
final int power2 = basePower ? c2.getCurrentPower() : c2.getNetPower();
|
||||||
|
|
||||||
final long timestamp = game.getNextTimestamp();
|
final long timestamp = game.getNextTimestamp();
|
||||||
|
|
||||||
|
if (perpetual) {
|
||||||
|
Map <String, Object> params = new HashMap<>();
|
||||||
|
params.put("Power", power2);
|
||||||
|
params.put("Timestamp", timestamp);
|
||||||
|
params.put("Category", "NewPT");
|
||||||
|
c1.addPerpetual(params);
|
||||||
|
params.put("Power", power1);
|
||||||
|
c2.addPerpetual(params);
|
||||||
|
}
|
||||||
c1.addNewPT(power2, null, timestamp, 0);
|
c1.addNewPT(power2, null, timestamp, 0);
|
||||||
c2.addNewPT(power1, null, timestamp, 0);
|
c2.addNewPT(power1, null, timestamp, 0);
|
||||||
|
|
||||||
game.fireEvent(new GameEventCardStatsChanged(c1));
|
game.fireEvent(new GameEventCardStatsChanged(c1));
|
||||||
game.fireEvent(new GameEventCardStatsChanged(c2));
|
game.fireEvent(new GameEventCardStatsChanged(c2));
|
||||||
|
|
||||||
if (!"Permanent".equals(sa.getParam("Duration"))) {
|
if (!"Permanent".equals(sa.getParam("Duration")) && !perpetual) {
|
||||||
// If not Permanent, remove Pumped at EOT
|
// If not Permanent, remove Pumped at EOT
|
||||||
final GameCommand untilEOT = new GameCommand() {
|
final GameCommand untilEOT = new GameCommand() {
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
package forge.game.ability.effects;
|
package forge.game.ability.effects;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import com.google.common.collect.Iterables;
|
import com.google.common.collect.Iterables;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
@@ -27,6 +29,7 @@ public class PumpAllEffect extends SpellAbilityEffect {
|
|||||||
final long timestamp = game.getNextTimestamp();
|
final long timestamp = game.getNextTimestamp();
|
||||||
final List<String> kws = Lists.newArrayList();
|
final List<String> kws = Lists.newArrayList();
|
||||||
final List<String> hiddenkws = Lists.newArrayList();
|
final List<String> hiddenkws = Lists.newArrayList();
|
||||||
|
final boolean perpetual = ("Perpetual").equals(sa.getParam("Duration"));
|
||||||
|
|
||||||
for (String kw : keywords) {
|
for (String kw : keywords) {
|
||||||
if (kw.startsWith("HIDDEN")) {
|
if (kw.startsWith("HIDDEN")) {
|
||||||
@@ -38,25 +41,33 @@ public class PumpAllEffect extends SpellAbilityEffect {
|
|||||||
|
|
||||||
for (final Card tgtC : list) {
|
for (final Card tgtC : list) {
|
||||||
// only pump things in the affected zones.
|
// only pump things in the affected zones.
|
||||||
boolean found = false;
|
if (!tgtC.isInZones(affectedZones)) {
|
||||||
for (final ZoneType z : affectedZones) {
|
|
||||||
if (tgtC.isInZone(z)) {
|
|
||||||
found = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!found) {
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean redrawPT = false;
|
boolean redrawPT = false;
|
||||||
|
|
||||||
if (a != 0 || d != 0) {
|
if (a != 0 || d != 0) {
|
||||||
|
if (perpetual) {
|
||||||
|
Map <String, Object> params = new HashMap<>();
|
||||||
|
params.put("Power", a);
|
||||||
|
params.put("Toughness", d);
|
||||||
|
params.put("Timestamp", timestamp);
|
||||||
|
params.put("Category", "PTBoost");
|
||||||
|
tgtC.addPerpetual(params);
|
||||||
|
}
|
||||||
tgtC.addPTBoost(a, d, timestamp, 0);
|
tgtC.addPTBoost(a, d, timestamp, 0);
|
||||||
redrawPT = true;
|
redrawPT = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!kws.isEmpty()) {
|
if (!kws.isEmpty()) {
|
||||||
|
if (perpetual) {
|
||||||
|
Map <String, Object> params = new HashMap<>();
|
||||||
|
params.put("AddKeywords", kws);
|
||||||
|
params.put("Timestamp", timestamp);
|
||||||
|
params.put("Category", "Keywords");
|
||||||
|
tgtC.addPerpetual(params);
|
||||||
|
}
|
||||||
tgtC.addChangedCardKeywords(kws, null, false, timestamp, 0);
|
tgtC.addChangedCardKeywords(kws, null, false, timestamp, 0);
|
||||||
}
|
}
|
||||||
if (redrawPT) {
|
if (redrawPT) {
|
||||||
@@ -71,7 +82,7 @@ public class PumpAllEffect extends SpellAbilityEffect {
|
|||||||
sa.getHostCard().addRemembered(tgtC);
|
sa.getHostCard().addRemembered(tgtC);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!"Permanent".equals(sa.getParam("Duration"))) {
|
if (!"Permanent".equals(sa.getParam("Duration")) && !perpetual) {
|
||||||
// If not Permanent, remove Pumped at EOT
|
// If not Permanent, remove Pumped at EOT
|
||||||
final GameCommand untilEOT = new GameCommand() {
|
final GameCommand untilEOT = new GameCommand() {
|
||||||
private static final long serialVersionUID = 5415795460189457660L;
|
private static final long serialVersionUID = 5415795460189457660L;
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
package forge.game.ability.effects;
|
package forge.game.ability.effects;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
@@ -40,6 +42,7 @@ public class PumpEffect extends SpellAbilityEffect {
|
|||||||
final Card host = sa.getHostCard();
|
final Card host = sa.getHostCard();
|
||||||
final Game game = host.getGame();
|
final Game game = host.getGame();
|
||||||
final String duration = sa.getParam("Duration");
|
final String duration = sa.getParam("Duration");
|
||||||
|
final boolean perpetual = ("Perpetual").equals(duration);
|
||||||
|
|
||||||
//if host is not on the battlefield don't apply
|
//if host is not on the battlefield don't apply
|
||||||
// Suspend should does Affect the Stack
|
// Suspend should does Affect the Stack
|
||||||
@@ -70,12 +73,28 @@ public class PumpEffect extends SpellAbilityEffect {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (a != 0 || d != 0) {
|
if (a != 0 || d != 0) {
|
||||||
|
if (perpetual) {
|
||||||
|
Map <String, Object> params = new HashMap<>();
|
||||||
|
params.put("Power", a);
|
||||||
|
params.put("Toughness", d);
|
||||||
|
params.put("Timestamp", timestamp);
|
||||||
|
params.put("Category", "PTBoost");
|
||||||
|
gameCard.addPerpetual(params);
|
||||||
|
}
|
||||||
gameCard.addPTBoost(a, d, timestamp, 0);
|
gameCard.addPTBoost(a, d, timestamp, 0);
|
||||||
redrawPT = true;
|
redrawPT = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!kws.isEmpty()) {
|
if (!kws.isEmpty()) {
|
||||||
gameCard.addChangedCardKeywords(kws, Lists.newArrayList(), false, timestamp, 0);
|
if (perpetual) {
|
||||||
|
Map <String, Object> params = new HashMap<>();
|
||||||
|
params.put("AddKeywords", kws);
|
||||||
|
params.put("Timestamp", timestamp);
|
||||||
|
params.put("Category", "Keywords");
|
||||||
|
gameCard.addPerpetual(params);
|
||||||
|
}
|
||||||
|
gameCard.addChangedCardKeywords(kws, Lists.newArrayList(), false, timestamp, 0);
|
||||||
|
|
||||||
}
|
}
|
||||||
if (!hiddenKws.isEmpty()) {
|
if (!hiddenKws.isEmpty()) {
|
||||||
gameCard.addHiddenExtrinsicKeywords(timestamp, 0, hiddenKws);
|
gameCard.addHiddenExtrinsicKeywords(timestamp, 0, hiddenKws);
|
||||||
@@ -96,7 +115,7 @@ public class PumpEffect extends SpellAbilityEffect {
|
|||||||
addLeaveBattlefieldReplacement(gameCard, sa, sa.getParam("LeaveBattlefield"));
|
addLeaveBattlefieldReplacement(gameCard, sa, sa.getParam("LeaveBattlefield"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!"Permanent".equals(duration)) {
|
if (!"Permanent".equals(duration) && !perpetual) {
|
||||||
// If not Permanent, remove Pumped at EOT
|
// If not Permanent, remove Pumped at EOT
|
||||||
final GameCommand untilEOT = new GameCommand() {
|
final GameCommand untilEOT = new GameCommand() {
|
||||||
private static final long serialVersionUID = -42244224L;
|
private static final long serialVersionUID = -42244224L;
|
||||||
@@ -434,8 +453,8 @@ public class PumpEffect extends SpellAbilityEffect {
|
|||||||
host.removeImprintedCards(AbilityUtils.getDefinedCards(host, sa.getParam("ForgetImprinted"), sa));
|
host.removeImprintedCards(AbilityUtils.getDefinedCards(host, sa.getParam("ForgetImprinted"), sa));
|
||||||
}
|
}
|
||||||
|
|
||||||
final ZoneType pumpZone = sa.hasParam("PumpZone") ? ZoneType.smartValueOf(sa.getParam("PumpZone"))
|
List<ZoneType> pumpZones = sa.hasParam("PumpZone") ? ZoneType.listValueOf(sa.getParam("PumpZone"))
|
||||||
: ZoneType.Battlefield;
|
: ZoneType.listValueOf("Battlefield");
|
||||||
|
|
||||||
for (Card tgtC : tgtCards) {
|
for (Card tgtC : tgtCards) {
|
||||||
// CR 702.26e
|
// CR 702.26e
|
||||||
@@ -443,8 +462,8 @@ public class PumpEffect extends SpellAbilityEffect {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// only pump things in PumpZone
|
// only pump things in PumpZones
|
||||||
if (!tgtC.isInZone(pumpZone)) {
|
if (!tgtC.isInZones(pumpZones)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -488,7 +507,7 @@ public class PumpEffect extends SpellAbilityEffect {
|
|||||||
|
|
||||||
for (final Card tgtC : untargetedCards) {
|
for (final Card tgtC : untargetedCards) {
|
||||||
// only pump things in PumpZone
|
// only pump things in PumpZone
|
||||||
if (!tgtC.isInZone(pumpZone)) {
|
if (!tgtC.isInZones(pumpZones)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2175,8 +2175,6 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
|
|||||||
final String[] upkeepCostParams = keyword.split(":");
|
final String[] upkeepCostParams = keyword.split(":");
|
||||||
sbLong.append(upkeepCostParams.length > 2 ? "— " + upkeepCostParams[2] : ManaCostParser.parse(upkeepCostParams[1]));
|
sbLong.append(upkeepCostParams.length > 2 ? "— " + upkeepCostParams[2] : ManaCostParser.parse(upkeepCostParams[1]));
|
||||||
sbLong.append("\r\n");
|
sbLong.append("\r\n");
|
||||||
} else if (keyword.startsWith("Alternative Cost")) {
|
|
||||||
sbLong.append("Has alternative cost.");
|
|
||||||
} else if (keyword.startsWith("AlternateAdditionalCost")) {
|
} else if (keyword.startsWith("AlternateAdditionalCost")) {
|
||||||
final String[] costs = keyword.split(":", 2)[1].split(":");
|
final String[] costs = keyword.split(":", 2)[1].split(":");
|
||||||
sbLong.append("As an additional cost to cast this spell, ");
|
sbLong.append("As an additional cost to cast this spell, ");
|
||||||
@@ -2386,7 +2384,8 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
|
|||||||
|| keyword.startsWith("Encore") || keyword.startsWith("Mutate") || keyword.startsWith("Dungeon")
|
|| keyword.startsWith("Encore") || keyword.startsWith("Mutate") || keyword.startsWith("Dungeon")
|
||||||
|| keyword.startsWith("Class") || keyword.startsWith("Blitz")
|
|| keyword.startsWith("Class") || keyword.startsWith("Blitz")
|
||||||
|| keyword.startsWith("Specialize") || keyword.equals("Ravenous")
|
|| keyword.startsWith("Specialize") || keyword.equals("Ravenous")
|
||||||
|| keyword.equals("For Mirrodin") || keyword.startsWith("Craft")) {
|
|| keyword.equals("For Mirrodin") || keyword.startsWith("Craft")
|
||||||
|
|| keyword.startsWith("Alternative Cost")) {
|
||||||
// keyword parsing takes care of adding a proper description
|
// keyword parsing takes care of adding a proper description
|
||||||
} else if (keyword.startsWith("Read ahead")) {
|
} else if (keyword.startsWith("Read ahead")) {
|
||||||
sb.append(Localizer.getInstance().getMessage("lblReadAhead")).append(" (").append(Localizer.getInstance().getMessage("lblReadAheadDesc"));
|
sb.append(Localizer.getInstance().getMessage("lblReadAhead")).append(" (").append(Localizer.getInstance().getMessage("lblReadAheadDesc"));
|
||||||
@@ -4393,6 +4392,59 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
|
|||||||
return intensity > 0;
|
return intensity > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<Map<String, Object>> perpetual = new ArrayList<>();
|
||||||
|
public final boolean hasPerpetual() {
|
||||||
|
return !perpetual.isEmpty();
|
||||||
|
}
|
||||||
|
public final List<Map<String, Object>> getPerpetual() {
|
||||||
|
return perpetual;
|
||||||
|
}
|
||||||
|
|
||||||
|
public final void addPerpetual(Map<String, Object> p) {
|
||||||
|
perpetual.add(p);
|
||||||
|
}
|
||||||
|
|
||||||
|
public final void executePerpetual(Map<String, Object> p) {
|
||||||
|
final String category = (String) p.get("Category");
|
||||||
|
if (category.equals("NewPT")) {
|
||||||
|
addNewPT((Integer) p.get("Power"), (Integer) p.get("Toughness"), (long)
|
||||||
|
p.get("Timestamp"), (long) 0);
|
||||||
|
} else if (category.equals("PTBoost")) {
|
||||||
|
addPTBoost((Integer) p.get("Power"), (Integer) p.get("Toughness"), (long)
|
||||||
|
p.get("Timestamp"), (long) 0);
|
||||||
|
} else if (category.equals("Keywords")) {
|
||||||
|
addChangedCardKeywords((List<String>) p.get("AddKeywords"), Lists.newArrayList(),
|
||||||
|
(boolean) p.get("RemoveAll"), (long) p.get("Timestamp"), (long) 0);
|
||||||
|
} else if (category.equals("Types")) {
|
||||||
|
addChangedCardTypes((CardType) p.get("AddTypes"), (CardType) p.get("RemoveTypes"),
|
||||||
|
false, (Set<RemoveType>) p.get("RemoveXTypes"),
|
||||||
|
(long) p.get("Timestamp"), (long) 0, true, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public final void removePerpetual(final long timestamp) {
|
||||||
|
Map<String, Object> toRemove = Maps.newHashMap();
|
||||||
|
for (Map<String, Object> p : perpetual) {
|
||||||
|
if (p.get("Timestamp").equals(timestamp)) {
|
||||||
|
toRemove = p;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
perpetual.remove(toRemove);
|
||||||
|
}
|
||||||
|
|
||||||
|
public final void setPerpetual(final Card oldCard) {
|
||||||
|
final List<Map<String, Object>> perp = oldCard.getPerpetual();
|
||||||
|
perpetual = perp;
|
||||||
|
for (Map<String, Object> p : perp) {
|
||||||
|
if (p.get("Category").equals("Abilities")) {
|
||||||
|
long timestamp = (long) p.get("Timestamp");
|
||||||
|
CardTraitChanges ctc = oldCard.getChangedCardTraits().get(timestamp, (long) 0).copy(this, false);
|
||||||
|
addChangedCardTraits(ctc, timestamp, (long) 0);
|
||||||
|
} else executePerpetual(p);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private int multiKickerMagnitude = 0;
|
private int multiKickerMagnitude = 0;
|
||||||
public final void addMultiKickerMagnitude(final int n) { multiKickerMagnitude += n; }
|
public final void addMultiKickerMagnitude(final int n) { multiKickerMagnitude += n; }
|
||||||
public final void setKickerMagnitude(final int n) { multiKickerMagnitude = n; }
|
public final void setKickerMagnitude(final int n) { multiKickerMagnitude = n; }
|
||||||
@@ -4653,6 +4705,12 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
|
|||||||
updateAbilityTextForView();
|
updateAbilityTextForView();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public final void addChangedCardTraits(CardTraitChanges ctc, long timestamp, long staticId) {
|
||||||
|
changedCardTraits.put(timestamp, staticId, ctc);
|
||||||
|
// update view
|
||||||
|
updateAbilityTextForView();
|
||||||
|
}
|
||||||
|
|
||||||
public final boolean removeChangedCardTraits(long timestamp, long staticId) {
|
public final boolean removeChangedCardTraits(long timestamp, long staticId) {
|
||||||
boolean changed = false;
|
boolean changed = false;
|
||||||
changed |= changedCardTraitsByText.remove(timestamp, staticId) != null;
|
changed |= changedCardTraitsByText.remove(timestamp, staticId) != null;
|
||||||
@@ -6422,6 +6480,18 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
|
|||||||
return z != null && z.is(zone);
|
return z != null && z.is(zone);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isInZones(final List<ZoneType> zones) {
|
||||||
|
boolean inZones = false;
|
||||||
|
Zone z = this.getLastKnownZone();
|
||||||
|
for (ZoneType okZone : zones) {
|
||||||
|
if (z.is(okZone)) {
|
||||||
|
inZones = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return z != null && inZones;
|
||||||
|
}
|
||||||
|
|
||||||
public final boolean canBeDestroyed() {
|
public final boolean canBeDestroyed() {
|
||||||
return isInPlay() && !isPhasedOut() && (!hasKeyword(Keyword.INDESTRUCTIBLE) || (isCreature() && getNetToughness() <= 0));
|
return isInPlay() && !isPhasedOut() && (!hasKeyword(Keyword.INDESTRUCTIBLE) || (isCreature() && getNetToughness() <= 0));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -291,6 +291,7 @@ public final class CardUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
newCopy.setIntensity(in.getIntensity(false));
|
newCopy.setIntensity(in.getIntensity(false));
|
||||||
|
newCopy.setPerpetual(in);
|
||||||
|
|
||||||
newCopy.addRemembered(in.getRemembered());
|
newCopy.addRemembered(in.getRemembered());
|
||||||
newCopy.addImprintedCards(in.getImprintedCards());
|
newCopy.addImprintedCards(in.getImprintedCards());
|
||||||
|
|||||||
@@ -1000,7 +1000,7 @@ public class CardView extends GameEntityView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
CardStateView currentStateView = currentState.getView();
|
CardStateView currentStateView = currentState.getView();
|
||||||
if (getCurrentState() != currentStateView) {
|
if (getCurrentState() != currentStateView || c.hasPerpetual()) {
|
||||||
set(TrackableProperty.CurrentState, currentStateView);
|
set(TrackableProperty.CurrentState, currentStateView);
|
||||||
currentStateView.updateName(currentState);
|
currentStateView.updateName(currentState);
|
||||||
currentStateView.updatePower(c); //ensure power, toughness, and loyalty updated when current state changes
|
currentStateView.updatePower(c); //ensure power, toughness, and loyalty updated when current state changes
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
Name:Scarecrow Totem
|
Name:Scarecrow Totem
|
||||||
ManaCost:no cost
|
ManaCost:no cost
|
||||||
Types:Artifact
|
Types:Artifact
|
||||||
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Command | Execute$ TrigChoose | TriggerDescription$ At the beginning of your end step, conjure a duplicate of a random creature card from your opponent's library into your hand. The duplicate perpetually becomes an Artifact Scarecrow in addition to it's other types and has alternative manacost {4}.
|
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Command | Execute$ TrigChoose | TriggerDescription$ At the beginning of your end step, conjure a duplicate of a random creature card from your opponent's library into your hand. The duplicate perpetually becomes an Artifact Scarecrow in addition to its other types and has alternative manacost {4}.
|
||||||
SVar:TrigChoose:DB$ ChooseCard | Choices$ Creature.OppCtrl | ChoiceZone$ Library | AtRandom$ True | SubAbility$ DBConjure
|
SVar:TrigChoose:DB$ ChooseCard | Choices$ Creature.OppCtrl | ChoiceZone$ Library | AtRandom$ True | SubAbility$ DBConjure
|
||||||
SVar:DBConjure:DB$ MakeCard | Conjure$ True | DefinedName$ ChosenCard | Zone$ Hand | RememberMade$ True | SubAbility$ DBEffect
|
SVar:DBConjure:DB$ MakeCard | Conjure$ True | DefinedName$ ChosenCard | Zone$ Hand | RememberMade$ True | SubAbility$ DBEffect
|
||||||
SVar:DBEffect:DB$ Effect | RememberObjects$ Remembered | StaticAbilities$ PerpetualAbility | Duration$ Permanent | Name$ Scarecrow Captain's Perpetual Effect | SubAbility$ DBClearChosen
|
SVar:DBEffect:DB$ Effect | RememberObjects$ Remembered | StaticAbilities$ PerpetualAbility | Duration$ Permanent | Name$ Scarecrow Captain's Perpetual Effect | SubAbility$ DBClearChosen
|
||||||
SVar:PerpetualAbility:Mode$ Continuous | Affected$ Card.IsRemembered | AddKeyword$ Alternative Cost:4 | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | AddType$ Artifact & Scarecrow | Description$ That duplicate perpetually becomes an Artifact Scarecrow in addition to it's other types and has alternative manacost {4}.
|
SVar:PerpetualAbility:Mode$ Continuous | Affected$ Card.IsRemembered | AddKeyword$ Alternative Cost:4 | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | AddType$ Artifact & Scarecrow | Description$ That duplicate perpetually becomes an Artifact Scarecrow in addition to its other types and has alternative manacost {4}.
|
||||||
SVar:DBClearChosen:DB$ Cleanup | ClearChosenCard$ True | ClearRemembered$ True
|
SVar:DBClearChosen:DB$ Cleanup | ClearChosenCard$ True | ClearRemembered$ True
|
||||||
Oracle:At the beginning of your end step, conjure a duplicate of a random creature card from your opponent's library into your hand. The duplicate perpetually becomes an Artifact Scarecrow in addition to it's other types and has alternative manacost {4}.
|
Oracle:At the beginning of your end step, conjure a duplicate of a random creature card from your opponent's library into your hand. The duplicate perpetually becomes an Artifact Scarecrow in addition to its other types and has alternative manacost {4}.
|
||||||
@@ -1,11 +1,8 @@
|
|||||||
Name:Absorb Energy
|
Name:Absorb Energy
|
||||||
ManaCost:1 U U
|
ManaCost:1 U U
|
||||||
Types:Instant
|
Types:Instant
|
||||||
A:SP$ Counter | TargetType$ Spell | TgtPrompt$ Select target spell | ValidTgts$ Card | RememberForCounter$ True | SubAbility$ DBEffect | SpellDescription$ Counter target spell.
|
A:SP$ Counter | TargetType$ Spell | TgtPrompt$ Select target spell | ValidTgts$ Card | RememberForCounter$ True | SubAbility$ DBAnimate | SpellDescription$ Counter target spell.
|
||||||
SVar:DBEffect:DB$ Effect | ImprintCards$ Remembered | RememberObjects$ ValidHand Card.YouOwn+sharesCardTypeWith Remembered | StaticAbilities$ PerpetualAbility | Duration$ Permanent | Triggers$ Update | Name$ Absorb Energy's Perpetual Effect | SubAbility$ DBCleanup | SpellDescription$ Cards in your hand that share a card type with that spell perpetually gain "This spell costs {1} less to cast."
|
SVar:DBAnimate:DB$ AnimateAll | Zone$ Hand | Duration$ Perpetual | ValidCards$ Card.YouOwn+sharesCardTypeWith Remembered | staticAbilities$ ReduceCost | SubAbility$ DBCleanup | SpellDescription$ Cards in your hand that share a card type with that spell perpetually gain "This spell costs {1} less to cast."
|
||||||
SVar:PerpetualAbility:Mode$ Continuous | Affected$ Card.IsRemembered | AddStaticAbility$ PerpetualReduceCost | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ Cards in your hand that share a card type with that [imprinted] spell perpetually gain "This spell costs {1} less to cast."
|
SVar:ReduceCost:Mode$ ReduceCost | ValidCard$ Card.Self | Type$ Spell | Amount$ 1 | EffectZone$ All | Description$ This spell costs {1} less to cast.
|
||||||
SVar:PerpetualReduceCost:Mode$ ReduceCost | ValidCard$ Card.Self | Type$ Spell | Amount$ 1 | EffectZone$ All | Description$ This spell costs {1} less to cast.
|
|
||||||
SVar:Update:Mode$ ChangesZone | Origin$ Any | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered | Execute$ DBUpdate
|
|
||||||
SVar:DBUpdate:DB$ UpdateRemember
|
|
||||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||||
Oracle:Counter target spell. Cards in your hand that share a card type with that spell perpetually gain "This spell costs {1} less to cast."
|
Oracle:Counter target spell. Cards in your hand that share a card type with that spell perpetually gain "This spell costs {1} less to cast."
|
||||||
|
|||||||
@@ -2,9 +2,8 @@ Name:Accident-Prone Apprentice
|
|||||||
ManaCost:1 R
|
ManaCost:1 R
|
||||||
Types:Creature Otter Wizard
|
Types:Creature Otter Wizard
|
||||||
PT:1/1
|
PT:1/1
|
||||||
T:Mode$ SpellCast | ValidCard$ Card.nonCreature | ValidActivatingPlayer$ You | TriggerZones$ Battlefield,Exile | Execute$ TrigEffect | TriggerDescription$ Whenever you cast a noncreature spell, CARDNAME perpetually gets +1/+1. This ability also triggers if CARDNAME is in exile.
|
T:Mode$ SpellCast | ValidCard$ Card.nonCreature | ValidActivatingPlayer$ You | TriggerZones$ Battlefield,Exile | Execute$ TrigPump | TriggerDescription$ Whenever you cast a noncreature spell, CARDNAME perpetually gets +1/+1. This ability also triggers if CARDNAME is in exile.
|
||||||
SVar:TrigEffect:DB$ Effect | StaticAbilities$ PerpetualBuff | RememberObjects$ Self | Name$ Accident-Prone Apprentice's Perpetual Effect | Duration$ Permanent
|
SVar:TrigPump:DB$ Pump | PumpZone$ Battlefield,Exile | NumAtt$ 1 | NumDef$ 1 | Duration$ Perpetual
|
||||||
SVar:PerpetualBuff:Mode$ Continuous | Affected$ Card.IsRemembered | AddPower$ 1 | AddToughness$ 1 | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually gets +1/+1
|
|
||||||
AlternateMode:Adventure
|
AlternateMode:Adventure
|
||||||
Oracle:Whenever you cast a noncreature spell, Accident-Prone Apprentice perpetually gets +1/+1. This ability also triggers if Accident-Prone Apprentice is in exile.
|
Oracle:Whenever you cast a noncreature spell, Accident-Prone Apprentice perpetually gets +1/+1. This ability also triggers if Accident-Prone Apprentice is in exile.
|
||||||
|
|
||||||
@@ -13,5 +12,5 @@ ALTERNATE
|
|||||||
Name:Amphibian Accident
|
Name:Amphibian Accident
|
||||||
ManaCost:1 U
|
ManaCost:1 U
|
||||||
Types:Instant Adventure
|
Types:Instant Adventure
|
||||||
A:SP$ Animate | ValidTgts$ Creature | Power$ 1 | Toughness$ 1 | RemoveAllAbilities$ True | Colors$ Blue | OverwriteColors$ True | Types$ Frog | RemoveCreatureTypes$ True | SpellDescription$ Until end of turn, target creature loses all abilities and becomes a blue Frog with base power and toughness 1/1.
|
A:SP$ Animate | ValidTgts$ Creature | Power$ 1 | Toughness$ 1 | RemoveAllAbilities$ True | Colors$ Blue | OverwriteColors$ True | Types$ Frog | RemoveCreatureTypes$ True | StackDescription$ REP target creature_{c:Targeted} | SpellDescription$ Until end of turn, target creature loses all abilities and becomes a blue Frog with base power and toughness 1/1.
|
||||||
Oracle:Until end of turn, target creature loses all abilities and becomes a blue Frog with base power and toughness 1/1.
|
Oracle:Until end of turn, target creature loses all abilities and becomes a blue Frog with base power and toughness 1/1.
|
||||||
|
|||||||
@@ -3,12 +3,9 @@ ManaCost:U
|
|||||||
Types:Creature Human Rogue
|
Types:Creature Human Rogue
|
||||||
PT:1/2
|
PT:1/2
|
||||||
A:AB$ Pump | Cost$ 2 T | ValidTgts$ Opponent | SubAbility$ DBConjure | StackDescription$ None | SpellDescription$ Choose target opponent.
|
A:AB$ Pump | Cost$ 2 T | ValidTgts$ Opponent | SubAbility$ DBConjure | StackDescription$ None | SpellDescription$ Choose target opponent.
|
||||||
SVar:DBConjure:DB$ MakeCard | Conjure$ True | DefinedName$ ValidLibrary Card.TopLibrary+TargetedPlayerOwn | Zone$ Hand | RememberMade$ True | SubAbility$ DBEffect | StackDescription$ REP Conjure_{p:You} conjures & their_{p:Targeted}'s & your_their | SpellDescription$ Conjure a duplicate of the top card of their library into your hand.
|
SVar:DBConjure:DB$ MakeCard | Conjure$ True | DefinedName$ ValidLibrary Card.TopLibrary+TargetedPlayerOwn | Zone$ Hand | RememberMade$ True | SubAbility$ DBAnimate | StackDescription$ REP Conjure_{p:You} conjures & their_{p:Targeted}'s & your_their | SpellDescription$ Conjure a duplicate of the top card of their library into your hand.
|
||||||
SVar:DBEffect:DB$ Effect | RememberObjects$ Remembered | StaticAbilities$ PerpetualAbility | Duration$ Permanent | Triggers$ Update | Name$ Agent of Raffine's Perpetual Effect | SubAbility$ DBCleanup | SpellDescription$ It perpetually gains "You may spend mana as though it were mana of any color to cast this spell."
|
SVar:DBAnimate:DB$ Animate | Defined$ Remembered | staticAbilities$ SpendAnyMana | Duration$ Perpetual | SubAbility$ DBCleanup | StackDescription$ SpellDescription | SpellDescription$ It perpetually gains "You may spend mana as though it were mana of any color to cast this spell."
|
||||||
SVar:PerpetualAbility:Mode$ Continuous | AddStaticAbility$ SpendAnyMana | Affected$ Card.IsRemembered | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ The conjured card perpetually gains "You may spend mana as though it were mana of any color to cast this spell."
|
|
||||||
SVar:SpendAnyMana:Mode$ ManaConvert | EffectZone$ Stack | ValidPlayer$ You | ValidCard$ Card.Self | ValidSA$ Spell | ManaConversion$ AnyType->AnyColor | Description$ You may spend mana as though it were mana of any color to cast this spell.
|
SVar:SpendAnyMana:Mode$ ManaConvert | EffectZone$ Stack | ValidPlayer$ You | ValidCard$ Card.Self | ValidSA$ Spell | ManaConversion$ AnyType->AnyColor | Description$ You may spend mana as though it were mana of any color to cast this spell.
|
||||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | SubAbility$ DBExileTop
|
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | SubAbility$ DBExileTop
|
||||||
SVar:DBExileTop:DB$ Dig | Defined$ TargetedPlayer | DigNum$ 1 | ChangeNum$ All | DestinationZone$ Exile | ExileFaceDown$ True | StackDescription$ REP they exile_{p:Targeted} exiles | SpellDescription$ Then they exile the top card of their library face down.
|
SVar:DBExileTop:DB$ Dig | Defined$ TargetedPlayer | DigNum$ 1 | ChangeNum$ All | DestinationZone$ Exile | ExileFaceDown$ True | StackDescription$ REP they exile_{p:Targeted} exiles | SpellDescription$ Then they exile the top card of their library face down.
|
||||||
SVar:Update:Mode$ ChangesZone | Origin$ Any | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered | Execute$ DBUpdate
|
|
||||||
SVar:DBUpdate:DB$ UpdateRemember
|
|
||||||
Oracle:{2}, {T}: Choose target opponent. Conjure a duplicate of the top card of their library into your hand. It perpetually gains "You may spend mana as though it were mana of any color to cast this spell." Then they exile the top card of their library face down.
|
Oracle:{2}, {T}: Choose target opponent. Conjure a duplicate of the top card of their library into your hand. It perpetually gains "You may spend mana as though it were mana of any color to cast this spell." Then they exile the top card of their library face down.
|
||||||
|
|||||||
@@ -6,9 +6,8 @@ K:Flying
|
|||||||
K:Lifelink
|
K:Lifelink
|
||||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChoose | TriggerDescription$ Whenever CARDNAME enters the battlefield or you cast a party spell, choose a party creature card in your hand. It perpetually gets +1/+1. (A party card or spell is a Cleric, Rogue, Warrior, or Wizard.)
|
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChoose | TriggerDescription$ Whenever CARDNAME enters the battlefield or you cast a party spell, choose a party creature card in your hand. It perpetually gets +1/+1. (A party card or spell is a Cleric, Rogue, Warrior, or Wizard.)
|
||||||
T:Mode$ SpellCast | ValidCard$ Card.Party | ValidActivatingPlayer$ You | Execute$ TrigChoose | TriggerZones$ Battlefield | Secondary$ True | TriggerDescription$ Whenever CARDNAME enters the battlefield or you cast a party spell, choose a party creature card in your hand. It perpetually gets +1/+1. (A party card or spell is a Cleric, Rogue, Warrior, or Wizard.)
|
T:Mode$ SpellCast | ValidCard$ Card.Party | ValidActivatingPlayer$ You | Execute$ TrigChoose | TriggerZones$ Battlefield | Secondary$ True | TriggerDescription$ Whenever CARDNAME enters the battlefield or you cast a party spell, choose a party creature card in your hand. It perpetually gets +1/+1. (A party card or spell is a Cleric, Rogue, Warrior, or Wizard.)
|
||||||
SVar:TrigChoose:DB$ ChooseCard | ChoiceZone$ Hand | Choices$ Creature.Party+YouOwn | ChoiceTitle$ Choose a party creature card in your hand | Amount$ 1 | SubAbility$ DBEffect
|
SVar:TrigChoose:DB$ ChooseCard | ChoiceZone$ Hand | Choices$ Creature.Party+YouOwn | ChoiceTitle$ Choose a party creature card in your hand | Amount$ 1 | SubAbility$ DBPump
|
||||||
SVar:DBEffect:DB$ Effect | StaticAbilities$ PerpetualP1P1 | Name$ Angel of Unity's Perpetual Effect | Duration$ Permanent | SubAbility$ DBCleanup
|
SVar:DBPump:DB$ Pump | Defined$ ChosenCard | PumpZone$ Hand | NumAtt$ 1 | NumDef$ 1 | Duration$ Perpetual | SubAbility$ DBCleanup
|
||||||
SVar:PerpetualP1P1:Mode$ Continuous | Affected$ Card.ChosenCard | AddPower$ 1 | AddToughness$ 1 | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ The chosen card perpetually gets +1/+1.
|
|
||||||
SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True
|
SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True
|
||||||
DeckHas:Ability$Party|LifeGain
|
DeckHas:Ability$Party|LifeGain
|
||||||
SVar:BuffedBy:Cleric,Rogue,Warrior,Wizard
|
SVar:BuffedBy:Cleric,Rogue,Warrior,Wizard
|
||||||
|
|||||||
@@ -3,14 +3,11 @@ ManaCost:1 G
|
|||||||
Types:Creature Human Rogue
|
Types:Creature Human Rogue
|
||||||
PT:2/2
|
PT:2/2
|
||||||
S:Mode$ CantBlockBy | ValidAttacker$ Creature.Self | ValidBlocker$ Creature.powerLE2 | Description$ CARDNAME can't be blocked by creatures with power 2 or less.
|
S:Mode$ CantBlockBy | ValidAttacker$ Creature.Self | ValidBlocker$ Creature.powerLE2 | Description$ CARDNAME can't be blocked by creatures with power 2 or less.
|
||||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigEffect | TriggerDescription$ When CARDNAME enters the battlefield, creatures you control perpetually gain "When this creature dies, you may shuffle it into its owner's library if it's in your graveyard. If you do, investigate."
|
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigAnimateAll | TriggerDescription$ When CARDNAME enters the battlefield, creatures you control perpetually gain "When this creature dies, you may shuffle it into its owner's library if it's in your graveyard. If you do, investigate."
|
||||||
SVar:TrigEffect:DB$ Effect | RememberObjects$ Valid Creature.YouCtrl | StaticAbilities$ PerpetualAbility | Duration$ Permanent | Triggers$ Update | Name$ Antique Collector's Perpetual Effect
|
SVar:TrigAnimateAll:DB$ AnimateAll | Duration$ Perpetual | ValidCards$ Creature.YouCtrl | Triggers$ DiesTrigger
|
||||||
SVar:PerpetualAbility:Mode$ Continuous | Affected$ Card.IsRemembered | AddTrigger$ DiesTrigger | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ Creatures you control perpetually gain "When this creature dies, you may shuffle it into its owner's library if it's in your graveyard. If you do, investigate."
|
|
||||||
SVar:DiesTrigger:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigShuffle | OptionalDecider$ You | TriggerDescription$ When this creature dies, you may shuffle it into its owner's library if it's in your graveyard. If you do, investigate.
|
SVar:DiesTrigger:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigShuffle | OptionalDecider$ You | TriggerDescription$ When this creature dies, you may shuffle it into its owner's library if it's in your graveyard. If you do, investigate.
|
||||||
SVar:TrigShuffle:DB$ ChangeZone | Origin$ Graveyard | Destination$ Library | Shuffle$ True | Defined$ TriggeredNewCardLKICopy | RememberChanged$ True | SubAbility$ DBInvestigate
|
SVar:TrigShuffle:DB$ ChangeZone | Origin$ Graveyard | Destination$ Library | Shuffle$ True | Defined$ TriggeredNewCardLKICopy | RememberChanged$ True | SubAbility$ DBInvestigate
|
||||||
SVar:DBInvestigate:DB$ Investigate | ConditionDefined$ Remembered | ConditionPresent$ Card | ConditionCompare$ GE1 | SubAbility$ DBCleanup
|
SVar:DBInvestigate:DB$ Investigate | ConditionDefined$ Remembered | ConditionPresent$ Card | SubAbility$ DBCleanup
|
||||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||||
SVar:Update:Mode$ ChangesZone | Origin$ Any | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered | Execute$ DBUpdate
|
DeckHas:Ability$Investigate|Token|Graveyard & Type$Artifact|Clue
|
||||||
SVar:DBUpdate:DB$ UpdateRemember
|
|
||||||
DeckHas:Ability$Investigate|Token
|
|
||||||
Oracle:Antique Collector can't be blocked by creatures with power 2 or less.\nWhen Antique Collector enters the battlefield, creatures you control perpetually gain "When this creature dies, you may shuffle it into its owner's library if it's in your graveyard. If you do, investigate."
|
Oracle:Antique Collector can't be blocked by creatures with power 2 or less.\nWhen Antique Collector enters the battlefield, creatures you control perpetually gain "When this creature dies, you may shuffle it into its owner's library if it's in your graveyard. If you do, investigate."
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
Name:Argivian Welcome
|
Name:Argivian Welcome
|
||||||
ManaCost:W U
|
ManaCost:W U
|
||||||
Types:Instant
|
Types:Instant
|
||||||
A:SP$ Destroy | ValidTgts$ Creature.powerGE4 | TargetMin$ 0 | TargetMax$ 1 | TgtPrompt$ Select up to one target creature with power 4 or greater | SubAbility$ DBChoose | StackDescription$ SpellDescription | SpellDescription$ Destroy up to one target creature with power 4 or greater. Choose a nonland card in your hand. It perpetually gains flash.
|
A:SP$ Destroy | ValidTgts$ Creature.powerGE4 | TargetMin$ 0 | TargetMax$ 1 | TgtPrompt$ Select up to one target creature with power 4 or greater | SubAbility$ DBChoose | SpellDescription$ Destroy up to one target creature with power 4 or greater.
|
||||||
SVar:DBChoose:DB$ ChooseCard | Mandatory$ True | ChoiceZone$ Hand | Choices$ Card.nonLand+YouOwn | ChoiceTitle$ Choose a nonland card in your hand | Amount$ 1 | SubAbility$ DBEffect
|
SVar:DBChoose:DB$ ChooseCard | Mandatory$ True | ChoiceZone$ Hand | Choices$ Card.nonLand+YouOwn | ChoiceDesc$ nonland | ChoiceTitle$ Choose a nonland card in your hand | Amount$ 1 | SubAbility$ DBPump | SpellDescription$ ,,,,,,Choose a nonland card in your hand.
|
||||||
SVar:DBEffect:DB$ Effect | StaticAbilities$ PerpetualFlash | Name$ Argivian Welcome's Perpetual Effect | Duration$ Permanent
|
SVar:DBPump:DB$ Pump | Defined$ ChosenCard | KW$ Flash | Duration$ Perpetual | PumpZone$ Hand | StackDescription$ SpellDescription | SpellDescription$ It perpetually gains flash.
|
||||||
SVar:PerpetualFlash:Mode$ Continuous | Affected$ Card.ChosenCard | AddKeyword$ Flash | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ The chosen card perpetually gains flash.
|
|
||||||
Oracle:Destroy up to one target creature with power 4 or greater.\nChoose a nonland card in your hand. It perpetually gains flash.
|
Oracle:Destroy up to one target creature with power 4 or greater.\nChoose a nonland card in your hand. It perpetually gains flash.
|
||||||
|
|||||||
@@ -2,5 +2,5 @@ Name:Argothian Elder
|
|||||||
ManaCost:3 G
|
ManaCost:3 G
|
||||||
Types:Creature Elf Druid
|
Types:Creature Elf Druid
|
||||||
PT:2/2
|
PT:2/2
|
||||||
A:AB$ Untap | Cost$ T | TargetMin$ 2 | TargetMax$ 2 | ValidTgts$ Land | TgtPrompt$ Select target land | SpellDescription$ Untap two target lands.
|
A:AB$ Untap | Cost$ T | TargetMin$ 2 | TargetMax$ 2 | ValidTgts$ Land | SpellDescription$ Untap two target lands.
|
||||||
Oracle:{T}: Untap two target lands.
|
Oracle:{T}: Untap two target lands.
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
Name:Arming Gala
|
Name:Arming Gala
|
||||||
ManaCost:3 G W
|
ManaCost:3 G W
|
||||||
Types:Enchantment
|
Types:Enchantment
|
||||||
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ DBEffect | TriggerDescription$ At the beginning of your end step, creatures you control and creature cards in your hand, library, and graveyard perpetually get +1/+1.
|
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPerpetualP1P1 | TriggerDescription$ At the beginning of your end step, creatures you control and creature cards in your hand, library, and graveyard perpetually get +1/+1.
|
||||||
SVar:DBEffect:DB$ Effect | RememberObjects$ Valid Creature.YouCtrl,ValidHand Creature.YouOwn,ValidGraveyard Creature.YouOwn,ValidLibrary Creature.YouOwn | StaticAbilities$ PerpetualP1P1 | Name$ Arming Gala's Perpetual Effect | Duration$ Permanent
|
SVar:TrigPerpetualP1P1:DB$ PumpAll | ValidCards$ Creature.YouCtrl | PumpZone$ Battlefield,Hand,Library,Graveyard | NumAtt$ 1 | NumDef$ 1 | Duration$ Perpetual
|
||||||
SVar:PerpetualP1P1:Mode$ Continuous | Affected$ Card.IsRemembered | AddPower$ 1 | AddToughness$ 1 | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ At the beginning of your end step, creatures you control and creature cards in your hand, library, and graveyard perpetually get +1/+1.
|
Oracle:At the beginning of your end step, creatures you control and creature cards in your hand, library, and graveyard perpetually get +1/+1.
|
||||||
SVar:Update:Mode$ ChangesZone | Origin$ Any | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered | Execute$ DBUpdate
|
|
||||||
SVar:DBUpdate:DB$ UpdateRemember
|
|
||||||
Oracle:At the beginning of your end step, creatures you control and creature cards in your hand, library, and graveyard perpetually get +1/+1.
|
|
||||||
|
|||||||
@@ -4,12 +4,9 @@ Types:Legendary Creature Vampire Knight
|
|||||||
PT:1/1
|
PT:1/1
|
||||||
K:Deathtouch
|
K:Deathtouch
|
||||||
K:Lifelink
|
K:Lifelink
|
||||||
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield,Graveyard | CheckSVar$ X | Execute$ DBStore | TriggerDescription$ At the beginning of your end step, if a creature died this turn, CARDNAME perpetually gets +X/+X where X is the number of creatures that died this turn. This ability also triggers if NICKNAME is in your graveyard.
|
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield,Graveyard | CheckSVar$ X | Execute$ TrigPump | TriggerDescription$ At the beginning of your end step, if a creature died this turn, CARDNAME perpetually gets +X/+X where X is the number of creatures that died this turn. This ability also triggers if NICKNAME is in your graveyard.
|
||||||
SVar:DBStore:DB$ StoreSVar | SVar$ Num | Type$ CountSVar | Expression$ X | SubAbility$ DBEffect
|
SVar:TrigPump:DB$ Pump | Defined$ Self | PumpZone$ Battlefield,Graveyard | NumAtt$ X | NumDef$ X | Duration$ Perpetual
|
||||||
SVar:DBEffect:DB$ Effect | StaticAbilities$ PerpetualPXPX | Name$ Arvad, Weatherlight Smuggler's Perpetual Effect | Duration$ Permanent
|
|
||||||
SVar:PerpetualPXPX:Mode$ Continuous | Affected$ Card.EffectSource | AddPower$ Num | AddToughness$ Num | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ CARDNAME perpetually gets +X/+X, where X is the number of creatures that died this turn.
|
|
||||||
SVar:X:Count$ThisTurnEntered_Graveyard_from_Battlefield_Creature
|
SVar:X:Count$ThisTurnEntered_Graveyard_from_Battlefield_Creature
|
||||||
SVar:Num:Number$0
|
|
||||||
DeckHas:Ability$Graveyard|LifeGain
|
DeckHas:Ability$Graveyard|LifeGain
|
||||||
DeckHints:Ability$Sacrifice
|
DeckHints:Ability$Sacrifice|Graveyard
|
||||||
Oracle:Deathtouch, lifelink\nAt the beginning of your end step, if a creature died this turn, Arvad, Weatherlight Smuggler perpetually gets +X/+X, where X is the number of creature that died this turn. This ability also triggers if Arvad is in your graveyard.
|
Oracle:Deathtouch, lifelink\nAt the beginning of your end step, if a creature died this turn, Arvad, Weatherlight Smuggler perpetually gets +X/+X where X is the number of creatures that died this turn. This ability also triggers if Arvad is in your graveyard.
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
Name:Baffling Defenses
|
Name:Baffling Defenses
|
||||||
ManaCost:1 W
|
ManaCost:1 W
|
||||||
Types:Instant
|
Types:Instant
|
||||||
A:SP$ Effect | StaticAbilities$ Perpetual0P | RememberObjects$ Targeted | ValidTgts$ Creature | TgtPrompt$ Select target creature | IsCurse$ True | Name$ Baffling Defenses's Perpetual Effect | Duration$ Permanent | SpellDescription$ Target creature's base power perpetually becomes 0.
|
A:SP$ Animate | ValidTgts$ Creature | IsCurse$ True | Power$ 0 | Duration$ Perpetual | StackDescription$ REP Target creature_{c:Targeted} | SpellDescription$ Target creature's base power perpetually becomes 0.
|
||||||
SVar:Perpetual0P:Mode$ Continuous | Affected$ Card.IsRemembered | SetPower$ 0 | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature's base power perpetually becomes 0.
|
|
||||||
Oracle:Target creature's base power perpetually becomes 0.
|
Oracle:Target creature's base power perpetually becomes 0.
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
Name:Begin Anew
|
Name:Begin Anew
|
||||||
ManaCost:G G W W
|
ManaCost:G G W W
|
||||||
Types:Sorcery
|
Types:Sorcery
|
||||||
A:SP$ DestroyAll | ValidCards$ Creature | SubAbility$ DBEffect | SpellDescription$ Destroy all creatures.
|
A:SP$ DestroyAll | ValidCards$ Creature | SubAbility$ DBPumpAll | SpellDescription$ Destroy all creatures.
|
||||||
SVar:DBEffect:DB$ Effect | RememberObjects$ ValidHand Creature.YouOwn | StaticAbilities$ PerpetualP1P1 | Duration$ Permanent | Triggers$ Update | Name$ Begin Anew's Perpetual Effect | SpellDescription$ Creature cards in your hand perpetually get +1/+1.
|
SVar:DBPumpAll:DB$ PumpAll | ValidCards$ Creature | PumpZone$ Hand | Duration$ Perpetual | NumAtt$ 1 | NumDef$ 1 | StackDescription$ REP your_{p:You}'s | SpellDescription$ Creature cards in your hand perpetually get +1/+1.
|
||||||
SVar:PerpetualP1P1:Mode$ Continuous | Affected$ Card.IsRemembered | AddPower$ 1 | AddToughness$ 1 | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ Creature cards in your hand perpetually get +1/+1.
|
|
||||||
SVar:Update:Mode$ ChangesZone | Origin$ Any | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered | Execute$ DBUpdate
|
|
||||||
SVar:DBUpdate:DB$ UpdateRemember
|
|
||||||
Oracle:Destroy all creatures. Creature cards in your hand perpetually get +1/+1.
|
Oracle:Destroy all creatures. Creature cards in your hand perpetually get +1/+1.
|
||||||
|
|||||||
@@ -4,10 +4,11 @@ Types:Creature Human Soldier
|
|||||||
PT:1/2
|
PT:1/2
|
||||||
K:Lifelink
|
K:Lifelink
|
||||||
T:Mode$ Cycled | ValidCard$ Card.Other | ValidPlayer$ You | TriggerZones$ Graveyard | Execute$ TrigReturn | TriggerDescription$ Whenever you cycle another card, you may pay {1}{W}. If you do, return CARDNAME from your graveyard to the battlefield tapped and it perpetually gets +1/+0.
|
T:Mode$ Cycled | ValidCard$ Card.Other | ValidPlayer$ You | TriggerZones$ Graveyard | Execute$ TrigReturn | TriggerDescription$ Whenever you cycle another card, you may pay {1}{W}. If you do, return CARDNAME from your graveyard to the battlefield tapped and it perpetually gets +1/+0.
|
||||||
SVar:TrigReturn:AB$ ChangeZone | Cost$ 1 W | Defined$ Self | Origin$ Graveyard | Destination$ Battlefield | Tapped$ True | SubAbility$ DBEffect
|
SVar:TrigReturn:AB$ ChangeZone | Cost$ 1 W | Origin$ Graveyard | Destination$ Battlefield | Tapped$ True | RememberChanged$ True | SubAbility$ DBPump
|
||||||
SVar:DBEffect:DB$ Effect | StaticAbilities$ PerpetualPump | RememberObjects$ Self | Name$ Benalish Partisan's Perpetual Effect | Duration$ Permanent
|
SVar:DBPump:DB$ Pump | Defined$ Remembered | NumAtt$ 1 | Duration$ Perpetual | SubAbility$ DBCleanup
|
||||||
SVar:PerpetualPump:Mode$ Continuous | Affected$ Card.IsRemembered | AddPower$ 1 | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ EFFECTSOURCE perpetually gets +1/+0.
|
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||||
K:Cycling:1 W
|
K:Cycling:1 W
|
||||||
DeckHas:Ability$LifeGain|Graveyard
|
DeckHas:Ability$LifeGain|Graveyard
|
||||||
|
DeckNeeds:Keyword$Cycling
|
||||||
SVar:SacMe:2
|
SVar:SacMe:2
|
||||||
Oracle:Lifelink\nWhenever you cycle another card, you may pay {1}{W}. If you do, return Benalish Partisan from your graveyard to the battlefield tapped and it perpetually gets +1/+0.\nCycling {1}{W}
|
Oracle:Lifelink\nWhenever you cycle another card, you may pay {1}{W}. If you do, return Benalish Partisan from your graveyard to the battlefield tapped and it perpetually gets +1/+0.\nCycling {1}{W}
|
||||||
|
|||||||
@@ -1,11 +1,8 @@
|
|||||||
Name:Better Offer
|
Name:Better Offer
|
||||||
ManaCost:X U
|
ManaCost:X U
|
||||||
Types:Sorcery
|
Types:Sorcery
|
||||||
A:SP$ ChangeZone | Origin$ Library | Destination$ Battlefield | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | ChangeType$ Creature.cmcLEX+TargetedPlayerOwn | ChangeNum$ 1 | Hidden$ True | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | GainControl$ True | RememberChanged$ True | SubAbility$ DBStore | StackDescription$ {p:You} puts a random creature card with mana value X or less from {p:Targeted}'s library onto the battlefield under their control. | SpellDescription$ Put a random creature card with mana value X or less from target opponent's library onto the battlefield under your control.
|
A:SP$ ChangeZone | Origin$ Library | Destination$ Battlefield | ValidTgts$ Opponent | ChangeType$ Creature.cmcLEX+TargetedPlayerOwn | ChangeNum$ 1 | Hidden$ True | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | GainControl$ True | RememberChanged$ True | SubAbility$ DBAnimate | StackDescription$ {p:You} puts a random creature card with mana value X or less from {p:Targeted}'s library onto the battlefield under their control. | SpellDescription$ Put a random creature card with mana value X or less from target opponent's library onto the battlefield under your control.
|
||||||
SVar:DBStore:DB$ StoreSVar | SVar$ Num | Type$ CountSVar | Expression$ X | SubAbility$ DBEffect
|
SVar:DBAnimate:DB$ Animate | Defined$ Remembered | Power$ X | Toughness$ X | Keywords$ Ward:1 | Duration$ Perpetual | SubAbility$ DBCleanup | StackDescription$ SpellDescription | SpellDescription$ It perpetually has base power and toughness X/X and gains ward {1}.
|
||||||
SVar:DBEffect:DB$ Effect | RememberObjects$ Remembered | StaticAbilities$ Perpetual | Name$ Better Offer's Perpetual Effect | Duration$ Permanent | SubAbility$ DBCleanup | SpellDescription$ It perpetually has base power and toughness X/X and perpetually gains ward {1}.
|
|
||||||
SVar:Perpetual:Mode$ Continuous | Affected$ Card.IsRemembered | SetPower$ Num | SetToughness$ Num | AddKeyword$ Ward:1 | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ The card perpetually has base power and toughness X/X and perpetually gains ward {1}.
|
|
||||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||||
SVar:X:Count$xPaid
|
SVar:X:Count$xPaid
|
||||||
SVar:Num:Number$0
|
Oracle:Put a random creature card with mana value X or less from target opponent's library onto the battlefield under your control. It perpetually has base power and toughness X/X and gains ward {1}.
|
||||||
Oracle:Put a random creature card with mana value X or less from target opponent's library onto the battlefield under your control. It perpetually has base power and toughness X/X and perpetually gains ward {1}.
|
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
Name:Bind to Secrecy
|
Name:Bind to Secrecy
|
||||||
ManaCost:U B
|
ManaCost:U B
|
||||||
Types:Instant
|
Types:Instant
|
||||||
A:SP$ Charm | Choices$ CounterNonCreature,DBConjure | CharmNum$ 1
|
A:SP$ Charm | Choices$ CounterNonCreature,DBConjure | CharmNum$ 1 | SubAbility$ DBDraft
|
||||||
SVar:CounterNonCreature:DB$ Counter | TargetType$ Spell | TgtPrompt$ Select target noncreature spell | ValidTgts$ Card.nonCreature | SubAbility$ TrigDraft | SpellDescription$ Counter target noncreature spell.
|
SVar:CounterNonCreature:DB$ Counter | TargetType$ Spell | TgtPrompt$ Select target noncreature spell | ValidTgts$ Card.nonCreature | SubAbility$ DBDraft | SpellDescription$ Counter target noncreature spell.
|
||||||
SVar:DBConjure:DB$ MakeCard | Conjure$ True | TgtPrompt$ Select target creature card in an opponent's graveyard | ValidTgts$ Creature.OppOwn+inZoneGraveyard | TgtZone$ Graveyard | DefinedName$ Targeted | Zone$ Hand | RememberMade$ True | SubAbility$ DBEffect | SpellDescription$ Conjure a duplicate of target creature card in an opponent's graveyard into your hand. It perpetually gains "You may spend mana as though it were mana of any color to cast this spell."
|
SVar:DBConjure:DB$ MakeCard | Conjure$ True | TgtPrompt$ Select target creature card in an opponent's graveyard | ValidTgts$ Creature.OppOwn+inZoneGraveyard | TgtZone$ Graveyard | DefinedName$ Targeted | Zone$ Hand | RememberMade$ True | SubAbility$ DBAnimate | SpellDescription$ Conjure a duplicate of target creature card in an opponent's graveyard into your hand.
|
||||||
SVar:DBEffect:DB$ Effect | RememberObjects$ Remembered | StaticAbilities$ PerpetualAbility | Duration$ Permanent | Triggers$ Update | Name$ Bind to Secrecy's Perpetual Effect | SubAbility$ DBCleanup | SpellDescription$ It perpetually gains "You may spend mana as though it were mana of any color to cast this spell."
|
SVar:DBAnimate:DB$ Animate | Defined$ Remembered | staticAbilities$ SpendAnyMana | Duration$ Perpetual | SubAbility$ DBCleanup | StackDescription$ SpellDescription | SpellDescription$ It perpetually gains "You may spend mana as though it were mana of any color to cast this spell."
|
||||||
SVar:PerpetualAbility:Mode$ Continuous | AddStaticAbility$ SpendAnyMana | Affected$ Card.IsRemembered | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ The conjured card perpetually gains "You may spend mana as though it were mana of any color to cast this spell."
|
|
||||||
SVar:SpendAnyMana:Mode$ ManaConvert | EffectZone$ Stack | ValidPlayer$ You | ValidCard$ Card.Self | ValidSA$ Spell | ManaConversion$ AnyType->AnyColor | Description$ You may spend mana as though it were mana of any color to cast this spell.
|
SVar:SpendAnyMana:Mode$ ManaConvert | EffectZone$ Stack | ValidPlayer$ You | ValidCard$ Card.Self | ValidSA$ Spell | ManaConversion$ AnyType->AnyColor | Description$ You may spend mana as though it were mana of any color to cast this spell.
|
||||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | SubAbility$ TrigDraft
|
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | SubAbility$ DBDraft
|
||||||
SVar:Update:Mode$ ChangesZone | Origin$ Any | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered | Execute$ DBUpdate
|
SVar:DBDraft:DB$ Draft | ConditionCheckSVar$ Count$ValidGraveyard Card.YouOwn$DifferentCMC | ConditionSVarCompare$ GE5 | Spellbook$ Corpse Churn,Corpse Hauler,Courier Bat,Durable Coilbug,Fear of Death,Gorging Vulture,Locked in the Cemetery,Naga Oracle,Necrotic Wound,Obsessive Stitcher,Reassembling Skeleton,Strategic Planning,Unmarked Grave,Wonder | StackDescription$ SpellDescription | SpellDescription$ If there are five or more mana values among cards in your graveyard, draft a card from CARDNAME's spellbook.
|
||||||
SVar:DBUpdate:DB$ UpdateRemember
|
DeckHints:Ability$Discard
|
||||||
SVar:TrigDraft:DB$ Draft | ConditionCheckSVar$ X | ConditionSVarCompare$ GE5 | Spellbook$ Corpse Churn,Corpse Hauler,Courier Bat,Durable Coilbug,Fear of Death,Gorging Vulture,Locked in the Cemetery,Naga Oracle,Necrotic Wound,Obsessive Stitcher,Reassembling Skeleton,Strategic Planning,Unmarked Grave,Wonder | SpellDescription$ If there are five or more mana values among cards in your graveyard, draft a card from CARDNAME's spellbook.
|
|
||||||
SVar:X:Count$ValidGraveyard Card.YouOwn$DifferentCMC
|
|
||||||
Oracle:Choose one —\n• Counter target noncreature spell.\n• Conjure a duplicate of target creature card in an opponent's graveyard into your hand. It perpetually gains "You may spend mana as though it were mana of any color to cast this spell."\nIf there are five or more mana values among cards in your graveyard, draft a card from Bind to Secrecy's spellbook.
|
Oracle:Choose one —\n• Counter target noncreature spell.\n• Conjure a duplicate of target creature card in an opponent's graveyard into your hand. It perpetually gains "You may spend mana as though it were mana of any color to cast this spell."\nIf there are five or more mana values among cards in your graveyard, draft a card from Bind to Secrecy's spellbook.
|
||||||
|
|||||||
@@ -2,9 +2,8 @@ Name:Bloodsprout Talisman
|
|||||||
ManaCost:B G
|
ManaCost:B G
|
||||||
Types:Artifact
|
Types:Artifact
|
||||||
K:CARDNAME enters the battlefield tapped.
|
K:CARDNAME enters the battlefield tapped.
|
||||||
A:AB$ ChooseCard | Cost$ T PayLife<1> | ChoiceZone$ Hand | Choices$ Card.nonLand+YouOwn | ChoiceTitle$ Choose a nonland card in your hand | Amount$ 1 | SubAbility$ DBEffect | SpellDescription$ Choose a nonland card in your hand. It perpetually gains "This spell costs {1} less to cast."
|
A:AB$ ChooseCard | Cost$ T PayLife<1> | Mandatory$ True | ChoiceZone$ Hand | Choices$ Card.nonLand+YouOwn | ChoiceDesc$ nonland | ChoiceTitle$ Choose a nonland card in your hand | SubAbility$ DBAnimate | SpellDescription$ Choose a nonland card in your hand.
|
||||||
SVar:DBEffect:DB$ Effect | StaticAbilities$ PerpetualAbility | Name$ Bloodsprout Talisman's Perpetual Effect | Duration$ Permanent | SubAbility$ DBCleanup
|
SVar:DBAnimate:DB$ Animate | Duration$ Perpetual | Defined$ ChosenCard | staticAbilities$ ReduceCost | StackDescription$ SpellDescription | SpellDescription$ It perpetually gains "This spell costs {1} less to cast."
|
||||||
SVar:PerpetualAbility:Mode$ Continuous | Affected$ Card.ChosenCard | AddStaticAbility$ PerpetualReduce | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ The chosen card perpetually gains "This spell costs {1} less to cast."
|
SVar:ReduceCost:Mode$ ReduceCost | ValidCard$ Card.Self | Type$ Spell | Amount$ 1 | EffectZone$ All | SubAbility$ DBCleanup | Description$ This spell costs {1} less to cast.
|
||||||
SVar:PerpetualReduce:Mode$ ReduceCost | ValidCard$ Card.Self | Type$ Spell | Amount$ 1 | EffectZone$ All | Description$ This spell costs {1} less to cast.
|
|
||||||
SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True
|
SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True
|
||||||
Oracle:Bloodsprout Talisman enters the battlefield tapped.\n{T), pay 1 life: Choose a nonland card in your hand. It perpetually gains "This spell costs {1} less to cast."
|
Oracle:Bloodsprout Talisman enters the battlefield tapped.\n{T), pay 1 life: Choose a nonland card in your hand. It perpetually gains "This spell costs {1} less to cast."
|
||||||
|
|||||||
@@ -4,8 +4,9 @@ Types:Creature Orc Knight
|
|||||||
PT:3/1
|
PT:3/1
|
||||||
T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | Execute$ TrigReveal | TriggerDescription$ When CARDNAME enters the battlefield, target opponent reveals all creature and land cards in their hand. Choose one of them. That card perpetually gains "This permanent enters the battlefield tapped."
|
T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | Execute$ TrigReveal | TriggerDescription$ When CARDNAME enters the battlefield, target opponent reveals all creature and land cards in their hand. Choose one of them. That card perpetually gains "This permanent enters the battlefield tapped."
|
||||||
SVar:TrigReveal:DB$ Reveal | ValidTgts$ Opponent | RevealAllValid$ Creature.TargetedPlayerOwn,Land.TargetedPlayerOwn | SubAbility$ DBChooseCard | RememberRevealed$ True
|
SVar:TrigReveal:DB$ Reveal | ValidTgts$ Opponent | RevealAllValid$ Creature.TargetedPlayerOwn,Land.TargetedPlayerOwn | SubAbility$ DBChooseCard | RememberRevealed$ True
|
||||||
SVar:DBChooseCard:DB$ ChooseCard | ChoiceZone$ Hand | Choices$ Card.IsRemembered | SubAbility$ DBEffect
|
SVar:DBChooseCard:DB$ ChooseCard | ChoiceZone$ Hand | Choices$ Card.IsRemembered | SubAbility$ DBAnimate
|
||||||
SVar:DBEffect:DB$ Effect | StaticAbilities$ PerpetualAbility | Name$ Boareskyr Tollkeeper's Perpetual Effect | Duration$ Permanent | SubAbility$ DBCleanup
|
SVar:DBAnimate:DB$ Animate | Duration$ Perpetual | Defined$ ChosenCard | Replacements$ ReplaceETB | SubAbility$ DBCleanup
|
||||||
SVar:PerpetualAbility:Mode$ Continuous | Affected$ Card.ChosenCard | EffectZone$ Command | AddKeyword$ CARDNAME enters the battlefield tapped. | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ The chosen card perpetually gains "This permanent enters the battlefield tapped."
|
SVar:ReplaceETB:Event$ Moved | ValidCard$ Card.Self | Destination$ Battlefield | ReplaceWith$ ETBTapped | ReplacementResult$ Updated | Description$ This permanent enters the battlefield tapped.
|
||||||
|
SVar:ETBTapped:DB$ Tap | ETB$ True | Defined$ ReplacedCard
|
||||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearChosenCard$ True
|
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearChosenCard$ True
|
||||||
Oracle:When Boareskyr Tollkeeper enters the battlefield, target opponent reveals all creature and land cards in their hand. Choose one of them. That card perpetually gains "This permanent enters the battlefield tapped."
|
Oracle:When Boareskyr Tollkeeper enters the battlefield, target opponent reveals all creature and land cards in their hand. Choose one of them. That card perpetually gains "This permanent enters the battlefield tapped."
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
Name:Brittle Blast
|
Name:Brittle Blast
|
||||||
ManaCost:2 R
|
ManaCost:2 R
|
||||||
Types:Instant
|
Types:Instant
|
||||||
A:SP$ Effect | RememberObjects$ Valid Creature.OppCtrl,Valid Planeswalker.OppCtrl | StaticAbilities$ MakeBrittle | Duration$ Permanent | Name$ Brittle Blast's Perpetual Effect | SubAbility$ DBDamage | SpellDescription$ Creatures and planeswalkers your opponents control perpetually gain "If this permanent would die, exile it instead."
|
A:SP$ AnimateAll | ValidCards$ Creature.OppCtrl,Planeswalker.OppCtrl | Duration$ Perpetual | Replacements$ BrittleExile | SubAbility$ DBDamage | StackDescription$ REP your_{p:You}'s | SpellDescription$ Creatures and planeswalkers your opponents control perpetually gain "If this permanent would die, exile it instead."
|
||||||
SVar:MakeBrittle:Mode$ Continuous | Affected$ Card.IsRemembered | AddReplacementEffects$ BrittleExile | AddSVar$ BrittleRep | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ Creatures and planeswalkers your opponents control perpetually gain "If this permanent would die, exile it instead."
|
|
||||||
SVar:BrittleExile:Event$ Moved | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | ReplaceWith$ BrittleRep | Description$ If this permanent would die, exile it instead.
|
SVar:BrittleExile:Event$ Moved | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | ReplaceWith$ BrittleRep | Description$ If this permanent would die, exile it instead.
|
||||||
SVar:BrittleRep:DB$ ChangeZone | Hidden$ True | Origin$ All | Destination$ Exile | Defined$ ReplacedCard
|
SVar:BrittleRep:DB$ ChangeZone | Hidden$ True | Origin$ All | Destination$ Exile | Defined$ ReplacedCard
|
||||||
SVar:DBDamage:DB$ DealDamage | ValidTgts$ Creature,Planeswalker | TgtPrompt$ Select target creature or planeswalker | NumDmg$ 5 | SpellDescription$ CARDNAME deals 5 damage to target creature or planeswalker.
|
SVar:DBDamage:DB$ DealDamage | ValidTgts$ Creature,Planeswalker | TgtPrompt$ Select target creature or planeswalker | NumDmg$ 5 | SpellDescription$ CARDNAME deals 5 damage to target creature or planeswalker.
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
Name:Brokers' Safeguard
|
Name:Brokers' Safeguard
|
||||||
ManaCost:W U
|
ManaCost:W U
|
||||||
Types:Instant
|
Types:Instant
|
||||||
A:SP$ ChangeZone | ValidTgts$ Creature.nonArtifact+YouCtrl | TgtPrompt$ Select target nonartifact creature you control | Origin$ Battlefield | Destination$ Exile | RememberTargets$ True | SubAbility$ DBEffect | SpellDescription$ Exile target target nonartifact creature you control.
|
A:SP$ ChangeZone | ValidTgts$ Creature.nonArtifact+YouCtrl | TgtPrompt$ Select target nonartifact creature you control | Origin$ Battlefield | Destination$ Exile | RememberTargets$ True | SubAbility$ DBAnimate | SpellDescription$ Exile target target nonartifact creature you control.
|
||||||
SVar:DBEffect:DB$ Effect | Name$ Brokers' Safeguard's Perpetual Effect | RememberObjects$ RememberedLKI | StaticAbilities$ PerpetualStatic | Duration$ Permanent | SubAbility$ DBReturn | SpellDescription$ It perpetually gains "This creature enters the battlefield with an additional shield counter on it."
|
SVar:DBAnimate:DB$ Animate | Defined$ Remembered | Replacements$ ETBAddCounter | Duration$ Perpetual | SubAbility$ DBReturn | StackDescription$ SpellDescription | SpellDescription$ It perpetually gains "This creature enters the battlefield with an additional shield counter on it."
|
||||||
SVar:PerpetualStatic:Mode$ Continuous | Affected$ Card.IsRemembered | AddReplacementEffects$ ETBAddCounter | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually gains "This creature enters the battlefield with an additional shield counter on it."
|
|
||||||
SVar:ETBAddCounter:Event$ Moved | Destination$ Battlefield | ValidCard$ Card.Self | ReplaceWith$ ETBAddExtraCounter | ReplacementResult$ Updated | Description$ This creature enters the battlefield with an additional shield counter on it.
|
SVar:ETBAddCounter:Event$ Moved | Destination$ Battlefield | ValidCard$ Card.Self | ReplaceWith$ ETBAddExtraCounter | ReplacementResult$ Updated | Description$ This creature enters the battlefield with an additional shield counter on it.
|
||||||
SVar:ETBAddExtraCounter:DB$ PutCounter | ETB$ True | Defined$ ReplacedCard | CounterType$ SHIELD
|
SVar:ETBAddExtraCounter:DB$ PutCounter | ETB$ True | Defined$ ReplacedCard | CounterType$ SHIELD
|
||||||
SVar:DBReturn:DB$ ChangeZone | Defined$ Remembered | Origin$ All | Destination$ Battlefield | SubAbility$ DBCleanup | StackDescription$ Then return {c:Remembered} to the battlefield under its owner's control. | SpellDescription$ Then return that card to the battlefield under its owner's control.
|
SVar:DBReturn:DB$ ChangeZone | Defined$ Remembered | Origin$ All | Destination$ Battlefield | SubAbility$ DBCleanup | StackDescription$ SpellDescription | SpellDescription$ Then return that card to the battlefield under its owner's control.
|
||||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||||
DeckHas:Ability$Counters
|
DeckHas:Ability$Counters
|
||||||
Oracle:Exile target nonartifact creature you control. It perpetually gains "This creature enters the battlefield with an additional shield counter on it." Then return that card to the battlefield under its owner's control.
|
Oracle:Exile target nonartifact creature you control. It perpetually gains "This creature enters the battlefield with an additional shield counter on it." Then return that card to the battlefield under its owner's control.
|
||||||
|
|||||||
@@ -3,13 +3,11 @@ ManaCost:2 W
|
|||||||
Types:Enchantment
|
Types:Enchantment
|
||||||
T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | Execute$ TrigCharm | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of combat on your turn, ABILITY
|
T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | Execute$ TrigCharm | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of combat on your turn, ABILITY
|
||||||
SVar:TrigCharm:DB$ Charm | Choices$ PumpField,PumpHand,Token | ChoiceRestriction$ YourLastCombat
|
SVar:TrigCharm:DB$ Charm | Choices$ PumpField,PumpHand,Token | ChoiceRestriction$ YourLastCombat
|
||||||
SVar:PumpField:DB$ Pump | ValidTgts$ Soldier | TargetMin$ 0 | TargetMax$ 1 | TgtPrompt$ Select up to one target Soldier | SubAbility$ DBEffect | SpellDescription$ Up to one target Soldier perpetually gets +1/+1 and gains flying.
|
SVar:PumpField:DB$ Pump | ValidTgts$ Soldier | TargetMin$ 0 | TargetMax$ 1 | TgtPrompt$ Select up to one target Soldier | KW$ Flying | NumAtt$ 1 | NumDef$ 1 | Duration$ Perpetual | SpellDescription$ Up to one target Soldier perpetually gets +1/+1 and gains flying.
|
||||||
SVar:DBEffect:DB$ Effect | StaticAbilities$ PerpetualPump | RememberObjects$ Targeted | Name$ By Elspeth's Command's First Mode's Perpetual Effect | Duration$ Permanent | SubAbility$ DBCleanup
|
SVar:PumpHand:DB$ ChooseCard | ChoiceZone$ Hand | Choices$ Soldier.YouOwn | ChoiceTitle$ Choose a Soldier card in your hand | Mandatory$ True | SubAbility$ DBPump | SpellDescription$ Choose a Soldier card in your hand. It perpetually gets +1/+1 and gains vigilance.
|
||||||
SVar:PerpetualPump:Mode$ Continuous | Affected$ Card.IsRemembered | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ Flying | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This Soldier perpetually gets +1/+1 and gains flying.
|
SVar:DBPump:DB$ Pump | Defined$ ChosenCard | PumpZone$ Hand | KW$ Vigilance | NumAtt$ 1 | NumDef$ 1 | Duration$ Perpetual | SubAbility$ DBCleanup
|
||||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearChosenCard$ True
|
SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True
|
||||||
SVar:PumpHand:DB$ ChooseCard | ChoiceZone$ Hand | Choices$ Soldier.YouOwn | ChoiceTitle$ Choose a Soldier card in your hand | Amount$ 1 | SubAbility$ DBEffect2 | SpellDescription$ Choose a Soldier card in your hand. It perpetually gets +1/+1 and gains vigilance.
|
|
||||||
SVar:DBEffect2:DB$ Effect | StaticAbilities$ PerpetualPump2 | Name$ By Elspeth's Command's Second Mode's Perpetual Effect | Duration$ Permanent | SubAbility$ DBCleanup
|
|
||||||
SVar:PerpetualPump2:Mode$ Continuous | Affected$ Card.ChosenCard | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ Vigilance | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ The chosen Soldier card perpetually gets +1/+1 and gains vigilance.
|
|
||||||
SVar:Token:DB$ Token | TokenScript$ c_1_1_a_soldier | SpellDescription$ Create a 1/1 colorless Soldier artifact creature token.
|
SVar:Token:DB$ Token | TokenScript$ c_1_1_a_soldier | SpellDescription$ Create a 1/1 colorless Soldier artifact creature token.
|
||||||
DeckHas:Ability$Token & Type$Artifact|Soldier
|
DeckHas:Ability$Token & Type$Artifact|Soldier
|
||||||
|
DeckHints:Type$Soldier
|
||||||
Oracle:At the beginning of combat on your turn, choose one that wasn't chosen during your last combat —\n• Up to one target Soldier perpetually gets +1/+1 and gains flying.\n• Choose a Soldier card in your hand. It perpetually gets +1/+1 and gains vigilance.\n• Create a 1/1 colorless Soldier artifact creature token.
|
Oracle:At the beginning of combat on your turn, choose one that wasn't chosen during your last combat —\n• Up to one target Soldier perpetually gets +1/+1 and gains flying.\n• Choose a Soldier card in your hand. It perpetually gets +1/+1 and gains vigilance.\n• Create a 1/1 colorless Soldier artifact creature token.
|
||||||
|
|||||||
@@ -2,11 +2,8 @@ Name:Conductive Current
|
|||||||
ManaCost:R R R
|
ManaCost:R R R
|
||||||
Types:Sorcery
|
Types:Sorcery
|
||||||
A:SP$ DamageAll | NumDmg$ 3 | ValidCards$ Creature | ValidDescription$ each creature. | SubAbility$ DBChoose | SpellDescription$ CARDNAME deals 3 damage to each creature.
|
A:SP$ DamageAll | NumDmg$ 3 | ValidCards$ Creature | ValidDescription$ each creature. | SubAbility$ DBChoose | SpellDescription$ CARDNAME deals 3 damage to each creature.
|
||||||
SVar:DBChoose:DB$ ChooseCard | ChoiceZone$ Hand | Choices$ Instant.YouOwn,Sorcery.YouOwn | ChoiceTitle$ Choose an instant or sorcery card in your hand | Amount$ 1 | SubAbility$ DBEffect
|
SVar:DBChoose:DB$ ChooseCard | ChoiceZone$ Hand | Choices$ Instant.YouOwn,Sorcery.YouOwn | ChoiceDesc$ instant or sorcery | ChoiceTitle$ Choose an instant or sorcery card in your hand | Mandatory$ True | SubAbility$ DBAnimate | SpellDescription$ Choose an instant or sorcery card in your hand.
|
||||||
SVar:DBEffect:DB$ Effect | StaticAbilities$ PerpetualAbility | Duration$ Permanent | Name$ Conductive Current's Perpetual Effect | SubAbility$ DBCleanup
|
SVar:DBAnimate:DB$ Animate | Defined$ ChosenCard | Replacements$ PerpDamageRep | Duration$ Perpetual | StackDescription$ SpellDescription | SpellDescription$ It perpetually gains "If this spell would deal noncombat damage to a permanent or player, it deals that much damage plus 2 instead."
|
||||||
SVar:PerpetualAbility:Mode$ Continuous | Affected$ Card.IsRemembered | AddReplacementEffects$ PerpDamageRep | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ The chosen card perpetually gains "If this spell would deal noncombat damage to a permanent or player, it deals that much damage plus 2 instead."
|
|
||||||
SVar:PerpDamageRep:Event$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Permanent,Player | ReplaceWith$ DmgPlus2 | Description$ If this spell would deal noncombat damage to a permanent or player, it deals that much damage plus 2 instead.
|
SVar:PerpDamageRep:Event$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Permanent,Player | ReplaceWith$ DmgPlus2 | Description$ If this spell would deal noncombat damage to a permanent or player, it deals that much damage plus 2 instead.
|
||||||
SVar:DmgPlus2:DB$ ReplaceEffect | VarName$ DamageAmount | VarValue$ X
|
SVar:DmgPlus2:DB$ ReplaceEffect | VarName$ DamageAmount | VarValue$ ReplaceCount$DamageAmount/Plus.2
|
||||||
SVar:X:ReplaceCount$DamageAmount/Plus.2
|
|
||||||
SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True
|
|
||||||
Oracle:Conductive Current deals 3 damage to each creature. Choose an instant or sorcery card in your hand. It perpetually gains "If this spell would deal noncombat damage to a permanent or player, it deals that much damage plus 2 instead."
|
Oracle:Conductive Current deals 3 damage to each creature. Choose an instant or sorcery card in your hand. It perpetually gains "If this spell would deal noncombat damage to a permanent or player, it deals that much damage plus 2 instead."
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
Name:Divine Purge
|
Name:Divine Purge
|
||||||
ManaCost:1 W W
|
ManaCost:1 W W
|
||||||
Types:Sorcery
|
Types:Sorcery
|
||||||
A:SP$ ChangeZoneAll | Origin$ Battlefield | Destination$ Exile | ChangeType$ Artifact.cmcLE3,Creature.cmcLE3 | RememberChanged$ True | SubAbility$ DBEffect | SpellDescription$ Exile all artifacts and creatures with mana value 3 or less. They perpetually gain "This spell costs {2} more to cast" and "This permanent enters the battlefield tapped." For as long as each of them remain exiled, its owner may play it.
|
A:SP$ ChangeZoneAll | Origin$ Battlefield | Destination$ Exile | ChangeType$ Artifact.cmcLE3,Creature.cmcLE3 | RememberChanged$ True | SubAbility$ DBAnimate | SpellDescription$ Exile all artifacts and creatures with mana value 3 or less.
|
||||||
SVar:DBEffect:DB$ Effect | RememberObjects$ Remembered | StaticAbilities$ PerpetualAbility | Duration$ Permanent | Name$ Divine Purge's Perpetual Effect | SubAbility$ DBMayPlayEffect
|
SVar:DBAnimate:DB$ Animate | Duration$ Perpetual | Defined$ Remembered | staticAbilities$ RaiseCost | Replacements$ ReplaceETB | SubAbility$ DBMayPlayEffect | StackDescription$ SpellDescription | SpellDescription$ They perpetually gain "This spell costs {2} more to cast" and "This permanent enters the battlefield tapped."
|
||||||
SVar:PerpetualAbility:Mode$ Continuous | Affected$ Card.IsRemembered | AddStaticAbility$ RaiseCost & ETBTappedDesc | EffectZone$ Command | AddKeyword$ CARDNAME enters the battlefield tapped. | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | SubAbility$ DBMayPlayEffect | Description$ The exiled cards perpetually gain "This spell costs {2} more to cast" and "This permanent enters the battlefield tapped."
|
|
||||||
SVar:RaiseCost:Mode$ RaiseCost | ValidCard$ Card.Self | Type$ Spell | Amount$ 2 | EffectZone$ All | Description$ This spell costs {2} more to cast.
|
SVar:RaiseCost:Mode$ RaiseCost | ValidCard$ Card.Self | Type$ Spell | Amount$ 2 | EffectZone$ All | Description$ This spell costs {2} more to cast.
|
||||||
|
SVar:ReplaceETB:Event$ Moved | ValidCard$ Card.Self | Destination$ Battlefield | ReplaceWith$ ETBTapped | ReplacementResult$ Updated | Description$ This permanent enters the battlefield tapped.
|
||||||
|
SVar:ETBTapped:DB$ Tap | ETB$ True | Defined$ ReplacedCard
|
||||||
SVar:ETBTappedDesc:Mode$ Continuous | Affected$ Card.Self | Description$ This permanent enters the battlefield tapped.
|
SVar:ETBTappedDesc:Mode$ Continuous | Affected$ Card.Self | Description$ This permanent enters the battlefield tapped.
|
||||||
SVar:DBMayPlayEffect:DB$ Effect | RememberObjects$ Remembered | StaticAbilities$ OwnerMayPlay | Duration$ Permanent | SubAbility$ DBCleanup | ForgetOnMoved$ Exile | SpellDescription$ For as long as each of them remain exiled, its owner may play it.
|
SVar:DBMayPlayEffect:DB$ Effect | RememberObjects$ Remembered | StaticAbilities$ OwnerMayPlay | Duration$ Permanent | SubAbility$ DBCleanup | ForgetOnMoved$ Exile | SpellDescription$ For as long as each of them remain exiled, its owner may play it.
|
||||||
SVar:OwnerMayPlay:Mode$ Continuous | Affected$ Card.IsRemembered | AffectedZone$ Exile | MayPlay$ True | EffectZone$ Command | MayPlayPlayer$ CardOwner | Description$ For as long as each of these remain exiled, its owner may play it.
|
SVar:OwnerMayPlay:Mode$ Continuous | Affected$ Card.IsRemembered | AffectedZone$ Exile | MayPlay$ True | EffectZone$ Command | MayPlayPlayer$ CardOwner | Description$ For as long as each of these remain exiled, its owner may play it.
|
||||||
|
|||||||
@@ -5,9 +5,8 @@ PT:3/3
|
|||||||
K:Lifelink
|
K:Lifelink
|
||||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChoose | TriggerDescription$ Whenever CARDNAME enters the battlefield or attacks, choose a card in your hand. It perpetually gains lifelink.
|
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChoose | TriggerDescription$ Whenever CARDNAME enters the battlefield or attacks, choose a card in your hand. It perpetually gains lifelink.
|
||||||
T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigChoose | Secondary$ True | TriggerDescription$ Whenever CARDNAME enters the battlefield or attacks, choose a card in your hand. It perpetually gains lifelink.
|
T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigChoose | Secondary$ True | TriggerDescription$ Whenever CARDNAME enters the battlefield or attacks, choose a card in your hand. It perpetually gains lifelink.
|
||||||
SVar:TrigChoose:DB$ ChooseCard | ChoiceZone$ Hand | Choices$ Card.YouOwn | ChoiceTitle$ Choose a card in your hand | Amount$ 1 | SubAbility$ DBEffect
|
SVar:TrigChoose:DB$ ChooseCard | ChoiceZone$ Hand | Choices$ Card.YouOwn | ChoiceTitle$ Choose a card in your hand | SubAbility$ DBPump
|
||||||
SVar:DBEffect:DB$ Effect | StaticAbilities$ PerpetualLifelink | Name$ Ethereal Escort's Perpetual Effect | Duration$ Permanent | SubAbility$ DBCleanup
|
SVar:DBPump:DB$ Pump | Defined$ ChosenCard | PumpZone$ Hand | KW$ Lifelink | Duration$ Perpetual | SubAbility$ DBCleanup
|
||||||
SVar:PerpetualLifelink:Mode$ Continuous | Affected$ Card.ChosenCard | AddKeyword$ Lifelink | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ The chosen card perpetually gains lifelink.
|
|
||||||
SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True
|
SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True
|
||||||
SVar:HasAttackEffect:TRUE
|
SVar:HasAttackEffect:TRUE
|
||||||
DeckHas:Ability$LifeGain
|
DeckHas:Ability$LifeGain
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
Name:Ethereal Grasp
|
Name:Ethereal Grasp
|
||||||
ManaCost:2 U
|
ManaCost:2 U
|
||||||
Types:Instant
|
Types:Instant
|
||||||
A:SP$ Tap | ValidTgts$ Creature | TgtPrompt$ Select target creature | IsCurse$ True | SubAbility$ DBEffect | SpellDescription$ Tap target creature. That creature perpetually gains "This creature doesn't untap during your untap step" and "{8}: Untap this creature."
|
A:SP$ Tap | ValidTgts$ Creature | IsCurse$ True | SubAbility$ DBAnimate | SpellDescription$ Tap target creature.
|
||||||
SVar:DBEffect:DB$ Effect | StaticAbilities$ EtherealGrasp | RememberObjects$ Targeted | Name$ Ethereal Grasp's Perpetual Effect | Duration$ Permanent | StackDescription$ That creature perpetually gains "This creature doesn't untap during your untap step" and "{8}: Untap this creature."
|
SVar:DBAnimate:DB$ Animate | Defined$ Targeted | Duration$ Perpetual | staticAbilities$ EtherealGrasp | Abilities$ Untap | StackDescription$ SpellDescription | SpellDescription$ That creature perpetually gains "This creature doesn't untap during your untap step" and "{8}: Untap this creature."
|
||||||
SVar:EtherealGrasp:Mode$ Continuous | Affected$ Card.IsRemembered | AddHiddenKeyword$ CARDNAME doesn't untap during your untap step. | AddAbility$ Untap | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually gains "This creature doesn't untap during your untap step" and "{8}: Untap this creature."
|
SVar:EtherealGrasp:Mode$ Continuous | Affected$ Card.Self | AddHiddenKeyword$ CARDNAME doesn't untap during your untap step. | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature doesn't untap during your untap step.
|
||||||
SVar:Untap:AB$ Untap | Cost$ 8 | Defined$ Self | SpellDescription$ Untap this creature.
|
SVar:Untap:AB$ Untap | Cost$ 8 | SpellDescription$ Untap this creature.
|
||||||
Oracle:Tap target creature. That creature perpetually gains "This creature doesn't untap during your untap step" and "{8}: Untap this creature."
|
Oracle:Tap target creature. That creature perpetually gains "This creature doesn't untap during your untap step" and "{8}: Untap this creature."
|
||||||
|
|||||||
@@ -4,9 +4,8 @@ Types:Creature Human Artificer
|
|||||||
PT:2/4
|
PT:2/4
|
||||||
K:Haste
|
K:Haste
|
||||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigConjure | TriggerDescription$ When CARDNAME enters the battlefield, conjure a duplicate of another target nontoken creature or artifact you control into your graveyard. The duplicate perpetually gains unearth {1}{R}.
|
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigConjure | TriggerDescription$ When CARDNAME enters the battlefield, conjure a duplicate of another target nontoken creature or artifact you control into your graveyard. The duplicate perpetually gains unearth {1}{R}.
|
||||||
SVar:TrigConjure:DB$ MakeCard | Conjure$ True | TgtPrompt$ Select another target nontoken creature or artifact | DefinedName$ Targeted | ValidTgts$ Creature.YouCtrl+Other+nonToken,Artifact.YouCtrl+Other+nonToken | Zone$ Graveyard | RememberMade$ True | SubAbility$ DBEffect
|
SVar:TrigConjure:DB$ MakeCard | Conjure$ True | TgtPrompt$ Select another target nontoken creature or artifact you control | DefinedName$ Targeted | ValidTgts$ Creature.YouCtrl+Other+nonToken,Artifact.YouCtrl+Other+nonToken | Zone$ Graveyard | RememberMade$ True | SubAbility$ DBPump
|
||||||
SVar:DBEffect:DB$ Effect | StaticAbilities$ PerpetualUnearth | RememberObjects$ Remembered | Name$ Fallaji Antiquarian's perpetual Effect | Duration$ Permanent | SubAbility$ DBCleanup
|
SVar:DBPump:DB$ Pump | Defined$ Remembered | PumpZone$ Graveyard | KW$ Unearth:2 R | Duration$ Perpetual | SubAbility$ DBCleanup
|
||||||
SVar:PerpetualUnearth:Mode$ Continuous | Affected$ Card.IsRemembered | AddKeyword$ Unearth:2 R | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually gains unearth {1}{R}.
|
|
||||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||||
DeckHas:Ability$Graveyard
|
DeckHas:Ability$Graveyard
|
||||||
DeckHints:Type$Artifact
|
DeckHints:Type$Artifact
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
Name:Flames of Moradin
|
Name:Flames of Moradin
|
||||||
ManaCost:2 R R
|
ManaCost:2 R R
|
||||||
Types:Sorcery
|
Types:Sorcery
|
||||||
A:SP$ Destroy | ValidTgts$ Artifact | TargetMin$ 0 | TargetMax$ 3 | TgtPrompt$ Select up to three target artifacts | SubAbility$ DBConjure
|
A:SP$ Destroy | ValidTgts$ Artifact | TargetMin$ 0 | TargetMax$ 3 | TgtPrompt$ Select up to three target artifacts | SubAbility$ DBConjure | SpellDescription$ Destroy up to three target artifacts.
|
||||||
SVar:DBConjure:DB$ MakeCard | Conjure$ True | DefinedName$ Targeted.nonToken | Zone$ Hand | RememberMade$ True | SubAbility$ DBEffect
|
SVar:DBConjure:DB$ MakeCard | Conjure$ True | DefinedName$ Targeted.nonToken | Zone$ Hand | RememberMade$ True | SubAbility$ DBAnimate | SpellDescription$ Conjure a duplicate of each nontoken artifact destroyed this way into your hand.
|
||||||
SVar:DBEffect:DB$ Effect | StaticAbilities$ PerpetualAbility | RememberObjects$ Remembered | Name$ Flames of Moradin's Perpetual Effect | Duration$ Permanent
|
SVar:DBAnimate:DB$ Animate | Duration$ Perpetual | Defined$ Remembered | staticAbilities$ PerpAltCost | Triggers$ PhaseTrig | SubAbility$ DBCleanup | StackDescription$ SpellDescription | SpellDescription$ The duplicates perpetually gain "You may pay {R} rather than pay this spell's mana cost" and "at the beginning of your end step, sacrifice this artifact."
|
||||||
SVar:PerpetualAbility:Mode$ Continuous | RememberObjects$ Targeted | AddKeyword$ Alternative Cost: R | Affected$ Card.IsRemembered | AddTrigger$ TrigSac | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually gains "You may pay {R} rather than pay this spell's mana cost" and "at the beginning of your end step, sacrifice this artifact."
|
SVar:PerpAltCost:Mode$ Continuous | EffectZone$ All | MayPlay$ True | MayPlayAltManaCost$ R | MayPlayDontGrantZonePermissions$ True | Affected$ Card.Self | AffectedZone$ Hand,Graveyard,Library,Exile,Command | Description$ You may pay {R} rather than pay this spell's mana cost.
|
||||||
SVar:TrigSac:Mode$ Phase | ValidPlayer$ You | Phase$ End of Turn | Execute$ TrigSacrifice | TriggerZones$ Battlefield | TriggerDescription$ Sacrifice CARDNAME at you end step.
|
SVar:PhaseTrig:Mode$ Phase | ValidPlayer$ You | Phase$ End of Turn | Execute$ TrigSacrifice | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of your end step, sacrifice this artifact.
|
||||||
SVar:TrigSacrifice:DB$ Sacrifice
|
SVar:TrigSacrifice:DB$ Sacrifice
|
||||||
|
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||||
DeckHas:Type$Artifact & Ability$Sacrifice
|
DeckHas:Type$Artifact & Ability$Sacrifice
|
||||||
Oracle:Destroy up to three target artifacts. Conjure a duplicate of each nontoken artifact destroyed this way into your hand. The duplicates perpetually gain "You may pay {R} rather than pay this spell's mana cost" and "at the beginning of your end step, sacrifice this artifact.".
|
Oracle:Destroy up to three target artifacts. Conjure a duplicate of each nontoken artifact destroyed this way into your hand. The duplicates perpetually gain "You may pay {R} rather than pay this spell's mana cost" and "at the beginning of your end step, sacrifice this artifact."
|
||||||
|
|||||||
@@ -4,10 +4,8 @@ Types:Creature Goblin Soldier
|
|||||||
PT:2/1
|
PT:2/1
|
||||||
K:Haste
|
K:Haste
|
||||||
K:Enlist
|
K:Enlist
|
||||||
T:Mode$ Enlisted | ValidCard$ Card.Self | ValidEnlisted$ Card.nonToken | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigConjure | TriggerDescription$ Whenever CARDNAME enlists a nontoken creature, you may conjure a duplicate of that creature into the top five cards of your library at random. The duplicate perpetually gets +1/+0 and gains haste.
|
T:Mode$ Enlisted | ValidCard$ Card.Self | ValidEnlisted$ Creature.nonToken | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigConjure | TriggerDescription$ Whenever CARDNAME enlists a nontoken creature, you may conjure a duplicate of that creature into the top five cards of your library at random. The duplicate perpetually gets +1/+0 and gains haste.
|
||||||
SVar:TrigConjure:DB$ MakeCard | Conjure$ True | DefinedName$ TriggeredEnlisted | Zone$ Library | LibraryPosition$ Z | RememberMade$ True | SubAbility$ DBEffect
|
SVar:TrigConjure:DB$ MakeCard | Conjure$ True | DefinedName$ TriggeredEnlisted | Zone$ Library | LibraryPosition$ Count$Random.0.4 | RememberMade$ True | SubAbility$ DBPump
|
||||||
SVar:DBEffect:DB$ Effect | Name$ Goblin Morale Sergeant's Perpetual Effect | RememberObjects$ Remembered | StaticAbilities$ PerpetualAbility | Duration$ Permanent | SubAbility$ DBCleanup
|
SVar:DBPump:DB$ Pump | Defined$ Remembered | PumpZone$ Library | KW$ Haste | NumAtt$ 1 | Duration$ Perpetual | SubAbility$ DBCleanup
|
||||||
SVar:PerpetualAbility:Mode$ Continuous | AddPower$ 1 | AddKeyword$ Haste | Affected$ Card.IsRemembered | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ The duplicate perpetually gets +1/+0 and gains haste.
|
|
||||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||||
SVar:Z:Count$Random.0.4
|
|
||||||
Oracle:Haste\nEnlist\nWhenever Goblin Morale Sergeant enlists a nontoken creature, you may conjure a duplicate of that creature into the top five cards of your library at random. The duplicate perpetually gets +1/+0 and gains haste.
|
Oracle:Haste\nEnlist\nWhenever Goblin Morale Sergeant enlists a nontoken creature, you may conjure a duplicate of that creature into the top five cards of your library at random. The duplicate perpetually gets +1/+0 and gains haste.
|
||||||
|
|||||||
@@ -3,13 +3,11 @@ ManaCost:R
|
|||||||
Types:Creature Goblin
|
Types:Creature Goblin
|
||||||
PT:1/1
|
PT:1/1
|
||||||
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ DBSeek | TriggerDescription$ When CARDNAME dies, seek a creature card with mana value 3 or less. That card perpetually gains haste, "This spell costs {1} less to cast," and "At the beginning of your end step, sacrifice this creature."
|
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ DBSeek | TriggerDescription$ When CARDNAME dies, seek a creature card with mana value 3 or less. That card perpetually gains haste, "This spell costs {1} less to cast," and "At the beginning of your end step, sacrifice this creature."
|
||||||
SVar:DBSeek:DB$ Seek | Type$ Creature.cmcLE3+YouOwn | RememberFound$ True | SubAbility$ DBEffect
|
SVar:DBSeek:DB$ Seek | Type$ Creature.cmcLE3+YouOwn | RememberFound$ True | SubAbility$ DBAnimate
|
||||||
SVar:DBEffect:DB$ Effect | StaticAbilities$ PerpetualAbility | RememberObjects$ Remembered | Triggers$ Update | Name$ Goblin Trapfinder's Perpetual Effect | Duration$ Permanent
|
SVar:DBAnimate:DB$ Animate | Defined$ Remembered | staticAbilities$ ReduceCost | Triggers$ SacTrig | Keywords$ Haste | Duration$ Perpetual
|
||||||
SVar:PerpetualAbility:Mode$ Continuous | Affected$ Card.IsRemembered | AddTrigger$ TrigSac | AddStaticAbility$ PerpetualReduceCost | AddKeyword$ Haste | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This card perpetually gains haste, "This spell costs {1} less to cast," and "At the beginning of your end step, sacrifice this creature."
|
SVar:ReduceCost:Mode$ ReduceCost | ValidCard$ Card.Self | Type$ Spell | Amount$ 1 | EffectZone$ All | Description$ This spell costs {1} less to cast.
|
||||||
SVar:PerpetualReduceCost:Mode$ ReduceCost | ValidCard$ Card.Self | Type$ Spell | Amount$ 1 | EffectZone$ All | Description$ This spell costs {1} less to cast.
|
SVar:SacTrig:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | Execute$ TrigSacrifice | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of your end step, sacrifice this creature.
|
||||||
SVar:TrigSac:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | Execute$ TrigSacrifice | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of your end step, sacrifice this creature.
|
|
||||||
SVar:TrigSacrifice:DB$ Sacrifice
|
SVar:TrigSacrifice:DB$ Sacrifice
|
||||||
SVar:Update:Mode$ ChangesZone | Origin$ Any | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered | Execute$ DBUpdate
|
|
||||||
SVar:DBUpdate:DB$ UpdateRemember
|
|
||||||
DeckHas:Ability$Sacrifice
|
DeckHas:Ability$Sacrifice
|
||||||
|
DeckHints:Ability$Sacrifice
|
||||||
Oracle:When Goblin Trapfinder dies, seek a creature card with mana value 3 or less. That card perpetually gains haste, "This spell costs {1} less to cast," and "At the beginning of your end step, sacrifice this creature."
|
Oracle:When Goblin Trapfinder dies, seek a creature card with mana value 3 or less. That card perpetually gains haste, "This spell costs {1} less to cast," and "At the beginning of your end step, sacrifice this creature."
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ ManaCost:1 R
|
|||||||
Types:Creature Human Warlock
|
Types:Creature Human Warlock
|
||||||
PT:2/2
|
PT:2/2
|
||||||
A:AB$ Pump | Cost$ R | NumAtt$ +1 | SpellDescription$ CARDNAME gets +1/+0 until end of turn.
|
A:AB$ Pump | Cost$ R | NumAtt$ +1 | SpellDescription$ CARDNAME gets +1/+0 until end of turn.
|
||||||
A:AB$ Effect | Cost$ 2 Reveal<1/CARDNAME> | StaticAbilities$ PerpetualPump | RememberObjects$ Self | Name$ Heir to Dragonfire's Perpetual Effect | Duration$ Permanent | ActivationZone$ Hand | SpellDescription$ CARDNAME perpetually becomes a Dragon, gets +3/+3, and gains flying.
|
A:AB$ Animate | Cost$ 2 R Reveal<1/CARDNAME> | Duration$ Perpetual | Types$ Dragon | RemoveCreatureTypes$ True | ActivationZone$ Hand | SubAbility$ DBPump | StackDescription$ SpellDescription | SpellDescription$ CARDNAME perpetually becomes a Dragon,
|
||||||
SVar:PerpetualPump:Mode$ Continuous | Affected$ Card.IsRemembered | AddType$ Dragon | AddPower$ 3 | AddToughness$ 3 | EffectZone$ Command | AddKeyword$ Flying | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ EFFECTSOURCE perpetually becomes a Dragon, gets +3/+3, and gains flying.
|
SVar:DBPump:DB$ Pump | Defined$ Self | PumpZone$ Hand | NumAtt$ 3 | NumDef$ 3 | KW$ Flying | Duration$ Perpetual | StackDescription$ SpellDescription | SpellDescription$ gets +3/+3, and gains flying.
|
||||||
DeckHas:Type$Dragon
|
DeckHas:Type$Dragon
|
||||||
Oracle:{R}: Heir to Dragonfire gets +1/+0 until end of turn.\n{2}{R}, Reveal Heir to Dragonfire from your hand: Heir to Dragonfire perpetually becomes a Dragon, gets +3/+3, and gains flying.
|
Oracle:{R}: Heir to Dragonfire gets +1/+0 until end of turn.\n{2}{R}, Reveal Heir to Dragonfire from your hand: Heir to Dragonfire perpetually becomes a Dragon, gets +3/+3, and gains flying.
|
||||||
|
|||||||
12
forge-gui/res/cardsfolder/h/high_fae_prankster.txt
Normal file
12
forge-gui/res/cardsfolder/h/high_fae_prankster.txt
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
Name:High Fae Prankster
|
||||||
|
ManaCost:2 U B
|
||||||
|
Types:Creature Faerie Rogue
|
||||||
|
PT:1/4
|
||||||
|
K:Flying
|
||||||
|
K:Deathtouch
|
||||||
|
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigCharm | TriggerDescription$ When CARDNAME enters the battlefield, ABILITY
|
||||||
|
SVar:TrigCharm:DB$ Charm | MinCharmNum$ 0 | CharmNum$ 1 | Choices$ Exchange,Switch
|
||||||
|
SVar:Exchange:DB$ ExchangePower | ValidTgts$ Creature | TargetMin$ 2 | TargetMax$ 2 | TargetUnique$ True | BasePower$ True | Duration$ Perpetual | SpellDescription$ Perpetually exchange target creature's base power with another target creature's base power.
|
||||||
|
SVar:Switch:DB$ Animate | Duration$ Perpetual | Power$ 4 | Toughness$ 1 | SpellDescription$ CARDNAME perpetually has base power and toughness 4/1.
|
||||||
|
SVar:NeedsToPlay:Creature.OppCtrl+powerGE4
|
||||||
|
Oracle:Flying, deathtouch\nWhen High Fae Prankster enters the battlefield, choose up to one —\n• Perpetually exchange target creature's base power with another target creature's base power.\n• High Fae Prankster perpetually has base power and toughness 4/1.
|
||||||
@@ -2,7 +2,7 @@ Name:Holographic Double
|
|||||||
ManaCost:U
|
ManaCost:U
|
||||||
Types:Creature Illusion
|
Types:Creature Illusion
|
||||||
PT:1/1
|
PT:1/1
|
||||||
A:AB$ ChooseCard | Cost$ U ExileFromHand<1/CARDNAME> | ActivationZone$ Hand | Mandatory$ True | ChoiceZone$ Hand | Choices$ Creature.YouOwn | ChoiceDesc$ creature | FromDesc$ from their hand | ChoiceTitle$ Choose a creature card in your hand | Amount$ 1 | SubAbility$ DBConjure | SpellDescription$ Choose a creature card in your hand.
|
A:AB$ ChooseCard | Cost$ U ExileFromHand<1/CARDNAME> | ActivationZone$ Hand | Mandatory$ True | ChoiceZone$ Hand | Choices$ Creature.YouOwn | ChoiceDesc$ creature | ChoiceTitle$ Choose a creature card in your hand | Amount$ 1 | SubAbility$ DBConjure | SpellDescription$ Choose a creature card in your hand.
|
||||||
SVar:DBConjure:DB$ MakeCard | Conjure$ True | DefinedName$ ChosenCard | Zone$ Hand | SubAbility$ DBCleanup | StackDescription$ {p:You} conjures a duplicate of it into their hand. | SpellDescription$ Conjure a duplicate of it into your hand.
|
SVar:DBConjure:DB$ MakeCard | Conjure$ True | DefinedName$ ChosenCard | Zone$ Hand | SubAbility$ DBCleanup | StackDescription$ {p:You} conjures a duplicate of it into their hand. | SpellDescription$ Conjure a duplicate of it into your hand.
|
||||||
SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True
|
SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True
|
||||||
Oracle:{U}, Exile Holographic Double from your hand: Choose a creature card in your hand. Conjure a duplicate of it into your hand.
|
Oracle:{U}, Exile Holographic Double from your hand: Choose a creature card in your hand. Conjure a duplicate of it into your hand.
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ Name:Nightsnare
|
|||||||
ManaCost:3 B
|
ManaCost:3 B
|
||||||
Types:Sorcery
|
Types:Sorcery
|
||||||
A:SP$ RevealHand | ValidTgts$ Opponent | RememberRevealed$ True | SubAbility$ DBChoose | SpellDescription$ Target opponent reveals their hand.
|
A:SP$ RevealHand | ValidTgts$ Opponent | RememberRevealed$ True | SubAbility$ DBChoose | SpellDescription$ Target opponent reveals their hand.
|
||||||
SVar:DBChoose:DB$ ChooseCard | ChoiceZone$ Hand | Amount$ 1 | Choices$ Card.nonLand+IsRemembered | ChoiceDesc$ nonland | FromDesc$ from it | SubAbility$ DBBranch | ChoiceTitle$ You may choose a nonland card | SpellDescription$ You may choose a nonland card from it.
|
SVar:DBChoose:DB$ ChooseCard | ChoiceZone$ Hand | Amount$ 1 | Choices$ Card.nonLand+IsRemembered | ChoiceDesc$ nonland | FromDesc$ it | SubAbility$ DBBranch | ChoiceTitle$ You may choose a nonland card | SpellDescription$ You may choose a nonland card from it.
|
||||||
SVar:DBBranch:DB$ Branch | BranchCondition$ ChosenCard | TrueSubAbility$ DBDiscard | FalseSubAbility$ DBDiscard2 | StackDescription$ If they do, {p:Targeted} discards that card. If they don't, {p:Targeted} discards two cards. | SpellDescription$ If you do, that player discards that card. If you don't, that player discards two cards.
|
SVar:DBBranch:DB$ Branch | BranchCondition$ ChosenCard | TrueSubAbility$ DBDiscard | FalseSubAbility$ DBDiscard2 | StackDescription$ If they do, {p:Targeted} discards that card. If they don't, {p:Targeted} discards two cards. | SpellDescription$ If you do, that player discards that card. If you don't, that player discards two cards.
|
||||||
SVar:DBDiscard:DB$ Discard | DefinedCards$ ChosenCard | Defined$ Targeted | Mode$ Defined | SubAbility$ DBCleanup
|
SVar:DBDiscard:DB$ Discard | DefinedCards$ ChosenCard | Defined$ Targeted | Mode$ Defined | SubAbility$ DBCleanup
|
||||||
SVar:DBDiscard2:DB$ Discard | Defined$ Targeted | NumCards$ 2 | Mode$ TgtChoose | SubAbility$ DBCleanup
|
SVar:DBDiscard2:DB$ Discard | Defined$ Targeted | NumCards$ 2 | Mode$ TgtChoose | SubAbility$ DBCleanup
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ ManaCost:R G
|
|||||||
Types:Creature Cat Warrior
|
Types:Creature Cat Warrior
|
||||||
PT:3/2
|
PT:3/2
|
||||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChoose | TriggerDescription$ When CARDNAME enters the battlefield, you may choose 2 creature and/or planeswalker cards in your hand. They perpetually gain "When you cast this spell, create a Treasure token and this spell perpetually loses this ability."
|
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChoose | TriggerDescription$ When CARDNAME enters the battlefield, you may choose 2 creature and/or planeswalker cards in your hand. They perpetually gain "When you cast this spell, create a Treasure token and this spell perpetually loses this ability."
|
||||||
SVar:TrigChoose:DB$ ChooseCard | ChoiceZone$ Hand | Choices$ Creature.YouOwn,Planeswalker.YouOwn | ChoiceTitle$ Choose up to two creature and/or planeswalker cards in your hand. | MinAmount$ 0 | Amount$ 2 | SubAbility$ DBEffect
|
SVar:TrigChoose:DB$ ChooseCard | ChoiceZone$ Hand | Choices$ Creature.YouOwn,Planeswalker.YouOwn | ChoiceTitle$ Choose up to two creature and/or planeswalker cards in your hand | MinAmount$ 0 | Amount$ 2 | SubAbility$ DBAnimate
|
||||||
SVar:DBEffect:DB$ Effect | RememberObjects$ ChosenCard | ForgetOnCast$ True | ConditionDefined$ ChosenCard | ConditionPresent$ Card | ConditionCompare$ GE1 | StaticAbilities$ PerpetualEffect | Name$ Racketeer Boss's Perpetual Effect | Duration$ Permanent | SubAbility$ DBCleanup
|
SVar:DBAnimate:DB$ Animate | Defined$ ChosenCard | Triggers$ SpellCastTrig | Duration$ Perpetual | SubAbility$ DBCleanup
|
||||||
SVar:PerpetualEffect:Mode$ Continuous | Affected$ Card.IsRemembered | AddTrigger$ SpellCastTrig | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ When you cast this spell, create a Treasure token and this spell perpetually loses this ability.
|
|
||||||
SVar:SpellCastTrig:Mode$ SpellCast | ValidCard$ Card.Self | Execute$ TrigTreasure | TriggerDescription$ When you cast this spell, create a Treasure token and this spell perpetually loses this ability.
|
SVar:SpellCastTrig:Mode$ SpellCast | ValidCard$ Card.Self | Execute$ TrigTreasure | TriggerDescription$ When you cast this spell, create a Treasure token and this spell perpetually loses this ability.
|
||||||
SVar:TrigTreasure:DB$ Token | TokenScript$ c_a_treasure_sac
|
SVar:TrigTreasure:DB$ Token | TokenScript$ c_a_treasure_sac | SubAbility$ DBLosePerpAbility
|
||||||
|
SVar:DBLosePerpAbility:DB$ LosePerpetual
|
||||||
SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True
|
SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True
|
||||||
DeckHints:Type$Planeswalker
|
DeckHints:Type$Planeswalker
|
||||||
DeckHas:Ability$Token|Sacrifice & Type$Treasure|Artifact
|
DeckHas:Ability$Token|Sacrifice & Type$Treasure|Artifact
|
||||||
|
|||||||
@@ -6,4 +6,4 @@ A:SP$ Attach | ValidTgts$ Creature | AILogic$ Pump
|
|||||||
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 1 | AddToughness$ 1 | Description$ Enchanted creature gets +1/+1.
|
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 1 | AddToughness$ 1 | Description$ Enchanted creature gets +1/+1.
|
||||||
SVar:AltCost:Cost$ 2 W | ActivationZone$ Graveyard | Description$ You may cast CARDNAME from your graveyard by paying {2}{W} rather than paying its mana cost.
|
SVar:AltCost:Cost$ 2 W | ActivationZone$ Graveyard | Description$ You may cast CARDNAME from your graveyard by paying {2}{W} rather than paying its mana cost.
|
||||||
DeckHas:Ability$Graveyard
|
DeckHas:Ability$Graveyard
|
||||||
Oracle:Enchant creature\nEnchanted creature gets +1/+1.\nYou may cast Raffine's Guidance from your graveyard by paying {2}{W} instead of its mana cost.
|
Oracle:Enchant creature\nEnchanted creature gets +1/+1.\nYou may cast Raffine's Guidance from your graveyard by paying {2}{W} rather than paying its mana cost.
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ Name:Reckoner Shakedown
|
|||||||
ManaCost:2 B
|
ManaCost:2 B
|
||||||
Types:Sorcery
|
Types:Sorcery
|
||||||
A:SP$ RevealHand | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | RememberRevealed$ True | SubAbility$ DBChoose | SpellDescription$ Target opponent reveals their hand.
|
A:SP$ RevealHand | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | RememberRevealed$ True | SubAbility$ DBChoose | SpellDescription$ Target opponent reveals their hand.
|
||||||
SVar:DBChoose:DB$ ChooseCard | ChoiceZone$ Hand | Amount$ 1 | Choices$ Card.nonLand+IsRemembered | ChoiceDesc$ nonland | FromDesc$ from it | SubAbility$ DBBranch | ChoiceTitle$ You may choose a nonland card | SpellDescription$ You may choose a nonland card from it.
|
SVar:DBChoose:DB$ ChooseCard | ChoiceZone$ Hand | Amount$ 1 | Choices$ Card.nonLand+IsRemembered | ChoiceDesc$ nonland | FromDesc$ it | SubAbility$ DBBranch | ChoiceTitle$ You may choose a nonland card | SpellDescription$ You may choose a nonland card from it.
|
||||||
SVar:DBBranch:DB$ Branch | BranchCondition$ ChosenCard | TrueSubAbility$ DBDiscard | FalseSubAbility$ DBPutCounter | StackDescription$ If they do, {p:Targeted} discards that card. If they don't, they put two +1/+1 counters on a creature or Vehicle they control. | SpellDescription$ If you do, that player discards that card. If you don't, put two +1/+1 counters on a creature or Vehicle you control.
|
SVar:DBBranch:DB$ Branch | BranchCondition$ ChosenCard | TrueSubAbility$ DBDiscard | FalseSubAbility$ DBPutCounter | StackDescription$ If they do, {p:Targeted} discards that card. If they don't, they put two +1/+1 counters on a creature or Vehicle they control. | SpellDescription$ If you do, that player discards that card. If you don't, put two +1/+1 counters on a creature or Vehicle you control.
|
||||||
SVar:DBDiscard:DB$ Discard | DefinedCards$ ChosenCard | Defined$ Targeted | Mode$ Defined | SubAbility$ DBCleanup
|
SVar:DBDiscard:DB$ Discard | DefinedCards$ ChosenCard | Defined$ Targeted | Mode$ Defined | SubAbility$ DBCleanup
|
||||||
SVar:DBPutCounter:DB$ PutCounter | Choices$ Creature.YouCtrl,Vehicle.YouCtrl | ChoiceTitle$ Choose a creature or Vehicle you control | CounterType$ P1P1 | CounterNum$ 2 | SubAbility$ DBCleanup
|
SVar:DBPutCounter:DB$ PutCounter | Choices$ Creature.YouCtrl,Vehicle.YouCtrl | ChoiceTitle$ Choose a creature or Vehicle you control | CounterType$ P1P1 | CounterNum$ 2 | SubAbility$ DBCleanup
|
||||||
|
|||||||
@@ -2,12 +2,9 @@ Name:Sarkhan, Wanderer to Shiv
|
|||||||
ManaCost:3 R
|
ManaCost:3 R
|
||||||
Types:Legendary Planeswalker Sarkhan
|
Types:Legendary Planeswalker Sarkhan
|
||||||
Loyalty:4
|
Loyalty:4
|
||||||
A:AB$ Effect | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | RememberObjects$ ValidHand Dragon.YouOwn | StaticAbilities$ PerpetualAbility | Duration$ Permanent | Triggers$ Update | Name$ Sarkhan, Wanderer to Shiv's Perpetual Effect | SpellDescription$ Dragon cards in your hand perpetually gain "This spell costs {1} less to cast," and "You may pay {X} rather than pay this spell's mana cost, where X is its mana value."
|
A:AB$ AnimateAll | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | ValidCards$ Dragon.YouOwn | Zone$ Hand | staticAbilities$ DragonReduceCost,DragonAltCost | Duration$ Perpetual | SpellDescription$ Dragon cards in your hand perpetually gain "This spell costs {1} less to cast," and "You may pay {X} rather than pay this spell's mana cost, where X is its mana value."
|
||||||
SVar:PerpetualAbility:Mode$ Continuous | Affected$ Card.IsRemembered | AddStaticAbility$ DragonReduceCost & DragonAltCost | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ Dragon cards in your hand perpetually gain "This spell costs {1} less to cast," and "You may pay {X} rather than pay this spell's mana cost, where X is its mana value."
|
|
||||||
SVar:DragonReduceCost:Mode$ ReduceCost | ValidCard$ Card.Self | Type$ Spell | Amount$ 1 | EffectZone$ All | Description$ This spell costs {1} less to cast.
|
SVar:DragonReduceCost:Mode$ ReduceCost | ValidCard$ Card.Self | Type$ Spell | Amount$ 1 | EffectZone$ All | Description$ This spell costs {1} less to cast.
|
||||||
SVar:DragonAltCost:Mode$ Continuous | CharacteristicDefining$ True | AddKeyword$ Alternative Cost:ConvertedManaCost | Description$ You may pay {X} rather than pay this spell's mana cost, where X is its mana value.
|
SVar:DragonAltCost:Mode$ Continuous | EffectZone$ All | MayPlay$ True | MayPlayAltManaCost$ ConvertedManaCost | MayPlayDontGrantZonePermissions$ True | Affected$ Card.Self | AffectedZone$ Hand,Graveyard,Library,Exile,Command | Description$ You may pay {X} rather than pay this spell's mana cost, where X is its mana value.
|
||||||
SVar:Update:Mode$ ChangesZone | Origin$ Any | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered | Execute$ DBUpdate
|
|
||||||
SVar:DBUpdate:DB$ UpdateRemember
|
|
||||||
A:AB$ MakeCard | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | Conjure$ True | Name$ Shivan Dragon | Zone$ Hand | SpellDescription$ Conjure a Shivan Dragon card into your hand.
|
A:AB$ MakeCard | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | Conjure$ True | Name$ Shivan Dragon | Zone$ Hand | SpellDescription$ Conjure a Shivan Dragon card into your hand.
|
||||||
A:AB$ DealDamage | Cost$ SubCounter<2/LOYALTY> | Planeswalker$ True | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ 3 | SpellDescription$ CARDNAME deals 3 damage to target creature.
|
A:AB$ DealDamage | Cost$ SubCounter<2/LOYALTY> | Planeswalker$ True | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ 3 | SpellDescription$ CARDNAME deals 3 damage to target creature.
|
||||||
DeckHints:Type$Dragon
|
DeckHints:Type$Dragon
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ Name:Second Little Pig
|
|||||||
ManaCost:1 WB
|
ManaCost:1 WB
|
||||||
Types:Creature Boar
|
Types:Creature Boar
|
||||||
PT:2/3
|
PT:2/3
|
||||||
A:AB$ Effect | Cost$ 2 WB WB | StaticAbilities$ PerpetualSpirit | IsPresent$ Card.Self+!Spirit | RememberObjects$ Self | Name$ Second Little Pig's Perpetual Effect | Duration$ Permanent | SpellDescription$ CARDNAME perpetually becomes a Boar Spirit with base power and toughness 4/4 and gains flying. Activate only if CARDNAME isn't a Spirit.
|
A:AB$ Animate | Cost$ 2 WB WB | Duration$ Perpetual | Types$ Boar,Spirit | RemoveCreatureTypes$ True | Power$ 4 | Toughness$ 4 | Keywords$ Flying | IsPresent$ Card.Self+!Spirit | StackDescription$ CARDNAME perpetually becomes a Boar Spirit with base power and toughness 4/4 and gains flying. | SpellDescription$ CARDNAME perpetually becomes a Boar Spirit with base power and toughness 4/4 and gains flying. Activate only if CARDNAME isn't a Spirit.
|
||||||
SVar:PerpetualSpirit:Mode$ Continuous | AddKeyword$ Flying | Affected$ Card.IsRemembered | SetPower$ 4 | SetToughness$ 4 | AddType$ Spirit | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually becomes a Boar Spirit with base power and toughness 4/4 and gains flying.
|
|
||||||
DeckHas:Type$Spirit
|
DeckHas:Type$Spirit
|
||||||
Oracle:{2}{W/B}{W/B}: Second Little Pig perpetually becomes a Boar Spirit with base power and toughness 4/4 and gains flying. Activate only if Second Little Pig isn't a Spirit.
|
Oracle:{2}{W/B}{W/B}: Second Little Pig perpetually becomes a Boar Spirit with base power and toughness 4/4 and gains flying. Activate only if Second Little Pig isn't a Spirit.
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ Name:Third Little Pig
|
|||||||
ManaCost:1 BG
|
ManaCost:1 BG
|
||||||
Types:Creature Boar
|
Types:Creature Boar
|
||||||
PT:2/2
|
PT:2/2
|
||||||
T:Mode$ ConjureAll | ValidPlayer$ You | ValidCard$ Card | TriggerZones$ Battlefield,Graveyard | Execute$ TrigEffect | TriggerDescription$ Whenever you conjure one or more other cards, CARDNAME perpetually gets +1/+1. This ability also triggers if CARDNAME is in your graveyard.
|
T:Mode$ ConjureAll | ValidPlayer$ You | ValidCard$ Card | TriggerZones$ Battlefield,Graveyard | Execute$ TrigPump | TriggerDescription$ Whenever you conjure one or more other cards, CARDNAME perpetually gets +1/+1. This ability also triggers if CARDNAME is in your graveyard.
|
||||||
SVar:TrigEffect:DB$ Effect | StaticAbilities$ PerpetualBuff | RememberObjects$ Self | Name$ Third Little Pig's Perpetual Effect | Duration$ Permanent
|
SVar:TrigPump:DB$ Pump | Defined$ Self | PumpZone$ Battlefield,Graveyard | NumAtt$ 1 | NumDef$ 1 | Duration$ Perpetual
|
||||||
SVar:PerpetualBuff:Mode$ Continuous | Affected$ Card.IsRemembered | AddPower$ 1 | AddToughness$ 1 | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This creature perpetually gets +1/+1.
|
Oracle:Whenever you conjure one or more other cards, Third Little Pig perpetually gets +1/+1. This ability also triggers if Third Little Pig is in your graveyard.
|
||||||
Oracle:Whenever you conjure one or more other cards, Third Little Pig perpetually gets +1/+1. This ability also triggers if Third Little Pig is in your graveyard.
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
Name:Toils of Night and Day
|
Name:Toils of Night and Day
|
||||||
ManaCost:2 U
|
ManaCost:2 U
|
||||||
Types:Instant Arcane
|
Types:Instant Arcane
|
||||||
A:SP$ TapOrUntap | Cost$ 2 U | ValidTgts$ Permanent | TgtPrompt$ Select target permanent | SubAbility$ DBTapOrUntap | SpellDescription$ You may tap or untap target permanent, then you may tap or untap another target permanent.
|
A:SP$ TapOrUntap | Cost$ 2 U | ValidTgts$ Permanent | SubAbility$ DBTapOrUntap | SpellDescription$ You may tap or untap target permanent, then you may tap or untap another target permanent.
|
||||||
SVar:DBTapOrUntap:DB$ TapOrUntap | ValidTgts$ Permanent | TgtPrompt$ Select target permanent (2) | TargetUnique$ True
|
SVar:DBTapOrUntap:DB$ TapOrUntap | ValidTgts$ Permanent | TgtPrompt$ Select another target permanent | TargetUnique$ True
|
||||||
AI:RemoveDeck:All
|
AI:RemoveDeck:All
|
||||||
Oracle:You may tap or untap target permanent, then you may tap or untap another target permanent.
|
Oracle:You may tap or untap target permanent, then you may tap or untap another target permanent.
|
||||||
|
|||||||
10
forge-gui/res/cardsfolder/upcoming/cogwork_progenitor.txt
Normal file
10
forge-gui/res/cardsfolder/upcoming/cogwork_progenitor.txt
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Name:Cogwork Progenitor
|
||||||
|
ManaCost:1 W
|
||||||
|
Types:Artifact Creature Gnome
|
||||||
|
PT:2/2
|
||||||
|
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigSeek | TriggerDescription$ At the beginning of your end step, you may exile another artifact you control or an artifact card in your graveyard. If you do, seek an artifact card. That card perpetually has base power and toughness 1/1 and becomes a Gnome creature in addition to its other types.
|
||||||
|
SVar:TrigSeek:AB$ Seek | Cost$ ExileCtrlOrGrave<1/Artifact.Other> | Type$ Artifact | RememberFound$ True | SubAbility$ DBAnimate
|
||||||
|
SVar:DBAnimate:DB$ Animate | Defined$ Remembered | Power$ 1 | Toughness$ 1 | Types$ Creature,Gnome | Duration$ Perpetual | SubAbility$ DBCleanup
|
||||||
|
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||||
|
DeckNeeds:Type$Artifact
|
||||||
|
Oracle:At the beginning of your end step, you may exile another artifact you control or an artifact card in your graveyard. If you do, seek an artifact card. That card perpetually has base power and toughness 1/1 and becomes a Gnome creature in addition to its other types.
|
||||||
Reference in New Issue
Block a user