From 16b52a36455c3b0bd9dd78bf5de097d6ba895e9a Mon Sep 17 00:00:00 2001 From: Simisays <67333662+Simisays@users.noreply.github.com> Date: Mon, 17 Oct 2022 18:03:14 +0200 Subject: [PATCH] Deckhints for ABU and ARN with a few cleanups (#1704) * Ai to merg (#6) * Update animate_artifact.txt * Update animate_dead.txt * Update balance.txt * Update black_lotus.txt * Update black_vise.txt * Update burrowing.txt * Update clockwork_beast.txt * Update consecrate_land.txt * Update conversion.txt * Update copy_artifact.txt * Update crystal_rod.txt * Update cyclopean_tomb.txt * Update death_ward.txt * Update demonic_hordes.txt * Update disrupting_scepter.txt * Update dragon_whelp.txt * Update drain_life.txt * Update evil_presence.txt * Update farmstead.txt * Update fear.txt * Update flashfires.txt * Update flight.txt * Update fungusaur.txt * Update gaeas_liege.txt * Update gauntlet_of_might.txt * Update goblin_balloon_brigade.txt * Update healing_salve.txt * Update helm_of_chatzuk.txt * Update hypnotic_specter.txt * Update instill_energy.txt * Update iron_star.txt * Update ivory_cup.txt * Update jade_statue.txt * Update jump.txt * Update keldon_warlord.txt * Update keldon_warlord.txt * Update web.txt * Update winter_orb.txt * Update wooden_sphere.txt * Update stream_of_life.txt * Update sunglasses_of_urza.txt * Update the_hive.txt * Update throne_of_bone.txt * Update sedge_troll.txt * Update simulacrum.txt * Update smoke.txt * Update soul_net.txt * Update stone_giant.txt * Update stone_giant.txt * Update raise_dead.txt * Update regeneration.txt * Update regrowth.txt * Update resurrection.txt * Update reverse_damage.txt * Update rock_hydra.txt * Update sacrifice.txt * Update scavenging_ghoul.txt * Update pestilence.txt * Update meekstone.txt * Update mind_twist.txt * Update nevinyrrals_disk.txt * Update lifetap.txt * Update living_artifact.txt * Update living_lands.txt * Update lord_of_atlantis.txt * Update lord_of_the_pit.txt * Update lance.txt * Update kormus_bell.txt * Update bazaar_of_baghdad.txt * Update bottle_of_suleiman.txt * Update cyclone.txt * Update dandan.txt * Update diamond_valley.txt * Update drop_of_honey.txt * Update el_hajjaj.txt * Update erhnam_djinn.txt * Update fishliver_oil.txt * Update fishliver_oil.txt * Update flying_carpet.txt * Update ghazban_ogre.txt * Update guardian_beast.txt * Update island_fish_jasconius.txt * Update sandals_of_abdallah.txt * Update jandors_ring.txt * Update black_vise.txt * Update flashfires.txt * Update gaeas_liege.txt * Update stone_giant.txt --- forge-gui/res/cardsfolder/a/animate_artifact.txt | 1 + forge-gui/res/cardsfolder/a/animate_dead.txt | 2 ++ forge-gui/res/cardsfolder/b/balance.txt | 2 ++ forge-gui/res/cardsfolder/b/bazaar_of_baghdad.txt | 5 ++++- forge-gui/res/cardsfolder/b/black_lotus.txt | 1 + forge-gui/res/cardsfolder/b/black_vise.txt | 2 +- forge-gui/res/cardsfolder/b/bottle_of_suleiman.txt | 1 + forge-gui/res/cardsfolder/b/burrowing.txt | 1 + forge-gui/res/cardsfolder/c/clockwork_beast.txt | 1 + forge-gui/res/cardsfolder/c/consecrate_land.txt | 1 + forge-gui/res/cardsfolder/c/conversion.txt | 1 + forge-gui/res/cardsfolder/c/copy_artifact.txt | 1 + forge-gui/res/cardsfolder/c/crystal_rod.txt | 1 + forge-gui/res/cardsfolder/c/cyclone.txt | 1 + forge-gui/res/cardsfolder/c/cyclopean_tomb.txt | 2 ++ forge-gui/res/cardsfolder/d/dandan.txt | 1 + forge-gui/res/cardsfolder/d/death_ward.txt | 1 + forge-gui/res/cardsfolder/d/demonic_hordes.txt | 1 + forge-gui/res/cardsfolder/d/diamond_valley.txt | 1 + forge-gui/res/cardsfolder/d/disrupting_scepter.txt | 1 + forge-gui/res/cardsfolder/d/dragon_whelp.txt | 1 + forge-gui/res/cardsfolder/d/drain_life.txt | 1 + forge-gui/res/cardsfolder/d/drop_of_honey.txt | 1 + forge-gui/res/cardsfolder/e/el_hajjaj.txt | 1 + forge-gui/res/cardsfolder/e/erhnam_djinn.txt | 1 + forge-gui/res/cardsfolder/e/evil_presence.txt | 1 + forge-gui/res/cardsfolder/f/farmstead.txt | 1 + forge-gui/res/cardsfolder/f/fear.txt | 1 + forge-gui/res/cardsfolder/f/fishliver_oil.txt | 1 + forge-gui/res/cardsfolder/f/flashfires.txt | 2 +- forge-gui/res/cardsfolder/f/flight.txt | 1 + forge-gui/res/cardsfolder/f/flying_carpet.txt | 1 + forge-gui/res/cardsfolder/f/fungusaur.txt | 1 + forge-gui/res/cardsfolder/g/gaeas_liege.txt | 7 +++---- forge-gui/res/cardsfolder/g/gauntlet_of_might.txt | 2 +- forge-gui/res/cardsfolder/g/ghazban_ogre.txt | 3 ++- forge-gui/res/cardsfolder/g/goblin_balloon_brigade.txt | 1 + forge-gui/res/cardsfolder/g/guardian_beast.txt | 1 + forge-gui/res/cardsfolder/h/healing_salve.txt | 1 + forge-gui/res/cardsfolder/h/helm_of_chatzuk.txt | 1 + forge-gui/res/cardsfolder/h/hypnotic_specter.txt | 1 + forge-gui/res/cardsfolder/i/instill_energy.txt | 1 + forge-gui/res/cardsfolder/i/iron_star.txt | 1 + forge-gui/res/cardsfolder/i/island_fish_jasconius.txt | 1 + forge-gui/res/cardsfolder/i/ivory_cup.txt | 1 + forge-gui/res/cardsfolder/j/jade_statue.txt | 1 + forge-gui/res/cardsfolder/j/jandors_ring.txt | 1 + forge-gui/res/cardsfolder/j/jump.txt | 1 + forge-gui/res/cardsfolder/k/kormus_bell.txt | 1 + forge-gui/res/cardsfolder/l/lance.txt | 1 + forge-gui/res/cardsfolder/l/lifetap.txt | 2 ++ forge-gui/res/cardsfolder/l/living_artifact.txt | 1 + forge-gui/res/cardsfolder/l/living_lands.txt | 1 + forge-gui/res/cardsfolder/l/lord_of_atlantis.txt | 1 + forge-gui/res/cardsfolder/l/lord_of_the_pit.txt | 4 +++- forge-gui/res/cardsfolder/m/meekstone.txt | 4 ++++ forge-gui/res/cardsfolder/m/mind_twist.txt | 1 + forge-gui/res/cardsfolder/n/nevinyrrals_disk.txt | 1 + forge-gui/res/cardsfolder/p/pestilence.txt | 1 + forge-gui/res/cardsfolder/r/raise_dead.txt | 1 + forge-gui/res/cardsfolder/r/regeneration.txt | 1 + forge-gui/res/cardsfolder/r/regrowth.txt | 1 + forge-gui/res/cardsfolder/r/resurrection.txt | 3 ++- forge-gui/res/cardsfolder/r/reverse_damage.txt | 3 ++- forge-gui/res/cardsfolder/r/rock_hydra.txt | 1 + forge-gui/res/cardsfolder/s/sacrifice.txt | 1 + forge-gui/res/cardsfolder/s/sandals_of_abdallah.txt | 1 + forge-gui/res/cardsfolder/s/scavenging_ghoul.txt | 1 + forge-gui/res/cardsfolder/s/sedge_troll.txt | 1 + forge-gui/res/cardsfolder/s/simulacrum.txt | 3 ++- forge-gui/res/cardsfolder/s/smoke.txt | 4 ++++ forge-gui/res/cardsfolder/s/soul_net.txt | 2 ++ forge-gui/res/cardsfolder/s/stone_giant.txt | 1 + forge-gui/res/cardsfolder/s/stream_of_life.txt | 1 + forge-gui/res/cardsfolder/s/sunglasses_of_urza.txt | 1 + forge-gui/res/cardsfolder/t/the_hive.txt | 1 + forge-gui/res/cardsfolder/t/throne_of_bone.txt | 1 + forge-gui/res/cardsfolder/w/web.txt | 1 + forge-gui/res/cardsfolder/w/winter_orb.txt | 1 + forge-gui/res/cardsfolder/w/wooden_sphere.txt | 1 + 80 files changed, 102 insertions(+), 13 deletions(-) diff --git a/forge-gui/res/cardsfolder/a/animate_artifact.txt b/forge-gui/res/cardsfolder/a/animate_artifact.txt index f18a131c291..96bace7762e 100644 --- a/forge-gui/res/cardsfolder/a/animate_artifact.txt +++ b/forge-gui/res/cardsfolder/a/animate_artifact.txt @@ -6,4 +6,5 @@ A:SP$ Attach | Cost$ 3 U | ValidTgts$ Artifact | AITgts$ Card.nonCreature | AILo S:Mode$ Continuous | Affected$ Card.AttachedBy+nonCreature | SetPower$ AffectedX | SetToughness$ AffectedX | AddType$ Creature | Description$ As long as enchanted artifact isn't a creature, it's an artifact creature with power and toughness each equal to its mana value. SVar:AffectedX:Count$CardManaCost AI:RemoveDeck:Random +DeckNeeds:Type$Artifact Oracle:Enchant artifact\nAs long as enchanted artifact isn't a creature, it's an artifact creature with power and toughness each equal to its mana value. diff --git a/forge-gui/res/cardsfolder/a/animate_dead.txt b/forge-gui/res/cardsfolder/a/animate_dead.txt index b1924c32163..378e22d60dc 100644 --- a/forge-gui/res/cardsfolder/a/animate_dead.txt +++ b/forge-gui/res/cardsfolder/a/animate_dead.txt @@ -12,4 +12,6 @@ T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.S SVar:TrigSacrifice:DB$ Destroy | Sacrifice$ True | Defined$ DirectRemembered | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ -1 | Description$ Enchanted creature gets -1/-0. +DeckHas:Ability$Graveyard +DeckHints:Ability$Mill|Discard & Keyword$Dredge Oracle:Enchant creature card in a graveyard\nWhen Animate Dead enters the battlefield, if it's on the battlefield, it loses "enchant creature card in a graveyard" and gains "enchant creature put onto the battlefield with Animate Dead." Return enchanted creature card to the battlefield under your control and attach Animate Dead to it. When Animate Dead leaves the battlefield, that creature's controller sacrifices it.\nEnchanted creature gets -1/-0. diff --git a/forge-gui/res/cardsfolder/b/balance.txt b/forge-gui/res/cardsfolder/b/balance.txt index 210556b6b95..cdd9db3ccfb 100644 --- a/forge-gui/res/cardsfolder/b/balance.txt +++ b/forge-gui/res/cardsfolder/b/balance.txt @@ -4,4 +4,6 @@ Types:Sorcery A:SP$ Balance | Cost$ 1 W | Valid$ Land | AILogic$ BalanceCreaturesAndLands | SubAbility$ BalanceHands | SpellDescription$ Each player chooses a number of lands they control equal to the number of lands controlled by the player who controls the fewest, then sacrifices the rest. Players discard cards and sacrifice creatures the same way. SVar:BalanceHands:DB$ Balance | Zone$ Hand | SubAbility$ BalanceCreatures SVar:BalanceCreatures:DB$ Balance | Valid$ Creature +DeckHas:Ability$Discard|Sacrifice +DeckHints:Type$Artifact|Enchantment|Planeswalker Oracle:Each player chooses a number of lands they control equal to the number of lands controlled by the player who controls the fewest, then sacrifices the rest. Players discard cards and sacrifice creatures the same way. diff --git a/forge-gui/res/cardsfolder/b/bazaar_of_baghdad.txt b/forge-gui/res/cardsfolder/b/bazaar_of_baghdad.txt index daad6626903..a194b3d4e2e 100644 --- a/forge-gui/res/cardsfolder/b/bazaar_of_baghdad.txt +++ b/forge-gui/res/cardsfolder/b/bazaar_of_baghdad.txt @@ -3,5 +3,8 @@ ManaCost:no cost Types:Land A:AB$ Draw | Cost$ T | NumCards$ 2 | SpellDescription$ Draw two cards, then discard three cards. | SubAbility$ DBDiscard SVar:DBDiscard:DB$ Discard | Defined$ You | NumCards$ 3 | Mode$ TgtChoose -AI:RemoveDeck:All +AI:RemoveDeck:Random +DeckNeeds:Ability$Graveyard +DeckHas:Ability$Graveyard|Discard +DeckHints:Ability$Graveyard|Discard & Type$Zombie|Necron|Phoenix|Skeleton & Keyword$Unearth|Dredge|Flashback Oracle:{T}: Draw two cards, then discard three cards. diff --git a/forge-gui/res/cardsfolder/b/black_lotus.txt b/forge-gui/res/cardsfolder/b/black_lotus.txt index e4794237562..69f6d1e0f9e 100644 --- a/forge-gui/res/cardsfolder/b/black_lotus.txt +++ b/forge-gui/res/cardsfolder/b/black_lotus.txt @@ -2,4 +2,5 @@ Name:Black Lotus ManaCost:0 Types:Artifact A:AB$ Mana | Cost$ T Sac<1/CARDNAME> | Produced$ Any | Amount$ 3 | AILogic$ BlackLotus | SpellDescription$ Add three mana of any one color. +DeckHas:Ability$Sacrifice Oracle:{T}, Sacrifice Black Lotus: Add three mana of any one color. diff --git a/forge-gui/res/cardsfolder/b/black_vise.txt b/forge-gui/res/cardsfolder/b/black_vise.txt index 5d7a8ee792f..7aa9b7ea65e 100644 --- a/forge-gui/res/cardsfolder/b/black_vise.txt +++ b/forge-gui/res/cardsfolder/b/black_vise.txt @@ -2,7 +2,7 @@ Name:Black Vise ManaCost:1 Types:Artifact K:ETBReplacement:Other:ChooseP -SVar:ChooseP:DB$ ChoosePlayer | Defined$ You | Choices$ Player.Opponent | ChoiceTitle$ Choose an opponent | AILogic$ Curse | SpellDescription$ As CARDNAME enters the battlefield, choose an opponent. +SVar:ChooseP:DB$ ChoosePlayer | Defined$ You | Choices$ Player.Opponent | ChoiceTitle$ Choose an opponent | AILogic$ MostCardsInHand | SpellDescription$ As CARDNAME enters the battlefield, choose an opponent. T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ Player.Chosen | TriggerZones$ Battlefield | Execute$ TrigDamage | TriggerDescription$ At the beginning of the chosen player's upkeep, CARDNAME deals X damage to that player, where X is the number of cards in their hand minus 4. SVar:TrigDamage:DB$ DealDamage | Defined$ ChosenPlayer | NumDmg$ X SVar:X:Count$InChosenHand/Minus.4 diff --git a/forge-gui/res/cardsfolder/b/bottle_of_suleiman.txt b/forge-gui/res/cardsfolder/b/bottle_of_suleiman.txt index be9bcfbb682..82a31a7f394 100644 --- a/forge-gui/res/cardsfolder/b/bottle_of_suleiman.txt +++ b/forge-gui/res/cardsfolder/b/bottle_of_suleiman.txt @@ -4,4 +4,5 @@ Types:Artifact A:AB$ FlipACoin | Cost$ 1 Sac<1/CARDNAME> | WinSubAbility$ DBToken | LoseSubAbility$ DBDamage | SpellDescription$ Flip a coin. If you win the flip, create a 5/5 colorless Djinn artifact creature token with flying. If you lose the flip, Bottle of Suleiman deals 5 damage to you. SVar:DBDamage:DB$ DealDamage | Defined$ You | NumDmg$ 5 SVar:DBToken:DB$ Token | TokenAmount$ 1 | TokenScript$ c_5_5_a_djinn_flying | TokenOwner$ You +DeckHas:Ability$Token & Type$Djinn & Keyword$Flying Oracle:{1}, Sacrifice Bottle of Suleiman: Flip a coin. If you win the flip, create a 5/5 colorless Djinn artifact creature token with flying. If you lose the flip, Bottle of Suleiman deals 5 damage to you. diff --git a/forge-gui/res/cardsfolder/b/burrowing.txt b/forge-gui/res/cardsfolder/b/burrowing.txt index 3e2b74795a9..f8ba15e6ed1 100644 --- a/forge-gui/res/cardsfolder/b/burrowing.txt +++ b/forge-gui/res/cardsfolder/b/burrowing.txt @@ -5,4 +5,5 @@ K:Enchant creature A:SP$ Attach | Cost$ R | ValidTgts$ Creature | AILogic$ Pump S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ Mountainwalk | Description$ Enchanted creature has mountainwalk. AI:RemoveDeck:Random +DeckHas:Keyword$Mountainwalk Oracle:Enchant creature\nEnchanted creature has mountainwalk. (It can't be blocked as long as defending player controls a Mountain.) diff --git a/forge-gui/res/cardsfolder/c/clockwork_beast.txt b/forge-gui/res/cardsfolder/c/clockwork_beast.txt index 4ad0d5bb255..45afbbb6f4f 100644 --- a/forge-gui/res/cardsfolder/c/clockwork_beast.txt +++ b/forge-gui/res/cardsfolder/c/clockwork_beast.txt @@ -7,4 +7,5 @@ T:Mode$ Phase | Phase$ EndCombat | ValidPlayer$ Player | IsPresent$ Card.Self+at SVar:TrigSubCounter:DB$ RemoveCounter | Defined$ Self | CounterType$ P1P0 | CounterNum$ 1 A:AB$ PutCounter | Cost$ X T | Defined$ Self | UpTo$ True | MaxFromEffect$ 7 | CounterType$ P1P0 | CounterNum$ X | ActivationPhases$ Upkeep | PlayerTurn$ True | SpellDescription$ Put up to X +1/+0 counters on CARDNAME. This ability can't cause the total number of +1/+0 counters on CARDNAME to be greater than seven. Activate only during your upkeep. SVar:X:Count$xPaid +DeckHas:Ability$Counters Oracle:Clockwork Beast enters the battlefield with seven +1/+0 counters on it.\nAt end of combat, if Clockwork Beast attacked or blocked this combat, remove a +1/+0 counter from it.\n{X}, {T}: Put up to X +1/+0 counters on Clockwork Beast. This ability can't cause the total number of +1/+0 counters on Clockwork Beast to be greater than seven. Activate only during your upkeep. diff --git a/forge-gui/res/cardsfolder/c/consecrate_land.txt b/forge-gui/res/cardsfolder/c/consecrate_land.txt index 0d35e07d7fe..65d394d017a 100644 --- a/forge-gui/res/cardsfolder/c/consecrate_land.txt +++ b/forge-gui/res/cardsfolder/c/consecrate_land.txt @@ -7,4 +7,5 @@ S:Mode$ Continuous | Affected$ Land.EnchantedBy | AddKeyword$ Indestructible | D S:Mode$ CantAttach | ValidCard$ Aura.Other | Target$ Land.EnchantedBy | Description$ Enchanted land can't be enchanted by other Auras. AI:RemoveDeck:Random SVar:NonStackingAttachEffect:True +DeckHas:Keyword$Indesctructible Oracle:Enchant land\nEnchanted land has indestructible and can't be enchanted by other Auras. diff --git a/forge-gui/res/cardsfolder/c/conversion.txt b/forge-gui/res/cardsfolder/c/conversion.txt index 471cac9b966..88015de04f2 100644 --- a/forge-gui/res/cardsfolder/c/conversion.txt +++ b/forge-gui/res/cardsfolder/c/conversion.txt @@ -4,4 +4,5 @@ Types:Enchantment K:UpkeepCost:W W S:Mode$ Continuous | Affected$ Mountain | AddType$ Plains | RemoveLandTypes$ True | Description$ All Mountains are Plains. AI:RemoveDeck:Random +DeckHints:Keyword$Plainswalk Oracle:At the beginning of your upkeep, sacrifice Conversion unless you pay {W}{W}.\nAll Mountains are Plains. diff --git a/forge-gui/res/cardsfolder/c/copy_artifact.txt b/forge-gui/res/cardsfolder/c/copy_artifact.txt index 23ae1527d44..0d8613e17cf 100644 --- a/forge-gui/res/cardsfolder/c/copy_artifact.txt +++ b/forge-gui/res/cardsfolder/c/copy_artifact.txt @@ -3,4 +3,5 @@ ManaCost:1 U Types:Enchantment K:ETBReplacement:Copy:DBCopy:Optional SVar:DBCopy:DB$ Clone | Choices$ Artifact.Other | AddTypes$ Enchantment | SpellDescription$ You may have CARDNAME enter the battlefield as a copy of any artifact on the battlefield, except it's an enchantment in addition to its other types. +DeckHas:Type$Artifact Oracle:You may have Copy Artifact enter the battlefield as a copy of any artifact on the battlefield, except it's an enchantment in addition to its other types. diff --git a/forge-gui/res/cardsfolder/c/crystal_rod.txt b/forge-gui/res/cardsfolder/c/crystal_rod.txt index 0ca4822e4b8..4409bccf0b2 100644 --- a/forge-gui/res/cardsfolder/c/crystal_rod.txt +++ b/forge-gui/res/cardsfolder/c/crystal_rod.txt @@ -4,4 +4,5 @@ Types:Artifact T:Mode$ SpellCast | ValidCard$ Card.Blue | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigGainLife | TriggerDescription$ Whenever a player casts a blue spell, you may pay {1}. If you do, you gain 1 life. SVar:TrigGainLife:AB$GainLife | Cost$ 1 | Defined$ You | LifeAmount$ 1 AI:RemoveDeck:Random +DeckHas:Ability$LifeGain Oracle:Whenever a player casts a blue spell, you may pay {1}. If you do, you gain 1 life. diff --git a/forge-gui/res/cardsfolder/c/cyclone.txt b/forge-gui/res/cardsfolder/c/cyclone.txt index 3cc356df57a..0f8e594a6d9 100644 --- a/forge-gui/res/cardsfolder/c/cyclone.txt +++ b/forge-gui/res/cardsfolder/c/cyclone.txt @@ -7,4 +7,5 @@ SVar:SacSelf:DB$ Sacrifice | Defined$ Card.Self | UnlessCost$ X | UnlessXColor$ SVar:DBDamageAll:DB$ DamageAll | NumDmg$ X | ValidCards$ Creature | ValidPlayers$ Player SVar:X:Count$CardCounters.WIND AI:RemoveDeck:All +DeckHas:Ability$Counters Oracle:At the beginning of your upkeep, put a wind counter on Cyclone, then sacrifice Cyclone unless you pay {G} for each wind counter on it. If you pay, Cyclone deals damage equal to the number of wind counters on it to each creature and each player. diff --git a/forge-gui/res/cardsfolder/c/cyclopean_tomb.txt b/forge-gui/res/cardsfolder/c/cyclopean_tomb.txt index e1c24f62adf..56e6343e518 100644 --- a/forge-gui/res/cardsfolder/c/cyclopean_tomb.txt +++ b/forge-gui/res/cardsfolder/c/cyclopean_tomb.txt @@ -15,4 +15,6 @@ SVar:DBExileSelf:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ SVar:DBClearRemembered:DB$ Cleanup | ClearRemembered$ True AI:RemoveDeck:All AI:RemoveDeck:Random +DeckHints:Keyword$Swampwalk +DeckHas:Ability$Counters & Type$Swamp Oracle:{2}, {T}: Put a mire counter on target non-Swamp land. That land is a Swamp for as long as it has a mire counter on it. Activate only during your upkeep.\nWhen Cyclopean Tomb is put into a graveyard from the battlefield, at the beginning of each of your upkeeps for the rest of the game, remove all mire counters from a land that a mire counter was put onto with Cyclopean Tomb but that a mire counter has not been removed from with Cyclopean Tomb. diff --git a/forge-gui/res/cardsfolder/d/dandan.txt b/forge-gui/res/cardsfolder/d/dandan.txt index 4df84f0fb08..520a0aa1476 100644 --- a/forge-gui/res/cardsfolder/d/dandan.txt +++ b/forge-gui/res/cardsfolder/d/dandan.txt @@ -6,4 +6,5 @@ S:Mode$ CantAttack | ValidCard$ Card.Self | UnlessDefenderControls$ Island | Des T:Mode$ Always | TriggerZones$ Battlefield | IsPresent$ Island.YouCtrl | PresentCompare$ EQ0 | Execute$ TrigSac | TriggerDescription$ When you control no Islands, sacrifice Dandân. SVar:TrigSac:DB$ Sacrifice | Defined$ Self SVar:NeedsToPlay:Island.YouCtrl +DeckHas:Ability$Sacrifice Oracle:Dandân can't attack unless defending player controls an Island.\nWhen you control no Islands, sacrifice Dandân. diff --git a/forge-gui/res/cardsfolder/d/death_ward.txt b/forge-gui/res/cardsfolder/d/death_ward.txt index 9d8123b5601..42204635f9f 100644 --- a/forge-gui/res/cardsfolder/d/death_ward.txt +++ b/forge-gui/res/cardsfolder/d/death_ward.txt @@ -2,4 +2,5 @@ Name:Death Ward ManaCost:W Types:Instant A:SP$ Regenerate | Cost$ W | ValidTgts$ Creature | TgtPrompt$ Select target creature | SpellDescription$ Regenerate target creature. +DeckHas:Keyword$Regenerate Oracle:Regenerate target creature. diff --git a/forge-gui/res/cardsfolder/d/demonic_hordes.txt b/forge-gui/res/cardsfolder/d/demonic_hordes.txt index e1c97dec5b2..e030f8d9224 100644 --- a/forge-gui/res/cardsfolder/d/demonic_hordes.txt +++ b/forge-gui/res/cardsfolder/d/demonic_hordes.txt @@ -9,4 +9,5 @@ SVar:DBChooseOpponent:DB$ ChoosePlayer | Defined$ You | Choices$ Player.Opponent SVar:DBChooseLand:DB$ ChooseCard | Defined$ ChosenPlayer | Choices$ Land.YouCtrl | Mandatory$ True | ChoiceTitle$ Select a land for opponent to sacrifice | SubAbility$ DBSacLand SVar:DBSacLand:DB$ Destroy | Sacrifice$ True | Defined$ ChosenCard SVar:PlayMain1:FALSE +DeckHas:Ability$Sacrifice Oracle:{T}: Destroy target land.\nAt the beginning of your upkeep, unless you pay {B}{B}{B}, tap Demonic Hordes and sacrifice a land of an opponent's choice. diff --git a/forge-gui/res/cardsfolder/d/diamond_valley.txt b/forge-gui/res/cardsfolder/d/diamond_valley.txt index 910e9eca5f8..3b907b40ccc 100644 --- a/forge-gui/res/cardsfolder/d/diamond_valley.txt +++ b/forge-gui/res/cardsfolder/d/diamond_valley.txt @@ -3,5 +3,6 @@ ManaCost:no cost Types:Land A:AB$ GainLife | Cost$ T Sac<1/Creature> | LifeAmount$ X | SpellDescription$ You gain life equal to the sacrificed creature's toughness. SVar:X:Sacrificed$CardToughness +DeckHas:Ability$Sacrifice AI:RemoveDeck:All Oracle:{T}, Sacrifice a creature: You gain life equal to the sacrificed creature's toughness. diff --git a/forge-gui/res/cardsfolder/d/disrupting_scepter.txt b/forge-gui/res/cardsfolder/d/disrupting_scepter.txt index 57296163f6c..c2fc62e59af 100644 --- a/forge-gui/res/cardsfolder/d/disrupting_scepter.txt +++ b/forge-gui/res/cardsfolder/d/disrupting_scepter.txt @@ -2,4 +2,5 @@ Name:Disrupting Scepter ManaCost:3 Types:Artifact A:AB$ Discard | Cost$ 3 T | ValidTgts$ Player | NumCards$ 1 | Mode$ TgtChoose | PlayerTurn$ True | SpellDescription$ Target player discards a card. Activate only during your turn. +DeckHas:Ability$Discard Oracle:{3}, {T}: Target player discards a card. Activate only during your turn. diff --git a/forge-gui/res/cardsfolder/d/dragon_whelp.txt b/forge-gui/res/cardsfolder/d/dragon_whelp.txt index dab556e2028..41754ba82ec 100644 --- a/forge-gui/res/cardsfolder/d/dragon_whelp.txt +++ b/forge-gui/res/cardsfolder/d/dragon_whelp.txt @@ -5,4 +5,5 @@ PT:2/3 K:Flying A:AB$ Pump | Cost$ R | Defined$ Self | NumAtt$ +1 | ActivationNumberSacrifice$ GE4 | ActivationResolveSub$ DBPump | SpellDescription$ CARDNAME gets +1/+0 until end of turn. If this ability has been activated four or more times this turn, sacrifice CARDNAME at the beginning of the next end step. SVar:DBPump:DB$ Pump | Defined$ Self | AtEOT$ Sacrifice +DeckHas:Ability$Sacrifice Oracle:Flying\n{R}: Dragon Whelp gets +1/+0 until end of turn. If this ability has been activated four or more times this turn, sacrifice Dragon Whelp at the beginning of the next end step. diff --git a/forge-gui/res/cardsfolder/d/drain_life.txt b/forge-gui/res/cardsfolder/d/drain_life.txt index cd19c6cb610..d1a46e4affa 100644 --- a/forge-gui/res/cardsfolder/d/drain_life.txt +++ b/forge-gui/res/cardsfolder/d/drain_life.txt @@ -11,4 +11,5 @@ SVar:Y:Count$TotalDamageDoneByThisTurn SVar:DrainedLifeCard:SVar$Y/LimitMax.Limit SVar:Limit:Count$xPaid SVar:Loyalty:Targeted$CardCounters.LOYALTY +DeckHas:Ability$LifeGain Oracle:Spend only black mana on X.\nDrain Life deals X damage to any target. You gain life equal to the damage dealt, but not more life than the player's life total before the damage was dealt, the planeswalker's loyalty before the damage was dealt, or the creature's toughness. diff --git a/forge-gui/res/cardsfolder/d/drop_of_honey.txt b/forge-gui/res/cardsfolder/d/drop_of_honey.txt index fe774a2c22b..d1542958c50 100644 --- a/forge-gui/res/cardsfolder/d/drop_of_honey.txt +++ b/forge-gui/res/cardsfolder/d/drop_of_honey.txt @@ -7,5 +7,6 @@ SVar:DBDestroy:DB$ Destroy | Defined$ ChosenCard | NoRegen$ True T:Mode$ Always | TriggerZones$ Battlefield | IsPresent$ Creature | PresentCompare$ EQ0 | Execute$ TrigSac | TriggerDescription$ When there are no creatures on the battlefield, sacrifice CARDNAME. SVar:TrigSac:DB$ Sacrifice | Defined$ Self SVar:NeedsToPlay:Creature.YouDontCtrl+leastPower +DeckHas:Ability$Sacrifice AI:RemoveDeck:All Oracle:At the beginning of your upkeep, destroy the creature with the least power. It can't be regenerated. If two or more creatures are tied for least power, you choose one of them.\nWhen there are no creatures on the battlefield, sacrifice Drop of Honey. diff --git a/forge-gui/res/cardsfolder/e/el_hajjaj.txt b/forge-gui/res/cardsfolder/e/el_hajjaj.txt index 70e5603197d..3d4a224af0a 100644 --- a/forge-gui/res/cardsfolder/e/el_hajjaj.txt +++ b/forge-gui/res/cardsfolder/e/el_hajjaj.txt @@ -6,4 +6,5 @@ T:Mode$ DamageDealtOnce | ValidSource$ Card.Self | Execute$ TrigGain | TriggerZo SVar:TrigGain:DB$ GainLife | Defined$ You | LifeAmount$ X SVar:X:TriggerCount$DamageAmount SVar:HasCombatEffect:TRUE +DeckHas:Ability$LifeGain Oracle:Whenever El-Hajjâj deals damage, you gain that much life. diff --git a/forge-gui/res/cardsfolder/e/erhnam_djinn.txt b/forge-gui/res/cardsfolder/e/erhnam_djinn.txt index 7efd6503344..80a25ca493d 100644 --- a/forge-gui/res/cardsfolder/e/erhnam_djinn.txt +++ b/forge-gui/res/cardsfolder/e/erhnam_djinn.txt @@ -4,4 +4,5 @@ Types:Creature Djinn PT:4/5 T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ At the beginning of your upkeep, target non-Wall creature an opponent controls gains forestwalk until your next upkeep. (It can't be blocked as long as defending player controls a Forest.) SVar:TrigPump:DB$ Pump | ValidTgts$ Creature.nonWall+OppCtrl | TgtPrompt$ Select target non-Wall creature an opponent controls | KW$ Forestwalk | Duration$ UntilYourNextUpkeep +DeckHas:Ability$Forestwalk Oracle:At the beginning of your upkeep, target non-Wall creature an opponent controls gains forestwalk until your next upkeep. (It can't be blocked as long as defending player controls a Forest.) diff --git a/forge-gui/res/cardsfolder/e/evil_presence.txt b/forge-gui/res/cardsfolder/e/evil_presence.txt index e929e4a3754..20d6dd4d77b 100644 --- a/forge-gui/res/cardsfolder/e/evil_presence.txt +++ b/forge-gui/res/cardsfolder/e/evil_presence.txt @@ -4,4 +4,5 @@ Types:Enchantment Aura K:Enchant land A:SP$ Attach | Cost$ B | ValidTgts$ Land | AILogic$ ChangeType S:Mode$ Continuous | Affected$ Card.EnchantedBy | AddType$ Swamp | RemoveLandTypes$ True | Description$ Enchanted land is a Swamp. +DeckHints:Keyword$Swampwalk Oracle:Enchant land\nEnchanted land is a Swamp. diff --git a/forge-gui/res/cardsfolder/f/farmstead.txt b/forge-gui/res/cardsfolder/f/farmstead.txt index 15921940697..7193a328fd2 100644 --- a/forge-gui/res/cardsfolder/f/farmstead.txt +++ b/forge-gui/res/cardsfolder/f/farmstead.txt @@ -6,4 +6,5 @@ A:SP$ Attach | Cost$ W W W | ValidTgts$ Land | AILogic$ Pump S:Mode$ Continuous | Affected$ Card.EnchantedBy | AddTrigger$ TriggerGainLife | AddSVar$ FarmsteadGainLife | Description$ Enchanted land has "At the beginning of your upkeep, you may pay {W}{W}. If you do, you gain 1 life." SVar:TriggerGainLife:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ FarmsteadGainLife | OptionalDecider$ You | TriggerZones$ Battlefield | TriggerDescription$ Enchanted land has "At the beginning of your upkeep, you may pay {W}{W}. If you do, you gain 1 life." SVar:FarmsteadGainLife:AB$GainLife | Cost$ W W | Defined$ You | LifeAmount$ 1 +DeckHas:Ability$LifeGain Oracle:Enchant land\nEnchanted land has "At the beginning of your upkeep, you may pay {W}{W}. If you do, you gain 1 life." diff --git a/forge-gui/res/cardsfolder/f/fear.txt b/forge-gui/res/cardsfolder/f/fear.txt index 5f5aade3d56..406dd6f4bae 100644 --- a/forge-gui/res/cardsfolder/f/fear.txt +++ b/forge-gui/res/cardsfolder/f/fear.txt @@ -4,4 +4,5 @@ Types:Enchantment Aura K:Enchant creature A:SP$ Attach | Cost$ B B | ValidTgts$ Creature | AILogic$ Pump S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ Fear | Description$ Enchanted creature has fear. (It can't be blocked except by artifact creatures and/or black creatures.) +DeckHas:Keyword$Fear Oracle:Enchant creature (Target a creature as you cast this. This card enters the battlefield attached to that creature.)\nEnchanted creature has fear. (It can't be blocked except by artifact creatures and/or black creatures.) diff --git a/forge-gui/res/cardsfolder/f/fishliver_oil.txt b/forge-gui/res/cardsfolder/f/fishliver_oil.txt index 9d448458de3..24256e7876c 100644 --- a/forge-gui/res/cardsfolder/f/fishliver_oil.txt +++ b/forge-gui/res/cardsfolder/f/fishliver_oil.txt @@ -4,4 +4,5 @@ Types:Enchantment Aura K:Enchant creature A:SP$ Attach | Cost$ 1 U | ValidTgts$ Creature | AILogic$ Pump S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ Islandwalk | Description$ Enchanted creature has islandwalk. (It can't be blocked as long as defending player controls an Island.) +DeckHas:Keyword$Islandwalk Oracle:Enchant creature (Target a creature as you cast this. This card enters the battlefield attached to that creature.)\nEnchanted creature has islandwalk. (It can't be blocked as long as defending player controls an Island.) diff --git a/forge-gui/res/cardsfolder/f/flashfires.txt b/forge-gui/res/cardsfolder/f/flashfires.txt index a481099ccd4..1245b7b24c0 100644 --- a/forge-gui/res/cardsfolder/f/flashfires.txt +++ b/forge-gui/res/cardsfolder/f/flashfires.txt @@ -1,6 +1,6 @@ Name:Flashfires ManaCost:3 R Types:Sorcery -A:SP$ DestroyAll | Cost$ 3 R | ValidCards$ Plains | SpellDescription$ Destroy all Plains. +A:SP$ DestroyAll | ValidCards$ Plains | SpellDescription$ Destroy all Plains. AI:RemoveDeck:Random Oracle:Destroy all Plains. diff --git a/forge-gui/res/cardsfolder/f/flight.txt b/forge-gui/res/cardsfolder/f/flight.txt index 34bb428a0c0..1f00f739f85 100644 --- a/forge-gui/res/cardsfolder/f/flight.txt +++ b/forge-gui/res/cardsfolder/f/flight.txt @@ -4,4 +4,5 @@ Types:Enchantment Aura K:Enchant creature A:SP$ Attach | Cost$ U | ValidTgts$ Creature | AILogic$ Pump S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ Flying | Description$ Enchanted creature has flying. (It can't be blocked except by creatures with flying or reach.) +DeckHas:Keyword$Flying Oracle:Enchant creature\nEnchanted creature has flying. diff --git a/forge-gui/res/cardsfolder/f/flying_carpet.txt b/forge-gui/res/cardsfolder/f/flying_carpet.txt index 1dca4b10856..ac23b24a954 100644 --- a/forge-gui/res/cardsfolder/f/flying_carpet.txt +++ b/forge-gui/res/cardsfolder/f/flying_carpet.txt @@ -2,4 +2,5 @@ Name:Flying Carpet ManaCost:4 Types:Artifact A:AB$ Pump | Cost$ 2 T | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Flying | SpellDescription$ Target creature gains flying until end of turn. +DeckHas:Keyword$Flying Oracle:{2}, {T}: Target creature gains flying until end of turn. diff --git a/forge-gui/res/cardsfolder/f/fungusaur.txt b/forge-gui/res/cardsfolder/f/fungusaur.txt index ac5be4f017f..4fcbcb7137c 100644 --- a/forge-gui/res/cardsfolder/f/fungusaur.txt +++ b/forge-gui/res/cardsfolder/f/fungusaur.txt @@ -5,4 +5,5 @@ PT:2/2 T:Mode$ DamageDoneOnce | ValidTarget$ Card.Self | Execute$ TrigPutCounter | TriggerDescription$ Whenever CARDNAME is dealt damage, put a +1/+1 counter on it. SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1 SVar:HasCombatEffect:TRUE +DeckHas:Ability$Counters Oracle:Whenever Fungusaur is dealt damage, put a +1/+1 counter on it. diff --git a/forge-gui/res/cardsfolder/g/gaeas_liege.txt b/forge-gui/res/cardsfolder/g/gaeas_liege.txt index 8a90bfa8333..73434b6b047 100644 --- a/forge-gui/res/cardsfolder/g/gaeas_liege.txt +++ b/forge-gui/res/cardsfolder/g/gaeas_liege.txt @@ -2,13 +2,12 @@ Name:Gaea's Liege ManaCost:3 G G G Types:Creature Avatar PT:*/* -S:Mode$ Continuous | EffectZone$ All | CharacteristicDefining$ True | SetPower$ X | SetToughness$ X | CheckSVar$ A | SVarCompare$ EQ1 | Description$ As long as CARDNAME isn't attacking, its power and toughness are each equal to the number of Forests you control. As long as CARDNAME is attacking, its power and toughness are each equal to the number of Forests defending player controls. -SVar:A:Count$Valid Card.Self+notattacking +S:Mode$ Continuous | EffectZone$ All | CharacteristicDefining$ True | IsPresent$ Card.Self+notattacking | SetPower$ X | SetToughness$ X | Description$ As long as CARDNAME isn't attacking, its power and toughness are each equal to the number of Forests you control. As long as CARDNAME is attacking, its power and toughness are each equal to the number of Forests defending player controls. SVar:X:Count$Valid Forest.YouCtrl -S:Mode$ Continuous | EffectZone$ All | CharacteristicDefining$ True | SetPower$ Y | SetToughness$ Y | CheckSVar$ B | SVarCompare$ EQ1 -SVar:B:Count$Valid Card.Self+attacking +S:Mode$ Continuous | EffectZone$ All | CharacteristicDefining$ True | IsPresent$ Card.Self+attacking | SetPower$ Y | SetToughness$ Y SVar:Y:Count$Valid Forest.DefenderCtrl A:AB$ Animate | Cost$ T | ValidTgts$ Land | TgtPrompt$ Select target land | Types$ Forest | RemoveLandTypes$ True | Duration$ UntilHostLeavesPlay | SpellDescription$ Target land becomes a Forest until CARDNAME leaves the battlefield. SVar:BuffedBy:Forest AI:RemoveDeck:All +DeckHints:Type$Forest & Keyword$Forestwalk & Name$Yavimaya, Cradle of Growth Oracle:As long as Gaea's Liege isn't attacking, its power and toughness are each equal to the number of Forests you control. As long as Gaea's Liege is attacking, its power and toughness are each equal to the number of Forests defending player controls.\n{T}: Target land becomes a Forest until Gaea's Liege leaves the battlefield. diff --git a/forge-gui/res/cardsfolder/g/gauntlet_of_might.txt b/forge-gui/res/cardsfolder/g/gauntlet_of_might.txt index f23fa52f149..9d6f0c3b735 100644 --- a/forge-gui/res/cardsfolder/g/gauntlet_of_might.txt +++ b/forge-gui/res/cardsfolder/g/gauntlet_of_might.txt @@ -5,5 +5,5 @@ S:Mode$ Continuous | Affected$ Creature.Red | AddPower$ 1 | AddToughness$ 1 | De T:Mode$ TapsForMana | ValidCard$ Mountain | Execute$ TrigMana | TriggerZones$ Battlefield | Static$ True | TriggerDescription$ Whenever a Mountain is tapped for mana, its controller adds an additional {R}. SVar:TrigMana:DB$ Mana | Produced$ R | Amount$ 1 | Defined$ TriggeredCardController AI:RemoveDeck:Random -DeckNeeds:Color$Red +DeckNeeds:Color$Red & Type$Mountain Oracle:Red creatures get +1/+1.\nWhenever a Mountain is tapped for mana, its controller adds an additional {R}. diff --git a/forge-gui/res/cardsfolder/g/ghazban_ogre.txt b/forge-gui/res/cardsfolder/g/ghazban_ogre.txt index 6a0a8aa9d05..d20f373831d 100644 --- a/forge-gui/res/cardsfolder/g/ghazban_ogre.txt +++ b/forge-gui/res/cardsfolder/g/ghazban_ogre.txt @@ -4,5 +4,6 @@ Types:Creature Ogre PT:2/2 T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | APlayerHasMoreLifeThanEachOther$ True | Execute$ TrigOppControl | TriggerDescription$ At the beginning of your upkeep, if a player has more life than each other player, the player with the most life gains control of Ghazbán Ogre. SVar:TrigOppControl:DB$ GainControl | Defined$ Self | NewController$ Player.withMostLife -AI:RemoveDeck:All +AI:RemoveDeck:Random +DeckNeeds:Ability$LifeGain Oracle:At the beginning of your upkeep, if a player has more life than each other player, the player with the most life gains control of Ghazbán Ogre. diff --git a/forge-gui/res/cardsfolder/g/goblin_balloon_brigade.txt b/forge-gui/res/cardsfolder/g/goblin_balloon_brigade.txt index aac3e1c5e23..6aebd90a1b5 100644 --- a/forge-gui/res/cardsfolder/g/goblin_balloon_brigade.txt +++ b/forge-gui/res/cardsfolder/g/goblin_balloon_brigade.txt @@ -3,4 +3,5 @@ ManaCost:R Types:Creature Goblin Warrior PT:1/1 A:AB$ Pump | Cost$ R | KW$ Flying | Defined$ Self | SpellDescription$ CARDNAME gains flying until end of turn. +DeckHas:Keyword$Flying Oracle:{R}: Goblin Balloon Brigade gains flying until end of turn. diff --git a/forge-gui/res/cardsfolder/g/guardian_beast.txt b/forge-gui/res/cardsfolder/g/guardian_beast.txt index dadd8fde632..024c8343427 100644 --- a/forge-gui/res/cardsfolder/g/guardian_beast.txt +++ b/forge-gui/res/cardsfolder/g/guardian_beast.txt @@ -4,4 +4,5 @@ Types:Creature Beast PT:2/4 S:Mode$ Continuous | Affected$ Artifact.nonCreature+YouCtrl | AddKeyword$ Indestructible | AddHiddenKeyword$ Other players can't gain control of CARDNAME. | IsPresent$ Card.Self+untapped | Description$ As long as CARDNAME is untapped, noncreature artifacts you control have indestructible, and other players can't gain control of them. S:Mode$ CantAttach | ValidCardToTarget$ Aura.NotAttachedTo | Target$ Artifact.nonCreature+YouCtrl | IsPresent$ Card.Self+untapped | Description$ As long as CARDNAME is untapped, noncreature artifacts you control can't be enchanted, This effect doesn't remove Auras already attached to those artifacts. +DeckHas:Keyword$Indestructible Oracle:As long as Guardian Beast is untapped, noncreature artifacts you control can't be enchanted, they have indestructible, and other players can't gain control of them. This effect doesn't remove Auras already attached to those artifacts. diff --git a/forge-gui/res/cardsfolder/h/healing_salve.txt b/forge-gui/res/cardsfolder/h/healing_salve.txt index afb6395c7fb..77e2b7b7b46 100644 --- a/forge-gui/res/cardsfolder/h/healing_salve.txt +++ b/forge-gui/res/cardsfolder/h/healing_salve.txt @@ -4,4 +4,5 @@ Types:Instant A:SP$ Charm | Cost$ W | Choices$ DBGainLife,DBPreventDmg | CharmNum$ 1 SVar:DBGainLife:DB$ GainLife | ValidTgts$ Player | TgtPrompt$ Select target player | LifeAmount$ 3 | SpellDescription$ Target player gains 3 life. SVar:DBPreventDmg:DB$ PreventDamage | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | Amount$ 3 | SpellDescription$ Prevent the next 3 damage that would be dealt to any target this turn. +DeckHas:Ability$LifeGain Oracle:Choose one —\n• Target player gains 3 life.\n• Prevent the next 3 damage that would be dealt to any target this turn. diff --git a/forge-gui/res/cardsfolder/h/helm_of_chatzuk.txt b/forge-gui/res/cardsfolder/h/helm_of_chatzuk.txt index ea7e2b85490..a1d276d583c 100644 --- a/forge-gui/res/cardsfolder/h/helm_of_chatzuk.txt +++ b/forge-gui/res/cardsfolder/h/helm_of_chatzuk.txt @@ -3,4 +3,5 @@ ManaCost:1 Types:Artifact A:AB$ Pump | Cost$ 1 T | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Banding | SpellDescription$ Target creature gains banding until end of turn. AI:RemoveDeck:All +DeckHas:Keyword$Banding Oracle:{1}, {T}: Target creature gains banding until end of turn. (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding a player controls are blocking or being blocked by a creature, that player divides that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.) diff --git a/forge-gui/res/cardsfolder/h/hypnotic_specter.txt b/forge-gui/res/cardsfolder/h/hypnotic_specter.txt index 267908c914a..543cb615eb1 100644 --- a/forge-gui/res/cardsfolder/h/hypnotic_specter.txt +++ b/forge-gui/res/cardsfolder/h/hypnotic_specter.txt @@ -5,4 +5,5 @@ PT:2/2 K:Flying T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Opponent | Execute$ TrigDiscard | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals damage to an opponent, that player discards a card at random. SVar:TrigDiscard:DB$ Discard | Defined$ TriggeredTarget | NumCards$ 1 | Mode$ Random +DeckHas:Ability$Discard Oracle:Flying\nWhenever Hypnotic Specter deals damage to an opponent, that player discards a card at random. diff --git a/forge-gui/res/cardsfolder/i/instill_energy.txt b/forge-gui/res/cardsfolder/i/instill_energy.txt index 2ba3a94df86..e74c14ecd33 100644 --- a/forge-gui/res/cardsfolder/i/instill_energy.txt +++ b/forge-gui/res/cardsfolder/i/instill_energy.txt @@ -6,4 +6,5 @@ A:SP$ Attach | Cost$ G | ValidTgts$ Creature | AILogic$ Pump A:AB$ Untap | Cost$ 0 | PlayerTurn$ True | ActivationLimit$ 1 | Defined$ Enchanted | SpellDescription$ Untap enchanted creature. Activate only during your turn and only once each turn. S:Mode$ CanAttackIfHaste | ValidCard$ Creature.EnchantedBy | Description$ Enchanted creature can attack as though it had haste. SVar:NonStackingAttachEffect:True +DeckHas:Keyword$Haste Oracle:Enchant creature\nEnchanted creature can attack as though it had haste.\n{0}: Untap enchanted creature. Activate only during your turn and only once each turn. diff --git a/forge-gui/res/cardsfolder/i/iron_star.txt b/forge-gui/res/cardsfolder/i/iron_star.txt index 45978185cd0..da57791a047 100644 --- a/forge-gui/res/cardsfolder/i/iron_star.txt +++ b/forge-gui/res/cardsfolder/i/iron_star.txt @@ -4,4 +4,5 @@ Types:Artifact T:Mode$ SpellCast | ValidCard$ Card.Red | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigGainLife | TriggerDescription$ Whenever a player casts a red spell, you may pay {1}. If you do, you gain 1 life. SVar:TrigGainLife:AB$GainLife | Cost$ 1 | Defined$ You | LifeAmount$ 1 AI:RemoveDeck:Random +DeckHas:Ability$LifeGain Oracle:Whenever a player casts a red spell, you may pay {1}. If you do, you gain 1 life. diff --git a/forge-gui/res/cardsfolder/i/island_fish_jasconius.txt b/forge-gui/res/cardsfolder/i/island_fish_jasconius.txt index e455256b438..d9447f73534 100644 --- a/forge-gui/res/cardsfolder/i/island_fish_jasconius.txt +++ b/forge-gui/res/cardsfolder/i/island_fish_jasconius.txt @@ -9,4 +9,5 @@ SVar:TrigSac:DB$ Sacrifice | Defined$ Self T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigUntap | TriggerDescription$ At the beginning of your upkeep, you may pay {U}{U}{U}. If you do, untap CARDNAME. SVar:TrigUntap:AB$Untap | Cost$ U U U | Defined$ Self SVar:NeedsToPlay:Island.YouCtrl +DeckHas:Ability$Sacrifice Oracle:Island Fish Jasconius doesn't untap during your untap step.\nAt the beginning of your upkeep, you may pay {U}{U}{U}. If you do, untap Island Fish Jasconius.\nIsland Fish Jasconius can't attack unless defending player controls an Island.\nWhen you control no Islands, sacrifice Island Fish Jasconius. diff --git a/forge-gui/res/cardsfolder/i/ivory_cup.txt b/forge-gui/res/cardsfolder/i/ivory_cup.txt index 044ff2672be..720ad718d68 100644 --- a/forge-gui/res/cardsfolder/i/ivory_cup.txt +++ b/forge-gui/res/cardsfolder/i/ivory_cup.txt @@ -4,4 +4,5 @@ Types:Artifact T:Mode$ SpellCast | ValidCard$ Card.White | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigGainLife | TriggerDescription$ Whenever a player casts a white spell, you may pay {1}. If you do, you gain 1 life. SVar:TrigGainLife:AB$GainLife | Cost$ 1 | Defined$ You | LifeAmount$ 1 AI:RemoveDeck:Random +DeckHas:Keyword$LifeGain Oracle:Whenever a player casts a white spell, you may pay {1}. If you do, you gain 1 life. diff --git a/forge-gui/res/cardsfolder/j/jade_statue.txt b/forge-gui/res/cardsfolder/j/jade_statue.txt index d6bd1851365..e58e255912e 100644 --- a/forge-gui/res/cardsfolder/j/jade_statue.txt +++ b/forge-gui/res/cardsfolder/j/jade_statue.txt @@ -2,4 +2,5 @@ Name:Jade Statue ManaCost:4 Types:Artifact A:AB$ Animate | Cost$ 2 | Defined$ Self | Power$ 3 | Toughness$ 6 | Types$ Creature,Artifact,Golem | Duration$ UntilEndOfCombat | ActivationPhases$ BeginCombat->EndCombat | SpellDescription$ CARDNAME becomes a 3/6 Golem artifact creature until end of combat. Activate only during combat. +DeckHas:Type$Golem|Creature Oracle:{2}: Jade Statue becomes a 3/6 Golem artifact creature until end of combat. Activate only during combat. diff --git a/forge-gui/res/cardsfolder/j/jandors_ring.txt b/forge-gui/res/cardsfolder/j/jandors_ring.txt index 6bb9639ad5b..081b8e56224 100644 --- a/forge-gui/res/cardsfolder/j/jandors_ring.txt +++ b/forge-gui/res/cardsfolder/j/jandors_ring.txt @@ -3,4 +3,5 @@ ManaCost:6 Types:Artifact A:AB$ Draw | Cost$ 2 T Discard<1/LastDrawn> | NumCards$ 1 | SpellDescription$ Draw a card. AI:RemoveDeck:All +DeckHas:Ability$Discard Oracle:{2}, {T}, Discard the last card you drew this turn: Draw a card. diff --git a/forge-gui/res/cardsfolder/j/jump.txt b/forge-gui/res/cardsfolder/j/jump.txt index a1b708baefc..5ddae1a15eb 100644 --- a/forge-gui/res/cardsfolder/j/jump.txt +++ b/forge-gui/res/cardsfolder/j/jump.txt @@ -2,4 +2,5 @@ Name:Jump ManaCost:U Types:Instant A:SP$ Pump | Cost$ U | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Flying | SpellDescription$ Target creature gains flying until end of turn. +DeckHas:Keyword$Flying Oracle:Target creature gains flying until end of turn. diff --git a/forge-gui/res/cardsfolder/k/kormus_bell.txt b/forge-gui/res/cardsfolder/k/kormus_bell.txt index 9d8fe9a5e96..6b0d0d07cda 100644 --- a/forge-gui/res/cardsfolder/k/kormus_bell.txt +++ b/forge-gui/res/cardsfolder/k/kormus_bell.txt @@ -3,5 +3,6 @@ ManaCost:4 Types:Artifact S:Mode$ Continuous | Affected$ Swamp | SetPower$ 1 | SetToughness$ 1 | AddType$ Creature | SetColor$ Black | Description$ All Swamps are 1/1 black creatures that are still lands. SVar:NonStackingEffect:True +DeckHints:Name$Urborg, Tomb of Yawgmoth AI:RemoveDeck:Random Oracle:All Swamps are 1/1 black creatures that are still lands. diff --git a/forge-gui/res/cardsfolder/l/lance.txt b/forge-gui/res/cardsfolder/l/lance.txt index 0cf5943ce44..1c70b8eaf55 100644 --- a/forge-gui/res/cardsfolder/l/lance.txt +++ b/forge-gui/res/cardsfolder/l/lance.txt @@ -4,4 +4,5 @@ Types:Enchantment Aura K:Enchant creature A:SP$ Attach | Cost$ W | ValidTgts$ Creature | AILogic$ Pump S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ First Strike | Description$ Enchanted creature has first strike. +DeckHas:Keyword$FirstStrike Oracle:Enchant creature\nEnchanted creature has first strike. diff --git a/forge-gui/res/cardsfolder/l/lifetap.txt b/forge-gui/res/cardsfolder/l/lifetap.txt index 4ce8b335c8d..2558fb1535b 100644 --- a/forge-gui/res/cardsfolder/l/lifetap.txt +++ b/forge-gui/res/cardsfolder/l/lifetap.txt @@ -3,5 +3,7 @@ ManaCost:U U Types:Enchantment T:Mode$ Taps | ValidCard$ Forest.OppCtrl | TriggerZones$ Battlefield | Execute$ TrigGainLife | TriggerDescription$ Whenever a Forest an opponent controls becomes tapped, you gain 1 life. SVar:TrigGainLife:DB$ GainLife | LifeAmount$ 1 +DeckHas:Ability$LifeGain +DeckHints:Name$Yavimaya, Cradle of Growth AI:RemoveDeck:Random Oracle:Whenever a Forest an opponent controls becomes tapped, you gain 1 life. diff --git a/forge-gui/res/cardsfolder/l/living_artifact.txt b/forge-gui/res/cardsfolder/l/living_artifact.txt index a73e7e13bd4..f2e5f8c921a 100644 --- a/forge-gui/res/cardsfolder/l/living_artifact.txt +++ b/forge-gui/res/cardsfolder/l/living_artifact.txt @@ -8,4 +8,5 @@ SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ VITALITY | Cou SVar:X:TriggerCount$DamageAmount T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigGainLife | IsPresent$ Card.Self+counters_GE1_VITALITY | OptionalDecider$ You | TriggerDescription$ At the beginning of your upkeep, you may remove a vitality counter from CARDNAME. If you do, you gain 1 life. SVar:TrigGainLife:AB$ GainLife | Cost$ SubCounter<1/VITALITY> | Defined$ You | LifeAmount$ 1 +DeckHas:Ability$LifeGain|Counters Oracle:Enchant artifact\nWhenever you're dealt damage, put that many vitality counters on Living Artifact.\nAt the beginning of your upkeep, you may remove a vitality counter from Living Artifact. If you do, you gain 1 life. diff --git a/forge-gui/res/cardsfolder/l/living_lands.txt b/forge-gui/res/cardsfolder/l/living_lands.txt index d3bd2f85ae2..94c3c968880 100644 --- a/forge-gui/res/cardsfolder/l/living_lands.txt +++ b/forge-gui/res/cardsfolder/l/living_lands.txt @@ -4,4 +4,5 @@ Types:Enchantment S:Mode$ Continuous | Affected$ Forest | SetPower$ 1 | SetToughness$ 1 | AddType$ Creature | Description$ All Forests are 1/1 creatures that are still lands. SVar:NonStackingEffect:True AI:RemoveDeck:Random +DeckHints:Name$Yavimaya, Cradle of Growth Oracle:All Forests are 1/1 creatures that are still lands. diff --git a/forge-gui/res/cardsfolder/l/lord_of_atlantis.txt b/forge-gui/res/cardsfolder/l/lord_of_atlantis.txt index f29d8249a4b..891015eff15 100644 --- a/forge-gui/res/cardsfolder/l/lord_of_atlantis.txt +++ b/forge-gui/res/cardsfolder/l/lord_of_atlantis.txt @@ -4,5 +4,6 @@ Types:Creature Merfolk PT:2/2 S:Mode$ Continuous | Affected$ Card.Merfolk+Other | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ Islandwalk | Description$ Other Merfolk get +1/+1 and have islandwalk. (They can't be blocked as long as defending player controls an Island.) SVar:PlayMain1:TRUE +DeckHas:Keyword$Islandwalk DeckHints:Type$Merfolk Oracle:Other Merfolk get +1/+1 and have islandwalk. (They can't be blocked as long as defending player controls an Island.) diff --git a/forge-gui/res/cardsfolder/l/lord_of_the_pit.txt b/forge-gui/res/cardsfolder/l/lord_of_the_pit.txt index 20a5954a8d7..05f08cd8085 100644 --- a/forge-gui/res/cardsfolder/l/lord_of_the_pit.txt +++ b/forge-gui/res/cardsfolder/l/lord_of_the_pit.txt @@ -9,5 +9,7 @@ SVar:TrigSac:DB$ Sacrifice | Defined$ You | SacValid$ Creature.Other | SubAbilit SVar:DBDamage:DB$ DealDamage | Defined$ You | NumDmg$ 7 | ConditionCheckSVar$ X | ConditionSVarCompare$ LT1 | SubAbility$ DBCleanup SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True SVar:X:Remembered$Amount -AI:RemoveDeck:Random +DeckHas:Ability$Sacrifice +DeckHints:Ability$Sacrifice|Token +SVar:NeedsToPlay:Creature.YouCtrl Oracle:Flying, trample\nAt the beginning of your upkeep, sacrifice a creature other than Lord of the Pit. If you can't, Lord of the Pit deals 7 damage to you. diff --git a/forge-gui/res/cardsfolder/m/meekstone.txt b/forge-gui/res/cardsfolder/m/meekstone.txt index 89a726572eb..ad8f3a4bc73 100644 --- a/forge-gui/res/cardsfolder/m/meekstone.txt +++ b/forge-gui/res/cardsfolder/m/meekstone.txt @@ -4,4 +4,8 @@ Types:Artifact S:Mode$ Continuous | Affected$ Creature.powerGE3 | AddHiddenKeyword$ CARDNAME doesn't untap during your untap step. | Description$ Creatures with power 3 or greater don't untap during their controllers' untap steps. SVar:NonStackingEffect:True AI:RemoveDeck:Random +SVar:NeedsToPlayVar:CountOpps GTCountMe +SVar:CountOpp:Count$Valid Creature.OppCtrl+PowerGE3/LimitMax.5 +SVar:CountMe:Count$Valid Creature.YouCtrl+PowerGE3 +DeckHints:Type$Enchantment|Artifact|Planeswalker & Type$Wall & Keyword$Defender Oracle:Creatures with power 3 or greater don't untap during their controllers' untap steps. diff --git a/forge-gui/res/cardsfolder/m/mind_twist.txt b/forge-gui/res/cardsfolder/m/mind_twist.txt index 7d79f077058..066aa527008 100644 --- a/forge-gui/res/cardsfolder/m/mind_twist.txt +++ b/forge-gui/res/cardsfolder/m/mind_twist.txt @@ -3,4 +3,5 @@ ManaCost:X B Types:Sorcery A:SP$ Discard | Cost$ X B | ValidTgts$ Player | NumCards$ X | Mode$ Random | SpellDescription$ Target player discards X cards at random. SVar:X:Count$xPaid +DeckHas:Ability$Discard Oracle:Target player discards X cards at random. diff --git a/forge-gui/res/cardsfolder/n/nevinyrrals_disk.txt b/forge-gui/res/cardsfolder/n/nevinyrrals_disk.txt index 3db966f1342..b0473bd9823 100644 --- a/forge-gui/res/cardsfolder/n/nevinyrrals_disk.txt +++ b/forge-gui/res/cardsfolder/n/nevinyrrals_disk.txt @@ -4,4 +4,5 @@ Types:Artifact K:CARDNAME enters the battlefield tapped. A:AB$ DestroyAll | Cost$ 1 T | ValidCards$ Artifact,Creature,Enchantment | SpellDescription$ Destroy all artifacts, creatures, and enchantments. SVar:NonStackingEffect:True +DeckHints:Type$Planeswalker & Name$Nevinyrral, Urborg Tyrant Oracle:Nevinyrral's Disk enters the battlefield tapped.\n{1}, {T}: Destroy all artifacts, creatures, and enchantments. diff --git a/forge-gui/res/cardsfolder/p/pestilence.txt b/forge-gui/res/cardsfolder/p/pestilence.txt index 579ca4b907d..87409ca2b4a 100644 --- a/forge-gui/res/cardsfolder/p/pestilence.txt +++ b/forge-gui/res/cardsfolder/p/pestilence.txt @@ -6,4 +6,5 @@ SVar:TrigSac:DB$ Sacrifice | Defined$ Self A:AB$ DamageAll | Cost$ B | NumDmg$ 1 | ValidCards$ Creature | ValidPlayers$ Player | ValidDescription$ each creature and each player. | AILogic$ DmgAllCreaturesAndPlayers | SpellDescription$ CARDNAME deals 1 damage to each creature and each player. SVar:NeedsToPlay:Creature SVar:NonStackingEffect:True +DeckHas:Ability$Sacrifice Oracle:At the beginning of the end step, if no creatures are on the battlefield, sacrifice Pestilence.\n{B}: Pestilence deals 1 damage to each creature and each player. diff --git a/forge-gui/res/cardsfolder/r/raise_dead.txt b/forge-gui/res/cardsfolder/r/raise_dead.txt index bc24b12d9c2..8bddea13553 100644 --- a/forge-gui/res/cardsfolder/r/raise_dead.txt +++ b/forge-gui/res/cardsfolder/r/raise_dead.txt @@ -2,4 +2,5 @@ Name:Raise Dead ManaCost:B Types:Sorcery A:SP$ ChangeZone | Cost$ B | Origin$ Graveyard | Destination$ Hand | TgtPrompt$ Choose target creature card in your graveyard | ValidTgts$ Creature.YouCtrl | SpellDescription$ Return target creature card from your graveyard to your hand. +DeckHas:Ability$Graveyard Oracle:Return target creature card from your graveyard to your hand. diff --git a/forge-gui/res/cardsfolder/r/regeneration.txt b/forge-gui/res/cardsfolder/r/regeneration.txt index 675e10d67ec..60bb0e906fd 100644 --- a/forge-gui/res/cardsfolder/r/regeneration.txt +++ b/forge-gui/res/cardsfolder/r/regeneration.txt @@ -5,4 +5,5 @@ K:Enchant creature A:SP$ Attach | Cost$ 1 G | ValidTgts$ Creature | AILogic$ Pump A:AB$ Regenerate | Cost$ G | Defined$ Enchanted | SpellDescription$ Regenerate enchanted creature. SVar:NonStackingAttachEffect:True +DeckHas:Keyword$Regenerate Oracle:Enchant creature (Target a creature as you cast this. This card enters the battlefield attached to that creature.)\n{G}: Regenerate enchanted creature. (The next time that creature would be destroyed this turn, it isn't. Instead tap it, remove all damage from it, and remove it from combat.) diff --git a/forge-gui/res/cardsfolder/r/regrowth.txt b/forge-gui/res/cardsfolder/r/regrowth.txt index 270f7f14493..102d78a2829 100644 --- a/forge-gui/res/cardsfolder/r/regrowth.txt +++ b/forge-gui/res/cardsfolder/r/regrowth.txt @@ -2,4 +2,5 @@ Name:Regrowth ManaCost:1 G Types:Sorcery A:SP$ ChangeZone | Cost$ 1 G | Origin$ Graveyard | Destination$ Hand | TgtPrompt$ Select target card in your graveyard | ValidTgts$ Card.YouCtrl | SpellDescription$ Return target card from your graveyard to your hand. +DeckHas:Ability$Graveyard Oracle:Return target card from your graveyard to your hand. diff --git a/forge-gui/res/cardsfolder/r/resurrection.txt b/forge-gui/res/cardsfolder/r/resurrection.txt index 71d98ad6d5f..61302515236 100644 --- a/forge-gui/res/cardsfolder/r/resurrection.txt +++ b/forge-gui/res/cardsfolder/r/resurrection.txt @@ -1,5 +1,6 @@ Name:Resurrection ManaCost:2 W W Types:Sorcery -A:SP$ ChangeZone | Cost$ 2 W W | Origin$ Graveyard | Destination$ Battlefield | TgtPrompt$ Choose target creature card in your graveyard | ValidTgts$ Creature.YouCtrl | SpellDescription$ Return target creature card from your graveyard to the battlefield. +A:SP$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | TgtPrompt$ Choose target creature card in your graveyard | ValidTgts$ Creature.YouCtrl | SpellDescription$ Return target creature card from your graveyard to the battlefield. +DeckHas:Ability$Graveyard Oracle:Return target creature card from your graveyard to the battlefield. diff --git a/forge-gui/res/cardsfolder/r/reverse_damage.txt b/forge-gui/res/cardsfolder/r/reverse_damage.txt index 531f888cf12..cfc06a61c64 100644 --- a/forge-gui/res/cardsfolder/r/reverse_damage.txt +++ b/forge-gui/res/cardsfolder/r/reverse_damage.txt @@ -1,11 +1,12 @@ Name:Reverse Damage ManaCost:1 W W Types:Instant -A:SP$ ChooseSource | Cost$ 1 W W | Choices$ Card,Emblem | AILogic$ NeedsPrevention | SubAbility$ DBEffect | SpellDescription$ The next time a source of your choice would deal damage to you this turn, prevent that damage. You gain life equal to the damage prevented this way. +A:SP$ ChooseSource | Choices$ Card,Emblem | AILogic$ NeedsPrevention | SubAbility$ DBEffect | SpellDescription$ The next time a source of your choice would deal damage to you this turn, prevent that damage. You gain life equal to the damage prevented this way. SVar:DBEffect:DB$ Effect | ReplacementEffects$ RPreventNextFromSource | SubAbility$ DBCleanup | ConditionDefined$ ChosenCard | ConditionPresent$ Card,Emblem SVar:RPreventNextFromSource:Event$ DamageDone | ValidSource$ Card.ChosenCardStrict,Emblem.ChosenCard | ValidTarget$ You | ReplaceWith$ GainLifeInstead | PreventionEffect$ True | Description$ The next time the chosen source deals damage to you, prevent that damage. You gain life equal to the damage prevented this way. SVar:GainLifeInstead:DB$ GainLife | Defined$ You | LifeAmount$ X | SubAbility$ ExileEffect SVar:ExileEffect:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile SVar:X:ReplaceCount$DamageAmount SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True +DeckHas:Ability$LifeGain Oracle:The next time a source of your choice would deal damage to you this turn, prevent that damage. You gain life equal to the damage prevented this way. diff --git a/forge-gui/res/cardsfolder/r/rock_hydra.txt b/forge-gui/res/cardsfolder/r/rock_hydra.txt index 43e02fc758c..6b2e826ab91 100644 --- a/forge-gui/res/cardsfolder/r/rock_hydra.txt +++ b/forge-gui/res/cardsfolder/r/rock_hydra.txt @@ -16,4 +16,5 @@ SVar:X:Count$xPaid SVar:Y:Count$CardCounters.P1P1 SVar:Z:SVar$NumDmg/Minus.Y AI:RemoveDeck:All +DeckHas:Ability$Counters Oracle:Rock Hydra enters the battlefield with X +1/+1 counters on it.\nFor each 1 damage that would be dealt to Rock Hydra, if it has a +1/+1 counter on it, remove a +1/+1 counter from it and prevent that 1 damage.\n{R}: Prevent the next 1 damage that would be dealt to Rock Hydra this turn.\n{R}{R}{R}: Put a +1/+1 counter on Rock Hydra. Activate only during your upkeep. diff --git a/forge-gui/res/cardsfolder/s/sacrifice.txt b/forge-gui/res/cardsfolder/s/sacrifice.txt index 2d4b0f8d8d6..0739a0d163f 100644 --- a/forge-gui/res/cardsfolder/s/sacrifice.txt +++ b/forge-gui/res/cardsfolder/s/sacrifice.txt @@ -4,4 +4,5 @@ Types:Instant A:SP$ Mana | Cost$ B Sac<1/Creature> | Produced$ B | Amount$ X | SpellDescription$ Add an amount of black mana equal to the sacrificed creature's mana value. SVar:X:Sacrificed$CardManaCost AI:RemoveDeck:All +DeckHas:Ability$Sacrifice Oracle:As an additional cost to cast this spell, sacrifice a creature.\nAdd an amount of {B} equal to the sacrificed creature's mana value. diff --git a/forge-gui/res/cardsfolder/s/sandals_of_abdallah.txt b/forge-gui/res/cardsfolder/s/sandals_of_abdallah.txt index 9358a433ffb..f9158a3cde1 100644 --- a/forge-gui/res/cardsfolder/s/sandals_of_abdallah.txt +++ b/forge-gui/res/cardsfolder/s/sandals_of_abdallah.txt @@ -4,5 +4,6 @@ Types:Artifact A:AB$ Pump | Cost$ 2 T | KW$ Islandwalk | ValidTgts$ Creature | TgtPrompt$ Select target creature | SubAbility$ DBDelayedTrigger | SpellDescription$ Target creature gains islandwalk until end of turn. When that creature dies this turn, destroy CARDNAME. (A creature with islandwalk can't be blocked as long as defending player controls an Island.) SVar:DBDelayedTrigger:DB$ DelayedTrigger | Mode$ ChangesZone | RememberObjects$ Targeted | ValidCard$ Card.IsTriggerRemembered | Origin$ Battlefield | Destination$ Graveyard | ThisTurn$ True | Execute$ TrigDestroy | TriggerDescription$ When that creature dies this turn, destroy CARDNAME. SVar:TrigDestroy:DB$ Destroy | Defined$ Self +DeckHas:Keyword$Islandwalk AI:RemoveDeck:Random Oracle:{2}, {T}: Target creature gains islandwalk until end of turn. When that creature dies this turn, destroy Sandals of Abdallah. (A creature with islandwalk can't be blocked as long as defending player controls an Island.) diff --git a/forge-gui/res/cardsfolder/s/scavenging_ghoul.txt b/forge-gui/res/cardsfolder/s/scavenging_ghoul.txt index cec43cbe37a..7ed9660018c 100644 --- a/forge-gui/res/cardsfolder/s/scavenging_ghoul.txt +++ b/forge-gui/res/cardsfolder/s/scavenging_ghoul.txt @@ -6,4 +6,5 @@ T:Mode$ Phase | Phase$ End of Turn | TriggerZones$ Battlefield | Execute$ TrigPu A:AB$ Regenerate | Cost$ SubCounter<1/CORPSE> | SpellDescription$ Regenerate CARDNAME. SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ CORPSE | CounterNum$ X SVar:X:Count$ThisTurnEntered_Graveyard_from_Battlefield_Creature +DeckHas:Ability$Counters Oracle:At the beginning of each end step, put a corpse counter on Scavenging Ghoul for each creature that died this turn.\nRemove a corpse counter from Scavenging Ghoul: Regenerate Scavenging Ghoul. diff --git a/forge-gui/res/cardsfolder/s/sedge_troll.txt b/forge-gui/res/cardsfolder/s/sedge_troll.txt index 2c1f1535c7f..b9b095f2291 100644 --- a/forge-gui/res/cardsfolder/s/sedge_troll.txt +++ b/forge-gui/res/cardsfolder/s/sedge_troll.txt @@ -6,4 +6,5 @@ S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 1 | AddToughness$ 1 | Check A:AB$ Regenerate | Cost$ B | SpellDescription$ Regenerate CARDNAME. SVar:X:Count$Valid Swamp.YouCtrl SVar:BuffedBy:Swamp +DeckNeeds:Color$Black Oracle:Sedge Troll gets +1/+1 as long as you control a Swamp.\n{B}: Regenerate Sedge Troll. diff --git a/forge-gui/res/cardsfolder/s/simulacrum.txt b/forge-gui/res/cardsfolder/s/simulacrum.txt index ca9060d1cc4..fae936d6a98 100644 --- a/forge-gui/res/cardsfolder/s/simulacrum.txt +++ b/forge-gui/res/cardsfolder/s/simulacrum.txt @@ -1,8 +1,9 @@ Name:Simulacrum ManaCost:1 B Types:Instant -A:SP$ GainLife | Cost$ 1 B | Defined$ You | LifeAmount$ X | SubAbility$ Dmg | SpellDescription$ You gain life equal to the damage dealt to you this turn. CARDNAME deals damage to target creature you control equal to the damage dealt to you this turn. +A:SP$ GainLife | Defined$ You | LifeAmount$ X | SubAbility$ Dmg | SpellDescription$ You gain life equal to the damage dealt to you this turn. CARDNAME deals damage to target creature you control equal to the damage dealt to you this turn. SVar:Dmg:DB$ DealDamage | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | NumDmg$ X SVar:X:PlayerCountPropertyYou$DamageThisTurn AI:RemoveDeck:All +DeckHas:Ability$LifeGain Oracle:You gain life equal to the damage dealt to you this turn. Simulacrum deals damage to target creature you control equal to the damage dealt to you this turn. diff --git a/forge-gui/res/cardsfolder/s/smoke.txt b/forge-gui/res/cardsfolder/s/smoke.txt index d3614915de8..4c120cfeb96 100644 --- a/forge-gui/res/cardsfolder/s/smoke.txt +++ b/forge-gui/res/cardsfolder/s/smoke.txt @@ -3,5 +3,9 @@ ManaCost:R R Types:Enchantment S:Mode$ Continuous | Affected$ Player | AddKeyword$ UntapAdjust:Creature:1 | Description$ Players can't untap more than one creature during their untap steps. SVar:NonStackingEffect:True +DeckHints:Type$Planeswalker|Artifact|Enchantment +SVar:NeedsToPlayVar:CountOpps GTCountMe +SVar:CountOpp:Count$Valid Creature.OppCtrl/LimitMax.5 +SVar:CountMe:Count$Valid Creature.YouCtrl AI:RemoveDeck:Random Oracle:Players can't untap more than one creature during their untap steps. diff --git a/forge-gui/res/cardsfolder/s/soul_net.txt b/forge-gui/res/cardsfolder/s/soul_net.txt index 6a7e0704acf..f8ff1a6c63c 100644 --- a/forge-gui/res/cardsfolder/s/soul_net.txt +++ b/forge-gui/res/cardsfolder/s/soul_net.txt @@ -3,4 +3,6 @@ ManaCost:1 Types:Artifact T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigGainLife | TriggerDescription$ Whenever a creature dies, you may pay {1}. If you do, you gain 1 life. SVar:TrigGainLife:AB$GainLife | Cost$ 1 | Defined$ You | LifeAmount$ 1 +DeckHas:Ability$Lifegain +DeckHints:Ability$Sacrifice Oracle:Whenever a creature dies, you may pay {1}. If you do, you gain 1 life. diff --git a/forge-gui/res/cardsfolder/s/stone_giant.txt b/forge-gui/res/cardsfolder/s/stone_giant.txt index de72579e132..4c34cc26f2b 100644 --- a/forge-gui/res/cardsfolder/s/stone_giant.txt +++ b/forge-gui/res/cardsfolder/s/stone_giant.txt @@ -4,4 +4,5 @@ Types:Creature Giant PT:3/4 A:AB$ Pump | Cost$ T | ValidTgts$ Creature.YouCtrl+toughnessLTX | TgtPrompt$ Select target creature you control with toughness less than Stone Giant's. | KW$ Flying | AtEOT$ Destroy | SpellDescription$ Target creature you control with toughness less than CARDNAME's power gains flying until end of turn. Destroy that creature at the beginning of the next end step. SVar:X:Count$CardPower +DeckHas:Keyword$Flying Oracle:{T}: Target creature you control with toughness less than Stone Giant's power gains flying until end of turn. Destroy that creature at the beginning of the next end step. diff --git a/forge-gui/res/cardsfolder/s/stream_of_life.txt b/forge-gui/res/cardsfolder/s/stream_of_life.txt index ad4795e6b92..2279baebf85 100644 --- a/forge-gui/res/cardsfolder/s/stream_of_life.txt +++ b/forge-gui/res/cardsfolder/s/stream_of_life.txt @@ -3,4 +3,5 @@ ManaCost:X G Types:Sorcery A:SP$ GainLife | Cost$ X G | ValidTgts$ Player | TgtPrompt$ Select target player | LifeAmount$ X | SpellDescription$ Target player gains X life. SVar:X:Count$xPaid +DeckHas:Ability$LifeGain Oracle:Target player gains X life. diff --git a/forge-gui/res/cardsfolder/s/sunglasses_of_urza.txt b/forge-gui/res/cardsfolder/s/sunglasses_of_urza.txt index 5cb606b55e5..5487397ca7a 100644 --- a/forge-gui/res/cardsfolder/s/sunglasses_of_urza.txt +++ b/forge-gui/res/cardsfolder/s/sunglasses_of_urza.txt @@ -3,4 +3,5 @@ ManaCost:3 Types:Artifact S:Mode$ Continuous | Affected$ You | ManaConversion$ W->R | Description$ You may spend white mana as though it were red mana. AI:RemoveDeck:All +DeckNeeds:Color$Red Oracle:You may spend white mana as though it were red mana. diff --git a/forge-gui/res/cardsfolder/t/the_hive.txt b/forge-gui/res/cardsfolder/t/the_hive.txt index e1bb089445f..d824ec73e7c 100644 --- a/forge-gui/res/cardsfolder/t/the_hive.txt +++ b/forge-gui/res/cardsfolder/t/the_hive.txt @@ -2,4 +2,5 @@ Name:The Hive ManaCost:5 Types:Artifact A:AB$ Token | Cost$ 5 T | TokenAmount$ 1 | TokenScript$ wasp | TokenOwner$ You | SpellDescription$ Create a 1/1 colorless Insect artifact creature token with flying named Wasp. (It can't be blocked except by creatures with flying or reach.) +DeckHas:Ability$Token & Type$Insect & Keyword$Flying Oracle:{5}, {T}: Create a 1/1 colorless Insect artifact creature token with flying named Wasp. (It can't be blocked except by creatures with flying or reach.) diff --git a/forge-gui/res/cardsfolder/t/throne_of_bone.txt b/forge-gui/res/cardsfolder/t/throne_of_bone.txt index e54353c8aba..ab4093b8fb6 100644 --- a/forge-gui/res/cardsfolder/t/throne_of_bone.txt +++ b/forge-gui/res/cardsfolder/t/throne_of_bone.txt @@ -4,4 +4,5 @@ Types:Artifact T:Mode$ SpellCast | ValidCard$ Card.Black | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigGainLife | TriggerDescription$ Whenever a player casts a black spell, you may pay {1}. If you do, you gain 1 life. SVar:TrigGainLife:AB$GainLife | Cost$ 1 | Defined$ You | LifeAmount$ 1 AI:RemoveDeck:Random +DeckHas:Ability$LifeGain Oracle:Whenever a player casts a black spell, you may pay {1}. If you do, you gain 1 life. diff --git a/forge-gui/res/cardsfolder/w/web.txt b/forge-gui/res/cardsfolder/w/web.txt index 1ee31cf099a..e5b31caa0dc 100644 --- a/forge-gui/res/cardsfolder/w/web.txt +++ b/forge-gui/res/cardsfolder/w/web.txt @@ -4,4 +4,5 @@ Types:Enchantment Aura K:Enchant creature A:SP$ Attach | Cost$ G | ValidTgts$ Creature | AILogic$ Pump S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddToughness$ 2 | AddKeyword$ Reach | Description$ Enchanted creature gets +0/+2 and has reach. (It can block creatures with flying.) +DeckHas:Keyword$Reach Oracle:Enchant creature (Target a creature as you cast this. This card enters the battlefield attached to that creature.)\nEnchanted creature gets +0/+2 and has reach. (It can block creatures with flying.) diff --git a/forge-gui/res/cardsfolder/w/winter_orb.txt b/forge-gui/res/cardsfolder/w/winter_orb.txt index 4dc560a3631..52803427380 100644 --- a/forge-gui/res/cardsfolder/w/winter_orb.txt +++ b/forge-gui/res/cardsfolder/w/winter_orb.txt @@ -4,5 +4,6 @@ Types:Artifact S:Mode$ Continuous | Affected$ Player | AddKeyword$ UntapAdjust:Land:1 | CheckSVar$ X | SVarCompare$ EQ1 | Description$ As long as CARDNAME is untapped, players can't untap more than one land during their untap steps. SVar:X:Count$Valid Card.Self+untapped SVar:NonStackingEffect:True +DeckHints:Type$Artifact AI:RemoveDeck:Random Oracle:As long as Winter Orb is untapped, players can't untap more than one land during their untap steps. diff --git a/forge-gui/res/cardsfolder/w/wooden_sphere.txt b/forge-gui/res/cardsfolder/w/wooden_sphere.txt index a2da6065d7f..16f011c1615 100644 --- a/forge-gui/res/cardsfolder/w/wooden_sphere.txt +++ b/forge-gui/res/cardsfolder/w/wooden_sphere.txt @@ -4,4 +4,5 @@ Types:Artifact T:Mode$ SpellCast | ValidCard$ Card.Green | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigGainLife | TriggerDescription$ Whenever a player casts a green spell, you may pay {1}. If you do, you gain 1 life. SVar:TrigGainLife:AB$GainLife | Cost$ 1 | Defined$ You | LifeAmount$ 1 AI:RemoveDeck:Random +DeckHas:Ability$LifeGain Oracle:Whenever a player casts a green spell, you may pay {1}. If you do, you gain 1 life.