mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 02:38:02 +00:00
Merge branch 'Card-Forge:master' into Gwyn-Dev
This commit is contained in:
@@ -257,7 +257,7 @@ public class AiAttackController {
|
||||
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);
|
||||
// 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.
|
||||
|
||||
@@ -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
|
||||
if ("Count$AttackersDeclared".equals(card.getSVar("RaidTest")) && !cardState.hasKeyword(Keyword.HASTE)) {
|
||||
for (Card potentialAtkr: ai.getCreaturesInPlay()) {
|
||||
|
||||
@@ -24,10 +24,6 @@ import forge.util.MyRandom;
|
||||
public class FightAi extends SpellAbilityAi {
|
||||
@Override
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
@@ -144,11 +144,10 @@ public abstract class CardTraitBase extends GameObject implements IHasCardView,
|
||||
public KeywordInterface getKeyword() {
|
||||
return this.keyword;
|
||||
}
|
||||
|
||||
public void setKeyword(final KeywordInterface kw) {
|
||||
this.keyword = kw;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* isSecondary.
|
||||
|
||||
@@ -193,6 +193,8 @@ public class ForgeScript {
|
||||
} else if (property.equals("hasTapCost")) {
|
||||
Cost cost = sa.getPayCosts();
|
||||
return cost != null && cost.hasTapCost();
|
||||
} else if (property.equals("Backup")) {
|
||||
return sa.isBackup();
|
||||
} else if (property.equals("Blitz")) {
|
||||
return sa.isBlitz();
|
||||
} else if (property.equals("Buyback")) {
|
||||
|
||||
@@ -478,12 +478,17 @@ public class GameAction {
|
||||
}
|
||||
}
|
||||
|
||||
// 400.7a Effects from static abilities that give a permanent spell on the stack an ability
|
||||
// that allows it to be cast for an alternative cost continue to apply to the permanent that spell becomes.
|
||||
if (zoneFrom.is(ZoneType.Stack) && toBattlefield && c.getCastSA() != null && !c.getCastSA().isIntrinsic() && c.getCastSA().getKeyword() != null) {
|
||||
KeywordInterface ki = c.getCastSA().getKeyword();
|
||||
ki.setHostCard(copied);
|
||||
copied.addChangedCardKeywordsInternal(ImmutableList.of(ki), null, false, copied.getTimestamp(), 0, true);
|
||||
if (zoneFrom.is(ZoneType.Stack) && toBattlefield) {
|
||||
// 400.7a Effects from static abilities that give a permanent spell on the stack an ability
|
||||
// that allows it to be cast for an alternative cost continue to apply to the permanent that spell becomes.
|
||||
if (c.getCastSA() != null && !c.getCastSA().isIntrinsic() && c.getCastSA().getKeyword() != null) {
|
||||
KeywordInterface ki = c.getCastSA().getKeyword();
|
||||
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
|
||||
if (zoneTo.is(ZoneType.Stack) && cause != null && cause.isSpell() && !cause.isIntrinsic() && c.equals(cause.getHostCard())) {
|
||||
if (cause.getKeyword() != null) {
|
||||
if (!copied.getKeywords().contains(cause.getKeyword())) {
|
||||
copied.addChangedCardKeywordsInternal(ImmutableList.of(cause.getKeyword()), null, false, game.getNextTimestamp(), 0, false);
|
||||
// update Keyword Cache
|
||||
copied.updateKeywords();
|
||||
}
|
||||
if (cause.getKeyword() != null && !copied.getKeywords().contains(cause.getKeyword())) {
|
||||
copied.addChangedCardKeywordsInternal(ImmutableList.of(cause.getKeyword()), null, false, game.getNextTimestamp(), 0, false);
|
||||
// update Keyword Cache
|
||||
copied.updateKeywords();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -568,7 +568,9 @@ public class AbilityUtils {
|
||||
val = c == null ? 0 : xCount(c, calcX[1], ability);
|
||||
} else if (calcX[0].startsWith("ExiledWith")) {
|
||||
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")) {
|
||||
// Add whole Remembered list to handlePaid
|
||||
final CardCollection list = new CardCollection();
|
||||
@@ -1781,6 +1783,11 @@ public class AbilityUtils {
|
||||
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>
|
||||
if (sq[0].contains("HasNumChosenColors")) {
|
||||
int sum = 0;
|
||||
@@ -2004,10 +2011,6 @@ public class AbilityUtils {
|
||||
final boolean isMulti = c.getColor().isMulticolor();
|
||||
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>
|
||||
if (sq[0].startsWith("Foretold")) {
|
||||
|
||||
@@ -1,28 +1,15 @@
|
||||
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.Lists;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.google.common.collect.Table;
|
||||
|
||||
import forge.GameCommand;
|
||||
import forge.card.MagicColor;
|
||||
import forge.game.Game;
|
||||
import forge.game.GameEntity;
|
||||
import forge.game.GameObject;
|
||||
import forge.game.card.Card;
|
||||
import forge.game.card.CardCollection;
|
||||
import forge.game.card.CardCollectionView;
|
||||
import forge.game.card.CardUtil;
|
||||
import forge.game.card.CardZoneTable;
|
||||
import forge.game.card.*;
|
||||
import forge.game.combat.Combat;
|
||||
import forge.game.phase.PhaseType;
|
||||
import forge.game.player.Player;
|
||||
@@ -41,6 +28,9 @@ import forge.util.Lang;
|
||||
import forge.util.Localizer;
|
||||
import forge.util.TextUtil;
|
||||
import forge.util.collect.FCollection;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -192,7 +182,7 @@ public abstract class SpellAbilityEffect {
|
||||
} else {
|
||||
objs = AbilityUtils.getDefinedObjects(sa.getHostCard(), t, sa);
|
||||
}
|
||||
sb.append(StringUtils.join(objs, ", "));
|
||||
sb.append(Lang.joinHomogenous(objs));
|
||||
}
|
||||
} else {
|
||||
sb.append(t);
|
||||
@@ -911,8 +901,8 @@ public abstract class SpellAbilityEffect {
|
||||
if (cause.isReplacementAbility() && exilingSource.isLKI()) {
|
||||
exilingSource = exilingSource.getGame().getCardState(exilingSource);
|
||||
}
|
||||
// only want this on permanents
|
||||
if (exilingSource.isImmutable() || exilingSource.isInPlay()) {
|
||||
// avoid storing this on "inactive" cards
|
||||
if (exilingSource.isImmutable() || exilingSource.isInPlay() || exilingSource.isInZone(ZoneType.Stack)) {
|
||||
// make sure it gets updated
|
||||
exilingSource.removeExiledCard(movedCard);
|
||||
exilingSource.addExiledCard(movedCard);
|
||||
|
||||
@@ -5,6 +5,7 @@ import forge.game.GameEntity;
|
||||
import forge.game.GameEntityCounterTable;
|
||||
import forge.game.ability.AbilityUtils;
|
||||
import forge.game.card.Card;
|
||||
import forge.game.card.CardCollection;
|
||||
import forge.game.card.CardDamageMap;
|
||||
import forge.game.card.CardLists;
|
||||
import forge.game.spellability.SpellAbility;
|
||||
@@ -20,10 +21,9 @@ public class DamageEachEffect extends DamageBaseEffect {
|
||||
@Override
|
||||
protected String getStackDescription(SpellAbility sa) {
|
||||
final StringBuilder sb = new StringBuilder();
|
||||
final String damage = sa.getParam("NumDmg");
|
||||
final int iDmg = AbilityUtils.calculateAmount(sa.getHostCard(), damage, sa);
|
||||
final int iDmg = AbilityUtils.calculateAmount(sa.getHostCard(), sa.getParam("NumDmg"), sa);
|
||||
|
||||
String desc = sa.getParam("ValidCards");
|
||||
String desc = sa.getParamOrDefault("ValidCards", "");
|
||||
if (sa.hasParam("ValidDescription")) {
|
||||
desc = sa.getParam("ValidDescription");
|
||||
}
|
||||
@@ -35,18 +35,9 @@ public class DamageEachEffect extends DamageBaseEffect {
|
||||
dmg += iDmg + " damage";
|
||||
}
|
||||
|
||||
if (sa.hasParam("StackDescription")) {
|
||||
sb.append(sa.getParam("StackDescription"));
|
||||
} 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(".");
|
||||
sb.append("Each ").append(desc).append(" deals ").append(dmg).append(" to ");
|
||||
sb.append(Lang.joinHomogenous(getTargetEntities(sa))).append(".");
|
||||
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
@@ -58,10 +49,16 @@ public class DamageEachEffect extends DamageBaseEffect {
|
||||
public void resolve(SpellAbility sa) {
|
||||
final Card card = sa.getHostCard();
|
||||
final Game game = card.getGame();
|
||||
final String num = sa.getParamOrDefault("NumDmg", "X");
|
||||
|
||||
FCollectionView<Card> sources = game.getCardsIn(ZoneType.Battlefield);
|
||||
if (sa.hasParam("ValidCards")) {
|
||||
sources = CardLists.getValidCards(sources, sa.getParam("ValidCards"), sa.getActivatingPlayer(), card, sa);
|
||||
FCollectionView<Card> sources;
|
||||
if (sa.hasParam("DefinedDamagers")) {
|
||||
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;
|
||||
@@ -77,12 +74,30 @@ public class DamageEachEffect extends DamageBaseEffect {
|
||||
usedDamageMap = false;
|
||||
}
|
||||
|
||||
for (final GameEntity ge : getTargetEntities(sa, "DefinedPlayers")) {
|
||||
if (sa.hasParam("EachToItself")) {
|
||||
for (final Card source : sources) {
|
||||
final Card sourceLKI = game.getChangeZoneLKIInfo(source);
|
||||
|
||||
// TODO shouldn't that be using Num or something first?
|
||||
final int dmg = AbilityUtils.calculateAmount(source, "X", sa);
|
||||
final int dmg = AbilityUtils.calculateAmount(source, num, 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) {
|
||||
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) {
|
||||
game.getAction().dealDamage(false, damageMap, preventMap, counterTable, sa);
|
||||
}
|
||||
|
||||
@@ -147,7 +147,6 @@ public class FightEffect extends DamageBaseEffect {
|
||||
}
|
||||
|
||||
private void dealDamage(final SpellAbility sa, Card fighterA, Card fighterB) {
|
||||
boolean fightToughness = sa.hasParam("FightWithToughness");
|
||||
|
||||
boolean usedDamageMap = true;
|
||||
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.
|
||||
|
||||
final int dmg1 = fightToughness ? fighterA.getNetToughness() : fighterA.getNetPower();
|
||||
final int dmg1 = fighterA.getNetPower();
|
||||
if (fighterA.equals(fighterB)) {
|
||||
damageMap.put(fighterA, fighterA, dmg1 * 2);
|
||||
} else {
|
||||
final int dmg2 = fightToughness ? fighterB.getNetToughness() : fighterB.getNetPower();
|
||||
final int dmg2 = fighterB.getNetPower();
|
||||
|
||||
damageMap.put(fighterA, fighterB, dmg1);
|
||||
damageMap.put(fighterB, fighterA, dmg2);
|
||||
|
||||
@@ -245,7 +245,7 @@ public class ManaEffect extends SpellAbilityEffect {
|
||||
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
|
||||
abMana.clearExpressChoice();
|
||||
|
||||
@@ -33,7 +33,7 @@ public class ManaReflectedEffect extends SpellAbilityEffect {
|
||||
producedMana.append(ma.produceMana(generated, player, sa));
|
||||
}
|
||||
|
||||
ma.tapsForMana(sa, producedMana.toString());
|
||||
ma.tapsForMana(sa.getRootAbility(), producedMana.toString());
|
||||
}
|
||||
|
||||
// *************** Utility Functions **********************
|
||||
|
||||
@@ -314,6 +314,7 @@ public class PlayEffect extends SpellAbilityEffect {
|
||||
// only one mode can be used
|
||||
tgtSA = sa.getActivatingPlayer().getController().getAbilityToPlay(tgtCard, sas);
|
||||
}
|
||||
|
||||
// in case player canceled from choice dialog
|
||||
if (tgtSA == null) {
|
||||
if (wasFaceDown) {
|
||||
|
||||
@@ -2303,10 +2303,18 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
|
||||
|| keyword.startsWith("Specialize") || keyword.equals("Ravenous")
|
||||
|| keyword.equals("For Mirrodin")) {
|
||||
// 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(" ").append(Localizer.getInstance().getMessage("lblSagaFooter")).append(" ").append(TextUtil.toRoman(getFinalChapterNr())).append(".");
|
||||
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")) {
|
||||
final String[] k = keyword.split(":");
|
||||
// need to get SpellDescription from Svar
|
||||
@@ -2325,7 +2333,7 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
|
||||
sbLong.append("\r\n");
|
||||
}
|
||||
|
||||
if (keyword.equals("Flash")) {
|
||||
if (keyword.equals("Flash") || keyword.startsWith("Backup")) {
|
||||
sb.append("\r\n\r\n");
|
||||
i = 0;
|
||||
} else {
|
||||
|
||||
@@ -839,6 +839,31 @@ public class CardFactoryUtil {
|
||||
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")) {
|
||||
final String trig = "Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Secondary$ True "
|
||||
+ " | TriggerDescription$ " + keyword + " (" + inst.getReminderText() + ")";
|
||||
@@ -1151,7 +1176,7 @@ public class CardFactoryUtil {
|
||||
} else if (keyword.equals("Extort")) {
|
||||
final String extortTrigger = "Mode$ SpellCast | ValidCard$ Card | ValidActivatingPlayer$ You | "
|
||||
+ "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 gainLifeStr = "DB$ GainLife | Defined$ You | LifeAmount$ AFLifeLost";
|
||||
@@ -2687,7 +2712,7 @@ public class CardFactoryUtil {
|
||||
if (keyword.startsWith("Alternative Cost") && !host.isLand()) {
|
||||
final String[] kw = keyword.split(":");
|
||||
String costStr = kw[1];
|
||||
for (SpellAbility sa: host.getBasicSpells()) {
|
||||
for (SpellAbility sa : host.getBasicSpells()) {
|
||||
if (costStr.equals("ConvertedManaCost")) {
|
||||
costStr = Integer.toString(host.getCMC());
|
||||
}
|
||||
|
||||
@@ -989,6 +989,18 @@ public class CardProperty {
|
||||
if (card.getTurnInZone() <= sourceController.getLastTurnNr()) {
|
||||
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")) {
|
||||
// only check if it entered the Zone this turn
|
||||
if (card.getTurnInZone() != game.getPhaseHandler().getTurn()) {
|
||||
@@ -1012,18 +1024,6 @@ public class CardProperty {
|
||||
if (card.getTurnInZone() == game.getPhaseHandler().getTurn()) {
|
||||
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")) {
|
||||
if (card.getTurnInZone() != game.getPhaseHandler().getTurn()) {
|
||||
return false;
|
||||
|
||||
@@ -28,6 +28,7 @@ public enum Keyword {
|
||||
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."),
|
||||
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."),
|
||||
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."),
|
||||
|
||||
@@ -17,8 +17,8 @@ public class KeywordWithAmount extends KeywordInstance<KeywordWithAmount> {
|
||||
if (details.contains(":")) {
|
||||
extra = details.split(":")[1];
|
||||
}
|
||||
} else {
|
||||
amount = Integer.parseInt(details);
|
||||
} else {
|
||||
amount = details.contains(":") ? Integer.parseInt(details.split(":")[0]) : Integer.parseInt(details);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -508,6 +508,10 @@ public abstract class SpellAbility extends CardTraitBase implements ISpellAbilit
|
||||
return isAlternativeCost(AlternativeCost.Cycling);
|
||||
}
|
||||
|
||||
public boolean isBackup() {
|
||||
return this.hasParam("Backup");
|
||||
}
|
||||
|
||||
public boolean isBoast() {
|
||||
return this.hasParam("Boast");
|
||||
}
|
||||
|
||||
@@ -164,6 +164,9 @@ public class Forge implements ApplicationListener {
|
||||
frameRate = new FrameRate();
|
||||
animationBatch = new SpriteBatch();
|
||||
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);
|
||||
/*
|
||||
@@ -958,15 +961,15 @@ public class Forge implements ApplicationListener {
|
||||
@Override
|
||||
public void resize(int width, int height) {
|
||||
try {
|
||||
screenWidth = width;
|
||||
screenHeight = height;
|
||||
if (currentScreen != null) {
|
||||
currentScreen.setSize(width, height);
|
||||
} else if (splashScreen != null) {
|
||||
splashScreen.setSize(width, height);
|
||||
}
|
||||
if (currentScene != null)
|
||||
currentScene.resize(width, height);
|
||||
} 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..
|
||||
if (BugReporter.isSentryEnabled())
|
||||
BugReporter.reportException(ex);
|
||||
|
||||
@@ -93,6 +93,9 @@ public abstract class Scene implements Disposable {
|
||||
public void updateInput() {
|
||||
|
||||
}
|
||||
public void resize(int width, int height) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -192,7 +192,6 @@ public class UIScene extends Scene {
|
||||
}
|
||||
|
||||
public UIScene(String uiFilePath) {
|
||||
|
||||
uiFile = uiFilePath;
|
||||
stage = new Stage(new ScalingViewport(Scaling.stretch, getIntendedWidth(), getIntendedHeight())) {
|
||||
@Override
|
||||
@@ -711,4 +710,9 @@ public class UIScene extends Scene {
|
||||
super.updateInput();
|
||||
Gdx.input.setInputProcessor(stage);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void resize(int width, int height) {
|
||||
stage.getViewport().update(width, height, true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -285,7 +285,7 @@ public class RewardActor extends Actor implements Disposable, ImageFetcher.Callb
|
||||
Sprite item = reward.getItem().sprite();
|
||||
setItemTooltips(item, backSprite);
|
||||
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;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -166,7 +166,33 @@ public enum FSkinTexture implements FImage {
|
||||
Interplanar_Tunnel(ForgeConstants.BG_83, false, true),
|
||||
Morphic_Tide(ForgeConstants.BG_84, 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 boolean repeat;
|
||||
|
||||
@@ -74,10 +74,13 @@ public class VStack extends FDropDown {
|
||||
|
||||
final Set<ZoneType> zones = new HashSet<>();
|
||||
playersWithValidTargets = new HashMap<>();
|
||||
for (final CardView c : activeStackInstance.getTargetCards()) {
|
||||
if (c.getZone() != null) {
|
||||
zones.add(c.getZone());
|
||||
playersWithValidTargets.put(c.getController(), c);
|
||||
FCollectionView<CardView> targetCards = activeStackInstance.getTargetCards();
|
||||
if (targetCards != null) {
|
||||
for (final CardView c : targetCards) {
|
||||
if (c.getZone() != null) {
|
||||
zones.add(c.getZone());
|
||||
playersWithValidTargets.put(c.getController(), c);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (zones.isEmpty() || playersWithValidTargets.isEmpty()) { return; }
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Name:Slobad's Iron Boots
|
||||
ManaCost:no cost
|
||||
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.
|
||||
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
|
||||
|
||||
@@ -2,11 +2,11 @@ Name:Xira's Boss Effect
|
||||
ManaCost:no cost
|
||||
Colors:black,green,red
|
||||
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.
|
||||
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: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
|
||||
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.
|
||||
@@ -5,7 +5,7 @@ Types:Creature Insect
|
||||
PT:0/2
|
||||
K:Defender
|
||||
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.
|
||||
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.
|
||||
|
||||
@@ -1514,7 +1514,7 @@
|
||||
<object id="183" template="../../obj/enemy.tx" x="67" y="940.5">
|
||||
<properties>
|
||||
<property name="effect">{
|
||||
"startBattleWithCardInCommandZone": [ "Chandra, Supreme Pyromancer" ]
|
||||
"startBattleWithCardInCommandZone": [ "Chandra, Bold Pyromancer" ]
|
||||
}</property>
|
||||
<property name="enemy" value="Chandra"/>
|
||||
<property name="ignoreDungeonEffect" type="bool" value="false"/>
|
||||
|
||||
@@ -3,6 +3,6 @@ ManaCost:2 U
|
||||
Types:Creature Drake
|
||||
PT:2/2
|
||||
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
|
||||
Oracle:Flying\nWhenever Aerial Guide attacks, another target attacking creature gains flying until end of turn.
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
Name:Alpha Brawl
|
||||
ManaCost:6 R R
|
||||
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.
|
||||
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: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
|
||||
#NumDmg isn't really used here. It is left for clarity. The AF pulls Damage straight from "X" hardcoded.
|
||||
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$ 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 | NumDmg$ Count$CardPower | Defined$ Remembered | SubAbility$ DBCleanup | StackDescription$ SpellDescription | SpellDescription$ then each of those creatures deals damage equal to its power to that creature.
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:X:Count$CardPower
|
||||
SVar:Y:Remembered$CardPower
|
||||
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.
|
||||
|
||||
@@ -1,10 +1,6 @@
|
||||
Name:Band Together
|
||||
ManaCost:2 G
|
||||
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.
|
||||
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 | 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
|
||||
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: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.
|
||||
Oracle:Up to two target creatures you control each deal damage equal to their power to another target creature.
|
||||
|
||||
@@ -2,9 +2,9 @@ Name:Bridge from Below
|
||||
ManaCost:B B B
|
||||
Types:Enchantment
|
||||
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
|
||||
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
|
||||
AI:RemoveDeck:Random
|
||||
SVar:DiscardMe:5
|
||||
|
||||
@@ -1,10 +1,6 @@
|
||||
Name:Combo Attack
|
||||
ManaCost:2 G
|
||||
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.
|
||||
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 | 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
|
||||
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: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.
|
||||
Oracle:Two target creatures your team controls each deal damage equal to their power to target creature.
|
||||
|
||||
@@ -4,7 +4,7 @@ Types:Creature Astartes Warlock
|
||||
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.)
|
||||
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
|
||||
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.)
|
||||
|
||||
@@ -3,7 +3,7 @@ ManaCost:1 W
|
||||
Types:Creature Gnome Wizard
|
||||
PT:2/2
|
||||
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
|
||||
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.
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
Name:Ezuri's Predation
|
||||
ManaCost:5 G G G
|
||||
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:DBFight:DB$ Fight | Defined$ Imprinted | ExtraDefined$ Remembered | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:DBCleanup2:DB$ Cleanup | ClearImprinted$ True
|
||||
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.
|
||||
|
||||
@@ -4,5 +4,5 @@ Types:Enchantment Aura
|
||||
K:Enchant creature
|
||||
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.
|
||||
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.
|
||||
|
||||
@@ -2,7 +2,7 @@ Name:Genesis
|
||||
ManaCost:4 G
|
||||
Types:Creature Incarnation
|
||||
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: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.
|
||||
|
||||
@@ -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:DBLoseLife:DB$ LoseLife | LifeAmount$ 1
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Name:Grim Contest
|
||||
ManaCost:1 B G
|
||||
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.
|
||||
SVar:DBFight:DB$ Fight | Defined$ ParentTarget | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Choose target creature an opponent controls | FightWithToughness$ True
|
||||
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: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
|
||||
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.
|
||||
|
||||
@@ -2,12 +2,8 @@ Name:Living Inferno
|
||||
ManaCost:6 R R
|
||||
Types:Creature Elemental
|
||||
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.
|
||||
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
|
||||
#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
|
||||
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 | DefinedDamagers$ ParentTarget | NumDmg$ Count$CardPower | Defined$ Self | StackDescription$ SpellDescription | SpellDescription$ Each of those creatures deals damage equal to its power to CARDNAME.
|
||||
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.
|
||||
|
||||
@@ -18,7 +18,7 @@ Types:Enchantment Aura
|
||||
K:Enchant creature
|
||||
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.
|
||||
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.
|
||||
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.
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
Name:Nissa's Judgment
|
||||
ManaCost:4 G
|
||||
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.)
|
||||
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.
|
||||
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 | 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
|
||||
DeckHas:Ability$Counters
|
||||
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.
|
||||
|
||||
@@ -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:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:Z:Remembered$Valid Creature.Goblin
|
||||
SVar:PlayMain1:TRUE
|
||||
DeckNeeds: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.
|
||||
|
||||
@@ -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:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
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
|
||||
#for this AF, the DefinedCards$ Self is the target for Each damaging. They EachDamage themselves.
|
||||
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.
|
||||
#NumDmg isn't really used here. It is left for clarity. The AF pulls Damage straight from "X" hardcoded.
|
||||
SVar:X:Count$CardPower
|
||||
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.
|
||||
DeckHas:Ability$Sacrifice|Token & Type$Dragon
|
||||
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.
|
||||
|
||||
@@ -3,8 +3,7 @@ ManaCost:3 R R
|
||||
Types:Legendary Planeswalker Sarkhan
|
||||
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.
|
||||
SVar:TrigDamage:DB$ EachDamage | ValidCards$ Dragon.YouCtrl | DefinedPlayers$ TriggeredAttacker | StackDescription$ Each Dragon you control deals 1 damage to that creature.
|
||||
SVar:X:Number$1
|
||||
SVar:TrigDamage:DB$ EachDamage | ValidCards$ Dragon.YouCtrl | NumDmg$ 1 | Defined$ TriggeredAttacker
|
||||
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.
|
||||
DeckHas:Ability$Token
|
||||
|
||||
@@ -4,7 +4,7 @@ Types:Creature Demon
|
||||
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.)
|
||||
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
|
||||
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.)
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
Name:Solar Blaze
|
||||
ManaCost:2 R W
|
||||
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.
|
||||
SVar:X:Count$CardPower
|
||||
A:SP$ EachDamage | ValidCards$ Creature | EachToItself$ True | NumDmg$ Count$CardPower | StackDescription$ SpellDescription | SpellDescription$ Each creature deals damage to itself equal to its power.
|
||||
AI:RemoveDeck:All
|
||||
AI:RemoveDeck:Random
|
||||
Oracle:Each creature deals damage to itself equal to its power.
|
||||
|
||||
@@ -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: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: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:X:Count$CardPower
|
||||
SVar:DBDamageTapped:DB$ EachDamage | ValidCards$ Creature.tapped | NumDmg$ Count$CardPower | EachToItself$ True | SpellDescription$ 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.
|
||||
|
||||
@@ -2,6 +2,6 @@ Name:Thunderblade Charge
|
||||
ManaCost:1 R R
|
||||
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.
|
||||
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.
|
||||
SVar:TrigPlay:AB$ Play | Cost$ 2 R R R | ActivationZone$ Graveyard | WithoutManaCost$ True | Optional$ True
|
||||
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 | 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.
|
||||
|
||||
11
forge-gui/res/cardsfolder/upcoming/ancient_imperiosaur.txt
Normal file
11
forge-gui/res/cardsfolder/upcoming/ancient_imperiosaur.txt
Normal 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.
|
||||
13
forge-gui/res/cardsfolder/upcoming/archpriest_of_shadows.txt
Normal file
13
forge-gui/res/cardsfolder/upcoming/archpriest_of_shadows.txt
Normal 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.
|
||||
10
forge-gui/res/cardsfolder/upcoming/astral_wingspan.txt
Normal file
10
forge-gui/res/cardsfolder/upcoming/astral_wingspan.txt
Normal 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.
|
||||
@@ -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.
|
||||
11
forge-gui/res/cardsfolder/upcoming/bloodfeather_phoenix.txt
Normal file
11
forge-gui/res/cardsfolder/upcoming/bloodfeather_phoenix.txt
Normal 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.
|
||||
11
forge-gui/res/cardsfolder/upcoming/boon_bringer_valkyrie.txt
Normal file
11
forge-gui/res/cardsfolder/upcoming/boon_bringer_valkyrie.txt
Normal 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 that’s another creature, it gains the following abilities until end of turn.)\nFlying, first strike, lifelink
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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 can’t be the target of spells or abilities your opponents control.)
|
||||
10
forge-gui/res/cardsfolder/upcoming/cragsmasher_yeti.txt
Normal file
10
forge-gui/res/cardsfolder/upcoming/cragsmasher_yeti.txt
Normal 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
|
||||
@@ -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.)
|
||||
13
forge-gui/res/cardsfolder/upcoming/doomskar_warrior.txt
Normal file
13
forge-gui/res/cardsfolder/upcoming/doomskar_warrior.txt
Normal 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.
|
||||
@@ -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.
|
||||
9
forge-gui/res/cardsfolder/upcoming/fearless_skald.txt
Normal file
9
forge-gui/res/cardsfolder/upcoming/fearless_skald.txt
Normal 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
|
||||
6
forge-gui/res/cardsfolder/upcoming/glistening_deluge.txt
Normal file
6
forge-gui/res/cardsfolder/upcoming/glistening_deluge.txt
Normal 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.
|
||||
@@ -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.
|
||||
@@ -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
|
||||
10
forge-gui/res/cardsfolder/upcoming/knight_errant_of_eos.txt
Normal file
10
forge-gui/res/cardsfolder/upcoming/knight_errant_of_eos.txt
Normal 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.
|
||||
@@ -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.
|
||||
@@ -1,6 +1,6 @@
|
||||
Name:Phyrexian Censor
|
||||
ManaCost:2 W
|
||||
Types:Phyrexian Wizard
|
||||
Types:Creature Phyrexian Wizard
|
||||
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.
|
||||
R:Event$ Moved | ValidCard$ Creature.nonPhyrexian | Destination$ Battlefield | ReplaceWith$ ETBTapped | ReplacementResult$ Updated | ActiveZones$ Battlefield | Description$ Non-Phyrexian creatures enter the battlefield tapped.
|
||||
|
||||
9
forge-gui/res/cardsfolder/upcoming/phyrexian_pegasus.txt
Normal file
9
forge-gui/res/cardsfolder/upcoming/phyrexian_pegasus.txt
Normal 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.
|
||||
11
forge-gui/res/cardsfolder/upcoming/referee_squad.txt
Normal file
11
forge-gui/res/cardsfolder/upcoming/referee_squad.txt
Normal 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.)
|
||||
11
forge-gui/res/cardsfolder/upcoming/seedpod_caretaker.txt
Normal file
11
forge-gui/res/cardsfolder/upcoming/seedpod_caretaker.txt
Normal 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.
|
||||
@@ -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.
|
||||
6
forge-gui/res/cardsfolder/upcoming/tandem_takedown.txt
Normal file
6
forge-gui/res/cardsfolder/upcoming/tandem_takedown.txt
Normal 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.
|
||||
11
forge-gui/res/cardsfolder/upcoming/the_great_aerie.txt
Normal file
11
forge-gui/res/cardsfolder/upcoming/the_great_aerie.txt
Normal 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.
|
||||
11
forge-gui/res/cardsfolder/upcoming/voldaren_thrilseeker.txt
Normal file
11
forge-gui/res/cardsfolder/upcoming/voldaren_thrilseeker.txt
Normal 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.
|
||||
@@ -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 owner’s 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).
|
||||
@@ -1,9 +1,7 @@
|
||||
Name:Wave of Reckoning
|
||||
ManaCost:4 W
|
||||
Types:Sorcery
|
||||
#for this AF, the DefinedCards$ Self is the target for Each damaging. They EachDamage themselves.
|
||||
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.
|
||||
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:Random
|
||||
|
||||
@@ -3,5 +3,5 @@ ManaCost:2 W
|
||||
Types:Instant
|
||||
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: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.
|
||||
|
||||
@@ -11,23 +11,445 @@ ScryfallCode=MOC
|
||||
3 M Gimbal, Gremlin Prodigy @Fajareka Setiawan
|
||||
4 M Kasla, the Broken Halo @Martina Fackova
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
89 M Brimaz, Blight of Oreskos @Uriah Voth
|
||||
90 M Elenda and Azor @Randy Vargas
|
||||
91 M Gimbal, Gremlin Prodigy @Fajareka Setiawan
|
||||
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
|
||||
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
|
||||
135 M Brimaz, Blight of Oreskos @Uriah Voth
|
||||
136 M Gimbal, Gremlin Prodigy @Fajareka Setiawan
|
||||
137 M Kasla, the Broken Halo @Martina Fackova
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
446 M Katilda and Lier @Justyna Dura
|
||||
447 M Slimefoot and Squee @Victor Adame Minguez
|
||||
|
||||
@@ -7,3 +7,4 @@ ScryfallCode=MAT
|
||||
|
||||
[cards]
|
||||
34 R The Kenriths' Royal Funeral @Manuel Castañón
|
||||
230 Jolrael, Voice of Zhalfir @Ernanda Souza
|
||||
|
||||
@@ -7,120 +7,221 @@ ScryfallCode=MOM
|
||||
|
||||
[cards]
|
||||
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
|
||||
5 C Angelic Intervention @Awanqi (Angela Wang)
|
||||
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
|
||||
10 C Cut Short @Tran Nguyen
|
||||
11 R Dusk Legion Duelist @Ryan Valle
|
||||
12 M Elesh Norn @Magali Villeneuve
|
||||
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
|
||||
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
|
||||
21 U Invasion of Dominaria @Denys Tsiperko
|
||||
22 R Invasion of Gobakhan @Andreas Zafiratos
|
||||
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
|
||||
27 C Kor Halberd @Bastien L. Deharme
|
||||
28 M Monastery Mentor @Brian Valeza
|
||||
29 U Norn's Inquisitor @Denis Zhbankov
|
||||
30 U Phyrexian Awakening @Artur Nakhodkin
|
||||
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
|
||||
36 U Seraph of New Capenna @Aaron J. Riley
|
||||
37 C Sigiled Sentinel @Volkan Baǵa
|
||||
38 U Sun-Blessed Guardian @Brian Valeza
|
||||
39 C Sunder the Gateway @Titus Lunter
|
||||
40 R Sunfall @Kasia 'Kafis' Zielińska
|
||||
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
|
||||
45 U Zhalfirin Lancer @Nino Vecia
|
||||
46 U Artistic Refusal @Olivier Bernard
|
||||
47 C Assimilate Essence @Konstantin Porubov
|
||||
48 U Astral Wingspan @Joseph Weston
|
||||
49 U Captive Weird @Manuel Castañón
|
||||
50 U Change the Equation @Alix Branwyn
|
||||
51 R Chrome Host Seedshark @Donato Giancola
|
||||
52 R Complete the Circuit @Eelis Kyttanen
|
||||
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
|
||||
59 C Furtive Analyst @Marcela Bolívar
|
||||
60 C Halo-Charged Skaab @Igor Kieryluk
|
||||
61 R Invasion of Arcavios @Dmitry Burmak
|
||||
62 U Invasion of Kamigawa @Kekai Kotaki
|
||||
63 R Invasion of Segovia @Edgar Sánchez Hidalgo
|
||||
64 U Invasion of Vryn @Leon Tukker
|
||||
65 M Jin-Gitaxias @Ekaterina Burmak
|
||||
66 C Meeting of Minds @Milivoj Ćeran
|
||||
67 C Moment of Truth @Rovina Cai
|
||||
68 C Negate @Viko Menezes
|
||||
69 C Oculus Whelp @Donato Giancola
|
||||
70 U Omen Hawker @Josh Hass
|
||||
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
|
||||
76 C Saiba Cryptomancer @Aaron J. Riley
|
||||
77 R See Double @Marc Simonetti
|
||||
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
|
||||
84 U Wicked Slumber @Anato Finnstark
|
||||
85 U Xerex Strobe-Knight @Pavel Kolomeyets
|
||||
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
|
||||
90 R Ayara, Widow of the Realm @Anna Podedworna
|
||||
91 C Bladed Battle-Fan @Colin Boyer
|
||||
92 U Blightreaper Thallid @Marta Nael
|
||||
93 R Bloated Processor @Brock Grossman
|
||||
94 R Breach the Multiverse @Liiga Smilshkalne
|
||||
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
|
||||
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
|
||||
107 U Glistening Deluge @Anastasia Balakchina
|
||||
108 C Gloomfang Mauler @Denis Zhbankov
|
||||
109 R Grafted Butcher @Zack Stella
|
||||
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
|
||||
114 R Invasion of Fiora @Joshua Raphael
|
||||
115 M Invasion of Innistrad @Alexey Kruglov
|
||||
116 U Invasion of Ulgrotha @Viko Menezes
|
||||
117 U Merciless Repurposing @Artur Nakhodkin
|
||||
118 C Mirrodin Avenged @Scott Murphy
|
||||
119 U Nezumi Freewheeler @Artur Nakhodkin
|
||||
120 C Nezumi Informant @Steve Prescott
|
||||
121 U Phyrexian Gargantua @Kevin Sidharta
|
||||
122 R Pile On @Javier Charro
|
||||
123 U Render Inert @Yigit Koroglu
|
||||
124 U Scorn-Blade Berserker @Tuan Duong Chu
|
||||
125 M Sheoldred @Ryan Pancoast
|
||||
126 C Tenured Oilcaster @Francisco Miyara
|
||||
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
|
||||
132 R Bloodfeather Phoenix @Rudy Siswanto
|
||||
133 C Burning Sun's Fury @Slawomir Maniak
|
||||
134 M Chandra, Hope's Beacon @Kieran Yanner
|
||||
135 R City on Fire @Jake Murray
|
||||
136 C Coming In Hot @Cristi Balanescu
|
||||
137 R Etali, Primal Conqueror @Ryan Pancoast
|
||||
138 U Fearless Skald @Slawomir Maniak
|
||||
139 U Furnace Gremlin @Tuan Duong Chu
|
||||
140 C Furnace Host Charger @Andreas Zafiratos
|
||||
141 U Furnace Reins @Brian Valeza
|
||||
142 C Hangar Scrounger @Borja Pindado
|
||||
143 U Harried Artisan @Caio Monteiro
|
||||
144 R Into the Fire @Grzegorz Rutkowski
|
||||
145 R Invasion of Kaldheim @Bryan Sola
|
||||
146 R Invasion of Karsus @Zoltan Boros
|
||||
147 U Invasion of Mercadia @Cristi Balanescu
|
||||
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
|
||||
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
|
||||
160 R Rampaging Raptor @Denys Tsiperko
|
||||
161 C Redcap Heelslasher @Alexey Kruglov
|
||||
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
|
||||
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
|
||||
170 C Volcanic Spite @Kevin Sidharta
|
||||
171 R Voldaren Thrillseeker @Viko Menezes
|
||||
172 C War-Trained Slasher @Francis Tneh
|
||||
173 C Wrenn's Resolve
|
||||
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
|
||||
182 C Cosmic Hunger @Konstantin Porubov
|
||||
183 C Crystal Carapace @Sam Burley
|
||||
184 R Deeproot Wayfinder @Anna Pavleeva
|
||||
185 R Doomskar Warrior @Chris Rallis
|
||||
186 C Fertilid's Favor @Kevin Sidharta
|
||||
187 R Glistening Dawn @Chris Ostrowski
|
||||
188 U Gnottvold Hermit @Artur Nakhodkin
|
||||
189 U Herbology Instructor @Sergey Glushakov
|
||||
190 R Invasion of Ikoria @Antonio José Manzanedo
|
||||
191 R Invasion of Ixalan @Viktor Titov
|
||||
192 U Invasion of Muraganda @Adam Paquette
|
||||
193 M Invasion of Shandalar @Adam Paquette
|
||||
194 U Invasion of Zendikar @Diego Gisbert
|
||||
195 C Iridescent Blademaster @Livia Prima
|
||||
196 U Kami of Whispered Hopes @Filipe Pagliuso
|
||||
197 C Overgrown Pest @Eelis Kyttanen
|
||||
198 R Ozolith, the Shattered Spire @Daarken
|
||||
199 C Placid Rottentail @Filip Burburan
|
||||
200 R Polukranos Reborn @David Auden Nash
|
||||
201 C Portent Tracker @Caroline Gariba
|
||||
202 U Ravenous Sailback @Andrew Mar
|
||||
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
|
||||
207 U Streetwise Negotiator @Brent Hollowell
|
||||
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
|
||||
212 C Vengeant Earth @Jonas De Ro
|
||||
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
|
||||
218 R Baral and Kari Zev @Fariba Khamseh
|
||||
219 M Borborygmos and Fblthp @Rudy Siswanto
|
||||
@@ -150,6 +251,7 @@ ScryfallCode=MOM
|
||||
243 U Joyful Stormsculptor @Christina Kraus
|
||||
244 R Kogla and Yidaro @Chris Rahn
|
||||
245 M Kroxa and Kunoros @Ignatius Budi
|
||||
246 U Marshal of Zhalfir @Darren Tan
|
||||
247 U Mirror-Shield Hoplite @Alex Brock
|
||||
248 U Mutagen Connoisseur @Alex Brock
|
||||
249 R Omnath, Locus of All @Bryan Sola
|
||||
@@ -157,12 +259,19 @@ ScryfallCode=MOM
|
||||
251 U Rampaging Geoderm @Randy Vargas
|
||||
252 R Rankle and Torbran @Viko Menezes
|
||||
253 U Sculpted Perfection @Chris Seaman
|
||||
254 U Stormclaw Rager @Nicholas Elias
|
||||
255 M Thalia and The Gitrog Monster @Howard Lyon
|
||||
256 R Yargle and Multani @Slawomir Maniak
|
||||
257 M Zimone and Dina @Lie Setiawan
|
||||
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
|
||||
264 C Skittering Surveyor @Igor Kieryluk
|
||||
265 M Sword of Once and Future @Joshua Cairos
|
||||
266 C Urn of Godfire @Ovidio Cartagena
|
||||
267 C Bloodfell Caves @Jorge Jacinto
|
||||
268 C Blossoming Sands @Robin Olausson
|
||||
269 C Dismal Backwater @Chris Ostrowski
|
||||
@@ -188,11 +297,16 @@ ScryfallCode=MOM
|
||||
289 L Mountain @Lucas Staniec
|
||||
290 L Forest @Grady Frederick
|
||||
291 L Forest @Henry Peters
|
||||
|
||||
[showcase]
|
||||
292 M Elesh Norn @Kekai Kotaki
|
||||
293 R Heliod, the Radiant Dawn @Jason A. Engle
|
||||
294 M Jin-Gitaxias @Dominik Mayer
|
||||
295 R Rona, Herald of Invasion @Daniel Lieske
|
||||
296 R Ayara, Widow of the Realm @Josu Hernaiz
|
||||
297 M Sheoldred @Dominik Mayer
|
||||
298 R Etali, Primal Conqueror @Yeong-Hao Han
|
||||
299 M Urabrask @Kekai Kotaki
|
||||
300 R Polukranos Reborn @Jason A. Engle
|
||||
301 M Vorinclex @Flavio Girón
|
||||
302 R Baral and Kari Zev @Magali Villeneuve
|
||||
@@ -213,9 +327,14 @@ ScryfallCode=MOM
|
||||
317 R Yargle and Multani @Lisa Heidhoff
|
||||
318 M Zimone and Dina @Anato Finnstark
|
||||
319 M Zurgo and Ojutai @Adrian Smith
|
||||
|
||||
[borderless]
|
||||
320 M Archangel Elspeth @Denys Tsiperko
|
||||
321 M Chandra, Hope's Beacon @Randy Vargas
|
||||
322 M Wrenn and Realmbreaker @Jehan Choo
|
||||
339 M Jin-Gitaxias @Julian Kok Joon Wen
|
||||
|
||||
[jumpstart]
|
||||
323 R Essence of Orthodoxy @Oriana Menendez
|
||||
324 C Phyrexian Pegasus @Carlos Palma Cruchaga
|
||||
325 U Seedpod Caretaker @Slawomir Maniak
|
||||
@@ -231,12 +350,14 @@ ScryfallCode=MOM
|
||||
335 C Fairgrounds Trumpeter @Samuel Perin
|
||||
336 U Ruins Recluse @Lorenzo Mastroianni
|
||||
337 R Surrak and Goreclaw @Lucas Graciano
|
||||
339 M Jin-Gitaxias @Julian Kok Joon Wen
|
||||
|
||||
[extended art]
|
||||
343 R Boon-Bringer Valkyrie @Heonhwa Choe
|
||||
344 R Dusk Legion Duelist @Ryan Valle
|
||||
345 R Guardian of Ghirapur @Cynthia Sheppard
|
||||
346 R Knight-Errant of Eos @Kevin Sidharta
|
||||
347 M Monastery Mentor @Brian Valeza
|
||||
348 R Progenitor Exarch @Marie Magny
|
||||
349 R Sunfall @Kasia 'Kafis' Zielińska
|
||||
350 R Chrome Host Seedshark @Donato Giancola
|
||||
351 R Complete the Circuit @Eelis Kyttanen
|
||||
@@ -250,8 +371,10 @@ ScryfallCode=MOM
|
||||
359 R Grafted Butcher @Zack Stella
|
||||
360 R Hoarding Broodlord @Filip Burburan
|
||||
361 R Pile On @Javier Charro
|
||||
362 R Bloodfeather Phoenix @Rudy Siswanto
|
||||
363 R City on Fire @Jake Murray
|
||||
364 R Into the Fire @Grzegorz Rutkowski
|
||||
365 R Nahiri's Warcrafting @Zara Alfonso
|
||||
366 R Rampaging Raptor @Denys Tsiperko
|
||||
367 R Voldaren Thrillseeker @Viko Menezes
|
||||
368 R Ancient Imperiosaur @Piotr Foksowicz
|
||||
@@ -267,10 +390,17 @@ ScryfallCode=MOM
|
||||
378 R Terror of Towashi @Lius Lasahido
|
||||
379 R Orthion, Hero of Lavabrink @Aaron Miller
|
||||
380 R Surrak and Goreclaw @Lucas Graciano
|
||||
|
||||
[promo]
|
||||
381 U Norn's Inquisitor @Denis Zhbankov
|
||||
382 U Scrappy Bruiser @David Auden Nash
|
||||
383 U Kami of Whispered Hopes @Filipe Pagliuso
|
||||
384 U Botanical Brawler @Jesper Ejsing
|
||||
385 U Halo Forager @Kevin Sidharta
|
||||
386 R Ghalta and Mavren @Betty Jiang
|
||||
|
||||
[buy a box]
|
||||
387 R Omnath, Locus of All @Helge C. Balzer
|
||||
|
||||
[tokens]
|
||||
incubator_c_0_0_a_phyrexian
|
||||
|
||||
@@ -6,28 +6,75 @@ Type=Collector_Edition
|
||||
ScryfallCode=MUL
|
||||
|
||||
[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
|
||||
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
|
||||
8 R Baral, Chief of Compliance @Yeong-Hao Han
|
||||
9 R Emry, Lurker of the Loch @Wylie Beckert
|
||||
10 U Inga Rune-Eyes @rishxxv
|
||||
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
|
||||
15 R Seizan, Perverter of Truth @Maji
|
||||
16 M Sheoldred, Whispering One @Flavio Girón
|
||||
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
|
||||
20 R Captain Lannery Storm @Jody Clark
|
||||
21 M Ragavan, Nimble Pilferer @Magali Villeneuve
|
||||
22 R Squee, the Immortal @Eshpur
|
||||
23 M Urabrask the Hidden @Flavio Girón
|
||||
24 U Valduk, Keeper of the Flame @Tyler Crook
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
81 M Sheoldred, Whispering One @Jana Schirmer & Johannes Voss
|
||||
82 M Skithiryx, the Blight Dragon @Chippy
|
||||
@@ -35,5 +82,86 @@ ScryfallCode=MUL
|
||||
88 M Urabrask the Hidden @Brad Rigney
|
||||
90 U Zada, Hedron Grinder @Chris Rallis
|
||||
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
|
||||
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
|
||||
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
|
||||
|
||||
@@ -684,6 +684,7 @@ ScryfallCode=SLD
|
||||
724 R Lightning Strike @Frank Frazetta
|
||||
726 R Zur the Enchanter @Chase Stone
|
||||
727 R Fabled Passage @Warren Mahy
|
||||
278 R Themberchaud @Yang Luo
|
||||
900 R The Scarab God @Barely Human
|
||||
1001 M Elspeth, Knight-Errant @Volkan Baǵa
|
||||
1002 R Patron Wizard @Volkan Baǵa
|
||||
|
||||
@@ -182,7 +182,7 @@ ScryfallCode=PLIST
|
||||
174 R Harmonize @Vance Kovacs
|
||||
175 R Helix Pinnacle @Dan Scott
|
||||
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
|
||||
179 R Jadelight Ranger @Jason Rainville
|
||||
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
|
||||
1013 C Great Furnace @Rob Alexander
|
||||
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
|
||||
|
||||
@@ -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/Edge_of_Malacol.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/Fields_of_Summer.jpg
|
||||
https://downloads.cardforge.org/images/planes/Furnace_Layer.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/Glimmervoid_Basin.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/Immersturm.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/Izzet_Steam_Maze.jpg
|
||||
https://downloads.cardforge.org/images/planes/Jund.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/Kilnspire_District.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/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/Megaflora_Jungle.jpg
|
||||
https://downloads.cardforge.org/images/planes/Minamo.jpg
|
||||
https://downloads.cardforge.org/images/planes/Mirrored_Depths.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/Mutual_Epiphany.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/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_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/Orochi_Colony.jpg
|
||||
https://downloads.cardforge.org/images/planes/Orzhova.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/Planewide_Disaster.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/Raven's_Run.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/Sea_of_Sand.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/Stairs_to_Infinity.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/Takenuma.jpg
|
||||
https://downloads.cardforge.org/images/planes/Talon_Gates.jpg
|
||||
https://downloads.cardforge.org/images/planes/Tazeem.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_Caldaia.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_Fertile_Lands_of_Saulvinia.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_Hippodrome.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/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/Truga_Jungle.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/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/Windriddle_Palaces.jpg
|
||||
@@ -245,6 +245,31 @@ public final class ForgeConstants {
|
||||
public static final String BG_84 = "Morphic_Tide.jpg";
|
||||
public static final String BG_85 = "Mutual_Epiphany.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
|
||||
public static final String IMG_CARDBG_A = "IMG_CARDBG_A.png";
|
||||
public static final String IMG_CARDBG_B = "IMG_CARDBG_B.png";
|
||||
|
||||
Reference in New Issue
Block a user