Merge branch 'Card-Forge:master' into Gwyn-Dev

This commit is contained in:
EldritchBimbo
2023-04-07 10:13:46 -04:00
committed by GitHub
89 changed files with 1376 additions and 189 deletions

View File

@@ -257,7 +257,7 @@ public class AiAttackController {
continue; continue;
} }
if (sa.getApi() == ApiType.EachDamage && "TriggeredAttacker".equals(sa.getParam("DefinedPlayers"))) { if (sa.getApi() == ApiType.EachDamage && "TriggeredAttacker".equals(sa.getParam("Defined"))) {
List<Card> valid = CardLists.getValidCards(c.getController().getCreaturesInPlay(), sa.getParam("ValidCards"), c.getController(), c, sa); List<Card> valid = CardLists.getValidCards(c.getController().getCreaturesInPlay(), sa.getParam("ValidCards"), c.getController(), c, sa);
// TODO: this assumes that 1 damage is dealt per creature. Improve this to check the parameter/X to determine // TODO: this assumes that 1 damage is dealt per creature. Improve this to check the parameter/X to determine
// how much damage is dealt by each of the creatures in the valid list. // how much damage is dealt by each of the creatures in the valid list.

View File

@@ -1074,6 +1074,15 @@ public class ComputerUtil {
} }
} }
// cast Backup creatures in main 1 to pump attackers
if (cardState.hasKeyword(Keyword.BACKUP)) {
for (Card potentialAtkr: ai.getCreaturesInPlay()) {
if (ComputerUtilCard.doesCreatureAttackAI(ai, potentialAtkr)) {
return true;
}
}
}
// try not to cast Raid creatures in main 1 if an attack is likely // try not to cast Raid creatures in main 1 if an attack is likely
if ("Count$AttackersDeclared".equals(card.getSVar("RaidTest")) && !cardState.hasKeyword(Keyword.HASTE)) { if ("Count$AttackersDeclared".equals(card.getSVar("RaidTest")) && !cardState.hasKeyword(Keyword.HASTE)) {
for (Card potentialAtkr: ai.getCreaturesInPlay()) { for (Card potentialAtkr: ai.getCreaturesInPlay()) {

View File

@@ -24,10 +24,6 @@ import forge.util.MyRandom;
public class FightAi extends SpellAbilityAi { public class FightAi extends SpellAbilityAi {
@Override @Override
protected boolean checkAiLogic(final Player ai, final SpellAbility sa, final String aiLogic) { protected boolean checkAiLogic(final Player ai, final SpellAbility sa, final String aiLogic) {
if (sa.hasParam("FightWithToughness")) {
// TODO: add ailogic
return false;
}
return super.checkAiLogic(ai, sa, aiLogic); return super.checkAiLogic(ai, sa, aiLogic);
} }

View File

@@ -144,11 +144,10 @@ public abstract class CardTraitBase extends GameObject implements IHasCardView,
public KeywordInterface getKeyword() { public KeywordInterface getKeyword() {
return this.keyword; return this.keyword;
} }
public void setKeyword(final KeywordInterface kw) { public void setKeyword(final KeywordInterface kw) {
this.keyword = kw; this.keyword = kw;
} }
/** /**
* <p> * <p>
* isSecondary. * isSecondary.

View File

@@ -193,6 +193,8 @@ public class ForgeScript {
} else if (property.equals("hasTapCost")) { } else if (property.equals("hasTapCost")) {
Cost cost = sa.getPayCosts(); Cost cost = sa.getPayCosts();
return cost != null && cost.hasTapCost(); return cost != null && cost.hasTapCost();
} else if (property.equals("Backup")) {
return sa.isBackup();
} else if (property.equals("Blitz")) { } else if (property.equals("Blitz")) {
return sa.isBlitz(); return sa.isBlitz();
} else if (property.equals("Buyback")) { } else if (property.equals("Buyback")) {

View File

@@ -478,12 +478,17 @@ public class GameAction {
} }
} }
// 400.7a Effects from static abilities that give a permanent spell on the stack an ability if (zoneFrom.is(ZoneType.Stack) && toBattlefield) {
// that allows it to be cast for an alternative cost continue to apply to the permanent that spell becomes. // 400.7a Effects from static abilities that give a permanent spell on the stack an ability
if (zoneFrom.is(ZoneType.Stack) && toBattlefield && c.getCastSA() != null && !c.getCastSA().isIntrinsic() && c.getCastSA().getKeyword() != null) { // that allows it to be cast for an alternative cost continue to apply to the permanent that spell becomes.
KeywordInterface ki = c.getCastSA().getKeyword(); if (c.getCastSA() != null && !c.getCastSA().isIntrinsic() && c.getCastSA().getKeyword() != null) {
ki.setHostCard(copied); KeywordInterface ki = c.getCastSA().getKeyword();
copied.addChangedCardKeywordsInternal(ImmutableList.of(ki), null, false, copied.getTimestamp(), 0, true); ki.setHostCard(copied);
copied.addChangedCardKeywordsInternal(ImmutableList.of(ki), null, false, copied.getTimestamp(), 0, true);
}
// 607.2q linked ability can find cards exiled as cost while it was a spell
copied.addExiledCards(c.getExiledCards());
} }
} }
@@ -580,12 +585,10 @@ public class GameAction {
// 400.7g try adding keyword back into card if it doesn't already have it // 400.7g try adding keyword back into card if it doesn't already have it
if (zoneTo.is(ZoneType.Stack) && cause != null && cause.isSpell() && !cause.isIntrinsic() && c.equals(cause.getHostCard())) { if (zoneTo.is(ZoneType.Stack) && cause != null && cause.isSpell() && !cause.isIntrinsic() && c.equals(cause.getHostCard())) {
if (cause.getKeyword() != null) { if (cause.getKeyword() != null && !copied.getKeywords().contains(cause.getKeyword())) {
if (!copied.getKeywords().contains(cause.getKeyword())) { copied.addChangedCardKeywordsInternal(ImmutableList.of(cause.getKeyword()), null, false, game.getNextTimestamp(), 0, false);
copied.addChangedCardKeywordsInternal(ImmutableList.of(cause.getKeyword()), null, false, game.getNextTimestamp(), 0, false); // update Keyword Cache
// update Keyword Cache copied.updateKeywords();
copied.updateKeywords();
}
} }
} }

View File

@@ -568,7 +568,9 @@ public class AbilityUtils {
val = c == null ? 0 : xCount(c, calcX[1], ability); val = c == null ? 0 : xCount(c, calcX[1], ability);
} else if (calcX[0].startsWith("ExiledWith")) { } else if (calcX[0].startsWith("ExiledWith")) {
val = handlePaid(card.getExiledCards(), calcX[1], card, ability); val = handlePaid(card.getExiledCards(), calcX[1], card, ability);
} } else if (calcX[0].startsWith("Convoked")) {
val = handlePaid(card.getConvoked(), calcX[1], card, ability);
}
else if (calcX[0].startsWith("Remembered")) { else if (calcX[0].startsWith("Remembered")) {
// Add whole Remembered list to handlePaid // Add whole Remembered list to handlePaid
final CardCollection list = new CardCollection(); final CardCollection list = new CardCollection();
@@ -1781,6 +1783,11 @@ public class AbilityUtils {
return doXMath(Integer.parseInt(kicked ? sq[1] : sq[2]), expr, c, ctb); return doXMath(Integer.parseInt(kicked ? sq[1] : sq[2]), expr, c, ctb);
} }
// Count$Madness.<True>.<False>
if (sq[0].startsWith("Madness")) {
return doXMath(calculateAmount(c, sq[sa.isMadness() ? 1 : 2], ctb), expr, c, ctb);
}
//Count$HasNumChosenColors.<DefinedCards related to spellability> //Count$HasNumChosenColors.<DefinedCards related to spellability>
if (sq[0].contains("HasNumChosenColors")) { if (sq[0].contains("HasNumChosenColors")) {
int sum = 0; int sum = 0;
@@ -2004,10 +2011,6 @@ public class AbilityUtils {
final boolean isMulti = c.getColor().isMulticolor(); final boolean isMulti = c.getColor().isMulticolor();
return doXMath(Integer.parseInt(sq[isMulti ? 1 : 2]), expr, c, ctb); return doXMath(Integer.parseInt(sq[isMulti ? 1 : 2]), expr, c, ctb);
} }
// Count$Madness.<True>.<False>
if (sq[0].startsWith("Madness")) {
return doXMath(calculateAmount(c, sq[c.isMadness() ? 1 : 2], ctb), expr, c, ctb);
}
// Count$Foretold.<True>.<False> // Count$Foretold.<True>.<False>
if (sq[0].startsWith("Foretold")) { if (sq[0].startsWith("Foretold")) {

View File

@@ -1,28 +1,15 @@
package forge.game.ability; package forge.game.ability;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.StringTokenizer;
import org.apache.commons.lang3.StringUtils;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.google.common.collect.Table; import com.google.common.collect.Table;
import forge.GameCommand; import forge.GameCommand;
import forge.card.MagicColor; import forge.card.MagicColor;
import forge.game.Game; import forge.game.Game;
import forge.game.GameEntity; import forge.game.GameEntity;
import forge.game.GameObject; import forge.game.GameObject;
import forge.game.card.Card; import forge.game.card.*;
import forge.game.card.CardCollection;
import forge.game.card.CardCollectionView;
import forge.game.card.CardUtil;
import forge.game.card.CardZoneTable;
import forge.game.combat.Combat; import forge.game.combat.Combat;
import forge.game.phase.PhaseType; import forge.game.phase.PhaseType;
import forge.game.player.Player; import forge.game.player.Player;
@@ -41,6 +28,9 @@ import forge.util.Lang;
import forge.util.Localizer; import forge.util.Localizer;
import forge.util.TextUtil; import forge.util.TextUtil;
import forge.util.collect.FCollection; import forge.util.collect.FCollection;
import org.apache.commons.lang3.StringUtils;
import java.util.*;
/** /**
* <p> * <p>
@@ -192,7 +182,7 @@ public abstract class SpellAbilityEffect {
} else { } else {
objs = AbilityUtils.getDefinedObjects(sa.getHostCard(), t, sa); objs = AbilityUtils.getDefinedObjects(sa.getHostCard(), t, sa);
} }
sb.append(StringUtils.join(objs, ", ")); sb.append(Lang.joinHomogenous(objs));
} }
} else { } else {
sb.append(t); sb.append(t);
@@ -911,8 +901,8 @@ public abstract class SpellAbilityEffect {
if (cause.isReplacementAbility() && exilingSource.isLKI()) { if (cause.isReplacementAbility() && exilingSource.isLKI()) {
exilingSource = exilingSource.getGame().getCardState(exilingSource); exilingSource = exilingSource.getGame().getCardState(exilingSource);
} }
// only want this on permanents // avoid storing this on "inactive" cards
if (exilingSource.isImmutable() || exilingSource.isInPlay()) { if (exilingSource.isImmutable() || exilingSource.isInPlay() || exilingSource.isInZone(ZoneType.Stack)) {
// make sure it gets updated // make sure it gets updated
exilingSource.removeExiledCard(movedCard); exilingSource.removeExiledCard(movedCard);
exilingSource.addExiledCard(movedCard); exilingSource.addExiledCard(movedCard);

View File

@@ -5,6 +5,7 @@ import forge.game.GameEntity;
import forge.game.GameEntityCounterTable; import forge.game.GameEntityCounterTable;
import forge.game.ability.AbilityUtils; import forge.game.ability.AbilityUtils;
import forge.game.card.Card; import forge.game.card.Card;
import forge.game.card.CardCollection;
import forge.game.card.CardDamageMap; import forge.game.card.CardDamageMap;
import forge.game.card.CardLists; import forge.game.card.CardLists;
import forge.game.spellability.SpellAbility; import forge.game.spellability.SpellAbility;
@@ -20,10 +21,9 @@ public class DamageEachEffect extends DamageBaseEffect {
@Override @Override
protected String getStackDescription(SpellAbility sa) { protected String getStackDescription(SpellAbility sa) {
final StringBuilder sb = new StringBuilder(); final StringBuilder sb = new StringBuilder();
final String damage = sa.getParam("NumDmg"); final int iDmg = AbilityUtils.calculateAmount(sa.getHostCard(), sa.getParam("NumDmg"), sa);
final int iDmg = AbilityUtils.calculateAmount(sa.getHostCard(), damage, sa);
String desc = sa.getParam("ValidCards"); String desc = sa.getParamOrDefault("ValidCards", "");
if (sa.hasParam("ValidDescription")) { if (sa.hasParam("ValidDescription")) {
desc = sa.getParam("ValidDescription"); desc = sa.getParam("ValidDescription");
} }
@@ -35,18 +35,9 @@ public class DamageEachEffect extends DamageBaseEffect {
dmg += iDmg + " damage"; dmg += iDmg + " damage";
} }
if (sa.hasParam("StackDescription")) { sb.append("Each ").append(desc).append(" deals ").append(dmg).append(" to ");
sb.append(sa.getParam("StackDescription")); sb.append(Lang.joinHomogenous(getTargetEntities(sa))).append(".");
} else {
sb.append("Each ").append(desc).append(" deals ").append(dmg).append(" to ");
Lang.joinHomogenous(getTargetPlayers(sa));
if (sa.hasParam("DefinedCards")) {
if (sa.getParam("DefinedCards").equals("Self")) {
sb.append(" itself");
}
}
}
sb.append(".");
return sb.toString(); return sb.toString();
} }
@@ -58,10 +49,16 @@ public class DamageEachEffect extends DamageBaseEffect {
public void resolve(SpellAbility sa) { public void resolve(SpellAbility sa) {
final Card card = sa.getHostCard(); final Card card = sa.getHostCard();
final Game game = card.getGame(); final Game game = card.getGame();
final String num = sa.getParamOrDefault("NumDmg", "X");
FCollectionView<Card> sources = game.getCardsIn(ZoneType.Battlefield); FCollectionView<Card> sources;
if (sa.hasParam("ValidCards")) { if (sa.hasParam("DefinedDamagers")) {
sources = CardLists.getValidCards(sources, sa.getParam("ValidCards"), sa.getActivatingPlayer(), card, sa); sources = AbilityUtils.getDefinedCards(card, sa.getParam("DefinedDamagers"), sa);
} else {
sources = game.getCardsIn(ZoneType.Battlefield);
if (sa.hasParam("ValidCards")) {
sources = CardLists.getValidCards(sources, sa.getParam("ValidCards"), sa.getActivatingPlayer(), card, sa);
}
} }
boolean usedDamageMap = true; boolean usedDamageMap = true;
@@ -77,12 +74,30 @@ public class DamageEachEffect extends DamageBaseEffect {
usedDamageMap = false; usedDamageMap = false;
} }
for (final GameEntity ge : getTargetEntities(sa, "DefinedPlayers")) { if (sa.hasParam("EachToItself")) {
for (final Card source : sources) { for (final Card source : sources) {
final Card sourceLKI = game.getChangeZoneLKIInfo(source); final Card sourceLKI = game.getChangeZoneLKIInfo(source);
// TODO shouldn't that be using Num or something first? final int dmg = AbilityUtils.calculateAmount(source, num, sa);
final int dmg = AbilityUtils.calculateAmount(source, "X", sa); damageMap.put(sourceLKI, source, dmg);
}
} else if (sa.hasParam("ToEachOther")) {
final CardCollection targets = AbilityUtils.getDefinedCards(card, sa.getParam("ToEachOther"), sa);
for (final Card damager : targets) {
for (final Card c : targets) {
if (!c.equals(damager)) {
final Card sourceLKI = game.getChangeZoneLKIInfo(damager);
final int dmg = AbilityUtils.calculateAmount(damager, num, sa);
damageMap.put(sourceLKI, c, dmg);
}
}
}
} else for (final GameEntity ge : getTargetEntities(sa)) {
for (final Card source : sources) {
final Card sourceLKI = game.getChangeZoneLKIInfo(source);
final int dmg = AbilityUtils.calculateAmount(source, num, sa);
if (ge instanceof Card) { if (ge instanceof Card) {
final Card c = (Card) ge; final Card c = (Card) ge;
@@ -95,30 +110,6 @@ public class DamageEachEffect extends DamageBaseEffect {
} }
} }
if (sa.hasParam("DefinedCards")) {
if (sa.getParam("DefinedCards").equals("Self")) {
for (final Card source : sources) {
final Card sourceLKI = game.getChangeZoneLKIInfo(source);
final int dmg = AbilityUtils.calculateAmount(source, "X", sa);
damageMap.put(sourceLKI, source, dmg);
}
}
if (sa.getParam("DefinedCards").equals("Remembered")) {
for (final Card source : sources) {
final int dmg = AbilityUtils.calculateAmount(source, "X", sa);
final Card sourceLKI = source.getGame().getChangeZoneLKIInfo(source);
for (final Object o : card.getRemembered()) {
if (o instanceof Card) {
Card rememberedcard = (Card) o;
damageMap.put(sourceLKI, rememberedcard, dmg);
}
}
}
}
}
if (!usedDamageMap) { if (!usedDamageMap) {
game.getAction().dealDamage(false, damageMap, preventMap, counterTable, sa); game.getAction().dealDamage(false, damageMap, preventMap, counterTable, sa);
} }

View File

@@ -147,7 +147,6 @@ public class FightEffect extends DamageBaseEffect {
} }
private void dealDamage(final SpellAbility sa, Card fighterA, Card fighterB) { private void dealDamage(final SpellAbility sa, Card fighterA, Card fighterB) {
boolean fightToughness = sa.hasParam("FightWithToughness");
boolean usedDamageMap = true; boolean usedDamageMap = true;
CardDamageMap damageMap = sa.getDamageMap(); CardDamageMap damageMap = sa.getDamageMap();
@@ -168,11 +167,11 @@ public class FightEffect extends DamageBaseEffect {
// 701.12c If a creature fights itself, it deals damage to itself equal to twice its power. // 701.12c If a creature fights itself, it deals damage to itself equal to twice its power.
final int dmg1 = fightToughness ? fighterA.getNetToughness() : fighterA.getNetPower(); final int dmg1 = fighterA.getNetPower();
if (fighterA.equals(fighterB)) { if (fighterA.equals(fighterB)) {
damageMap.put(fighterA, fighterA, dmg1 * 2); damageMap.put(fighterA, fighterA, dmg1 * 2);
} else { } else {
final int dmg2 = fightToughness ? fighterB.getNetToughness() : fighterB.getNetPower(); final int dmg2 = fighterB.getNetPower();
damageMap.put(fighterA, fighterB, dmg1); damageMap.put(fighterA, fighterB, dmg1);
damageMap.put(fighterB, fighterA, dmg2); damageMap.put(fighterB, fighterA, dmg2);

View File

@@ -245,7 +245,7 @@ public class ManaEffect extends SpellAbilityEffect {
producedMana.append(abMana.produceMana(mana, p, sa)); producedMana.append(abMana.produceMana(mana, p, sa));
} }
abMana.tapsForMana(sa, producedMana.toString()); abMana.tapsForMana(sa.getRootAbility(), producedMana.toString());
// Only clear express choice after mana has been produced // Only clear express choice after mana has been produced
abMana.clearExpressChoice(); abMana.clearExpressChoice();

View File

@@ -33,7 +33,7 @@ public class ManaReflectedEffect extends SpellAbilityEffect {
producedMana.append(ma.produceMana(generated, player, sa)); producedMana.append(ma.produceMana(generated, player, sa));
} }
ma.tapsForMana(sa, producedMana.toString()); ma.tapsForMana(sa.getRootAbility(), producedMana.toString());
} }
// *************** Utility Functions ********************** // *************** Utility Functions **********************

View File

@@ -314,6 +314,7 @@ public class PlayEffect extends SpellAbilityEffect {
// only one mode can be used // only one mode can be used
tgtSA = sa.getActivatingPlayer().getController().getAbilityToPlay(tgtCard, sas); tgtSA = sa.getActivatingPlayer().getController().getAbilityToPlay(tgtCard, sas);
} }
// in case player canceled from choice dialog // in case player canceled from choice dialog
if (tgtSA == null) { if (tgtSA == null) {
if (wasFaceDown) { if (wasFaceDown) {

View File

@@ -2303,10 +2303,18 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
|| keyword.startsWith("Specialize") || keyword.equals("Ravenous") || keyword.startsWith("Specialize") || keyword.equals("Ravenous")
|| keyword.equals("For Mirrodin")) { || keyword.equals("For Mirrodin")) {
// 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"));
sb.append(" ").append(Localizer.getInstance().getMessage("lblSagaFooter")).append(" ").append(TextUtil.toRoman(getFinalChapterNr())).append("."); sb.append(" ").append(Localizer.getInstance().getMessage("lblSagaFooter")).append(" ").append(TextUtil.toRoman(getFinalChapterNr())).append(".");
sb.append(")").append("\r\n\r\n"); sb.append(")").append("\r\n\r\n");
} else if (keyword.startsWith("Backup")) {
final String[] k = keyword.split(":");
sb.append(k[0]).append(" ").append(k[1]).append(" (");
String remStr = inst.getReminderText();
if (k[2].endsWith("s")) {
remStr = remStr.replace("ability", "abilities");
}
sb.append(remStr).append(")");
} else if (keyword.startsWith("MayEffectFromOpening")) { } else if (keyword.startsWith("MayEffectFromOpening")) {
final String[] k = keyword.split(":"); final String[] k = keyword.split(":");
// need to get SpellDescription from Svar // need to get SpellDescription from Svar
@@ -2325,7 +2333,7 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
sbLong.append("\r\n"); sbLong.append("\r\n");
} }
if (keyword.equals("Flash")) { if (keyword.equals("Flash") || keyword.startsWith("Backup")) {
sb.append("\r\n\r\n"); sb.append("\r\n\r\n");
i = 0; i = 0;
} else { } else {

View File

@@ -839,6 +839,31 @@ public class CardFactoryUtil {
sa.setBlessing(true); sa.setBlessing(true);
} }
} }
} else if (keyword.startsWith("Backup")) {
final String[] k = keyword.split(":");
final String magnitude = k[1];
final String backupVar = card.getSVar(k[2]);
String descStr = "Backup " + magnitude;
final String trigStr = "Mode$ ChangesZone | Destination$ Battlefield | ValidCard$ Card.Self | " +
"Secondary$ True | TriggerDescription$ " + descStr;
final String putCounter = "DB$ PutCounter | ValidTgts$ Creature | CounterNum$ " + magnitude
+ " | CounterType$ P1P1 | Backup$ True";
final String addAbility = backupVar + " | ConditionDefined$ Targeted | " +
"ConditionPresent$ Card.Other | Defined$ Targeted";
SpellAbility sa = AbilityFactory.getAbility(putCounter, card);
AbilitySub backupSub = (AbilitySub) AbilityFactory.getAbility(addAbility, card);
sa.setSubAbility(backupSub);
final Trigger trigger = TriggerHandler.parseTrigger(trigStr, card, intrinsic);
sa.setIntrinsic(intrinsic);
trigger.setOverridingAbility(sa);
inst.addTrigger(trigger);
} else if (keyword.equals("Battle cry")) { } else if (keyword.equals("Battle cry")) {
final String trig = "Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Secondary$ True " final String trig = "Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Secondary$ True "
+ " | TriggerDescription$ " + keyword + " (" + inst.getReminderText() + ")"; + " | TriggerDescription$ " + keyword + " (" + inst.getReminderText() + ")";
@@ -1151,7 +1176,7 @@ public class CardFactoryUtil {
} else if (keyword.equals("Extort")) { } else if (keyword.equals("Extort")) {
final String extortTrigger = "Mode$ SpellCast | ValidCard$ Card | ValidActivatingPlayer$ You | " final String extortTrigger = "Mode$ SpellCast | ValidCard$ Card | ValidActivatingPlayer$ You | "
+ "TriggerZones$ Battlefield | Secondary$ True" + "TriggerZones$ Battlefield | Secondary$ True"
+ " | TriggerDescription$ Extort ("+ inst.getReminderText() +")"; + " | TriggerDescription$ Extort (" + inst.getReminderText() + ")";
final String loseLifeStr = "AB$ LoseLife | Cost$ WB | Defined$ Player.Opponent | LifeAmount$ 1"; final String loseLifeStr = "AB$ LoseLife | Cost$ WB | Defined$ Player.Opponent | LifeAmount$ 1";
final String gainLifeStr = "DB$ GainLife | Defined$ You | LifeAmount$ AFLifeLost"; final String gainLifeStr = "DB$ GainLife | Defined$ You | LifeAmount$ AFLifeLost";
@@ -2687,7 +2712,7 @@ public class CardFactoryUtil {
if (keyword.startsWith("Alternative Cost") && !host.isLand()) { if (keyword.startsWith("Alternative Cost") && !host.isLand()) {
final String[] kw = keyword.split(":"); final String[] kw = keyword.split(":");
String costStr = kw[1]; String costStr = kw[1];
for (SpellAbility sa: host.getBasicSpells()) { for (SpellAbility sa : host.getBasicSpells()) {
if (costStr.equals("ConvertedManaCost")) { if (costStr.equals("ConvertedManaCost")) {
costStr = Integer.toString(host.getCMC()); costStr = Integer.toString(host.getCMC());
} }

View File

@@ -989,6 +989,18 @@ public class CardProperty {
if (card.getTurnInZone() <= sourceController.getLastTurnNr()) { if (card.getTurnInZone() <= sourceController.getLastTurnNr()) {
return false; return false;
} }
} else if (property.startsWith("ThisTurnEnteredFrom")) {
final String restrictions = property.split("ThisTurnEnteredFrom_")[1];
final String[] res = restrictions.split("_");
final ZoneType origin = ZoneType.smartValueOf(res[0]);
if (card.getTurnInZone() != game.getPhaseHandler().getTurn()) {
return false;
}
if (!card.getZone().isCardAddedThisTurn(card, origin)) {
return false;
}
} else if (property.startsWith("ThisTurnEntered")) { } else if (property.startsWith("ThisTurnEntered")) {
// only check if it entered the Zone this turn // only check if it entered the Zone this turn
if (card.getTurnInZone() != game.getPhaseHandler().getTurn()) { if (card.getTurnInZone() != game.getPhaseHandler().getTurn()) {
@@ -1012,18 +1024,6 @@ public class CardProperty {
if (card.getTurnInZone() == game.getPhaseHandler().getTurn()) { if (card.getTurnInZone() == game.getPhaseHandler().getTurn()) {
return false; return false;
} }
} else if (property.startsWith("ThisTurnEnteredFrom")) {
final String restrictions = property.split("ThisTurnEnteredFrom_")[1];
final String[] res = restrictions.split("_");
final ZoneType origin = ZoneType.smartValueOf(res[0]);
if (card.getTurnInZone() != game.getPhaseHandler().getTurn()) {
return false;
}
if (!card.getZone().isCardAddedThisTurn(card, origin)) {
return false;
}
} else if (property.equals("DiscardedThisTurn")) { } else if (property.equals("DiscardedThisTurn")) {
if (card.getTurnInZone() != game.getPhaseHandler().getTurn()) { if (card.getTurnInZone() != game.getPhaseHandler().getTurn()) {
return false; return false;

View File

@@ -28,6 +28,7 @@ public enum Keyword {
ASSIST("Assist", SimpleKeyword.class, true, "Another player can pay up to %s of this spell's cost."), ASSIST("Assist", SimpleKeyword.class, true, "Another player can pay up to %s of this spell's cost."),
AURA_SWAP("Aura swap", KeywordWithCost.class, false, "%s: You may exchange this Aura with an Aura card in your hand."), AURA_SWAP("Aura swap", KeywordWithCost.class, false, "%s: You may exchange this Aura with an Aura card in your hand."),
AWAKEN("Awaken", KeywordWithCostAndAmount.class, false, "If you cast this spell for %s, also put {%d:+1/+1 counter} on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land."), AWAKEN("Awaken", KeywordWithCostAndAmount.class, false, "If you cast this spell for %s, also put {%d:+1/+1 counter} on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land."),
BACKUP("Backup", KeywordWithAmount.class, false, "When this creature enters the battlefield, put {%1$d:+1/+1 counter} on target creature. If that's another creature, it gains the following ability until end of turn."),
BANDING("Banding", SimpleKeyword.class, true, "Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking."), BANDING("Banding", SimpleKeyword.class, true, "Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking."),
BATTLE_CRY("Battle cry", SimpleKeyword.class, false, "Whenever this creature attacks, each other attacking creature gets +1/+0 until end of turn."), BATTLE_CRY("Battle cry", SimpleKeyword.class, false, "Whenever this creature attacks, each other attacking creature gets +1/+0 until end of turn."),
BESTOW("Bestow", KeywordWithCost.class, false, "If you cast this card for its bestow cost, it's an Aura spell with enchant creature. It becomes a creature again if it's not attached to a creature."), BESTOW("Bestow", KeywordWithCost.class, false, "If you cast this card for its bestow cost, it's an Aura spell with enchant creature. It becomes a creature again if it's not attached to a creature."),

View File

@@ -17,8 +17,8 @@ public class KeywordWithAmount extends KeywordInstance<KeywordWithAmount> {
if (details.contains(":")) { if (details.contains(":")) {
extra = details.split(":")[1]; extra = details.split(":")[1];
} }
} else { } else {
amount = Integer.parseInt(details); amount = details.contains(":") ? Integer.parseInt(details.split(":")[0]) : Integer.parseInt(details);
} }
} }

View File

@@ -508,6 +508,10 @@ public abstract class SpellAbility extends CardTraitBase implements ISpellAbilit
return isAlternativeCost(AlternativeCost.Cycling); return isAlternativeCost(AlternativeCost.Cycling);
} }
public boolean isBackup() {
return this.hasParam("Backup");
}
public boolean isBoast() { public boolean isBoast() {
return this.hasParam("Boast"); return this.hasParam("Boast");
} }

View File

@@ -164,6 +164,9 @@ public class Forge implements ApplicationListener {
frameRate = new FrameRate(); frameRate = new FrameRate();
animationBatch = new SpriteBatch(); animationBatch = new SpriteBatch();
inputProcessor = new MainInputProcessor(); inputProcessor = new MainInputProcessor();
//screenWidth and screenHeight should be set initially and only change upon restarting the app
screenWidth = Gdx.app.getGraphics().getWidth();
screenHeight = Gdx.app.getGraphics().getHeight();
Gdx.input.setInputProcessor(inputProcessor); Gdx.input.setInputProcessor(inputProcessor);
/* /*
@@ -958,15 +961,15 @@ public class Forge implements ApplicationListener {
@Override @Override
public void resize(int width, int height) { public void resize(int width, int height) {
try { try {
screenWidth = width;
screenHeight = height;
if (currentScreen != null) { if (currentScreen != null) {
currentScreen.setSize(width, height); currentScreen.setSize(width, height);
} else if (splashScreen != null) { } else if (splashScreen != null) {
splashScreen.setSize(width, height); splashScreen.setSize(width, height);
} }
if (currentScene != null)
currentScene.resize(width, height);
} catch (Exception ex) { } catch (Exception ex) {
graphics.end(); //graphics.end();
//check if sentry is enabled, if not it will call the gui interface but here we end the graphics so we only send it via sentry.. //check if sentry is enabled, if not it will call the gui interface but here we end the graphics so we only send it via sentry..
if (BugReporter.isSentryEnabled()) if (BugReporter.isSentryEnabled())
BugReporter.reportException(ex); BugReporter.reportException(ex);

View File

@@ -93,6 +93,9 @@ public abstract class Scene implements Disposable {
public void updateInput() { public void updateInput() {
} }
public void resize(int width, int height) {
}
} }

View File

@@ -192,7 +192,6 @@ public class UIScene extends Scene {
} }
public UIScene(String uiFilePath) { public UIScene(String uiFilePath) {
uiFile = uiFilePath; uiFile = uiFilePath;
stage = new Stage(new ScalingViewport(Scaling.stretch, getIntendedWidth(), getIntendedHeight())) { stage = new Stage(new ScalingViewport(Scaling.stretch, getIntendedWidth(), getIntendedHeight())) {
@Override @Override
@@ -711,4 +710,9 @@ public class UIScene extends Scene {
super.updateInput(); super.updateInput();
Gdx.input.setInputProcessor(stage); Gdx.input.setInputProcessor(stage);
} }
@Override
public void resize(int width, int height) {
stage.getViewport().update(width, height, true);
}
} }

View File

@@ -285,7 +285,7 @@ public class RewardActor extends Actor implements Disposable, ImageFetcher.Callb
Sprite item = reward.getItem().sprite(); Sprite item = reward.getItem().sprite();
setItemTooltips(item, backSprite); setItemTooltips(item, backSprite);
boolean isQuestItemLoot = RewardScene.Type.Loot.equals(type) && reward.getItem().questItem; boolean isQuestItemLoot = RewardScene.Type.Loot.equals(type) && reward.getItem().questItem;
processSprite(backSprite, item, isQuestItemLoot ? Controls.newTextraLabel("[%]" + reward.getItem().name) : null, 0, -10); processSprite(backSprite, item, isQuestItemLoot ? Controls.newTextraLabel("[%]" + reward.getItem().name) : null, 0, isQuestItemLoot ? -10 : 0);
needsToBeDisposed = true; needsToBeDisposed = true;
break; break;
} }

View File

@@ -166,7 +166,33 @@ public enum FSkinTexture implements FImage {
Interplanar_Tunnel(ForgeConstants.BG_83, false, true), Interplanar_Tunnel(ForgeConstants.BG_83, false, true),
Morphic_Tide(ForgeConstants.BG_84, false, true), Morphic_Tide(ForgeConstants.BG_84, false, true),
Mutual_Epiphany(ForgeConstants.BG_85, false, true), Mutual_Epiphany(ForgeConstants.BG_85, false, true),
Time_Distortion(ForgeConstants.BG_86, false, true); Time_Distortion(ForgeConstants.BG_86, false, true),
Enigma_Ridges(ForgeConstants.BG_87, false, true),
Esper(ForgeConstants.BG_88, false, true),
Ghirapur(ForgeConstants.BG_89, false, true),
Inys_Haen(ForgeConstants.BG_90, false, true),
Ketria(ForgeConstants.BG_91, false, true),
Littiara(ForgeConstants.BG_92, false, true),
Megaflora_Jungle(ForgeConstants.BG_93, false, true),
Naktamun(ForgeConstants.BG_94, false, true),
New_Argive(ForgeConstants.BG_95, false, true),
Norns_Seedcore(ForgeConstants.BG_96, false, true),
Nyx(ForgeConstants.BG_97, false, true),
Paliano(ForgeConstants.BG_98, false, true),
Riptide_Island(ForgeConstants.BG_99, false, true),
Strixhaven(ForgeConstants.BG_100, false, true),
Ten_Wizards_Mountain(ForgeConstants.BG_101, false, true),
The_Caldaia(ForgeConstants.BG_102, false, true),
The_Fertile_Lands_of_Saulvinia(ForgeConstants.BG_103, false, true),
The_Golden_City_of_Orazca(ForgeConstants.BG_104, false, true),
The_Great_Aerie(ForgeConstants.BG_105, false, true),
The_Pit(ForgeConstants.BG_106, false, true),
The_Western_Cloud(ForgeConstants.BG_107, false, true),
The_Wilds(ForgeConstants.BG_108, false, true),
Towashi(ForgeConstants.BG_109, false, true),
Unyaro(ForgeConstants.BG_110, false, true),
Valors_Reach(ForgeConstants.BG_111, false, true);
private final String filename; private final String filename;
private final boolean repeat; private final boolean repeat;

View File

@@ -74,10 +74,13 @@ public class VStack extends FDropDown {
final Set<ZoneType> zones = new HashSet<>(); final Set<ZoneType> zones = new HashSet<>();
playersWithValidTargets = new HashMap<>(); playersWithValidTargets = new HashMap<>();
for (final CardView c : activeStackInstance.getTargetCards()) { FCollectionView<CardView> targetCards = activeStackInstance.getTargetCards();
if (c.getZone() != null) { if (targetCards != null) {
zones.add(c.getZone()); for (final CardView c : targetCards) {
playersWithValidTargets.put(c.getController(), c); if (c.getZone() != null) {
zones.add(c.getZone());
playersWithValidTargets.put(c.getController(), c);
}
} }
} }
if (zones.isEmpty() || playersWithValidTargets.isEmpty()) { return; } if (zones.isEmpty() || playersWithValidTargets.isEmpty()) { return; }

View File

@@ -1,7 +1,7 @@
Name:Slobad's Iron Boots Name:Slobad's Iron Boots
ManaCost:no cost ManaCost:no cost
Types:Artifact Types:Artifact
S:Mode$ Continuous | Affected$ Creature.YouCtrl+Artifact | AddToughness$ 1 | EffectZone$ Command | Description$ Artifact Creatures you control get +1/+1 S:Mode$ Continuous | Affected$ Creature.YouCtrl+Artifact | AddToughness$ 1 | AddPower$ 1 | EffectZone$ Command | Description$ Artifact Creatures you control get +1/+1
T:Mode$ ChangesZone | ValidCard$ Artifact.nonToken+YouCtrl | ActivationLimit$ 1 | Origin$ Battlefield | Destination$ Graveyard | Execute$ TrigToken | TriggerZones$ Command | TriggerDescription$ Whenever a nontoken artifact you control is put into a graveyard from the battlefield, create a colorless artifact token named Scrap. This ability triggers only once each turn. T:Mode$ ChangesZone | ValidCard$ Artifact.nonToken+YouCtrl | ActivationLimit$ 1 | Origin$ Battlefield | Destination$ Graveyard | Execute$ TrigToken | TriggerZones$ Command | TriggerDescription$ Whenever a nontoken artifact you control is put into a graveyard from the battlefield, create a colorless artifact token named Scrap. This ability triggers only once each turn.
SVar:TrigToken:DB$ Token | TokenScript$ scrap SVar:TrigToken:DB$ Token | TokenScript$ scrap
A:AB$ Token | Cost$ 4 PayShards<2> Sac<3/Artifact> | ActivationLimit$ 1 | ActivationZone$ Command | TokenScript$ c_0_0_a_construct_total_artifacts | TokenOwner$ You | SubAbility$ DBExileSelf | SpellDescription$ Create a 0/0 colorless Construct artifact creature token with "This creature gets +1/+1 for each artifact you control."Exile Slobad's Iron Boots A:AB$ Token | Cost$ 4 PayShards<2> Sac<3/Artifact> | ActivationLimit$ 1 | ActivationZone$ Command | TokenScript$ c_0_0_a_construct_total_artifacts | TokenOwner$ You | SubAbility$ DBExileSelf | SpellDescription$ Create a 0/0 colorless Construct artifact creature token with "This creature gets +1/+1 for each artifact you control."Exile Slobad's Iron Boots

View File

@@ -2,11 +2,11 @@ Name:Xira's Boss Effect
ManaCost:no cost ManaCost:no cost
Colors:black,green,red Colors:black,green,red
Types:Enchantment Types:Enchantment
S:Mode$ Continuous | Affected$ Insect.YouCtrl | EffectZone$ Command | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ Double Team | Description$ Nontoken insects you control have +1/+1 and Double Team. S:Mode$ Continuous | Affected$ Insect.YouCtrl | EffectZone$ Command | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ Double team | Description$ Nontoken insects you control have +1/+1 and Double Team.
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Command | Execute$ PutCounterAll | TriggerDescription$ At the beginning of your upkeep, put an egg counter on each nontoken creature. T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Command | Execute$ PutCounterAll | TriggerDescription$ At the beginning of your upkeep, put an egg counter on each nontoken creature.
SVar:PutCounterAll:DB$ PutCounterAll | ValidCards$ Creature.nonToken | CounterType$ EGG | CounterNum$ 1 SVar:PutCounterAll:DB$ PutCounterAll | ValidCards$ Creature.nonToken | CounterType$ EGG | CounterNum$ 1
T:Mode$ ChangesZone | Origin$ Battlefield | TriggerZones$ Command | Destination$ Graveyard | ValidCard$ Creature.counters_GE1_EGG+OppCtrl | Execute$ TrigDraw | TriggerDescription$ Whenever a creature with an egg counter on it dies, draw a card and create X 1/1 black Insect creature token with flying where X is the amount of Egg counters on that creature. T:Mode$ ChangesZone | Origin$ Battlefield | TriggerZones$ Command | Destination$ Graveyard | ValidCard$ Creature.counters_GE1_EGG | Execute$ TrigDraw | TriggerDescription$ Whenever a creature with an egg counter on it dies, draw a card and create X 1/1 black Insect creature token with flying where X is the amount of Egg counters on that creature.
SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1 | SubAbility$ DBToken SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1 | SubAbility$ DBToken
SVar:DBToken:DB$ Token | TokenScript$ b_1_1_insect_flying | TokenNum$ X SVar:DBToken:DB$ Token | TokenScript$ b_1_1_insect_flying | TokenAmount$ X
SVar:X:TriggeredCard$CardCounters.EGG SVar:X:TriggeredCard$CardCounters.EGG
Oracle:Nontoken insects you control have +1/+1 and Double Team\nAt the beginning of your upkeep, put an egg counter on each creature.\nWhen a creature with an egg counter dies, draw a card and create X 1/1 black Insect creature token with flying where X is the amount of Egg counters on that creature. Oracle:Nontoken insects you control have +1/+1 and Double Team\nAt the beginning of your upkeep, put an egg counter on each creature.\nWhen a creature with an egg counter dies, draw a card and create X 1/1 black Insect creature token with flying where X is the amount of Egg counters on that creature.

View File

@@ -5,7 +5,7 @@ Types:Creature Insect
PT:0/2 PT:0/2
K:Defender K:Defender
K:Reach K:Reach
S:Mode$ Continuous | Affected$ Insect.YouCtrl+nonToken | EffectZone$ Battlefield | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ Double Team | Description$ Nontoken Insects you control have +1/+1 and double team. S:Mode$ Continuous | Affected$ Insect.YouCtrl+nonToken | EffectZone$ Battlefield | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ Double team | Description$ Nontoken Insects you control have +1/+1 and double team.
T:Mode$ DamageDone | ActivationLimit$ 1 | ValidSource$ Card.OppCtrl,Emblem.OppCtrl | ValidTarget$ You | TriggerZones$ Battlefield | Execute$ TrigCounter | TriggerDescription$ When a source an opponent controls deals damage to you for the first time each turn, put an egg counter on CARDNAME. T:Mode$ DamageDone | ActivationLimit$ 1 | ValidSource$ Card.OppCtrl,Emblem.OppCtrl | ValidTarget$ You | TriggerZones$ Battlefield | Execute$ TrigCounter | TriggerDescription$ When a source an opponent controls deals damage to you for the first time each turn, put an egg counter on CARDNAME.
SVar:TrigCounter:DB$ PutCounter | CounterType$ EGG | CounterNum$ 1 SVar:TrigCounter:DB$ PutCounter | CounterType$ EGG | CounterNum$ 1
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ When CARDNAME dies, create X 1/1 black Insect tokens for each egg counter on CARDNAME. T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ When CARDNAME dies, create X 1/1 black Insect tokens for each egg counter on CARDNAME.

View File

@@ -1514,7 +1514,7 @@
<object id="183" template="../../obj/enemy.tx" x="67" y="940.5"> <object id="183" template="../../obj/enemy.tx" x="67" y="940.5">
<properties> <properties>
<property name="effect">{ <property name="effect">{
&quot;startBattleWithCardInCommandZone&quot;: [ &quot;Chandra, Supreme Pyromancer&quot; ] &quot;startBattleWithCardInCommandZone&quot;: [ &quot;Chandra, Bold Pyromancer&quot; ]
}</property> }</property>
<property name="enemy" value="Chandra"/> <property name="enemy" value="Chandra"/>
<property name="ignoreDungeonEffect" type="bool" value="false"/> <property name="ignoreDungeonEffect" type="bool" value="false"/>

View File

@@ -3,6 +3,6 @@ ManaCost:2 U
Types:Creature Drake Types:Creature Drake
PT:2/2 PT:2/2
K:Flying K:Flying
T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever CARDNAME attacks, another target creature you control gains flying until end of turn. T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever CARDNAME attacks, another target creature gains flying until end of turn.
SVar:TrigPump:DB$ Pump | ValidTgts$ Creature.Other+attacking | TgtPrompt$ Select another target attacking creature | KW$ Flying SVar:TrigPump:DB$ Pump | ValidTgts$ Creature.Other+attacking | TgtPrompt$ Select another target attacking creature | KW$ Flying
Oracle:Flying\nWhenever Aerial Guide attacks, another target attacking creature gains flying until end of turn. Oracle:Flying\nWhenever Aerial Guide attacks, another target attacking creature gains flying until end of turn.

View File

@@ -1,12 +1,9 @@
Name:Alpha Brawl Name:Alpha Brawl
ManaCost:6 R R ManaCost:6 R R
Types:Sorcery Types:Sorcery
A:SP$ Pump | Cost$ 6 R R | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target creature an opponent controls | RememberTargets$ True | StackDescription$ None | SubAbility$ AlphaAttack | SpellDescription$ Target creature an opponent controls deals damage equal to its power to each other creature that player controls, then each of those creatures deals damage equal to its power to that creature. A:SP$ Pump | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target creature an opponent controls | RememberTargets$ True | SubAbility$ AlphaAttack | StackDescription$ {c:Targeted} | SpellDescription$ Target creature an opponent controls
SVar:AlphaAttack:DB$ DamageAll | ValidCards$ Creature.IsNotRemembered+ControlledBy TargetedController | DamageSource$ Targeted | NumDmg$ Y | SubAbility$ SucksToBeAlpha | StackDescription$ Targeted creature deals damage equal to its power to each other creature that player controls, SVar:AlphaAttack:DB$ DamageAll | ValidCards$ Creature.IsNotRemembered+ControlledBy TargetedController | DamageSource$ Targeted | NumDmg$ Remembered$CardPower | SubAbility$ SucksToBeAlpha | StackDescription$ SpellDescription | SpellDescription$ deals damage equal to its power to each other creature that player controls,
SVar:SucksToBeAlpha:DB$ EachDamage | ValidCards$ Creature.IsNotRemembered+ControlledBy TargetedController | ValidDescription$ of those creatures | NumDmg$ X | DamageDesc$ damage equal to its power | DefinedCards$ Remembered | SubAbility$ DBCleanup | StackDescription$ then each of those creatures deals damage equal to its power to that creature SVar:SucksToBeAlpha:DB$ EachDamage | ValidCards$ Creature.IsNotRemembered+ControlledBy TargetedController | NumDmg$ Count$CardPower | Defined$ Remembered | SubAbility$ DBCleanup | StackDescription$ SpellDescription | SpellDescription$ then each of those creatures deals damage equal to its power to that creature.
#NumDmg isn't really used here. It is left for clarity. The AF pulls Damage straight from "X" hardcoded.
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:X:Count$CardPower
SVar:Y:Remembered$CardPower
AI:RemoveDeck:All AI:RemoveDeck:All
Oracle:Target creature an opponent controls deals damage equal to its power to each other creature that player controls, then each of those creatures deals damage equal to its power to that creature. Oracle:Target creature an opponent controls deals damage equal to its power to each other creature that player controls, then each of those creatures deals damage equal to its power to that creature.

View File

@@ -1,10 +1,6 @@
Name:Band Together Name:Band Together
ManaCost:2 G ManaCost:2 G
Types:Instant Types:Instant
A:SP$ Pump | Cost$ 2 G | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select up to two target creatures you control | ImprintCards$ ThisTargetedCard | AILogic$ PowerDmg | SubAbility$ DBPump | TargetMin$ 0 | TargetMax$ 2 | StackDescription$ SpellDescription | SpellDescription$ Up to two target creatures you control each deal damage equal to their power to another target creature. A:SP$ Pump | TargetMin$ 0 | TargetMax$ 2 | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select up to two target creatures you control | AILogic$ PowerDmg | SubAbility$ DBEachDamage | StackDescription$ {c:ThisTargetedCard} | SpellDescription$ Up to two target creatures you control
SVar:DBPump:DB$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature to be dealt damage | RememberObjects$ ThisTargetedCard | IsCurse$ True | SubAbility$ DBEachDamage | StackDescription$ None SVar:DBEachDamage:DB$ EachDamage | DefinedDamagers$ ParentTarget | ValidTgts$ Creature | TgtPrompt$ Select another target creature | TargetUnique$ True | NumDmg$ Count$CardPower | StackDescription$ REP another target creature_{c:ThisTargetedCard} | SpellDescription$ each deal damage equal to their power to another target creature.
SVar:DBEachDamage:DB$ EachDamage | ValidCards$ Creature.IsImprinted | NumDmg$ X | DamageDesc$ damage equal to its power | DefinedCards$ Remembered | SubAbility$ DBCleanup | StackDescription$ None
#NumDmg isn't really used here. It is left for clarity. The AF pulls Damage straight from "X" hardcoded.
SVar:X:Count$CardPower
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True
Oracle:Up to two target creatures you control each deal damage equal to their power to another target creature. Oracle:Up to two target creatures you control each deal damage equal to their power to another target creature.

View File

@@ -2,9 +2,9 @@ Name:Bridge from Below
ManaCost:B B B ManaCost:B B B
Types:Enchantment Types:Enchantment
A:SP$ PermanentNoncreature | Cost$ B B B | AILogic$ DontCast A:SP$ PermanentNoncreature | Cost$ B B B | AILogic$ DontCast
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.nonToken+YouOwn | Execute$ TrigToken | TriggerZones$ Graveyard | TriggerDescription$ Whenever a nontoken creature is put into your graveyard from the battlefield, if CARDNAME is in your graveyard, create a 2/2 black Zombie creature token. T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.nonToken+YouOwn | Execute$ TrigToken | IsPresent$ Card.StrictlySelf | PresentZone$ Graveyard | TriggerZones$ Graveyard | TriggerDescription$ Whenever a nontoken creature is put into your graveyard from the battlefield, if CARDNAME is in your graveyard, create a 2/2 black Zombie creature token.
SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ b_2_2_zombie | TokenOwner$ You SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ b_2_2_zombie | TokenOwner$ You
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | TriggerZones$ Graveyard | ValidCard$ Creature.OppOwn | Execute$ TrigChange | TriggerDescription$ When a creature is put into an opponent's graveyard from the battlefield, if CARDNAME is in your graveyard, exile CARDNAME. T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.OppOwn | Execute$ TrigChange | IsPresent$ Card.StrictlySelf | PresentZone$ Graveyard | TriggerZones$ Graveyard | TriggerDescription$ When a creature is put into an opponent's graveyard from the battlefield, if CARDNAME is in your graveyard, exile CARDNAME.
SVar:TrigChange:DB$ ChangeZone | Origin$ Graveyard | Destination$ Exile SVar:TrigChange:DB$ ChangeZone | Origin$ Graveyard | Destination$ Exile
AI:RemoveDeck:Random AI:RemoveDeck:Random
SVar:DiscardMe:5 SVar:DiscardMe:5

View File

@@ -1,10 +1,6 @@
Name:Combo Attack Name:Combo Attack
ManaCost:2 G ManaCost:2 G
Types:Sorcery Types:Sorcery
A:SP$ Pump | Cost$ 2 G | ValidTgts$ Creature.YourTeamCtrl | TgtPrompt$ Select two target creatures your team controls | ImprintCards$ ThisTargetedCard | TargetMin$ 2 | TargetMax$ 2 | AILogic$ PowerDmg | SubAbility$ DBPump | StackDescription$ SpellDescription | SpellDescription$ Two target creatures your team controls each deal damage equal to their power to target creature. A:SP$ Pump | ValidTgts$ Creature.YourTeamCtrl | TgtPrompt$ Select two target creatures your team controls | TargetMin$ 2 | TargetMax$ 2 | SubAbility$ DBEachDamage | StackDescription$ {c:ThisTargetedCard} | SpellDescription$ Two target creatures your team controls
SVar:DBPump:DB$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature to be dealt damage | RememberObjects$ ThisTargetedCard | IsCurse$ True | SubAbility$ DBEachDamage | StackDescription$ None SVar:DBEachDamage:DB$ EachDamage | ValidTgts$ Creature | DefinedDamagers$ ParentTarget | NumDmg$ Count$CardPower | StackDescription$ REP target creature_{c:ThisTargetedCard} | SpellDescription$ each deal damage equal to their power to target creature.
SVar:DBEachDamage:DB$ EachDamage | ValidCards$ Creature.IsImprinted | NumDmg$ X | DefinedCards$ Remembered | SubAbility$ DBCleanup | StackDescription$ None
#NumDmg isn't really used here. It is left for clarity. The AF pulls Damage straight from "X" hardcoded.
SVar:X:Count$CardPower
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True
Oracle:Two target creatures your team controls each deal damage equal to their power to target creature. Oracle:Two target creatures your team controls each deal damage equal to their power to target creature.

View File

@@ -4,7 +4,7 @@ Types:Creature Astartes Warlock
PT:3/3 PT:3/3
A:AB$ Effect | PrecostDesc$ Gift of Chaos — | Cost$ 3 T | StaticAbilities$ GrantCascade | Triggers$ ExileEffect | SpellDescription$ The next noncreature spell you cast this turn has cascade. (When you cast that spell, exile cards from the top of your library until you exile a nonland card that costs less. You may cast it without paying its mana cost. Put the exiled cards on the bottom of your library in a random order.) A:AB$ Effect | PrecostDesc$ Gift of Chaos — | Cost$ 3 T | StaticAbilities$ GrantCascade | Triggers$ ExileEffect | SpellDescription$ The next noncreature spell you cast this turn has cascade. (When you cast that spell, exile cards from the top of your library until you exile a nonland card that costs less. You may cast it without paying its mana cost. Put the exiled cards on the bottom of your library in a random order.)
SVar:GrantCascade:Mode$ Continuous | EffectZone$ Command | Affected$ Card.nonCreature+YouCtrl | AffectedZone$ Stack | AddKeyword$ Cascade | Description$ The next noncreature spell you cast this turn has cascade. SVar:GrantCascade:Mode$ Continuous | EffectZone$ Command | Affected$ Card.nonCreature+YouCtrl | AffectedZone$ Stack | AddKeyword$ Cascade | Description$ The next noncreature spell you cast this turn has cascade.
SVar:ExileEffect:Mode$ SpellCast | EffectZone$ Command | Valid$ Card.nonCreature+YouCtrl | AffectedZone$ Stack | Execute$ RemoveEffect | Static$ True SVar:ExileEffect:Mode$ SpellCast | EffectZone$ Command | ValidCard$ Card.nonCreature+YouCtrl | AffectedZone$ Stack | Execute$ RemoveEffect | Static$ True
SVar:RemoveEffect:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self SVar:RemoveEffect:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self
DeckHas:Keyword$Cascade DeckHas:Keyword$Cascade
Oracle:Gift of Chaos — {3}, {T}: The next noncreature spell you cast this turn has cascade. (When you cast that spell, exile cards from the top of your library until you exile a nonland card that costs less. You may cast it without paying its mana cost. Put the exiled cards on the bottom of your library in a random order.) Oracle:Gift of Chaos — {3}, {T}: The next noncreature spell you cast this turn has cascade. (When you cast that spell, exile cards from the top of your library until you exile a nonland card that costs less. You may cast it without paying its mana cost. Put the exiled cards on the bottom of your library in a random order.)

View File

@@ -3,7 +3,7 @@ ManaCost:1 W
Types:Creature Gnome Wizard Types:Creature Gnome Wizard
PT:2/2 PT:2/2
K:Flash K:Flash
T:Mode$ ChangesZoneAll | ValidCards$ Land.OppCtrl | ValidCause$ !LandAbility | Destination$ Battlefield | TriggerZones$ Battlefield | ActivationLimit$ 1 | Execute$ TrigSearch | OptionalDecider$ You | TriggerDescription$ Mold Earth — Whenever one or more lands enter the battlefield under an opponent's control without being played, you may search your library for a Plains card, put it onto the battlefield tapped, then shuffle. Do this only once each turn. T:Mode$ ChangesZoneAll | ValidCards$ Land.OppCtrl | ValidCause$ !LandAbility | Destination$ Battlefield | TriggerZones$ Battlefield | ResolvedLimit$ 1 | Execute$ TrigSearch | OptionalDecider$ You | TriggerDescription$ Mold Earth — Whenever one or more lands enter the battlefield under an opponent's control without being played, you may search your library for a Plains card, put it onto the battlefield tapped, then shuffle. Do this only once each turn.
SVar:TrigSearch:DB$ ChangeZone | Origin$ Library | Destination$ Battlefield | Tapped$ True | ChangeType$ Card.Plains | ChangeNum$ 1 | ShuffleNonMandatory$ True SVar:TrigSearch:DB$ ChangeZone | Origin$ Library | Destination$ Battlefield | Tapped$ True | ChangeType$ Card.Plains | ChangeNum$ 1 | ShuffleNonMandatory$ True
AI:RemoveDeck:Random AI:RemoveDeck:Random
Oracle:Flash\nMold Earth — Whenever one or more lands enter the battlefield under an opponent's control without being played, you may search your library for a Plains card, put it onto the battlefield tapped, then shuffle. Do this only once each turn. Oracle:Flash\nMold Earth — Whenever one or more lands enter the battlefield under an opponent's control without being played, you may search your library for a Plains card, put it onto the battlefield tapped, then shuffle. Do this only once each turn.

View File

@@ -1,10 +1,9 @@
Name:Ezuri's Predation Name:Ezuri's Predation
ManaCost:5 G G G ManaCost:5 G G G
Types:Sorcery Types:Sorcery
A:SP$ RepeatEach | Cost$ 5 G G G | RepeatCards$ Creature.OppCtrl | UseImprinted$ True | RepeatSubAbility$ DBToken | ChangeZoneTable$ True | SubAbility$ DBCleanup2 | SpellDescription$ For each creature your opponents control, create a 4/4 green Phyrexian Beast creature token. Each of those Beasts fights a different one of those creatures. A:SP$ RepeatEach | Cost$ 5 G G G | RepeatCards$ Creature.OppCtrl | ChooseOrder$ True | UseImprinted$ True | RepeatSubAbility$ DBToken | ChangeZoneTable$ True | SpellDescription$ For each creature your opponents control, create a 4/4 green Phyrexian Beast creature token. Each of those Beasts fights a different one of those creatures.
SVar:DBToken:DB$ Token | TokenAmount$ 1 | TokenScript$ g_4_4_phyrexian_beast | TokenOwner$ You | RememberTokens$ True | SubAbility$ DBFight SVar:DBToken:DB$ Token | TokenAmount$ 1 | TokenScript$ g_4_4_phyrexian_beast | TokenOwner$ You | RememberTokens$ True | SubAbility$ DBFight
SVar:DBFight:DB$ Fight | Defined$ Imprinted | ExtraDefined$ Remembered | SubAbility$ DBCleanup SVar:DBFight:DB$ Fight | Defined$ Imprinted | ExtraDefined$ Remembered | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:DBCleanup2:DB$ Cleanup | ClearImprinted$ True
SVar:NeedsToPlay:Creature.OppCtrl+powerLE3 SVar:NeedsToPlay:Creature.OppCtrl+powerLE3
Oracle:For each creature your opponents control, create a 4/4 green Phyrexian Beast creature token. Each of those Beasts fights a different one of those creatures. Oracle:For each creature your opponents control, create a 4/4 green Phyrexian Beast creature token. Each of those Beasts fights a different one of those creatures.

View File

@@ -4,5 +4,5 @@ Types:Enchantment Aura
K:Enchant creature K:Enchant creature
A:SP$ Attach | ValidTgts$ Creature | AILogic$ HighestEvaluation A:SP$ Attach | ValidTgts$ Creature | AILogic$ HighestEvaluation
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ TrigCopy | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of your upkeep, create a token that's a copy of enchanted creature. T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ TrigCopy | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of your upkeep, create a token that's a copy of enchanted creature.
SVar:TrigCopy:DB$ CopyPermanent | Defined$ Enchanted | SpellDescription$ At the beginning of your upkeep, create a token that's a copy of enchanted creature. SVar:TrigCopy:DB$ CopyPermanent | Defined$ Enchanted
Oracle:Enchant creature\nAt the beginning of your upkeep, create a token that's a copy of enchanted creature. Oracle:Enchant creature\nAt the beginning of your upkeep, create a token that's a copy of enchanted creature.

View File

@@ -2,7 +2,7 @@ Name:Genesis
ManaCost:4 G ManaCost:4 G
Types:Creature Incarnation Types:Creature Incarnation
PT:4/4 PT:4/4
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Graveyard | Execute$ TrigChange | TriggerDescription$ At the beginning of your upkeep, if CARDNAME is in your graveyard, you may pay {2}{G}. If you do, return target creature card from your graveyard to your hand. T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Graveyard | PresentZone$ Graveyard | IsPresent$ Card.StrictlySelf | Execute$ TrigChange | TriggerDescription$ At the beginning of your upkeep, if CARDNAME is in your graveyard, you may pay {2}{G}. If you do, return target creature card from your graveyard to your hand.
SVar:TrigChange:AB$ ChangeZone | Cost$ 2 G | Origin$ Graveyard | Destination$ Hand | ValidTgts$ Creature.YouCtrl SVar:TrigChange:AB$ ChangeZone | Cost$ 2 G | Origin$ Graveyard | Destination$ Hand | ValidTgts$ Creature.YouCtrl
SVar:DiscardMe:2 SVar:DiscardMe:2
Oracle:At the beginning of your upkeep, if Genesis is in your graveyard, you may pay {2}{G}. If you do, return target creature card from your graveyard to your hand. Oracle:At the beginning of your upkeep, if Genesis is in your graveyard, you may pay {2}{G}. If you do, return target creature card from your graveyard to your hand.

View File

@@ -9,5 +9,5 @@ SVar:TrigCharm:DB$ Charm | Choices$ DBDraw,DBDestroy,DBRemove
SVar:DBDraw:DB$ Draw | SubAbility$ DBLoseLife | SpellDescription$ You draw a card and you lose 1 life. SVar:DBDraw:DB$ Draw | SubAbility$ DBLoseLife | SpellDescription$ You draw a card and you lose 1 life.
SVar:DBLoseLife:DB$ LoseLife | LifeAmount$ 1 SVar:DBLoseLife:DB$ LoseLife | LifeAmount$ 1
SVar:DBDestroy:DB$ Destroy | ValidTgts$ Enchantment | SpellDescription$ Destroy target enchantment. SVar:DBDestroy:DB$ Destroy | ValidTgts$ Enchantment | SpellDescription$ Destroy target enchantment.
SVar:DBRemove:DB$ RemoveCounter | ValidTgts$ Permanent | TgtPrompt$ Select target permanent | CounterType$ Any | CounterNum$ 3 | SpellDescription$ Remove up to three counters from target permanent. SVar:DBRemove:DB$ RemoveCounter | ValidTgts$ Permanent | TgtPrompt$ Select target permanent | CounterType$ Any | CounterNum$ 3 | UpTo$ True | SpellDescription$ Remove up to three counters from target permanent.
Oracle:First strike, deathtouch\nWhenever Glissa Sunslayer deals combat damage to a player, choose one —\n• You draw a card and you lose 1 life.\n• Destroy target enchantment.\n• Remove up to three counters from target permanent. Oracle:First strike, deathtouch\nWhenever Glissa Sunslayer deals combat damage to a player, choose one —\n• You draw a card and you lose 1 life.\n• Destroy target enchantment.\n• Remove up to three counters from target permanent.

View File

@@ -1,7 +1,7 @@
Name:Grim Contest Name:Grim Contest
ManaCost:1 B G ManaCost:1 B G
Types:Instant Types:Instant
A:SP$ Pump | Cost$ 1 B G | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Choose target creature you control | SubAbility$ DBFight | SpellDescription$ Choose target creature you control and target creature an opponent controls. Each of those creatures deals damage equal to its toughness to the other. A:SP$ Pump | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Choose target creature you control | SubAbility$ DBEachDamage | StackDescription$ None | SpellDescription$ Choose target creature you control and target creature an opponent controls. Each of those creatures deals damage equal to its toughness to the other.
SVar:DBFight:DB$ Fight | Defined$ ParentTarget | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Choose target creature an opponent controls | FightWithToughness$ True SVar:DBEachDamage:DB$ EachDamage | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Choose target creature an opponent controls | ToEachOther$ Targeted | NumDmg$ Count$CardToughness | StackDescription$ {c:Targeted} each deal damage equal to its toughness to the other.
AI:RemoveDeck:All AI:RemoveDeck:All
Oracle:Choose target creature you control and target creature an opponent controls. Each of those creatures deals damage equal to its toughness to the other. Oracle:Choose target creature you control and target creature an opponent controls. Each of those creatures deals damage equal to its toughness to the other.

View File

@@ -2,12 +2,8 @@ Name:Living Inferno
ManaCost:6 R R ManaCost:6 R R
Types:Creature Elemental Types:Creature Elemental
PT:8/5 PT:8/5
A:AB$ DealDamage | Cost$ T | ValidTgts$ Creature | TgtPrompt$ Select target creature to distribute damage to | NumDmg$ FirePower | TargetMin$ Min | TargetMax$ FirePower | DividedAsYouChoose$ FirePower | SubAbility$ Retribution | RememberTargets$ True | SpellDescription$ CARDNAME deals damage equal to its power divided as you choose among any number of target creatures. Each of those creatures deals damage equal to its power to CARDNAME. A:AB$ DealDamage | Cost$ T | ValidTgts$ Creature | TgtPrompt$ Select any number of target creatures | NumDmg$ Count$CardPower | TargetMin$ Min | TargetMax$ Count$CardPower | DividedAsYouChoose$ Count$CardPower | SubAbility$ Retribution | SpellDescription$ CARDNAME deals damage equal to its power divided as you choose among any number of target creatures.
SVar:Retribution:DB$ EachDamage | ValidCards$ Creature.IsRemembered | ValidDescription$ of those creatures | NumDmg$ X | DamageDesc$ damage equal to its power | DefinedPlayers$ Self | SubAbility$ DBCleanup | StackDescription$ then each of those creatures deals damage equal to its power to CARDNAME SVar:Retribution:DB$ EachDamage | DefinedDamagers$ ParentTarget | NumDmg$ Count$CardPower | Defined$ Self | StackDescription$ SpellDescription | SpellDescription$ Each of those creatures deals damage equal to its power to CARDNAME.
#NumDmg isn't really used here. It is left for clarity. The AF pulls Damage straight from "X" hardcoded.
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:X:Count$CardPower
SVar:FirePower:Count$CardPower
SVar:Min:SVar$FirePower/LimitMax.1
AI:RemoveDeck:Random AI:RemoveDeck:Random
SVar:Min:Count$CardPower/LimitMax.1
Oracle:{T}: Living Inferno deals damage equal to its power divided as you choose among any number of target creatures. Each of those creatures deals damage equal to its power to Living Inferno. Oracle:{T}: Living Inferno deals damage equal to its power divided as you choose among any number of target creatures. Each of those creatures deals damage equal to its power to Living Inferno.

View File

@@ -18,7 +18,7 @@ Types:Enchantment Aura
K:Enchant creature K:Enchant creature
A:SP$ Attach | ValidTgts$ Creature | TgtPrompt$ Select target creature | AILogic$ HighestEvaluation A:SP$ Attach | ValidTgts$ Creature | TgtPrompt$ Select target creature | AILogic$ HighestEvaluation
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ TrigCopy | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of your upkeep, create a token that's a copy of enchanted creature, except it's a Spirit in addition to its other types. T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ TrigCopy | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of your upkeep, create a token that's a copy of enchanted creature, except it's a Spirit in addition to its other types.
SVar:TrigCopy:DB$ CopyPermanent | Defined$ Enchanted | AddTypes$ Spirit | SpellDescription$ At the beginning of your upkeep, create a token that's a copy of enchanted creature, except it's a Spirit in addition to its other types. SVar:TrigCopy:DB$ CopyPermanent | Defined$ Enchanted | AddTypes$ Spirit
R:Event$ Moved | ValidCard$ Card.Self | Destination$ Graveyard | ReplaceWith$ Exile | Description$ If CARDNAME would be put into a graveyard from anywhere, exile it instead. R:Event$ Moved | ValidCard$ Card.Self | Destination$ Graveyard | ReplaceWith$ Exile | Description$ If CARDNAME would be put into a graveyard from anywhere, exile it instead.
SVar:Exile:DB$ ChangeZone | Hidden$ True | Origin$ All | Destination$ Exile | Defined$ ReplacedCard SVar:Exile:DB$ ChangeZone | Hidden$ True | Origin$ All | Destination$ Exile | Defined$ ReplacedCard
Oracle:Enchant creature\nAt the beginning of your upkeep, create a token that's a copy of enchanted creature, except it's a Spirit in addition to its other types.\nIf Ghastly Mimicry would be put into a graveyard from anywhere, exile it instead. Oracle:Enchant creature\nAt the beginning of your upkeep, create a token that's a copy of enchanted creature, except it's a Spirit in addition to its other types.\nIf Ghastly Mimicry would be put into a graveyard from anywhere, exile it instead.

View File

@@ -1,8 +1,9 @@
Name:Nissa's Judgment Name:Nissa's Judgment
ManaCost:4 G ManaCost:4 G
Types:Sorcery Types:Sorcery
A:SP$ PutCounter | Cost$ 4 G | AILogic$ PowerDmg | ValidTgts$ Creature | TargetMin$ 0 | TargetMax$ 2 | TgtPrompt$ Select target creature | CounterType$ P1P1 | CounterNum$ 1 | SubAbility$ DealToCreature | SpellDescription$ Support 2. (Put a +1/+1 counter on each of up to two target creatures.) A:SP$ PutCounter | AILogic$ PowerDmg | ValidTgts$ Creature | TargetMin$ 0 | TargetMax$ 2 | TgtPrompt$ Select up to two target creatures | CounterType$ P1P1 | SubAbility$ DealToCreature | StackDescription$ REP ._. ({c:ThisTargetedCard}) | SpellDescription$ Support 2. (Put a +1/+1 counter on each of up to two target creatures.)
SVar:DealToCreature:DB$ EachDamage | AILogic$ PowerDmg | ValidCards$ Creature.YouCtrl+counters_GE1_P1P1 | NumDmg$ X | TgtPrompt$ Choose target creature opponent controls | ValidTgts$ Creature.OppCtrl | TargetMin$ 0 | TargetMax$ 1 | SpellDescription$ Each creature you control with a +1/+1 counter deals damage equal to its power to target creature opponent controls. SVar:DealToCreature:DB$ EachDamage | ValidCards$ Creature.YouCtrl+counters_GE1_P1P1 | NumDmg$ X | TgtPrompt$ Select up to one target creature an opponent controls | ValidTgts$ Creature.OppCtrl | TargetMin$ 0 | TargetMax$ 1 | StackDescription$ REP target creature opponent controls_{c:ThisTargetedCard} | SpellDescription$ Each creature you control with a +1/+1 counter deals damage equal to its power to target creature opponent controls.
SVar:X:Count$CardPower SVar:X:Count$CardPower
DeckHas:Ability$Counters
AI:RemoveDeck:All AI:RemoveDeck:All
Oracle:Support 2. (Put a +1/+1 counter on each of up to two target creatures.)\nChoose up to one target creature an opponent controls. Each creature you control with a +1/+1 counter on it deals damage equal to its power to that creature. Oracle:Support 2. (Put a +1/+1 counter on each of up to two target creatures.)\nChoose up to one target creature an opponent controls. Each creature you control with a +1/+1 counter on it deals damage equal to its power to that creature.

View File

@@ -9,6 +9,7 @@ SVar:DBEffect:DB$ Effect | RememberObjects$ RememberedCard | StaticAbilities$ Pl
SVar:Play:Mode$ Continuous | MayPlay$ True | EffectZone$ Command | Affected$ Card.IsRemembered | AffectedZone$ Exile | Description$ If it's a Goblin creature card, you may cast that card until the end of your next turn. SVar:Play:Mode$ Continuous | MayPlay$ True | EffectZone$ Command | Affected$ Card.IsRemembered | AffectedZone$ Exile | Description$ If it's a Goblin creature card, you may cast that card until the end of your next turn.
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:Z:Remembered$Valid Creature.Goblin SVar:Z:Remembered$Valid Creature.Goblin
SVar:PlayMain1:TRUE
DeckNeeds:Type$Goblin DeckNeeds:Type$Goblin
DeckHints:Type$Goblin DeckHints:Type$Goblin
Oracle:Other Goblins you control get +1/+1.\nWhenever Rundvelt Hordemaster or another Goblin you control dies, exile the top card of your library. If it's a Goblin creature card, you may cast that card until the end of your next turn. Oracle:Other Goblins you control get +1/+1.\nWhenever Rundvelt Hordemaster or another Goblin you control dies, exile the top card of your library. If it's a Goblin creature card, you may cast that card until the end of your next turn.

View File

@@ -6,10 +6,8 @@ A:AB$ Dig | Cost$ AddCounter<0/LOYALTY> | DigNum$ 1 | Reveal$ True | ChangeNum$
SVar:DBDamage:DB$ DealDamage | Defined$ Self | NumDmg$ Y | SubAbility$ DBCleanup | AILogic$ MadSarkhanDigDmg SVar:DBDamage:DB$ DealDamage | Defined$ Self | NumDmg$ Y | SubAbility$ DBCleanup | AILogic$ MadSarkhanDigDmg
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:Y:Remembered$CardManaCost SVar:Y:Remembered$CardManaCost
A:AB$ Destroy | Cost$ SubCounter<2/LOYALTY> | ValidTgts$ Creature | TgtPrompt$ Select target creature | Sacrifice$ True | SubAbility$ DBToken | Planeswalker$ True | AILogic$ MadSarkhanDragon | SpellDescription$ Target creature's controller sacrifices it, then that player creates a 5/5 red Dragon creature token with flying. A:AB$ Destroy | Cost$ SubCounter<2/LOYALTY> | ValidTgts$ Creature | Sacrifice$ True | SubAbility$ DBToken | Planeswalker$ True | AILogic$ MadSarkhanDragon | SpellDescription$ Target creature's controller sacrifices it, then that player creates a 5/5 red Dragon creature token with flying.
SVar:DBToken:DB$ Token | TokenAmount$ 1 | TokenScript$ r_5_5_dragon_flying | TokenOwner$ TargetedController SVar:DBToken:DB$ Token | TokenAmount$ 1 | TokenScript$ r_5_5_dragon_flying | TokenOwner$ TargetedController
#for this AF, the DefinedCards$ Self is the target for Each damaging. They EachDamage themselves. A:AB$ EachDamage | Cost$ SubCounter<4/LOYALTY> | Planeswalker$ True | Ultimate$ True | ValidCards$ Dragon.Creature+YouCtrl | ValidDescription$ Dragon creature you control | NumDmg$ Count$CardPower | DamageDesc$ damage equal to its power | ValidTgts$ Player,Planeswalker | TgtPrompt$ Select target player or planeswalker | AILogic$ MadSarkhanUltimate | SpellDescription$ Each Dragon creature you control deals damage equal to its power to target player or planeswalker.
A:AB$ EachDamage | Cost$ SubCounter<4/LOYALTY> | ValidCards$ Dragon.Creature+YouCtrl | ValidDescription$ Dragon creature you control | NumDmg$ X | DamageDesc$ damage equal to its power | ValidTgts$ Player,Planeswalker | TgtPrompt$ Select target player or planeswalker | Planeswalker$ True | Ultimate$ True | AILogic$ MadSarkhanUltimate | SpellDescription$ Each Dragon creature you control deals damage equal to its power to target player or planeswalker. DeckHas:Ability$Sacrifice|Token & Type$Dragon
#NumDmg isn't really used here. It is left for clarity. The AF pulls Damage straight from "X" hardcoded.
SVar:X:Count$CardPower
Oracle:[0]: Reveal the top card of your library and put it into your hand. Sarkhan the Mad deals damage to himself equal to that card's mana value.\n[-2]: Target creature's controller sacrifices it, then that player creates a 5/5 red Dragon creature token with flying.\n[-4]: Each Dragon creature you control deals damage equal to its power to target player or planeswalker. Oracle:[0]: Reveal the top card of your library and put it into your hand. Sarkhan the Mad deals damage to himself equal to that card's mana value.\n[-2]: Target creature's controller sacrifices it, then that player creates a 5/5 red Dragon creature token with flying.\n[-4]: Each Dragon creature you control deals damage equal to its power to target player or planeswalker.

View File

@@ -3,8 +3,7 @@ ManaCost:3 R R
Types:Legendary Planeswalker Sarkhan Types:Legendary Planeswalker Sarkhan
Loyalty:5 Loyalty:5
T:Mode$ Attacks | ValidCard$ Creature | Attacked$ You,Planeswalker.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigDamage | TriggerDescription$ Whenever a creature attacks you or a planeswalker you control, each Dragon you control deals 1 damage to that creature. T:Mode$ Attacks | ValidCard$ Creature | Attacked$ You,Planeswalker.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigDamage | TriggerDescription$ Whenever a creature attacks you or a planeswalker you control, each Dragon you control deals 1 damage to that creature.
SVar:TrigDamage:DB$ EachDamage | ValidCards$ Dragon.YouCtrl | DefinedPlayers$ TriggeredAttacker | StackDescription$ Each Dragon you control deals 1 damage to that creature. SVar:TrigDamage:DB$ EachDamage | ValidCards$ Dragon.YouCtrl | NumDmg$ 1 | Defined$ TriggeredAttacker
SVar:X:Number$1
A:AB$ AnimateAll | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | Power$ 4 | Toughness$ 4 | Types$ Creature,Dragon | Colors$ Red | OverwriteColors$ True | RemoveCardTypes$ True | Keywords$ Flying | ValidCards$ Planeswalker.YouCtrl | AILogic$ Always | SpellDescription$ Until end of turn, each planeswalker you control becomes a 4/4 red Dragon creature and gains flying. A:AB$ AnimateAll | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | Power$ 4 | Toughness$ 4 | Types$ Creature,Dragon | Colors$ Red | OverwriteColors$ True | RemoveCardTypes$ True | Keywords$ Flying | ValidCards$ Planeswalker.YouCtrl | AILogic$ Always | SpellDescription$ Until end of turn, each planeswalker you control becomes a 4/4 red Dragon creature and gains flying.
A:AB$ Token | Cost$ SubCounter<3/LOYALTY> | TokenAmount$ 1 | TokenScript$ r_4_4_dragon_flying | TokenOwner$ You | Planeswalker$ True | SpellDescription$ Create a 4/4 red Dragon creature token with flying. A:AB$ Token | Cost$ SubCounter<3/LOYALTY> | TokenAmount$ 1 | TokenScript$ r_4_4_dragon_flying | TokenOwner$ You | Planeswalker$ True | SpellDescription$ Create a 4/4 red Dragon creature token with flying.
DeckHas:Ability$Token DeckHas:Ability$Token

View File

@@ -4,7 +4,7 @@ Types:Creature Demon
PT:3/3 PT:3/3
A:AB$ Effect | PrecostDesc$ Jolly Gutpipes — | Cost$ 2 T Sac<1/Creature> | StaticAbilities$ GrantCascade | Triggers$ ExileEffect | SpellDescription$ The next creature spell you cast this turn has cascade. (When you cast your next creature spell, exile cards from the top of your library until you exile a nonland card that costs less. You may cast it without paying its mana cost. Put the exiled cards on the bottom of your library in a random order.) A:AB$ Effect | PrecostDesc$ Jolly Gutpipes — | Cost$ 2 T Sac<1/Creature> | StaticAbilities$ GrantCascade | Triggers$ ExileEffect | SpellDescription$ The next creature spell you cast this turn has cascade. (When you cast your next creature spell, exile cards from the top of your library until you exile a nonland card that costs less. You may cast it without paying its mana cost. Put the exiled cards on the bottom of your library in a random order.)
SVar:GrantCascade:Mode$ Continuous | EffectZone$ Command | Affected$ Card.Creature+YouCtrl | AffectedZone$ Stack | Execute$ ExileEff | AddKeyword$ Cascade | Description$ The next noncreature spell you cast this turn has cascade. SVar:GrantCascade:Mode$ Continuous | EffectZone$ Command | Affected$ Card.Creature+YouCtrl | AffectedZone$ Stack | Execute$ ExileEff | AddKeyword$ Cascade | Description$ The next noncreature spell you cast this turn has cascade.
SVar:ExileEffect:Mode$ SpellCast | EffectZone$ Command | Valid$ Card.Creature+YouCtrl | AffectedZone$ Stack | Execute$ RemoveEffect | Static$ True SVar:ExileEffect:Mode$ SpellCast | EffectZone$ Command | ValidCard$ Card.Creature+YouCtrl | AffectedZone$ Stack | Execute$ RemoveEffect | Static$ True
SVar:RemoveEffect:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self SVar:RemoveEffect:DB$ ChangeZone | Origin$ Command | Destination$ Exile | Defined$ Self
DeckHas:Keyword$Cascade & Ability$Sacrifice DeckHas:Keyword$Cascade & Ability$Sacrifice
Oracle:Jolly Gutpipes — {2}, {T}, Sacrifice a creature: The next creature spell you cast this turn has cascade. (When you cast your next creature spell, exile cards from the top of your library until you exile a nonland card that costs less. You may cast it without paying its mana cost. Put the exiled cards on the bottom of your library in a random order.) Oracle:Jolly Gutpipes — {2}, {T}, Sacrifice a creature: The next creature spell you cast this turn has cascade. (When you cast your next creature spell, exile cards from the top of your library until you exile a nonland card that costs less. You may cast it without paying its mana cost. Put the exiled cards on the bottom of your library in a random order.)

View File

@@ -1,8 +1,7 @@
Name:Solar Blaze Name:Solar Blaze
ManaCost:2 R W ManaCost:2 R W
Types:Sorcery Types:Sorcery
A:SP$ EachDamage | Cost$ 2 R W | ValidCards$ Creature | NumDmg$ X | DamageDesc$ damage equal to its power | DefinedCards$ Self | SpellDescription$ Each creature deals damage to itself equal to its power. A:SP$ EachDamage | ValidCards$ Creature | EachToItself$ True | NumDmg$ Count$CardPower | StackDescription$ SpellDescription | SpellDescription$ Each creature deals damage to itself equal to its power.
SVar:X:Count$CardPower
AI:RemoveDeck:All AI:RemoveDeck:All
AI:RemoveDeck:Random AI:RemoveDeck:Random
Oracle:Each creature deals damage to itself equal to its power. Oracle:Each creature deals damage to itself equal to its power.

View File

@@ -5,6 +5,5 @@ K:Saga:3:DBGainControl,DBAllAttack,DBDamageTapped
SVar:DBGainControl:DB$ GainControl | ValidTgts$ Creature | TgtPrompt$ Select target creature | LoseControl$ LeavesPlay | SpellDescription$ Gain control of target creature for as long as CARDNAME remains on the battlefield. SVar:DBGainControl:DB$ GainControl | ValidTgts$ Creature | TgtPrompt$ Select target creature | LoseControl$ LeavesPlay | SpellDescription$ Gain control of target creature for as long as CARDNAME remains on the battlefield.
SVar:DBAllAttack:DB$ Effect | Duration$ UntilYourNextTurn | StaticAbilities$ MustAttack | SpellDescription$ Until your next turn, creatures your opponents control attack each combat if able. SVar:DBAllAttack:DB$ Effect | Duration$ UntilYourNextTurn | StaticAbilities$ MustAttack | SpellDescription$ Until your next turn, creatures your opponents control attack each combat if able.
SVar:MustAttack:Mode$ MustAttack | ValidCreature$ Creature.OppCtrl | Description$ Until your next turn, creatures your opponents control attack each combat if able. SVar:MustAttack:Mode$ MustAttack | ValidCreature$ Creature.OppCtrl | Description$ Until your next turn, creatures your opponents control attack each combat if able.
SVar:DBDamageTapped:DB$ EachDamage | ValidCards$ Creature.tapped | NumDmg$ X | DamageDesc$ damage equal to its power | DefinedCards$ Self | SpellDescription$ Each tapped creature deals damage to itself equal to its power. SVar:DBDamageTapped:DB$ EachDamage | ValidCards$ Creature.tapped | NumDmg$ Count$CardPower | EachToItself$ True | SpellDescription$ Each tapped creature deals damage to itself equal to its power.
SVar:X:Count$CardPower
Oracle:(As this Saga enters and after your draw step, add a lore counter. Sacrifice after III.)\nI — Gain control of target creature for as long as The Akroan War remains on the battlefield.\nII — Until your next turn, creatures your opponents control attack each combat if able.\nIII — Each tapped creature deals damage to itself equal to its power. Oracle:(As this Saga enters and after your draw step, add a lore counter. Sacrifice after III.)\nI — Gain control of target creature for as long as The Akroan War remains on the battlefield.\nII — Until your next turn, creatures your opponents control attack each combat if able.\nIII — Each tapped creature deals damage to itself equal to its power.

View File

@@ -2,6 +2,6 @@ Name:Thunderblade Charge
ManaCost:1 R R ManaCost:1 R R
Types:Sorcery Types:Sorcery
A:SP$ DealDamage | Cost$ 1 R R | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ 3 | SpellDescription$ CARDNAME deals 3 damage to any target. A:SP$ DealDamage | Cost$ 1 R R | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ 3 | SpellDescription$ CARDNAME deals 3 damage to any target.
T:Mode$ DamageDoneOnce | CombatDamage$ True | ValidSource$ Creature.YouCtrl | TriggerZones$ Graveyard | ValidTarget$ Player | Execute$ TrigPlay | TriggerDescription$ Whenever one or more creatures you control deal combat damage to a player, if CARDNAME is in your graveyard, you may pay {2}{R}{R}{R}. If you do, you may cast it without paying its mana cost. T:Mode$ DamageDoneOnce | CombatDamage$ True | ValidSource$ Creature.YouCtrl | ValidTarget$ Player | TriggerZones$ Graveyard | PresentZone$ Graveyard | IsPresent$ Card.StrictlySelf| Execute$ TrigPlay | TriggerDescription$ Whenever one or more creatures you control deal combat damage to a player, if CARDNAME is in your graveyard, you may pay {2}{R}{R}{R}. If you do, you may cast it without paying its mana cost.
SVar:TrigPlay:AB$ Play | Cost$ 2 R R R | ActivationZone$ Graveyard | WithoutManaCost$ True | Optional$ True SVar:TrigPlay:AB$ Play | Cost$ 2 R R R | WithoutManaCost$ True | Optional$ True
Oracle:Thunderblade Charge deals 3 damage to any target.\nWhenever one or more creatures you control deal combat damage to a player, if Thunderblade Charge is in your graveyard, you may pay {2}{R}{R}{R}. If you do, you may cast it without paying its mana cost. Oracle:Thunderblade Charge deals 3 damage to any target.\nWhenever one or more creatures you control deal combat damage to a player, if Thunderblade Charge is in your graveyard, you may pay {2}{R}{R}{R}. If you do, you may cast it without paying its mana cost.

View File

@@ -0,0 +1,11 @@
Name:Ancient Imperiosaur
ManaCost:5 G G
Types:Creature Dinosaur
PT:6/6
K:Convoke
K:Trample
K:Ward:2
K:etbCounter:P1P1:X
SVar:X:Convoked$Amount/Twice
DeckHas:Ability$Counters
Oracle:Convoke (Your creatures can help cast this spell. Each creature you tap while casting this spell pays for {1} or one mana of that creature's color.)\nTrample, ward {2}\nAncient Imperiosaur enters the battlefield with two +1/+1 counters on it for each creature that convoked it.

View File

@@ -0,0 +1,13 @@
Name:Archpriest of Shadows
ManaCost:3 B B
Types:Creature Human Warlock
PT:4/4
K:Backup:1:BackupAbilities
SVar:BackupAbilities:DB$ Animate | Keywords$ Deathtouch | Triggers$ DamageTrig
SVar:DamageTrig:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player,Battle | Execute$ TrigReturn | CombatDamage$ True | TriggerDescription$ Whenever this creature deals combat damage to a player or battle, return target creature card from your graveyard to the battlefield.
K:Deathtouch
T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player,Battle | Execute$ TrigReturn | CombatDamage$ True | TriggerDescription$ Whenever this creature deals combat damage to a player or battle, return target creature card from your graveyard to the battlefield.
SVar:TrigReturn:DB$ ChangeZone | ValidTgts$ Creature.YouOwn | TgtPrompt$ Select target creature from your graveyard | Origin$ Graveyard | Destination$ Battlefield
DeckHas:Ability$Counters|Graveyard
DeckHints:Ability$Discard|Sacrifice
Oracle:Backup 1 (When this creature enters the battlefield, put a +1/+1 counter on target creature. If that's another creature, it gains the following abilities until end of turn.)\nDeathtouch\nWhenever this creature deals combat damage to a player or battle, return target creature card from your graveyard to the battlefield.

View File

@@ -0,0 +1,10 @@
Name:Astral Wingspan
ManaCost:4 U
Types:Enchantment Aura
K:Convoke
K:Enchant creature
A:SP$ Attach | ValidTgts$ Creature | AILogic$ Pump
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDraw | TriggerDescription$ When CARDNAME enters the battlefield, draw a card.
SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 2 | AddToughness$ 2 | AddKeyword$ Flying | Description$ Enchanted creature gets +2/+2 and has flying.
Oracle:Convoke (Your creatures can help cast this spell. Each creature you tap while casting this spell pays for {1} or one mana of that creature's color.)\nEnchant creature\nWhen Astral Wingspan enters the battlefield, draw a card.\nEnchanted creature gets +2/+2 and has flying.

View File

@@ -0,0 +1,24 @@
Name:Ayara, Widow of the Realm
ManaCost:1 B B
Types:Legendary Creature Elf Noble
PT:3/3
A:AB$ DealDamage | Cost$ T Sac<1/Creature.Other;Artifact.Other/another creature or artifact> | ValidTgts$ Opponent,Battle | TgtPrompt$ Select target opponent or battle | SubAbility$ DBGainLife | NumDmg$ X | SpellDescription$ CARDNAME deals X damage to target opponent or battle and you gain X life, where X is the sacrificed permanent's mana value.
SVar:DBGainLife:DB$ GainLife | LifeAmount$ X
SVar:X:Sacrificed$CardManaCost
A:AB$ SetState | Cost$ 5 RP | Defined$ Self | Mode$ Transform | SorcerySpeed$ True | AILogic$ Always | SpellDescription$ Transform NICKNAME. Activate only as a sorcery.
AlternateMode:DoubleFaced
DeckHas:Ability$Sacrifice|LifeGain
Oracle:{T}, Sacrifice another creature or artifact: Ayara, Widow of the Realm deals X damage to target opponent or battle and you gain X life, where X is the sacrificed permanent's mana value.\n{5}{R/P}: Transform Ayara. Activate only as a sorcery. ({R/P} can be paid with {R} or 2 life.)
ALTERNATE
Name:Ayara, Furnace Queen
ManaCost:no cost
Colors:black,red
Types:Legendary Creature Phyrexian Elf Noble
PT:4/4
T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigChangeZone | TriggerDescription$ At the beginning of combat on your turn, return up to one target artifact or creature card from your graveyard to the battlefield. It gains haste. Exile it at the beginning of the next end step.
SVar:TrigChangeZone:DB$ ChangeZone | ValidTgts$ Artifact.YouOwn,Creature.YouOwn | TgtPrompt$ Select up to one target artifact or creature from your graveyard | TargetMin$ 0 | TargetMax$ 1 | Origin$ Graveyard | Destination$ Battlefield | SubAbility$ DBAnimate
SVar:DBAnimate:DB$ Animate | Keywords$ Haste | Defined$ Targeted | Duration$ Permanent | AtEOT$ Exile
DeckHas:Ability$Sacrifice|Graveyard
Oracle:At the beginning of combat on your turn, return up to one target artifact or creature card from your graveyard to the battlefield. It gains haste. Exile it at the beginning of the next end step.

View File

@@ -0,0 +1,11 @@
Name:Bloodfeather Phoenix
ManaCost:1 R
Types:Creature Phoenix
PT:2/2
K:Flying
K:CARDNAME can't block.
T:Mode$ DamageDone | ValidSource$ Instant.YouCtrl,Sorcery.YouCtrl | ValidTarget$ Opponent,Battle | TriggerZones$ Graveyard | Execute$ TrigReturn | TriggerDescription$ Whenever an instant or sorcery spell you control deals damage to an opponent or battle, you may pay {R}. If you do, return CARDNAME from your graveyard to the battlefield. It gains haste until end of turn.
SVar:TrigReturn:AB$ ChangeZone | Cost$ R | Defined$ Self | Origin$ Graveyard | Destination$ Battlefield | SubAbility$ DBAnimate
SVar:DBAnimate:DB$ Animate | Keywords$ Haste | Defined$ Self
DeckHas:Ability$Graveyard
Oracle:Flying\nBloodfeather Phoenix can't block.\nWhenever an instant or sorcery spell you control deals damage to an opponent or battle, you may pay {R}. If you do, return Bloodfeather Phoenix from your graveyard to the battlefield. It gains haste until end of turn.

View File

@@ -0,0 +1,11 @@
Name:Boon-Bringer Valkyrie
ManaCost:3 W W
Types:Creature Angel Warrior
PT:4/4
K:Backup:1:BackupAbilities
SVar:BackupAbilities:DB$ Pump | KW$ Flying & First Strike & Lifelink
K:Flying
K:First Strike
K:Lifelink
DeckHas:Ability$Counters|LifeGain
Oracle:Backup 1 (When this creature enters the battlefield, put a +1/+1 counter on target creature. If thats another creature, it gains the following abilities until end of turn.)\nFlying, first strike, lifelink

View File

@@ -0,0 +1,22 @@
Name:Captive Weird
ManaCost:U
Types:Creature Weird
PT:1/3
K:Defender
A:AB$ SetState | Cost$ 3 RP | Defined$ Self | Mode$ Transform | SorcerySpeed$ True | AILogic$ Always | SpellDescription$ Transform CARDNAME. Activate only as a sorcery.
AlternateMode:DoubleFaced
Oracle:Defender\n{3}{R/P}: Transform Captive Weird. Activate only as a sorcery. ({R/P} can be paid with {R} or 2 life.)
ALTERNATE
Name:Compleated Conjurer
ManaCost:no cost
Colors:blue,red
Types:Creature Phyrexian Weird
PT:3/3
T:Mode$ Transformed | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When this creature transforms into CARDNAME, exile the top card of your library. Until the end of your next turn, you may play that card.
SVar:TrigExile:DB$ Dig | DigNum$ 1 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | SubAbility$ DBEffect
SVar:DBEffect:DB$ Effect | RememberObjects$ RememberedCard | Duration$ UntilTheEndOfYourNextTurn | StaticAbilities$ Play | SubAbility$ DBCleanup | ForgetOnMoved$ Exile
SVar:Play:Mode$ Continuous | MayPlay$ True | EffectZone$ Command | Affected$ Card.IsRemembered | AffectedZone$ Exile | Description$ You may play remembered card.
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
Oracle:When this creature transforms into Compleated Conjurer, exile the top card of your library. Until the end of your next turn, you may play that card.

View File

@@ -0,0 +1,7 @@
Name:Change the Equation
ManaCost:1 U
Types:Instant
A:SP$ Charm | Choices$ DBCounter,DBCounterBis
SVar:DBCounter:DB$ Counter | TargetType$ Spell | TgtPrompt$ Select target spell with mana value 2 or less | ValidTgts$ Card.cmcLE2 | SpellDescription$ Counter target spell with mana value 2 or less.
SVar:DBCounterBis:DB$ Counter | TargetType$ Spell | TgtPrompt$ Select target spell with mana value 2 or less | ValidTgts$ Card.cmcLE6+Red,Card.cmcLE6+Green| SpellDescription$ Counter target red or green spell with mana value 6 or less.
Oracle:Choose one —\n• Counter target spell with mana value 2 or less.\n• Counter target red or green spell with mana value 6 or less.

View File

@@ -0,0 +1,7 @@
Name:Copper Host Crusher
ManaCost:6 G G
Types:Creature Phyrexian Bear Rhino
PT:8/8
K:Trample
K:Hexproof
Oracle:Trample\nHexproof (This creature cant be the target of spells or abilities your opponents control.)

View File

@@ -0,0 +1,10 @@
Name:Cragsmasher Yeti
ManaCost:4 R R
Types:Creature Yeti
PT:4/2
K:TypeCycling:Mountain:2
K:Backup:2:BackupAbility
SVar:BackupAbility:DB$ Pump | KW$ Trample
K:Trample
DeckHas:Ability$Counters
Oracle:Mountaincycling {2} ({2}, Discard this card: Search your library for a Mountain card, reveal it, put it into your hand, then shuffle.)\nBackup 2 (When this creature enters the battlefield, put two +1/+1 counters on target creature. If that's another creature, it gains the following ability until end of turn.)\nTrample

View File

@@ -0,0 +1,9 @@
Name:Deeproot Wayfinder
ManaCost:1 G
Types:Creature Merfolk Scout
PT:2/3
T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player,Battle | CombatDamage$ True | Execute$ TrigSurveil | TriggerDescription$ Whenever CARDNAME deals combat damage to a player or battle, surveil 1, then you may return a land card from your graveyard to the battlefield tapped. (To surveil 1, look at the top card of your library. You may put that card into your graveyard.)
SVar:TrigSurveil:DB$ Surveil | Amount$ 1 | SubAbility$ DBChangeZone
SVar:DBChangeZone:DB$ ChangeZone | Optional$ True | ChangeType$ Land.YouOwn | Origin$ Graveyard | Destination$ Battlefield | Hidden$ True | ChangeNum$ 1 | Tapped$ True
DeckHas:Ability$Graveyard
Oracle:Whenever Deeproot Wayfinder deals combat damage to a player or battle, surveil 1, then you may return a land card from your graveyard to the battlefield tapped. (To surveil 1, look at the top card of your library. You may put that card into your graveyard.)

View File

@@ -0,0 +1,13 @@
Name:Doomskar Warrior
ManaCost:2 G G
Types:Creature Human Warrior
PT:4/3
K:Backup:1:BackupAbilities
SVar:BackupAbilities:DB$ Animate | Keywords$ Trample | Triggers$ DamageTrig
SVar:DamageTrig:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player,Battle | Execute$ TrigDig | CombatDamage$ True | TriggerDescription$ Whenever this creature deals combat damage to a player or battle, look at that many cards from the top of your library. You may reveal a creature or land card from among them and put it into your hand. Put the rest on the bottom of your library in a random order.
SVar:TrigDig:DB$ Dig | DigNum$ X | ChangeNum$ 1 | ChangeValid$ Creature,Land | Optional$ True | DestinationZone$ Hand | RestRandomOrder$ True
K:Trample
T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player,Planeswalker | Execute$ TrigDig | CombatDamage$ True | TriggerDescription$ Whenever this creature deals combat damage to a player or battle, look at that many cards from the top of your library. You may reveal a creature or land card from among them and put it into your hand. Put the rest on the bottom of your library in a random order.
SVar:X:TriggerCount$DamageAmount
DeckHas:Ability$Counters
Oracle:Backup 1\nTrample\nWhenever this creature deals combat damage to a player or battle, look at that many cards from the top of your library. You may reveal a creature or land card from among them and put it into your hand. Put the rest on the bottom of your library in a random order.

View File

@@ -0,0 +1,9 @@
Name:Dusk Legion Duelist
ManaCost:1 W
Types:Creature Vampire Soldier
PT:2/2
K:Vigilance
T:Mode$ CounterAddedOnce | ValidCard$ Card.Self | ActivationLimit$ 1 | TriggerZones$ Battlefield | CounterType$ P1P1 | Execute$ TrigDraw | TriggerDescription$ Whenever one or more +1/+1 counters are put on CARDNAME, draw a card. This ability triggers only once each turn.
SVar:TrigDraw:DB$ Draw | NumCards$ 1
DeckHints:Ability$Counters
Oracle:Vigilance\nWhenever one or more +1/+1 counters are put on Dusk Legion Duelist, draw a card. This ability triggers only once each turn.

View File

@@ -0,0 +1,9 @@
Name:Fearless Skald
ManaCost:4 R
Types:Creature Dwarf Berserker
PT:3/2
K:Backup:1:BackupAbility
SVar:BackupAbility:DB$ Pump | KW$ Double Strike
K:Double Strike
DeckHas:Ability$Counters
Oracle:Backup 1 (When this creature enters the battlefield, put a + 1/+ 1 counter on target creature. If that's another creature, it gains the following ability until end of turn.)\nDouble strike

View File

@@ -0,0 +1,6 @@
Name:Glistening Deluge
ManaCost:1 B B
Types:Sorcery
A:SP$ PumpAll | ValidCards$ Creature | NumAtt$ -1 | NumDef$ -1 | SubAbility$ DBDebuff | SpellDescription$ All creatures get -1/-1 until end of turn. Creatures that are green and/or white get an additional -2/-2 until end of turn.
SVar:DBDebuff:DB$ PumpAll | ValidCards$ Creature.White,Creature.Green | NumAtt$ -2 | NumDef$ -2
Oracle:All creatures get -1/-1 until end of turn. Creatures that are green and/or white get an additional -2/-2 until end of turn.

View File

@@ -0,0 +1,19 @@
Name:Gnottvold Hermit
ManaCost:3 G
Types:Creature Troll
PT:4/4
A:AB$ SetState | Cost$ 5 UP | Defined$ Self | Mode$ Transform | SorcerySpeed$ True | AILogic$ Always | SpellDescription$ Transform CARDNAME. Activate only as a sorcery.
AlternateMode:DoubleFaced
Oracle:{5}{U/P}: Transform Gnottvold Hermit. Activate only as a sorcery. ({U/P} can be paid with either {U} or 2 life.)
ALTERNATE
Name:Chrome Host Hulk
ManaCost:no cost
Colors:green,blue
Types:Creature Phyrexian Troll
PT:5/5
T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigAnimate | TriggerDescription$ Whenever CARDNAME attacks, up to one other target creature has base power and toughness 5/5 until end of turn.
SVar:TrigAnimate:DB$ Animate | ValidTgts$ Creature.Other | TgtPrompt$ Select up to one other target creature | TargetMin$ 0 | TargetMax$ 1 | Power$ 5 | Toughness$ 5
SVar:HasAttackEffect:TRUE
Oracle:Whenever Chrome Host Hulk attacks, up to one other target creature has base power and toughness 5/5 until end of turn.

View File

@@ -0,0 +1,19 @@
Name:Harried Artisan
ManaCost:2 R
Types:Creature Human Artificer
PT:2/3
K:Haste
A:AB$ SetState | Cost$ 3 WP | Defined$ Self | Mode$ Transform | SorcerySpeed$ True | AILogic$ Always | SpellDescription$ Transform CARDNAME. Activate only as a sorcery.
AlternateMode:DoubleFaced
Oracle:Haste\n{3}{W/P}: Transform Harried Artisan. Activate only as a sorcery. ({W/P} can be paid with {W} or 2 life.)
ALTERNATE
Name:Phyrexian Skyflayer
ManaCost:no cost
Colors:red,white
Types:Creature Phyrexian Artificer
PT:3/4
K:Flying
K:Haste
Oracle:Flying, haste

View File

@@ -0,0 +1,10 @@
Name:Knight-Errant of Eos
ManaCost:4 W
Types:Creature Human Knight
PT:4/4
K:Convoke
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDig | TriggerDescription$ When CARDNAME enters the battlefield, look at the top six cards of your library. You may reveal up to two creature cards with mana value X or less from among them, where X is the number of creatures that convoked CARDNAME. Put the revealed cards into your hand, then shuffle.
SVar:TrigDig:DB$ Dig | DigNum$ 6 | ChangeNum$ 2 | Optional$ True | ChangeValid$ Creature.cmcLEX | SkipReorder$ True | SubAbility$ DBShuffle | ForceRevealToController$ True
SVar:DBShuffle:DB$ Shuffle | Defined$ You
SVar:X:Convoked$Amount
Oracle:Convoke\nWhen Knight-Errant of Eos enters the battlefield, look at the top six cards of your library. You may reveal up to two creature cards with mana value X or less from among them, where X is the number of creatures that convoked Knight-Errant of Eos. Put the revealed cards into your hand, then shuffle.

View File

@@ -0,0 +1,9 @@
Name:Mirror-Shield Hoplite
ManaCost:R W
Types:Creature Human Soldier
PT:2/2
K:Vigilance
T:Mode$ BecomesTarget | ValidTarget$ Creature.inZoneBattlefield+YouCtrl | ValidSource$ Ability.Backup | TriggerZones$ Battlefield | Execute$ TrigCopy | ActivationLimit$ 1 | TriggerDescription$ Whenever a creature you control becomes the target of a backup ability, copy that ability. You may choose new targets for the copy. This ability triggers only once each turn.
SVar:TrigCopy:DB$ CopySpellAbility | Defined$ TriggeredStackInstance | MayChooseTarget$ True
DeckNeeds:Keyword$Backup
Oracle:Vigilance\nWhenever a creature you control becomes the target of a backup ability, copy that ability. You may choose new targets for the copy. This ability triggers only once each turn.

View File

@@ -1,6 +1,6 @@
Name:Phyrexian Censor Name:Phyrexian Censor
ManaCost:2 W ManaCost:2 W
Types:Phyrexian Wizard Types:Creature Phyrexian Wizard
PT:3/3 PT:3/3
S:Mode$ CantBeCast | ValidCard$ Card.nonPhyrexian | Caster$ Player | NumLimitEachTurn$ 1 | Description$ Each player can't cast more than one non-Phyrexian spell each turn. S:Mode$ CantBeCast | ValidCard$ Card.nonPhyrexian | Caster$ Player | NumLimitEachTurn$ 1 | Description$ Each player can't cast more than one non-Phyrexian spell each turn.
R:Event$ Moved | ValidCard$ Creature.nonPhyrexian | Destination$ Battlefield | ReplaceWith$ ETBTapped | ReplacementResult$ Updated | ActiveZones$ Battlefield | Description$ Non-Phyrexian creatures enter the battlefield tapped. R:Event$ Moved | ValidCard$ Creature.nonPhyrexian | Destination$ Battlefield | ReplaceWith$ ETBTapped | ReplacementResult$ Updated | ActiveZones$ Battlefield | Description$ Non-Phyrexian creatures enter the battlefield tapped.

View File

@@ -0,0 +1,9 @@
Name:Phyrexian Pegasus
ManaCost:2 W
Types:Creature Phyrexian Pegasus
PT:2/2
K:Flying
T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever CARDNAME attacks, another target attacking creature without flying gains flying until end of turn.
SVar:TrigPump:DB$ Pump | ValidTgts$ Creature.Other+attacking+withoutFlying | TgtPrompt$ Select another target attacking creature without flying | KW$ Flying
SVar:HasAttackEffect:TRUE
Oracle:Flying\nWhenever Phyrexian Pegasus attacks, another target attacking creature without flying gains flying until end of turn.

View File

@@ -0,0 +1,11 @@
Name:Referee Squad
ManaCost:2 U
Types:Creature Homunculus
PT:2/2
K:Convoke
K:Vigilance
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigTap | TriggerDescription$ When CARDNAME enters the battlefield, tap target creature an opponent controls and put a stun counter on it. (If a permanent with a stun counter would become untapped, remove one from it instead.)
SVar:TrigTap:DB$ Tap | ValidTgts$ Creature.OppCtrl | SubAbility$ DBCounter
SVar:DBCounter:DB$ PutCounter | Defined$ Targeted | CounterType$ Stun | CounterNum$ 1
DeckHas:Ability$Counters
Oracle:Convoke (Your creatures can help cast this spell. Each creature you tap while casting this spell pays for {1} or one mana of that creature's color.)\nVigilance\nWhen Referee Squad enters the battlefield, tap target creature an opponent controls and put a stun counter on it. (If a permanent with a stun counter would become untapped, remove one from it instead.)

View File

@@ -0,0 +1,11 @@
Name:Seedpod Caretaker
ManaCost:2 W
Types:Creature Phyrexian Cleric
PT:2/2
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigCharm | TriggerDescription$ When CARDNAME enters the battlefield, ABILITY
SVar:TrigCharm:DB$ Charm | Choices$ P1P1,Transform
SVar:P1P1:DB$ PutCounter | ValidTgts$ Artifact.YouCtrl,Creature.YouCtrl | TgtPrompt$ Select target artifact or creature you control | CounterType$ P1P1 | SpellDescription$ Put a +1/+1 counter on target artifact or creature you control.
SVar:Transform:DB$ SetState | ValidTgts$ Incubator.token+YouCtrl | TgtPrompt$ Select target Incubator token you control | Mode$ Transform | SpellDescription$ Transform target Incubator token you control.
DeckHas:Ability$Counters
DeckHints:Ability$Token & Type$Artifact
Oracle:When Seedpod Caretaker enters the battlefield, choose one —\n• Put a +1/+1 counter on target artifact or creature you control.\n• Transform target Incubator token you control.

View File

@@ -0,0 +1,10 @@
Name:Streetwise Negotiator
ManaCost:1 G
Types:Creature Cat Citizen
PT:0/2
K:Backup:1:BackupAbility
SVar:BackupAbility:DB$ Animate | staticAbilities$ CDT
SVar:CDT:Mode$ CombatDamageToughness | ValidCard$ Card.Self | Description$ This creature assigns combat damage equal to its toughness rather than its power.
S:Mode$ CombatDamageToughness | ValidCard$ Card.Self | Description$ This creature assigns combat damage equal to its toughness rather than its power.
DeckHas:Ability$Counters
Oracle:Backup 1 (When this creature enters the battlefield, put a +1/+1 counter on target creature. If that's another creature, it gains the following ability until end of turn.)\nThis creature assigns combat damage equal to its toughness rather than its power.

View File

@@ -0,0 +1,6 @@
Name:Tandem Takedown
ManaCost:1 G G
Types:Instant
A:SP$ Pump | TargetMin$ 0 | TargetMax$ 2 | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select up to two target creatures you control | NumAtt$ +1 | AILogic$ PowerDmg | SubAbility$ DBEachDamage | StackDescription$ REP Up to two target creatures you control_{c:ThisTargetedCard} | SpellDescription$ Up to two target creatures you control each get +1/+0 until end of turn.
SVar:DBEachDamage:DB$ EachDamage | ValidTgts$ Creature,Planeswalker,Battle | TgtPrompt$ Select another target creature, planeswalker, or battle | TargetUnique$ True | DefinedDamagers$ ParentTarget | NumDmg$ Count$CardPower | StackDescription$ REP another target creature, planeswalker, or battle_{c:ThisTargetedCard} | SpellDescription$ They each deal damage equal to their power to another target creature, planeswalker, or battle.
Oracle:Up to two target creatures you control each get +1/+0 until end of turn. They each deal damage equal to their power to another target creature, planeswalker, or battle.

View File

@@ -0,0 +1,11 @@
Name:The Great Aerie
ManaCost:no cost
Types:Plane Tarkir
T:Mode$ PlaneswalkedTo | ValidCard$ Card.Self | Execute$ TrigBolster | TriggerDescription$ When you planeswalk to CARDNAME or at the beginning of your upkeep, bolster 3. (Choose a creature with the least toughness among creatures you control and put three +1/+1 counters on it.)
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ TrigBolster | TriggerZones$ Command | Secondary$ True | TriggerDescription$ When you planeswalk to CARDNAME or at the beginning of your upkeep, bolster 3. (Choose a creature with the least toughness among creatures you control and put three +1/+1 counters on it.)
SVar:TrigBolster:DB$ PutCounter | Bolster$ True | CounterNum$ 3 | CounterType$ P1P1
T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever chaos ensues, choose up to one target creature you control and up to one target creature an opponent controls. Each of those creatures deals damage equal to its toughness to the other.
SVar:RolledChaos:DB$ Pump | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Choose up to one target creature you control | TargetMin$ 0 | TargetMax$ 1 | SubAbility$ DBEachDamage
SVar:DBEachDamage:DB$ EachDamage | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Choose up to one target creature an opponent controls | TargetMin$ 0 | TargetMax$ 1 | ToEachOther$ Targeted | NumDmg$ Count$CardToughness
DeckHas:Ability$Counters
Oracle:When you planeswalk to The Great Aerie and at the beginning of your upkeep, bolster 3. (Choose a creature with the least toughness among creatures you control and put three +1/+1 counters on it.)\nWhenever chaos ensues, choose up to one target creature you control and up to one target creature an opponent controls. Each of those creatures deals damage equal to its toughness to the other.

View File

@@ -0,0 +1,11 @@
Name:Voldaren Thrillseeker
ManaCost:2 R
Types:Creature Vampire Warrior
PT:1/1
K:Backup:2:BackupAbility
SVar:BackupAbility:DB$ Animate | Abilities$ ABDealDamage
SVar:ABDealDamage:AB$ DealDamage | Cost$ 1 Sac<1/CARDNAME/this creature> | ValidTgts$ Player,Creature,Planeswalker | TgtPrompt$ Select any target | NumDmg$ X | SpellDescription$ It deals damage equal to its power to any target.
A:AB$ DealDamage | Cost$ 1 Sac<1/CARDNAME/this creature> | ValidTgts$ Player,Creature,Planeswalker | TgtPrompt$ Select any target | NumDmg$ X | SpellDescription$ It deals damage equal to its power to any target.
SVar:X:Sacrificed$CardPower
DeckHas:Ability$Counters|Sacrifice
Oracle:Backup 2 (When this creature enters the battlefield, put two +1/+1 counters on target creature. If that's another creature, it gains the following ability until end of turn.)\n{1}, Sacrifice this creature: It deals damage equal to its power to any target.

View File

@@ -0,0 +1,33 @@
Name:Vorinclex
ManaCost:3 G G
Types:Legendary Creature Phyrexian Praetor
K:Trample
K:Reach
PT:6/6
K:Trample
K:Reach
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChange | TriggerDescription$ When CARDNAME enters the battlefield, search your library for up to two Forest cards, reveal them, put them into your hand, then shuffle.
SVar:TrigChange:DB$ ChangeZone | Origin$ Library | Destination$ Hand | ChangeType$ Forest | ChangeNum$ 2
A:AB$ ChangeZone | Cost$ 6 G G | Origin$ Battlefield | Destination$ Exile | RememberChanged$ True | SubAbility$ DBReturn | SorcerySpeed$ True | StackDescription$ SpellDescription | SpellDescription$ Exile CARDNAME, then return it to the battlefield transformed under its owners control. Activate only as a sorcery.
SVar:DBReturn:DB$ ChangeZone | Defined$ Remembered | Origin$ Exile | Destination$ Battlefield | Transformed$ True | ForgetOtherRemembered$ True | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
AlternateMode:DoubleFaced
Oracle:Trample, reach\nWhen Vorinclex enters the battlefield, search your library for up to two Forest cards, reveal them, put them into your hand, then shuffle.\n{6}{G}{G}: Exile Vorinclex, then return it to the battlefield transformed under its owner's control. Activate only as a sorcery.
ALTERNATE
Name:The Grand Evolution
ManaCost:no cost
Colors:green
Types:Enchantment Saga
K:Saga:3:DBMill,DBPutCounter,DBFight
SVar:DBMill:DB$ Mill | NumCards$ 10 | RememberMilled$ True | SubAbility$ DBChangeZone | SpellDescription$ Mill ten cards. Put up to two creature cards from among the milled cards onto the battlefield.
SVar:DBChangeZone:DB$ ChangeZone | Origin$ Graveyard | Hidden$ True | Destination$ Battlefield | ChangeType$ Creature.IsRemembered | ChangeTypeDesc$ creature cards milled this way | ChangeNum$ 2 | SelectPrompt$ Choose two creature cards milled this way | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:DBPutCounter:DB$ PutCounter | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select any number of creatures you control to distribute counters to | CounterType$ P1P1 | CounterNum$ 7 | TargetMin$ 1 | TargetMax$ 7 | DividedAsYouChoose$ 7 | SpellDescription$ Distribute seven +1/+1 counters among any number of target creatures you control.
SVar:DBFight:DB$ AnimateAll | ValidCards$ Creature.YouCtrl | Abilities$ Fight | Duration$ UntilEndOfTurn | SubAbility$ DBExileSelf | SpellDescription$ Until end of turn, creatures you control gain "{1}: This creature fights target creature you don't control." Exile CARDNAME, then return it to the battlefield (front face up).
SVar:Fight:AB$ Fight | Cost$ 1 | Defined$ Self | ValidTgts$ Creature.YouDontCtrl | TgtPrompt$ Select target creature you don't control | SpellDescription$ This creature fights target creature you don't control.
SVar:DBExileSelf:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | SubAbility$ DBReturnSelf | RememberChanged$ True
SVar:DBReturnSelf:DB$ ChangeZone | Defined$ Remembered | Origin$ Exile | Destination$ Battlefield | SubAbility$ DBCleanup
DeckHas:Ability$Mill|Counters|Graveyard
Oracle:(As this Saga enters and after your draw step, add a lore counter. Sacrifice after III.)\nI — Mill ten cards. Put up to two creature cards from among the milled cards onto the battlefield.\nII — Distribute seven +1/+1 counters among any number of target creatures you control.\nIII — Until end of turn, creatures you control gain "{1}: This creature fights target creature you don't control." Exile The Grand Evolution, then return it to the battlefield (front face up).

View File

@@ -1,9 +1,7 @@
Name:Wave of Reckoning Name:Wave of Reckoning
ManaCost:4 W ManaCost:4 W
Types:Sorcery Types:Sorcery
#for this AF, the DefinedCards$ Self is the target for Each damaging. They EachDamage themselves. A:SP$ EachDamage | ValidCards$ Creature | EachToItself$ True | NumDmg$ Count$CardPower | StackDescription$ SpellDescription | SpellDescription$ Each creature deals damage to itself equal to its power.
A:SP$ EachDamage | Cost$ 4 W | ValidCards$ Creature | NumDmg$ X | DamageDesc$ damage equal to its power | DefinedCards$ Self | SpellDescription$ Each creature deals damage to itself equal to its power.
#NumDmg isn't really used here. It is left for clarity. The AF pulls Damage straight from "X" hardcoded.
SVar:X:Count$CardPower SVar:X:Count$CardPower
AI:RemoveDeck:All AI:RemoveDeck:All
AI:RemoveDeck:Random AI:RemoveDeck:Random

View File

@@ -3,5 +3,5 @@ ManaCost:2 W
Types:Instant Types:Instant
A:SP$ Charm | Choices$ DBPump,DBDraw A:SP$ Charm | Choices$ DBPump,DBDraw
SVar:DBPump:DB$ PumpAll | ValidCards$ Creature.YouCtrl | KW$ Indestructible | SpellDescription$ Pray for Protection — Creatures you control gain indestructible until end of turn. SVar:DBPump:DB$ PumpAll | ValidCards$ Creature.YouCtrl | KW$ Indestructible | SpellDescription$ Pray for Protection — Creatures you control gain indestructible until end of turn.
SVar:DBDraw:DB$ Draw | Defined$ TargetedAndYou | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | SpellDescription$ Strike a Deal — You and target opponent each draw two cards. SVar:DBDraw:DB$ Draw | NumCards$ 2 | Defined$ TargetedAndYou | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | SpellDescription$ Strike a Deal — You and target opponent each draw two cards.
Oracle:Choose one —\n• Pray for Protection — Creatures you control gain indestructible until end of turn.\n• Strike a Deal — You and target opponent each draw two cards. Oracle:Choose one —\n• Pray for Protection — Creatures you control gain indestructible until end of turn.\n• Strike a Deal — You and target opponent each draw two cards.

View File

@@ -11,23 +11,445 @@ ScryfallCode=MOC
3 M Gimbal, Gremlin Prodigy @Fajareka Setiawan 3 M Gimbal, Gremlin Prodigy @Fajareka Setiawan
4 M Kasla, the Broken Halo @Martina Fackova 4 M Kasla, the Broken Halo @Martina Fackova
5 M Sidar Jabari of Zhalfir @Simon Dominic 5 M Sidar Jabari of Zhalfir @Simon Dominic
6 M Elenda and Azor @Randy Vargas
7 M Moira and Teshar @Josh Hass
8 M Rashmi and Ragavan @Joshua Cairos
9 M Saint Traft and Rem Karolus @Lucas Graciano
10 M Shalai and Hallar @Mila Pesic
11 R Chivalric Alliance @Jim Pavelec
12 R Conjurer's Mantle @Fiona Hsieh
13 R Darksteel Splicer @Steven Belledin
14 R Excise the Imperfect @Denis Zhbankov
15 R Filigree Vector
16 R Guardian Scalelord @Victor Adame Minguez
17 R Nesting Dovehawk @Alessandra Pisano
18 R Path of the Ghosthunter @Eli Minaya
19 R Vulpine Harvester @Brent Hollowell
20 R Wand of the Worldsoul @Alessandra Pisano
21 R Deluxe Dragster @Gabor Szikszai
22 R Herald of Hoofbeats @Randy Vargas
23 R Path of the Enigma @Jeremy Wilson
24 R Schema Thief @Artur Treffner
25 R Blight Titan @Martin de Diego Sádaba
26 R Exsanguinator Cavalry @Quintin Gleim
27 R Locthwain Lancer @Lars Grant-West
28 R Path of the Schemer @Josu Hernaiz
29 R Dance with Calamity @Fajareka Setiawan
30 R Death-Greeter's Champion @Jason Rainville
31 R Hedron Detonator @Caroline Gariba
32 R Mirror-Style Master @Chris Rallis
33 R Pain Distributor @Olivier Bernard
34 R Path of the Pyromancer @Dominik Mayer
35 R Uncivil Unrest @Lorenzo Mastroianni
36 R Conclave Sledge-Captain @Ilse Gort
37 R Emergent Woodwurm @Mathias Kollros
38 R Path of the Animist @Liiga Smilshkalne
39 R Sandsteppe War Riders @Kekai Kotaki
40 R Cutthroat Negotiator @Lucas Graciano
41 R Flockchaser Phantom @Lorenzo Mastroianni
42 R Mistmeadow Vanisher @Iris Compiet
43 R Vodalian Wave-Knight @Olivier Bernard
44 R Wildfire Awakener @Andrew Mar
45 R Bitterthorn, Nissa's Animus @Titus Lunter
46 R Ichor Elixir @Warren Mahy
47 C The Caldaia @Julian Kok Joon Wen
48 C Enigma Ridges @Eytan Zana
49 C Esper @Bruce Brenneise 49 C Esper @Bruce Brenneise
50 C The Fertile Lands of Saulvinia @Lorenzo Lanfranconi
51 C Ghirapur @David Alvarez
52 C The Golden City of Orazca @Alayna Danner
53 C The Great Aerie @Julian Kok Joon Wen
54 C Inys Haen @Aldo Domínguez
55 C Ketria @Piotr Dura
56 C Littiara @Jonas De Ro
57 C Megaflora Jungle
58 C Naktamun @Robin Olausson
59 C New Argive @Leon Tukker
60 C Norn's Seedcore @Alexander Forssberg
61 C Nyx @Piotr Dura 61 C Nyx @Piotr Dura
62 C Paliano @Piotr Dura
63 C The Pit @Dave Kendall
64 C Riptide Island @Jesper Ejsing
65 C Strixhaven @Alexander Forssberg
66 C Ten Wizards Mountain @Iris Compiet
67 C Towashi @Kamila Szutenberg 67 C Towashi @Kamila Szutenberg
68 C Unyaro @Robin Olausson
69 C Valor's Reach @Kamila Szutenberg
70 C The Western Cloud @Titus Lunter
71 C The Wilds @Chris Seaman
72 R Elspeth's Talent @Jeremy Wilson
73 R Firemane Commando @Andrew Mar
74 R Teferi's Talent @Dominik Mayer
75 M Infernal Sovereign @Chris Rallis
76 R Liliana's Talent @A. M. Sartor
77 R Rowan's Talent @Pauline Voss
78 R Vivien's Talent @Eli Minaya
79 M Begin the Invasion @Campbell White
80 R Elspeth's Talent @Jeremy Wilson
81 R Firemane Commando @Andrew Mar
82 R Teferi's Talent @Dominik Mayer
83 M Infernal Sovereign @Chris Rallis
84 R Liliana's Talent @A. M. Sartor
85 R Rowan's Talent @Pauline Voss
86 R Vivien's Talent @Eli Minaya
87 M Begin the Invasion @Campbell White
88 M Bright-Palm, Soul Awakener @Mila Pesic 88 M Bright-Palm, Soul Awakener @Mila Pesic
89 M Brimaz, Blight of Oreskos @Uriah Voth 89 M Brimaz, Blight of Oreskos @Uriah Voth
90 M Elenda and Azor @Randy Vargas
91 M Gimbal, Gremlin Prodigy @Fajareka Setiawan 91 M Gimbal, Gremlin Prodigy @Fajareka Setiawan
92 M Kasla, the Broken Halo @Martina Fackova 92 M Kasla, the Broken Halo @Martina Fackova
93 M Moira and Teshar @Josh Hass
94 M Rashmi and Ragavan @Joshua Cairos
95 M Saint Traft and Rem Karolus @Lucas Graciano
96 M Shalai and Hallar @Mila Pesic
97 M Sidar Jabari of Zhalfir @Simon Dominic 97 M Sidar Jabari of Zhalfir @Simon Dominic
98 R Chivalric Alliance @Jim Pavelec
99 R Conjurer's Mantle @Fiona Hsieh
100 R Darksteel Splicer @Steven Belledin
101 R Excise the Imperfect @Denis Zhbankov
102 R Filigree Vector
103 R Guardian Scalelord @Victor Adame Minguez
104 R Nesting Dovehawk @Alessandra Pisano
105 R Path of the Ghosthunter @Eli Minaya
106 R Vulpine Harvester @Brent Hollowell
107 R Wand of the Worldsoul @Alessandra Pisano
108 R Deluxe Dragster @Gabor Szikszai
109 R Herald of Hoofbeats @Randy Vargas
110 R Path of the Enigma @Jeremy Wilson
111 R Schema Thief @Artur Treffner
112 R Blight Titan @Martin de Diego Sádaba
113 R Exsanguinator Cavalry @Quintin Gleim
114 R Locthwain Lancer @Lars Grant-West
115 R Path of the Schemer @Josu Hernaiz
116 R Dance with Calamity @Fajareka Setiawan
117 R Death-Greeter's Champion @Jason Rainville
118 R Hedron Detonator @Caroline Gariba
119 R Mirror-Style Master @Chris Rallis
120 R Pain Distributor @Olivier Bernard
121 R Path of the Pyromancer @Dominik Mayer
122 R Uncivil Unrest @Lorenzo Mastroianni
123 R Conclave Sledge-Captain @Ilse Gort
124 R Emergent Woodwurm @Mathias Kollros
125 R Path of the Animist @Liiga Smilshkalne
126 R Sandsteppe War Riders @Kekai Kotaki
127 R Cutthroat Negotiator @Lucas Graciano
128 R Flockchaser Phantom @Lorenzo Mastroianni
129 R Mistmeadow Vanisher @Iris Compiet
130 R Vodalian Wave-Knight @Olivier Bernard
131 R Wildfire Awakener @Andrew Mar
132 R Bitterthorn, Nissa's Animus @Titus Lunter
133 R Ichor Elixir @Warren Mahy
134 M Bright-Palm, Soul Awakener @Mila Pesic 134 M Bright-Palm, Soul Awakener @Mila Pesic
135 M Brimaz, Blight of Oreskos @Uriah Voth 135 M Brimaz, Blight of Oreskos @Uriah Voth
136 M Gimbal, Gremlin Prodigy @Fajareka Setiawan 136 M Gimbal, Gremlin Prodigy @Fajareka Setiawan
137 M Kasla, the Broken Halo @Martina Fackova 137 M Kasla, the Broken Halo @Martina Fackova
138 M Sidar Jabari of Zhalfir @Simon Dominic 138 M Sidar Jabari of Zhalfir @Simon Dominic
139 C The Aether Flues @Jason A. Engle
140 C Bloodhill Bastion @Mark Hyzer
141 C Chaotic Aether @Dan Scott
142 C Gavony @Dave Kendall
143 C Glimmervoid Basin @Lars Grant-West
144 C The Great Forest @Howard Lyon
145 C Grove of the Dreampods @Erica Yang
146 C Hedron Fields of Agadeem @Vincent Proce
147 C Isle of Vesuva @Zoltan Boros & Gabor Szikszai 147 C Isle of Vesuva @Zoltan Boros & Gabor Szikszai
148 C Jund @Aleksi Briclot 148 C Jund @Aleksi Briclot
149 C Kharasha Foothills @Trevor Claxton
150 C Krosa @Steven Belledin
151 C Mutual Epiphany @Jason Felix
152 C Orochi Colony @Charles Urbach
153 C Panopticon @John Avon 153 C Panopticon @John Avon
154 C Planewide Disaster @Dave Kendall
155 C Reality Shaping @Dan Scott
156 C Selesnya Loft Gardens @Martina Pilcerova
157 C Sokenzan @Brian Snõddy
158 C Spatial Merging @Gabor Szikszai 158 C Spatial Merging @Gabor Szikszai
159 C Stensia @Vincent Proce
160 C Stronghold Furnace @Jim Pavelec
161 C Truga Jungle @Jim Nelson
162 C Turri Island @Raymond Swanland
163 C Undercity Reaches @Stephan Martiniere
164 U Abzan Battle Priest @Chris Rahn
165 U Abzan Falconer @Steven Belledin
166 R Acclaimed Contender @David Gaillet
167 R Adeline, Resplendent Cathar @Bryan Sola
168 U Alharu, Solemn Ritualist @Chris Rallis
169 R Angel of Finality @Howard Lyon
170 R Angel of Salvation @D. Alexander Gregory
171 R Angel of the Ruins @Viko Menezes
172 R Austere Command @Anna Steinbauer
173 U Banisher Priest @Willian Murai
174 U Battle Screech @Anastasia Ovchinnikova
175 R Blade Splicer @Greg Staples
176 M Cataclysmic Gearhulk @Victor Adame Minguez
177 U Chant of Vitu-Ghazi @Stephen Tappin
178 U Conclave Tribunal @Seb McKinnon
179 U Constable of the Realm @Alexander Mokhov
180 U Devouring Light @Slawomir Maniak
181 U Elite Scaleguard @Steve Prescott
182 M Elspeth, Sun's Champion @Tyler Jacobson
183 R Emeria Angel @Jim Murray
184 C Ephemeral Shields @Yohann Schepacz
185 R Fell the Mighty @Raymond Swanland
186 U Flight of Equenauts @Zezhou Chen
187 U Generous Gift @Kev Walker
188 M Hero of Bladehold @Steven Belledin
189 R High Sentinels of Arashin @James Ryman
190 R Hour of Reckoning @Joseph Meehan
191 R Keeper of the Accord @Denman Rooke
192 R Knight Exemplar @Jason Chan
193 R Knight of the White Orchid @Mark Zug
194 U Master Splicer @Chippy
195 R Maul of the Skyclaves @Joseph Meehan
196 U Mentor of the Meek @Jana Schirmer & Johannes Voss
197 R Mikaeus, the Lunarch @Steven Belledin
198 U Path to Exile @Todd Lockwood
199 R Phyrexian Rebirth @Scott Chou
200 R Promise of Loyalty @Sara Winters
201 R Restoration Angel @Jake Murray
202 U Return to Dust @Wayne Reynolds
203 R Secure the Wastes @Scott Murphy
204 R Semester's End @Alayna Danner
205 U Seraph of the Masses @Zoltan Boros
206 U Shattered Angel @Kev Walker
207 R Silverwing Squadron @Johannes Voss
208 C Spirited Companion @Ilse Gort
209 R Sunscorch Regent @Matt Stewart
210 C Suture Priest @Igor Kieryluk
211 U Swords to Plowshares @Jesper Ejsing
212 R Together Forever @Aaron Miller
213 R Unbreakable Formation @Matt Stewart
214 R Valiant Knight @Jakub Kasper
215 R Venerated Loxodon @Zack Stella
216 C Village Bell-Ringer @David Palumbo
217 R Worthy Knight @Yongjae Choi
218 R Chasm Skulker @Jack Wang
219 C Cloud of Faeries @Iris Compiet
220 C Distant Melody
221 R Echo Storm @Mark Poole
222 M Ethersworn Adjudicator @Dan Scott
223 U Fallowsage @Paolo Parente
224 R Imprisoned in the Moon @Ryan Alexander Lee
225 U Junk Winder @Campbell White
226 R Master of Etherium @Matt Cavotta
227 R Masterful Replication @Victor Adame Minguez
228 R Nadir Kraken @Dan Scott
229 R Perplexing Test @Fariba Khamseh
230 R Pull from Tomorrow @Sara Winters
231 U Reality Shift @Howard Lyon
232 U Reverse Engineer @Chase Stone
233 R Rise and Shine @Franz Vohwinkel
234 R Saheeli's Artistry @Kieran Yanner
235 R Sharding Sphinx @Michael Bruinsma
236 R Shimmer Dragon @Lie Setiawan
237 R Spell Swindle @Victor Adame Minguez
238 R Stroke of Genius @Rovina Cai
239 U Syr Elenora, the Discerning @Mila Pesic
240 U Tetsuko Umezawa, Fugitive @Randy Vargas
241 R Thopter Spy Network @Jung Park
242 C Thoughtcast @Greg Hildebrandt
243 R Vedalken Humiliator @Jehan Choo
244 U Whirler Rogue @Winona Nelson
245 R Workshop Elders @Iain McCaig
246 U Ambition's Cost @Zezhou Chen
247 U Bone Shredder @Ron Spencer
248 C First-Sphere Gargantua @Randy Vargas
249 U Foulmire Knight @Alex Brock
250 U Go for the Throat @Kristina Carroll
251 U Graveshifter @Jakub Kasper
252 R Haakon, Stromgald Scourge @Mark Zug
253 R Josu Vess, Lich Knight @Tyler Jacobson
254 U Keskit, the Flesh Sculptor @Yongjae Choi
255 R Liliana's Standard Bearer @Josh Hass
256 M Massacre Wurm @Jason Chan
257 R Midnight Reaper @Sidharth Chaturvedi
258 R Murderous Rider @Josh Hass
259 C Night's Whisper @John Severin Brassell
260 M Noxious Gearhulk @Lius Lasahido
261 U Order of Midnight @Victor Adame Minguez
262 R Painful Truths @Winona Nelson
263 R Phyrexian Delver @Igor Kieryluk
264 C Phyrexian Ghoul @Pete Venters
265 C Phyrexian Rager @Brock Grossman
266 M Phyrexian Scriptures @Joseph Meehan
267 C Read the Bones @Lars Grant-West
268 C Smitten Swordmaster @Taylor Ingvarsson
269 U Syr Konrad, the Grim @Anna Steinbauer
270 U Victimize @Craig J Spearing
271 R Yawgmoth's Vile Offering @Chase Stone
272 R Brass's Bounty @Grzegorz Rutkowski
273 R Chaos Warp @Trevor Claxton
274 U Curse of Opulence @Kieran Yanner
275 R Everquill Phoenix @Lie Setiawan
276 U Falkenrath Exterminator @Winona Nelson
277 M Feldon of the Third Path @Chase Stone
278 R Fiery Confluence @Kieran Yanner
279 R Flamerush Rider @Min Yum
280 R Flameshadow Conjuring @Seb McKinnon
281 U Ghirapur Aether Grid @Cynthia Sheppard
282 C Goblin Instigator @Filip Burburan
283 C Goblin Medics @Caio Monteiro
284 R Hellkite Igniter @Jason Chan
285 C Impact Tremors @Lake Hurwitz
286 R Ion Storm @Michael Sutfin
287 R Krenko, Tin Street Kingpin @Viko Menezes
288 R Pia and Kiran Nalaar @Eric Deschamps
289 U Vampires' Vengeance @Chris Cold
290 R Aid from the Cowl @Viktor Titov
291 U Armorcraft Judge @David Palumbo
292 U Brawn @Matt Cavotta
293 R Champion of Lambholt @Christopher Moeller
294 C Crack Open @Yeong-Hao Han
295 C Cultivate @Anthony Palumbo
296 C Fertilid @Wayne Reynolds
297 R Forgotten Ancient @Mark Tedin
298 R Genesis Hydra @Donato Giancola
299 R Gilded Goose @Lindsey Look
300 R Gyre Sage @Tyler Jacobson
301 U Hindervines @Svetlin Velinov
302 R Incubation Druid @Daniel Ljunggren
303 R Inscription of Abundance @Zoltan Boros
304 U Inspiring Call @Dan Scott
305 M Kalonian Hydra @Chris Rahn
306 C Kodama's Reach @John Avon
307 R Managorger Hydra @Lucas Graciano
308 C Pridemalkin @Karl Kopinski
309 C Return to Nature @Mark Poole
310 R Rishkar, Peema Renegade @Todd Lockwood
311 C Root Out @Daniel Ljunggren
312 U Slurrk, All-Ingesting @Jehan Choo
313 U Tireless Provisioner @Josu Hernaiz
314 R Tireless Tracker @Eric Deschamps
315 U Weirding Wood @Jung Park
316 C Wood Elves @Josh Hass
317 U Arvad the Cursed @Lius Lasahido
318 R Aryel, Knight of Windgrace @Grzegorz Rutkowski
319 U Combine Chrysalis @Hector Ortiz
320 U Conclave Mentor @Raoul Vitale
321 U Corpse Knight @Karl Kopinski
322 U Despark @Slawomir Maniak
323 R Dromoka's Command @James Ryman
324 U Duergar Hedge-Mage @Dave Allsop
325 U Enduring Scalelord @Clint Cearley
326 U Good-Fortune Unicorn @Kee Lo
327 U Hamza, Guardian of Arashin @Wisnu Tan
328 R Heaven // Earth @Jonas De Ro
329 U Improbable Alliance @Zoltan Boros
330 U Juniper Order Ranger @Greg Hildebrandt
331 U Knight of the Last Breath @Milivoj Ćeran
332 U Knights of the Black Rose @Mark Zug
333 R Knights' Charge @Paul Scott Canavan
334 M Kykar, Wind's Fury @G-host Lee
335 M The Locust God @Lius Lasahido
336 U Migratory Route @Winona Nelson
337 U Mortify @Anthony Palumbo
338 U Saheeli, Sublime Artificer @Wesley Burt
339 U Struggle // Survive @Eric Deschamps
340 R Time Wipe @Svetlin Velinov
341 R Utter End @Mark Winters
342 M Vona, Butcher of Magan @Volkan Baǵa
343 U Wear // Tear @Ryan Pancoast
344 R Whirlwind of Thought @Bram Sels
345 U Wintermoor Commander @Tyler Jacobson
346 R Academy Manufactor @Campbell White
347 R Ancient Stone Idol @Josh Hass
348 C Arcane Signet @Dan Scott
349 R Bloodforged Battle-Axe @Alayna Danner
350 U Bloodline Pretender @Slawomir Maniak
351 U Burnished Hart @Yeong-Hao Han
352 C Commander's Sphere @Ryan Alexander Lee
353 R Coveted Jewel @Jason A. Engle
354 R Cultivator's Caravan @Mark Zug
355 R Duplicant @Thomas M. Baxa
356 U Fellwar Stone @John Avon
357 C Fractured Powerstone @Rob Alexander
358 C Gruul Signet @Efrem Palacios
359 U Hedron Archive @Craig J Spearing
360 U Herald's Horn @Jason Felix
361 R Inspiring Statuary @Kirsten Zirngibl
362 C Izzet Signet @Raoul Vitale
363 U Meteor Golem @Lake Hurwitz
364 U Mind Stone @Adam Rex
365 U Mindless Automaton @Chris Seaman
366 R Myr Battlesphere @Franz Vohwinkel
367 R Nettlecyst @Vincent Proce
368 C Orzhov Locket @Volkan Baǵa
369 C Orzhov Signet @Martina Pilcerova
370 M Phyrexian Triniform @Adam Paquette
371 R Psychosis Crawler @Stephan Martiniere
372 U Replicating Ring @Olena Richards
373 R Scrap Trawler @Daarken
374 R Sculpting Steel @Heather Hudson
375 R Scytheclaw @James Paick
376 U Shimmer Myr @Jana Schirmer & Johannes Voss
377 R Sigiled Sword of Valeron @John Stanko
378 C Simic Signet @Mike Sass
379 U Skullclamp @Luca Zontini
380 R Skyclave Relic @Daniel Ljunggren
381 U Sol Ring @Mike Bierek
382 M Soul of New Phyrexia @Daarken
383 R Spine of Ish Sah @Daniel Ljunggren
384 R Strionic Resonator @Sam White
385 U Talisman of Hierarchy @Lindsey Look
386 R Thopter Assembly @Svetlin Velinov
387 R Triskelion @Christopher Moeller
388 R Vanquisher's Banner @Milivoj Ćeran
389 C Wayfarer's Bauble @Tomas Duchek
390 U Arcane Sanctum @Anthony Francisco
391 C Bojuka Bog @Howard Lyon
392 U Bretagard Stronghold @Jung Park
393 R Canopy Vista @Adam Paquette
394 R Choked Estuary @Vincent Proce
395 R Cinder Glade @Adam Paquette
396 C Command Tower @Evan Shipard
397 C Evolving Wilds @Cliff Childs
398 R Exotic Orchard @Steven Belledin
399 R Fetid Heath @Daarken
400 U Field of Ruin @Chris Ostrowski
401 R Fortified Village @Cliff Childs
402 U Frontier Bivouac @Titus Lunter
403 R Frostboil Snarl @Sam Burley
404 R Furycalm Snarl @Sam Burley
405 R Game Trail @Adam Paquette
406 R Gavony Township @Julian Kok Joon Wen
407 C Goldmire Bridge @Aaron Miller
408 U Jungle Shrine @Wayne Reynolds
409 R Karn's Bastion @Adam Paquette
410 R Kessig Wolf Run @Eytan Zana
411 R Kher Keep @Paolo Parente
412 U Krosan Verge @Ruxing Gao
413 U Llanowar Reborn @Philip Straub
414 R Mossfire Valley @Yeong-Hao Han
415 R Mosswort Bridge @Jeremy Jarvis
416 U Myriad Landscape @Jonas De Ro
417 U Mystic Monastery @Florian de Gesincourt
418 C Path of Ancestry @Alayna Danner
419 R Port Town @Kamila Szutenberg
420 R Prairie Stream @Adam Paquette
421 U Rogue's Passage @Christine Choi
422 R Shineshadow Snarl @Sam Burley
423 C Silverquill Campus @Titus Lunter
424 C Simic Growth Chamber @John Avon
425 R Skycloud Expanse @Sam Burley
426 R Spire of Industry @John Avon
427 R Sungrass Prairie @Ron Spencer
428 R Sunken Hollow @Adam Paquette
429 U Tainted Field @Don Hazeltine
430 R Temple of Abandon @Adam Paquette
431 R Temple of Deceit @Jonas De Ro
432 R Temple of Enlightenment @Piotr Dura
433 R Temple of Epiphany @Adam Paquette
434 R Temple of Mystery @Piotr Dura
435 R Temple of Plenty @Chris Ostrowski
436 R Temple of Silence @Adam Paquette
437 U Temple of the False God @Brian Snõddy
438 R Temple of Triumph @Piotr Dura
439 C Terramorphic Expanse @Dan Scott
440 C Thriving Heath @Alayna Danner
441 C Thriving Isle @Jonas De Ro
442 C Thriving Moor @Titus Lunter
443 R Vault of the Archangel @John Avon
444 R Vineglimmer Snarl @Sam Burley
445 M Goro-Goro and Satoru @Johannes Voss 445 M Goro-Goro and Satoru @Johannes Voss
446 M Katilda and Lier @Justyna Dura 446 M Katilda and Lier @Justyna Dura
447 M Slimefoot and Squee @Victor Adame Minguez 447 M Slimefoot and Squee @Victor Adame Minguez

View File

@@ -7,3 +7,4 @@ ScryfallCode=MAT
[cards] [cards]
34 R The Kenriths' Royal Funeral @Manuel Castañón 34 R The Kenriths' Royal Funeral @Manuel Castañón
230 Jolrael, Voice of Zhalfir @Ernanda Souza

View File

@@ -7,120 +7,221 @@ ScryfallCode=MOM
[cards] [cards]
1 M Invasion of Ravnica @Leon Tukker 1 M Invasion of Ravnica @Leon Tukker
2 C Aerial Boost @Artur Nakhodkin
3 C Alabaster Host Intercessor @Konstantin Porubov
4 C Alabaster Host Sanctifier @Konstantin Porubov 4 C Alabaster Host Sanctifier @Konstantin Porubov
5 C Angelic Intervention @Awanqi (Angela Wang)
6 M Archangel Elspeth @Cynthia Sheppard 6 M Archangel Elspeth @Cynthia Sheppard
7 C Attentive Skywarden @Jodie Muir
8 C Bola Slinger @Hendry Iwanaga
9 R Boon-Bringer Valkyrie @Heonhwa Choe 9 R Boon-Bringer Valkyrie @Heonhwa Choe
10 C Cut Short @Tran Nguyen
11 R Dusk Legion Duelist @Ryan Valle 11 R Dusk Legion Duelist @Ryan Valle
12 M Elesh Norn @Magali Villeneuve 12 M Elesh Norn @Magali Villeneuve
13 U Elspeth's Smite @Livia Prima 13 U Elspeth's Smite @Livia Prima
14 C Enduring Bondwarden @Kim Sokol
15 C Golden-Scale Aeronaut @Javier Charro
16 R Guardian of Ghirapur @Cynthia Sheppard 16 R Guardian of Ghirapur @Cynthia Sheppard
17 R Heliod, the Radiant Dawn @Victor Adame Minguez 17 R Heliod, the Radiant Dawn @Victor Adame Minguez
18 C Infected Defector @Nino Vecia
19 C Inspired Charge @Vladimir Krisetskiy
20 U Invasion of Belenon @Antonio José Manzanedo 20 U Invasion of Belenon @Antonio José Manzanedo
21 U Invasion of Dominaria @Denys Tsiperko 21 U Invasion of Dominaria @Denys Tsiperko
22 R Invasion of Gobakhan @Andreas Zafiratos 22 R Invasion of Gobakhan @Andreas Zafiratos
23 R Invasion of Theros @Johan Grenier 23 R Invasion of Theros @Johan Grenier
24 C Kithkin Billyrider @Zara Alfonso
25 C Knight of the New Coalition @Jake Murray
26 R Knight-Errant of Eos @Kevin Sidharta 26 R Knight-Errant of Eos @Kevin Sidharta
27 C Kor Halberd @Bastien L. Deharme
28 M Monastery Mentor @Brian Valeza 28 M Monastery Mentor @Brian Valeza
29 U Norn's Inquisitor @Denis Zhbankov 29 U Norn's Inquisitor @Denis Zhbankov
30 U Phyrexian Awakening @Artur Nakhodkin 30 U Phyrexian Awakening @Artur Nakhodkin
31 U Phyrexian Censor @Alexey Kruglov 31 U Phyrexian Censor @Alexey Kruglov
32 R Progenitor Exarch @Marie Magny
33 C Realmbreaker's Grasp @Artur Nakhodkin
34 C Scrollshift @Bram Sels
35 U Seal from Existence @Anato Finnstark 35 U Seal from Existence @Anato Finnstark
36 U Seraph of New Capenna @Aaron J. Riley 36 U Seraph of New Capenna @Aaron J. Riley
37 C Sigiled Sentinel @Volkan Baǵa
38 U Sun-Blessed Guardian @Brian Valeza 38 U Sun-Blessed Guardian @Brian Valeza
39 C Sunder the Gateway @Titus Lunter
40 R Sunfall @Kasia 'Kafis' Zielińska 40 R Sunfall @Kasia 'Kafis' Zielińska
41 U Surge of Salvation @Dominik Mayer 41 U Surge of Salvation @Dominik Mayer
42 C Swordsworn Cavalier @Stella Spente
43 C Tarkir Duneshaper @Denys Tsiperko
44 U Tiller of Flesh @Nino Vecia 44 U Tiller of Flesh @Nino Vecia
45 U Zhalfirin Lancer @Nino Vecia 45 U Zhalfirin Lancer @Nino Vecia
46 U Artistic Refusal @Olivier Bernard 46 U Artistic Refusal @Olivier Bernard
47 C Assimilate Essence @Konstantin Porubov
48 U Astral Wingspan @Joseph Weston 48 U Astral Wingspan @Joseph Weston
49 U Captive Weird @Manuel Castañón 49 U Captive Weird @Manuel Castañón
50 U Change the Equation @Alix Branwyn 50 U Change the Equation @Alix Branwyn
51 R Chrome Host Seedshark @Donato Giancola 51 R Chrome Host Seedshark @Donato Giancola
52 R Complete the Circuit @Eelis Kyttanen 52 R Complete the Circuit @Eelis Kyttanen
53 U Corruption of Towashi @Artur Nakhodkin 53 U Corruption of Towashi @Artur Nakhodkin
54 C Disturbing Conversion @Anna Mitura-Laskowska
55 C Ephara's Dispersal @Awanqi (Angela Wang)
56 C Expedition Lookout @Johan Grenier
57 C Eyes of Gitaxias @Cristi Balanescu
58 R Faerie Mastermind @Joshua Raphael 58 R Faerie Mastermind @Joshua Raphael
59 C Furtive Analyst @Marcela Bolívar
60 C Halo-Charged Skaab @Igor Kieryluk
61 R Invasion of Arcavios @Dmitry Burmak 61 R Invasion of Arcavios @Dmitry Burmak
62 U Invasion of Kamigawa @Kekai Kotaki 62 U Invasion of Kamigawa @Kekai Kotaki
63 R Invasion of Segovia @Edgar Sánchez Hidalgo 63 R Invasion of Segovia @Edgar Sánchez Hidalgo
64 U Invasion of Vryn @Leon Tukker 64 U Invasion of Vryn @Leon Tukker
65 M Jin-Gitaxias @Ekaterina Burmak 65 M Jin-Gitaxias @Ekaterina Burmak
66 C Meeting of Minds @Milivoj Ćeran
67 C Moment of Truth @Rovina Cai 67 C Moment of Truth @Rovina Cai
68 C Negate @Viko Menezes 68 C Negate @Viko Menezes
69 C Oculus Whelp @Donato Giancola
70 U Omen Hawker @Josh Hass 70 U Omen Hawker @Josh Hass
71 U Oracle of Tragedy @Pavel Kolomeyets 71 U Oracle of Tragedy @Pavel Kolomeyets
72 C Order of the Mirror @Andrew Mar
73 C Preening Champion @Alix Branwyn
74 C Protocol Knight @Volkan Baǵa
75 R Rona, Herald of Invasion @Victor Adame Minguez 75 R Rona, Herald of Invasion @Victor Adame Minguez
76 C Saiba Cryptomancer @Aaron J. Riley
77 R See Double @Marc Simonetti 77 R See Double @Marc Simonetti
78 U Skyclave Aerialist @Michal Ivan 78 U Skyclave Aerialist @Michal Ivan
79 C Stasis Field @Jinho Bae
80 C Temporal Cleansing @Dominik Mayer
81 C Thunderhead Squadron @PINDURSKI
82 C Tidal Terror @Nicholas Gregory
83 R Transcendent Message @Liiga Smilshkalne 83 R Transcendent Message @Liiga Smilshkalne
84 U Wicked Slumber @Anato Finnstark
85 U Xerex Strobe-Knight @Pavel Kolomeyets 85 U Xerex Strobe-Knight @Pavel Kolomeyets
86 R Zephyr Singer @Lie Setiawan 86 R Zephyr Singer @Lie Setiawan
87 C Zhalfirin Shapecraft @Aldo Domínguez
88 C Aetherblade Agent @Alexander Mokhov
89 R Archpriest of Shadows @Fariba Khamseh 89 R Archpriest of Shadows @Fariba Khamseh
90 R Ayara, Widow of the Realm @Anna Podedworna 90 R Ayara, Widow of the Realm @Anna Podedworna
91 C Bladed Battle-Fan @Colin Boyer
92 U Blightreaper Thallid @Marta Nael 92 U Blightreaper Thallid @Marta Nael
93 R Bloated Processor @Brock Grossman 93 R Bloated Processor @Brock Grossman
94 R Breach the Multiverse @Liiga Smilshkalne 94 R Breach the Multiverse @Liiga Smilshkalne
95 U Collective Nightmare @Rovina Cai 95 U Collective Nightmare @Rovina Cai
96 U Compleated Huntmaster @Alex Brock
97 C Consuming Aetherborn @Aldo Domínguez
98 C Corrupted Conviction @Joseph Weston
99 C Deadly Derision @Gaboleps 99 C Deadly Derision @Gaboleps
100 C Dreg Recycler @Campbell White
101 C Etched Familiar @Colin Boyer
102 C Etched Host Doombringer @Helge C. Balzer
103 C Failed Conversion @Jodie Muir
104 C Final Flourish @Raluca Marinescu
105 C Flitting Guerrilla @Francisco Miyara
106 U Gift of Compleation @Artur Nakhodkin 106 U Gift of Compleation @Artur Nakhodkin
107 U Glistening Deluge @Anastasia Balakchina 107 U Glistening Deluge @Anastasia Balakchina
108 C Gloomfang Mauler @Denis Zhbankov
109 R Grafted Butcher @Zack Stella 109 R Grafted Butcher @Zack Stella
110 R Hoarding Broodlord @Filip Burburan 110 R Hoarding Broodlord @Filip Burburan
111 C Ichor Drinker @Aurore Folny
112 C Ichor Shade @Nicholas Gregory
113 U Invasion of Eldraine @Cristi Balanescu 113 U Invasion of Eldraine @Cristi Balanescu
114 R Invasion of Fiora @Joshua Raphael 114 R Invasion of Fiora @Joshua Raphael
115 M Invasion of Innistrad @Alexey Kruglov 115 M Invasion of Innistrad @Alexey Kruglov
116 U Invasion of Ulgrotha @Viko Menezes 116 U Invasion of Ulgrotha @Viko Menezes
117 U Merciless Repurposing @Artur Nakhodkin 117 U Merciless Repurposing @Artur Nakhodkin
118 C Mirrodin Avenged @Scott Murphy 118 C Mirrodin Avenged @Scott Murphy
119 U Nezumi Freewheeler @Artur Nakhodkin
120 C Nezumi Informant @Steve Prescott
121 U Phyrexian Gargantua @Kevin Sidharta 121 U Phyrexian Gargantua @Kevin Sidharta
122 R Pile On @Javier Charro 122 R Pile On @Javier Charro
123 U Render Inert @Yigit Koroglu 123 U Render Inert @Yigit Koroglu
124 U Scorn-Blade Berserker @Tuan Duong Chu
125 M Sheoldred @Ryan Pancoast 125 M Sheoldred @Ryan Pancoast
126 C Tenured Oilcaster @Francisco Miyara
127 C Traumatic Revelation @Cristi Balanescu 127 C Traumatic Revelation @Cristi Balanescu
128 C Unseal the Necropolis @Isis
129 C Vanquish the Weak @Gaboleps
130 C Akki Scrapchomper @Wisnu Tan
131 C Beamtown Beatstick @Konstantin Porubov 131 C Beamtown Beatstick @Konstantin Porubov
132 R Bloodfeather Phoenix @Rudy Siswanto 132 R Bloodfeather Phoenix @Rudy Siswanto
133 C Burning Sun's Fury @Slawomir Maniak
134 M Chandra, Hope's Beacon @Kieran Yanner 134 M Chandra, Hope's Beacon @Kieran Yanner
135 R City on Fire @Jake Murray 135 R City on Fire @Jake Murray
136 C Coming In Hot @Cristi Balanescu
137 R Etali, Primal Conqueror @Ryan Pancoast 137 R Etali, Primal Conqueror @Ryan Pancoast
138 U Fearless Skald @Slawomir Maniak 138 U Fearless Skald @Slawomir Maniak
139 U Furnace Gremlin @Tuan Duong Chu 139 U Furnace Gremlin @Tuan Duong Chu
140 C Furnace Host Charger @Andreas Zafiratos
141 U Furnace Reins @Brian Valeza 141 U Furnace Reins @Brian Valeza
142 C Hangar Scrounger @Borja Pindado
143 U Harried Artisan @Caio Monteiro 143 U Harried Artisan @Caio Monteiro
144 R Into the Fire @Grzegorz Rutkowski 144 R Into the Fire @Grzegorz Rutkowski
145 R Invasion of Kaldheim @Bryan Sola 145 R Invasion of Kaldheim @Bryan Sola
146 R Invasion of Karsus @Zoltan Boros 146 R Invasion of Karsus @Zoltan Boros
147 U Invasion of Mercadia @Cristi Balanescu 147 U Invasion of Mercadia @Cristi Balanescu
148 U Invasion of Regatha @Daarken 148 U Invasion of Regatha @Daarken
149 M Invasion of Tarkir @Darren Tan 149 M Invasion of Tarkir @Darren Tan
150 C Karsus Depthguard @Tyler Jacobson
151 U Khenra Spellspear @Artur Nakhodkin 151 U Khenra Spellspear @Artur Nakhodkin
152 U Lithomantic Barrage @Viko Menezes 152 U Lithomantic Barrage @Viko Menezes
153 C Marauding Dreadship @Tiffany Turrill
154 C Mirran Banesplitter @Chris Seaman
155 R Nahiri's Warcrafting @Zara Alfonso
156 C Onakke Javelineer @Joseph Weston
157 C Pyretic Prankster @Francis Tneh
158 C Ral's Reinforcements @Nils Hamm
159 U Ramosian Greatsword @Jason A. Engle 159 U Ramosian Greatsword @Jason A. Engle
160 R Rampaging Raptor @Denys Tsiperko 160 R Rampaging Raptor @Denys Tsiperko
161 C Redcap Heelslasher @Alexey Kruglov
162 U Scrappy Bruiser @David Auden Nash 162 U Scrappy Bruiser @David Auden Nash
163 C Searing Barb @Tiffany Turrill
164 C Shatter the Source @Artur Nakhodkin
165 U Shivan Branch-Burner @Aaron Miller 165 U Shivan Branch-Burner @Aaron Miller
166 U Stoke the Flames @Liiga Smilshkalne 166 U Stoke the Flames @Liiga Smilshkalne
167 C Thrashing Frontliner @Pavel Kolomeyets
168 C Trailblazing Historian @Jason A. Engle
169 M Urabrask @Campbell White 169 M Urabrask @Campbell White
170 C Volcanic Spite @Kevin Sidharta
171 R Voldaren Thrillseeker @Viko Menezes 171 R Voldaren Thrillseeker @Viko Menezes
172 C War-Trained Slasher @Francis Tneh
173 C Wrenn's Resolve
174 R Ancient Imperiosaur @Piotr Foksowicz 174 R Ancient Imperiosaur @Piotr Foksowicz
175 C Arachnoid Adaptation @Isis
176 C Atraxa's Fall @Xavier Ribeiro
177 C Blighted Burgeoning @Piotr Foksowicz
178 C Bonded Herdbeast @Jokubas Uogintas
179 C Chomping Kavu @John Tedrick
180 C Converter Beast @Uriah Voth
181 U Copper Host Crusher @Nicholas Gregory 181 U Copper Host Crusher @Nicholas Gregory
182 C Cosmic Hunger @Konstantin Porubov
183 C Crystal Carapace @Sam Burley
184 R Deeproot Wayfinder @Anna Pavleeva 184 R Deeproot Wayfinder @Anna Pavleeva
185 R Doomskar Warrior @Chris Rallis 185 R Doomskar Warrior @Chris Rallis
186 C Fertilid's Favor @Kevin Sidharta
187 R Glistening Dawn @Chris Ostrowski 187 R Glistening Dawn @Chris Ostrowski
188 U Gnottvold Hermit @Artur Nakhodkin 188 U Gnottvold Hermit @Artur Nakhodkin
189 U Herbology Instructor @Sergey Glushakov
190 R Invasion of Ikoria @Antonio José Manzanedo 190 R Invasion of Ikoria @Antonio José Manzanedo
191 R Invasion of Ixalan @Viktor Titov 191 R Invasion of Ixalan @Viktor Titov
192 U Invasion of Muraganda @Adam Paquette 192 U Invasion of Muraganda @Adam Paquette
193 M Invasion of Shandalar @Adam Paquette 193 M Invasion of Shandalar @Adam Paquette
194 U Invasion of Zendikar @Diego Gisbert 194 U Invasion of Zendikar @Diego Gisbert
195 C Iridescent Blademaster @Livia Prima
196 U Kami of Whispered Hopes @Filipe Pagliuso 196 U Kami of Whispered Hopes @Filipe Pagliuso
197 C Overgrown Pest @Eelis Kyttanen
198 R Ozolith, the Shattered Spire @Daarken 198 R Ozolith, the Shattered Spire @Daarken
199 C Placid Rottentail @Filip Burburan
200 R Polukranos Reborn @David Auden Nash 200 R Polukranos Reborn @David Auden Nash
201 C Portent Tracker @Caroline Gariba
202 U Ravenous Sailback @Andrew Mar 202 U Ravenous Sailback @Andrew Mar
203 U Sandstalker Moloch @Donato Giancola 203 U Sandstalker Moloch @Donato Giancola
204 C Seed of Hope @Gaboleps
205 C Serpent-Blade Assailant @Durion
206 U Storm the Seedcore @Jason Rainville 206 U Storm the Seedcore @Jason Rainville
207 U Streetwise Negotiator @Brent Hollowell 207 U Streetwise Negotiator @Brent Hollowell
208 U Tandem Takedown @Yigit Koroglu 208 U Tandem Takedown @Yigit Koroglu
209 U Tangled Skyline @Martin de Diego Sádaba
210 C Timberland Ancient @Pavel Kolomeyets
211 R Tribute to the World Tree @Kristina Carroll 211 R Tribute to the World Tree @Kristina Carroll
212 C Vengeant Earth @Jonas De Ro
213 M Vorinclex @Daarken 213 M Vorinclex @Daarken
214 C War Historian @Ryan Valle
215 C Wary Thespian @Billy Christian
216 C Wildwood Escort @Taras Susak
217 M Wrenn and Realmbreaker @Cristi Balanescu 217 M Wrenn and Realmbreaker @Cristi Balanescu
218 R Baral and Kari Zev @Fariba Khamseh 218 R Baral and Kari Zev @Fariba Khamseh
219 M Borborygmos and Fblthp @Rudy Siswanto 219 M Borborygmos and Fblthp @Rudy Siswanto
@@ -150,6 +251,7 @@ ScryfallCode=MOM
243 U Joyful Stormsculptor @Christina Kraus 243 U Joyful Stormsculptor @Christina Kraus
244 R Kogla and Yidaro @Chris Rahn 244 R Kogla and Yidaro @Chris Rahn
245 M Kroxa and Kunoros @Ignatius Budi 245 M Kroxa and Kunoros @Ignatius Budi
246 U Marshal of Zhalfir @Darren Tan
247 U Mirror-Shield Hoplite @Alex Brock 247 U Mirror-Shield Hoplite @Alex Brock
248 U Mutagen Connoisseur @Alex Brock 248 U Mutagen Connoisseur @Alex Brock
249 R Omnath, Locus of All @Bryan Sola 249 R Omnath, Locus of All @Bryan Sola
@@ -157,12 +259,19 @@ ScryfallCode=MOM
251 U Rampaging Geoderm @Randy Vargas 251 U Rampaging Geoderm @Randy Vargas
252 R Rankle and Torbran @Viko Menezes 252 R Rankle and Torbran @Viko Menezes
253 U Sculpted Perfection @Chris Seaman 253 U Sculpted Perfection @Chris Seaman
254 U Stormclaw Rager @Nicholas Elias
255 M Thalia and The Gitrog Monster @Howard Lyon 255 M Thalia and The Gitrog Monster @Howard Lyon
256 R Yargle and Multani @Slawomir Maniak 256 R Yargle and Multani @Slawomir Maniak
257 M Zimone and Dina @Lie Setiawan 257 M Zimone and Dina @Lie Setiawan
258 M Zurgo and Ojutai @Daarken 258 M Zurgo and Ojutai @Daarken
259 C Flywheel Racer @Joshua Cairos
260 C Halo Hopper @Daniel Ljunggren
261 C Kitesail @Ben Hill
262 C Phyrexian Archivist @Daniel Romanovsky
263 R Realmbreaker, the Invasion Tree @Kekai Kotaki 263 R Realmbreaker, the Invasion Tree @Kekai Kotaki
264 C Skittering Surveyor @Igor Kieryluk
265 M Sword of Once and Future @Joshua Cairos 265 M Sword of Once and Future @Joshua Cairos
266 C Urn of Godfire @Ovidio Cartagena
267 C Bloodfell Caves @Jorge Jacinto 267 C Bloodfell Caves @Jorge Jacinto
268 C Blossoming Sands @Robin Olausson 268 C Blossoming Sands @Robin Olausson
269 C Dismal Backwater @Chris Ostrowski 269 C Dismal Backwater @Chris Ostrowski
@@ -188,11 +297,16 @@ ScryfallCode=MOM
289 L Mountain @Lucas Staniec 289 L Mountain @Lucas Staniec
290 L Forest @Grady Frederick 290 L Forest @Grady Frederick
291 L Forest @Henry Peters 291 L Forest @Henry Peters
[showcase]
292 M Elesh Norn @Kekai Kotaki 292 M Elesh Norn @Kekai Kotaki
293 R Heliod, the Radiant Dawn @Jason A. Engle 293 R Heliod, the Radiant Dawn @Jason A. Engle
294 M Jin-Gitaxias @Dominik Mayer 294 M Jin-Gitaxias @Dominik Mayer
295 R Rona, Herald of Invasion @Daniel Lieske
296 R Ayara, Widow of the Realm @Josu Hernaiz 296 R Ayara, Widow of the Realm @Josu Hernaiz
297 M Sheoldred @Dominik Mayer
298 R Etali, Primal Conqueror @Yeong-Hao Han 298 R Etali, Primal Conqueror @Yeong-Hao Han
299 M Urabrask @Kekai Kotaki
300 R Polukranos Reborn @Jason A. Engle 300 R Polukranos Reborn @Jason A. Engle
301 M Vorinclex @Flavio Girón 301 M Vorinclex @Flavio Girón
302 R Baral and Kari Zev @Magali Villeneuve 302 R Baral and Kari Zev @Magali Villeneuve
@@ -213,9 +327,14 @@ ScryfallCode=MOM
317 R Yargle and Multani @Lisa Heidhoff 317 R Yargle and Multani @Lisa Heidhoff
318 M Zimone and Dina @Anato Finnstark 318 M Zimone and Dina @Anato Finnstark
319 M Zurgo and Ojutai @Adrian Smith 319 M Zurgo and Ojutai @Adrian Smith
[borderless]
320 M Archangel Elspeth @Denys Tsiperko 320 M Archangel Elspeth @Denys Tsiperko
321 M Chandra, Hope's Beacon @Randy Vargas 321 M Chandra, Hope's Beacon @Randy Vargas
322 M Wrenn and Realmbreaker @Jehan Choo 322 M Wrenn and Realmbreaker @Jehan Choo
339 M Jin-Gitaxias @Julian Kok Joon Wen
[jumpstart]
323 R Essence of Orthodoxy @Oriana Menendez 323 R Essence of Orthodoxy @Oriana Menendez
324 C Phyrexian Pegasus @Carlos Palma Cruchaga 324 C Phyrexian Pegasus @Carlos Palma Cruchaga
325 U Seedpod Caretaker @Slawomir Maniak 325 U Seedpod Caretaker @Slawomir Maniak
@@ -231,12 +350,14 @@ ScryfallCode=MOM
335 C Fairgrounds Trumpeter @Samuel Perin 335 C Fairgrounds Trumpeter @Samuel Perin
336 U Ruins Recluse @Lorenzo Mastroianni 336 U Ruins Recluse @Lorenzo Mastroianni
337 R Surrak and Goreclaw @Lucas Graciano 337 R Surrak and Goreclaw @Lucas Graciano
339 M Jin-Gitaxias @Julian Kok Joon Wen
[extended art]
343 R Boon-Bringer Valkyrie @Heonhwa Choe 343 R Boon-Bringer Valkyrie @Heonhwa Choe
344 R Dusk Legion Duelist @Ryan Valle 344 R Dusk Legion Duelist @Ryan Valle
345 R Guardian of Ghirapur @Cynthia Sheppard 345 R Guardian of Ghirapur @Cynthia Sheppard
346 R Knight-Errant of Eos @Kevin Sidharta 346 R Knight-Errant of Eos @Kevin Sidharta
347 M Monastery Mentor @Brian Valeza 347 M Monastery Mentor @Brian Valeza
348 R Progenitor Exarch @Marie Magny
349 R Sunfall @Kasia 'Kafis' Zielińska 349 R Sunfall @Kasia 'Kafis' Zielińska
350 R Chrome Host Seedshark @Donato Giancola 350 R Chrome Host Seedshark @Donato Giancola
351 R Complete the Circuit @Eelis Kyttanen 351 R Complete the Circuit @Eelis Kyttanen
@@ -250,8 +371,10 @@ ScryfallCode=MOM
359 R Grafted Butcher @Zack Stella 359 R Grafted Butcher @Zack Stella
360 R Hoarding Broodlord @Filip Burburan 360 R Hoarding Broodlord @Filip Burburan
361 R Pile On @Javier Charro 361 R Pile On @Javier Charro
362 R Bloodfeather Phoenix @Rudy Siswanto
363 R City on Fire @Jake Murray 363 R City on Fire @Jake Murray
364 R Into the Fire @Grzegorz Rutkowski 364 R Into the Fire @Grzegorz Rutkowski
365 R Nahiri's Warcrafting @Zara Alfonso
366 R Rampaging Raptor @Denys Tsiperko 366 R Rampaging Raptor @Denys Tsiperko
367 R Voldaren Thrillseeker @Viko Menezes 367 R Voldaren Thrillseeker @Viko Menezes
368 R Ancient Imperiosaur @Piotr Foksowicz 368 R Ancient Imperiosaur @Piotr Foksowicz
@@ -267,10 +390,17 @@ ScryfallCode=MOM
378 R Terror of Towashi @Lius Lasahido 378 R Terror of Towashi @Lius Lasahido
379 R Orthion, Hero of Lavabrink @Aaron Miller 379 R Orthion, Hero of Lavabrink @Aaron Miller
380 R Surrak and Goreclaw @Lucas Graciano 380 R Surrak and Goreclaw @Lucas Graciano
[promo]
381 U Norn's Inquisitor @Denis Zhbankov 381 U Norn's Inquisitor @Denis Zhbankov
382 U Scrappy Bruiser @David Auden Nash 382 U Scrappy Bruiser @David Auden Nash
383 U Kami of Whispered Hopes @Filipe Pagliuso 383 U Kami of Whispered Hopes @Filipe Pagliuso
384 U Botanical Brawler @Jesper Ejsing 384 U Botanical Brawler @Jesper Ejsing
385 U Halo Forager @Kevin Sidharta 385 U Halo Forager @Kevin Sidharta
386 R Ghalta and Mavren @Betty Jiang 386 R Ghalta and Mavren @Betty Jiang
[buy a box]
387 R Omnath, Locus of All @Helge C. Balzer 387 R Omnath, Locus of All @Helge C. Balzer
[tokens]
incubator_c_0_0_a_phyrexian

View File

@@ -6,28 +6,75 @@ Type=Collector_Edition
ScryfallCode=MUL ScryfallCode=MUL
[cards] [cards]
1 R Anafenza, Kin-Tree Spirit @Domenico Cava
2 U Daxos, Blessed by the Sun @Jason A. Engle
3 M Elesh Norn, Grand Cenobite @Flavio Girón 3 M Elesh Norn, Grand Cenobite @Flavio Girón
4 M Kenrith, the Returned King @Aaron Miller
5 U Kwende, Pride of Femeref
6 R Sram, Senior Edificer @Adam Paquette
7 R Thalia, Guardian of Thraben @Joshua Alvarado 7 R Thalia, Guardian of Thraben @Joshua Alvarado
8 R Baral, Chief of Compliance @Yeong-Hao Han
9 R Emry, Lurker of the Loch @Wylie Beckert 9 R Emry, Lurker of the Loch @Wylie Beckert
10 U Inga Rune-Eyes @rishxxv 10 U Inga Rune-Eyes @rishxxv
11 M Jin-Gitaxias, Core Augur @Kekai Kotaki 11 M Jin-Gitaxias, Core Augur @Kekai Kotaki
12 U Tetsuko Umezawa, Fugitive @Serena Malyon
13 R Ayara, First of Locthwain @Omar Rayyan
14 R Horobi, Death's Wail @Rorubei 14 R Horobi, Death's Wail @Rorubei
15 R Seizan, Perverter of Truth @Maji
16 M Sheoldred, Whispering One @Flavio Girón 16 M Sheoldred, Whispering One @Flavio Girón
17 M Skithiryx, the Blight Dragon @Kekai Kotaki 17 M Skithiryx, the Blight Dragon @Kekai Kotaki
18 U Tymaret, Chosen from Death @Jason A. Engle
19 U Yargle, Glutton of Urborg @Serena Malyon 19 U Yargle, Glutton of Urborg @Serena Malyon
20 R Captain Lannery Storm @Jody Clark 20 R Captain Lannery Storm @Jody Clark
21 M Ragavan, Nimble Pilferer @Magali Villeneuve 21 M Ragavan, Nimble Pilferer @Magali Villeneuve
22 R Squee, the Immortal @Eshpur
23 M Urabrask the Hidden @Flavio Girón 23 M Urabrask the Hidden @Flavio Girón
24 U Valduk, Keeper of the Flame @Tyler Crook
25 U Zada, Hedron Grinder @Dominik Mayer 25 U Zada, Hedron Grinder @Dominik Mayer
26 U Fynn, the Fangbearer @GodMachine
27 R Goreclaw, Terror of Qal Sisma @Domenico Cava
28 U Renata, Called to the Hunt @Jason A. Engle
29 M Vorinclex, Voice of Hunger @JungShan 29 M Vorinclex, Voice of Hunger @JungShan
30 R Yedora, Grave Gardener @Matthew G. Lewis 30 R Yedora, Grave Gardener @Matthew G. Lewis
31 U Aegar, the Freezing Flame @Richard Luong
32 R Arixmethes, Slumbering Isle @Jason A. Engle
33 M Atraxa, Praetors' Voice @Justin Hernandez & Alexis Hernandez 33 M Atraxa, Praetors' Voice @Justin Hernandez & Alexis Hernandez
34 R Atris, Oracle of Half-Truths @Jason A. Engle
35 M Aurelia, the Warleader @Alex Dos Diaz
36 R Brudiclad, Telchor Engineer @JungShan
37 U Dina, Soul Steeper @Benjamin Ee
38 M Ezuri, Claw of Progress @JungShan
39 R Firesong and Sunspeaker @Daniel Lieske
40 U Firja, Judge of Valor @WolfSkullJack
41 M Grimgrin, Corpse-Born @Cabrol
42 R Gyruda, Doom of Depths @Steve Ellis
43 U Imoti, Celebrant of Bounty @Bastien L. Deharme 43 U Imoti, Celebrant of Bounty @Bastien L. Deharme
44 R Jegantha, the Wellspring @Steve Ellis 44 R Jegantha, the Wellspring @Steve Ellis
45 R Judith, the Scourge Diva @Benjamin Ee
46 U Juri, Master of the Revue @Julie Dillon
47 R Kaheera, the Orphanguard @Denis Medri
48 R Keruga, the Macrosage @Denis Medri
49 M Kroxa, Titan of Death's Hunger @Jason A. Engle 49 M Kroxa, Titan of Death's Hunger @Jason A. Engle
50 R Lathiel, the Bounteous Dawn @Shawn Wood
51 R Lurrus of the Dream-Den @Steve Ellis
52 R Lutri, the Spellchaser @Justine Mara Andersen
53 M Niv-Mizzet Reborn @Illustranesia 53 M Niv-Mizzet Reborn @Illustranesia
54 R Obosh, the Preypiercer @Denis Medri
55 U Radha, Coalition Warlord @Justin Hernandez & Alexis Hernandez
56 U Raff, Weatherlight Stalwart @Nino Vecia
57 U Reyav, Master Smith @Warren Mahy
58 U Rona, Sheoldred's Faithful @Serena Malyon
59 U Shanna, Sisay's Legacy @Rhonda Libbey
60 R Taigam, Ojutai Master @Domenico Cava 60 R Taigam, Ojutai Master @Domenico Cava
61 R Teysa Karlov @Barbara Rosiak
62 R Umori, the Collector @Daniel Warren Johnson
63 M Yarok, the Desecrated
64 R Yorion, Sky Nomad @Justine Mara Andersen
65 R Zirda, the Dawnwaker @Justine Mara Andersen
68 M Elesh Norn, Grand Cenobite @Igor Kieryluk 68 M Elesh Norn, Grand Cenobite @Igor Kieryluk
69 M Kenrith, the Returned King @Kieran Yanner
71 R Sram, Senior Edificer @Chris Rahn
73 R Baral, Chief of Compliance @Wesley Burt
76 M Jin-Gitaxias, Core Augur @Eric Deschamps 76 M Jin-Gitaxias, Core Augur @Eric Deschamps
81 M Sheoldred, Whispering One @Jana Schirmer & Johannes Voss 81 M Sheoldred, Whispering One @Jana Schirmer & Johannes Voss
82 M Skithiryx, the Blight Dragon @Chippy 82 M Skithiryx, the Blight Dragon @Chippy
@@ -35,5 +82,86 @@ ScryfallCode=MUL
88 M Urabrask the Hidden @Brad Rigney 88 M Urabrask the Hidden @Brad Rigney
90 U Zada, Hedron Grinder @Chris Rallis 90 U Zada, Hedron Grinder @Chris Rallis
94 M Vorinclex, Voice of Hunger @Karl Kopinski 94 M Vorinclex, Voice of Hunger @Karl Kopinski
97 R Arixmethes, Slumbering Isle @Dimitar Marinski
101 R Brudiclad, Telchor Engineer @Daarken
102 U Dina, Soul Steeper @Chris Rahn
105 U Firja, Judge of Valor @Livia Prima
107 R Gyruda, Doom of Depths @Tyler Jacobson
112 R Kaheera, the Orphanguard @Ryan Pancoast
113 R Keruga, the Macrosage @Dan Scott
114 M Kroxa, Titan of Death's Hunger @Vincent Proce 114 M Kroxa, Titan of Death's Hunger @Vincent Proce
115 R Lathiel, the Bounteous Dawn @Lucas Graciano
116 R Lurrus of the Dream-Den @Slawomir Maniak
117 R Lutri, the Spellchaser @Lie Setiawan
118 M Niv-Mizzet Reborn @Raymond Swanland 118 M Niv-Mizzet Reborn @Raymond Swanland
119 R Obosh, the Preypiercer @Daarken
121 U Raff, Weatherlight Stalwart @Eelis Kyttanen
127 R Umori, the Collector @Jehan Choo
128 M Yarok, the Desecrated @Daarken
129 R Yorion, Sky Nomad @Steven Belledin
130 R Zirda, the Dawnwaker @Jesper Ejsing
131 R Anafenza, Kin-Tree Spirit @Domenico Cava
132 U Daxos, Blessed by the Sun @Jason A. Engle
133 M Elesh Norn, Grand Cenobite @Flavio Girón
134 M Kenrith, the Returned King @Aaron Miller
135 U Kwende, Pride of Femeref @Jody Clark
136 R Sram, Senior Edificer @Adam Paquette
137 R Thalia, Guardian of Thraben @Joshua Alvarado
138 R Baral, Chief of Compliance @Yeong-Hao Han
139 R Emry, Lurker of the Loch @Wylie Beckert
140 U Inga Rune-Eyes @rishxxv
141 M Jin-Gitaxias, Core Augur @Kekai Kotaki
142 U Tetsuko Umezawa, Fugitive @Serena Malyon
143 R Ayara, First of Locthwain @Omar Rayyan
144 R Horobi, Death's Wail @Rorubei
145 R Seizan, Perverter of Truth @Maji
146 M Sheoldred, Whispering One @Flavio Girón
147 M Skithiryx, the Blight Dragon @Kekai Kotaki
148 U Tymaret, Chosen from Death @Jason A. Engle
149 U Yargle, Glutton of Urborg @Serena Malyon
150 R Captain Lannery Storm @Jody Clark
151 M Ragavan, Nimble Pilferer @Magali Villeneuve
152 R Squee, the Immortal @Eshpur
153 M Urabrask the Hidden @Flavio Girón
154 U Valduk, Keeper of the Flame @Tyler Crook
155 U Zada, Hedron Grinder @Dominik Mayer
156 U Fynn, the Fangbearer @GodMachine
157 R Goreclaw, Terror of Qal Sisma @Domenico Cava
158 U Renata, Called to the Hunt @Jason A. Engle
159 M Vorinclex, Voice of Hunger @JungShan
160 R Yedora, Grave Gardener @Matthew G. Lewis
161 U Aegar, the Freezing Flame @Richard Luong
162 R Arixmethes, Slumbering Isle @Jason A. Engle
163 M Atraxa, Praetors' Voice @Justin Hernandez & Alexis Hernandez
164 R Atris, Oracle of Half-Truths @Jason A. Engle
165 M Aurelia, the Warleader @Alex Dos Diaz
166 R Brudiclad, Telchor Engineer @JungShan
167 U Dina, Soul Steeper @Benjamin Ee
168 M Ezuri, Claw of Progress @JungShan
169 R Firesong and Sunspeaker @Daniel Lieske
170 U Firja, Judge of Valor @WolfSkullJack
171 M Grimgrin, Corpse-Born @Cabrol
172 R Gyruda, Doom of Depths @Steve Ellis
173 U Imoti, Celebrant of Bounty @Bastien L. Deharme
174 R Jegantha, the Wellspring @Steve Ellis
175 R Judith, the Scourge Diva @Benjamin Ee
176 U Juri, Master of the Revue @Julie Dillon
177 R Kaheera, the Orphanguard @Denis Medri
178 R Keruga, the Macrosage @Denis Medri
179 M Kroxa, Titan of Death's Hunger @Jason A. Engle
180 R Lathiel, the Bounteous Dawn @Shawn Wood
181 R Lurrus of the Dream-Den @Steve Ellis
182 R Lutri, the Spellchaser @Justine Mara Andersen
183 M Niv-Mizzet Reborn @Illustranesia
184 R Obosh, the Preypiercer @Denis Medri
185 U Radha, Coalition Warlord @Justin Hernandez & Alexis Hernandez
186 U Raff, Weatherlight Stalwart @Nino Vecia
187 U Reyav, Master Smith @Warren Mahy
188 U Rona, Sheoldred's Faithful @Serena Malyon
189 U Shanna, Sisay's Legacy @Rhonda Libbey
190 R Taigam, Ojutai Master @Domenico Cava
191 R Teysa Karlov @Barbara Rosiak
192 R Umori, the Collector @Daniel Warren Johnson
193 M Yarok, the Desecrated
194 R Yorion, Sky Nomad @Justine Mara Andersen
195 R Zirda, the Dawnwaker @Justine Mara Andersen

View File

@@ -684,6 +684,7 @@ ScryfallCode=SLD
724 R Lightning Strike @Frank Frazetta 724 R Lightning Strike @Frank Frazetta
726 R Zur the Enchanter @Chase Stone 726 R Zur the Enchanter @Chase Stone
727 R Fabled Passage @Warren Mahy 727 R Fabled Passage @Warren Mahy
278 R Themberchaud @Yang Luo
900 R The Scarab God @Barely Human 900 R The Scarab God @Barely Human
1001 M Elspeth, Knight-Errant @Volkan Baǵa 1001 M Elspeth, Knight-Errant @Volkan Baǵa
1002 R Patron Wizard @Volkan Baǵa 1002 R Patron Wizard @Volkan Baǵa

View File

@@ -182,7 +182,7 @@ ScryfallCode=PLIST
174 R Harmonize @Vance Kovacs 174 R Harmonize @Vance Kovacs
175 R Helix Pinnacle @Dan Scott 175 R Helix Pinnacle @Dan Scott
176 R Hua Tuo, Honored Physician @Gao Jianzhang 176 R Hua Tuo, Honored Physician @Gao Jianzhang
177 R Imperious Perfect @Scott M. Fischer 177 U Imperious Perfect @Scott M. Fischer
178 M Ishkanah, Grafwidow @Christine Choi 178 M Ishkanah, Grafwidow @Christine Choi
179 R Jadelight Ranger @Jason Rainville 179 R Jadelight Ranger @Jason Rainville
180 M Kalonian Hydra @Chris Rahn 180 M Kalonian Hydra @Chris Rahn
@@ -1020,3 +1020,78 @@ F567 R Puresteel Angel @Lukas Litzsinger
1012 M Sword of War and Peace @Chris Rahn 1012 M Sword of War and Peace @Chris Rahn
1013 C Great Furnace @Rob Alexander 1013 C Great Furnace @Rob Alexander
1014 U Interplanar Beacon @Adam Paquette 1014 U Interplanar Beacon @Adam Paquette
1015 R Austere Command @Wayne England
1016 C Brago's Representative @Anthony Palumbo
1017 M Heliod, God of the Sun @Jaime Jones
1018 U Ixalan's Binding @Chase Stone
1019 R Linden, the Steadfast Queen @Ryan Pancoast
1020 R Ravnica at War @Adam Paquette
1021 C Segovian Angel @Simon Dominic
1022 U Vryn Wingmare @Seb McKinnon
1023 R Archmage Emeritus @Caio Monteiro
1024 R Balance of Power @Adam Rex
1025 U Invasive Surgery @Steven Belledin
1026 R Laboratory Maniac @Jason Felix
1027 R Mass Polymorph @Christopher Moeller
1028 R Pulse of the Grid @Wayne England
1029 R Reshape @Jon Foster
1030 R Rite of Replication @Matt Cavotta
1031 R Rooftop Storm @John Stanko
1032 R Shared Fate @Matt Cavotta
1033 U Stormscape Battlemage @Christopher Moeller
1034 R Time Stretch @Paolo Parente
1035 R True-Name Nemesis @Zack Stella
1036 R Aether Snap @Kev Walker
1037 R Drinker of Sorrow @Carl Critchlow
1038 U Endless Obedience @Karl Kopinski
1039 U Ihsan's Shade @Daarken
1040 M Nashi, Moon Sage's Scion @Valera Lutfullina
1041 R Needle Specter @Christopher Moeller
1042 R Phyrexian Crusader @Eric Deschamps
1043 R Phyrexian Delver @Igor Kieryluk
1044 R Phyrexian Etchings @Ron Spears
1045 R Phyrexian Infiltrator @Darrell Riche
1046 R Phyrexian Vatmother @Stephan Martiniere
1047 R Rain of Daggers @Melissa A. Benson
1048 C Siege Zombie @Johann Bodin
1049 R Unmask @rk post
1050 R Eidolon of the Great Revel @Cyril Van Der Haegen
1051 R Etali, Primal Storm @Raymond Swanland
1052 R Five-Alarm Fire @Karl Kopinski
1053 U Mercadia's Downfall @Pete Venters
1054 R Pia and Kiran Nalaar @Eric Deschamps
1055 R Planeswalker's Fury @Christopher Moeller
1056 C Regathan Firecat @Eric Velhagen
1057 C Ruthless Invasion @Svetlin Velinov
1058 R Scorched Earth @Nicola Leonard
1059 R Siege of Towers @Anthony S. Waters
1060 R Slag Fiend @Mike Bierek
1061 M Soul of Shandalar @Raymond Swanland
1062 M Avenger of Zendikar @Zoltan Boros
1063 C Capenna Express @Viko Menezes
1064 R Dig Up @Slawomir Maniak
1065 R Ghalta, Primal Hunger @Chase Stone
1066 M The Great Aurora @Sam Burley
1067 R Muraganda Petroglyphs @Scott Altmann
1068 U Path to the World Tree @Daniel Ljunggren
1069 M Polukranos, World Eater @Johann Bodin
1070 C Primal Cocoon @Daniel Ljunggren
1071 C Sprout Swarm @Chippy
1072 R Anax and Cymede @Willian Murai
1073 M Borborygmos Enraged @Aleksi Briclot
1074 M Dragonlord Ojutai @Chase Stone
1075 M Gisa and Geralf @Karla Ortiz
1076 U Incubation // Incongruity @Mike Bierek
1077 M Kalamax, the Stormsire @Nicholas Gregory
1078 R Mina and Denn, Wildborn @Izzy
1079 U Reduce // Rubble @Eric Deschamps
1080 R Sarulf, Realm Eater @Chris Rahn
1081 R Dragon Throne of Tarkir @Daarken
1082 R Hope of Ghirapur @Lius Lasahido
1083 R Planar Portal @Mark Tedin
1084 R High Market @Carl Critchlow
1085 R Ketria Triome @Sam Burley
1086 R Okina, Temple to the Grandfathers @Keith Garletts
1087 R Sea of Clouds @Florian de Gesincourt
1088 R The World Tree @Anastasia Ovchinnikova
1089 U Zhalfirin Void @Chase Stone

View File

@@ -10,10 +10,13 @@ https://downloads.cardforge.org/images/planes/Chaotic_Aether.jpg
https://downloads.cardforge.org/images/planes/Cliffside_Market.jpg https://downloads.cardforge.org/images/planes/Cliffside_Market.jpg
https://downloads.cardforge.org/images/planes/Edge_of_Malacol.jpg https://downloads.cardforge.org/images/planes/Edge_of_Malacol.jpg
https://downloads.cardforge.org/images/planes/Eloren_Wilds.jpg https://downloads.cardforge.org/images/planes/Eloren_Wilds.jpg
https://downloads.cardforge.org/images/planes/Enigma_Ridges.jpg
https://downloads.cardforge.org/images/planes/Esper.jpg
https://downloads.cardforge.org/images/planes/Feeding_Grounds.jpg https://downloads.cardforge.org/images/planes/Feeding_Grounds.jpg
https://downloads.cardforge.org/images/planes/Fields_of_Summer.jpg https://downloads.cardforge.org/images/planes/Fields_of_Summer.jpg
https://downloads.cardforge.org/images/planes/Furnace_Layer.jpg https://downloads.cardforge.org/images/planes/Furnace_Layer.jpg
https://downloads.cardforge.org/images/planes/Gavony.jpg https://downloads.cardforge.org/images/planes/Gavony.jpg
https://downloads.cardforge.org/images/planes/Ghirapur.jpg
https://downloads.cardforge.org/images/planes/Glen_Elendra.jpg https://downloads.cardforge.org/images/planes/Glen_Elendra.jpg
https://downloads.cardforge.org/images/planes/Glimmervoid_Basin.jpg https://downloads.cardforge.org/images/planes/Glimmervoid_Basin.jpg
https://downloads.cardforge.org/images/planes/Goldmeadow.jpg https://downloads.cardforge.org/images/planes/Goldmeadow.jpg
@@ -24,16 +27,20 @@ https://downloads.cardforge.org/images/planes/Hedron_Fields_of_Agadeem.jpg
https://downloads.cardforge.org/images/planes/Horizon_Boughs.jpg https://downloads.cardforge.org/images/planes/Horizon_Boughs.jpg
https://downloads.cardforge.org/images/planes/Immersturm.jpg https://downloads.cardforge.org/images/planes/Immersturm.jpg
https://downloads.cardforge.org/images/planes/Interplanar_Tunnel.jpg https://downloads.cardforge.org/images/planes/Interplanar_Tunnel.jpg
https://downloads.cardforge.org/images/planes/Inys_Haen.jpg
https://downloads.cardforge.org/images/planes/Isle_of_Vesuva.jpg https://downloads.cardforge.org/images/planes/Isle_of_Vesuva.jpg
https://downloads.cardforge.org/images/planes/Izzet_Steam_Maze.jpg https://downloads.cardforge.org/images/planes/Izzet_Steam_Maze.jpg
https://downloads.cardforge.org/images/planes/Jund.jpg https://downloads.cardforge.org/images/planes/Jund.jpg
https://downloads.cardforge.org/images/planes/Kessig.jpg https://downloads.cardforge.org/images/planes/Kessig.jpg
https://downloads.cardforge.org/images/planes/Ketria.jpg
https://downloads.cardforge.org/images/planes/Kharasha_Foothills.jpg https://downloads.cardforge.org/images/planes/Kharasha_Foothills.jpg
https://downloads.cardforge.org/images/planes/Kilnspire_District.jpg https://downloads.cardforge.org/images/planes/Kilnspire_District.jpg
https://downloads.cardforge.org/images/planes/Krosa.jpg https://downloads.cardforge.org/images/planes/Krosa.jpg
https://downloads.cardforge.org/images/planes/Lair_of_the_Ashen_Idol.jpg https://downloads.cardforge.org/images/planes/Lair_of_the_Ashen_Idol.jpg
https://downloads.cardforge.org/images/planes/Lethe_Lake.jpg https://downloads.cardforge.org/images/planes/Lethe_Lake.jpg
https://downloads.cardforge.org/images/planes/Littiara.jpg
https://downloads.cardforge.org/images/planes/Llanowar.jpg https://downloads.cardforge.org/images/planes/Llanowar.jpg
https://downloads.cardforge.org/images/planes/Megaflora_Jungle.jpg
https://downloads.cardforge.org/images/planes/Minamo.jpg https://downloads.cardforge.org/images/planes/Minamo.jpg
https://downloads.cardforge.org/images/planes/Mirrored_Depths.jpg https://downloads.cardforge.org/images/planes/Mirrored_Depths.jpg
https://downloads.cardforge.org/images/planes/Morphic_Tide.jpg https://downloads.cardforge.org/images/planes/Morphic_Tide.jpg
@@ -41,13 +48,18 @@ https://downloads.cardforge.org/images/planes/Mount_Keralia.jpg
https://downloads.cardforge.org/images/planes/Murasa.jpg https://downloads.cardforge.org/images/planes/Murasa.jpg
https://downloads.cardforge.org/images/planes/Mutual_Epiphany.jpg https://downloads.cardforge.org/images/planes/Mutual_Epiphany.jpg
https://downloads.cardforge.org/images/planes/Naar_Isle.jpg https://downloads.cardforge.org/images/planes/Naar_Isle.jpg
https://downloads.cardforge.org/images/planes/Naktamun.jpg
https://downloads.cardforge.org/images/planes/Naya.jpg https://downloads.cardforge.org/images/planes/Naya.jpg
https://downloads.cardforge.org/images/planes/Nephalia.jpg https://downloads.cardforge.org/images/planes/Nephalia.jpg
https://downloads.cardforge.org/images/planes/New_Argive.jpg
https://downloads.cardforge.org/images/planes/Norn's_Dominion.jpg https://downloads.cardforge.org/images/planes/Norn's_Dominion.jpg
https://downloads.cardforge.org/images/planes/Norn's_Seedcore.jpg
https://downloads.cardforge.org/images/planes/Nyx.jpg
https://downloads.cardforge.org/images/planes/Onakke_Catacomb.jpg https://downloads.cardforge.org/images/planes/Onakke_Catacomb.jpg
https://downloads.cardforge.org/images/planes/Orochi_Colony.jpg https://downloads.cardforge.org/images/planes/Orochi_Colony.jpg
https://downloads.cardforge.org/images/planes/Orzhova.jpg https://downloads.cardforge.org/images/planes/Orzhova.jpg
https://downloads.cardforge.org/images/planes/Otaria.jpg https://downloads.cardforge.org/images/planes/Otaria.jpg
https://downloads.cardforge.org/images/planes/Paliano.jpg
https://downloads.cardforge.org/images/planes/Panopticon.jpg https://downloads.cardforge.org/images/planes/Panopticon.jpg
https://downloads.cardforge.org/images/planes/Planewide_Disaster.jpg https://downloads.cardforge.org/images/planes/Planewide_Disaster.jpg
https://downloads.cardforge.org/images/planes/Pools_of_Becoming.jpg https://downloads.cardforge.org/images/planes/Pools_of_Becoming.jpg
@@ -55,6 +67,7 @@ https://downloads.cardforge.org/images/planes/Prahv.jpg
https://downloads.cardforge.org/images/planes/Quicksilver_Sea.jpg https://downloads.cardforge.org/images/planes/Quicksilver_Sea.jpg
https://downloads.cardforge.org/images/planes/Raven's_Run.jpg https://downloads.cardforge.org/images/planes/Raven's_Run.jpg
https://downloads.cardforge.org/images/planes/Reality_Shaping.jpg https://downloads.cardforge.org/images/planes/Reality_Shaping.jpg
https://downloads.cardforge.org/images/planes/Riptide_Island.jpg
https://downloads.cardforge.org/images/planes/Sanctum_of_Serra.jpg https://downloads.cardforge.org/images/planes/Sanctum_of_Serra.jpg
https://downloads.cardforge.org/images/planes/Sea_of_Sand.jpg https://downloads.cardforge.org/images/planes/Sea_of_Sand.jpg
https://downloads.cardforge.org/images/planes/Selesnya_Loft_Gardens.jpg https://downloads.cardforge.org/images/planes/Selesnya_Loft_Gardens.jpg
@@ -64,23 +77,35 @@ https://downloads.cardforge.org/images/planes/Sokenzan.jpg
https://downloads.cardforge.org/images/planes/Spatial_Merging.jpg https://downloads.cardforge.org/images/planes/Spatial_Merging.jpg
https://downloads.cardforge.org/images/planes/Stairs_to_Infinity.jpg https://downloads.cardforge.org/images/planes/Stairs_to_Infinity.jpg
https://downloads.cardforge.org/images/planes/Stensia.jpg https://downloads.cardforge.org/images/planes/Stensia.jpg
https://downloads.cardforge.org/images/planes/Strixhaven.jpg
https://downloads.cardforge.org/images/planes/Stronghold_Furnace.jpg https://downloads.cardforge.org/images/planes/Stronghold_Furnace.jpg
https://downloads.cardforge.org/images/planes/Takenuma.jpg https://downloads.cardforge.org/images/planes/Takenuma.jpg
https://downloads.cardforge.org/images/planes/Talon_Gates.jpg https://downloads.cardforge.org/images/planes/Talon_Gates.jpg
https://downloads.cardforge.org/images/planes/Tazeem.jpg https://downloads.cardforge.org/images/planes/Tazeem.jpg
https://downloads.cardforge.org/images/planes/Tember_City.jpg https://downloads.cardforge.org/images/planes/Tember_City.jpg
https://downloads.cardforge.org/images/planes/Ten_Wizards_Mountain.jpg
https://downloads.cardforge.org/images/planes/The_Aether_Flues.jpg https://downloads.cardforge.org/images/planes/The_Aether_Flues.jpg
https://downloads.cardforge.org/images/planes/The_Caldaia.jpg
https://downloads.cardforge.org/images/planes/The_Dark_Barony.jpg https://downloads.cardforge.org/images/planes/The_Dark_Barony.jpg
https://downloads.cardforge.org/images/planes/The_Eon_Fog.jpg https://downloads.cardforge.org/images/planes/The_Eon_Fog.jpg
https://downloads.cardforge.org/images/planes/The_Fertile_Lands_of_Saulvinia.jpg
https://downloads.cardforge.org/images/planes/The_Fourth_Sphere.jpg https://downloads.cardforge.org/images/planes/The_Fourth_Sphere.jpg
https://downloads.cardforge.org/images/planes/The_Golden_City_of_Orazca.jpg
https://downloads.cardforge.org/images/planes/The_Great_Aerie.jpg
https://downloads.cardforge.org/images/planes/The_Great_Forest.jpg https://downloads.cardforge.org/images/planes/The_Great_Forest.jpg
https://downloads.cardforge.org/images/planes/The_Hippodrome.jpg https://downloads.cardforge.org/images/planes/The_Hippodrome.jpg
https://downloads.cardforge.org/images/planes/The_Maelstrom.jpg https://downloads.cardforge.org/images/planes/The_Maelstrom.jpg
https://downloads.cardforge.org/images/planes/The_Pit.jpg
https://downloads.cardforge.org/images/planes/The_Western_Cloud.jpg
https://downloads.cardforge.org/images/planes/The_Wilds.jpg
https://downloads.cardforge.org/images/planes/The_Zephyr_Maze.jpg https://downloads.cardforge.org/images/planes/The_Zephyr_Maze.jpg
https://downloads.cardforge.org/images/planes/Time_Distortion.jpg https://downloads.cardforge.org/images/planes/Time_Distortion.jpg
https://downloads.cardforge.org/images/planes/Towashi.jpg
https://downloads.cardforge.org/images/planes/Trail_of_the_Mage-Rings.jpg https://downloads.cardforge.org/images/planes/Trail_of_the_Mage-Rings.jpg
https://downloads.cardforge.org/images/planes/Truga_Jungle.jpg https://downloads.cardforge.org/images/planes/Truga_Jungle.jpg
https://downloads.cardforge.org/images/planes/Turri_Island.jpg https://downloads.cardforge.org/images/planes/Turri_Island.jpg
https://downloads.cardforge.org/images/planes/Undercity_Reaches.jpg https://downloads.cardforge.org/images/planes/Undercity_Reaches.jpg
https://downloads.cardforge.org/images/planes/Unyaro.jpg
https://downloads.cardforge.org/images/planes/Valor's_Reach.jpg
https://downloads.cardforge.org/images/planes/Velis_Vel.jpg https://downloads.cardforge.org/images/planes/Velis_Vel.jpg
https://downloads.cardforge.org/images/planes/Windriddle_Palaces.jpg https://downloads.cardforge.org/images/planes/Windriddle_Palaces.jpg

View File

@@ -245,6 +245,31 @@ public final class ForgeConstants {
public static final String BG_84 = "Morphic_Tide.jpg"; public static final String BG_84 = "Morphic_Tide.jpg";
public static final String BG_85 = "Mutual_Epiphany.jpg"; public static final String BG_85 = "Mutual_Epiphany.jpg";
public static final String BG_86 = "Time_Distortion.jpg"; public static final String BG_86 = "Time_Distortion.jpg";
public static final String BG_87 = "Enigma_Ridges.jpg";
public static final String BG_88 = "Esper.jpg";
public static final String BG_89 = "Ghirapur.jpg";
public static final String BG_90 = "Inys_Haen.jpg";
public static final String BG_91 = "Ketria.jpg";
public static final String BG_92 = "Littiara.jpg";
public static final String BG_93 = "Megaflora_Jungle.jpg";
public static final String BG_94 = "Naktamun.jpg";
public static final String BG_95 = "New_Argive.jpg";
public static final String BG_96 = "Norn's_Seedcore.jpg";
public static final String BG_97 = "Nyx.jpg";
public static final String BG_98 = "Paliano.jpg";
public static final String BG_99 = "Riptide_Island.jpg";
public static final String BG_100 = "Strixhaven.jpg";
public static final String BG_101 = "Ten_Wizards_Mountain.jpg";
public static final String BG_102 = "The_Caldaia.jpg";
public static final String BG_103 = "The_Fertile_Lands_of_Saulvinia.jpg";
public static final String BG_104 = "The_Golden_City_of_Orazca.jpg";
public static final String BG_105 = "The_Great_Aerie.jpg";
public static final String BG_106 = "The_Pit.jpg";
public static final String BG_107 = "The_Western_Cloud.jpg";
public static final String BG_108 = "The_Wilds.jpg";
public static final String BG_109 = "Towashi.jpg";
public static final String BG_110 = "Unyaro.jpg";
public static final String BG_111 = "Valor's_Reach.jpg";
//CARD BG //CARD BG
public static final String IMG_CARDBG_A = "IMG_CARDBG_A.png"; public static final String IMG_CARDBG_A = "IMG_CARDBG_A.png";
public static final String IMG_CARDBG_B = "IMG_CARDBG_B.png"; public static final String IMG_CARDBG_B = "IMG_CARDBG_B.png";