diff --git a/forge-ai/src/main/java/forge/ai/simulation/GameCopier.java b/forge-ai/src/main/java/forge/ai/simulation/GameCopier.java index 408d820eaa5..2629cf44d0b 100644 --- a/forge-ai/src/main/java/forge/ai/simulation/GameCopier.java +++ b/forge-ai/src/main/java/forge/ai/simulation/GameCopier.java @@ -95,7 +95,6 @@ public class GameCopier { newPlayer.setCommitedCrimeThisTurn(origPlayer.getCommittedCrimeThisTurn()); newPlayer.setLifeStartedThisTurnWith(origPlayer.getLifeStartedThisTurnWith()); newPlayer.setDamageReceivedThisTurn(origPlayer.getDamageReceivedThisTurn()); - newPlayer.setActivateLoyaltyAbilityThisTurn(origPlayer.getActivateLoyaltyAbilityThisTurn()); newPlayer.setLandsPlayedThisTurn(origPlayer.getLandsPlayedThisTurn()); newPlayer.setCounters(Maps.newHashMap(origPlayer.getCounters())); newPlayer.setBlessing(origPlayer.hasBlessing()); diff --git a/forge-game/src/main/java/forge/game/CardTraitBase.java b/forge-game/src/main/java/forge/game/CardTraitBase.java index 2cc4a8ad73e..548c80424b0 100644 --- a/forge-game/src/main/java/forge/game/CardTraitBase.java +++ b/forge-game/src/main/java/forge/game/CardTraitBase.java @@ -550,7 +550,7 @@ public abstract class CardTraitBase extends GameObject implements IHasCardView, if (params.containsKey("ActivateNoLoyaltyAbilitiesCondition")) { final Player active = game.getPhaseHandler().getPlayerTurn(); - return !active.getActivateLoyaltyAbilityThisTurn(); + return !active.getActivateLoyaltyAbilityThisTurn(this); } if (params.containsKey("ClassLevel")) { diff --git a/forge-game/src/main/java/forge/game/GameActionUtil.java b/forge-game/src/main/java/forge/game/GameActionUtil.java index 9d3bf408560..9290dcf2dbd 100644 --- a/forge-game/src/main/java/forge/game/GameActionUtil.java +++ b/forge-game/src/main/java/forge/game/GameActionUtil.java @@ -522,7 +522,7 @@ public final class GameActionUtil { final Cost cost = new Cost(s, false); newSA.setDescription(sa.getDescription() + " (Additional cost: " + cost.toSimpleString() + ")"); - newSA.setPayCosts(cost.add(sa.getPayCosts())); + newSA.getPayCosts().add(cost); if (newSA.canPlay()) { abilities.add(newSA); } diff --git a/forge-game/src/main/java/forge/game/GameSnapshot.java b/forge-game/src/main/java/forge/game/GameSnapshot.java index 001215df41c..132a0003dd1 100644 --- a/forge-game/src/main/java/forge/game/GameSnapshot.java +++ b/forge-game/src/main/java/forge/game/GameSnapshot.java @@ -168,7 +168,6 @@ public class GameSnapshot { newPlayer.setLifeGainedThisTurn(origPlayer.getLifeGainedThisTurn()); newPlayer.setLifeStartedThisTurnWith(origPlayer.getLifeStartedThisTurnWith()); newPlayer.setDamageReceivedThisTurn(origPlayer.getDamageReceivedThisTurn()); - newPlayer.setActivateLoyaltyAbilityThisTurn(origPlayer.getActivateLoyaltyAbilityThisTurn()); newPlayer.setLandsPlayedThisTurn(origPlayer.getLandsPlayedThisTurn()); newPlayer.setCounters(Maps.newHashMap(origPlayer.getCounters())); newPlayer.setBlessing(origPlayer.hasBlessing()); diff --git a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java index a431613f569..6f3475832fe 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java @@ -1705,7 +1705,7 @@ public class AbilityUtils { // Count$Kicked.. if (sq[0].startsWith("Kicked")) { boolean kicked = sa.isKicked() || (!isUnlinkedFromCastSA(ctb, c) && c.getKickerMagnitude() > 0); - return doXMath(Integer.parseInt(kicked ? sq[1] : sq[2]), expr, c, ctb); + return doXMath(calculateAmount(c, sq[kicked ? 1 : 2], ctb), expr, c, ctb); } if (sq[0].startsWith("Bargain")) { diff --git a/forge-game/src/main/java/forge/game/ability/effects/PlayEffect.java b/forge-game/src/main/java/forge/game/ability/effects/PlayEffect.java index 8962414e52f..40f3dd2013c 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/PlayEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/PlayEffect.java @@ -410,6 +410,7 @@ public class PlayEffect extends SpellAbilityEffect { } } if (!optional) { + // TODO this doesn't work yet for cases where one choice would still be payable, e.g. Lightning Axe tgtSA.getPayCosts().setMandatory(true); } } diff --git a/forge-game/src/main/java/forge/game/card/CardDamageMap.java b/forge-game/src/main/java/forge/game/card/CardDamageMap.java index 5a83811ba2b..fbb3abda53f 100644 --- a/forge-game/src/main/java/forge/game/card/CardDamageMap.java +++ b/forge-game/src/main/java/forge/game/card/CardDamageMap.java @@ -134,11 +134,9 @@ public class CardDamageMap extends ForwardingTable { continue; } - if (cause != null && cause.hasParam("ExcessSVar")) { - if ((!cause.hasParam("ExcessSVarCondition") || damaged.getKey().isValid(cause.getParam("ExcessSVarCondition"), cause.getActivatingPlayer(), cause.getHostCard(), cause)) - && (!cause.hasParam("ExcessSVarTargeted") || damaged.getKey().equals(cause.getTargetCard()))) { - storedExcess += excess; - } + if (cause != null && cause.hasParam("ExcessSVar") + && (!cause.hasParam("ExcessSVarCondition") || damaged.getKey().isValid(cause.getParam("ExcessSVarCondition"), cause.getActivatingPlayer(), cause.getHostCard(), cause))) { + storedExcess += excess; } damaged.getKey().setHasBeenDealtExcessDamageThisTurn(true); diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index ce9b68189f8..88b1991ef7e 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -1871,10 +1871,10 @@ public class CardFactoryUtil { StringBuilder playTrig = new StringBuilder(); playTrig.append("Mode$ CounterRemoved | TriggerZones$ Exile | ValidCard$ Card.Self | CounterType$ TIME | NewCounterAmount$ 0 | Secondary$ True"); - playTrig.append(" | TriggerDescription$ When the last time counter is removed from this card, if it's exiled, play it without paying its mana cost if able. "); + playTrig.append(" | TriggerDescription$ When the last time counter is removed from this card, if it's exiled, you may play it without paying its mana cost if able. "); playTrig.append("If you can't, it remains exiled. If you cast a creature spell this way, it gains haste until you lose control of the spell or the permanent it becomes."); - String abPlay = "DB$ Play | Defined$ Self | WithoutManaCost$ True"; + String abPlay = "DB$ Play | Defined$ Self | WithoutManaCost$ True | Optional$ True"; if (card.isPermanent()) { abPlay += "| RememberPlayed$ True"; } diff --git a/forge-game/src/main/java/forge/game/card/CounterEnumType.java b/forge-game/src/main/java/forge/game/card/CounterEnumType.java index 06ae301c968..659b9389042 100644 --- a/forge-game/src/main/java/forge/game/card/CounterEnumType.java +++ b/forge-game/src/main/java/forge/game/card/CounterEnumType.java @@ -223,6 +223,8 @@ public enum CounterEnumType { INCARNATION("INCRN", 247, 206, 64), + INCUBATION("INCBT", 40, 210, 25), + INGREDIENT("INGRD", 180, 50, 145), INFECTION("INFCT", 0, 230, 66), diff --git a/forge-game/src/main/java/forge/game/player/Player.java b/forge-game/src/main/java/forge/game/player/Player.java index df35d49a727..75bd3d72c02 100644 --- a/forge-game/src/main/java/forge/game/player/Player.java +++ b/forge-game/src/main/java/forge/game/player/Player.java @@ -154,7 +154,6 @@ public class Player extends GameEntity implements Comparable { private boolean beenDealtCombatDamageSinceLastTurn = false; - private boolean activateLoyaltyAbilityThisTurn = false; private boolean tappedLandForManaThisTurn = false; private List completedDungeons = new ArrayList<>(); @@ -1886,11 +1885,8 @@ public class Player extends GameEntity implements Comparable { beenDealtCombatDamageSinceLastTurn = b; } - public final boolean getActivateLoyaltyAbilityThisTurn() { - return activateLoyaltyAbilityThisTurn; - } - public final void setActivateLoyaltyAbilityThisTurn(final boolean b) { - activateLoyaltyAbilityThisTurn = b; + public final boolean getActivateLoyaltyAbilityThisTurn(CardTraitBase ctb) { + return !CardUtil.getThisTurnActivated("Activated.Loyalty+Planeswalker+YouCtrl", ctb.getHostCard(), ctb, this).isEmpty(); } public final List getCreaturesAttackedThisTurn() { @@ -2499,7 +2495,6 @@ public class Player extends GameEntity implements Comparable { resetNumForetoldThisTurn(); resetNumTokenCreatedThisTurn(); setNumCardsInHandStartedThisTurnWith(getCardsIn(ZoneType.Hand).size()); - setActivateLoyaltyAbilityThisTurn(false); setTappedLandForManaThisTurn(false); setLandsPlayedLastTurn(getLandsPlayedThisTurn()); resetLandsPlayedThisTurn(); diff --git a/forge-game/src/main/java/forge/game/spellability/SpellAbilityCondition.java b/forge-game/src/main/java/forge/game/spellability/SpellAbilityCondition.java index f7d9ebe9207..e90caeecdd2 100644 --- a/forge-game/src/main/java/forge/game/spellability/SpellAbilityCondition.java +++ b/forge-game/src/main/java/forge/game/spellability/SpellAbilityCondition.java @@ -457,6 +457,7 @@ public class SpellAbilityCondition extends SpellAbilityVariables { return false; } } + if (this.getTargetValidTargeting() != null) { final TargetChoices matchTgt = sa.getTargets(); if (matchTgt == null || matchTgt.getFirstTargetedSpell() == null diff --git a/forge-game/src/main/java/forge/game/zone/MagicStack.java b/forge-game/src/main/java/forge/game/zone/MagicStack.java index 7dd7c25734e..d1b49e60008 100644 --- a/forge-game/src/main/java/forge/game/zone/MagicStack.java +++ b/forge-game/src/main/java/forge/game/zone/MagicStack.java @@ -546,9 +546,6 @@ public class MagicStack /* extends MyObservable */ implements Iterable | CostDesc$ {2}, Exile a nonland card from your hand: | Defined$ ExiledCards | CounterType$ TIME | CounterNum$ 4 | SubAbility$ GiveSuspend | StackDescription$ Put four time counters on the exiled card. | SpellDescription$ Put four time counters on the exiled card. If it doesn't have suspend, it gains suspend. (At the beginning of your upkeep, remove a time counter from that card. When the last is removed, cast it without paying its mana cost. If it's a creature, it has haste.) +A:AB$ PutCounter | Cost$ 2 ExileFromHand<1/Card.nonLand/nonland card> | CostDesc$ {2}, Exile a nonland card from your hand: | Defined$ ExiledCards | CounterType$ TIME | CounterNum$ 4 | SubAbility$ GiveSuspend | StackDescription$ Put four time counters on the exiled card. | SpellDescription$ Put four time counters on the exiled card. If it doesn't have suspend, it gains suspend. (At the beginning of your upkeep, remove a time counter from that card. When the last is removed, you may cast it without paying its mana cost. If it's a creature, it has haste.) SVar:GiveSuspend:DB$ Pump | Defined$ ExiledCards.withoutSuspend | KW$ Suspend | PumpZone$ Exile | Duration$ Permanent | StackDescription$ If it doesn't have suspend, it gains suspend. AI:RemoveDeck:All -Oracle:{2}, Exile a nonland card from your hand: Put four time counters on the exiled card. If it doesn't have suspend, it gains suspend. (At the beginning of your upkeep, remove a time counter from that card. When the last is removed, cast it without paying its mana cost. If it's a creature, it has haste.) +Oracle:{2}, Exile a nonland card from your hand: Put four time counters on the exiled card. If it doesn't have suspend, it gains suspend. (At the beginning of your upkeep, remove a time counter from that card. When the last is removed, you may cast it without paying its mana cost. If it's a creature, it has haste.) diff --git a/forge-gui/res/cardsfolder/j/judoon_enforcers.txt b/forge-gui/res/cardsfolder/j/judoon_enforcers.txt index d8e9ea1545c..3ce507745c8 100644 --- a/forge-gui/res/cardsfolder/j/judoon_enforcers.txt +++ b/forge-gui/res/cardsfolder/j/judoon_enforcers.txt @@ -5,4 +5,4 @@ PT:8/8 K:Trample S:Mode$ AttackRestrict | MaxAttackers$ 1 | ValidDefender$ You | Description$ No more than one creature can attack you each combat. K:Suspend:6:1 R W -Oracle:Trample\nNo more than one creature can attack you each combat.\nSuspend 6—{1}{R}{W} (Rather than cast this card from your hand, you may pay {1}{R}{W} and exile it with six time counters on it. At the beginning of your upkeep, remove time counter. When the last is removed, cast it without paying its mana cost. It has haste.) +Oracle:Trample\nNo more than one creature can attack you each combat.\nSuspend 6—{1}{R}{W} (Rather than cast this card from your hand, you may pay {1}{R}{W} and exile it with six time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, you may cast it without paying its mana cost. It has haste.) diff --git a/forge-gui/res/cardsfolder/k/keldon_halberdier.txt b/forge-gui/res/cardsfolder/k/keldon_halberdier.txt index 351616fe98a..e8117c53ab9 100644 --- a/forge-gui/res/cardsfolder/k/keldon_halberdier.txt +++ b/forge-gui/res/cardsfolder/k/keldon_halberdier.txt @@ -4,4 +4,4 @@ Types:Creature Human Warrior PT:4/1 K:First Strike K:Suspend:4:R -Oracle:First strike\nSuspend 4—{R} (Rather than cast this card from your hand, you may pay {R} and exile it with four time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost. It has haste.) +Oracle:First strike\nSuspend 4—{R} (Rather than cast this card from your hand, you may pay {R} and exile it with four time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, you may cast it without paying its mana cost. It has haste.) diff --git a/forge-gui/res/cardsfolder/k/knight_of_old_benalia.txt b/forge-gui/res/cardsfolder/k/knight_of_old_benalia.txt index d4bbefc9e6a..c64ed878f4c 100644 --- a/forge-gui/res/cardsfolder/k/knight_of_old_benalia.txt +++ b/forge-gui/res/cardsfolder/k/knight_of_old_benalia.txt @@ -6,4 +6,4 @@ K:Suspend:5:W T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPumpAll | TriggerDescription$ When CARDNAME enters, other creatures you control get +1/+1 until end of turn. SVar:TrigPumpAll:DB$ PumpAll | ValidCards$ Creature.StrictlyOther+YouCtrl | NumAtt$ +1 | NumDef$ +1 SVar:PlayMain1:TRUE -Oracle:Suspend 5—{W} (Rather than cast this card from your hand, you may pay {W} and exile it with five time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost. It has haste.)\nWhen Knight of Old Benalia enters, other creatures you control get +1/+1 until end of turn. +Oracle:Suspend 5—{W} (Rather than cast this card from your hand, you may pay {W} and exile it with five time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, you may cast it without paying its mana cost. It has haste.)\nWhen Knight of Old Benalia enters, other creatures you control get +1/+1 until end of turn. diff --git a/forge-gui/res/cardsfolder/k/knight_of_sursi.txt b/forge-gui/res/cardsfolder/k/knight_of_sursi.txt index 8419b5db7c2..eb47b37d533 100644 --- a/forge-gui/res/cardsfolder/k/knight_of_sursi.txt +++ b/forge-gui/res/cardsfolder/k/knight_of_sursi.txt @@ -5,4 +5,4 @@ PT:2/2 K:Flying K:Flanking K:Suspend:3:W -Oracle:Flying; flanking (Whenever a creature without flanking blocks this creature, the blocking creature gets -1/-1 until end of turn.)\nSuspend 3—{W} (Rather than cast this card from your hand, you may pay {W} and exile it with three time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost. It has haste.) +Oracle:Flying; flanking (Whenever a creature without flanking blocks this creature, the blocking creature gets -1/-1 until end of turn.)\nSuspend 3—{W} (Rather than cast this card from your hand, you may pay {W} and exile it with three time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, you may cast it without paying its mana cost. It has haste.) diff --git a/forge-gui/res/cardsfolder/l/lacerate_flesh.txt b/forge-gui/res/cardsfolder/l/lacerate_flesh.txt index 2d919226f57..06ca3a52c56 100644 --- a/forge-gui/res/cardsfolder/l/lacerate_flesh.txt +++ b/forge-gui/res/cardsfolder/l/lacerate_flesh.txt @@ -1,7 +1,7 @@ Name:Lacerate Flesh ManaCost:4 R Types:Sorcery -A:SP$ DealDamage | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ 4 | ExcessSVar$ X | ExcessSVarTargeted$ True | SubAbility$ DBToken | SpellDescription$ CARDNAME deals 4 damage to target creature. +A:SP$ DealDamage | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ 4 | ExcessSVar$ X | ExcessSVarCondition$ Card.targetedBy | SubAbility$ DBToken | SpellDescription$ CARDNAME deals 4 damage to target creature. SVar:DBToken:DB$ Token | TokenScript$ c_a_blood_draw | TokenAmount$ X | SpellDescription$ Create a number of Blood tokens equal to the amount of excess damage dealt to that creature this way. (They're artifacts with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") DeckHas:Ability$Token|Sacrifice & Type$Blood Oracle:Lacerate Flesh deals 4 damage to target creature. Create a number of Blood tokens equal to the amount of excess damage dealt to that creature this way. (They're artifacts with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.") diff --git a/forge-gui/res/cardsfolder/l/lotus_bloom.txt b/forge-gui/res/cardsfolder/l/lotus_bloom.txt index 30f76f345c3..e8ac9c401c1 100644 --- a/forge-gui/res/cardsfolder/l/lotus_bloom.txt +++ b/forge-gui/res/cardsfolder/l/lotus_bloom.txt @@ -3,4 +3,4 @@ ManaCost:no cost Types:Artifact K:Suspend:3:0 A:AB$ Mana | Cost$ T Sac<1/CARDNAME> | Produced$ Any | Amount$ 3 | AILogic$ BlackLotus | SpellDescription$ Add three mana of any one color. -Oracle:Suspend 3—{0} (Rather than cast this card from your hand, pay {0} and exile it with three time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost.)\n{T}, Sacrifice Lotus Bloom: Add three mana of any one color. +Oracle:Suspend 3—{0} (Rather than cast this card from your hand, pay {0} and exile it with three time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, you may cast it without paying its mana cost.)\n{T}, Sacrifice Lotus Bloom: Add three mana of any one color. diff --git a/forge-gui/res/cardsfolder/m/mindstab.txt b/forge-gui/res/cardsfolder/m/mindstab.txt index 05a3c0cb131..ce9811aade7 100644 --- a/forge-gui/res/cardsfolder/m/mindstab.txt +++ b/forge-gui/res/cardsfolder/m/mindstab.txt @@ -3,4 +3,4 @@ ManaCost:5 B Types:Sorcery A:SP$ Discard | ValidTgts$ Player | NumCards$ 3 | Mode$ TgtChoose | SpellDescription$ Target player discards three cards. K:Suspend:4:B -Oracle:Target player discards three cards.\nSuspend 4—{B} (Rather than cast this card from your hand, you may pay {B} and exile it with four time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost.) +Oracle:Target player discards three cards.\nSuspend 4—{B} (Rather than cast this card from your hand, you may pay {B} and exile it with four time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, you may cast it without paying its mana cost.) diff --git a/forge-gui/res/cardsfolder/m/mox_tantalite.txt b/forge-gui/res/cardsfolder/m/mox_tantalite.txt index 67549cbd7aa..6598da991dc 100644 --- a/forge-gui/res/cardsfolder/m/mox_tantalite.txt +++ b/forge-gui/res/cardsfolder/m/mox_tantalite.txt @@ -3,4 +3,4 @@ ManaCost:no cost Types:Artifact K:Suspend:3:0 A:AB$ Mana | Cost$ T | Produced$ Any | SpellDescription$ Add one mana of any color. -Oracle:Suspend 3—{0} (Rather than cast this card from your hand, pay {0} and exile it with three time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost.)\n{T}: Add one mana of any color. +Oracle:Suspend 3—{0} (Rather than cast this card from your hand, pay {0} and exile it with three time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, you may cast it without paying its mana cost.)\n{T}: Add one mana of any color. diff --git a/forge-gui/res/cardsfolder/n/nantuko_shaman.txt b/forge-gui/res/cardsfolder/n/nantuko_shaman.txt index b7e4da61855..f3ebc4a753c 100644 --- a/forge-gui/res/cardsfolder/n/nantuko_shaman.txt +++ b/forge-gui/res/cardsfolder/n/nantuko_shaman.txt @@ -5,4 +5,4 @@ PT:3/2 K:Suspend:1:2 G G T:Mode$ ChangesZone | ValidCard$ Card.Self | IsPresent$ Land.tapped+YouCtrl | PresentCompare$ EQ0 | Origin$ Any | Destination$ Battlefield | Execute$ TrigDraw | TriggerDescription$ When CARDNAME enters, if you control no tapped lands, draw a card. SVar:TrigDraw:DB$ Draw | NumCards$ 1 -Oracle:When Nantuko Shaman enters, if you control no tapped lands, draw a card.\nSuspend 1—{2}{G}{G} (Rather than cast this card from your hand, you may pay {2}{G}{G} and exile it with a time counter on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost. It has haste.) +Oracle:When Nantuko Shaman enters, if you control no tapped lands, draw a card.\nSuspend 1—{2}{G}{G} (Rather than cast this card from your hand, you may pay {2}{G}{G} and exile it with a time counter on it. At the beginning of your upkeep, remove a time counter. When the last is removed, you may cast it without paying its mana cost. It has haste.) diff --git a/forge-gui/res/cardsfolder/n/nihilith.txt b/forge-gui/res/cardsfolder/n/nihilith.txt index 2a09974464e..bec25f92ab1 100644 --- a/forge-gui/res/cardsfolder/n/nihilith.txt +++ b/forge-gui/res/cardsfolder/n/nihilith.txt @@ -6,4 +6,4 @@ K:Fear K:Suspend:7:1 B T:Mode$ ChangesZone | ValidCard$ Card.nonToken+OppOwn | Origin$ Any | Destination$ Graveyard | IsPresent$ Card.Self+suspended | PresentZone$ Exile | TriggerZones$ Exile | Execute$ TrigRemoveCounter | OptionalDecider$ You | TriggerDescription$ Whenever a card is put into an opponent's graveyard from anywhere, if CARDNAME is suspended, you may remove a time counter from CARDNAME. SVar:TrigRemoveCounter:DB$ RemoveCounter | Defined$ Self | CounterType$ TIME | CounterNum$ 1 -Oracle:Fear (This creature can't be blocked except by artifact creatures and/or black creatures.)\nSuspend 7—{1}{B} (Rather than cast this card from your hand, you may pay {1}{B} and exile it with seven time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost. It has haste.)\nWhenever a card is put into an opponent's graveyard from anywhere, if Nihilith is suspended, you may remove a time counter from Nihilith. +Oracle:Fear (This creature can't be blocked except by artifact creatures and/or black creatures.)\nSuspend 7—{1}{B} (Rather than cast this card from your hand, you may pay {1}{B} and exile it with seven time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, you may cast it without paying its mana cost. It has haste.)\nWhenever a card is put into an opponent's graveyard from anywhere, if Nihilith is suspended, you may remove a time counter from Nihilith. diff --git a/forge-gui/res/cardsfolder/p/petrified_plating.txt b/forge-gui/res/cardsfolder/p/petrified_plating.txt index e84350754d2..4bd6280c377 100644 --- a/forge-gui/res/cardsfolder/p/petrified_plating.txt +++ b/forge-gui/res/cardsfolder/p/petrified_plating.txt @@ -5,4 +5,4 @@ K:Enchant creature K:Suspend:2:G A:SP$ Attach | Cost$ 2 G | ValidTgts$ Creature | AILogic$ Pump S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 2 | AddToughness$ 2 | Description$ Enchanted creature gets +2/+2. -Oracle:Enchant creature\nEnchanted creature gets +2/+2.\nSuspend 2—{G} (Rather than cast this card from your hand, you may pay {G} and exile it with two time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost.) +Oracle:Enchant creature\nEnchanted creature gets +2/+2.\nSuspend 2—{G} (Rather than cast this card from your hand, you may pay {G} and exile it with two time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, you may cast it without paying its mana cost.) diff --git a/forge-gui/res/cardsfolder/p/phthisis.txt b/forge-gui/res/cardsfolder/p/phthisis.txt index 5141d5be49b..af9a3263d96 100644 --- a/forge-gui/res/cardsfolder/p/phthisis.txt +++ b/forge-gui/res/cardsfolder/p/phthisis.txt @@ -5,4 +5,4 @@ K:Suspend:5:1 B A:SP$ Destroy | ValidTgts$ Creature | TgtPrompt$ Select target creature | SubAbility$ DBLoseLife | SpellDescription$ Destroy target creature. Its controller loses life equal to its power plus its toughness. SVar:DBLoseLife:DB$ LoseLife | Defined$ TargetedController | LifeAmount$ X SVar:X:Targeted$CardSumPT -Oracle:Destroy target creature. Its controller loses life equal to its power plus its toughness.\nSuspend 5—{1}{B} (Rather than cast this card from your hand, you may pay {1}{B} and exile it with five time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost.) +Oracle:Destroy target creature. Its controller loses life equal to its power plus its toughness.\nSuspend 5—{1}{B} (Rather than cast this card from your hand, you may pay {1}{B} and exile it with five time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, you may cast it without paying its mana cost.) diff --git a/forge-gui/res/cardsfolder/p/plunder.txt b/forge-gui/res/cardsfolder/p/plunder.txt index d50b976091a..fbdf5535e72 100644 --- a/forge-gui/res/cardsfolder/p/plunder.txt +++ b/forge-gui/res/cardsfolder/p/plunder.txt @@ -3,4 +3,4 @@ ManaCost:4 R Types:Sorcery A:SP$ Destroy | ValidTgts$ Artifact,Land | TgtPrompt$ Select target artifact or land | SpellDescription$ Destroy target artifact or land. K:Suspend:4:1 R -Oracle:Destroy target artifact or land.\nSuspend 4—{1}{R} (Rather than cast this card from your hand, you may pay {1}{R} and exile it with four time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost.) +Oracle:Destroy target artifact or land.\nSuspend 4—{1}{R} (Rather than cast this card from your hand, you may pay {1}{R} and exile it with four time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, you may cast it without paying its mana cost.) diff --git a/forge-gui/res/cardsfolder/p/profane_tutor.txt b/forge-gui/res/cardsfolder/p/profane_tutor.txt index 39d6c8e08cf..924975491eb 100644 --- a/forge-gui/res/cardsfolder/p/profane_tutor.txt +++ b/forge-gui/res/cardsfolder/p/profane_tutor.txt @@ -4,4 +4,4 @@ Colors:black Types:Sorcery K:Suspend:2:1 B A:SP$ ChangeZone | Origin$ Library | Destination$ Hand | ChangeType$ Card | ChangeNum$ 1 | Mandatory$ True | StackDescription$ SpellDescription | SpellDescription$ Search your library for a card, put that card into your hand, then shuffle. -Oracle:Suspend 2—{1}{B} (Rather than cast this card from your hand, pay {1}{B} and exile it with two time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost.)\nSearch your library for a card, put that card into your hand, then shuffle. +Oracle:Suspend 2—{1}{B} (Rather than cast this card from your hand, pay {1}{B} and exile it with two time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, you may cast it without paying its mana cost.)\nSearch your library for a card, put that card into your hand, then shuffle. diff --git a/forge-gui/res/cardsfolder/r/reality_strobe.txt b/forge-gui/res/cardsfolder/r/reality_strobe.txt index f73db99ff47..7bf62087590 100644 --- a/forge-gui/res/cardsfolder/r/reality_strobe.txt +++ b/forge-gui/res/cardsfolder/r/reality_strobe.txt @@ -4,4 +4,4 @@ Types:Sorcery K:Suspend:3:2 U A:SP$ ChangeZone | ValidTgts$ Permanent | TgtPrompt$ Select target permanent | Origin$ Battlefield | Destination$ Hand | SubAbility$ DBChange | SpellDescription$ Return target permanent to its owner's hand. Exile CARDNAME with three time counters on it. SVar:DBChange:DB$ ChangeZone | Origin$ Stack | Destination$ Exile | WithCountersType$ TIME | WithCountersAmount$ 3 -Oracle:Return target permanent to its owner's hand. Exile Reality Strobe with three time counters on it.\nSuspend 3—{2}{U} (Rather than cast this card from your hand, you may pay {2}{U} and exile it with three time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost.) +Oracle:Return target permanent to its owner's hand. Exile Reality Strobe with three time counters on it.\nSuspend 3—{2}{U} (Rather than cast this card from your hand, you may pay {2}{U} and exile it with three time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, you may cast it without paying its mana cost.) diff --git a/forge-gui/res/cardsfolder/r/resurgent_belief.txt b/forge-gui/res/cardsfolder/r/resurgent_belief.txt index ab21a857f1e..76cb910b462 100644 --- a/forge-gui/res/cardsfolder/r/resurgent_belief.txt +++ b/forge-gui/res/cardsfolder/r/resurgent_belief.txt @@ -6,4 +6,4 @@ K:Suspend:2:1 W A:SP$ ChangeZoneAll | ChangeType$ Enchantment.YouOwn | Origin$ Graveyard | Destination$ Battlefield | SpellDescription$ Return all enchantment cards from your graveyard to the battlefield. (Auras with nothing to enchant remain in your graveyard.) AI:RemoveDeck:Random DeckNeeds:Type$Enchantment -Oracle:Suspend 2—{1}{W} (Rather than cast this card from your hand, pay {1}{W} and exile it with two time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost.)\nReturn all enchantment cards from your graveyard to the battlefield. (Auras with nothing to enchant remain in your graveyard.) +Oracle:Suspend 2—{1}{W} (Rather than cast this card from your hand, pay {1}{W} and exile it with two time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, you may cast it without paying its mana cost.)\nReturn all enchantment cards from your graveyard to the battlefield. (Auras with nothing to enchant remain in your graveyard.) diff --git a/forge-gui/res/cardsfolder/r/rift_bolt.txt b/forge-gui/res/cardsfolder/r/rift_bolt.txt index 49c1e80aaa8..6f77f046899 100644 --- a/forge-gui/res/cardsfolder/r/rift_bolt.txt +++ b/forge-gui/res/cardsfolder/r/rift_bolt.txt @@ -3,4 +3,4 @@ ManaCost:2 R Types:Sorcery A:SP$ DealDamage | ValidTgts$ Any | NumDmg$ 3 | SpellDescription$ CARDNAME deals 3 damage to any target. K:Suspend:1:R -Oracle:Rift Bolt deals 3 damage to any target.\nSuspend 1—{R} (Rather than cast this card from your hand, you may pay {R} and exile it with a time counter on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost.) +Oracle:Rift Bolt deals 3 damage to any target.\nSuspend 1—{R} (Rather than cast this card from your hand, you may pay {R} and exile it with a time counter on it. At the beginning of your upkeep, remove a time counter. When the last is removed, you may cast it without paying its mana cost.) diff --git a/forge-gui/res/cardsfolder/r/rift_sower.txt b/forge-gui/res/cardsfolder/r/rift_sower.txt index fa4a1db1ed1..5edd0688322 100644 --- a/forge-gui/res/cardsfolder/r/rift_sower.txt +++ b/forge-gui/res/cardsfolder/r/rift_sower.txt @@ -4,4 +4,4 @@ Types:Creature Elf Druid PT:1/3 K:Suspend:2:G A:AB$ Mana | Cost$ T | Produced$ Any | SpellDescription$ Add one mana of any color. -Oracle:{T}: Add one mana of any color.\nSuspend 2—{G} (Rather than cast this card from your hand, you may pay {G} and exile it with two time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost. It has haste.) +Oracle:{T}: Add one mana of any color.\nSuspend 2—{G} (Rather than cast this card from your hand, you may pay {G} and exile it with two time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, you may cast it without paying its mana cost. It has haste.) diff --git a/forge-gui/res/cardsfolder/r/riftwing_cloudskate.txt b/forge-gui/res/cardsfolder/r/riftwing_cloudskate.txt index 9e2fbb84c9a..de11d8a0b7a 100644 --- a/forge-gui/res/cardsfolder/r/riftwing_cloudskate.txt +++ b/forge-gui/res/cardsfolder/r/riftwing_cloudskate.txt @@ -6,4 +6,4 @@ K:Flying K:Suspend:3:1 U T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChangeZone | TriggerDescription$ When CARDNAME enters, return target permanent to its owner's hand. SVar:TrigChangeZone:DB$ ChangeZone | ValidTgts$ Permanent | TgtPrompt$ Select target permanent | Origin$ Battlefield | Destination$ Hand -Oracle:Flying\nWhen Riftwing Cloudskate enters, return target permanent to its owner's hand.\nSuspend 3—{1}{U} (Rather than cast this card from your hand, you may pay {1}{U} and exile it with three time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost. It has haste.) +Oracle:Flying\nWhen Riftwing Cloudskate enters, return target permanent to its owner's hand.\nSuspend 3—{1}{U} (Rather than cast this card from your hand, you may pay {1}{U} and exile it with three time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, you may cast it without paying its mana cost. It has haste.) diff --git a/forge-gui/res/cardsfolder/r/roiling_horror.txt b/forge-gui/res/cardsfolder/r/roiling_horror.txt index 25f706c99f7..f57accfbdbb 100644 --- a/forge-gui/res/cardsfolder/r/roiling_horror.txt +++ b/forge-gui/res/cardsfolder/r/roiling_horror.txt @@ -11,4 +11,4 @@ SVar:X:Count$xPaid SVar:Y:Count$YourLifeTotal/Minus.Z SVar:Z:Count$OppGreatestLifeTotal AI:RemoveDeck:All -Oracle:Roiling Horror's power and toughness are each equal to your life total minus the life total of an opponent with the most life.\nSuspend X—{X}{B}{B}{B}. X can't be 0. (Rather than cast this card from your hand, you may pay {X}{B}{B}{B} and exile it with X time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost. It has haste.)\nWhenever a time counter is removed from Roiling Horror while it's exiled, target player loses 1 life and you gain 1 life. +Oracle:Roiling Horror's power and toughness are each equal to your life total minus the life total of an opponent with the most life.\nSuspend X—{X}{B}{B}{B}. X can't be 0. (Rather than cast this card from your hand, you may pay {X}{B}{B}{B} and exile it with X time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, you may cast it without paying its mana cost. It has haste.)\nWhenever a time counter is removed from Roiling Horror while it's exiled, target player loses 1 life and you gain 1 life. diff --git a/forge-gui/res/cardsfolder/r/rousing_refrain.txt b/forge-gui/res/cardsfolder/r/rousing_refrain.txt index d79dc59228f..8ece32fd0c0 100644 --- a/forge-gui/res/cardsfolder/r/rousing_refrain.txt +++ b/forge-gui/res/cardsfolder/r/rousing_refrain.txt @@ -5,4 +5,4 @@ K:Suspend:3:1 R A:SP$ Mana | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | AILogic$ ManaRitual | Produced$ R | Amount$ Z | PersistentMana$ True | Defined$ You | SubAbility$ DBChange | StackDescription$ SpellDescription | SpellDescription$ Add {R} for each card in target opponent's hand. Until end of turn, you don't lose this mana as steps and phases end. SVar:Z:TargetedPlayer$CardsInHand SVar:DBChange:DB$ ChangeZone | Origin$ Stack | Destination$ Exile | WithCountersType$ TIME | WithCountersAmount$ 3 | SpellDescription$ Exile CARDNAME with three time counters on it. -Oracle:Add {R} for each card in target opponent's hand. Until end of turn, you don't lose this mana as steps and phases end. Exile Rousing Refrain with three time counters on it.\nSuspend 3—{1}{R} (Rather than cast this card from your hand, you may pay {1}{R} and exile it with three time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost.) +Oracle:Add {R} for each card in target opponent's hand. Until end of turn, you don't lose this mana as steps and phases end. Exile Rousing Refrain with three time counters on it.\nSuspend 3—{1}{R} (Rather than cast this card from your hand, you may pay {1}{R} and exile it with three time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, you may cast it without paying its mana cost.) diff --git a/forge-gui/res/cardsfolder/s/search_for_tomorrow.txt b/forge-gui/res/cardsfolder/s/search_for_tomorrow.txt index 29eabccf51f..4e919bb158a 100644 --- a/forge-gui/res/cardsfolder/s/search_for_tomorrow.txt +++ b/forge-gui/res/cardsfolder/s/search_for_tomorrow.txt @@ -3,4 +3,4 @@ ManaCost:2 G Types:Sorcery K:Suspend:2:G A:SP$ ChangeZone | Origin$ Library | Destination$ Battlefield | ChangeType$ Land.Basic | ChangeNum$ 1 | SpellDescription$ Search your library for a basic land card, put it onto the battlefield, then shuffle. -Oracle:Search your library for a basic land card, put it onto the battlefield, then shuffle.\nSuspend 2—{G} (Rather than cast this card from your hand, you may pay {G} and exile it with two time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost.) +Oracle:Search your library for a basic land card, put it onto the battlefield, then shuffle.\nSuspend 2—{G} (Rather than cast this card from your hand, you may pay {G} and exile it with two time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, you may cast it without paying its mana cost.) diff --git a/forge-gui/res/cardsfolder/s/shade_of_trokair.txt b/forge-gui/res/cardsfolder/s/shade_of_trokair.txt index 5eb9cf25cee..761a8a97998 100644 --- a/forge-gui/res/cardsfolder/s/shade_of_trokair.txt +++ b/forge-gui/res/cardsfolder/s/shade_of_trokair.txt @@ -4,4 +4,4 @@ Types:Creature Shade PT:1/2 K:Suspend:3:W A:AB$ Pump | Cost$ W | Defined$ Self | NumAtt$ +1 | NumDef$ +1 | SpellDescription$ CARDNAME gets +1/+1 until end of turn. -Oracle:{W}: Shade of Trokair gets +1/+1 until end of turn.\nSuspend 3—{W} (Rather than cast this card from your hand, you may pay {W} and exile it with three time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost. It has haste.) +Oracle:{W}: Shade of Trokair gets +1/+1 until end of turn.\nSuspend 3—{W} (Rather than cast this card from your hand, you may pay {W} and exile it with three time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, you may cast it without paying its mana cost. It has haste.) diff --git a/forge-gui/res/cardsfolder/s/shakedown_heavy.txt b/forge-gui/res/cardsfolder/s/shakedown_heavy.txt index 6445520d691..4cf839d72c7 100644 --- a/forge-gui/res/cardsfolder/s/shakedown_heavy.txt +++ b/forge-gui/res/cardsfolder/s/shakedown_heavy.txt @@ -3,9 +3,8 @@ ManaCost:2 B Types:Creature Ogre Warrior PT:6/4 K:Menace -T:Mode$ Attacks | ValidCard$ Card.Self | OptionalDecider$ DefendingPlayer | Execute$ TrigDraw | TriggerDescription$ Whenever CARDNAME attacks, defending player may have you draw a card. If they do, untap CARDNAME and remove it from combat. -SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1 | SubAbility$ TrigUntap -SVar:TrigUntap:DB$ Untap | Defined$ Self | SubAbility$ RemCombat +T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigDraw | TriggerDescription$ Whenever CARDNAME attacks, defending player may have you draw a card. If they do, untap CARDNAME and remove it from combat. +SVar:TrigDraw:DB$ Untap | Defined$ Self | UnlessCost$ Draw<1/Player.Activator> | UnlessPayer$ DefendingPlayer | UnlessSwitched$ True | UnlessResolveSubs$ WhenPaid | SubAbility$ RemCombat SVar:RemCombat:DB$ RemoveFromCombat | Defined$ Self SVar:HasAttackEffect:TRUE Oracle:Menace\nWhenever Shakedown Heavy attacks, defending player may have you draw a card. If they do, untap Shakedown Heavy and remove it from combat. diff --git a/forge-gui/res/cardsfolder/s/shivan_meteor.txt b/forge-gui/res/cardsfolder/s/shivan_meteor.txt index e1bc8391356..84ea9bc9c47 100644 --- a/forge-gui/res/cardsfolder/s/shivan_meteor.txt +++ b/forge-gui/res/cardsfolder/s/shivan_meteor.txt @@ -3,4 +3,4 @@ ManaCost:3 R R Types:Sorcery A:SP$ DealDamage | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumDmg$ 13 | SpellDescription$ CARDNAME deals 13 damage to target creature. K:Suspend:2:1 R R -Oracle:Shivan Meteor deals 13 damage to target creature.\nSuspend 2—{1}{R}{R} (Rather than cast this card from your hand, you may pay {1}{R}{R} and exile it with two time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost.) +Oracle:Shivan Meteor deals 13 damage to target creature.\nSuspend 2—{1}{R}{R} (Rather than cast this card from your hand, you may pay {1}{R}{R} and exile it with two time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, you may cast it without paying its mana cost.) diff --git a/forge-gui/res/cardsfolder/s/sinister_concierge.txt b/forge-gui/res/cardsfolder/s/sinister_concierge.txt index b7cc751d0ac..861b0890af0 100644 --- a/forge-gui/res/cardsfolder/s/sinister_concierge.txt +++ b/forge-gui/res/cardsfolder/s/sinister_concierge.txt @@ -2,9 +2,9 @@ Name:Sinister Concierge ManaCost:1 U Types:Creature Human Wizard PT:2/1 -T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Battlefield | Destination$ Graveyard | Execute$ TrigExile | OptionalDecider$ TriggeredCardController | TriggerDescription$ When CARDNAME dies, you may exile it and put three time counters on it. If you do, exile up to one target creature and put three time counters on it. Each card exiled this way that doesn't have suspend gains suspend. (For each card with suspend, its owner removes a time counter from it at the beginning of their upkeep. When the last is removed, they cast it without paying its mana cost. Those creature spells have haste.) +T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Battlefield | Destination$ Graveyard | Execute$ TrigExile | OptionalDecider$ TriggeredCardController | TriggerDescription$ When CARDNAME dies, you may exile it and put three time counters on it. If you do, exile up to one target creature and put three time counters on it. Each card exiled this way that doesn't have suspend gains suspend. (For each card with suspend, its owner removes a time counter from it at the beginning of their upkeep. When the last is removed, they may cast it without paying its mana cost. Those creature spells have haste.) SVar:TrigExile:DB$ ChangeZone | Origin$ Graveyard | Destination$ Exile | Defined$ TriggeredNewCardLKICopy | WithCountersType$ TIME | WithCountersAmount$ 3 | RememberChanged$ True | SubAbility$ DBExile SVar:DBExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature | TgtPrompt$ Select up to one target creature | TargetMin$ 0 | TargetMax$ 1 | WithCountersType$ TIME | WithCountersAmount$ 3 | RememberChanged$ True | ConditionDefined$ Remembered | ConditionPresent$ Card | SubAbility$ GiveSuspend SVar:GiveSuspend:DB$ PumpAll | ValidCards$ Card.IsRemembered+withoutSuspend | KW$ Suspend | PumpZone$ Exile | Duration$ Permanent | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True -Oracle:When Sinister Concierge dies, you may exile it and put three time counters on it. If you do, exile up to one target creature and put three time counters on it. Each card exiled this way that doesn't have suspend gains suspend. (For each card with suspend, its owner removes a time counter from it at the beginning of their upkeep. When the last is removed, they cast it without paying its mana cost. Those creature spells have haste.) +Oracle:When Sinister Concierge dies, you may exile it and put three time counters on it. If you do, exile up to one target creature and put three time counters on it. Each card exiled this way that doesn't have suspend gains suspend. (For each card with suspend, its owner removes a time counter from it at the beginning of their upkeep. When the last is removed, they may cast it without paying its mana cost. Those creature spells have haste.) diff --git a/forge-gui/res/cardsfolder/s/sol_talisman.txt b/forge-gui/res/cardsfolder/s/sol_talisman.txt index bd47dcb08de..e8f12b52a6c 100644 --- a/forge-gui/res/cardsfolder/s/sol_talisman.txt +++ b/forge-gui/res/cardsfolder/s/sol_talisman.txt @@ -3,4 +3,4 @@ ManaCost:no cost Types:Artifact K:Suspend:3:1 A:AB$ Mana | Cost$ T | Produced$ C | Amount$ 2 | SpellDescription$ Add {C}{C}. -Oracle:Suspend 3—{1} (Rather than cast this card from your hand, pay {1} and exile it with three time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost.)\n{T}: Add {C}{C}. +Oracle:Suspend 3—{1} (Rather than cast this card from your hand, pay {1} and exile it with three time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, you may cast it without paying its mana cost.)\n{T}: Add {C}{C}. diff --git a/forge-gui/res/cardsfolder/s/star_athlete.txt b/forge-gui/res/cardsfolder/s/star_athlete.txt index 01bcd1f491e..8154825863e 100644 --- a/forge-gui/res/cardsfolder/s/star_athlete.txt +++ b/forge-gui/res/cardsfolder/s/star_athlete.txt @@ -1,5 +1,5 @@ Name:Star Athlete -ManaCost:2 R R +ManaCost:1 R R Types:Creature Human Warrior PT:3/2 K:Menace diff --git a/forge-gui/res/cardsfolder/s/star_whale.txt b/forge-gui/res/cardsfolder/s/star_whale.txt index f580301d27e..4767d34425d 100644 --- a/forge-gui/res/cardsfolder/s/star_whale.txt +++ b/forge-gui/res/cardsfolder/s/star_whale.txt @@ -6,4 +6,4 @@ K:Flying K:Vigilance S:Mode$ Continuous | Affected$ Creature.Other+YouCtrl | AddKeyword$ Ward:2 | Description$ Other creatures you control have ward {2}. K:Suspend:6:1 U -Oracle:Flying, vigilance\nOther creatures you control have ward {2}.\nSuspend 6—{1}{U} (Rather than cast this card from your hand, you may pay {1}{U} and exile it with six time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost. It has haste.) +Oracle:Flying, vigilance\nOther creatures you control have ward {2}.\nSuspend 6—{1}{U} (Rather than cast this card from your hand, you may pay {1}{U} and exile it with six time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, you may cast it without paying its mana cost. It has haste.) diff --git a/forge-gui/res/cardsfolder/s/suspend.txt b/forge-gui/res/cardsfolder/s/suspend.txt index 17ce0239acd..ff20d2db5fc 100644 --- a/forge-gui/res/cardsfolder/s/suspend.txt +++ b/forge-gui/res/cardsfolder/s/suspend.txt @@ -5,4 +5,4 @@ A:SP$ ChangeZone | ValidTgts$ Creature | TgtPrompt$ Select target creature | Ori SVar:DBPump:DB$ Pump | Defined$ Remembered | ConditionDefined$ Remembered | ConditionPresent$ Card.withoutSuspend | PumpZone$ Exile | KW$ Suspend | Duration$ Permanent | SubAbility$ DBCleanup | StackDescription$ If it doesn't have suspend, it gains suspend. SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True DeckHas:Ability$Counters -Oracle:Exile target creature and put two time counters on it. If it doesn't have suspend, it gains suspend. (At the beginning of its owner's upkeep, they remove a time counter. When the last is removed, they play it without paying its mana cost. If it's a creature, it has haste.) +Oracle:Exile target creature and put two time counters on it. If it doesn't have suspend, it gains suspend. (At the beginning of its owner's upkeep, they remove a time counter. When the last is removed, they may play it without paying its mana cost. If it's a creature, it has haste.) diff --git a/forge-gui/res/cardsfolder/s/sword_of_hours.txt b/forge-gui/res/cardsfolder/s/sword_of_hours.txt index 500bac204fe..a055c73ed75 100644 --- a/forge-gui/res/cardsfolder/s/sword_of_hours.txt +++ b/forge-gui/res/cardsfolder/s/sword_of_hours.txt @@ -6,7 +6,7 @@ T:Mode$ Attacks | ValidCard$ Card.EquippedBy | Execute$ TrigPutCounter | Trigger SVar:TrigPutCounter:DB$ PutCounter | Defined$ TriggeredAttackerLKICopy | CounterType$ P1P1 | CounterNum$ 1 T:Mode$ DamageDealtOnce | CombatDamage$ True | ValidSource$ Creature.EquippedBy | Execute$ TrigRollDice | TriggerZones$ Battlefield | TriggerDescription$ Whenever equipped creature deals combat damage, roll a d12. If the result is greater than the damage dealt or the result is 12, double the number of +1/+1 counters on that creature. SVar:TrigRollDice:DB$ RollDice | Sides$ 12 | ResultSVar$ X | SubAbility$ DBDouble -SVar:DBDouble:DB$ MultiplyCounter | Defined$ TriggedSourceLKICopy | CounterType$ P1P1 | ConditionCheckSVar$ X | ConditionSVarCompare$ GTY +SVar:DBDouble:DB$ MultiplyCounter | Defined$ TriggeredSourceLKICopy | CounterType$ P1P1 | ConditionCheckSVar$ X | ConditionSVarCompare$ GTY SVar:Y:TriggerCount$DamageAmount/LimitMax.11 DeckHas:Ability$Counters Oracle:Whenever equipped creature attacks, put a +1/+1 counter on it.\nWhenever equipped creature deals combat damage, roll a d12. If the result is greater than the damage dealt or the result is 12, double the number of +1/+1 counters on that creature.\nEquip {2} ({2}: Attach to target creature you control. Equip only as a sorcery.) diff --git a/forge-gui/res/cardsfolder/t/temple_of_atropos.txt b/forge-gui/res/cardsfolder/t/temple_of_atropos.txt index 2ded5f8cac4..0f468f7bce4 100644 --- a/forge-gui/res/cardsfolder/t/temple_of_atropos.txt +++ b/forge-gui/res/cardsfolder/t/temple_of_atropos.txt @@ -1,9 +1,9 @@ Name:Temple of Atropos ManaCost:no cost Types:Plane Time -T:Mode$ Phase | Phase$ Main2 | ValidPlayer$ You | TriggerZones$ Command | Execute$ TrigAddPhase | TriggerDescription$ At the beginning of your postcombat main phase, there is an additional beginning phase after this phase. (The beginning phase includes the untap, upkeep, and draw steps.) +T:Mode$ Phase | Phase$ Main2 | ValidPlayer$ You | TriggerZones$ Command | Execute$ TrigAddPhase | TriggerDescription$ At the beginning of each of your postcombat main phases, there is an additional beginning phase after this phase. (The beginning phase includes the untap, upkeep, and draw steps.) SVar:TrigAddPhase:DB$ AddPhase | ExtraPhase$ Beginning T:Mode$ ChaosEnsues | TriggerZones$ Command | Execute$ TrigReverseOrder | TriggerDescription$ When chaos ensues, reverse the game's turn order. Then planeswalk. (For example, if play had proceeded clockwise around the table, it now goes counterclockwise.) SVar:TrigReverseOrder:DB$ ReverseTurnOrder | SubAbility$ DBPlaneswalk SVar:DBPlaneswalk:DB$ Planeswalk -Oracle:At the beginning of your postcombat main phase, there is an additional beginning phase after this phase. (The beginning phase includes the untap, upkeep, and draw steps.)\nWhen chaos ensues, reverse the game's turn order. Then planeswalk. (For example, if play had proceeded clockwise around the table, it now goes counterclockwise.) +Oracle:At the beginning of each of your postcombat main phases, there is an additional beginning phase after this phase. (The beginning phase includes the untap, upkeep, and draw steps.)\nWhen chaos ensues, reverse the game's turn order. Then planeswalk. (For example, if play had proceeded clockwise around the table, it now goes counterclockwise.) diff --git a/forge-gui/res/cardsfolder/t/torch_the_witness.txt b/forge-gui/res/cardsfolder/t/torch_the_witness.txt index 72f6cb721f0..61960f6ad68 100644 --- a/forge-gui/res/cardsfolder/t/torch_the_witness.txt +++ b/forge-gui/res/cardsfolder/t/torch_the_witness.txt @@ -1,7 +1,7 @@ Name:Torch the Witness ManaCost:X R Types:Sorcery -A:SP$ DealDamage | ValidTgts$ Creature | NumDmg$ Y | ExcessSVar$ Excess | ExcessSVarTargeted$ True | SubAbility$ DBInvestigate | SpellDescription$ CARDNAME deals twice X damage to target creature. +A:SP$ DealDamage | ValidTgts$ Creature | NumDmg$ Y | ExcessSVar$ Excess | ExcessSVarCondition$ Card.targetedBy | SubAbility$ DBInvestigate | SpellDescription$ CARDNAME deals twice X damage to target creature. SVar:DBInvestigate:DB$ Investigate | Num$ 1 | ConditionCheckSVar$ Excess | ConditionSVarCompare$ GE1 | SpellDescription$ If excess damage was dealt to that creature this way, investigate. (Create a Clue token. It's an artifact with "{2}, Sacrifice this artifact: Draw a card.") SVar:X:Count$xPaid SVar:Y:SVar$X/Twice diff --git a/forge-gui/res/cardsfolder/upcoming/abyssal_harvester.txt b/forge-gui/res/cardsfolder/upcoming/abyssal_harvester.txt new file mode 100644 index 00000000000..e026a1070ff --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/abyssal_harvester.txt @@ -0,0 +1,9 @@ +Name:Abyssal Harvester +ManaCost:1 B B +Types:Creature Demon Warlock +PT:3/2 +A:AB$ ChangeZone | Cost$ T | Origin$ Graveyard | Destination$ Exile | ValidTgts$ Creature.ThisTurnEntered | RememberChanged$ True | TgtPrompt$ Select target creature card from a graveyard that was put there this turn | SubAbility$ DBCopy | SpellDescription$ Exile target creature card from a graveyard that was put there this turn. Create a token that's a copy of it, except it's a Nightmare in addition to its other types. Then exile all other Nightmare tokens you control. +SVar:DBCopy:DB$ CopyPermanent | Defined$ Remembered | Controller$ You | AddTypes$ Nightmare | RememberTokens$ True | SubAbility$ DBChangeZoneAll +SVar:DBChangeZoneAll:DB$ ChangeZoneAll | ChangeType$ Nightmare.token+IsNotRemembered+YouCtrl | Origin$ Battlefield | Destination$ Exile | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +Oracle:{T}: Exile target creature card from a graveyard that was put there this turn. Create a token that's a copy of it, except it's a Nightmare in addition to its other types. Then exile all other Nightmare tokens you control. diff --git a/forge-gui/res/cardsfolder/upcoming/blasphemous_edict.txt b/forge-gui/res/cardsfolder/upcoming/blasphemous_edict.txt new file mode 100644 index 00000000000..4b5231d8fcd --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/blasphemous_edict.txt @@ -0,0 +1,6 @@ +Name:Blasphemous Edict +ManaCost:3 B B +Types:Sorcery +S:Mode$ AlternativeCost | ValidSA$ Spell.Self | EffectZone$ All | Cost$ B | IsPresent$ Creature | PresentCompare$ GE13 | Description$ You may pay {B} rather than pay this spell's mana cost if there are thirteen or more creatures on the battlefield. +A:SP$ Sacrifice | Amount$ 13 | SacValid$ Creature | Defined$ Player | SpellDescription$ Each player sacrifices thirteen creatures of their choice. +Oracle:You may pay {B} rather than pay this spell's mana cost if there are thirteen or more creatures on the battlefield.\nEach player sacrifices thirteen creatures of their choice. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/boltwave.txt b/forge-gui/res/cardsfolder/upcoming/boltwave.txt new file mode 100644 index 00000000000..bfb93bbfc05 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/boltwave.txt @@ -0,0 +1,5 @@ +Name:Boltwave +ManaCost:R +Types:Sorcery +A:SP$ DealDamage | Defined$ Player.Opponent | NumDmg$ 3 | SpellDescription$ CARDNAME deals 3 damage to each opponent. +Oracle:Boltwave deals 3 damage to each opponent. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/cephalid_inkmage.txt b/forge-gui/res/cardsfolder/upcoming/cephalid_inkmage.txt new file mode 100644 index 00000000000..834f43c11cb --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/cephalid_inkmage.txt @@ -0,0 +1,9 @@ +Name:Cephalid Inkmage +ManaCost:2 U +Types:Creature Octopus Wizard +PT:2/2 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigSurveil | TriggerDescription$ When this creature enters, surveil 3. (Look at the top three cards of your library, then put any number of them into your graveyard and the rest on top of your library in any order.) +SVar:TrigSurveil:DB$ Surveil | Amount$ 3 +S:Mode$ CantBlockBy | ValidAttacker$ Card.Self | Threshold$ True | Description$ Threshold — This creature can't be blocked as long as there are seven or more cards in your graveyard. +DeckHas:Ability$Surveil|Graveyard +Oracle:When this creature enters, surveil 3. (Look at the top three cards of your library, then put any number of them into your graveyard and the rest on top of your library in any order.)\nThreshold — This creature can't be blocked as long as there are seven or more cards in your graveyard. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/curator_of_destinies.txt b/forge-gui/res/cardsfolder/upcoming/curator_of_destinies.txt new file mode 100644 index 00000000000..5391591bdd2 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/curator_of_destinies.txt @@ -0,0 +1,12 @@ +Name:Curator of Destinies +ManaCost:4 U U +Types:Creature Sphinx +PT:5/5 +R:Event$ Counter | ValidCard$ Card.Self | ValidSA$ Spell | Layer$ CantHappen | Description$ This spell can't be countered. +K:Flying +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPeekAndReveal | TriggerDescription$ When this creature enters, look at the top five cards of your library and separate them into a face-down pile and a face-up pile. An opponent chooses one of those piles. Put that pile into your hand and the other into your graveyard. +SVar:TrigPeekAndReveal:DB$ PeekAndReveal | Defined$ You | PeekAmount$ 5 | NoReveal$ True | RememberPeeked$ True | SubAbility$ Separate +SVar:Separate:DB$ TwoPiles | Defined$ You | Separator$ You | Chooser$ Opponent | DefinedCards$ Remembered | ChosenPile$ DBHand | UnchosenPile$ DBGraveyard | Zone$ Library | FaceDown$ One +SVar:DBHand:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Hand +SVar:DBGraveyard:DB$ ChangeZoneAll | ChangeType$ Card.IsRemembered | Origin$ Library | Destination$ Graveyard +Oracle:This spell can't be countered.\nFlying\nWhen this creature enters, look at the top five cards of your library and separate them into a face-down pile and a face-up pile. An opponent chooses one of those piles. Put that pile into your hand and the other into your graveyard. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/divine_resilience.txt b/forge-gui/res/cardsfolder/upcoming/divine_resilience.txt new file mode 100644 index 00000000000..b855d602fba --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/divine_resilience.txt @@ -0,0 +1,9 @@ +Name:Divine Resilience +ManaCost:W +Types:Instant +K:Kicker:2 W +A:SP$ Pump | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | TargetMin$ X | TargetMax$ Y | KW$ Indestructible | StackDescription$ SpellDescription | SpellDescription$ Target creature you control gains indestructible until end of turn. If this spell was kicked, any number of target creatures you control gain indestructible until end of turn instead. (Damage and effects that say "destroy" don't destroy them.) +SVar:X:Count$Kicked.0.1 +SVar:Y:Count$Kicked.Z.1 +SVar:Z:Count$Valid Creature.YouCtrl +Oracle:Kicker {2}{W} (You may pay an additional {2}{W} as you cast this spell.)\nTarget creature you control gains indestructible until end of turn. If this spell was kicked, any number of target creatures you control gain indestructible until end of turn instead. (Damage and effects that say "destroy" don't destroy them.) \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/drake_hatcher.txt b/forge-gui/res/cardsfolder/upcoming/drake_hatcher.txt new file mode 100644 index 00000000000..f6b19fdf00c --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/drake_hatcher.txt @@ -0,0 +1,12 @@ +Name:Drake Hatcher +ManaCost:1 U +Types:Creature Human Wizard +PT:1/3 +K:Vigilance +K:Prowess +T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | TriggerZones$ Battlefield | CombatDamage$ True | Execute$ TrigPutCounter | TriggerDescription$ Whenever this creature deals combat damage to a player, put that many incubation counters on it. +SVar:TrigPutCounter:DB$ PutCounter | Defined$ TriggeredSourceLKICopy | CounterType$ INCUBATION | CounterNum$ X +A:AB$ Token | Cost$ SubCounter<3/INCUBATION> | TokenScript$ u_2_2_drake_flying | SpellDescription$ Create a 2/2 blue Drake creature token with flying. +SVar:X:TriggerCount$DamageAmount +DeckHas:Ability$Counters|Token +Oracle:Vigilance, prowess (Whenever you cast a noncreature spell, this creature gets +1/+1 until end of turn.)\nWhenever this creature deals combat damage to a player, put that many incubation counters on it.\nRemove three incubation counters from this creature: Create a 2/2 blue Drake creature token with flying. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/dreadwing_scavenger.txt b/forge-gui/res/cardsfolder/upcoming/dreadwing_scavenger.txt new file mode 100644 index 00000000000..1d8449cb5b6 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/dreadwing_scavenger.txt @@ -0,0 +1,13 @@ +Name:Dreadwing Scavenger +ManaCost:1 U B +Types:Creature Nightmare Bird +PT:2/2 +K:Flying +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDraw | TriggerDescription$ Whenever this creature enters or attacks, draw a card, then discard a card. +T:Mode$ Attacks | ValidCard$ Card.Self | Secondary$ True | Execute$ TrigDraw | TriggerDescription$ Whenever this creature enters or attacks, draw a card, then discard a card. +SVar:TrigDraw:DB$ Draw | SubAbility$ TrigDiscard +SVar:TrigDiscard:DB$ Discard | Defined$ You | NumCards$ 1 | Mode$ TgtChoose +S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ Deathtouch | Condition$ Threshold | Description$ Threshold — This creature gets +1/+1 and has deathtouch as long as there are seven or more cards in your graveyard. +SVar:HasAttackEffect:TRUE +DeckHas:Ability$Discard +Oracle:Flying\nWhenever this creature enters or attacks, draw a card, then discard a card.\nThreshold — This creature gets +1/+1 and has deathtouch as long as there are seven or more cards in your graveyard. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/elenda_saint_of_dusk.txt b/forge-gui/res/cardsfolder/upcoming/elenda_saint_of_dusk.txt new file mode 100644 index 00000000000..296f8417506 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/elenda_saint_of_dusk.txt @@ -0,0 +1,13 @@ +Name:Elenda, Saint of Dusk +ManaCost:2 W B +Types:Legendary Creature Vampire Knight +PT:4/4 +K:Lifelink +K:Hexproof:Card.Instant:instants +S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ Menace | CheckSVar$ X | SVarCompare$ GTY | Description$ As long as your life total is greater than your starting life total, NICKNAME gets +1/+1 and has menace. NICKNAME gets an additional +5/+5 as long as your life total is at least 10 greater than your starting life total. +S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 5 | AddToughness$ 5 | Secondary$ True | CheckSVar$ X | SVarCompare$ GEZ | Description$ As long as your life total is greater than your starting life total, NICKNAME gets +1/+1 and has menace. NICKNAME gets an additional +5/+5 as long as your life total is at least 10 greater than your starting life total. +SVar:X:Count$YourLifeTotal +SVar:Y:Count$YourStartingLife +SVar:Z:Count$YourStartingLife/Plus.10 +DeckHints:Ability$LifeGain +Oracle:Lifelink, hexproof from instants\nAs long as your life total is greater than your starting life total, Elenda gets +1/+1 and has menace. Elenda gets an additional +5/+5 as long as your life total is at least 10 greater than your starting life total. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/fiendish_panda.txt b/forge-gui/res/cardsfolder/upcoming/fiendish_panda.txt new file mode 100644 index 00000000000..7d0f5a00e1d --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/fiendish_panda.txt @@ -0,0 +1,12 @@ +Name:Fiendish Panda +ManaCost:2 W B +Types:Creature Bear Demon +PT:3/2 +T:Mode$ LifeGained | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ Whenever you gain life, put a +1/+1 counter on this creature. +SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigReturn | TriggerDescription$ When this creature dies, return another target non-Bear creature card with mana value less than or equal to this creature's power from your graveyard to the battlefield. +SVar:TrigReturn:DB$ ChangeZone | ValidTgts$ Creature.cmcLEX+YouOwn+nonBear+Other | TgtPrompt$ Select target non-Bear creature card with mana value less than or equal to this creature's power | Origin$ Graveyard | Destination$ Battlefield +SVar:X:TriggeredCard$CardPower +DeckHas:Ability$Counters|Graveyard +DeckHints:Ability$LifeGain +Oracle:Whenever you gain life, put a +1/+1 counter on this creature.\nWhen this creature dies, return another target non-Bear creature card with mana value less than or equal to this creature's power from your graveyard to the battlefield. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/joust_through.txt b/forge-gui/res/cardsfolder/upcoming/joust_through.txt new file mode 100644 index 00000000000..e1e198dc8ae --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/joust_through.txt @@ -0,0 +1,6 @@ +Name:Joust Through +ManaCost:W +Types:Instant +A:SP$ DealDamage | ValidTgts$ Creature.attacking,Creature.blocking | TgtPrompt$ Select target attacking or blocking creature | NumDmg$ 3 | SubAbility$ DBGainLife | SpellDescription$ CARDNAME deals 3 damage to target attacking or blocking creature. You gain 1 life. +SVar:DBGainLife:DB$ GainLife | LifeAmount$ 1 +Oracle:Joust Through deals 3 damage to target attacking or blocking creature. You gain 1 life. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/loot_exuberant_explorer.txt b/forge-gui/res/cardsfolder/upcoming/loot_exuberant_explorer.txt new file mode 100644 index 00000000000..8d8bd0bcf0c --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/loot_exuberant_explorer.txt @@ -0,0 +1,8 @@ +Name:Loot, Exuberant Explorer +ManaCost:2 G +Types:Legendary Creature Beast Noble +PT:1/4 +S:Mode$ Continuous | Affected$ You | AdjustLandPlays$ 1 | Description$ You may play an additional land on each of your turns. +A:AB$ Dig | Cost$ 4 G G T | DigNum$ 6 | ChangeNum$ 1 | Optional$ True | ChangeValid$ Creature.cmcLEX | DestinationZone$ Battlefield | RestRandomOrder$ True | SpellDescription$ Look at the top six cards of your library. You may reveal a creature card with mana value less than or equal to the number of lands you control from among them and put it onto the battlefield. Put the rest on the bottom in a random order. +SVar:X:Count$Valid Land.YouCtrl +Oracle:You may play an additional land on each of your turns.\n{4}{G}{G}, {T}: Look at the top six cards of your library. You may reveal a creature card with mana value less than or equal to the number of lands you control from among them and put it onto the battlefield. Put the rest on the bottom in a random order. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/mischievous_mystic.txt b/forge-gui/res/cardsfolder/upcoming/mischievous_mystic.txt new file mode 100644 index 00000000000..c28e495fa3a --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/mischievous_mystic.txt @@ -0,0 +1,9 @@ +Name:Mischievous Mystic +ManaCost:1 U +Types:Creature Human Wizard +PT:2/1 +K:Flying +T:Mode$ Drawn | ValidCard$ Card.YouCtrl | Number$ 2 | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ Whenever you draw your second card each turn, create a 1/1 blue Faerie token with flying. +SVar:TrigToken:DB$ Token | TokenScript$ u_1_1_faerie_flying +DeckHas:Ability$Token +Oracle:Flying\nWhenever you draw your second card each turn, create a 1/1 blue Faerie token with flying. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/raise_the_past.txt b/forge-gui/res/cardsfolder/upcoming/raise_the_past.txt new file mode 100644 index 00000000000..ad1058578c6 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/raise_the_past.txt @@ -0,0 +1,6 @@ +Name:Raise the Past +ManaCost:2 W W +Types:Sorcery +A:SP$ ChangeZoneAll | ChangeType$ Creature.YouOwn+cmcLE2 | Origin$ Graveyard | Destination$ Battlefield | SpellDescription$ Return all creature cards with mana value 2 or less from your graveyard to the battlefield. +DeckHas:Ability$Graveyard +Oracle:Return all creature cards with mana value 2 or less from your graveyard to the battlefield. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/rite_of_the_dragoncaller.txt b/forge-gui/res/cardsfolder/upcoming/rite_of_the_dragoncaller.txt new file mode 100644 index 00000000000..0e6fd672626 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/rite_of_the_dragoncaller.txt @@ -0,0 +1,8 @@ +Name:Rite of the Dragoncaller +ManaCost:4 R R +Types:Enchantment +T:Mode$ SpellCast | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ Whenever you cast an instant or sorcery spell, create a 5/5 red Dragon creature token with flying. +SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ r_5_5_dragon_flying | TokenOwner$ You +DeckHas:Ability$Token +DeckNeeds:Type$Instant|Sorcery +Oracle:Whenever you cast an instant or sorcery spell, create a 5/5 red Dragon creature token with flying. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/skyknight_squire.txt b/forge-gui/res/cardsfolder/upcoming/skyknight_squire.txt new file mode 100644 index 00000000000..a1dafae19c1 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/skyknight_squire.txt @@ -0,0 +1,9 @@ +Name:Skyknight Squire +ManaCost:1 W +Types:Creature Cat Scout +PT:1/1 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.Other+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ Whenever another creature you control enters, put a +1/+1 counter on this creature. +SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 +S:Mode$ Continuous | Affected$ Card.Self+counters_GE3_P1P1 | AddKeyword$ Flying | AddType$ Knight | Description$ As long as this creature has three or more +1/+1 counters on it, it has flying and is a Knight in addition to its other types. +DeckHas:Ability$Counters & Keyword$Flying +Oracle:Whenever another creature you control enters, put a +1/+1 counter on this creature.\nAs long as this creature has three or more +1/+1 counters on it, it has flying and is a Knight in addition to its other types. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/soulstone_sanctuary.txt b/forge-gui/res/cardsfolder/upcoming/soulstone_sanctuary.txt index d34900bdda6..442f1db37a8 100644 --- a/forge-gui/res/cardsfolder/upcoming/soulstone_sanctuary.txt +++ b/forge-gui/res/cardsfolder/upcoming/soulstone_sanctuary.txt @@ -1,6 +1,6 @@ -Name:Soustone Sanctuary +Name:Soulstone Sanctuary ManaCost:no cost Types:Land A:AB$ Mana | Cost$ T | Produced$ C | SpellDescription$ Add {C}. A:AB$ Animate | Cost$ 4 | Defined$ Self | Power$ 3 | Toughness$ 3 | Keywords$ Vigilance | Types$ Creature | AddAllCreatureTypes$ True | Duration$ Permanent | SpellDescription$ This land becomes a 3/3 creature with vigilance and all creature types. It's still a land. -Oracle:{T}: Add {C}.\n{4}: This land becomes a 3/3 creature with vigilance and all creature types. It's still a land. \ No newline at end of file +Oracle:{T}: Add {C}.\n{4}: This land becomes a 3/3 creature with vigilance and all creature types. It's still a land. diff --git a/forge-gui/res/cardsfolder/upcoming/strongbox_raider.txt b/forge-gui/res/cardsfolder/upcoming/strongbox_raider.txt new file mode 100644 index 00000000000..5e0928853ca --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/strongbox_raider.txt @@ -0,0 +1,12 @@ +Name:Strongbox Raider +ManaCost:2 R R +Types:Creature Orc Pirate +PT:5/2 +T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | CheckSVar$ RaidTest | OptionalDecider$ You | Execute$ TrigExile | TriggerDescription$ Raid — When this creature enters, if you attacked this turn, exile the top two cards of your library. Choose one of them. Until the end of your next turn, you may play that card. +SVar:TrigExile:DB$ Dig | Defined$ You | DigNum$ 2 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | SubAbility$ DBChoose +SVar:DBChoose:DB$ ChooseCard | Choices$ Card.IsRemembered | ChoiceZone$ Exile | Mandatory$ True | ForgetOtherRemembered$ True | SubAbility$ DBEffect +SVar:DBEffect:DB$ Effect | RememberObjects$ ChosenCard | StaticAbilities$ Play | Duration$ UntilTheEndOfYourNextTurn | ForgetOnMoved$ Exile | SubAbility$ DBCleanup +SVar:Play:Mode$ Continuous | MayPlay$ True | EffectZone$ Command | Affected$ Card.ChosenCard | AffectedZone$ Exile | Description$ Until the end of your next turn, you may play the chosen card. +SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True +SVar:RaidTest:Count$AttackersDeclared +Oracle:Raid — When this creature enters, if you attacked this turn, exile the top two cards of your library. Choose one of them. Until the end of your next turn, you may play that card. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/sylvan_scavenging.txt b/forge-gui/res/cardsfolder/upcoming/sylvan_scavenging.txt new file mode 100644 index 00000000000..59918b4a5b5 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/sylvan_scavenging.txt @@ -0,0 +1,9 @@ +Name:Sylvan Scavenging +ManaCost:1 G G +Types:Enchantment +T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigCharm | TriggerDescription$ At the beginning of your end step, ABILITY +SVar:TrigCharm:DB$ Charm | Choices$ DBPutCounter,DBToken | CharmNum$ 1 +SVar:DBPutCounter:DB$ PutCounter | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | CounterType$ P1P1 | SpellDescription$ Put a +1/+1 counter on target creature you control. +SVar:DBToken:DB$ Token | TokenScript$ g_3_3_raccoon | ConditionPresent$ Creature.powerGE4+YouCtrl | SpellDescription$ Create a 3/3 green Raccoon creature token if you control a creature with power 4 or greater. +DeckHas:Ability$Counters|Token +Oracle:At the beginning of your end step, choose one —\n• Put a +1/+1 counter on target creature you control.\n• Create a 3/3 green Raccoon creature token if you control a creature with power 4 or greater. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/vampire_gourmand.txt b/forge-gui/res/cardsfolder/upcoming/vampire_gourmand.txt new file mode 100644 index 00000000000..6dae077e458 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/vampire_gourmand.txt @@ -0,0 +1,9 @@ +Name:Vampire Gourmand +ManaCost:1 B +Types:Creature Vampire +PT:2/2 +T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigDraw | TriggerDescription$ Whenever this creature attacks, you may sacrifice another creature. If you do, draw a card and this creature can't be blocked this turn. +SVar:TrigDraw:AB$ Draw | Cost$ Sac<1/Creature.Other/another creature> | Defined$ You | SubAbility$ DBUnblockable +SVar:DBUnblockable:DB$ Effect | RememberObjects$ Self | ExileOnMoved$ Battlefield | StaticAbilities$ Unblockable +SVar:Unblockable:Mode$ CantBlockBy | ValidAttacker$ Card.IsRemembered | Description$ EFFECTSOURCE can't be blocked this turn. +Oracle:Whenever this creature attacks, you may sacrifice another creature. If you do, draw a card and this creature can't be blocked this turn. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/woodland_liege.txt b/forge-gui/res/cardsfolder/upcoming/woodland_liege.txt new file mode 100644 index 00000000000..85af9642965 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/woodland_liege.txt @@ -0,0 +1,8 @@ +Name:Woodland Liege +ManaCost:2 G +Types:Creature Elf Druid Noble +PT:2/2 +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Beast.YouCtrl | Execute$ TrigDraw | TriggerDescription$ Whenever a Beast you control enters, draw a card. +SVar:TrigDraw:DB$ Draw +SVar:BuffedBy:Beast +Oracle:Whenever a Beast you control enters, draw a card. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/wriggling_grub.txt b/forge-gui/res/cardsfolder/upcoming/wriggling_grub.txt new file mode 100644 index 00000000000..4d905c73e5e --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/wriggling_grub.txt @@ -0,0 +1,9 @@ +Name:Wriggling Grub +ManaCost:1 B +Types:Creature Worm +PT:1/1 +T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ When CARDNAME dies, create two 1/1 black and green Worm creature tokens. +SVar:TrigToken:DB$ Token | TokenAmount$ 2 | TokenScript$ bg_1_1_worm +SVar:SacMe:4 +DeckHas:Ability$Token +Oracle:When Wriggling Grub dies, create two 1/1 black and green Worm creature tokens. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/upcoming/zimone_paradox_sculptor.txt b/forge-gui/res/cardsfolder/upcoming/zimone_paradox_sculptor.txt new file mode 100644 index 00000000000..b607acf8b78 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/zimone_paradox_sculptor.txt @@ -0,0 +1,9 @@ +Name:Zimone, Paradox Sculptor +ManaCost:2 G U +Types:Legendary Creature Human Wizard +PT:1/4 +T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ At the beginning of combat on your turn, put a +1/+1 counter on each of up to two target creatures you control. +SVar:TrigPutCounter:DB$ PutCounter | ValidTgts$ Creature.YouCtrl | TargetMin$ 0 | TargetMax$ 2 | TgtPrompt$ Select target creature you control | CounterType$ P1P1 | CounterNum$ 1 +A:AB$ MultiplyCounter | Cost$ G U T | ValidTgts$ Creature.YouCtrl,Artifact.YouCtrl | TgtPrompt$ Select target creature or artifact you control | TargetMin$ 0 | TargetMax$ 2 | StackDescription$ SpellDescription | SpellDescription$ Double the number of each kind of counter on up to two target creatures and/or artifacts you control. +DeckHas:Ability$Counters +Oracle:At the beginning of combat on your turn, put a +1/+1 counter on each of up to two target creatures you control.\n{G}{U}, {T}: Double the number of each kind of counter on up to two target creatures and/or artifacts you control. \ No newline at end of file diff --git a/forge-gui/res/cardsfolder/v/veiling_oddity.txt b/forge-gui/res/cardsfolder/v/veiling_oddity.txt index 9ca4999522b..24f88673de6 100644 --- a/forge-gui/res/cardsfolder/v/veiling_oddity.txt +++ b/forge-gui/res/cardsfolder/v/veiling_oddity.txt @@ -6,4 +6,4 @@ K:Suspend:4:1 U T:Mode$ CounterRemoved | ValidCard$ Card.Self | TriggerZones$ Exile | CounterType$ TIME | Execute$ TrigEffect | NewCounterAmount$ 0 | TriggerDescription$ When the last time counter is removed from CARDNAME while it's exiled, creatures can't be blocked this turn. SVar:TrigEffect:DB$ Effect | StaticAbilities$ Unblockable SVar:Unblockable:Mode$ CantBlockBy | ValidAttacker$ Creature | Description$ Creatures can't be blocked this turn. -Oracle:Suspend 4—{1}{U} (Rather than cast this card from your hand, you may pay {1}{U} and exile it with four time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost. It has haste.)\nWhen the last time counter is removed from Veiling Oddity while it's exiled, creatures can't be blocked this turn. +Oracle:Suspend 4—{1}{U} (Rather than cast this card from your hand, you may pay {1}{U} and exile it with four time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, you may cast it without paying its mana cost. It has haste.)\nWhen the last time counter is removed from Veiling Oddity while it's exiled, creatures can't be blocked this turn. diff --git a/forge-gui/res/cardsfolder/v/venture_forth.txt b/forge-gui/res/cardsfolder/v/venture_forth.txt index f2a0367d070..f3a3167960b 100644 --- a/forge-gui/res/cardsfolder/v/venture_forth.txt +++ b/forge-gui/res/cardsfolder/v/venture_forth.txt @@ -7,4 +7,4 @@ SVar:DBToPlay:DB$ ChangeZone | Defined$ Imprinted | Origin$ Exile | Destination$ SVar:DBRestRandomOrder:DB$ ChangeZoneAll | ChangeType$ Card.IsRemembered | Origin$ Exile | Destination$ Library | LibraryPosition$ -1 | RandomOrder$ True | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True | SubAbility$ DBExileSelf SVar:DBExileSelf:DB$ ChangeZone | Origin$ Stack | Destination$ Exile | WithCountersType$ TIME | WithCountersAmount$ 3 | SpellDescription$ Exile CARDNAME with three time counters on it. -Oracle:Exile cards from the top of your library until you exile a land card. Put that card onto the battlefield and the rest on the bottom of your library in a random order. Exile Venture Forth with three time counters on it.\nSuspend 3—{1}{G} (Rather than cast this card from your hand, you may pay {1}{G} and exile it with three time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost.) +Oracle:Exile cards from the top of your library until you exile a land card. Put that card onto the battlefield and the rest on the bottom of your library in a random order. Exile Venture Forth with three time counters on it.\nSuspend 3—{1}{G} diff --git a/forge-gui/res/cardsfolder/v/viscerid_deepwalker.txt b/forge-gui/res/cardsfolder/v/viscerid_deepwalker.txt index aea8e94728a..9b2f1a2879f 100644 --- a/forge-gui/res/cardsfolder/v/viscerid_deepwalker.txt +++ b/forge-gui/res/cardsfolder/v/viscerid_deepwalker.txt @@ -4,4 +4,4 @@ Types:Creature Homarid Warrior PT:2/3 K:Suspend:4:U A:AB$ Pump | Cost$ U | NumAtt$ +1 | SpellDescription$ CARDNAME gets +1/+0 until end of turn. -Oracle:{U}: Viscerid Deepwalker gets +1/+0 until end of turn.\nSuspend 4—{U} (Rather than cast this card from your hand, you may pay {U} and exile it with four time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost. It has haste.) +Oracle:{U}: Viscerid Deepwalker gets +1/+0 until end of turn.\nSuspend 4—{U} (Rather than cast this card from your hand, you may pay {U} and exile it with four time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, you may cast it without paying its mana cost. It has haste.) diff --git a/forge-gui/res/cardsfolder/w/wheel_of_fate.txt b/forge-gui/res/cardsfolder/w/wheel_of_fate.txt index 1706d3a85c6..5b8362d9ae0 100644 --- a/forge-gui/res/cardsfolder/w/wheel_of_fate.txt +++ b/forge-gui/res/cardsfolder/w/wheel_of_fate.txt @@ -7,4 +7,4 @@ A:SP$ Discard | Mode$ Hand | Defined$ Player | SubAbility$ DBDraw | SpellDescrip SVar:DBDraw:DB$ Draw | Defined$ Player | NumCards$ 7 SVar:NeedsToPlayVar:Y LE3 SVar:Y:Count$InYourHand -Oracle:Suspend 4—{1}{R} (Rather than cast this card from your hand, pay {1}{R} and exile it with four time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost.)\nEach player discards their hand, then draws seven cards. +Oracle:Suspend 4—{1}{R} (Rather than cast this card from your hand, pay {1}{R} and exile it with four time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, you may cast it without paying its mana cost.)\nEach player discards their hand, then draws seven cards. diff --git a/forge-gui/res/editions/Foundations Jumpstart.txt b/forge-gui/res/editions/Foundations Jumpstart.txt index e44db64141a..b950df01067 100644 --- a/forge-gui/res/editions/Foundations Jumpstart.txt +++ b/forge-gui/res/editions/Foundations Jumpstart.txt @@ -62,30 +62,30 @@ ScryfallCode=J25 54 R Shroofus Sproutsire @Yukihiro Maruo 55 R Slinza, the Spiked Stampede @Ishikawa Kenta 56 U Sutina, Speaker of the Tajuru @Canata Katana -57 R Adeline, Resplendent Cathar +57 R Adeline, Resplendent Cathar @Susumu Kuroi 58 M Brimaz, King of Oreskos @Moopic -59 U Danitha Capashen, Paragon -60 R Giada, Font of Hope -61 R Naban, Dean of Iteration +59 U Danitha Capashen, Paragon @Kuregure +60 R Giada, Font of Hope @Hisashi Momose +61 R Naban, Dean of Iteration @Susumu Kuroi 62 R Padeem, Consul of Innovation @Moopic -63 R Sai, Master Thopterist -64 U Syr Elenora, the Discerning +63 R Sai, Master Thopterist @Dai-XT +64 U Syr Elenora, the Discerning @Mai Okuma 65 R Thryx, the Sudden Storm @Moopic -66 R Venser, Shaper Savant -67 R Gorex, the Tombshell -68 R Isareth the Awakener -69 R Taborax, Hope's Demise +66 R Venser, Shaper Savant @BODAX +67 R Gorex, the Tombshell @Yukihiro Maruo +68 R Isareth the Awakener @Hisashi Momose +69 R Taborax, Hope's Demise @Takeuchi Moto 70 R Vilis, Broker of Blood @Takeuchi Moto -71 R Vito, Thorn of the Dusk Rose -72 U Brothers Yamazaki -73 U Brothers Yamazaki -74 R Lathliss, Dragon Queen -75 R Rionya, Fire Dancer -76 R Zada, Hedron Grinder -77 R Ghalta, Primal Hunger -78 M Kodama of the West Tree -79 U Mowu, Loyal Companion -80 R Averna, the Chaos Bloom +71 R Vito, Thorn of the Dusk Rose @Susumu Kuroi +72 U Brothers Yamazaki @Dai-XT +73 U Brothers Yamazaki @Dai-XT +74 R Lathliss, Dragon Queen @M.Matsumoto +75 R Rionya, Fire Dancer @Taranboman +76 R Zada, Hedron Grinder @Takotto +77 R Ghalta, Primal Hunger @Kemonomichi +78 M Kodama of the West Tree @Dai-XT +79 U Mowu, Loyal Companion @Ishikawa Kenta +80 R Averna, the Chaos Bloom @Ryuichi Sakuma 81 L Plains @Sam Burley 82 L Plains @Dimitar Marinski 83 L Plains @Raoul Vitale @@ -105,7 +105,7 @@ ScryfallCode=J25 97 C Celestial Unicorn @Alessandra Pisano 98 U Dauntless Onslaught @Jesper Ejsing 99 U Mentor of the Meek @Lie Setiawan -100 U Plate Armor +100 U Plate Armor @Martina Pilcerova 101 C Raise the Alarm @Slawomir Maniak 102 R Speaker of the Heavens @Cristi Balanescu 103 C Steadfast Unicorn @Leesha Hannigan @@ -118,7 +118,7 @@ ScryfallCode=J25 110 U Sudden Insight @Danny Schwartz 111 C Uncomfortable Chill @Andrew Mar 112 U Bonecaller Cleric @Néstor Ossandón Leal -113 C Dark Bargain +113 C Dark Bargain @Kai Carpenter 114 M Dark Confidant @Victor Adame Minguez 115 C Deadly Dispute @Cristi Balanescu 116 C Eaten Alive @Warren Mahy @@ -149,7 +149,7 @@ ScryfallCode=J25 141 C Seize the Spoils @Brian Valeza 142 U Volley Veteran @Olivier Bernard 143 R Zealous Conscripts @Billy Christian -144 U Biogenic Upgrade +144 U Biogenic Upgrade @Kev Fang 145 C Elvish Visionary @Quintin Gleim 146 C Explore @Borja Pindado 147 R Forgotten Ancient @Andrew Mar @@ -200,10 +200,10 @@ ScryfallCode=J25 192 C Dreadful Apathy @Mark Zug 193 C Elite Skirmisher @Mark Winters 194 C Expedition Raptor @Johann Bodin -195 C Faith's Fetters +195 C Faith's Fetters @Kev Walker 196 U Favored Hoplite @Winona Nelson 197 U Favored of Iroas @John Severin Brassell -198 M Felidar Sovereign +198 M Felidar Sovereign @Zoltan Boros & Gabor Szikszai 199 U Fencing Ace @David Rapoza 200 C Flutterfox @Lucas Graciano 201 C Gavony Silversmith @Volkan Baǵa @@ -212,8 +212,8 @@ ScryfallCode=J25 204 M Godsend @Daniel Ljunggren 205 C Golden-Tail Disciple @Jesper Ejsing 206 U Herald of the Sun @Micah Epstein -207 C Herald of War -208 U Hexgold Hoverwings +207 R Herald of War @Eric Deschamps +208 U Hexgold Hoverwings @Kai Carpenter 209 C Impeccable Timing @Chris Rallis 210 C Indomitable Will @Micah Epstein 211 U Ingenious Leonin @Eric Deschamps @@ -236,7 +236,7 @@ ScryfallCode=J25 228 C Moment of Heroism @Christopher Moeller 229 C Moment of Triumph @Steven Belledin 230 R Nykthos Paragon @Martina Pilcerova -231 U Nyx-Fleece Ram +231 U Nyx-Fleece Ram @Hasani Claxton 232 M Ojutai Exemplars @Willian Murai 233 C Outflank @Victor Adame Minguez 234 C Pacifism @Jesper Ejsing @@ -257,7 +257,7 @@ ScryfallCode=J25 249 C Savannah Lions @Winona Nelson 250 C Search Party Captain @Mike Bierek 251 U Serra Angel @Greg Staples -252 U Serra's Embrace +252 U Serra's Embrace @Zoltan Boros & Gabor Szikszai 253 U Shield Mare @Lucas Graciano 254 C Shoulder to Shoulder @Chris Rallis 255 C Speakeasy Server @Scott Murphy @@ -275,7 +275,7 @@ ScryfallCode=J25 267 C Sunmane Pegasus @John Severin Brassell 268 C Sunspear Shikari @Samuel Perin 269 C Swift Response @Deruchenko Alexander -270 C Take Up the Shield +270 C Take Up the Shield @Manuel Castañón 271 C Tethmos High Priest @Mark Zug 272 U Thopter Architect @Michal Ivan 273 C Triplicate Spirits @Izzy @@ -289,7 +289,7 @@ ScryfallCode=J25 281 C Academy Journeymage @Magali Villeneuve 282 C Aerial Guide @Sidharth Chaturvedi 283 R Aether Channeler @Caio Monteiro -284 U Air Elemental +284 U Air Elemental @Kev Walker 285 C Archaeomancer @Zoltan Boros 286 U Augur of Bolas @Alex Konstad 287 C Aven Reedstalker @Scott Murphy @@ -299,7 +299,7 @@ ScryfallCode=J25 291 U Brineborn Cutthroat @Caio Monteiro 292 C Bury in Books @Zoltan Boros 293 R Cackling Counterpart @David Rapoza -294 C Capture Sphere +294 C Capture Sphere @Mark Behm 295 C Cartouche of Knowledge @Kieran Yanner 296 M Cavalier of Gales @Viktor Titov 297 C Chilling Trap @Johann Bodin @@ -312,7 +312,7 @@ ScryfallCode=J25 304 C Deep Analysis @Jesper Ejsing 305 C Draugr Thought-Thief @Dan Murayama Scott 306 U Exclusion Mage @Chris Seaman -307 C Expedition Diviner +307 C Expedition Diviner @Heonhwa Choe 308 C Expendable Lackey @Randy Gallegos 309 U Experimental Aviator @Jesper Ejsing 310 U Fading Hope @Rovina Cai @@ -344,7 +344,7 @@ ScryfallCode=J25 336 C Omen of the Sea @Piotr Dura 337 U Oneirophage @Martina Pilcerova 338 U Opportunity @Allen Williams -339 C Opt +339 C Opt @Craig J Spearing 340 C Organ Hoarder @Nicholas Gregory 341 M Overflowing Insight @Lucas Graciano 342 C Owl Familiar @Janine Johnston @@ -364,7 +364,7 @@ ScryfallCode=J25 357 U Sigiled Starfish @Nils Hamm 358 C Silent Departure @John Avon 359 C Sky-Eel School @Daniel Ljunggren -360 C Slimebind +360 C Slimebind @Mark Behm 361 C Smoke Shroud @Micah Epstein 362 C Soul Read @Drew Tucker 363 U Spectral Sailor @Cristi Balanescu @@ -427,7 +427,7 @@ ScryfallCode=J25 420 C Defenestrate @Darek Zabrocki 421 C Devouring Swarm @Wayne England 422 C Dire Fleet Hoarder @Deruchenko Alexander -423 C Diregraf Scavenger +423 C Diregraf Scavenger @Manuel Castañón 424 C Disfigure @Svetlin Velinov 425 C Doomed Dissenter @Campbell White 426 R Doomed Necromancer @Volkan Baǵa @@ -544,7 +544,7 @@ ScryfallCode=J25 537 U Dragon Whelp @Jokubas Uogintas 538 U Dragonlord's Servant @Steve Prescott 539 R Dreadhorde Arcanist @G-host Lee -540 C Emberhorn Minotaur +540 C Emberhorn Minotaur @Viktor Titov 541 C Expedition Champion @Bram Sels 542 C Falkenrath Celebrants @Anna Steinbauer 543 R Falkenrath Marauders @James Ryman @@ -571,14 +571,14 @@ ScryfallCode=J25 564 U Incorrigible Youths @Winona Nelson 565 C Infuriate @Caio Monteiro 566 C Insolent Neonate @Deruchenko Alexander -567 U Invigorated Rampage +567 U Invigorated Rampage @Craig J Spearing 568 C Jaya's Firenado @Jeremy Wilson 569 R Kargan Intimidator @Kieran Yanner 570 C Keldon Raider @Chris Seaman -571 C Kindled Fury +571 C Kindled Fury @Craig J Spearing 572 R Krenko, Tin Street Kingpin @Viko Menezes 573 C Kruin Striker @Christopher Moeller -574 R Markov Blademaster +574 R Markov Blademaster @Jana Schirmer 575 R Markov Enforcer @Wisnu Tan 576 U Markov Retribution @Uriah Voth 577 U Markov Warlord @Cynthia Sheppard @@ -637,7 +637,7 @@ ScryfallCode=J25 630 C Armored Kincaller @John Tedrick 631 U Audacity @Rudy Siswanto 632 C Baloth Gorger @Zezhou Chen -633 U Baloth Woodcrasher +633 U Baloth Woodcrasher @Zoltan Boros & Gabor Szikszai 634 C Band Together @Josh Hass 635 C Big Play @Nicholas Gregory 636 C Bite Down @Kitt Lapeña @@ -649,7 +649,7 @@ ScryfallCode=J25 642 C Byway Courier @Zoltan Boros 643 C Canopy Baloth @Filip Burburan 644 U Cherished Hatchling @Sam Rowan -645 U Clear Shot +645 U Clear Shot @Craig J Spearing 646 C Colossal Dreadmaw @Jesper Ejsing 647 C Commune with Dinosaurs @Jonathan Kuo 648 C Deepwood Denizen @Josu Hernaiz @@ -685,7 +685,7 @@ ScryfallCode=J25 678 C Jungle Delver @Kieran Yanner 679 C Kazandu Nectarpot @Simon Dominic 680 C Kazandu Stomper @Sam Rowan -681 U Krosan Tusker +681 U Krosan Tusker @Kev Walker 682 C Kujar Seedsculptor @Anna Steinbauer 683 R Leaf-Crowned Visionary @Anna Steinbauer 684 C Llanowar Visionary @Cristi Balanescu @@ -700,7 +700,7 @@ ScryfallCode=J25 693 R Oran-Rief Ooze @Daarken 694 C Orchard Strider @Raoul Vitale 695 U Orochi Merge-Keeper @Brent Hollowell -696 U Overcome +696 U Overcome @Craig J Spearing 697 U Overwhelm @Wayne Reynolds 698 U Paradise Druid @Nils Hamm 699 C Predator's Strike @Tony Szczudlo @@ -718,7 +718,7 @@ ScryfallCode=J25 711 C Servant of the Scale @Winona Nelson 712 U Skyclave Pick-Axe @Dan Murayama Scott 713 C Snakeskin Veil @Matt Stewart -714 C Snapping Gnarlid +714 C Snapping Gnarlid @Kev Walker 715 R Somberwald Beastmaster @Marta Nael 716 C Spore Crawler @Nicholas Gregory 717 U Spore Swarm @Mathias Kollros @@ -747,13 +747,13 @@ ScryfallCode=J25 740 U Wolfrider's Saddle @Raoul Vitale 741 U Woodland Champion @Randy Vargas 742 U Bituminous Blast @Raymond Swanland -743 U Bloodbraid Elf +743 U Bloodbraid Elf @Raymond Swanland 744 U Enlisted Wurm @Steve Prescott 745 U Fusion Elemental @Michael Komarck 746 C Violent Outburst @Richard Whitters 747 U Chief of the Foundry @Daniel Ljunggren 748 C Cliffhaven Kitesail @Caroline Gariba -749 C Eager Construct +749 C Eager Construct @Craig J Spearing 750 U Fireshrieker @Christopher Moeller 751 C Gingerbrute @Carlos Palma Cruchaga 752 U Gorgon Flail @Lars Grant-West @@ -780,7 +780,7 @@ ScryfallCode=J25 773 C Seat of the Synod @John Avon 774 U Secluded Steppe @Heather Hudson 775 C Thriving Bluff @Johannes Voss -776 C Thriving Grove +776 C Thriving Grove @Ravenna Tran 777 C Thriving Heath @Alayna Danner 778 C Thriving Isle @Jonas De Ro 779 C Thriving Moor @Titus Lunter diff --git a/forge-gui/res/editions/Foundations.txt b/forge-gui/res/editions/Foundations.txt index ab2d74111a6..50efdfff3fb 100644 --- a/forge-gui/res/editions/Foundations.txt +++ b/forge-gui/res/editions/Foundations.txt @@ -12,17 +12,24 @@ ScryfallCode=FDN 5 R Celestial Armor @Olena Richards 6 U Claws Out @Warren Mahy 7 R Crystal Barricade @Rockey Chen +10 U Divine Resilience @Svetlin Velinov 11 R Exemplar of Light @Ekaterina Burmak 12 C Felidar Savior @Ilse Gort 14 U Guarded Heir @Craig J Spearing 16 C Helpful Hunter @Xabi Gaztelua 17 M Herald of Eternal Dawn @Martina Fačková +19 U Joust Through @Miro Petrov 21 C Prideful Parent @Leonardo Santanna +22 R Raise the Past @Nathaniel Himawan 25 U Sun-Blessed Healer @Mark Zug +26 U Twinblade Blessing @Miro Petrov 27 M Valkyrie's Call @Scott Murphy 29 U Arcane Epiphany @Andrew Mar 30 R Archmage of Runes @Kai Carpenter +32 U Cephalid Inkmage @Christopher Burdett 33 U Clinquant Skymage @Kevin Sidharta +34 R Curator of Destinies @Ralph Horsley +35 R Drake Hatcher @Chris Rallis 37 C Erudite Wizard @Joannis Fiore 38 U Faebloom Trick @Annie Stegg 39 U Grappling Kraken @Ben Wootten @@ -31,11 +38,14 @@ ScryfallCode=FDN 43 U Inspiration from Beyond @Xavier Ribeiro 44 M Kaito, Cunning Infiltrator @Evyn Fong 46 R Lunar Insight @Dan Murayama Scott +47 U Mischievous Mystic @Steve Prescott 48 C Refute @Ignatius Budi +49 U Rune-Sealed Wall @Rockey Chen 50 U Skyship Buccaneer @Javier Charro 51 M Sphinx of Forgotten Lore @Dmitry Burmak 55 U Arbiter of Woe @Jim Pavelec 56 U Billowing Shriekmass @Brent Hollowell +57 R Blasphemous Edict @Andrew Mar 58 M Bloodthirsty Conqueror @Dmitry Burmak 59 C Crypt Feaster @John Di Giovanni 61 R High-Society Hunter @Daneen Wilkerson @@ -55,28 +65,38 @@ ScryfallCode=FDN 91 R Kellan, Planar Trailblazer @Zoltan Boros 93 R Searslicer Goblin @Wayne Reynolds 94 U Slumbering Cerberus @Kari Christensen +96 U Strongbox Raider @Craig J Spearing 97 M Twinflame Tyrant @Xabi Gaztelua 104 U Elvish Regrower @Zoltan Boros 107 R Mossborn Hydra @Monztre 108 U Needletooth Pack @Monztre +109 R Preposterous Proportions @Ben Wootten +113 R Sylvan Scavenging @Josiah "Jo" Cameron 115 R Alesha, Who Laughs at Fate @Ekaterina Burmak 116 R Anthem of Champions @Chris Rallis 117 R Ashroot Animist @Caio Monteiro +120 U Fiendish Panda @Brian Valeza 121 R Koma, World-Eater @Mark Zug 122 R Kykar, Zephyr Awakener @Dmitry Burmak 123 M Niv-Mizzet, Visionary @Dan Murayama Scott +126 M Zimone, Paradox Sculptor @Nathaniel Himawan +127 R Banner of Kinship @Olena Richards 128 U Fishing Pole @Franz Vohwinkel 129 R Leyline Axe @Edgar Sánchez Hidalgo 132 R Scrawling Crawler @Miro Petrov +133 R Soulstone Sanctuary @Daniel Ljunggren 134 M Ajani, Caller of the Pride @D. Alexander Gregory 135 U Ajani's Pridemate @Kevin Sidharta -136 R Angel of Finality @Howard Lyon +136 U Angel of Finality @Howard Lyon 140 R Day of Judgment @Vincent Proce 141 R Giada, Font of Hope @Kai Carpenter 146 U Savannah Lions @Winona Nelson 147 U Serra Angel @Greg Staples 148 U Stroke of Midnight @Julia Metzger +149 U Youthful Valkyrie @Anna Steinbauer 151 U Aetherize @Alexandre Honoré +152 U Brineborn Cutthroat @Caio Monteiro +153 U Essence Scatter @Josh Hass 154 R Extravagant Replication @Pauline Voss 156 U Imprisoned in the Moon @Ryan Alexander Lee 157 C Lightshell Duo @Mariah Tekulve @@ -84,8 +104,11 @@ ScryfallCode=FDN 160 U An Offer You Can't Refuse @Dallas Williams 161 M Omniscience @Jason Chan 163 U Self-Reflection @Henry Peters +164 U Spectral Sailor @Cristi Balanescu 165 C Think Twice @Anthony Francisco 166 R Time Stop @Scott M. Fischer +167 C Tolarian Terror @Vincent Christiaens +173 U Exsanguinate @Marie Magny 175 U Hero's Downfall @Chris Rallis 176 M Liliana, Dreadhorde General @Chris Rallis 179 R Painful Quandary @David Palumbo @@ -93,31 +116,44 @@ ScryfallCode=FDN 182 U Reassembling Skeleton @Austin Hsu 185 U Stromkirk Bloodthief @Caroline Gariba 187 U Zombify @Jason A. Engle +188 U Abrade @Jonas De Ro +190 R Brass's Bounty @Grzegorz Rutkowski 192 C Burst Lightning @Vance Kovacs 194 R Etali, Primal Storm @Raymond Swanland 197 U Firespitter Whelp @Brooklyn Smith +198 R Flamewake Phoenix @Min Yum 201 U Heartfire Immolator @Donato Giancola 202 U Hidetsugu's Second Rite @Ben Hill +204 R Krenko, Mob Boss @Lie Setiawan 205 U Seismic Rupture @Jason A. Engle 206 U Shivan Dragon @Donato Giancola 207 R Slagstorm @Dan Murayama Scott 213 U Blanchwood Armor @Manuel Castañón 216 M Doubling Season @Chuck Lukacs +217 U Dwynen, Gilt-Leaf Daen @Johannes Voss 219 R Elvish Archdruid @Karl Kopinski +221 R Genesis Wave @Arif Wijaya +222 R Ghalta, Primal Hunger @Chase Stone 223 C Giant Growth @Matt Cavotta 227 C Llanowar Elves @Kev Walker +228 U Mild-Mannered Librarian @Justyna Dura 229 U Nessian Hornbeetle @Jason Felix 230 U Overrun @Carl Critchlow 232 R Scavenging Ooze @Austin Hsu 234 M Vivien Reid @Anna Steinbauer +236 U Wildwood Scourge @Bryan Sola 237 U Balmor, Battlemage Captain @Bram Sels 238 R Consuming Aberration @Karl Kopinski 239 U Empyrean Eagle @Jason A. Engle +241 U Heroic Reinforcements @Scott Murphy 243 M Muldrotha, the Gravetide @Jason Rainville 244 M Progenitus @Jaime Jones +246 R Swiftblade Vindicator @Viktor Titov 247 U Tatyova, Benthic Druid @Mathias Kollros +248 R Thousand-Year Storm @Dimitar Marinski 249 U Adventuring Gear @Howard Lyon 255 U Juggernaut @Kev Walker +256 U Meteor Golem @Lake Hurwitz 257 R Solemn Simulacrum @Dan Murayama Scott 258 U Swiftfoot Boots @Svetlin Velinov 264 U Rogue's Passage @Christine Choi @@ -141,14 +177,20 @@ ScryfallCode=FDN 289 L Mountain @Salvatorre Zee Yazzie 290 L Forest @Sam Burley 291 L Forest @Piotr Dura +292 M Sire of Seven Deaths @Alexander Mokhov 293 U Ajani's Pridemate @Chris Rallis 294 R Arahbo, the First Fang @Chris Rahn +295 R Celestial Armor @José Parodi 296 R Crystal Barricade @Alayna Danner 297 R Exemplar of Light @Chris Rahn 298 R Giada, Font of Hope @Scott M. Fischer 299 M Herald of Eternal Dawn @PINDURSKI +300 R Raise the Past @Jorge Jacinto 302 M Valkyrie's Call @Julie Dillon +303 U Youthful Valkyrie @Néstor Ossandón Leal 304 R Archmage of Runes @Zoltan Boros +305 R Curator of Destinies @Alayna Danner +306 R Drake Hatcher @Zoltan Boros 307 R High Fae Trickster @Arif Wijaya 308 R Homunculus Horde @Filipe Pagliuso 310 R Lunar Insight @Julie Dillon @@ -157,22 +199,30 @@ ScryfallCode=FDN 313 C Refute @Monztre 314 M Sphinx of Forgotten Lore @Chuck Lukacs 315 C Think Twice @Alix Branwyn +317 R Blasphemous Edict @Dmitry Burmak 318 M Bloodthirsty Conqueror @Alexander Mokhov +320 R High-Society Hunter @Aaron J. Riley 321 R Nine-Lives Familiar @Xabi Gaztelua 322 R Phyrexian Arena @Andrey Kuzinskiy 324 R Tinybones, Bauble Burglar @Rudy Siswanto 326 R Zul Ashur, Lich Lord @PINDURSKI +327 U Abrade @Tyler Walpole 328 R Electroduplicate @Andrew Mar 330 R Kellan, Planar Trailblazer @Aaron J. Riley 332 R Searslicer Goblin @Arif Wijaya 333 M Twinflame Tyrant @Justin Gerard +334 R Genesis Wave @Liiga Smilshkalne +335 R Ghalta, Primal Hunger @Justin Gerard 337 R Mossborn Hydra @Monztre +338 R Preposterous Proportions @Filipe Pagliuso +342 R Sylvan Scavenging @Quintin Gleim 343 R Alesha, Who Laughs at Fate @Dmitry Burmak 344 R Anthem of Champions @Ryan Pancoast 345 R Ashroot Animist @Lie Setiawan 347 R Koma, World-Eater @Néstor Ossandón Leal 348 R Kykar, Zephyr Awakener @Zezhou Chen 350 M Niv-Mizzet, Visionary @Raymond Swanland +351 M Zimone, Paradox Sculptor @Raluca Marinescu 352 R Banner of Kinship @Chris Seaman 353 R Leyline Axe @Julian Kok Joon Wen 354 R Scrawling Crawler @Maxime Minard @@ -182,19 +232,23 @@ ScryfallCode=FDN 359 M Liliana, Dreadhorde General @Dmitry Burmak 360 M Chandra, Flameshaper @Lie Setiawan 361 M Vivien Reid @Zara Alfonso +362 M Sire of Seven Deaths @Alexander Mokhov 363 R Arahbo, the First Fang @Chris Rahn +364 R Celestial Armor @Olena Richards 365 R Crystal Barricade @Alayna Danner 366 R Exemplar of Light @Chris Rahn 367 R Giada, Font of Hope @Scott M. Fischer 368 M Herald of Eternal Dawn @PINDURSKI 371 M Valkyrie's Call @Julie Dillon 372 R Archmage of Runes @Zoltan Boros +373 R Curator of Destinies @Alayna Danner 375 R High Fae Trickster @Arif Wijaya 376 R Homunculus Horde @Filipe Pagliuso 378 R Lunar Insight @Julie Dillon 379 M Omniscience @Dominik Mayer 380 M Sphinx of Forgotten Lore @Chuck Lukacs 383 M Bloodthirsty Conqueror @Alexander Mokhov +384 R High-Society Hunter @Aaron J. Riley 385 R Nine-Lives Familiar @Xabi Gaztelua 386 R Phyrexian Arena @Andrey Kuzinskiy 388 R Tinybones, Bauble Burglar @Rudy Siswanto @@ -203,12 +257,15 @@ ScryfallCode=FDN 392 R Kellan, Planar Trailblazer @Aaron J. Riley 394 R Searslicer Goblin @Arif Wijaya 395 M Twinflame Tyrant @Justin Gerard +397 R Ghalta, Primal Hunger @Justin Gerard 399 R Mossborn Hydra @Monztre +400 R Preposterous Proportions @Filipe Pagliuso 404 R Alesha, Who Laughs at Fate @Dmitry Burmak 405 R Anthem of Champions @Ryan Pancoast 406 R Ashroot Animist @Lie Setiawan -409 R Kykar, Zephyr Awakener +409 R Kykar, Zephyr Awakener @Zezhou Chen 411 M Niv-Mizzet, Visionary @Raymond Swanland +413 R Banner of Kinship @Chris Seaman 414 R Leyline Axe @Julian Kok Joon Wen 415 R Scrawling Crawler @Maxime Minard 417 M Ajani, Caller of the Pride @Victor Adame Minguez @@ -224,20 +281,26 @@ ScryfallCode=FDN 427 M Twinflame Tyrant @Mikio Masuda 428 M Doubling Season @Kawasumi 429 M Llanowar Elves @Hisashi Momose -430 M Muldrotha, the Gravetide @Kera +430 M Muldrotha, the Gravetide @KERA 431 M Progenitus @Sansyu 438 M Doubling Season @Kawasumi 442 R Arahbo, the First Fang @Simon Dominic +443 R Celestial Armor @Olena Richards 444 R Crystal Barricade @Rockey Chen 445 R Exemplar of Light @Ekaterina Burmak 446 M Herald of Eternal Dawn @Martina Fačková +447 R Raise the Past @Nathaniel Himawan 449 M Valkyrie's Call @Scott Murphy 450 R Archmage of Runes @Kai Carpenter +451 R Curator of Destinies @Ralph Horsley +452 R Drake Hatcher @Chris Rallis 453 R High Fae Trickster @Justyna Dura 454 R Homunculus Horde @Adrián Rodríguez Pérez 456 R Lunar Insight @Dan Murayama Scott 457 M Sphinx of Forgotten Lore @Dmitry Burmak +459 R Blasphemous Edict @Andrew Mar 460 M Bloodthirsty Conqueror @Dmitry Burmak +461 R High-Society Hunter @Daneen Wilkerson 462 R Nine-Lives Familiar @Bram Sels 463 R Tinybones, Bauble Burglar @Leonardo Santanna 464 R Zul Ashur, Lich Lord @Raluca Marinescu @@ -246,11 +309,13 @@ ScryfallCode=FDN 468 R Searslicer Goblin @Wayne Reynolds 469 M Twinflame Tyrant @Xabi Gaztelua 471 R Mossborn Hydra @Monztre +472 R Preposterous Proportions @Ben Wootten 476 R Alesha, Who Laughs at Fate @Ekaterina Burmak 477 R Anthem of Champions @Chris Rallis 478 R Ashroot Animist @Caio Monteiro 481 R Kykar, Zephyr Awakener @Dmitry Burmak 482 M Niv-Mizzet, Visionary @Dan Murayama Scott +483 M Zimone, Paradox Sculptor @Nathaniel Himawan 484 R Banner of Kinship @Olena Richards 485 R Leyline Axe @Edgar Sánchez Hidalgo 486 R Scrawling Crawler @Miro Petrov @@ -274,135 +339,135 @@ ScryfallCode=FDN 564 C Uncharted Haven @Adam Paquette 565 M Angelic Destiny @Jana Schirmer & Johannes Voss 566 U Archway Angel @Milivoj Ćeran -567 C Ballyrush Banneret -568 R Charming Prince -569 C Crusader of Odric -570 U Dawnwing Marshal +567 C Ballyrush Banneret @Ralph Horsley +568 R Charming Prince @Randy Vargas +569 C Crusader of Odric @Michael Komarck +570 U Dawnwing Marshal @Aldo Domínguez 571 U Devout Decree @Zoltan Boros 572 C Disenchant @Richard Kane Ferguson -573 C Felidar Cub -574 R Felidar Retreat -575 R Fumigate -576 U Knight of Grace -577 R Linden, the Steadfast Queen -578 R Mentor of the Meek -579 R Regal Caracal -580 U Release the Dogs -581 U Stasis Snare -582 U Syr Alin, the Lion's Claw -583 U Valorous Stance -584 R Zetalpa, Primal Dawn +573 C Felidar Cub @Steve Prescott +574 R Felidar Retreat @Ralph Horsley +575 R Fumigate @Svetlin Velinov +576 U Knight of Grace @Sidharth Chaturvedi +577 R Linden, the Steadfast Queen @Ryan Pancoast +578 R Mentor of the Meek @Jana Schirmer & Johannes Voss +579 R Regal Caracal @Filip Burburan +580 U Release the Dogs @Jason Kang +581 U Stasis Snare @Jason Felix +582 U Syr Alin, the Lion's Claw @Paul Scott Canavan +583 U Valorous Stance @Willian Murai +584 R Zetalpa, Primal Dawn @Chris Rallis 585 R Arcanis the Omnipotent @Justin Sweet -586 U Chart a Course -587 R Dictate of Kruphix -588 C Dive Down -589 M Finale of Revelation +586 U Chart a Course @James Ryman +587 R Dictate of Kruphix @Daarken +588 C Dive Down @Magali Villeneuve +589 M Finale of Revelation @Johann Bodin 590 U Flashfreeze @Brian Despain -591 U Fog Bank -592 U Gateway Sneak -593 R Harbinger of the Tides +591 U Fog Bank @Howard Lyon +592 U Gateway Sneak @Matt Stewart +593 R Harbinger of the Tides @Svetlin Velinov 594 U Mystical Teachings @Ron Spears -595 R River's Rebuke -596 U Shipwreck Dowser -597 M Sphinx of the Final Word -598 R Tempest Djinn +595 R River's Rebuke @Raymond Swanland +596 U Shipwreck Dowser @Caroline Gariba +597 M Sphinx of the Final Word @Lius Lasahido +598 R Tempest Djinn @Zezhou Chen 599 C Unsummon @Ron Spencer -600 R Voracious Greatshark +600 R Voracious Greatshark @Mathias Kollros 601 U Deathmark @Jeremy Jarvis 602 M Demonic Pact @Manuel Castañón -603 R Desecration Demon -604 R Dread Summons -605 C Driver of the Dead +603 R Desecration Demon @Jason Chan +604 R Dread Summons @Izzy +605 C Driver of the Dead @James Ryman 606 C Duress @PINDURSKI -607 R Kalastria Highborn -608 U Knight of Malice -609 R Midnight Reaper -610 R Myojin of Night's Reach -611 R Nullpriest of Oblivion -612 C Pulse Tracker -613 C Sanguine Indulgence -614 U Tribute to Hunger -615 U Vampiric Rites -616 U Vile Entomber -617 R Wishclaw Talisman +607 R Kalastria Highborn @D. Alexander Gregory +608 U Knight of Malice @Sidharth Chaturvedi +609 R Midnight Reaper @Sidharth Chaturvedi +610 R Myojin of Night's Reach @Kev Walker +611 R Nullpriest of Oblivion @Yongjae Choi +612 C Pulse Tracker @Andrew Robinson +613 C Sanguine Indulgence @Andrey Kuzinskiy +614 U Tribute to Hunger @Dave Kendall +615 U Vampiric Rites @Anastasia Ovchinnikova +616 U Vile Entomber @Chris Cold +617 R Wishclaw Talisman @Daarken 618 R Ball Lightning @Trevor Claxton -619 U Bolt Bend -620 C Crash Through -621 U Dragon Mage -622 M Dragonmaster Outcast -623 C Ghitu Lavarunner -624 U Giant Cindermaw +619 U Bolt Bend @Svetlin Velinov +620 C Crash Through @Izzy +621 U Dragon Mage @Matthew D. Wilson +622 M Dragonmaster Outcast @Raymond Swanland +623 C Ghitu Lavarunner @Jesper Ejsing +624 U Giant Cindermaw @Edgar Sánchez Hidalgo 625 R Harmless Offering @Howard Lyon -626 U Hoarding Dragon -627 R Lathliss, Dragon Queen +626 U Hoarding Dragon @Matt Cavotta +627 R Lathliss, Dragon Queen @Alex Konstad 628 U Mindsparker @Wayne Reynolds -629 U Obliterating Bolt -630 U Ravenous Giant -631 R Redcap Gutter-Dweller -632 R Stromkirk Noble -633 R Taurean Mauler -634 C Viashino Pyromancer -635 U Circuitous Route -636 C Fierce Empath -637 U Fynn, the Fangbearer -638 U Gnarlback Rhino -639 R Heroes' Bane +629 U Obliterating Bolt @Campbell White +630 U Ravenous Giant @Milivoj Ćeran +631 R Redcap Gutter-Dweller @Alexey Kruglov +632 R Stromkirk Noble @James Ryman +633 R Taurean Mauler @Dominick Domingo +634 C Viashino Pyromancer @Jesper Ejsing +635 U Circuitous Route @Milivoj Ćeran +636 C Fierce Empath @Johann Bodin +637 U Fynn, the Fangbearer @Lie Setiawan +638 U Gnarlback Rhino @YW Tang +639 R Heroes' Bane @Raymond Swanland 640 U Mold Adder @Matt Cavotta -641 U Ordeal of Nylea -642 R Predator Ooze -643 R Primal Might -644 M Primeval Bounty -645 R Rampaging Baloths -646 C Springbloom Druid -647 R Surrak, the Hunt Caller -648 U Venom Connoisseur -649 M Vizier of the Menagerie -650 R Wildborn Preserver +641 U Ordeal of Nylea @David Palumbo +642 R Predator Ooze @Ryan Yee +643 R Primal Might @Randy Vargas +644 M Primeval Bounty @Christine Choi +645 R Rampaging Baloths @Steve Prescott +646 C Springbloom Druid @Randy Gallegos +647 R Surrak, the Hunt Caller @Wesley Burt +648 U Venom Connoisseur @Marta Nael +649 M Vizier of the Menagerie @Victor Adame Minguez +650 R Wildborn Preserver @Lius Lasahido 651 M Aurelia, the Warleader @Slawomir Maniak 652 R Ayli, Eternal Pilgrim @Cynthia Sheppard 653 U Cloudblazer @Dan Murayama Scott -654 U Deadly Brew -655 R Drogskol Reaver -656 U Dryad Militant -657 U Enigma Drake -658 U Garna, Bloodfist of Keld +654 U Deadly Brew @Randy Vargas +655 R Drogskol Reaver @Vincent Proce +656 U Dryad Militant @Aaron J. Riley +657 U Enigma Drake @Steve Argyle +658 U Garna, Bloodfist of Keld @Andrey Kuzinskiy 659 R Halana and Alena, Partners @Jason Rainville -660 R Immersturm Predator +660 R Immersturm Predator @Nicholas Gregory 661 R Maelstrom Pulse @John Avon -662 U Mortify -663 R Ovika, Enigma Goliath -664 R Prime Speaker Zegana -665 U Savage Ventmaw -666 U Teach by Example -667 U Trygon Predator -668 R Wilt-Leaf Liege -669 R Basilisk Collar -670 R Cultivator's Caravan +662 U Mortify @Nils Hamm +663 R Ovika, Enigma Goliath @Antonio José Manzanedo +664 R Prime Speaker Zegana @Willian Murai +665 U Savage Ventmaw @Slawomir Maniak +666 U Teach by Example @Johan Grenier +667 U Trygon Predator @Carl Critchlow +668 R Wilt-Leaf Liege @Jason Chan +669 R Basilisk Collar @Craig J Spearing +670 R Cultivator's Caravan @Mark Zug 671 M Darksteel Colossus @Carl Critchlow -672 U Diamond Mare -673 U Feldon's Cane -674 U Fireshrieker -675 U Gate Colossus -676 R Mazemind Tome +672 U Diamond Mare @Alayna Danner +673 U Feldon's Cane @Warren Mahy +674 U Fireshrieker @Christopher Moeller +675 U Gate Colossus @Izzy +676 R Mazemind Tome @Randy Gallegos 677 M Pyromancer's Goggles @Kevin Sidharta -678 M Ramos, Dragon Engine +678 M Ramos, Dragon Engine @Joseph Meehan 679 U Sorcerous Spyglass @Kieran Yanner 680 U Soul-Guide Lantern @Iris Compiet -681 R Steel Hellkite -682 C Three Tree Mascot +681 R Steel Hellkite @Jaime Jones +682 C Three Tree Mascot @Gina Matarazzo 683 C Azorius Guildgate @Drew Baker -684 C Boros Guildgate -685 R Crawling Barrens -686 U Cryptic Caves -687 U Demolition Field -688 C Dimir Guildgate -689 C Golgari Guildgate -690 C Gruul Guildgate -691 C Izzet Guildgate -692 C Orzhov Guildgate -693 C Rakdos Guildgate -694 C Selesnya Guildgate -695 C Simic Guildgate +684 C Boros Guildgate @Titus Lunter +685 R Crawling Barrens @Jonas De Ro +686 U Cryptic Caves @Sung Choi +687 U Demolition Field @Kamila Szutenberg +688 C Dimir Guildgate @Cliff Childs +689 C Golgari Guildgate @Eytan Zana +690 C Gruul Guildgate @Randy Gallegos +691 C Izzet Guildgate @Kirsten Zirngibl +692 C Orzhov Guildgate @John Avon +693 C Rakdos Guildgate @Jonas De Ro +694 C Selesnya Guildgate @Dimitar Marinski +695 C Simic Guildgate @Svetlin Velinov 696 R Temple of Abandon @Adam Paquette 697 R Temple of Deceit @Jonas De Ro 698 R Temple of Enlightenment @Piotr Dura @@ -415,25 +480,25 @@ ScryfallCode=FDN 705 R Temple of Triumph @Piotr Dura 706 U Angel of Vitality @Johannes Voss 707 M Lyra Dawnbringer @Chris Rahn -708 U Make a Stand -709 U Confiscate +708 U Make a Stand @Magali Villeneuve +709 U Confiscate @Caroline Gariba 710 C Negate @Magali Villeneuve -711 R Rite of Replication -712 C Feed the Swarm -713 U Gatekeeper of Malakir -714 M Massacre Wurm -715 R Gratuitous Violence -716 U Guttersnipe -717 C Impact Tremors +711 R Rite of Replication @Matt Cavotta +712 C Feed the Swarm @Andrey Kuzinskiy +713 U Gatekeeper of Malakir @Karl Kopinski +714 M Massacre Wurm @Jason Chan +715 R Gratuitous Violence @Jesper Ejsing +716 U Guttersnipe @Andrey Kuzinskiy +717 C Impact Tremors @Lake Hurwitz 718 R Gigantosaurus @Loïc Canavaggia -719 U Imperious Perfect -720 U Pelakka Wurm -721 U Boros Charm -722 U Unflinching Courage +719 U Imperious Perfect @Scott M. Fischer +720 U Pelakka Wurm @Daniel Ljunggren +721 U Boros Charm @Zoltan Boros +722 U Unflinching Courage @Mike Bierek 723 R Adaptive Automaton @Igor Kieryluk -724 C Expedition Map +724 C Expedition Map @Franz Vohwinkel 725 R Gilded Lotus @Volkan Baǵa -726 U Hedron Archive -727 M Maze's End +726 U Hedron Archive @Craig J Spearing +727 M Maze's End @Cliff Childs 728 R Phyrexian Arena @Aaron J. Riley 729 R Solemn Simulacrum @Forrest Imel diff --git a/forge-gui/res/editions/Special Guests.txt b/forge-gui/res/editions/Special Guests.txt index b307ce252fa..12835e9f26f 100644 --- a/forge-gui/res/editions/Special Guests.txt +++ b/forge-gui/res/editions/Special Guests.txt @@ -85,13 +85,13 @@ ScryfallCode=SPG 71 M Unholy Heat @Josh Hass 72 M Collected Company @Borja Pindado 73 M Noxious Revival @Javier Charro -74 M Condemn -75 M Sphinx's Tutelage -76 M Grim Tutor +74 M Condemn @Rovina Cai +75 M Sphinx's Tutelage @Jason A. Engle +76 M Grim Tutor @DZO 77 M Embercleave @Wylie Beckert -78 M Goblin Bushwhacker -79 M Bloom Tender -80 M Paradise Druid -81 M Akroma's Memorial +78 M Goblin Bushwhacker @Dominik Mayer +79 M Bloom Tender @Julie Dillon +80 M Paradise Druid @Alex Dos Diaz +81 M Akroma's Memorial @Carly Mazur 82 M Temporal Manipulation @Raita Kazama -83 M Fiend Artisan +83 M Fiend Artisan @Carl Critchlow