diff --git a/forge-ai/src/main/java/forge/ai/SpellApiToAi.java b/forge-ai/src/main/java/forge/ai/SpellApiToAi.java index 1360ce926f1..19657159607 100644 --- a/forge-ai/src/main/java/forge/ai/SpellApiToAi.java +++ b/forge-ai/src/main/java/forge/ai/SpellApiToAi.java @@ -163,6 +163,7 @@ public enum SpellApiToAi { .put(ApiType.Sacrifice, SacrificeAi.class) .put(ApiType.SacrificeAll, SacrificeAllAi.class) .put(ApiType.Scry, ScryAi.class) + .put(ApiType.Seek, AlwaysPlayAi.class) .put(ApiType.SetInMotion, AlwaysPlayAi.class) .put(ApiType.SetLife, LifeSetAi.class) .put(ApiType.SetState, SetStateAi.class) 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 91663dc0f76..caf567a5066 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java @@ -166,7 +166,13 @@ public class AbilityUtils { if (defined.startsWith("TopThird")) { int third = defined.contains("RoundedDown") ? (int) Math.floor(libSize / 3.0) : (int) Math.ceil(libSize / 3.0); - for (int i=0; i seekTypes = Lists.newArrayList(); + if (sa.hasParam("Types")) { + seekTypes.addAll(Arrays.asList(sa.getParam("Types").split(","))); + } else { + seekTypes.add(sa.getParamOrDefault("Type", "Card")); + } + + int seekNum = AbilityUtils.calculateAmount(source, sa.getParamOrDefault("Num", "1"), sa); + if (seekNum <= 0) { + return; + } + + final CardZoneTable triggerList = new CardZoneTable(); + CardCollectionView lastStateBattlefield = game.copyLastStateBattlefield(); + CardCollectionView lastStateGraveyard = game.copyLastStateGraveyard(); + + for (Player seeker : getTargetPlayers(sa)) { + if (!seeker.isInGame()) { + continue; + } + + CardCollection soughtCards = new CardCollection(); + + for (String seekType : seekTypes) { + CardCollection pool; + if (sa.hasParam("DefinedCards")) { + pool = AbilityUtils.getDefinedCards(source, sa.getParam("DefinedCards"), sa); + } else { + pool = new CardCollection(seeker.getCardsIn(ZoneType.Library)); + } + if (!seekType.equals("Card")) { + pool = CardLists.getValidCards(pool, seekType, source.getController(), source, sa); + } + if (pool.isEmpty()) { + continue; // can't find if nothing to seek + } + + for (final Card c : Aggregates.random(pool, seekNum)) { + + Map moveParams = AbilityKey.newMap(); + moveParams.put(AbilityKey.LastStateBattlefield, lastStateBattlefield); + moveParams.put(AbilityKey.LastStateGraveyard, lastStateGraveyard); + Card movedCard = game.getAction().moveToHand(c, sa, moveParams); + ZoneType resultZone = movedCard.getZone().getZoneType(); + if (!resultZone.equals(ZoneType.Library)) { // as long as it moved we add to triggerList + triggerList.put(ZoneType.Library, movedCard.getZone().getZoneType(), movedCard); + } + if (resultZone.equals(ZoneType.Hand)) { // if it went to hand as planned, consider it "sought" + soughtCards.add(movedCard); + } + + } + } + if (!soughtCards.isEmpty()) { + if (sa.hasParam("RememberFound")) { + source.addRemembered(soughtCards); + } + if (sa.hasParam("ImprintFound")) { + source.addImprintedCards(soughtCards); + } + game.getTriggerHandler().runTrigger(TriggerType.SeekAll, AbilityKey.mapFromPlayer(seeker), false); + } + } + triggerList.triggerChangesZoneAll(game, sa); + } +} diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerSeekAll.java b/forge-game/src/main/java/forge/game/trigger/TriggerSeekAll.java new file mode 100644 index 00000000000..c1471c5f549 --- /dev/null +++ b/forge-game/src/main/java/forge/game/trigger/TriggerSeekAll.java @@ -0,0 +1,36 @@ +package forge.game.trigger; + +import forge.game.ability.AbilityKey; +import forge.game.card.Card; +import forge.game.spellability.SpellAbility; +import forge.util.Localizer; + +import java.util.Map; + +public class TriggerSeekAll extends Trigger { + + public TriggerSeekAll(Map params, Card host, boolean intrinsic) { + super(params, host, intrinsic); + } + + @Override + public boolean performTest(Map runParams) { + if (!matchesValidParam("ValidPlayer", runParams.get(AbilityKey.Player))) { + return false; + } + return true; + } + + @Override + public void setTriggeringObjects(SpellAbility sa, Map runParams) { + sa.setTriggeringObjectsFrom(runParams, AbilityKey.Player); + } + + @Override + public String getImportantStackObjects(SpellAbility sa) { + StringBuilder sb = new StringBuilder(); + sb.append(Localizer.getInstance().getMessage("lblPlayer")).append(": "); + sb.append(sa.getTriggeringObject(AbilityKey.Player)); + return sb.toString(); + } +} diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerType.java b/forge-game/src/main/java/forge/game/trigger/TriggerType.java index 50dc144c509..7faf2776c9e 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerType.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerType.java @@ -104,6 +104,7 @@ public enum TriggerType { Sacrificed(TriggerSacrificed.class), Scry(TriggerScry.class), SearchedLibrary(TriggerSearchedLibrary.class), + SeekAll(TriggerSeekAll.class), SetInMotion(TriggerSetInMotion.class), Shuffled(TriggerShuffled.class), Specializes(TriggerSpecializes.class), diff --git a/forge-gui/res/cardsfolder/a/artillery_enthusiast.txt b/forge-gui/res/cardsfolder/a/artillery_enthusiast.txt index b9c2a21c66d..d793620cef5 100644 --- a/forge-gui/res/cardsfolder/a/artillery_enthusiast.txt +++ b/forge-gui/res/cardsfolder/a/artillery_enthusiast.txt @@ -4,7 +4,7 @@ Types:Creature Goblin Artificer PT:1/2 S:Mode$ Continuous | Affected$ Creature.modified+YouCtrl | AddKeyword$ Menace | Description$ Modified creatures you control have menace. T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigSeek | TriggerDescription$ When CARDNAME enters the battlefield, you may discard a card. If you do, seek a card with mana value equal to that card's mana value. -SVar:TrigSeek:AB$ ChangeZone | Cost$ Discard<1/Card> | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeType$ Card.cmcEQX | ChangeNum$ 1 +SVar:TrigSeek:AB$ Seek | Cost$ Discard<1/Card> | Type$ Card.cmcEQX SVar:X:Discarded$CardManaCost DeckHas:Ability$Discard & Keyword$Menace DeckHints:Type$Equipment|Aura & Ability$Counters diff --git a/forge-gui/res/cardsfolder/b/back_alley_gardener.txt b/forge-gui/res/cardsfolder/b/back_alley_gardener.txt index 47ced49c724..b4cd36ba725 100644 --- a/forge-gui/res/cardsfolder/b/back_alley_gardener.txt +++ b/forge-gui/res/cardsfolder/b/back_alley_gardener.txt @@ -3,6 +3,8 @@ ManaCost:R G W Types:Creature Elf Druid PT:3/4 T:Mode$ ChangesZoneAll | ValidCards$ Creature.Other+YouCtrl | Destination$ Battlefield | TriggerZones$ Battlefield | ActivationLimit$ 1 | Execute$ TrigSeek | TriggerDescription$ Alliance — Whenever one or more other creatures enter the battlefield under your control, seek a land card, then put it onto the battlefield tapped. This ability triggers only once each turn. -SVar:TrigSeek:DB$ ChangeZone | Origin$ Library | Destination$ Battlefield | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeType$ Land | ChangeNum$ 1 | Tapped$ True +SVar:TrigSeek:DB$ Seek | Type$ Land | RememberFound$ True | SubAbility$ DBPut +SVar:DBPut:DB$ ChangeZone | Origin$ Hand | Destination$ Battlefield | Defined$ Remembered | Tapped$ True | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:BuffedBy:Creature Oracle:Alliance — Whenever one or more other creatures enter the battlefield under your control, seek a land card, then put it onto the battlefield tapped. This ability triggers only once each turn. diff --git a/forge-gui/res/cardsfolder/b/bounty_of_the_deep.txt b/forge-gui/res/cardsfolder/b/bounty_of_the_deep.txt index 2ab88fd98f3..52dcc846b62 100644 --- a/forge-gui/res/cardsfolder/b/bounty_of_the_deep.txt +++ b/forge-gui/res/cardsfolder/b/bounty_of_the_deep.txt @@ -1,9 +1,8 @@ Name:Bounty of the Deep ManaCost:2 U Types:Sorcery -A:SP$ Branch | BranchConditionSVar$ X | BranchConditionSVarCompare$ GE1 | TrueSubAbility$ Seek2NonLand | FalseSubAbility$ Seek1Land | StackDescription$ SpellDescription | SpellDescription$ If you have no land cards in your hand, seek a land card and a nonland card. Otherwise, seek two nonland cards. -SVar:Seek1Land:DB$ ChangeZone | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeType$ Card.Land | ChangeNum$ 1 | SubAbility$ Seek1NonLand -SVar:Seek1NonLand:DB$ ChangeZone | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeType$ Card.nonLand | ChangeNum$ 1 -SVar:Seek2NonLand:DB$ ChangeZone | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeType$ Card.nonLand | ChangeNum$ 2 +A:SP$ Branch | BranchConditionSVar$ X | BranchConditionSVarCompare$ GE1 | TrueSubAbility$ Seek2 | FalseSubAbility$ Seek1 | StackDescription$ SpellDescription | SpellDescription$ If you have no land cards in your hand, seek a land card and a nonland card. Otherwise, seek two nonland cards. +SVar:Seek1:DB$ Seek | Types$ Card.Land,Card.nonLand +SVar:Seek2:DB$ Seek | Type$ Card.nonLand | Num$ 2 SVar:X:Count$ValidHand Land.YouCtrl Oracle:If you have no land cards in your hand, seek a land card and a nonland card. Otherwise, seek two nonland cards. diff --git a/forge-gui/res/cardsfolder/c/cabaretti_revels.txt b/forge-gui/res/cardsfolder/c/cabaretti_revels.txt index aada0a675a4..c6ca583db19 100644 --- a/forge-gui/res/cardsfolder/c/cabaretti_revels.txt +++ b/forge-gui/res/cardsfolder/c/cabaretti_revels.txt @@ -2,7 +2,9 @@ Name:Cabaretti Revels ManaCost:R R G Types:Enchantment T:Mode$ SpellCast | ValidCard$ Creature | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigSeek | TriggerDescription$ Whenever you cast a creature spell, seek a creature card with lesser mana value, then put it onto the battlefield. -SVar:TrigSeek:DB$ ChangeZone | Origin$ Library | Destination$ Battlefield | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeNum$ 1 | ChangeType$ Creature.cmcLTX +SVar:TrigSeek:DB$ Seek | Type$ Creature.cmcLTX | RememberFound$ True | SubAbility$ DBPut +SVar:DBPut:DB$ ChangeZone | Origin$ Hand | Destination$ Battlefield | Defined$ Remembered | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:X:TriggeredCard$CardManaCost SVar:BuffedBy:Creature Oracle:Whenever you cast a creature spell, seek a creature card with lesser mana value, then put it onto the battlefield. diff --git a/forge-gui/res/cardsfolder/c/chaos_balor.txt b/forge-gui/res/cardsfolder/c/chaos_balor.txt index 36aaed72e2d..d114bbd77dc 100644 --- a/forge-gui/res/cardsfolder/c/chaos_balor.txt +++ b/forge-gui/res/cardsfolder/c/chaos_balor.txt @@ -5,9 +5,9 @@ PT:4/5 K:Flying T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigCharm | TriggerDescription$ Whenever CARDNAME attacks or dies, ABILITY T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigCharm | Secondary$ True | TriggerDescription$ Whenever CARDNAME attacks or dies, ABILITY -SVar:TrigCharm:DB$ Charm | CharmNum$ 2 | Choices$ DiscardSeek,DamageTreasures,DamagePump | AdditionalDescription$ Each mode must target a different player. -SVar:DiscardSeek:DB$ Discard | ValidTgts$ Player | TargetUnique$ True | TgtPrompt$ Select target player to discard hand and seek | Mode$ Hand | RememberDiscarded$ True | SubAbility$ DBSeek | SpellDescription$ Target player discards all cards in their hand, then seeks that many nonland cards. -SVar:DBSeek:DB$ ChangeZone | Defined$ ParentTarget | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeNum$ X | ChangeType$ Card.nonLand | SubAbility$ DBCleanup +SVar:TrigCharm:DB$ Charm | CharmNum$ 2 | Choices$ DiscardSeek,DamageTreasures,DamagePump | AdditionalDescription$ . Each mode must target a different player. +SVar:DiscardSeek:DB$ Discard | ValidTgts$ Player | TargetUnique$ True | Mode$ Hand | RememberDiscarded$ True | SubAbility$ DBSeek | SpellDescription$ Target player discards all cards in their hand, then seeks that many nonland cards. +SVar:DBSeek:DB$ Seek | Defined$ Targeted | Num$ X | Type$ Card.nonLand | SubAbility$ DBCleanup SVar:DamageTreasures:DB$ DealDamage | ValidTgts$ Player | TargetUnique$ True | TgtPrompt$ Select target player to take 2 damage and create two Treasures | NumDmg$ 2 | SubAbility$ DBToken | SpellDescription$ CARDNAME deals 2 damage to target player and they create two Treasure tokens. SVar:DBToken:DB$ Token | TokenScript$ c_a_treasure_sac | TokenAmount$ 2 | TokenOwner$ ParentTarget SVar:DamagePump:DB$ DamageAll | ValidTgts$ Player | TargetUnique$ True | NumDmg$ 2 | RememberDamaged$ True | ValidCards$ Creature | ValidDescription$ each creature target player controls. | SubAbility$ DBEffect | SpellDescription$ CARDNAME deals 2 damage to each creature target player controls. Those creatures perpetually get +2/+0. diff --git a/forge-gui/res/cardsfolder/c/choice_of_fortunes.txt b/forge-gui/res/cardsfolder/c/choice_of_fortunes.txt index d6d6d99ce6d..63a03e894b9 100644 --- a/forge-gui/res/cardsfolder/c/choice_of_fortunes.txt +++ b/forge-gui/res/cardsfolder/c/choice_of_fortunes.txt @@ -1,9 +1,9 @@ Name:Choice of Fortunes ManaCost:2 U Types:Sorcery -A:SP$ ChangeZone | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeType$ Card | ChangeNum$ 2 | RememberChanged$ True | SubAbility$ DBShuffle | StackDescription$ SpellDescription | SpellDescription$ Seek two cards. +A:SP$ Seek | Num$ 2 | RememberFound$ True | SubAbility$ DBShuffle | SpellDescription$ Seek two cards. SVar:DBShuffle:DB$ ChangeZone | Optional$ True | Defined$ Remembered | Origin$ Hand | Destination$ Library | Shuffle$ True | ForgetChanged$ True | SubAbility$ DBSeek | StackDescription$ SpellDescription | SpellDescription$ You may shuffle them into your library. -SVar:DBSeek:DB$ ChangeZone | ConditionDefined$ Remembered | ConditionPresent$ Card | ConditionCompare$ EQ0 | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeType$ Card | ChangeNum$ 2 | SubAbility$ DBCleanup | StackDescription$ SpellDescription | SpellDescription$ If you do, seek two cards. +SVar:DBSeek:DB$ Seek | ConditionDefined$ Remembered | ConditionPresent$ Card | ConditionCompare$ EQ0 | Num$ 2 | SubAbility$ DBCleanup | SpellDescription$ If you do, seek two cards. SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | SubAbility$ DBEffect SVar:DBEffect:DB$ Effect | StaticAbilities$ STHandSize | Duration$ Permanent | SpellDescription$ You have no maximum hand size for the rest of the game. SVar:STHandSize:Mode$ Continuous | EffectZone$ Command | Affected$ You | SetMaxHandSize$ Unlimited | Description$ You have no maximum hand size for the rest of the game. diff --git a/forge-gui/res/cardsfolder/c/crucias_titan_of_the_waves.txt b/forge-gui/res/cardsfolder/c/crucias_titan_of_the_waves.txt index c591e6c6eb7..c8457f3e633 100644 --- a/forge-gui/res/cardsfolder/c/crucias_titan_of_the_waves.txt +++ b/forge-gui/res/cardsfolder/c/crucias_titan_of_the_waves.txt @@ -5,8 +5,8 @@ PT:3/3 T:Mode$ Phase | Phase$ End of Turn | OptionalDecider$ You | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ At the beginning of your end step, you may discard a card. If you do, create a Treasure token and choose ambitious or expedient. If you chose ambitious, seek a card with greater mana value than the discarded card. If you chose expedient, seek a card with lesser mana value than the discarded card. SVar:TrigToken:AB$ Token | Cost$ Discard<1/Card> | TokenScript$ c_a_treasure_sac | SubAbility$ DBChoose SVar:DBChoose:DB$ GenericChoice | Choices$ Ambitious,Expedient | Defined$ You | AILogic$ Random -SVar:Ambitious:DB$ ChangeZone | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeType$ Card.cmcGTX | ChangeNum$ 1 | SpellDescription$ Ambitious - Seek a card with greater mana value than the discarded card. -SVar:Expedient:DB$ ChangeZone | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeType$ Card.cmcLTX | ChangeNum$ 1 | SpellDescription$ Expedient - Seek a card with lesser mana value than the discarded card. +SVar:Ambitious:DB$ Seek | Type$ Card.cmcGTX | SpellDescription$ Ambitious - Seek a card with greater mana value than the discarded card. +SVar:Expedient:DB$ Seek | Type$ Card.cmcLTX | SpellDescription$ Expedient - Seek a card with lesser mana value than the discarded card. DeckHas:Ability$Sacrifice|Token|Discard & Type$Treasure|Artifact SVar:X:Discarded$CardManaCost Oracle:At the beginning of your end step, you may discard a card. If you do, create a Treasure token and choose ambitious or expedient. If you chose ambitious, seek a card with greater mana value than the discarded card. If you chose expedient, seek a card with lesser mana value than the discarded card. diff --git a/forge-gui/res/cardsfolder/d/darigaazs_whelp.txt b/forge-gui/res/cardsfolder/d/darigaazs_whelp.txt index f1bc1b38f12..385ed7efeb2 100644 --- a/forge-gui/res/cardsfolder/d/darigaazs_whelp.txt +++ b/forge-gui/res/cardsfolder/d/darigaazs_whelp.txt @@ -8,7 +8,7 @@ T:Mode$ Drawn | ValidCard$ Card.YouOwn+Dragon | TriggerZones$ Battlefield | Exec SVar:DBEffect:DB$ Effect | StaticAbilities$ PerpetualP1P1 | RememberObjects$ TriggeredCard | Name$ Darigaaz's Whelp's Perpetual Effect | Duration$ Permanent SVar:PerpetualP1P1:Mode$ Continuous | Affected$ Card.IsRemembered | AddPower$ 1 | AddToughness$ 1 | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This card perpetually gets +1/+1. T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self+kicked | Execute$ TrigSeek | TriggerDescription$ When this creature enters the battlefield, if it was kicked, seek a Dragon card. CARDNAME and that Dragon card each perpetually get +1/+1. -SVar:TrigSeek:DB$ ChangeZone | RememberChanged$ True | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeType$ Card.Dragon | SubAbility$ DBEffectBis +SVar:TrigSeek:DB$ Seek | RememberFound$ True | Type$ Card.Dragon | SubAbility$ DBEffectBis SVar:DBEffectBis:DB$ Effect | StaticAbilities$ PerpetualP1P1Bis | RememberObjects$ Remembered | Name$ Darigaaz's Whelp's Perpetual Effect | Duration$ Permanent | SubAbility$ DBCleanup SVar:PerpetualP1P1Bis:Mode$ Continuous | Affected$ Card.IsRemembered,Card.EffectSource | AddPower$ 1 | AddToughness$ 1 | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ CARDNAME and the conjured Dragon card each perpetually get +1/+1. SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True diff --git a/forge-gui/res/cardsfolder/d/diviner_of_fates.txt b/forge-gui/res/cardsfolder/d/diviner_of_fates.txt index 9e20ef971f6..e923d4009b5 100644 --- a/forge-gui/res/cardsfolder/d/diviner_of_fates.txt +++ b/forge-gui/res/cardsfolder/d/diviner_of_fates.txt @@ -5,6 +5,6 @@ PT:2/1 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigConnive | TriggerDescription$ When CARDNAME enters the battlefield, it connives. (Draw a card, then discard a card. If you discarded a nonland card, put a +1/+1 counter on this creature.) SVar:TrigConnive:DB$ Connive T:Mode$ DiscardedAll | ValidPlayer$ You | ValidCard$ Card | TriggerZones$ Battlefield | Execute$ TrigSeek | ActivationLimit$ 1 | TriggerDescription$ Whenever you discard one or more cards, seek a card that shares a card type with one of the discarded cards. This ability triggers only once each turn. -SVar:TrigSeek:DB$ ChangeZone | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeType$ Card.sharesCardTypeWith TriggeredCards | ChangeNum$ 1 +SVar:TrigSeek:DB$ Seek | Type$ Card.sharesCardTypeWith TriggeredCards DeckHas:Ability$Discard|Counters Oracle:When Diviner of Fates enters the battlefield, it connives.\nWhenever you discard one or more cards, seek a card that shares a card type with one of the discarded cards. This ability triggers only once each turn. diff --git a/forge-gui/res/cardsfolder/f/faceless_agent.txt b/forge-gui/res/cardsfolder/f/faceless_agent.txt index 0176922a7ca..fcf085d3150 100644 --- a/forge-gui/res/cardsfolder/f/faceless_agent.txt +++ b/forge-gui/res/cardsfolder/f/faceless_agent.txt @@ -4,5 +4,5 @@ Types:Creature Shapeshifter PT:2/2 K:Changeling T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigSeek | TriggerDescription$ When CARDNAME enters the battlefield, seek a creature card of the most prevalent creature type in your library. -SVar:TrigSeek:DB$ ChangeZone | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeType$ Card.Creature+MostProminentCreatureTypeInLibrary | ChangeNum$ 1 +SVar:TrigSeek:DB$ Seek | Type$ Card.Creature+MostProminentCreatureTypeInLibrary Oracle:Changeling\nWhen Faceless Agent enters the battlefield, seek a creature card of the most prevalent creature type in your library. diff --git a/forge-gui/res/cardsfolder/f/frenzied_geistblaster.txt b/forge-gui/res/cardsfolder/f/frenzied_geistblaster.txt index c8fe1a00c19..b3382b76048 100644 --- a/forge-gui/res/cardsfolder/f/frenzied_geistblaster.txt +++ b/forge-gui/res/cardsfolder/f/frenzied_geistblaster.txt @@ -3,10 +3,9 @@ ManaCost:1 R Types:Creature Human Wizard PT:2/2 K:Prowess -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | CheckSVar$ Z | SVarCompare$ GE20 | Execute$ TrigSeek | TriggerDescription$ When CARDNAME enters the battlefield, if there are twenty or more instant and/or sorcery cards among cards in your graveyard, hand, and library, you may discard a card. If you do, seek an instant or sorcery card. -SVar:TrigSeek:AB$ ChangeZone | Cost$ Discard<1/Card> | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | NoLooking$ True | NoReveal$ True | ChangeNum$ 1 | ChangeType$ Instant,Sorcery -SVar:X:Count$ValidGraveyard Instant.YouOwn,Sorcery.YouOwn -SVar:Y:Count$ValidLibrary Instant.YouOwn,Sorcery.YouOwn/Plus.X -SVar:Z:Count$ValidHand Instant.YouOwn,Sorcery.YouOwn/Plus.Y +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | CheckSVar$ X | SVarCompare$ GE20 | Execute$ TrigSeek | TriggerDescription$ When CARDNAME enters the battlefield, if there are twenty or more instant and/or sorcery cards among cards in your graveyard, hand, and library, you may discard a card. If you do, seek an instant or sorcery card. +SVar:TrigSeek:AB$ Seek | Cost$ Discard<1/Card> | Type$ Instant,Sorcery +SVar:X:Count$ValidGraveyard,Library,Hand Instant.YouOwn,Sorcery.YouOwn DeckNeeds:Type$Instant|Sorcery +DeckHas:Ability$Discard Oracle:When Frenzied Geistblaster enters the battlefield, if there are twenty or more instant and/or sorcery cards among cards in your graveyard, hand, and library, you may discard a card. If you do, seek an instant or sorcery card. diff --git a/forge-gui/res/cardsfolder/f/freyalise_skyshroud_partisan.txt b/forge-gui/res/cardsfolder/f/freyalise_skyshroud_partisan.txt index 10b59c94cee..519629b03b8 100644 --- a/forge-gui/res/cardsfolder/f/freyalise_skyshroud_partisan.txt +++ b/forge-gui/res/cardsfolder/f/freyalise_skyshroud_partisan.txt @@ -7,7 +7,7 @@ SVar:DBRandom:DB$ ChooseCard | Defined$ You | Choices$ Elf.YouOwn | ChoiceZone$ SVar:DBEffect:DB$ Effect | RememberObjects$ Targeted | StaticAbilities$ PerpetualP1P1 | Name$ Freyalise, Skyshroud Partisan's Perpetual Effect | Duration$ Permanent | SubAbility$ DBCleanup SVar:PerpetualP1P1:Mode$ Continuous | Affected$ Card.IsRemembered,Card.ChosenCard | AddPower$ 1 | AddToughness$ 1 | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ The target Elf and randomly chosen card perpetually get +1/+1. SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True -A:AB$ ChangeZone | Cost$ SubCounter<1/LOYALTY> | Planeswalker$ True | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeType$ Card.Elf | ChangeNum$ 1 | StackDescription$ SpellDescription | SpellDescription$ Seek an Elf card. +A:AB$ Seek | Cost$ SubCounter<1/LOYALTY> | Planeswalker$ True | Type$ Card.Elf | StackDescription$ REP Seek_{p:You} seeks | SpellDescription$ Seek an Elf card. A:AB$ MakeCard | Conjure$ True | Cost$ SubCounter<6/LOYALTY> | Planeswalker$ True | Ultimate$ True | Name$ Regal Force | Zone$ Battlefield | SpellDescription$ Conjure a Regal Force card onto the battlefield. DeckNeeds:Type$Elf Oracle:[+1]: Choose up to one target Elf. Untap it. It and a random Elf creature card in your hand each perpetually gets +1/+1.\n[-1]: Seek an Elf card.\n[-6]: Conjure a Regal Force card onto the battlefield. diff --git a/forge-gui/res/cardsfolder/g/gate_of_the_black_dragon.txt b/forge-gui/res/cardsfolder/g/gate_of_the_black_dragon.txt index d21a5cad9f5..fea1821811f 100644 --- a/forge-gui/res/cardsfolder/g/gate_of_the_black_dragon.txt +++ b/forge-gui/res/cardsfolder/g/gate_of_the_black_dragon.txt @@ -2,7 +2,7 @@ Name:Gate of the Black Dragon ManaCost:no cost Types:Land Swamp Gate K:CARDNAME enters the battlefield tapped. -A:AB$ ChangeZone | Cost$ 3 B T | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeNum$ 1 | ChangeType$ Card.nonLand | GameActivationLimit$ 1 | StackDescription$ SpellDescription | SpellDescription$ Seek a nonland card. Activate only once. +A:AB$ Seek | Cost$ 3 B T | Type$ Card.nonLand | GameActivationLimit$ 1 | StackDescription$ {p:You} seeks a nonland card. | SpellDescription$ Seek a nonland card. Activate only once. Text:{T}: Add {B}. DeckHints:Type$Gate Oracle:Gate of the Black Dragon enters the battlefield tapped.\n{3}{B}, {T}: Seek a nonland card. Activate only once.\n{T}: Add {B}. diff --git a/forge-gui/res/cardsfolder/g/gate_to_manorborn.txt b/forge-gui/res/cardsfolder/g/gate_to_manorborn.txt index e490a6a0690..51425c00e89 100644 --- a/forge-gui/res/cardsfolder/g/gate_to_manorborn.txt +++ b/forge-gui/res/cardsfolder/g/gate_to_manorborn.txt @@ -2,7 +2,7 @@ Name:Gate to Manorborn ManaCost:no cost Types:Land Forest Gate K:CARDNAME enters the battlefield tapped. -A:AB$ ChangeZone | Cost$ 3 G T | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeNum$ 1 | ChangeType$ Card.nonLand | GameActivationLimit$ 1 | StackDescription$ SpellDescription | SpellDescription$ Seek a nonland card. Activate only once. +A:AB$ Seek | Cost$ 3 G T | Type$ Card.nonLand | GameActivationLimit$ 1 | StackDescription$ {p:You} seeks a nonland card. | SpellDescription$ Seek a nonland card. Activate only once. Text:{T}: Add {G}. DeckHints:Type$Gate Oracle:Gate to Manorborn enters the battlefield tapped.\n{3}{G}, {T}: Seek a nonland card. Activate only once.\n{T}: Add {G}. diff --git a/forge-gui/res/cardsfolder/g/gate_to_seatower.txt b/forge-gui/res/cardsfolder/g/gate_to_seatower.txt index a0a33c0ec23..b6046d7e99f 100644 --- a/forge-gui/res/cardsfolder/g/gate_to_seatower.txt +++ b/forge-gui/res/cardsfolder/g/gate_to_seatower.txt @@ -2,7 +2,7 @@ Name:Gate to Seatower ManaCost:no cost Types:Land Island Gate K:CARDNAME enters the battlefield tapped. -A:AB$ ChangeZone | Cost$ 3 U T | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeNum$ 1 | ChangeType$ Card.nonLand | GameActivationLimit$ 1 | StackDescription$ SpellDescription | SpellDescription$ Seek a nonland card. Activate only once. +A:AB$ Seek | Cost$ 3 U T | Type$ Card.nonLand | GameActivationLimit$ 1 | StackDescription$ {p:You} seeks a nonland card. | SpellDescription$ Seek a nonland card. Activate only once. Text:{T}: Add {U}. DeckHints:Type$Gate Oracle:Gate to Seatower enters the battlefield tapped.\n{3}{U}, {T}: Seek a nonland card. Activate only once.\n{T}: Add {U}. diff --git a/forge-gui/res/cardsfolder/g/gate_to_the_citadel.txt b/forge-gui/res/cardsfolder/g/gate_to_the_citadel.txt index 22319bdaf45..a95e8124bf7 100644 --- a/forge-gui/res/cardsfolder/g/gate_to_the_citadel.txt +++ b/forge-gui/res/cardsfolder/g/gate_to_the_citadel.txt @@ -2,7 +2,7 @@ Name:Gate to the Citadel ManaCost:no cost Types:Land Plains Gate K:CARDNAME enters the battlefield tapped. -A:AB$ ChangeZone | Cost$ 3 W T | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeNum$ 1 | ChangeType$ Card.nonLand | GameActivationLimit$ 1 | StackDescription$ SpellDescription | SpellDescription$ Seek a nonland card. Activate only once. +A:AB$ Seek | Cost$ 3 W T | Type$ Card.nonLand | GameActivationLimit$ 1 | StackDescription$ {p:You} seeks a nonland card. | SpellDescription$ Seek a nonland card. Activate only once. Text:{T}: Add {W}. DeckHints:Type$Gate Oracle:Gate to the Citadel enters the battlefield tapped.\n{3}{W}, {T}: Seek a nonland card. Activate only once.\n{T}: Add {W}. diff --git a/forge-gui/res/cardsfolder/g/gate_to_tumbledown.txt b/forge-gui/res/cardsfolder/g/gate_to_tumbledown.txt index 60c3065c7b3..879cfe74bb9 100644 --- a/forge-gui/res/cardsfolder/g/gate_to_tumbledown.txt +++ b/forge-gui/res/cardsfolder/g/gate_to_tumbledown.txt @@ -2,7 +2,7 @@ Name:Gate to Tumbledown ManaCost:no cost Types:Land Mountain Gate K:CARDNAME enters the battlefield tapped. -A:AB$ ChangeZone | Cost$ 3 R T | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeNum$ 1 | ChangeType$ Card.nonLand | GameActivationLimit$ 1 | StackDescription$ SpellDescription | SpellDescription$ Seek a nonland card. Activate only once. +A:AB$ Seek | Cost$ 3 R T | Type$ Card.nonLand | GameActivationLimit$ 1 | StackDescription$ {p:You} seeks a nonland card. | SpellDescription$ Seek a nonland card. Activate only once. Text:{T}: Add {R}. DeckHints:Type$Gate Oracle:Gate to Tumbledown enters the battlefield tapped.\n{3}{R}, {T}: Seek a nonland card. Activate only once.\n{T}: Add {R}. diff --git a/forge-gui/res/cardsfolder/g/geistpack_alpha.txt b/forge-gui/res/cardsfolder/g/geistpack_alpha.txt index c3a8bb214b0..8c17749238c 100644 --- a/forge-gui/res/cardsfolder/g/geistpack_alpha.txt +++ b/forge-gui/res/cardsfolder/g/geistpack_alpha.txt @@ -4,7 +4,7 @@ Types:Creature Wolf PT:5/4 K:Trample T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigSeek | TriggerDescription$ When CARDNAME dies, seek a permanent card with mana value equal to the number of lands you control. -SVar:TrigSeek:DB$ ChangeZone | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeType$ Card.Permanent+cmcEQX | ChangeNum$ 1 +SVar:TrigSeek:DB$ Seek | Type$ Card.Permanent+cmcEQX SVar:X:Count$Valid Land.YouCtrl SVar:NeedsToPlayVar:X GE4 SVar:BuffedBy:Land diff --git a/forge-gui/res/cardsfolder/g/ghitu_embercoiler.txt b/forge-gui/res/cardsfolder/g/ghitu_embercoiler.txt index 0949ee38930..14b47abef50 100644 --- a/forge-gui/res/cardsfolder/g/ghitu_embercoiler.txt +++ b/forge-gui/res/cardsfolder/g/ghitu_embercoiler.txt @@ -4,8 +4,9 @@ Types:Creature Human Wizard PT:2/2 K:Prowess T:Mode$ Phase | Phase$ Main1 | PreCombatMain$ True | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigSeek | TriggerDescription$ At the beginning of your precombat main phase, you may discard a card. If you do, seek a card with greater mana value and exile it. Until the end of your next turn, you may play the exiled card. -SVar:TrigSeek:AB$ ChangeZone | Cost$ Discard<1/Card> | Origin$ Library | Destination$ Exile | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeType$ Card.cmcGTX | ChangeNum$ 1 | RememberChanged$ True | SubAbility$ DBEffect +SVar:TrigSeek:AB$ Seek | Cost$ Discard<1/Card> | Type$ Card.cmcGTX | RememberFound$ True | SubAbility$ DBExile SVar:X:Discarded$CardManaCost +SVar:DBExile:DB$ ChangeZone | Origin$ Hand | Destination$ Exile | Defined$ Remembered | SubAbility$ DBEffect SVar:DBEffect:DB$ Effect | RememberObjects$ Remembered | StaticAbilities$ MayPlay | Duration$ UntilTheEndOfYourNextTurn | ForgetOnMoved$ Exile | SubAbility$ DBCleanup SVar:MayPlay:Mode$ Continuous | Affected$ Card.IsRemembered | MayPlay$ True | EffectZone$ Command | AffectedZone$ Exile | Description$ Until the end of your next turn, you may play the exiled card. SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True diff --git a/forge-gui/res/cardsfolder/g/gitrog_horror_of_zhava.txt b/forge-gui/res/cardsfolder/g/gitrog_horror_of_zhava.txt index 1d5b0f1adb3..155e1f3b6eb 100644 --- a/forge-gui/res/cardsfolder/g/gitrog_horror_of_zhava.txt +++ b/forge-gui/res/cardsfolder/g/gitrog_horror_of_zhava.txt @@ -4,11 +4,13 @@ Types:Legendary Creature Frog Horror PT:6/6 K:Menace T:Mode$ Phase | Phase$ BeginCombat | TriggerZones$ Battlefield | Execute$ TrigSac | IsPresent$ Card.Self+untapped | TriggerDescription$ At the beginning of each combat, if CARDNAME is untapped, any opponent may sacrifice a nontoken creature. If they do, tap CARDNAME, then seek a land card and put it onto the battlefield tapped. -SVar:TrigSac:DB$ Sacrifice | Defined$ Opponent | Amount$ 1 | SacValid$ Creature.nonToken | RememberSacrificed$ True | Optional$ True | AILogic$ DesecrationDemon | SubAbility$ DBTap -SVar:DBTap:DB$ Tap | Defined$ Self | ConditionCheckSVar$ X | ConditionSVarCompare$ GE1 | SubAbility$ DBSeek -SVar:DBSeek:DB$ ChangeZone | Origin$ Library | Destination$ Battlefield | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeType$ Land | ChangeNum$ 1 | ConditionCheckSVar$ X | ConditionSVarCompare$ GE1 | SubAbility$ DBCleanup -SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:TrigSac:DB$ Sacrifice | Defined$ Opponent | Amount$ 1 | SacValid$ Creature.nonToken | RememberSacrificed$ True | Optional$ True | AILogic$ DesecrationDemon | SubAbility$ DBBranch +SVar:DBBranch:DB$ Branch | BranchConditionSVar$ X | TrueSubAbility$ DBTap SVar:X:Remembered$Amount +SVar:DBTap:DB$ Tap | SubAbility$ DBSeek +SVar:DBSeek:DB$ Seek | Type$ Card.Land | ImprintFound$ True | SubAbility$ DBPut +SVar:DBPut:DB$ ChangeZone | Origin$ Hand | Destination$ Battlefield | Defined$ Imprinted | Tapped$ True | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Land.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigEffect | TriggerDescription$ Whenever a land enters the battlefield under your control, it perpetually gains "{B}{G}, {T}, Sacrifice this land: Draw a card." SVar:TrigEffect:DB$ Effect | RememberObjects$ TriggeredCard | StaticAbilities$ PerpetualStatic | Name$ Gitrog, Horror of Zhava's Perpetual Effect | Duration$ Permanent | SubAbility$ DBCleanup SVar:PerpetualStatic:Mode$ Continuous | Affected$ Card.IsRemembered | AddAbility$ PerpetualSacDraw | EffectZone$ All | Description$ This land card perpetually gains "{B}{G}, {T}, Sacrifice this land: Draw a card." diff --git a/forge-gui/res/cardsfolder/g/goblin_trapfinder.txt b/forge-gui/res/cardsfolder/g/goblin_trapfinder.txt index 4219a54d504..d04ac152795 100644 --- a/forge-gui/res/cardsfolder/g/goblin_trapfinder.txt +++ b/forge-gui/res/cardsfolder/g/goblin_trapfinder.txt @@ -3,7 +3,7 @@ ManaCost:R Types:Creature Goblin PT:1/1 T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ DBSeek | TriggerDescription$ When CARDNAME dies, seek a creature card with mana value 3 or less. That card perpetually gains haste, "This spell costs {1} less to cast," and "At the beginning of your end step, sacrifice this creature." -SVar:DBSeek:DB$ ChangeZone | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | NoLooking$ True | NoReveal$ True | ChangeNum$ 1 | ChangeType$ Creature.cmcLE3+YouOwn | RememberChanged$ True | SubAbility$ DBEffect +SVar:DBSeek:DB$ Seek | Type$ Creature.cmcLE3+YouOwn | RememberFound$ True | SubAbility$ DBEffect SVar:DBEffect:DB$ Effect | StaticAbilities$ PerpetualAbility | RememberObjects$ Remembered | Triggers$ Update | Name$ Goblin Trapfinder's Perpetual Effect | Duration$ Permanent SVar:PerpetualAbility:Mode$ Continuous | Affected$ Card.IsRemembered | AddTrigger$ TrigSac | AddStaticAbility$ PerpetualReduceCost | AddKeyword$ Haste | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ This card perpetually gains haste, "This spell costs {1} less to cast," and "At the beginning of your end step, sacrifice this creature." SVar:PerpetualReduceCost:Mode$ ReduceCost | ValidCard$ Card.Self | Type$ Spell | Amount$ 1 | EffectZone$ All | Description$ This spell costs {1} less to cast. diff --git a/forge-gui/res/cardsfolder/h/hollowhenge_wrangler.txt b/forge-gui/res/cardsfolder/h/hollowhenge_wrangler.txt index 89c7e495279..fbfe5a67c0f 100644 --- a/forge-gui/res/cardsfolder/h/hollowhenge_wrangler.txt +++ b/forge-gui/res/cardsfolder/h/hollowhenge_wrangler.txt @@ -3,6 +3,7 @@ ManaCost:3 G G Types:Creature Elemental PT:6/6 T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigSeek | TriggerDescription$ When CARDNAME enters the battlefield, seek a land card. -SVar:TrigSeek:DB$ ChangeZone | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeType$ Land | ChangeNum$ 1 +SVar:TrigSeek:DB$ Seek | Type$ Card.Land A:AB$ MakeCard | Cost$ Discard<1/Land/land> | Conjure$ True | Name$ Hollowhenge Beast | Zone$ Hand | AdditionalActivationZone$ Graveyard | StackDescription$ Conjure a card named Hollowhenge Beast into your hand. | SpellDescription$ Conjure a card named Hollowhenge Beast into your hand. You may also activate this ability while CARDNAME is in your graveyard. +DeckHas:Ability$Discard Oracle:When Hollowhenge Wrangler enters the battlefield, seek a land card.\nDiscard a land card: Conjure a card named Hollowhenge Beast into your hand. You may also activate this ability while Hollowhenge Wrangler is in your graveyard. diff --git a/forge-gui/res/cardsfolder/i/inquisitor_captain.txt b/forge-gui/res/cardsfolder/i/inquisitor_captain.txt index 0c4e1bcc5be..7de4999e5e8 100644 --- a/forge-gui/res/cardsfolder/i/inquisitor_captain.txt +++ b/forge-gui/res/cardsfolder/i/inquisitor_captain.txt @@ -3,13 +3,11 @@ ManaCost:3 W Types:Creature Human Cleric PT:3/3 K:Vigilance -T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.wasCast+Self | CheckSVar$ Z | SVarCompare$ GE20 | Execute$ TrigSeek | TriggerDescription$ When CARDNAME enters the battlefield, if you cast it and there are twenty or more creature cards with mana value 3 or less among cards in your graveyard, hand, and library, seek two creature cards with mana value 3 or less. Put one of them onto the battlefield and shuffle the other into your library. -SVar:TrigSeek:DB$ ChangeZone | Origin$ Library | Destination$ Library | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeType$ Creature.YouOwn+cmcLE3 | ChangeNum$ 2 | RememberChanged$ True | SubAbility$ DBChangeZone1 -SVar:DBChangeZone1:DB$ ChangeZone | Origin$ Library | Destination$ Battlefield | ChangeType$ Creature.IsRemembered | ChangeNum$ 1 | Mandatory$ True | NoLooking$ True | SelectPrompt$ Select a card for the battlefield | Shuffle$ True | SubAbility$ DBChangeZone2 | StackDescription$ None -SVar:DBChangeZone2:DB$ ChangeZone | Origin$ Library | Destination$ Library | ChangeType$ Creature.IsRemembered | Mandatory$ True | NoLooking$ True | StackDescription$ None | SubAbility$ DBCleanup +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.wasCast+Self | CheckSVar$ X | SVarCompare$ GE20 | Execute$ TrigSeek | TriggerDescription$ When CARDNAME enters the battlefield, if you cast it and there are twenty or more creature cards with mana value 3 or less among cards in your graveyard, hand, and library, seek two creature cards with mana value 3 or less. Put one of them onto the battlefield and shuffle the other into your library. +SVar:TrigSeek:DB$ Seek | Type$ Creature.YouOwn+cmcLE3 | Num$ 2 | RememberFound$ True | SubAbility$ DBChangeZone1 +SVar:DBChangeZone1:DB$ ChangeZone | Origin$ Hand | Destination$ Battlefield | ChangeType$ Creature.IsRemembered | ChangeNum$ 1 | Mandatory$ True | SelectPrompt$ Select a card for the battlefield | SubAbility$ DBChangeZone2 +SVar:DBChangeZone2:DB$ ChangeZone | Origin$ Hand | Destination$ Library | ChangeType$ Creature.IsRemembered | Mandatory$ True | Shuffle$ True | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True -SVar:X:Count$ValidGraveyard Creature.YouOwn+cmcLE3 -SVar:Y:Count$ValidLibrary Creature.YouOwn+cmcLE3/Plus.X -SVar:Z:Count$ValidHand Creature.YouOwn+cmcLE3/Plus.Y +SVar:X:Count$ValidGraveyard,Library,Hand Creature.YouOwn+cmcLE3 DeckNeeds:Type$Creature Oracle:Vigilance\nWhen Inquisitor Captain enters the battlefield, if you cast it and there are twenty or more creature cards with mana value 3 or less among cards in your graveyard, hand, and library, seek two creature cards with mana value 3 or less. Put one of them onto the battlefield and shuffle the other into your library. diff --git a/forge-gui/res/cardsfolder/j/jukai_liberator.txt b/forge-gui/res/cardsfolder/j/jukai_liberator.txt index 5398a61c662..a29f8191224 100644 --- a/forge-gui/res/cardsfolder/j/jukai_liberator.txt +++ b/forge-gui/res/cardsfolder/j/jukai_liberator.txt @@ -5,6 +5,6 @@ PT:3/3 K:Ninjutsu:1 G T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigChoose | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, choose land or nonland. Seek a permanent card of the chosen type. SVar:TrigChoose:DB$ ChooseType | Type$ Card | ValidTypes$ Land,Nonland | SubAbility$ DBSeek -SVar:DBSeek:DB$ ChangeZone | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeType$ Card.ChosenType | ChangeNum$ 1 | SubAbility$ DBCleanup +SVar:DBSeek:DB$ Seek | Type$ Card.Permanent+ChosenType | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearChosenType$ True Oracle:Ninjutsu {1}{G}\nWhenever Jukai Liberator deals combat damage to a player, choose land or nonland. Seek a permanent card of the chosen type. diff --git a/forge-gui/res/cardsfolder/k/kardum_patron_of_flames.txt b/forge-gui/res/cardsfolder/k/kardum_patron_of_flames.txt index db26d1521f5..3f7ab49125d 100644 --- a/forge-gui/res/cardsfolder/k/kardum_patron_of_flames.txt +++ b/forge-gui/res/cardsfolder/k/kardum_patron_of_flames.txt @@ -5,7 +5,9 @@ PT:4/3 K:Haste T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigCounter | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME attacks, put a flame counter on it, then seek a card with mana value equal to the number of flame counters on it and exile that card face down. SVar:TrigCounter:DB$ PutCounter | CounterType$ FLAME | CounterNum$ 1 | ValidCards$ Self | SubAbility$ DBSeek -SVar:DBSeek:DB$ ChangeZone | Origin$ Library | Destination$ Exile | ExileFaceDown$ True | AtRandom$ True | NoShuffle$ True | NoLooking$ True | NoReveal$ True | ChangeNum$ 1 | ChangeType$ Card.cmcEQX+YouOwn | RememberChanged$ True +SVar:DBSeek:DB$ Seek | Type$ Card.cmcEQX+YouOwn | ImprintFound$ True | SubAbility$ DBExile +SVar:DBExile:DB$ ChangeZone | Origin$ Hand | Destination$ Exile | Defined$ Imprinted | ExileFaceDown$ True | Mandatory$ True | SubAbility$ DBClearImprinted +SVar:DBClearImprinted:DB$ Cleanup | ClearImprinted$ True T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Battlefield | Destination$ Graveyard | Execute$ TrigReturn | TriggerDescription$ When NICKNAME dies, put the cards exiled with it into their owner's hand. At the beginning of the end step of your next turn, discard those cards. SVar:TrigReturn:DB$ ChangeZoneAll | ChangeType$ Card.IsRemembered+ExiledWithSource | Origin$ Exile | Destination$ Hand | SubAbility$ DBDelay SVar:DBDelay:DB$ DelayedTrigger | DelayedTriggerDefinedPlayer$ You | Mode$ Phase | Phase$ End of Turn | Execute$ TrigDiscardExiled | RememberObjects$ Remembered | TriggerDescription$ At the beginning of the end step of your next turn, discard those cards. @@ -16,4 +18,5 @@ T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCar SVar:DBForget:DB$ Pump | ForgetObjects$ TriggeredCard SVar:X:Count$CardCounters.FLAME SVar:HasAttackEffect:TRUE +DeckHas:Ability$Discard Oracle:Haste\nWhenever Kardum, Patron of Flames attacks, put a flame counter on it, then seek a card with mana value equal to the number of flame counters on it and exile that card face down.\nWhen Kardum dies, put all cards you own exiled with it into your hand. At the beginning of the end step of your next turn, discard those cards. diff --git a/forge-gui/res/cardsfolder/k/karlach_raging_tiefling.txt b/forge-gui/res/cardsfolder/k/karlach_raging_tiefling.txt index cd6a3b01f5c..3124af2e097 100644 --- a/forge-gui/res/cardsfolder/k/karlach_raging_tiefling.txt +++ b/forge-gui/res/cardsfolder/k/karlach_raging_tiefling.txt @@ -39,7 +39,7 @@ SVar:TrigReturn:DB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | SVar:DBEffect:DB$ Effect | RememberObjects$ TriggeredCard | StaticAbilities$ PerpetualStatic | Duration$ Permanent SVar:PerpetualStatic:Mode$ Continuous | Affected$ Card.IsRemembered | AddKeyword$ CARDNAME can't block. | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | Description$ It perpetually gains "This creature can't block." T:Mode$ Specializes | ValidCard$ Card.Self | Execute$ TrigSeek | TriggerDescription$ When this card specializes from any zone, seek an instant or sorcery card with mana value 3 or less. Until end of turn, you may cast that card without paying its mana cost. -SVar:TrigSeek:DB$ ChangeZone | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | NoLooking$ True | NoReveal$ True | ChangeNum$ 1 | ChangeType$ Instant.cmcLE3,Sorcery.cmcLE3 | RememberChanged$ True +SVar:TrigSeek:DB$ Seek | Type$ Instant.cmcLE3,Sorcery.cmcLE3 | RememberFound$ True | SubAbility$ DBEffect SVar:DBEffect:DB$ Effect | StaticAbilities$ MayPlay | RememberObjects$ Remembered | ForgetOnMoved$ Hand | SubAbility$ DBCleanup SVar:MayPlay:Mode$ Continuous | Affected$ Card.IsRemembered+nonLand | MayPlayWithoutManaCost$ True | EffectZone$ Command | AffectedZone$ Hand SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True diff --git a/forge-gui/res/cardsfolder/k/kindred_denial.txt b/forge-gui/res/cardsfolder/k/kindred_denial.txt index 260bebf0617..cdce64e818f 100644 --- a/forge-gui/res/cardsfolder/k/kindred_denial.txt +++ b/forge-gui/res/cardsfolder/k/kindred_denial.txt @@ -2,6 +2,6 @@ Name:Kindred Denial ManaCost:2 U U Types:Instant A:SP$ Counter | TargetType$ Spell | ValidTgts$ Card | TgtPrompt$ Select target spell | RememberCounteredCMC$ True | SubAbility$ DBSeek | SpellDescription$ Counter target spell. -SVar:DBSeek:DB$ ChangeZone | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeType$ Card.cmcEQX | ChangeNum$ 1 | StackDescription$ SpellDescription | SpellDescription$ Seek a card with the same mana value as that spell. +SVar:DBSeek:DB$ Seek | Type$ Card.cmcEQX | StackDescription$ REP Seek_{p:You} seeks | SpellDescription$ Seek a card with the same mana value as that spell. SVar:X:Count$RememberedNumber Oracle:Counter target spell. Seek a card with the same mana value as that spell. diff --git a/forge-gui/res/cardsfolder/k/klement_novice_acolyte.txt b/forge-gui/res/cardsfolder/k/klement_novice_acolyte.txt index 555650c8afa..7996b1846e3 100644 --- a/forge-gui/res/cardsfolder/k/klement_novice_acolyte.txt +++ b/forge-gui/res/cardsfolder/k/klement_novice_acolyte.txt @@ -36,10 +36,10 @@ Types:Legendary Creature Tiefling Cleric PT:3/4 K:Vigilance T:Mode$ Specializes | ValidCard$ Card.Self | Execute$ TrigSeek | TriggerDescription$ When this creature specializes, seek three nonland permanent cards. Choose one of those cards and shuffle the rest into your library. -SVar:TrigSeek:DB$ ChangeZone | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeNum$ 3 | ChangeType$ Permanent.nonLand | RememberChanged$ True | SubAbility$ DBChooseCard +SVar:TrigSeek:DB$ Seek | Num$ 3 | ChangeType$ Card.Permanent+nonLand | RememberFound$ True | SubAbility$ DBChooseCard SVar:DBChooseCard:DB$ ChooseCard | ChoiceZone$ Hand | Choices$ Card.IsRemembered | ForgetChosen$ True | SubAbility$ DBShuffle -SVar:DBShuffle:DB$ ChangeZone | Origin$ Hand | Destination$ Library | Defined$ Remembered | Shuffle$ True | SubAbility$ DBClearChosen -SVar:DBClearChosen:DB$ Cleanup | ClearChosenCard$ True +SVar:DBShuffle:DB$ ChangeZone | Origin$ Hand | Destination$ Library | Defined$ Remembered | Shuffle$ True | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearChosenCard$ True Oracle:Vigilance\nWhen this creature specializes, seek three nonland permanent cards. Choose one of those cards and shuffle the rest into your library. SPECIALIZE:BLACK diff --git a/forge-gui/res/cardsfolder/l/laezel_githyanki_warrior.txt b/forge-gui/res/cardsfolder/l/laezel_githyanki_warrior.txt index 4403fb253cf..041183334bb 100644 --- a/forge-gui/res/cardsfolder/l/laezel_githyanki_warrior.txt +++ b/forge-gui/res/cardsfolder/l/laezel_githyanki_warrior.txt @@ -22,7 +22,7 @@ PT:3/6 K:Double Strike T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigSeek | TriggerDescription$ When this creature enters the battlefield or specializes, seek a nonland permanent card with mana value 3 or less. T:Mode$ Specializes | ValidCard$ Card.Self | Execute$ TrigSeek | Secondary$ True | TriggerDescription$ When this creature enters the battlefield or specializes, seek a nonland permanent card with mana value 3 or less. -SVar:TrigSeek:DB$ ChangeZone | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeType$ Permanent.nonLand+cmcLE3 +SVar:TrigSeek:DB$ Seek | Type$ Card.Permanent+nonLand+cmcLE3 Oracle:Double strike\nWhen this creature enters the battlefield or specializes, seek a nonland permanent card with mana value 3 or less. SPECIALIZE:BLUE diff --git a/forge-gui/res/cardsfolder/l/lukamina_moon_druid.txt b/forge-gui/res/cardsfolder/l/lukamina_moon_druid.txt index b8bcc8d1bb9..c44b863436c 100644 --- a/forge-gui/res/cardsfolder/l/lukamina_moon_druid.txt +++ b/forge-gui/res/cardsfolder/l/lukamina_moon_druid.txt @@ -4,7 +4,7 @@ Types:Legendary Creature Human Druid PT:2/2 K:Specialize:3:Wild Shape:Activate only if you control six or more lands.:IsPresent$ Land.YouCtrl | PresentCompare$ GE6 T:Mode$ ChangesZone | ValidCard$ Card.wasCastByYou+Self | Destination$ Battlefield | Execute$ TrigSeek | TriggerDescription$ When CARDNAME enters the battlefield, if you cast it, seek a land card with a basic land type. -SVar:TrigSeek:DB$ ChangeZone | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeType$ Land.hasABasicLandType | ChangeNum$ 1 +SVar:TrigSeek:DB$ Seek | Type$ Land.hasABasicLandType AlternateMode:Specialize Oracle:Wild Shape — Specialize {3}. Activate only if you control six or more lands.\nWhen Lukamina, Moon Druid enters the battlefield, if you cast it, seek a land card with a basic land type. diff --git a/forge-gui/res/cardsfolder/n/norns_disassembly.txt b/forge-gui/res/cardsfolder/n/norns_disassembly.txt index 7506f1f00de..795c3f8fd9b 100644 --- a/forge-gui/res/cardsfolder/n/norns_disassembly.txt +++ b/forge-gui/res/cardsfolder/n/norns_disassembly.txt @@ -1,7 +1,7 @@ Name:Norn's Disassembly ManaCost:W Types:Enchantment -A:AB$ ChangeZone | Cost$ 1 W Sac<1/Permanent.Historic/Historic permanent> | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeType$ Card.Historic | ChangeNum$ 1 | SpellDescription$ Seek a historic card. +A:AB$ Seek | Cost$ 1 W Sac<1/Permanent.Historic/historic permanent> | Type$ Card.Historic | StackDescription$ REP Seek_{p:You} seeks | SpellDescription$ Seek a historic card. DeckHas:Ability$Sacrifice DeckNeeds:Type$Legendary|Artifact|Planeswalker Oracle:{1}{W}, Sacrifice a historic permanent: Seek a historic card. diff --git a/forge-gui/res/cardsfolder/o/obsessive_collector.txt b/forge-gui/res/cardsfolder/o/obsessive_collector.txt index 809f5bf7613..e0cecad3a11 100644 --- a/forge-gui/res/cardsfolder/o/obsessive_collector.txt +++ b/forge-gui/res/cardsfolder/o/obsessive_collector.txt @@ -5,6 +5,6 @@ PT:4/4 K:Flying K:Ward:2 T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | Execute$ TrigSeek | CombatDamage$ True | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, seek a card with mana value equal to the number of cards in your hand. -SVar:TrigSeek:DB$ ChangeZone | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeType$ Card.cmcEQX | ChangeNum$ 1 +SVar:TrigSeek:DB$ Seek | Type$ Card.cmcEQX SVar:X:Count$InYourHand Oracle:Flying\nWard {2}\nWhenever Obsessive Collector deals combat damage to a player, seek a card with mana value equal to the number of cards in your hand. diff --git a/forge-gui/res/cardsfolder/p/puppet_raiser.txt b/forge-gui/res/cardsfolder/p/puppet_raiser.txt index 8d616af25ab..364db14bcef 100644 --- a/forge-gui/res/cardsfolder/p/puppet_raiser.txt +++ b/forge-gui/res/cardsfolder/p/puppet_raiser.txt @@ -4,7 +4,7 @@ Types:Creature Zombie Wizard PT:3/4 T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | IsPresent$ Card.Creature+YouOwn | PresentZone$ Graveyard | PresentCompare$ GE1 | Execute$ TrigExile | TriggerDescription$ At the beginning of your end step, exile up to one target creature card from your graveyard. If you do, seek a creature card with mana value equal to the mana value of that card plus one. That card perpetually gains menace. SVar:TrigExile:DB$ ChangeZone | Origin$ Graveyard | Destination$ Exile | ValidTgts$ Creature.YouOwn | TgtPrompt$ Select up to one target creature card in your graveyard | TargetMin$ 0 | TargetMax$ 1 | RememberChanged$ True | SubAbility$ DBSeek -SVar:DBSeek:DB$ ChangeZone | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeType$ Creature.cmcEQX | ChangeNum$ 1 | Imprint$ True | SubAbility$ DBEffect +SVar:DBSeek:DB$ Seek | Type$ Creature.cmcEQX | ImprintFound$ True | SubAbility$ DBEffect SVar:DBEffect:DB$ Effect | RememberObjects$ Imprinted | StaticAbilities$ PerpetualAbility | Duration$ Permanent | Name$ Puppet Raiser's Perpetual Effect | SubAbility$ DBCleanup SVar:PerpetualAbility:Mode$ Continuous | Affected$ Card.IsRemembered | EffectZone$ Command | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | AddKeyword$ Menace | Triggers$ Update | Description$ That card perpetually gains menace. SVar:Update:Mode$ ChangesZone | Origin$ Any | Destination$ Any | Static$ True | ValidCard$ Card.IsRemembered | Execute$ DBUpdate diff --git a/forge-gui/res/cardsfolder/s/sarevok_the_usurper.txt b/forge-gui/res/cardsfolder/s/sarevok_the_usurper.txt index 2dcb1cf6ae6..280d6314572 100644 --- a/forge-gui/res/cardsfolder/s/sarevok_the_usurper.txt +++ b/forge-gui/res/cardsfolder/s/sarevok_the_usurper.txt @@ -7,8 +7,8 @@ T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | TriggerZones$ Battlefiel SVar:TrigPump:DB$ Pump | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | NumAtt$ X SVar:X:Count$TypeInYourYard.Creature DeckHas:Ability$Graveyard -Oracle:Specialize {3}\nAt the beginning of combat on your turn, target creature you control gets +X/+0 until end of turn, where X is the number of creature cards in your graveyard. AlternateMode:Specialize +Oracle:Specialize {3}\nAt the beginning of combat on your turn, target creature you control gets +X/+0 until end of turn, where X is the number of creature cards in your graveyard. SPECIALIZE:WHITE @@ -29,7 +29,6 @@ Name:Sarevok, Deceitful Usurper ManaCost:3 U B Types:Legendary Creature Human Knight PT:4/4 -K:First Strike T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ At the beginning of combat on your turn, target creature you control gets +X/+0 until end of turn, where X is the number of creature, instant, and sorcery cards in your graveyard. SVar:TrigPump:DB$ Pump | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | NumAtt$ X SVar:X:Count$ValidGraveyard Instant.YouOwn,Sorcery.YouOwn,Creature.YouOwn @@ -45,8 +44,10 @@ ManaCost:3 B B Types:Legendary Creature Human Knight PT:4/4 T:Mode$ Specializes | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigSeek | TriggerDescription$ When this creature specializes, seek a creature card and put it into your graveyard, then conjure two duplicates of it into your graveyard. -SVar:TrigSeek:DB$ ChangeZone | Origin$ Library | Destination$ Graveyard | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeType$ Creature.YouCtrl | ChangeNum$ 1 | SubAbility$ DBConjure | RememberChanged$ True -SVar:DBConjure:DB$ Makecard | Conjure$ True | DefinedName$ Remembered | Zone$ Graveyard | Amount$ 2 +SVar:TrigSeek:DB$ Seek | Type$ Card.Creature | RememberFound$ True | SubAbility$ DBPut +SVar:DBPut:DB$ ChangeZone | Origin$ Hand | Destination$ Graveyard | Defined$ Remembered | SubAbility$ DBConjure +SVar:DBConjure:DB$ MakeCard | Conjure$ True | DefinedName$ Remembered | Zone$ Graveyard | Amount$ 2 | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ At the beginning of combat on your turn, target creature you control gets +X/+0 until end of turn, where X is the number of creature cards in your graveyard. SVar:TrigPump:DB$ Pump | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | NumAtt$ X SVar:X:Count$TypeInYourYard.Creature @@ -64,7 +65,7 @@ T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | TriggerZones$ Battlefiel SVar:TrigPump:DB$ Pump | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | NumAtt$ X | KW$ Menace SVar:X:Count$TypeInYourYard.Creature DeckHas:Ability$Graveyard & Keyword$Menace -Oracle:Menace\nAt the beginning of combat on your turn, target creature you control gains Menace and gets +X/+0 until end of turn, where X is the number of creature cards in your graveyard. +Oracle:Menace\nAt the beginning of combat on your turn, target creature you control gains menace and gets +X/+0 until end of turn, where X is the number of creature cards in your graveyard. SPECIALIZE:GREEN diff --git a/forge-gui/res/cardsfolder/s/settle_the_wilds.txt b/forge-gui/res/cardsfolder/s/settle_the_wilds.txt index 64cbd175323..c50049248f9 100644 --- a/forge-gui/res/cardsfolder/s/settle_the_wilds.txt +++ b/forge-gui/res/cardsfolder/s/settle_the_wilds.txt @@ -1,7 +1,9 @@ Name:Settle the Wilds ManaCost:2 G Types:Sorcery -A:SP$ ChangeZone | Origin$ Library | Destination$ Battlefield | Tapped$ True | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeType$ Land.Basic | ChangeNum$ 1 | SubAbility$ DBSeek | StackDescription$ SpellDescription | SpellDescription$ Seek a basic land card and put it onto the battlefield tapped. -SVar:DBSeek:DB$ ChangeZone | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeType$ Permanent.cmcEQX | ChangeNum$ 1 | StackDescription$ SpellDescription | SpellDescription$ Then seek a permanent card with mana value equal to the number of lands you control. +A:SP$ Seek | Type$ Card.Land+Basic | SubAbility$ DBPut | RememberFound$ True | StackDescription$ REP Seek_{p:You} seeks | SpellDescription$ Seek a basic land card and put it onto the battlefield tapped. +SVar:DBPut:DB$ ChangeZone | Origin$ Hand | Destination$ Battlefield | Defined$ Remembered | Tapped$ True | StackDescription$ None | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | SubAbility$ DBSeek +SVar:DBSeek:DB$ Seek | Type$ Card.Permanent+cmcEQX | StackDescription$ REP seek_{p:You} seeks & you_they | SpellDescription$ Then seek a permanent card with mana value equal to the number of lands you control. SVar:X:Count$Valid Land.YouCtrl Oracle:Seek a basic land card and put it onto the battlefield tapped. Then seek a permanent card with mana value equal to the number of lands you control. diff --git a/forge-gui/res/cardsfolder/s/signature_spells.txt b/forge-gui/res/cardsfolder/s/signature_spells.txt index aa0418d9ea9..4553d04c062 100644 --- a/forge-gui/res/cardsfolder/s/signature_spells.txt +++ b/forge-gui/res/cardsfolder/s/signature_spells.txt @@ -2,7 +2,8 @@ Name:Signature Spells ManaCost:4 U U Types:Enchantment T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigSeekTwo | TriggerDescription$ When CARDNAME enters the battlefield, seek two instant and/or sorcery cards with mana value 3, then exile them. -SVar:TrigSeekTwo:DB$ ChangeZone | Imprint$ True | Origin$ Library | Destination$ Exile | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeNum$ 2 | ChangeType$ Card.Instant+cmcEQ3,Card.Sorcery+cmcEQ3 | StackDescription$ SpellDescription | SpellDescription$ Seek two nonland cards, then put a card from your hand on the bottom of your library. +SVar:TrigSeekTwo:DB$ Seek | ImprintFound$ True | Num$ 2 | Type$ Card.Instant+cmcEQ3,Card.Sorcery+cmcEQ3 | SubAbility$ DBExile +SVar:DBExile:DB$ ChangeZone | Origin$ Hand | Destination$ Exile | Defined$ Imprinted T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ DBCopy | TriggerZones$ Battlefield | OptionalDecider$ You | TriggerDescription$ At the beginning of your upkeep, you may copy a card exiled with CARDNAME. You may cast the copy without paying its mana cost. SVar:DBCopy:DB$ Play | Valid$ Card.IsImprinted+ExiledWithSource | ValidZone$ Exile | WithoutManaCost$ True | ValidSA$ Spell | Optional$ True | CopyCard$ True T:Mode$ ChangesZone | Origin$ Exile | Destination$ Any | Static$ True | ValidCard$ Card.IsImprinted+ExiledWithSource | Execute$ DBForget diff --git a/forge-gui/res/cardsfolder/s/skyshroud_lookout.txt b/forge-gui/res/cardsfolder/s/skyshroud_lookout.txt index 0a3a4c53713..b09ba63b2b8 100644 --- a/forge-gui/res/cardsfolder/s/skyshroud_lookout.txt +++ b/forge-gui/res/cardsfolder/s/skyshroud_lookout.txt @@ -4,6 +4,6 @@ Types:Creature Elf Archer PT:1/1 K:Reach T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigSeek | TriggerDescription$ When CARDNAME enters the battlefield, seek an Elf card. -SVar:TrigSeek:DB$ ChangeZone | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeType$ Card.Elf | ChangeNum$ 1 +SVar:TrigSeek:DB$ Seek | Type$ Card.Elf DeckHints:Type$Elf Oracle:Reach\nWhen Skyshroud Lookout enters the battlefield, seek an Elf card. diff --git a/forge-gui/res/cardsfolder/s/soulstealer_axe.txt b/forge-gui/res/cardsfolder/s/soulstealer_axe.txt index 3d30322d7a7..4ff4fccbc19 100644 --- a/forge-gui/res/cardsfolder/s/soulstealer_axe.txt +++ b/forge-gui/res/cardsfolder/s/soulstealer_axe.txt @@ -3,7 +3,7 @@ ManaCost:1 Types:Artifact Equipment S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddKeyword$ Trample | Description$ Equipped creature has trample. T:Mode$ DamageDone | ValidSource$ Creature.EquippedBy | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigSeek | TriggerZones$ Battlefield | TriggerDescription$ Whenever equipped creature deals combat damage to a player, seek a card with mana value equal to that damage. -SVar:TrigSeek:DB$ ChangeZone | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeType$ Card.cmcEQX | ChangeNum$ 1 +SVar:TrigSeek:DB$ Seek | Type$ Card.cmcEQX SVar:X:TriggerCount$DamageAmount K:Equip:2 Oracle:Equipped creature has trample.\nWhenever equipped creature deals combat damage to a player, seek a card with mana value equal to that damage.\nEquip {2} diff --git a/forge-gui/res/cardsfolder/s/sunes_intervention.txt b/forge-gui/res/cardsfolder/s/sunes_intervention.txt index a1627766130..c4a310a5c93 100644 --- a/forge-gui/res/cardsfolder/s/sunes_intervention.txt +++ b/forge-gui/res/cardsfolder/s/sunes_intervention.txt @@ -3,7 +3,7 @@ ManaCost:4 W W Types:Instant A:SP$ Charm | MinCharmNum$ 1 | CharmNum$ 5 | Choices$ KnightTokens,SeekCard,DestroyArtifact,DestroyEnchantment,GainLife SVar:KnightTokens:DB$ Token | TokenOwner$ You | TokenScript$ w_2_2_knight | TokenAmount$ 2 | SpellDescription$ Create two 2/2 white Knight creature tokens. -SVar:SeekCard:DB$ ChangeZone | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeType$ Card.Permanent+nonLand+cmcLE3 | ChangeNum$ 1 | SpellDescription$ Seek a nonland permanent card with mana value 3 or less. +SVar:SeekCard:DB$ Seek | Type$ Card.Permanent+nonLand+cmcLE3 | SpellDescription$ Seek a nonland permanent card with mana value 3 or less. SVar:DestroyArtifact:DB$ Destroy | ValidTgts$ Artifact | TgtPrompt$ Select target artifact | SpellDescription$ Destroy target artifact. SVar:DestroyEnchantment:DB$ Destroy | ValidTgts$ Enchantment | TgtPrompt$ Select target enchantment | SpellDescription$ Destroy target enchantment. SVar:GainLife:DB$ GainLife | ValidTgts$ Player | TgtPrompt$ Select target player to gain 3 life | LifeAmount$ 3 | SpellDescription$ Target player gains 3 life. diff --git a/forge-gui/res/cardsfolder/t/trove_mage.txt b/forge-gui/res/cardsfolder/t/trove_mage.txt index d0eecc3956d..e62484d87ba 100644 --- a/forge-gui/res/cardsfolder/t/trove_mage.txt +++ b/forge-gui/res/cardsfolder/t/trove_mage.txt @@ -3,7 +3,7 @@ ManaCost:2 U Types:Creature Human Wizard PT:2/2 T:Mode$ ChangesZone | ValidCard$ Card.Self | Destination$ Battlefield | Execute$ TrigSeek | TriggerDescription$ When CARDNAME enters the battlefield, seek an artifact card from among the top ten cards of your library, then shuffle. -SVar:TrigSeek:DB$ Dig | Defined$ You | DigNum$ 10 | ChangeNum$ 1 | ChangeValid$ Card.Artifact | DestinationZone$ Hand | Mandatory$ True | NoLooking$ True | DestinationZone2$ Library | LibraryPosition2$ 0 | SkipReorder$ True | RandomChange$ True | SubAbility$ Shuffle +SVar:TrigSeek:DB$ Seek | DefinedCards$ Top_10_OfLibrary | Type$ Artifact | SubAbility$ Shuffle SVar:Shuffle:DB$ Shuffle DeckNeeds:Type$Artifact Oracle:When Trove Mage enters the battlefield, seek an artifact card from among the top ten cards of your library, then shuffle. diff --git a/forge-gui/res/cardsfolder/u/unexpected_conversion.txt b/forge-gui/res/cardsfolder/u/unexpected_conversion.txt index bcb2c59c57f..2ebf97a9223 100644 --- a/forge-gui/res/cardsfolder/u/unexpected_conversion.txt +++ b/forge-gui/res/cardsfolder/u/unexpected_conversion.txt @@ -2,10 +2,11 @@ Name:Unexpected Conversion ManaCost:2 U Types:Sorcery A:SP$ Draw | NumCards$ 2 | SubAbility$ DBExile | SpellDescription$ Draw two cards. -SVar:DBExile:DB$ ChangeZone | Origin$ Hand | Destination$ Exile | Hidden$ True | ChangeType$ Instant,Sorcery | SelectPrompt$ Select an instant or sorcery card from your hand | RememberChanged$ True | SubAbility$ ExileHand | StackDescription$ SpellDescription | SpellDescription$ Then you may exile an instant or sorcery card from your hand. -SVar:ExileHand:DB$ ChangeZone | Origin$ Hand | Destination$ Exile | DefinedPlayer$ You | ChangeType$ Remembered.sameName | ChangeNum$ NumInHand | Chooser$ You | Imprint$ True | SubAbility$ ExileLib | StackDescription$ SpellDescription | ConditionDefined$ Remembered | ConditionPresent$ Card | ConditionCompare$ GE1 | SpellDescription$ If you do, search your hand -SVar:ExileLib:DB$ ChangeZone | Origin$ Library | Destination$ Exile | DefinedPlayer$ You | ChangeType$ Remembered.sameName | ChangeNum$ NumInLib | Chooser$ You | Shuffle$ True | StackDescription$ SpellDescription | SubAbility$ DBSeek | ConditionDefined$ Remembered | ConditionPresent$ Card | ConditionCompare$ GE1 | SpellDescription$ and library for any number of cards with the same name, exile them, then shuffle. -SVar:DBSeek:DB$ ChangeZone | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | NoLooking$ True | NoReveal$ True | ChangeNum$ X | ChangeType$ Instant,Sorcery | SubAbility$ DBCleanup | StackDescription$ SpellDescription | SpellDescription$ Seek an instant or sorcery card for each card exiled from your hand this way. +SVar:DBExile:DB$ ChangeZone | Origin$ Hand | Destination$ Exile | Hidden$ True | ChangeType$ Instant,Sorcery | SelectPrompt$ Select an instant or sorcery card from your hand | RememberChanged$ True | SubAbility$ DBBranch | StackDescription$ REP you_{p:You} & your_their | SpellDescription$ Then you may exile an instant or sorcery card from your hand. +SVar:DBBranch:DB$ Branch | BranchConditionSVar$ X | TrueSubAbility$ ExileHand +SVar:ExileHand:DB$ ChangeZone | Origin$ Hand | Destination$ Exile | DefinedPlayer$ You | ChangeType$ Remembered.sameName | ChangeNum$ NumInHand | Chooser$ You | Imprint$ True | SubAbility$ ExileLib | StackDescription$ SpellDescription | SpellDescription$ If you do, search your hand +SVar:ExileLib:DB$ ChangeZone | Origin$ Library | Destination$ Exile | DefinedPlayer$ You | ChangeType$ Remembered.sameName | ChangeNum$ NumInLib | Chooser$ You | Shuffle$ True | StackDescription$ SpellDescription | SubAbility$ DBSeek | SpellDescription$ and library for any number of cards with the same name, exile them, then shuffle. +SVar:DBSeek:DB$ Seek | Num$ X | Type$ Card.Instant,Card.Sorcery | SubAbility$ DBCleanup | StackDescription$ SpellDescription | SpellDescription$ Seek an instant or sorcery card for each card exiled from your hand this way. SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True SVar:NumInLib:Count$InYourLibrary SVar:NumInHand:Count$InYourHand diff --git a/forge-gui/res/cardsfolder/u/urzas_construction_drone.txt b/forge-gui/res/cardsfolder/u/urzas_construction_drone.txt index 2360461397e..39cbebc4e74 100644 --- a/forge-gui/res/cardsfolder/u/urzas_construction_drone.txt +++ b/forge-gui/res/cardsfolder/u/urzas_construction_drone.txt @@ -6,7 +6,7 @@ T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.S SVar:TrigConjure:DB$ MakeCard | Conjure$ True | Names$ Urza's Mine,Urza's Tower,Urza's Power Plant | Zone$ Library T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigSeek | TriggerDescription$ Whenever CARDNAME attacks or dies, seek an Urza's land card. T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Battlefield | Destination$ Graveyard | Execute$ TrigSeek | Secondary$ True | Execute$ TrigSeek | TriggerDescription$ Whenever CARDNAME attacks or dies, seek an Urza's land card. -SVar:TrigSeek:DB$ ChangeZone | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeType$ Land.Urza's | ChangeNum$ 1 +SVar:TrigSeek:DB$ Seek | Type$ Card.Land+Urza's SVar:HasAttackEffect:TRUE DeckHas:Type$Urza's DeckHints:Type$Urza's diff --git a/forge-gui/res/cardsfolder/upcoming/blightwing_whelp.txt b/forge-gui/res/cardsfolder/upcoming/blightwing_whelp.txt index aabf877e1d3..6a9587ffae1 100644 --- a/forge-gui/res/cardsfolder/upcoming/blightwing_whelp.txt +++ b/forge-gui/res/cardsfolder/upcoming/blightwing_whelp.txt @@ -6,6 +6,6 @@ K:Flying K:Toxic:1 A:AB$ Pump | Cost$ B | KW$ Haste | Defined$ Self | SpellDescription$ CARDNAME gains haste until end of turn. T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | Execute$ TrigSeek | CombatDamage$ True | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, seek a card with mana value equal to the number of poison counters that player has. -SVar:TrigSeek:DB$ ChangeZone | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeType$ Card.cmcEQX | ChangeNum$ 1 +SVar:TrigSeek:DB$ Seek | Type$ Card.cmcEQX SVar:X:TriggeredTarget$PoisonCounters Oracle:Flying\nToxic 1\n{B}: Blightwing Whelp gains haste until end of turn.\nWhenever Blightwing Welp deals combat damage to a player, seek a card with mana value equal to the number of poison counters that player has. diff --git a/forge-gui/res/cardsfolder/upcoming/glistening_extractor.txt b/forge-gui/res/cardsfolder/upcoming/glistening_extractor.txt index 02a0d08c2ef..431a418c33b 100644 --- a/forge-gui/res/cardsfolder/upcoming/glistening_extractor.txt +++ b/forge-gui/res/cardsfolder/upcoming/glistening_extractor.txt @@ -3,7 +3,7 @@ ManaCost:2 U B Types:Artifact K:etbCounter:OIL:4 T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | IsPresent$ Card.Self+counters_GE1_OIL | Execute$ TrigSeek | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of your upkeep, if there are one or more oil counters on CARDNAME, seek a card with mana value equal to the number of oil counters on CARDNAME, then remove an oil counter from CARDNAME. -SVar:TrigSeek:DB$ ChangeZone | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeType$ Card.cmcEQX | ChangeNum$ 1 | SubAbility$ DBRemoveCounter +SVar:TrigSeek:DB$ Seek | Type$ Card.cmcEQX | SubAbility$ DBRemoveCounter SVar:DBRemoveCounter:DB$ RemoveCounter | CounterType$ OIL SVar:X:Count$CardCounters.OIL Oracle:Glistening Extractor enters the battlefield with four oil counters on it.\nAt the beginning of your upkeep, if there are one or more oil counters on Glistening Extractor, seek a card with mana value equal to the number of oil counters on Glistening Extractor, then remove an oil counter from Glistening Extractor. diff --git a/forge-gui/res/cardsfolder/upcoming/innovative_metatect.txt b/forge-gui/res/cardsfolder/upcoming/innovative_metatect.txt new file mode 100644 index 00000000000..dc8d8fb56e3 --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/innovative_metatect.txt @@ -0,0 +1,9 @@ +Name:Innovative Metatect +ManaCost:W U +Types:Creature Phyrexian Artificer +PT:1/3 +T:Mode$ DamageDoneOnce | CombatDamage$ True | ValidSource$ Creature.Artifact+YouCtrl | TriggerZones$ Battlefield | ValidTarget$ Player | Execute$ TrigSeek | TriggerDescription$ Whenever one or more artifact creatures you control deal combat damage to a player, seek a nonland card with mana value 2 or less. +SVar:TrigSeek:DB$ Seek | Type$ Card.nonLand+cmcLE2 +DeckNeeds:Type$Artifact +AI:RemoveDeck:Random +Oracle:Whenever one or more artifact creatures you control deal combat damage to a player, seek a nonland card with mana value 2 or less. diff --git a/forge-gui/res/cardsfolder/upcoming/phyrexian_harvester.txt b/forge-gui/res/cardsfolder/upcoming/phyrexian_harvester.txt index c25ccbe2834..4c411f97692 100644 --- a/forge-gui/res/cardsfolder/upcoming/phyrexian_harvester.txt +++ b/forge-gui/res/cardsfolder/upcoming/phyrexian_harvester.txt @@ -4,7 +4,7 @@ Types:Creature Phyrexian Horror PT:5/5 K:Menace T:Mode$ DamageDone | ValidTarget$ Card.Self | Execute$ TrigSeek | TriggerDescription$ Whenever CARDNAME is dealt damage, seek that many nonland cards. At the beginning of your next end step, discard those cards. -SVar:TrigSeek:DB$ ChangeZone | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeNum$ X | ChangeType$ Card.nonLand | RememberChanged$ True | SubAbility$ DBDelay +SVar:TrigSeek:DB$ Seek | Num$ X | Type$ Card.nonLand | RememberFound$ True | SubAbility$ DBDelay SVar:DBDelay:DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn | Execute$ TrigDiscardExiled | SubAbility$ DBCleanup | RememberObjects$ Remembered | TriggerDescription$ At the beginning of the next end step, discard those cards. SVar:TrigDiscardExiled:DB$ Discard | Mode$ Defined | DefinedCards$ DelayTriggerRemembered SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True diff --git a/forge-gui/res/cardsfolder/upcoming/spawning_pod.txt b/forge-gui/res/cardsfolder/upcoming/spawning_pod.txt index faa2f916ee2..38a4add3702 100644 --- a/forge-gui/res/cardsfolder/upcoming/spawning_pod.txt +++ b/forge-gui/res/cardsfolder/upcoming/spawning_pod.txt @@ -1,8 +1,10 @@ Name:Spawning Pod ManaCost:2 G Types:Artifact -A:AB$ ChangeZone | Cost$ 1 T Sac<1/Creature> | Origin$ Library | Destination$ Battlefield | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeType$ Creature.cmcEQX | ChangeNum$ 1 | SorcerySpeed$ True | AILogic$ SacAndUpgrade | AnimateSubAbility$ DBAnimate | SpellDescription$ Seek a creature card with mana value equal to 1 plus the sacrificed creature's mana value and put that card onto the battlefield. That creature is a Phyrexian in addition to its other types. Activate only as a sorcery. +A:AB$ Seek | Cost$ 1 T Sac<1/Creature> | Type$ Creature.cmcEQX | SorcerySpeed$ True | AILogic$ SacAndUpgrade | ImprintFound$ True | SubAbility$ DBPut | SpellDescription$ Seek a creature card with mana value equal to 1 plus the sacrificed creature's mana value and put that card onto the battlefield. That creature is a Phyrexian in addition to its other types. Activate only as a sorcery. +SVar:DBPut:DB$ ChangeZone | Origin$ Hand | Destination$ Battlefield | Defined$ Imprinted | AnimateSubAbility$ DBAnimate | SubAbility$ DBCleanup SVar:DBAnimate:DB$ Animate | Defined$ Remembered | Types$ Phyrexian | Duration$ Permanent +SVar:DBCleanup:DB$ Cleanup | ClearImprinted$ True SVar:X:Sacrificed$CardManaCost/Plus.1 SVar:AIPreference:SacCost$Creature.nonToken DeckHas:Ability$Sacrifice & Type$Phyrexian diff --git a/forge-gui/res/cardsfolder/upcoming/vexyr_ich_tekiks_heir.txt b/forge-gui/res/cardsfolder/upcoming/vexyr_ich_tekiks_heir.txt new file mode 100644 index 00000000000..ab0839a80cf --- /dev/null +++ b/forge-gui/res/cardsfolder/upcoming/vexyr_ich_tekiks_heir.txt @@ -0,0 +1,9 @@ +Name:Vexyr, Ich-Tekik's Heir +ManaCost:G W U +Types:Legendary Creature Phyrexian Artificer +PT:3/4 +T:Mode$ SeekAll | ValidPlayer$ You | Execute$ TrigToken | TriggerDescription$ Whenever you seek one or more cards, create a 3/3 colorless Phyrexian Golem artifact creature token. +SVar:TrigToken:DB$ Token | TokenScript$ c_3_3_a_phyrexian_golem +S:Mode$ Continuous | Affected$ Golem.YouCtrl | AddKeyword$ Vigilance | Description$ Golems you control have vigilance. +DeckHints:Type$Golem +Oracle:Whenever you seek one or more cards, create a 3/3 colorless Phyrexian Golem artifact creature token.\nGolems you control have vigilance. diff --git a/forge-gui/res/cardsfolder/v/vhal_eager_scholar.txt b/forge-gui/res/cardsfolder/v/vhal_eager_scholar.txt index b1f71fe00c2..8f0e27a5392 100644 --- a/forge-gui/res/cardsfolder/v/vhal_eager_scholar.txt +++ b/forge-gui/res/cardsfolder/v/vhal_eager_scholar.txt @@ -85,7 +85,7 @@ Types:Legendary Creature Human Wizard PT:4/4 T:Mode$ Specializes | ValidCard$ Card.Self | Execute$ TrigRemoveCounters | TriggerDescription$ When this creature specializes, remove all study counters from it. Seek two creature cards with mana value less than or equal to the number of study counters removed this way. Put one of them onto the battlefield and shuffle the other into your library. SVar:TrigRemoveCounters:DB$ RemoveCounter | CounterType$ STUDY | CounterNum$ All | RememberRemoved$ True | SubAbility$ DBSeek -SVar:DBSeek:DB$ ChangeZone | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | Mandatory$ True | NoLooking$ True | NoReveal$ True | ChangeNum$ 2 | ChangeType$ Creature.cmcLEX | RememberChanged$ True | SubAbility$ DBBattlefield +SVar:DBSeek:DB$ Seek | Type$ Card.Creature+cmcLEX | Num$ 2 | RememberFound$ True | SubAbility$ DBBattlefield SVar:DBBattlefield:DB$ ChangeZone | Origin$ Hand | Destination$ Battlefield | SelectPrompt$ Select one to put onto the battlefield | ChangeType$ Card.IsRemembered | ForgetChanged$ True | SubAbility$ DBShuffle SVar:DBShuffle:DB$ ChangeZone | Origin$ Hand | Destination$ Library | Shuffle$ True | Defined$ RememberedCard | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True diff --git a/forge-gui/res/cardsfolder/y/yotian_courier.txt b/forge-gui/res/cardsfolder/y/yotian_courier.txt index 43b466cfacb..f80772b7c14 100644 --- a/forge-gui/res/cardsfolder/y/yotian_courier.txt +++ b/forge-gui/res/cardsfolder/y/yotian_courier.txt @@ -6,7 +6,7 @@ K:Flying T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigCharm | TriggerDescription$ Whenever CARDNAME attacks, ABILITY SVar:TrigCharm:DB$ Charm | Choices$ Powerstone,Seek | ChoiceRestriction$ YourLastCombat SVar:Powerstone:DB$ Token | TokenTapped$ True | TokenScript$ c_a_powerstone | SpellDescription$ Create a tapped Powerstone token. -SVar:Seek:DB$ ChangeZone | Origin$ Library | Destination$ Hand | AtRandom$ True | NoShuffle$ True | NoLooking$ True | NoReveal$ True | ChangeNum$ 1 | ChangeType$ Artifact.cmcEQX | SpellDescription$ Seek an artifact card with mana value equal to the number of Powerstones you control. +SVar:Seek:DB$ Seek | Type$ Artifact.cmcEQX | SpellDescription$ Seek an artifact card with mana value equal to the number of Powerstones you control. SVar:X:Count$Valid Powerstone.YouCtrl DeckNeeds:Type$Artifact DeckHas:Ability$Token & Type$Artifact