From ce62cbcb086ebf059648b9ee416922f1434d5510 Mon Sep 17 00:00:00 2001 From: Hans Mackowiak Date: Wed, 27 Mar 2024 22:15:44 +0100 Subject: [PATCH] Landwalk static (#4907) * Landwalk Static + Ignore --- .../java/forge/ai/AiAttackController.java | 4 +- .../main/java/forge/ai/ability/AttachAi.java | 2 +- .../java/forge/ai/ability/PumpAiBase.java | 14 ++- .../src/main/java/forge/game/card/Card.java | 1 + .../java/forge/game/card/CardFactoryUtil.java | 22 ++-- .../java/forge/game/combat/CombatUtil.java | 119 +----------------- .../java/forge/game/keyword/Hexproof.java | 26 +--- .../main/java/forge/game/keyword/Keyword.java | 16 +-- .../forge/game/keyword/KeywordInstance.java | 10 +- .../forge/game/keyword/KeywordWithType.java | 11 +- .../main/java/forge/game/keyword/Trample.java | 26 +--- .../forge/game/player/PlayerFactoryUtil.java | 4 +- .../StaticAbilityCantAttackBlock.java | 7 +- .../StaticAbilityCantTarget.java | 4 +- .../StaticAbilityIgnoreLandwalk.java | 42 +++++++ forge-gui/res/cardsfolder/a/anaconda.txt | 2 +- .../res/cardsfolder/a/anurid_murkdiver.txt | 2 +- forge-gui/res/cardsfolder/a/aysen_highway.txt | 2 +- .../cardsfolder/a/ayumi_the_last_visitor.txt | 2 +- .../res/cardsfolder/b/barbarian_guides.txt | 2 +- .../res/cardsfolder/b/bayou_dragonfly.txt | 2 +- .../res/cardsfolder/b/benthic_behemoth.txt | 2 +- forge-gui/res/cardsfolder/b/benthic_djinn.txt | 2 +- forge-gui/res/cardsfolder/b/blistergrub.txt | 2 +- forge-gui/res/cardsfolder/b/bog_raiders.txt | 2 +- forge-gui/res/cardsfolder/b/bog_smugglers.txt | 2 +- .../res/cardsfolder/b/bog_strider_ash.txt | 2 +- forge-gui/res/cardsfolder/b/bog_tatters.txt | 2 +- forge-gui/res/cardsfolder/b/bog_wraith.txt | 2 +- .../res/cardsfolder/b/boggart_arsonists.txt | 2 +- .../res/cardsfolder/b/boggart_loggers.txt | 2 +- .../res/cardsfolder/b/bowie_base_one.txt | 2 +- forge-gui/res/cardsfolder/b/bull_hippo.txt | 2 +- forge-gui/res/cardsfolder/b/burrowing.txt | 2 +- forge-gui/res/cardsfolder/c/camato_scout.txt | 2 +- .../res/cardsfolder/c/canyon_wildcat.txt | 2 +- forge-gui/res/cardsfolder/c/cat_warriors.txt | 2 +- .../res/cardsfolder/c/cateran_slaver.txt | 2 +- forge-gui/res/cardsfolder/c/cave_people.txt | 2 +- forge-gui/res/cardsfolder/c/cave_sense.txt | 2 +- .../res/cardsfolder/c/cavern_crawler.txt | 2 +- .../c/chatterfang_squirrel_general.txt | 2 +- .../cardsfolder/c/chorus_of_the_conclave.txt | 2 +- .../res/cardsfolder/c/cliff_threader.txt | 2 +- .../res/cardsfolder/c/cold_eyed_selkie.txt | 2 +- .../res/cardsfolder/c/colos_yearling.txt | 2 +- .../res/cardsfolder/c/colossal_whale.txt | 2 +- forge-gui/res/cardsfolder/c/crevasse.txt | 2 +- forge-gui/res/cardsfolder/d/deadfall.txt | 2 +- .../res/cardsfolder/d/deeptread_merrow.txt | 2 +- forge-gui/res/cardsfolder/d/desert_nomads.txt | 2 +- .../res/cardsfolder/d/devouring_deep.txt | 2 +- .../res/cardsfolder/d/dirtwater_wraith.txt | 2 +- .../res/cardsfolder/d/dryad_sophisticate.txt | 2 +- forge-gui/res/cardsfolder/d/dryads_favor.txt | 2 +- forge-gui/res/cardsfolder/d/dwarven_grunt.txt | 2 +- forge-gui/res/cardsfolder/d/dwarven_pony.txt | 2 +- .../cardsfolder/e/eladamri_lord_of_leaves.txt | 2 +- .../res/cardsfolder/e/elite_cat_warrior.txt | 2 +- .../res/cardsfolder/e/elvish_champion.txt | 2 +- .../res/cardsfolder/e/elvish_pathcutter.txt | 2 +- forge-gui/res/cardsfolder/e/emerald_oryx.txt | 2 +- forge-gui/res/cardsfolder/e/enclave_elite.txt | 2 +- .../res/cardsfolder/e/enslaved_scout.txt | 2 +- forge-gui/res/cardsfolder/e/erhnam_djinn.txt | 2 +- .../res/cardsfolder/f/farbog_explorer.txt | 2 +- forge-gui/res/cardsfolder/f/filth.txt | 4 +- forge-gui/res/cardsfolder/f/fishliver_oil.txt | 2 +- forge-gui/res/cardsfolder/f/funeral_charm.txt | 2 +- forge-gui/res/cardsfolder/g/giant_slug.txt | 2 +- .../res/cardsfolder/g/glissas_courier.txt | 2 +- .../res/cardsfolder/g/goblin_flotilla.txt | 2 +- forge-gui/res/cardsfolder/g/goblin_king.txt | 2 +- .../res/cardsfolder/g/goblin_mountaineer.txt | 2 +- .../res/cardsfolder/g/goblin_spelunkers.txt | 2 +- .../cardsfolder/g/goblins_of_the_flarg.txt | 2 +- forge-gui/res/cardsfolder/g/gosta_dirk.txt | 2 +- .../res/cardsfolder/g/graceful_antelope.txt | 2 +- .../res/cardsfolder/g/grayscaled_gharial.txt | 2 +- forge-gui/res/cardsfolder/g/great_wall.txt | 2 +- .../res/cardsfolder/h/halimar_wavewatch.txt | 2 +- .../res/cardsfolder/h/harbor_serpent.txt | 2 +- .../cardsfolder/h/hazezon_shaper_of_sand.txt | 2 +- .../res/cardsfolder/h/heartwood_treefolk.txt | 2 +- forge-gui/res/cardsfolder/h/hidden_path.txt | 2 +- .../res/cardsfolder/h/hillcomber_giant.txt | 2 +- .../cardsfolder/i/illusionary_presence.txt | 2 +- .../res/cardsfolder/i/inkfathom_divers.txt | 2 +- .../res/cardsfolder/i/inkwell_leviathan.txt | 2 +- forge-gui/res/cardsfolder/i/ivy_dancer.txt | 2 +- .../cardsfolder/j/jedit_ojanen_of_efrava.txt | 2 +- .../res/cardsfolder/j/jukai_messenger.txt | 2 +- forge-gui/res/cardsfolder/k/koths_courier.txt | 2 +- .../res/cardsfolder/k/krosan_constrictor.txt | 2 +- forge-gui/res/cardsfolder/l/leaf_dancer.txt | 2 +- .../res/cardsfolder/l/legions_of_lim_dul.txt | 2 +- forge-gui/res/cardsfolder/l/leshracs_rite.txt | 2 +- .../res/cardsfolder/l/livonya_silone.txt | 2 +- forge-gui/res/cardsfolder/l/lord_magnus.txt | 4 +- .../res/cardsfolder/l/lord_of_atlantis.txt | 2 +- forge-gui/res/cardsfolder/l/lost_soul.txt | 2 +- .../res/cardsfolder/l/lumbering_satyr.txt | 2 +- .../res/cardsfolder/l/lurking_crocodile.txt | 2 +- forge-gui/res/cardsfolder/l/lynx.txt | 2 +- .../res/cardsfolder/m/magnigoth_treefolk.txt | 11 +- forge-gui/res/cardsfolder/m/marsh_boa.txt | 2 +- forge-gui/res/cardsfolder/m/marsh_goblins.txt | 2 +- .../res/cardsfolder/m/marsh_threader.txt | 2 +- .../m/master_of_the_pearl_trident.txt | 2 +- .../cardsfolder/m/meandering_towershell.txt | 2 +- .../res/cardsfolder/m/merfolk_raiders.txt | 2 +- .../res/cardsfolder/m/merfolk_seastalkers.txt | 2 +- forge-gui/res/cardsfolder/m/merfolk_spy.txt | 2 +- .../res/cardsfolder/m/merrow_harbinger.txt | 2 +- forge-gui/res/cardsfolder/m/mire_boa.txt | 2 +- .../res/cardsfolder/m/mirri_cat_warrior.txt | 2 +- forge-gui/res/cardsfolder/m/moor_fiend.txt | 2 +- forge-gui/res/cardsfolder/m/mountain_goat.txt | 2 +- forge-gui/res/cardsfolder/m/mountain_yeti.txt | 2 +- forge-gui/res/cardsfolder/n/natures_cloak.txt | 2 +- forge-gui/res/cardsfolder/n/nighthaze.txt | 2 +- forge-gui/res/cardsfolder/o/odylic_wraith.txt | 2 +- forge-gui/res/cardsfolder/o/old_fogey.txt | 2 +- .../res/cardsfolder/o/orbweaver_kumo.txt | 2 +- forge-gui/res/cardsfolder/p/pale_bears.txt | 2 +- forge-gui/res/cardsfolder/p/part_water.txt | 2 +- forge-gui/res/cardsfolder/p/piracy_charm.txt | 2 +- forge-gui/res/cardsfolder/p/plague_beetle.txt | 2 +- .../res/cardsfolder/p/pygmy_allosaurus.txt | 2 +- forge-gui/res/cardsfolder/q/quag_vampires.txt | 2 +- forge-gui/res/cardsfolder/q/quagmire.txt | 2 +- .../cardsfolder/r/raiding_nightstalker.txt | 2 +- .../res/cardsfolder/r/restless_bones.txt | 2 +- .../res/cardsfolder/r/righteous_avengers.txt | 2 +- forge-gui/res/cardsfolder/r/rime_dryad.txt | 2 +- .../res/cardsfolder/r/rishadan_dockhand.txt | 2 +- forge-gui/res/cardsfolder/r/river_bear.txt | 2 +- forge-gui/res/cardsfolder/r/river_boa.txt | 2 +- forge-gui/res/cardsfolder/r/river_merfolk.txt | 2 +- forge-gui/res/cardsfolder/r/rock_badger.txt | 2 +- .../res/cardsfolder/r/rootwater_commando.txt | 2 +- .../res/cardsfolder/r/rushwood_dryad.txt | 2 +- forge-gui/res/cardsfolder/s/sand_squid.txt | 2 +- .../res/cardsfolder/s/sandals_of_abdallah.txt | 2 +- .../res/cardsfolder/s/scarwood_bandits.txt | 2 +- forge-gui/res/cardsfolder/s/scarwood_hag.txt | 4 +- .../res/cardsfolder/s/segovian_leviathan.txt | 2 +- .../res/cardsfolder/s/sewer_shambler.txt | 2 +- forge-gui/res/cardsfolder/s/sewerdreg.txt | 2 +- .../res/cardsfolder/s/shanodin_dryads.txt | 2 +- .../s/sheoldred_whispering_one.txt | 2 +- forge-gui/res/cardsfolder/s/shore_snapper.txt | 2 +- .../res/cardsfolder/s/slinking_serpent.txt | 2 +- .../res/cardsfolder/s/slithery_stalker.txt | 2 +- .../res/cardsfolder/s/sokenzan_bruiser.txt | 2 +- .../cardsfolder/s/solkanar_the_swamp_king.txt | 2 +- .../res/cardsfolder/s/somberwald_dryad.txt | 2 +- .../res/cardsfolder/s/staff_of_the_ages.txt | 2 +- forge-gui/res/cardsfolder/s/stalker_hag.txt | 4 +- .../res/cardsfolder/s/stonybrook_banneret.txt | 2 +- .../res/cardsfolder/s/stormtide_leviathan.txt | 2 +- .../res/cardsfolder/s/streambed_aquitects.txt | 2 +- forge-gui/res/cardsfolder/s/street_savvy.txt | 3 +- forge-gui/res/cardsfolder/s/street_wraith.txt | 2 +- .../res/cardsfolder/s/sygg_river_guide.txt | 2 +- .../res/cardsfolder/t/tattermunge_duo.txt | 2 +- .../cardsfolder/t/thada_adel_acquisitor.txt | 2 +- .../res/cardsfolder/t/the_flood_of_mars.txt | 2 +- .../res/cardsfolder/t/trailblazers_boots.txt | 2 +- .../res/cardsfolder/t/travelers_cloak.txt | 2 +- forge-gui/res/cardsfolder/u/undertow.txt | 2 +- forge-gui/res/cardsfolder/u/unseen_walker.txt | 4 +- forge-gui/res/cardsfolder/u/ur_drago.txt | 2 +- forge-gui/res/cardsfolder/u/urborg.txt | 2 +- forge-gui/res/cardsfolder/v/vectis_gloves.txt | 2 +- .../res/cardsfolder/v/veldrane_of_sengir.txt | 2 +- forge-gui/res/cardsfolder/v/vine_dryad.txt | 2 +- .../res/cardsfolder/v/viscid_lemures.txt | 2 +- .../res/cardsfolder/v/volcanic_strength.txt | 2 +- forge-gui/res/cardsfolder/v/vug_lizard.txt | 2 +- forge-gui/res/cardsfolder/w/war_barge.txt | 2 +- forge-gui/res/cardsfolder/w/warthog.txt | 2 +- .../res/cardsfolder/w/weatherseed_elf.txt | 2 +- .../res/cardsfolder/w/whispering_shade.txt | 2 +- forge-gui/res/cardsfolder/w/wild_ox.txt | 2 +- forge-gui/res/cardsfolder/w/willow_dryad.txt | 2 +- forge-gui/res/cardsfolder/w/witch_engine.txt | 2 +- .../res/cardsfolder/w/woodlot_crawler.txt | 2 +- .../res/cardsfolder/w/wormwood_dryad.txt | 4 +- .../res/cardsfolder/w/wormwood_treefolk.txt | 4 +- .../cardsfolder/w/wrexial_the_risen_deep.txt | 4 +- .../res/cardsfolder/y/yavimaya_dryad.txt | 2 +- .../res/cardsfolder/z/zendikar_farguide.txt | 2 +- forge-gui/res/cardsfolder/z/zodiac_dog.txt | 2 +- forge-gui/res/cardsfolder/z/zodiac_goat.txt | 2 +- forge-gui/res/cardsfolder/z/zodiac_horse.txt | 2 +- forge-gui/res/cardsfolder/z/zodiac_monkey.txt | 2 +- forge-gui/res/cardsfolder/z/zodiac_ox.txt | 2 +- forge-gui/res/cardsfolder/z/zodiac_pig.txt | 2 +- forge-gui/res/cardsfolder/z/zodiac_rabbit.txt | 2 +- forge-gui/res/cardsfolder/z/zodiac_rat.txt | 2 +- .../res/cardsfolder/z/zodiac_rooster.txt | 2 +- forge-gui/res/cardsfolder/z/zodiac_snake.txt | 2 +- forge-gui/res/cardsfolder/z/zodiac_tiger.txt | 2 +- forge-gui/res/cardsfolder/z/zombie_master.txt | 2 +- forge-gui/res/cardsfolder/z/zombie_musher.txt | 3 +- .../res/cardsfolder/z/zombie_trailblazer.txt | 2 +- .../g_2_2_alien_salamander_islandwalk.txt | 2 +- .../g_2_2_cat_warrior_forestwalk.txt | 2 +- .../g_2_3_antelope_forestwalk.txt | 2 +- .../r_1_1_goblin_scout_mountainwalk.txt | 2 +- forge-gui/res/tokenscripts/spawn_of_azar.txt | 2 +- .../tokenscripts/u_1_1_squid_islandwalk.txt | 2 +- 213 files changed, 319 insertions(+), 412 deletions(-) create mode 100644 forge-game/src/main/java/forge/game/staticability/StaticAbilityIgnoreLandwalk.java diff --git a/forge-ai/src/main/java/forge/ai/AiAttackController.java b/forge-ai/src/main/java/forge/ai/AiAttackController.java index e879226c098..969616992a2 100644 --- a/forge-ai/src/main/java/forge/ai/AiAttackController.java +++ b/forge-ai/src/main/java/forge/ai/AiAttackController.java @@ -551,8 +551,8 @@ public class AiAttackController { } if (bandingCreatures != null) { - List evasionKeywords = Arrays.asList("Flying", "Horsemanship", "Shadow", "Plainswalk", "Islandwalk", - "Forestwalk", "Mountainwalk", "Swampwalk"); + List evasionKeywords = Arrays.asList("Flying", "Horsemanship", "Shadow", "Landwalk:Plains", "Landwalk:Island", + "Landwalk:Forest", "Landwalk:Mountain", "Landwalk:Swamp"); // TODO: Assign to band with the best attacker for now, but needs better logic. for (Card c : bandingCreatures) { diff --git a/forge-ai/src/main/java/forge/ai/ability/AttachAi.java b/forge-ai/src/main/java/forge/ai/ability/AttachAi.java index 212f5165cff..f915d8883b5 100644 --- a/forge-ai/src/main/java/forge/ai/ability/AttachAi.java +++ b/forge-ai/src/main/java/forge/ai/ability/AttachAi.java @@ -1574,7 +1574,7 @@ public class AttachAi extends SpellAbilityAi { final boolean evasive = keyword.equals("Fear") || keyword.equals("Intimidate") || keyword.equals("Shadow") || keyword.equals("Flying") || keyword.equals("Horsemanship") - || keyword.endsWith("walk") || keyword.equals("All creatures able to block CARDNAME do so."); + || keyword.startsWith("Landwalk") || keyword.equals("All creatures able to block CARDNAME do so."); // give evasive keywords to creatures that can attack and deal damage boolean canBeBlocked = false; diff --git a/forge-ai/src/main/java/forge/ai/ability/PumpAiBase.java b/forge-ai/src/main/java/forge/ai/ability/PumpAiBase.java index a8bcaa38628..10d4c4bbb1f 100644 --- a/forge-ai/src/main/java/forge/ai/ability/PumpAiBase.java +++ b/forge-ai/src/main/java/forge/ai/ability/PumpAiBase.java @@ -368,25 +368,31 @@ public abstract class PumpAiBase extends SpellAbilityAi { return ComputerUtil.predictThreatenedObjects(sa.getActivatingPlayer(), sa).contains(card); } else if (keyword.equals("Persist")) { return card.getBaseToughness() > 1 && !card.hasKeyword(Keyword.UNDYING); - } else if (keyword.equals("Islandwalk")) { + } else if (keyword.equals("Landwalk:Plains")) { + return !ph.isPlayerTurn(opp) && ((combat != null && combat.isAttacking(card)) || CombatUtil.canAttack(card, opp)) + && !ph.getPhase().isAfter(PhaseType.COMBAT_DECLARE_ATTACKERS) + && newPower > 0 + && !CardLists.getType(opp.getLandsInPlay(), "Plains").isEmpty() + && Iterables.any(opp.getCreaturesInPlay(), CardPredicates.possibleBlockers(card)); + } else if (keyword.equals("Landwalk:Island")) { return !ph.isPlayerTurn(opp) && ((combat != null && combat.isAttacking(card)) || CombatUtil.canAttack(card, opp)) && !ph.getPhase().isAfter(PhaseType.COMBAT_DECLARE_ATTACKERS) && newPower > 0 && !CardLists.getType(opp.getLandsInPlay(), "Island").isEmpty() && Iterables.any(opp.getCreaturesInPlay(), CardPredicates.possibleBlockers(card)); - } else if (keyword.equals("Swampwalk")) { + } else if (keyword.equals("Landwalk:Swamp")) { return !ph.isPlayerTurn(opp) && ((combat != null && combat.isAttacking(card)) || CombatUtil.canAttack(card, opp)) && !ph.getPhase().isAfter(PhaseType.COMBAT_DECLARE_ATTACKERS) && newPower > 0 && !CardLists.getType(opp.getLandsInPlay(), "Swamp").isEmpty() && Iterables.any(opp.getCreaturesInPlay(), CardPredicates.possibleBlockers(card)); - } else if (keyword.equals("Mountainwalk")) { + } else if (keyword.equals("Landwalk:Mountain")) { return !ph.isPlayerTurn(opp) && ((combat != null && combat.isAttacking(card)) || CombatUtil.canAttack(card, opp)) && !ph.getPhase().isAfter(PhaseType.COMBAT_DECLARE_ATTACKERS) && newPower > 0 && !CardLists.getType(opp.getLandsInPlay(), "Mountain").isEmpty() && Iterables.any(opp.getCreaturesInPlay(), CardPredicates.possibleBlockers(card)); - } else if (keyword.equals("Forestwalk")) { + } else if (keyword.equals("Landwalk:Forest")) { return !ph.isPlayerTurn(opp) && ((combat != null && combat.isAttacking(card)) || CombatUtil.canAttack(card, opp)) && !ph.getPhase().isAfter(PhaseType.COMBAT_DECLARE_ATTACKERS) && newPower > 0 diff --git a/forge-game/src/main/java/forge/game/card/Card.java b/forge-game/src/main/java/forge/game/card/Card.java index 716ffaea0bb..09f312f4cf0 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -2483,6 +2483,7 @@ public class Card extends GameEntity implements Comparable, IHasSVars { || keyword.startsWith("Class") || keyword.startsWith("Blitz") || keyword.startsWith("Specialize") || keyword.equals("Ravenous") || keyword.equals("For Mirrodin") || keyword.startsWith("Craft") + || keyword.startsWith("Landwalk") || keyword.startsWith("Alternative Cost")) { // keyword parsing takes care of adding a proper description } else if (keyword.equals("Read ahead")) { diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index 942554fae1f..b5f9e58d854 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -21,6 +21,7 @@ import java.util.Arrays; import java.util.EnumSet; import java.util.LinkedHashMap; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Map.Entry; import java.util.Set; @@ -510,9 +511,9 @@ public class CardFactoryUtil { for (Card c : cards) { for (KeywordInterface inst : c.getKeywords()) { final String k = inst.getOriginal(); - if (k.endsWith("walk")) { + if (inst.getKeyword().equals(Keyword.LANDWALK)) { landkw.add(k); - } else if (k.startsWith("Protection")) { + } else if (inst.getKeyword().equals(Keyword.PROTECTION)) { protectionkw.add(k); for (byte col : MagicColor.WUBRG) { final String colString = MagicColor.toLongString(col); @@ -521,9 +522,9 @@ public class CardFactoryUtil { protectionColorkw.add(protString); } } - } else if (k.startsWith("Hexproof")) { + } else if (inst.getKeyword().equals(Keyword.HEXPROOF)) { hexproofkw.add(k); - } else if (k.startsWith("Trample")) { + } else if (inst.getKeyword().equals(Keyword.TRAMPLE)) { tramplekw.add(k); } else { allkw.add(k.toLowerCase()); @@ -3836,7 +3837,7 @@ public class CardFactoryUtil { StaticAbility st = StaticAbility.create(effect, state.getCard(), state, intrinsic); inst.addStaticAbility(st); } else if (keyword.equals("Defender")) { - String effect = "Mode$ CantAttack | ValidCard$ Card.Self | DefenderKeyword$ True | Secondary$ True"; + String effect = "Mode$ CantAttack | ValidCard$ Card.Self | Secondary$ True"; inst.addStaticAbility(StaticAbility.create(effect, state.getCard(), state, intrinsic)); } else if (keyword.equals("Devoid")) { String effect = "Mode$ Continuous | EffectZone$ All | Affected$ Card.Self" + @@ -3886,7 +3887,7 @@ public class CardFactoryUtil { sbValid.append("| ValidSource$ ").append(k[1]); } - String effect = "Mode$ CantTarget | Hexproof$ True | ValidCard$ Card.Self | Secondary$ True" + String effect = "Mode$ CantTarget | ValidCard$ Card.Self | Secondary$ True" + sbValid.toString() + " | Activator$ Opponent | Description$ " + sbDesc.toString() + " (" + inst.getReminderText() + ")"; inst.addStaticAbility(StaticAbility.create(effect, state.getCard(), state, intrinsic)); @@ -3898,6 +3899,13 @@ public class CardFactoryUtil { String effect = "Mode$ CantBlockBy | ValidAttacker$ Creature.Self | ValidBlocker$ Creature.nonArtifact+notSharesColorWith | Secondary$ True " + " | Description$ Intimidate ( " + inst.getReminderText() + ")"; inst.addStaticAbility(StaticAbility.create(effect, state.getCard(), state, intrinsic)); + } else if (keyword.startsWith("Landwalk")) { + final String[] k = keyword.split(":"); + String valid = k[1]; + String desc = k[k.length > 2 ? 2 : 1].toLowerCase(Locale.ROOT); + String effect = "Mode$ CantBlockBy | ValidAttacker$ Creature.Self | ValidDefender$ Player.controls" + valid + + " | Description$ " + StringUtils.capitalize(desc) + "walk (" + inst.getReminderText() + ")"; + inst.addStaticAbility(StaticAbility.create(effect, state.getCard(), state, intrinsic)); } else if (keyword.equals("Living metal")) { String effect = "Mode$ Continuous | Affected$ Card.Self | AddType$ Creature | Condition$ PlayerTurn | Secondary$ True"; inst.addStaticAbility(StaticAbility.create(effect, state.getCard(), state, intrinsic)); @@ -3946,7 +3954,7 @@ public class CardFactoryUtil { " | Description$ Chapter abilities of this Saga can't trigger the turn it entered the battlefield unless it has exactly the number of lore counters on it specified in the chapter symbol of that ability."; inst.addStaticAbility(StaticAbility.create(effect, state.getCard(), state, intrinsic)); } else if (keyword.equals("Shroud")) { - String effect = "Mode$ CantTarget | Shroud$ True | ValidCard$ Card.Self | Secondary$ True" + String effect = "Mode$ CantTarget | ValidCard$ Card.Self | Secondary$ True" + " | Description$ Shroud (" + inst.getReminderText() + ")"; inst.addStaticAbility(StaticAbility.create(effect, state.getCard(), state, intrinsic)); } else if (keyword.equals("Skulk")) { diff --git a/forge-game/src/main/java/forge/game/combat/CombatUtil.java b/forge-game/src/main/java/forge/game/combat/CombatUtil.java index 638adcb6821..8b283ecaccc 100644 --- a/forge-game/src/main/java/forge/game/combat/CombatUtil.java +++ b/forge-game/src/main/java/forge/game/combat/CombatUtil.java @@ -21,8 +21,6 @@ import com.google.common.base.Predicate; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; -import forge.card.CardType; -import forge.card.MagicColor; import forge.card.mana.ManaCost; import forge.game.Game; import forge.game.GameEntity; @@ -560,117 +558,9 @@ public class CombatUtil { return false; } - return canBeBlocked(attacker, defendingPlayer); - } - - /** - *

- * canBeBlocked. - *

- * - * @param attacker - * a {@link forge.game.card.Card} object. - * @return a boolean. - */ - public static boolean canBeBlocked(final Card attacker, final Player defender) { - if (attacker == null) { - return true; - } - - // Landwalk - if (isUnblockableFromLandwalk(attacker, defender)) { - return CardLists.getAmountOfKeyword(defender.getCreaturesInPlay(), "CARDNAME can block creatures with landwalk abilities as though they didn't have those abilities.") != 0; - } - return true; } - // Cache landwalk ability strings instead of generating them each time. - private static final String[] LANDWALK_KEYWORDS; - private static final String[] SNOW_LANDWALK_KEYWORDS; - private static final String[] IGNORE_LANDWALK_KEYWORDS; - static { - final int size = MagicColor.Constant.BASIC_LANDS.size(); - LANDWALK_KEYWORDS = new String[size]; - SNOW_LANDWALK_KEYWORDS = new String[size]; - IGNORE_LANDWALK_KEYWORDS = new String[size]; - for (int i = 0; i < size; i++) { - final String basic = MagicColor.Constant.BASIC_LANDS.get(i); - final String landwalk = basic + "walk"; - LANDWALK_KEYWORDS[i] = landwalk; - SNOW_LANDWALK_KEYWORDS[i] = "Snow " + landwalk.toLowerCase(); - IGNORE_LANDWALK_KEYWORDS[i] = "May be blocked as though it doesn't have " + landwalk + "."; - } - } - - public static boolean isUnblockableFromLandwalk(final Card attacker, final Player defendingPlayer) { - //May be blocked as though it doesn't have landwalk. (Staff of the Ages) - if (attacker.hasKeyword("May be blocked as though it doesn't have landwalk.")) { - return false; - } - - List walkTypes = Lists.newArrayList(); - - // handle basic landwalk and snow basic landwalk - for (int i = 0; i < LANDWALK_KEYWORDS.length; i++) { - final String basic = MagicColor.Constant.BASIC_LANDS.get(i); - final String landwalk = LANDWALK_KEYWORDS[i]; - final String snowwalk = SNOW_LANDWALK_KEYWORDS[i]; - final String mayBeBlocked = IGNORE_LANDWALK_KEYWORDS[i]; - - if (attacker.hasKeyword(landwalk) && !attacker.hasKeyword(mayBeBlocked)) { - walkTypes.add(basic); - } - - if (attacker.hasKeyword(snowwalk)) { - walkTypes.add(basic + ".Snow"); - } - } - - for (final KeywordInterface inst : attacker.getKeywords(Keyword.LANDWALK)) { - String keyword = inst.getOriginal(); - if (keyword.equals("Legendary landwalk")) { - walkTypes.add("Land.Legendary"); - } else if (keyword.equals("Nonbasic landwalk")) { - walkTypes.add("Land.nonBasic"); - } else if (keyword.equals("Artifact landwalk")) { - walkTypes.add("Land.Artifact"); - } else if (keyword.equals("Snow landwalk")) { - walkTypes.add("Land.Snow"); - } else if (keyword.endsWith("walk")) { - String landtype = TextUtil.fastReplace(keyword, "walk", ""); - String valid = landtype; - - // substract Snow type - if (landtype.startsWith("Snow ")) { - landtype = landtype.substring(5); - valid = landtype + ".Snow"; - } - - // basic land types are handled before - if (CardType.isALandType(landtype) && !CardType.isABasicLandType(landtype)) { - if (!walkTypes.contains(landtype)) { - walkTypes.add(valid); - } - } - } - } - - if (walkTypes.isEmpty()) { - return false; - } - - final String[] valid = walkTypes.toArray(new String[0]); - final CardCollectionView defendingLands = defendingPlayer.getCardsIn(ZoneType.Battlefield); - for (final Card c : defendingLands) { - if (c.isValid(valid, defendingPlayer, attacker, null)) { - return true; - } - } - - return false; - } - /** * canBlockAtLeastOne. * @@ -701,7 +591,7 @@ public class CombatUtil { public static boolean canBeBlocked(final Card attacker, final List blockers, final Combat combat) { int blocks = 0; for (final Card blocker : blockers) { - if (canBeBlocked(attacker, blocker.getController()) && canBlock(attacker, blocker)) { + if (canBlock(attacker, blocker)) { blocks++; } } @@ -716,7 +606,7 @@ public class CombatUtil { } for (final Card blocker : blockers) { - if (canBeBlocked(attacker, blocker.getController()) && canBlock(attacker, blocker)) { + if (canBlock(attacker, blocker)) { potentialBlockers.add(blocker); } } @@ -1127,11 +1017,6 @@ public class CombatUtil { return false; } - if (isUnblockableFromLandwalk(attacker, blocker.getController()) - && !blocker.hasKeyword("CARDNAME can block creatures with landwalk abilities as though they didn't have those abilities.")) { - return false; - } - // rare case: if (blocker.hasKeyword(Keyword.SHADOW) && blocker.hasKeyword("CARDNAME can block creatures with shadow as though they didn't have shadow.")) { diff --git a/forge-game/src/main/java/forge/game/keyword/Hexproof.java b/forge-game/src/main/java/forge/game/keyword/Hexproof.java index bdd15dd5ca2..ee82ec10a4a 100644 --- a/forge-game/src/main/java/forge/game/keyword/Hexproof.java +++ b/forge-game/src/main/java/forge/game/keyword/Hexproof.java @@ -1,16 +1,6 @@ package forge.game.keyword; -import java.util.Collection; - -public class Hexproof extends KeywordInstance { - private String type = ""; - - @Override - protected void parse(String details) { - if (!details.isEmpty()) { - type = details.split(":")[1]; - } - } +public class Hexproof extends KeywordWithType { @Override protected String formatReminderText(String reminderText) { @@ -19,18 +9,4 @@ public class Hexproof extends KeywordInstance { } return String.format(reminderText, type); } - - /* (non-Javadoc) - * @see forge.game.keyword.KeywordInstance#redundant(java.util.Collection) - */ - @Override - public boolean redundant(Collection list) { - for (KeywordInterface i : list) { - if (i.getOriginal().equals(getOriginal())) { - return true; - } - } - return false; - } - } diff --git a/forge-game/src/main/java/forge/game/keyword/Keyword.java b/forge-game/src/main/java/forge/game/keyword/Keyword.java index 3a9c3e53439..9068bd3eddd 100644 --- a/forge-game/src/main/java/forge/game/keyword/Keyword.java +++ b/forge-game/src/main/java/forge/game/keyword/Keyword.java @@ -102,7 +102,7 @@ public enum Keyword { GRAVESTORM("Gravestorm", SimpleKeyword.class, false, "When you cast this spell, copy it for each permanent that was put into a graveyard from the battlefield this turn. If the spell has any targets, you may choose new targets for any of the copies."), HASTE("Haste", SimpleKeyword.class, true, "This creature can attack and {T} as soon as it comes under your control."), HAUNT("Haunt", SimpleKeyword.class, false, "When this is put into a graveyard, exile it haunting target creature."), - HEXPROOF("Hexproof", Hexproof.class, false, "This can't be the target of %s spells or abilities your opponents control."), + HEXPROOF("Hexproof", Hexproof.class, true, "This can't be the target of %s spells or abilities your opponents control."), HIDEAWAY("Hideaway", KeywordWithAmount.class, false, "When this permanent enters the battlefield, look at the top {%d:card} of your library, exile one face down, then put the rest on the bottom of your library."), HORSEMANSHIP("Horsemanship", SimpleKeyword.class, true, "This creature can't be blocked except by creatures with horsemanship."), IMPROVISE("Improvise", SimpleKeyword.class, true, "Your artifacts can help cast this spell. Each artifact you tap after you're done activating mana abilities pays for {1}."), @@ -112,7 +112,7 @@ public enum Keyword { INTIMIDATE("Intimidate", SimpleKeyword.class, true, "This creature can't be blocked except by artifact creatures and/or creatures that share a color with it."), KICKER("Kicker", Kicker.class, false, "You may pay an additional %s as you cast this spell."), JUMP_START("Jump-start", SimpleKeyword.class, false, "You may cast this card from your graveyard by discarding a card in addition to paying its other costs. Then exile this card."), - LANDWALK("Landwalk", KeywordWithType.class, false, "This creature is unblockable as long as defending player controls a %s."), + LANDWALK("Landwalk", KeywordWithType.class, true, "This creature is unblockable as long as defending player controls {1:%s}."), LEVEL_UP("Level up", KeywordWithCost.class, false, "%s: Put a level counter on this. Level up only as a sorcery."), LIFELINK("Lifelink", SimpleKeyword.class, true, "Damage dealt by this creature also causes its controller to gain that much life."), LIVING_METAL("Living metal", SimpleKeyword.class, true, "As long as it's your turn, this Vehicle is also a creature."), @@ -141,7 +141,7 @@ public enum Keyword { PHASING("Phasing", SimpleKeyword.class, true, "This phases in or out before you untap during each of your untap steps. While it's phased out, it's treated as though it doesn't exist."), PLOT("Plot", KeywordWithCost.class, false, "You may pay %s and exile this card from your hand. Cast it as a sorcery on a later turn without paying its mana cost. Plot only as a sorvery."), POISONOUS("Poisonous", KeywordWithAmount.class, false, "Whenever this creature deals combat damage to a player, that player gets {%d:poison counter}."), - PROTECTION("Protection", Protection.class, false, "This creature can't be blocked, targeted, dealt damage, or equipped/enchanted by %s."), + PROTECTION("Protection", Protection.class, true, "This creature can't be blocked, targeted, dealt damage, or equipped/enchanted by %s."), PROTOTYPE("Prototype", KeywordWithCost.class, false, "You may cast this spell with different mana cost, color, and size. It keeps its abilities and types."), PROVOKE("Provoke", SimpleKeyword.class, false, "Whenever this creature attacks, you may have target creature defending player controls untap and block it if able."), PROWESS("Prowess", SimpleKeyword.class, false, "Whenever you cast a noncreature spell, this creature gets +1/+1 until end of turn."), @@ -249,21 +249,13 @@ public enum Keyword { int idx = k.indexOf(' '); String enumName = k.replace(" ", "_").toUpperCase(Locale.ROOT); String firstWord = idx == -1 ? enumName : enumName.substring(0, idx); - if (firstWord.endsWith("WALK")) { - keyword = Keyword.LANDWALK; - details = firstWord.substring(0, firstWord.length() - 4); - } - else if (idx != -1) { + if (idx != -1) { idx = k.indexOf(' ', idx + 1); String secondWord = idx == -1 ? enumName.substring(firstWord.length() + 1) : enumName.substring(firstWord.length() + 1, idx); if (secondWord.equalsIgnoreCase("OFFERING")) { keyword = Keyword.OFFERING; details = firstWord; } - else if (secondWord.equalsIgnoreCase("LANDWALK")) { - keyword = Keyword.LANDWALK; - details = firstWord; - } } } KeywordInstance inst; diff --git a/forge-game/src/main/java/forge/game/keyword/KeywordInstance.java b/forge-game/src/main/java/forge/game/keyword/KeywordInstance.java index 53ee645fb41..efd94ef8e8e 100644 --- a/forge-game/src/main/java/forge/game/keyword/KeywordInstance.java +++ b/forge-game/src/main/java/forge/game/keyword/KeywordInstance.java @@ -303,7 +303,15 @@ public abstract class KeywordInstance> implements K */ @Override public boolean redundant(Collection list) { - return !list.isEmpty() && keyword.isMultipleRedundant; + if (!keyword.isMultipleRedundant) { + return false; + } + for (KeywordInterface i : list) { + if (i.getOriginal().equals(getOriginal())) { + return true; + } + } + return false; } @Override diff --git a/forge-game/src/main/java/forge/game/keyword/KeywordWithType.java b/forge-game/src/main/java/forge/game/keyword/KeywordWithType.java index 8960a920e6a..bd5576b4342 100644 --- a/forge-game/src/main/java/forge/game/keyword/KeywordWithType.java +++ b/forge-game/src/main/java/forge/game/keyword/KeywordWithType.java @@ -3,16 +3,21 @@ package forge.game.keyword; import forge.card.CardType; public class KeywordWithType extends KeywordInstance { - private String type; + protected String type; @Override protected void parse(String details) { if (CardType.isACardType(details)) { type = details.toLowerCase(); } else if (details.contains(":")) { - type = details.split(":")[0]; - if (this.toString().startsWith("Affinity")) { + switch (getKeyword()) { + case AFFINITY: + case HEXPROOF: + case LANDWALK: type = details.split(":")[1]; + break; + default: + type = details.split(":")[0]; } } else { type = details; diff --git a/forge-game/src/main/java/forge/game/keyword/Trample.java b/forge-game/src/main/java/forge/game/keyword/Trample.java index b2c94c5a818..20376a7788c 100644 --- a/forge-game/src/main/java/forge/game/keyword/Trample.java +++ b/forge-game/src/main/java/forge/game/keyword/Trample.java @@ -1,17 +1,6 @@ package forge.game.keyword; -import java.util.Collection; - -public class Trample extends KeywordInstance { - private String type = ""; - - @Override - protected void parse(String details) { - if (!details.isEmpty()) { - type = details.split(":")[0]; - } - } - +public class Trample extends KeywordWithType { @Override protected String formatReminderText(String reminderText) { if (!type.isEmpty()) { @@ -19,17 +8,4 @@ public class Trample extends KeywordInstance { } return reminderText; } - - /* (non-Javadoc) - * @see forge.game.keyword.KeywordInstance#redundant(java.util.Collection) - */ - @Override - public boolean redundant(Collection list) { - for (KeywordInterface i : list) { - if (i.getOriginal().equals(getOriginal())) { - return true; - } - } - return false; - } } diff --git a/forge-game/src/main/java/forge/game/player/PlayerFactoryUtil.java b/forge-game/src/main/java/forge/game/player/PlayerFactoryUtil.java index 45fbbee0a92..d5d0cc00e1b 100644 --- a/forge-game/src/main/java/forge/game/player/PlayerFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/player/PlayerFactoryUtil.java @@ -23,14 +23,14 @@ public class PlayerFactoryUtil { sbValid.append("| ValidSource$ ").append(k[1]); } - String effect = "Mode$ CantTarget | Hexproof$ True | ValidPlayer$ Player.You | Secondary$ True " + String effect = "Mode$ CantTarget | ValidPlayer$ Player.You | Secondary$ True " + sbValid.toString() + " | Activator$ Opponent | EffectZone$ Command | Description$ " + sbDesc.toString() + " (" + inst.getReminderText() + ")"; final Card card = player.getKeywordCard(); inst.addStaticAbility(StaticAbility.create(effect, card, card.getCurrentState(), false)); } else if (keyword.equals("Shroud")) { - String effect = "Mode$ CantTarget | Shroud$ True | ValidPlayer$ Player.You | Secondary$ True " + String effect = "Mode$ CantTarget | ValidPlayer$ Player.You | Secondary$ True " + "| EffectZone$ Command | Description$ Shroud (" + inst.getReminderText() + ")"; final Card card = player.getKeywordCard(); diff --git a/forge-game/src/main/java/forge/game/staticability/StaticAbilityCantAttackBlock.java b/forge-game/src/main/java/forge/game/staticability/StaticAbilityCantAttackBlock.java index 9fd0efb9acf..6ed4d716c8c 100644 --- a/forge-game/src/main/java/forge/game/staticability/StaticAbilityCantAttackBlock.java +++ b/forge-game/src/main/java/forge/game/staticability/StaticAbilityCantAttackBlock.java @@ -83,7 +83,7 @@ public class StaticAbilityCantAttackBlock { return false; } - if (stAb.hasParam("DefenderKeyword")) { + if (stAb.isKeyword(Keyword.DEFENDER)) { // check for "can attack as if didn't have defender" static if (StaticAbilityCanAttackDefender.canAttack(card, target)) { return false; @@ -198,6 +198,11 @@ public class StaticAbilityCantAttackBlock { if (blocker == null || !stAb.matchesValidParam("ValidDefender", blocker.getController())) { return false; } + if (stAb.isKeyword(Keyword.LANDWALK)) { + if (StaticAbilityIgnoreLandwalk.ignoreLandWalk(attacker, blocker, stAb.getKeyword())) { + return false; + } + } return true; } diff --git a/forge-game/src/main/java/forge/game/staticability/StaticAbilityCantTarget.java b/forge-game/src/main/java/forge/game/staticability/StaticAbilityCantTarget.java index d6bcd865032..e918f7b4d43 100644 --- a/forge-game/src/main/java/forge/game/staticability/StaticAbilityCantTarget.java +++ b/forge-game/src/main/java/forge/game/staticability/StaticAbilityCantTarget.java @@ -135,11 +135,11 @@ public class StaticAbilityCantTarget { final Card source = spellAbility.getHostCard(); final Player activator = spellAbility.getActivatingPlayer(); - if (stAb.hasParam("Hexproof") && StaticAbilityIgnoreHexproofShroud.ignore(entity, spellAbility, Keyword.HEXPROOF)) { + if (stAb.isKeyword(Keyword.HEXPROOF) && StaticAbilityIgnoreHexproofShroud.ignore(entity, spellAbility, Keyword.HEXPROOF)) { return false; } - if (stAb.hasParam("Shroud") && StaticAbilityIgnoreHexproofShroud.ignore(entity, spellAbility, Keyword.SHROUD)) { + if (stAb.isKeyword(Keyword.SHROUD) && StaticAbilityIgnoreHexproofShroud.ignore(entity, spellAbility, Keyword.SHROUD)) { return false; } diff --git a/forge-game/src/main/java/forge/game/staticability/StaticAbilityIgnoreLandwalk.java b/forge-game/src/main/java/forge/game/staticability/StaticAbilityIgnoreLandwalk.java new file mode 100644 index 00000000000..dbea6bfdce7 --- /dev/null +++ b/forge-game/src/main/java/forge/game/staticability/StaticAbilityIgnoreLandwalk.java @@ -0,0 +1,42 @@ +package forge.game.staticability; + +import forge.game.Game; +import forge.game.card.Card; +import forge.game.keyword.KeywordInterface; +import forge.game.zone.ZoneType; + +public class StaticAbilityIgnoreLandwalk { + + static String MODE = "IgnoreLandWalk"; + + public static boolean ignoreLandWalk(Card attacker, Card blocker, KeywordInterface k) { + final Game game = attacker.getGame(); + for (final Card ca : game.getCardsIn(ZoneType.STATIC_ABILITIES_SOURCE_ZONES)) { + for (final StaticAbility stAb : ca.getStaticAbilities()) { + if (!stAb.checkConditions(MODE)) { + continue; + } + + if (ignoreLandWalkAbility(stAb, attacker, blocker, k)) { + return true; + } + } + } + return false; + + } + + public static boolean ignoreLandWalkAbility(final StaticAbility stAb, Card attacker, Card blocker, KeywordInterface k) { + if (!stAb.matchesValidParam("ValidAttacker", attacker)) { + return false; + } + if (!stAb.matchesValidParam("ValidBlocker", blocker)) { + return false; + } + if (!stAb.matchesValidParam("ValidKeyword", k.getOriginal())) { + return false; + } + + return true; + } +} diff --git a/forge-gui/res/cardsfolder/a/anaconda.txt b/forge-gui/res/cardsfolder/a/anaconda.txt index 9198ff4e4b9..f4d00369754 100644 --- a/forge-gui/res/cardsfolder/a/anaconda.txt +++ b/forge-gui/res/cardsfolder/a/anaconda.txt @@ -2,5 +2,5 @@ Name:Anaconda ManaCost:3 G Types:Creature Snake PT:3/3 -K:Swampwalk +K:Landwalk:Swamp Oracle:Swampwalk (This creature can't be blocked as long as defending player controls a Swamp.) diff --git a/forge-gui/res/cardsfolder/a/anurid_murkdiver.txt b/forge-gui/res/cardsfolder/a/anurid_murkdiver.txt index 36da0be0358..910b736327f 100644 --- a/forge-gui/res/cardsfolder/a/anurid_murkdiver.txt +++ b/forge-gui/res/cardsfolder/a/anurid_murkdiver.txt @@ -2,5 +2,5 @@ Name:Anurid Murkdiver ManaCost:4 B B Types:Creature Zombie Frog Beast PT:4/3 -K:Swampwalk +K:Landwalk:Swamp Oracle:Swampwalk (This creature can't be blocked as long as defending player controls a Swamp.) diff --git a/forge-gui/res/cardsfolder/a/aysen_highway.txt b/forge-gui/res/cardsfolder/a/aysen_highway.txt index 64d4d1905b6..2729565a143 100644 --- a/forge-gui/res/cardsfolder/a/aysen_highway.txt +++ b/forge-gui/res/cardsfolder/a/aysen_highway.txt @@ -1,7 +1,7 @@ Name:Aysen Highway ManaCost:3 W W W Types:Enchantment -S:Mode$ Continuous | Affected$ Creature.White | AddKeyword$ Plainswalk | Description$ White creatures have plainswalk. +S:Mode$ Continuous | Affected$ Creature.White | AddKeyword$ Landwalk:Plains | Description$ White creatures have plainswalk. SVar:NonStackingEffect:True AI:RemoveDeck:Random Oracle:White creatures have plainswalk. (They can't be blocked as long as defending player controls a Plains.) diff --git a/forge-gui/res/cardsfolder/a/ayumi_the_last_visitor.txt b/forge-gui/res/cardsfolder/a/ayumi_the_last_visitor.txt index e33afd4304a..2f690b3c5ba 100644 --- a/forge-gui/res/cardsfolder/a/ayumi_the_last_visitor.txt +++ b/forge-gui/res/cardsfolder/a/ayumi_the_last_visitor.txt @@ -2,5 +2,5 @@ Name:Ayumi, the Last Visitor ManaCost:3 G G Types:Legendary Creature Spirit PT:7/3 -K:Legendary landwalk +K:Landwalk:Land.Legendary:Legendary land Oracle:Legendary landwalk (This creature can't be blocked as long as defending player controls a legendary land.) diff --git a/forge-gui/res/cardsfolder/b/barbarian_guides.txt b/forge-gui/res/cardsfolder/b/barbarian_guides.txt index eb19d12d5e6..2c15630a291 100644 --- a/forge-gui/res/cardsfolder/b/barbarian_guides.txt +++ b/forge-gui/res/cardsfolder/b/barbarian_guides.txt @@ -3,7 +3,7 @@ ManaCost:2 R Types:Creature Human Barbarian PT:1/2 A:AB$ ChooseType | Cost$ 2 R T | Defined$ You | Type$ Land | SubAbility$ DBPump | StackDescription$ SpellDescription | SpellDescription$ Choose a land type. Target creature you control gains snow landwalk of the chosen type until end of turn. -SVar:DBPump:DB$ Pump | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | KW$ Snow ChosenTypewalk | DefinedKW$ ChosenType | StackDescription$ None | SubAbility$ DBDelTrig +SVar:DBPump:DB$ Pump | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | KW$ Landwalk:ChosenType.Snow:Snow Chosentype | DefinedKW$ ChosenType | StackDescription$ None | SubAbility$ DBDelTrig SVar:DBDelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn | RememberObjects$ ParentTarget | Execute$ TrigReturn | SpellDescription$ Return that creature to its owner's hand at the beginning of the next end step. SVar:TrigReturn:DB$ ChangeZone | Defined$ DelayTriggerRememberedLKI | Origin$ Battlefield | Destination$ Hand AI:RemoveDeck:All diff --git a/forge-gui/res/cardsfolder/b/bayou_dragonfly.txt b/forge-gui/res/cardsfolder/b/bayou_dragonfly.txt index cea63849487..b8c50c7ef3b 100644 --- a/forge-gui/res/cardsfolder/b/bayou_dragonfly.txt +++ b/forge-gui/res/cardsfolder/b/bayou_dragonfly.txt @@ -3,5 +3,5 @@ ManaCost:1 G Types:Creature Insect PT:1/1 K:Flying -K:Swampwalk +K:Landwalk:Swamp Oracle:Flying; swampwalk (This creature can't be blocked as long as defending player controls a Swamp.) diff --git a/forge-gui/res/cardsfolder/b/benthic_behemoth.txt b/forge-gui/res/cardsfolder/b/benthic_behemoth.txt index 67d11a21042..af439575ef7 100644 --- a/forge-gui/res/cardsfolder/b/benthic_behemoth.txt +++ b/forge-gui/res/cardsfolder/b/benthic_behemoth.txt @@ -2,5 +2,5 @@ Name:Benthic Behemoth ManaCost:5 U U U Types:Creature Serpent PT:7/6 -K:Islandwalk +K:Landwalk:Island Oracle:Islandwalk (This creature can't be blocked as long as defending player controls an Island.) diff --git a/forge-gui/res/cardsfolder/b/benthic_djinn.txt b/forge-gui/res/cardsfolder/b/benthic_djinn.txt index 475a60b2f35..fe936a177a1 100644 --- a/forge-gui/res/cardsfolder/b/benthic_djinn.txt +++ b/forge-gui/res/cardsfolder/b/benthic_djinn.txt @@ -2,7 +2,7 @@ Name:Benthic Djinn ManaCost:2 U B Types:Creature Djinn PT:5/3 -K:Islandwalk +K:Landwalk:Island T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigLoseLife | TriggerDescription$ At the beginning of your upkeep, you lose 2 life. SVar:TrigLoseLife:DB$ LoseLife | Defined$ You | LifeAmount$ 2 Oracle:Islandwalk (This creature can't be blocked as long as defending player controls an Island.)\nAt the beginning of your upkeep, you lose 2 life. diff --git a/forge-gui/res/cardsfolder/b/blistergrub.txt b/forge-gui/res/cardsfolder/b/blistergrub.txt index 8de7842e409..bf6375b060d 100644 --- a/forge-gui/res/cardsfolder/b/blistergrub.txt +++ b/forge-gui/res/cardsfolder/b/blistergrub.txt @@ -2,7 +2,7 @@ Name:Blistergrub ManaCost:2 B Types:Creature Phyrexian Horror PT:2/2 -K:Swampwalk +K:Landwalk:Swamp T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigLoseLife | TriggerDescription$ When CARDNAME dies, each opponent loses 2 life. SVar:TrigLoseLife:DB$ LoseLife | Defined$ Player.Opponent | LifeAmount$ 2 Oracle:Swampwalk (This creature can't be blocked as long as defending player controls a Swamp.)\nWhen Blistergrub dies, each opponent loses 2 life. diff --git a/forge-gui/res/cardsfolder/b/bog_raiders.txt b/forge-gui/res/cardsfolder/b/bog_raiders.txt index 1442c0c07d7..d54679336fa 100644 --- a/forge-gui/res/cardsfolder/b/bog_raiders.txt +++ b/forge-gui/res/cardsfolder/b/bog_raiders.txt @@ -2,5 +2,5 @@ Name:Bog Raiders ManaCost:2 B Types:Creature Zombie PT:2/2 -K:Swampwalk +K:Landwalk:Swamp Oracle:Swampwalk (This creature can't be blocked as long as defending player controls a Swamp.) diff --git a/forge-gui/res/cardsfolder/b/bog_smugglers.txt b/forge-gui/res/cardsfolder/b/bog_smugglers.txt index 4762b48f959..8b6ac0971d8 100644 --- a/forge-gui/res/cardsfolder/b/bog_smugglers.txt +++ b/forge-gui/res/cardsfolder/b/bog_smugglers.txt @@ -2,5 +2,5 @@ Name:Bog Smugglers ManaCost:1 B B Types:Creature Human Mercenary PT:2/2 -K:Swampwalk +K:Landwalk:Swamp Oracle:Swampwalk (This creature can't be blocked as long as defending player controls a Swamp.) diff --git a/forge-gui/res/cardsfolder/b/bog_strider_ash.txt b/forge-gui/res/cardsfolder/b/bog_strider_ash.txt index 0e0a0dee339..3a8d3a6530d 100644 --- a/forge-gui/res/cardsfolder/b/bog_strider_ash.txt +++ b/forge-gui/res/cardsfolder/b/bog_strider_ash.txt @@ -2,7 +2,7 @@ Name:Bog-Strider Ash ManaCost:3 G Types:Creature Treefolk Shaman PT:2/4 -K:Swampwalk +K:Landwalk:Swamp T:Mode$ SpellCast | ValidCard$ Goblin | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigGainLife | TriggerDescription$ Whenever a player casts a Goblin spell, you may pay {G}. If you do, you gain 2 life. SVar:TrigGainLife:AB$GainLife | Cost$ G | Defined$ You | LifeAmount$ 2 Oracle:Swampwalk (This creature can't be blocked as long as defending player controls a Swamp.)\nWhenever a player casts a Goblin spell, you may pay {G}. If you do, you gain 2 life. diff --git a/forge-gui/res/cardsfolder/b/bog_tatters.txt b/forge-gui/res/cardsfolder/b/bog_tatters.txt index 0a9c2bfb14d..1d143e47352 100644 --- a/forge-gui/res/cardsfolder/b/bog_tatters.txt +++ b/forge-gui/res/cardsfolder/b/bog_tatters.txt @@ -2,5 +2,5 @@ Name:Bog Tatters ManaCost:4 B Types:Creature Wraith PT:4/2 -K:Swampwalk +K:Landwalk:Swamp Oracle:Swampwalk (This creature can't be blocked as long as defending player controls a Swamp.) diff --git a/forge-gui/res/cardsfolder/b/bog_wraith.txt b/forge-gui/res/cardsfolder/b/bog_wraith.txt index 8f10ba50c73..2e18f0eb282 100644 --- a/forge-gui/res/cardsfolder/b/bog_wraith.txt +++ b/forge-gui/res/cardsfolder/b/bog_wraith.txt @@ -2,5 +2,5 @@ Name:Bog Wraith ManaCost:3 B Types:Creature Wraith PT:3/3 -K:Swampwalk +K:Landwalk:Swamp Oracle:Swampwalk (This creature can't be blocked as long as defending player controls a Swamp.) diff --git a/forge-gui/res/cardsfolder/b/boggart_arsonists.txt b/forge-gui/res/cardsfolder/b/boggart_arsonists.txt index 2b38b55f266..5e1bb87f92b 100644 --- a/forge-gui/res/cardsfolder/b/boggart_arsonists.txt +++ b/forge-gui/res/cardsfolder/b/boggart_arsonists.txt @@ -2,7 +2,7 @@ Name:Boggart Arsonists ManaCost:2 R Types:Creature Goblin Rogue PT:2/1 -K:Plainswalk +K:Landwalk:Plains A:AB$ Destroy | Cost$ 2 R Sac<1/CARDNAME> | ValidTgts$ Scarecrow,Plains | TgtPrompt$ Select target Scarecrow or Plains | SpellDescription$ Destroy target Scarecrow or Plains. AI:RemoveDeck:Random Oracle:Plainswalk (This creature can't be blocked as long as defending player controls a Plains.)\n{2}{R}, Sacrifice Boggart Arsonists: Destroy target Scarecrow or Plains. diff --git a/forge-gui/res/cardsfolder/b/boggart_loggers.txt b/forge-gui/res/cardsfolder/b/boggart_loggers.txt index 16c503b0757..97e15f1c1f2 100644 --- a/forge-gui/res/cardsfolder/b/boggart_loggers.txt +++ b/forge-gui/res/cardsfolder/b/boggart_loggers.txt @@ -2,6 +2,6 @@ Name:Boggart Loggers ManaCost:2 B Types:Creature Goblin Rogue PT:2/1 -K:Forestwalk +K:Landwalk:Forest A:AB$ Destroy | Cost$ 2 B Sac<1/CARDNAME> | ValidTgts$ Treefolk,Forest | TgtPrompt$ Select target Treefolk or Forest | SpellDescription$ Destroy target Treefolk or Forest. Oracle:Forestwalk (This creature can't be blocked as long as defending player controls a Forest.)\n{2}{B}, Sacrifice Boggart Loggers: Destroy target Treefolk or Forest. diff --git a/forge-gui/res/cardsfolder/b/bowie_base_one.txt b/forge-gui/res/cardsfolder/b/bowie_base_one.txt index 925ce845ff4..a1c4ba95775 100644 --- a/forge-gui/res/cardsfolder/b/bowie_base_one.txt +++ b/forge-gui/res/cardsfolder/b/bowie_base_one.txt @@ -4,5 +4,5 @@ Types:Plane Mars T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | Execute$ TrigGoad | TriggerZones$ Command | TriggerDescription$ At the beginning of your end step, goad target creature controlled by the player to your left. (Until your next turn, that creature attacks each combat if able and attacks a player other than you if able.) SVar:TrigGoad:DB$ Goad | ValidTgts$ Creature.ControlledBy NextPlayerToYourLeft | TgtPrompt$ Select target creature controlled by the player to your left T:Mode$ ChaosEnsues | TriggerZones$ Command | Execute$ TrigPump | TriggerDescription$ Whenever chaos ensues, target creature gains islandwalk until end of turn. (It can't be blocked as long as defending player controls an Island.) -SVar:TrigPump:DB$ Pump | ValidTgts$ Creature | KW$ Islandwalk +SVar:TrigPump:DB$ Pump | ValidTgts$ Creature | KW$ Landwalk:Island Oracle:At the beginning of your end step, goad target creature controlled by the player to your left. (Until your next turn, that creature attacks each combat if able and attacks a player other than you if able.)\nWhenever chaos ensues, target creature gains islandwalk until end of turn. (It can't be blocked as long as defending player controls an Island.) diff --git a/forge-gui/res/cardsfolder/b/bull_hippo.txt b/forge-gui/res/cardsfolder/b/bull_hippo.txt index fcb4adab8a6..2ef9c0d4e6b 100644 --- a/forge-gui/res/cardsfolder/b/bull_hippo.txt +++ b/forge-gui/res/cardsfolder/b/bull_hippo.txt @@ -2,5 +2,5 @@ Name:Bull Hippo ManaCost:3 G Types:Creature Hippo PT:3/3 -K:Islandwalk +K:Landwalk:Island Oracle:Islandwalk (This creature can't be blocked as long as defending player controls an Island.) diff --git a/forge-gui/res/cardsfolder/b/burrowing.txt b/forge-gui/res/cardsfolder/b/burrowing.txt index f8ba15e6ed1..4685f3d9cf4 100644 --- a/forge-gui/res/cardsfolder/b/burrowing.txt +++ b/forge-gui/res/cardsfolder/b/burrowing.txt @@ -3,7 +3,7 @@ ManaCost:R Types:Enchantment Aura 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. +S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ Landwalk:Mountain | 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/camato_scout.txt b/forge-gui/res/cardsfolder/c/camato_scout.txt index d05d51376ce..e1c8aec2f6b 100644 --- a/forge-gui/res/cardsfolder/c/camato_scout.txt +++ b/forge-gui/res/cardsfolder/c/camato_scout.txt @@ -4,5 +4,5 @@ Types:Creature Merfolk PT:2/3 K:ETBReplacement:Other:ChooseLT SVar:ChooseLT:DB$ ChooseType | Defined$ You | AtRandom$ True | Type$ Basic Land | SpellDescription$ As CARDNAME enters the battlefield, choose a land type. -S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ ChosenTypewalk | Description$ CARDNAME has landwalk of the chosen type. +S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Landwalk:ChosenType | Description$ CARDNAME has landwalk of the chosen type. Oracle:As Camato Scout enters the battlefield, choose a basic land type at random. Camato Scout has landwalk of the chosen type. diff --git a/forge-gui/res/cardsfolder/c/canyon_wildcat.txt b/forge-gui/res/cardsfolder/c/canyon_wildcat.txt index f1558a8bffa..dbf50368183 100644 --- a/forge-gui/res/cardsfolder/c/canyon_wildcat.txt +++ b/forge-gui/res/cardsfolder/c/canyon_wildcat.txt @@ -2,5 +2,5 @@ Name:Canyon Wildcat ManaCost:1 R Types:Creature Cat PT:2/1 -K:Mountainwalk +K:Landwalk:Mountain Oracle:Mountainwalk (This creature can't be blocked as long as defending player controls a Mountain.) diff --git a/forge-gui/res/cardsfolder/c/cat_warriors.txt b/forge-gui/res/cardsfolder/c/cat_warriors.txt index 229304b851d..ecc95932471 100644 --- a/forge-gui/res/cardsfolder/c/cat_warriors.txt +++ b/forge-gui/res/cardsfolder/c/cat_warriors.txt @@ -2,5 +2,5 @@ Name:Cat Warriors ManaCost:1 G G Types:Creature Cat Warrior PT:2/2 -K:Forestwalk +K:Landwalk:Forest Oracle:Forestwalk (This creature can't be blocked as long as defending player controls a Forest.) diff --git a/forge-gui/res/cardsfolder/c/cateran_slaver.txt b/forge-gui/res/cardsfolder/c/cateran_slaver.txt index 2641ba131d8..d7413d1762d 100644 --- a/forge-gui/res/cardsfolder/c/cateran_slaver.txt +++ b/forge-gui/res/cardsfolder/c/cateran_slaver.txt @@ -2,7 +2,7 @@ Name:Cateran Slaver ManaCost:4 B B Types:Creature Horror Mercenary PT:5/5 -K:Swampwalk +K:Landwalk:Swamp A:AB$ ChangeZone | Cost$ 5 T | Origin$ Library | Destination$ Battlefield | ChangeType$ Permanent.Mercenary+cmcLE5 | ChangeNum$ 1 | SpellDescription$ Search your library for a Mercenary permanent card with mana value 5 or less, put it onto the battlefield, then shuffle. AI:RemoveDeck:Random Oracle:Swampwalk (This creature can't be blocked as long as defending player controls a Swamp.)\n{5}, {T}: Search your library for a Mercenary permanent card with mana value 5 or less, put it onto the battlefield, then shuffle. diff --git a/forge-gui/res/cardsfolder/c/cave_people.txt b/forge-gui/res/cardsfolder/c/cave_people.txt index a7e19d27157..e71aa84b9b9 100644 --- a/forge-gui/res/cardsfolder/c/cave_people.txt +++ b/forge-gui/res/cardsfolder/c/cave_people.txt @@ -3,7 +3,7 @@ ManaCost:1 R R Types:Creature Human PT:1/4 T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigPump | TriggerDescription$ Whenever CARDNAME attacks, it gets +1/-2 until end of turn. -A:AB$ Pump | Cost$ 1 R R T | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Mountainwalk | SpellDescription$ Target creature gains mountainwalk until end of turn. +A:AB$ Pump | Cost$ 1 R R T | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Landwalk:Mountain | SpellDescription$ Target creature gains mountainwalk until end of turn. SVar:TrigPump:DB$ Pump | Defined$ Self | NumAtt$ 1 | NumDef$ -2 DeckHas:Keyword$Mountainwalk Oracle:Whenever Cave People attacks, it gets +1/-2 until end of turn.\n{1}{R}{R}, {T}: Target creature gains mountainwalk until end of turn. (It can't be blocked as long as defending player controls a Mountain.) diff --git a/forge-gui/res/cardsfolder/c/cave_sense.txt b/forge-gui/res/cardsfolder/c/cave_sense.txt index a2c8cdc7e93..d88cb2c02a8 100644 --- a/forge-gui/res/cardsfolder/c/cave_sense.txt +++ b/forge-gui/res/cardsfolder/c/cave_sense.txt @@ -3,5 +3,5 @@ ManaCost:1 R Types:Enchantment Aura K:Enchant creature A:SP$ Attach | Cost$ 1 R | ValidTgts$ Creature | AILogic$ Pump -S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ Mountainwalk | Description$ Enchanted creature gets +1/+1 and has mountainwalk. +S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ Landwalk:Mountain | Description$ Enchanted creature gets +1/+1 and has mountainwalk. Oracle:Enchant creature\nEnchanted creature gets +1/+1 and has mountainwalk. (It can't be blocked as long as defending player controls a Mountain.) diff --git a/forge-gui/res/cardsfolder/c/cavern_crawler.txt b/forge-gui/res/cardsfolder/c/cavern_crawler.txt index a719ae7fbb6..62c28f3f749 100644 --- a/forge-gui/res/cardsfolder/c/cavern_crawler.txt +++ b/forge-gui/res/cardsfolder/c/cavern_crawler.txt @@ -2,6 +2,6 @@ Name:Cavern Crawler ManaCost:2 R Types:Creature Insect PT:0/3 -K:Mountainwalk +K:Landwalk:Mountain A:AB$ Pump | Cost$ R | Defined$ Self | NumAtt$ +1 | NumDef$ -1 | SpellDescription$ CARDNAME gets +1/-1 until end of turn. Oracle:Mountainwalk (This creature can't be blocked as long as defending player controls a Mountain.)\n{R}: Cavern Crawler gets +1/-1 until end of turn. diff --git a/forge-gui/res/cardsfolder/c/chatterfang_squirrel_general.txt b/forge-gui/res/cardsfolder/c/chatterfang_squirrel_general.txt index c8aae6bab23..5eb9a4624b0 100644 --- a/forge-gui/res/cardsfolder/c/chatterfang_squirrel_general.txt +++ b/forge-gui/res/cardsfolder/c/chatterfang_squirrel_general.txt @@ -2,7 +2,7 @@ Name:Chatterfang, Squirrel General ManaCost:2 G Types:Legendary Creature Squirrel Warrior PT:3/3 -K:Forestwalk +K:Landwalk:Forest R:Event$ CreateToken | ActiveZones$ Battlefield | ValidToken$ Card.YouCtrl | ReplaceWith$ DBReplace | Description$ If one or more tokens would be created under your control, those tokens plus that many 1/1 green Squirrel creature tokens are created instead. SVar:DBReplace:DB$ ReplaceToken | Type$ AddToken | ValidCard$ Card.YouCtrl | TokenScript$ g_1_1_squirrel A:AB$ Pump | Cost$ B Sac | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ +X | NumDef$ -X | SpellDescription$ Target creature gets +X/-X until end of turn. diff --git a/forge-gui/res/cardsfolder/c/chorus_of_the_conclave.txt b/forge-gui/res/cardsfolder/c/chorus_of_the_conclave.txt index cfdbda48b96..c57f2a4650f 100644 --- a/forge-gui/res/cardsfolder/c/chorus_of_the_conclave.txt +++ b/forge-gui/res/cardsfolder/c/chorus_of_the_conclave.txt @@ -2,6 +2,6 @@ Name:Chorus of the Conclave ManaCost:4 G G W W Types:Legendary Creature Dryad PT:3/8 -K:Forestwalk +K:Landwalk:Forest K:As an additional cost to cast creature spells, you may pay any amount of mana. If you do, that creature enters the battlefield with that many additional +1/+1 counters on it. Oracle:Forestwalk (This creature can't be blocked as long as defending player controls a Forest.)\nAs an additional cost to cast creature spells, you may pay any amount of mana. If you do, that creature enters the battlefield with that many additional +1/+1 counters on it. diff --git a/forge-gui/res/cardsfolder/c/cliff_threader.txt b/forge-gui/res/cardsfolder/c/cliff_threader.txt index 0a21cf9c763..a6ff870bfdf 100644 --- a/forge-gui/res/cardsfolder/c/cliff_threader.txt +++ b/forge-gui/res/cardsfolder/c/cliff_threader.txt @@ -2,5 +2,5 @@ Name:Cliff Threader ManaCost:1 W Types:Creature Kor Scout PT:2/1 -K:Mountainwalk +K:Landwalk:Mountain Oracle:Mountainwalk (This creature can't be blocked as long as defending player controls a Mountain.) diff --git a/forge-gui/res/cardsfolder/c/cold_eyed_selkie.txt b/forge-gui/res/cardsfolder/c/cold_eyed_selkie.txt index f7f394e19e4..c765ad36df2 100644 --- a/forge-gui/res/cardsfolder/c/cold_eyed_selkie.txt +++ b/forge-gui/res/cardsfolder/c/cold_eyed_selkie.txt @@ -2,7 +2,7 @@ Name:Cold-Eyed Selkie ManaCost:1 GU GU Types:Creature Merfolk Rogue PT:1/1 -K:Islandwalk +K:Landwalk:Island T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | Execute$ TrigDraw | CombatDamage$ True | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, you may draw that many cards. SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ X | OptionalDecider$ You SVar:X:TriggerCount$DamageAmount diff --git a/forge-gui/res/cardsfolder/c/colos_yearling.txt b/forge-gui/res/cardsfolder/c/colos_yearling.txt index 78077ff2987..4dac1bf74b1 100644 --- a/forge-gui/res/cardsfolder/c/colos_yearling.txt +++ b/forge-gui/res/cardsfolder/c/colos_yearling.txt @@ -2,6 +2,6 @@ Name:Colos Yearling ManaCost:2 R Types:Creature Goat Beast PT:1/1 -K:Mountainwalk +K:Landwalk:Mountain A:AB$ Pump | Cost$ R | Defined$ Self | NumAtt$ +1 | SpellDescription$ CARDNAME gets +1/+0 until end of turn. Oracle:Mountainwalk (This creature can't be blocked as long as defending player controls a Mountain.)\n{R}: Colos Yearling gets +1/+0 until end of turn. diff --git a/forge-gui/res/cardsfolder/c/colossal_whale.txt b/forge-gui/res/cardsfolder/c/colossal_whale.txt index 5c77c785382..2e5d26da7e1 100644 --- a/forge-gui/res/cardsfolder/c/colossal_whale.txt +++ b/forge-gui/res/cardsfolder/c/colossal_whale.txt @@ -2,7 +2,7 @@ Name:Colossal Whale ManaCost:5 U U Types:Creature Whale PT:5/5 -K:Islandwalk +K:Landwalk:Island T:Mode$ Attacks | ValidCard$ Card.Self | OptionalDecider$ You | Execute$ TrigExile | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME attacks, you may exile target creature defending player controls until CARDNAME leaves the battlefield. SVar:TrigExile:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | ValidTgts$ Creature.DefenderCtrl | TgtPrompt$ Select target creature defending player control | Duration$ UntilHostLeavesPlay SVar:PlayMain1:TRUE diff --git a/forge-gui/res/cardsfolder/c/crevasse.txt b/forge-gui/res/cardsfolder/c/crevasse.txt index fe4b6101063..e48f6c9a406 100644 --- a/forge-gui/res/cardsfolder/c/crevasse.txt +++ b/forge-gui/res/cardsfolder/c/crevasse.txt @@ -1,7 +1,7 @@ Name:Crevasse ManaCost:2 R Types:Enchantment -S:Mode$ Continuous | Affected$ Creature.withMountainwalk | AddHiddenKeyword$ May be blocked as though it doesn't have Mountainwalk. | Description$ Creatures with mountainwalk can be blocked as though they didn't have mountainwalk. +S:Mode$ IgnoreLandWalk | ValidKeyword$ Landwalk:Mountain | Description$ Creatures with mountainwalk can be blocked as though they didn't have mountainwalk. SVar:NonStackingEffect:True AI:RemoveDeck:Random Oracle:Creatures with mountainwalk can be blocked as though they didn't have mountainwalk. diff --git a/forge-gui/res/cardsfolder/d/deadfall.txt b/forge-gui/res/cardsfolder/d/deadfall.txt index a53a7476901..15c1d0bd9d6 100644 --- a/forge-gui/res/cardsfolder/d/deadfall.txt +++ b/forge-gui/res/cardsfolder/d/deadfall.txt @@ -1,7 +1,7 @@ Name:Deadfall ManaCost:2 G Types:Enchantment -S:Mode$ Continuous | Affected$ Creature.withForestwalk | AddHiddenKeyword$ May be blocked as though it doesn't have Forestwalk. | Description$ Creatures with forestwalk can be blocked as though they didn't have forestwalk. +S:Mode$ IgnoreLandWalk | ValidKeyword$ Landwalk:Forest | Description$ Creatures with forestwalk can be blocked as though they didn't have forestwalk. SVar:NonStackingEffect:True AI:RemoveDeck:Random Oracle:Creatures with forestwalk can be blocked as though they didn't have forestwalk. diff --git a/forge-gui/res/cardsfolder/d/deeptread_merrow.txt b/forge-gui/res/cardsfolder/d/deeptread_merrow.txt index a14741574d4..9f9a8fd58c8 100644 --- a/forge-gui/res/cardsfolder/d/deeptread_merrow.txt +++ b/forge-gui/res/cardsfolder/d/deeptread_merrow.txt @@ -2,5 +2,5 @@ Name:Deeptread Merrow ManaCost:1 U Types:Creature Merfolk Rogue PT:2/1 -A:AB$ Pump | Cost$ U | Defined$ Self | KW$ Islandwalk | SpellDescription$ CARDNAME gains islandwalk until end of turn. (It can't be blocked as long as defending player controls an Island.) +A:AB$ Pump | Cost$ U | Defined$ Self | KW$ Landwalk:Island | SpellDescription$ CARDNAME gains islandwalk until end of turn. (It can't be blocked as long as defending player controls an Island.) Oracle:{U}: Deeptread Merrow gains islandwalk until end of turn. (It can't be blocked as long as defending player controls an Island.) diff --git a/forge-gui/res/cardsfolder/d/desert_nomads.txt b/forge-gui/res/cardsfolder/d/desert_nomads.txt index 58f86857557..4c49ec64e10 100644 --- a/forge-gui/res/cardsfolder/d/desert_nomads.txt +++ b/forge-gui/res/cardsfolder/d/desert_nomads.txt @@ -2,6 +2,6 @@ Name:Desert Nomads ManaCost:2 R Types:Creature Human Nomad PT:2/2 -K:Desertwalk +K:Landwalk:Desert R:Event$ DamageDone | Prevent$ True | ValidSource$ Desert | ValidTarget$ Creature.Self | Description$ Prevent all damage that would be dealt to CARDNAME by Deserts. Oracle:Desertwalk\nPrevent all damage that would be dealt to Desert Nomads by Deserts. diff --git a/forge-gui/res/cardsfolder/d/devouring_deep.txt b/forge-gui/res/cardsfolder/d/devouring_deep.txt index 2dfa5986e61..d9e9c903af6 100644 --- a/forge-gui/res/cardsfolder/d/devouring_deep.txt +++ b/forge-gui/res/cardsfolder/d/devouring_deep.txt @@ -2,5 +2,5 @@ Name:Devouring Deep ManaCost:2 U Types:Creature Fish PT:1/2 -K:Islandwalk +K:Landwalk:Island Oracle:Islandwalk (This creature can't be blocked as long as defending player controls an Island.) diff --git a/forge-gui/res/cardsfolder/d/dirtwater_wraith.txt b/forge-gui/res/cardsfolder/d/dirtwater_wraith.txt index 06f3b9dfa54..d3a4a7722a2 100644 --- a/forge-gui/res/cardsfolder/d/dirtwater_wraith.txt +++ b/forge-gui/res/cardsfolder/d/dirtwater_wraith.txt @@ -2,6 +2,6 @@ Name:Dirtwater Wraith ManaCost:3 B Types:Creature Wraith PT:1/3 -K:Swampwalk +K:Landwalk:Swamp A:AB$ Pump | Cost$ B | Defined$ Self | NumAtt$ +1 | SpellDescription$ CARDNAME gets +1/+0 until end of turn. Oracle:Swampwalk (This creature can't be blocked as long as defending player controls a Swamp.)\n{B}: Dirtwater Wraith gets +1/+0 until end of turn. diff --git a/forge-gui/res/cardsfolder/d/dryad_sophisticate.txt b/forge-gui/res/cardsfolder/d/dryad_sophisticate.txt index 469d1df04a5..2f9d24d0056 100644 --- a/forge-gui/res/cardsfolder/d/dryad_sophisticate.txt +++ b/forge-gui/res/cardsfolder/d/dryad_sophisticate.txt @@ -2,5 +2,5 @@ Name:Dryad Sophisticate ManaCost:1 G Types:Creature Dryad PT:2/1 -K:Nonbasic landwalk +K:Landwalk:Land.nonBasic:Nonbasic land Oracle:Nonbasic landwalk (This creature can't be blocked as long as defending player controls a nonbasic land.) diff --git a/forge-gui/res/cardsfolder/d/dryads_favor.txt b/forge-gui/res/cardsfolder/d/dryads_favor.txt index 22ff7d11588..885fb1557fe 100644 --- a/forge-gui/res/cardsfolder/d/dryads_favor.txt +++ b/forge-gui/res/cardsfolder/d/dryads_favor.txt @@ -3,5 +3,5 @@ ManaCost:G Types:Enchantment Aura K:Enchant creature A:SP$ Attach | Cost$ G | ValidTgts$ Creature | AILogic$ Pump -S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ Forestwalk | Description$ Enchanted creature has forestwalk. (It can't be blocked as long as defending player controls a Forest.) +S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ Landwalk:Forest | Description$ Enchanted creature has forestwalk. (It can't be blocked as long as defending player controls a Forest.) Oracle:Enchant creature\nEnchanted creature has forestwalk. (It can't be blocked as long as defending player controls a Forest.) diff --git a/forge-gui/res/cardsfolder/d/dwarven_grunt.txt b/forge-gui/res/cardsfolder/d/dwarven_grunt.txt index 914aec1d30c..5959b06bce8 100644 --- a/forge-gui/res/cardsfolder/d/dwarven_grunt.txt +++ b/forge-gui/res/cardsfolder/d/dwarven_grunt.txt @@ -2,5 +2,5 @@ Name:Dwarven Grunt ManaCost:R Types:Creature Dwarf PT:1/1 -K:Mountainwalk +K:Landwalk:Mountain Oracle:Mountainwalk (This creature can't be blocked as long as defending player controls a Mountain.) diff --git a/forge-gui/res/cardsfolder/d/dwarven_pony.txt b/forge-gui/res/cardsfolder/d/dwarven_pony.txt index 2383a9d51da..d0243982e04 100644 --- a/forge-gui/res/cardsfolder/d/dwarven_pony.txt +++ b/forge-gui/res/cardsfolder/d/dwarven_pony.txt @@ -2,5 +2,5 @@ Name:Dwarven Pony ManaCost:R Types:Creature Horse PT:1/1 -A:AB$ Pump | Cost$ 1 R T | ValidTgts$ Creature.Dwarf | TgtPrompt$ Select target Dwarf creature | KW$ Mountainwalk | SpellDescription$ Target Dwarf creature gains mountainwalk until end of turn. (It can't be blocked as long as defending player controls a Mountain.) +A:AB$ Pump | Cost$ 1 R T | ValidTgts$ Creature.Dwarf | TgtPrompt$ Select target Dwarf creature | KW$ Landwalk:Mountain | SpellDescription$ Target Dwarf creature gains mountainwalk until end of turn. (It can't be blocked as long as defending player controls a Mountain.) Oracle:{1}{R}, {T}: Target Dwarf creature gains mountainwalk until end of turn. (It can't be blocked as long as defending player controls a Mountain.) diff --git a/forge-gui/res/cardsfolder/e/eladamri_lord_of_leaves.txt b/forge-gui/res/cardsfolder/e/eladamri_lord_of_leaves.txt index 7be6d2b64ef..5555a9c2d99 100644 --- a/forge-gui/res/cardsfolder/e/eladamri_lord_of_leaves.txt +++ b/forge-gui/res/cardsfolder/e/eladamri_lord_of_leaves.txt @@ -2,7 +2,7 @@ Name:Eladamri, Lord of Leaves ManaCost:G G Types:Legendary Creature Elf Warrior PT:2/2 -S:Mode$ Continuous | Affected$ Creature.Elf+Other | AddKeyword$ Forestwalk | Description$ Other Elf creatures have forestwalk. (They can't be blocked as long as defending player controls a Forest.) +S:Mode$ Continuous | Affected$ Creature.Elf+Other | AddKeyword$ Landwalk:Forest | Description$ Other Elf creatures have forestwalk. (They can't be blocked as long as defending player controls a Forest.) S:Mode$ Continuous | Affected$ Card.Elf+Other | AddKeyword$ Shroud | Description$ Other Elves have shroud. (They can't be the targets of spells or abilities.) SVar:PlayMain1:TRUE Oracle:Other Elf creatures have forestwalk. (They can't be blocked as long as defending player controls a Forest.)\nOther Elves have shroud. (They can't be the targets of spells or abilities.) diff --git a/forge-gui/res/cardsfolder/e/elite_cat_warrior.txt b/forge-gui/res/cardsfolder/e/elite_cat_warrior.txt index 8e73e47c8e5..6ac5ad021de 100644 --- a/forge-gui/res/cardsfolder/e/elite_cat_warrior.txt +++ b/forge-gui/res/cardsfolder/e/elite_cat_warrior.txt @@ -2,5 +2,5 @@ Name:Elite Cat Warrior ManaCost:2 G Types:Creature Cat Warrior PT:2/3 -K:Forestwalk +K:Landwalk:Forest Oracle:Forestwalk (This creature can't be blocked as long as defending player controls a Forest.) diff --git a/forge-gui/res/cardsfolder/e/elvish_champion.txt b/forge-gui/res/cardsfolder/e/elvish_champion.txt index 5f5f2c4b80c..af06e9bb7ab 100644 --- a/forge-gui/res/cardsfolder/e/elvish_champion.txt +++ b/forge-gui/res/cardsfolder/e/elvish_champion.txt @@ -2,7 +2,7 @@ Name:Elvish Champion ManaCost:1 G G Types:Creature Elf PT:2/2 -S:Mode$ Continuous | Affected$ Creature.Elf+Other | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ Forestwalk | Description$ Other Elf creatures get +1/+1 and have forestwalk. +S:Mode$ Continuous | Affected$ Creature.Elf+Other | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ Landwalk:Forest | Description$ Other Elf creatures get +1/+1 and have forestwalk. SVar:PlayMain1:TRUE SVar:BuffedBy:Elf Oracle:Other Elf creatures get +1/+1 and have forestwalk. (They can't be blocked as long as defending player controls a Forest.) diff --git a/forge-gui/res/cardsfolder/e/elvish_pathcutter.txt b/forge-gui/res/cardsfolder/e/elvish_pathcutter.txt index bfb102cefa5..2b5d9c14370 100644 --- a/forge-gui/res/cardsfolder/e/elvish_pathcutter.txt +++ b/forge-gui/res/cardsfolder/e/elvish_pathcutter.txt @@ -2,6 +2,6 @@ Name:Elvish Pathcutter ManaCost:3 G Types:Creature Elf Scout PT:1/2 -A:AB$ Pump | Cost$ 2 G | ValidTgts$ Creature.Elf | TgtPrompt$ Select target Elf creature | KW$ Forestwalk | SpellDescription$ Target Elf creature gains forestwalk until end of turn. (It can't be blocked as long as defending player controls a Forest.) +A:AB$ Pump | Cost$ 2 G | ValidTgts$ Creature.Elf | TgtPrompt$ Select target Elf creature | KW$ Landwalk:Forest | SpellDescription$ Target Elf creature gains forestwalk until end of turn. (It can't be blocked as long as defending player controls a Forest.) AI:RemoveDeck:Random Oracle:{2}{G}: Target Elf creature gains forestwalk until end of turn. (It can't be blocked as long as defending player controls a Forest.) diff --git a/forge-gui/res/cardsfolder/e/emerald_oryx.txt b/forge-gui/res/cardsfolder/e/emerald_oryx.txt index 63a069237da..fa4caa78ef2 100644 --- a/forge-gui/res/cardsfolder/e/emerald_oryx.txt +++ b/forge-gui/res/cardsfolder/e/emerald_oryx.txt @@ -2,5 +2,5 @@ Name:Emerald Oryx ManaCost:3 G Types:Creature Antelope PT:2/3 -K:Forestwalk +K:Landwalk:Forest Oracle:Forestwalk (This creature can't be blocked as long as defending player controls a Forest.) diff --git a/forge-gui/res/cardsfolder/e/enclave_elite.txt b/forge-gui/res/cardsfolder/e/enclave_elite.txt index 618945ffba4..bcd30818369 100644 --- a/forge-gui/res/cardsfolder/e/enclave_elite.txt +++ b/forge-gui/res/cardsfolder/e/enclave_elite.txt @@ -2,7 +2,7 @@ Name:Enclave Elite ManaCost:2 U Types:Creature Merfolk Soldier PT:2/2 -K:Islandwalk +K:Landwalk:Island K:Multikicker:1 U K:etbCounter:P1P1:XKicked:no condition:CARDNAME enters the battlefield with a +1/+1 counter on it for each time it was kicked. SVar:XKicked:Count$TimesKicked diff --git a/forge-gui/res/cardsfolder/e/enslaved_scout.txt b/forge-gui/res/cardsfolder/e/enslaved_scout.txt index 5a70fbc2bc9..8e34dae52d0 100644 --- a/forge-gui/res/cardsfolder/e/enslaved_scout.txt +++ b/forge-gui/res/cardsfolder/e/enslaved_scout.txt @@ -2,5 +2,5 @@ Name:Enslaved Scout ManaCost:2 R Types:Creature Goblin Scout PT:2/2 -A:AB$ Pump | Cost$ 2 | Defined$ Self | KW$ Mountainwalk | SpellDescription$ Enslaved Scout gains mountainwalk until end of turn. +A:AB$ Pump | Cost$ 2 | Defined$ Self | KW$ Landwalk:Mountain | SpellDescription$ Enslaved Scout gains mountainwalk until end of turn. Oracle:{2}: Enslaved Scout gains mountainwalk until end of turn. (It can't be blocked as long as defending player controls a Mountain.) diff --git a/forge-gui/res/cardsfolder/e/erhnam_djinn.txt b/forge-gui/res/cardsfolder/e/erhnam_djinn.txt index 80a25ca493d..b4496126960 100644 --- a/forge-gui/res/cardsfolder/e/erhnam_djinn.txt +++ b/forge-gui/res/cardsfolder/e/erhnam_djinn.txt @@ -3,6 +3,6 @@ ManaCost:3 G 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 +SVar:TrigPump:DB$ Pump | ValidTgts$ Creature.nonWall+OppCtrl | TgtPrompt$ Select target non-Wall creature an opponent controls | KW$ Landwalk:Forest | 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/f/farbog_explorer.txt b/forge-gui/res/cardsfolder/f/farbog_explorer.txt index 58351715eee..0dab8fcf342 100644 --- a/forge-gui/res/cardsfolder/f/farbog_explorer.txt +++ b/forge-gui/res/cardsfolder/f/farbog_explorer.txt @@ -2,5 +2,5 @@ Name:Farbog Explorer ManaCost:2 W Types:Creature Human Scout PT:2/3 -K:Swampwalk +K:Landwalk:Swamp Oracle:Swampwalk (This creature can't be blocked as long as defending player controls a Swamp.) diff --git a/forge-gui/res/cardsfolder/f/filth.txt b/forge-gui/res/cardsfolder/f/filth.txt index 2bcf54ac9c3..c289f06ddb9 100644 --- a/forge-gui/res/cardsfolder/f/filth.txt +++ b/forge-gui/res/cardsfolder/f/filth.txt @@ -2,6 +2,6 @@ Name:Filth ManaCost:3 B Types:Creature Incarnation PT:2/2 -K:Swampwalk -S:Mode$ Continuous | Affected$ Creature.YouCtrl | EffectZone$ Graveyard | AddKeyword$ Swampwalk | IsPresent$ Swamp.YouCtrl | Description$ As long as CARDNAME is in your graveyard and you control a Swamp, creatures you control have swampwalk. +K:Landwalk:Swamp +S:Mode$ Continuous | Affected$ Creature.YouCtrl | EffectZone$ Graveyard | AddKeyword$ Landwalk:Swamp | IsPresent$ Swamp.YouCtrl | Description$ As long as CARDNAME is in your graveyard and you control a Swamp, creatures you control have swampwalk. Oracle:Swampwalk (This creature can't be blocked as long as defending player controls a Swamp.)\nAs long as Filth is in your graveyard and you control a Swamp, creatures you control have swampwalk. diff --git a/forge-gui/res/cardsfolder/f/fishliver_oil.txt b/forge-gui/res/cardsfolder/f/fishliver_oil.txt index 24256e7876c..e460ce13db9 100644 --- a/forge-gui/res/cardsfolder/f/fishliver_oil.txt +++ b/forge-gui/res/cardsfolder/f/fishliver_oil.txt @@ -3,6 +3,6 @@ ManaCost:1 U 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.) +S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ Landwalk:Island | 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/funeral_charm.txt b/forge-gui/res/cardsfolder/f/funeral_charm.txt index fedf8cc136e..ccd5e11e514 100644 --- a/forge-gui/res/cardsfolder/f/funeral_charm.txt +++ b/forge-gui/res/cardsfolder/f/funeral_charm.txt @@ -4,5 +4,5 @@ Types:Instant A:SP$ Charm | Cost$ B | Choices$ DBDiscard,DBPump,DBPump2 SVar:DBDiscard:DB$ Discard | ValidTgts$ Player | TgtPrompt$ Choose a player | NumCards$ 1 | Mode$ TgtChoose | SpellDescription$ Target player discards a card. SVar:DBPump:DB$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ +2 | NumDef$ -1 | SpellDescription$ Target creature gets +2/-1 until end of turn. -SVar:DBPump2:DB$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Swampwalk | SpellDescription$ Target creature gains swampwalk until end of turn. +SVar:DBPump2:DB$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Landwalk:Swamp | SpellDescription$ Target creature gains swampwalk until end of turn. Oracle:Choose one —\n• Target player discards a card.\n• Target creature gets +2/-1 until end of turn.\n• Target creature gains swampwalk until end of turn. (It can't be blocked as long as defending player controls a Swamp.) diff --git a/forge-gui/res/cardsfolder/g/giant_slug.txt b/forge-gui/res/cardsfolder/g/giant_slug.txt index 3cc6313e378..57cb6a6b54f 100644 --- a/forge-gui/res/cardsfolder/g/giant_slug.txt +++ b/forge-gui/res/cardsfolder/g/giant_slug.txt @@ -4,6 +4,6 @@ Types:Creature Slug PT:1/1 A:AB$ DelayedTrigger | Cost$ 5 | Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ ChooseB | RememberObjects$ Self | StackDescription$ SpellDescription | SpellDescription$ At the beginning of your next upkeep, choose a basic land type. CARDNAME gains landwalk of the chosen type until the end of that turn. (It can't be blocked as long as defending player controls a land of that type.) SVar:ChooseB:DB$ ChooseType | Defined$ You | Type$ Basic Land | AILogic$ ChosenLandwalk | SubAbility$ DBPump -SVar:DBPump:DB$ Pump | Defined$ DelayTriggerRememberedLKI | KW$ ChosenTypewalk | DefinedKW$ ChosenType +SVar:DBPump:DB$ Pump | Defined$ DelayTriggerRememberedLKI | KW$ Landwalk:ChosenType | DefinedKW$ ChosenType AI:RemoveDeck:All Oracle:{5}: At the beginning of your next upkeep, choose a basic land type. Giant Slug gains landwalk of the chosen type until the end of that turn. (It can't be blocked as long as defending player controls a land of that type.) diff --git a/forge-gui/res/cardsfolder/g/glissas_courier.txt b/forge-gui/res/cardsfolder/g/glissas_courier.txt index c5193eaa55a..b8e560c1b55 100644 --- a/forge-gui/res/cardsfolder/g/glissas_courier.txt +++ b/forge-gui/res/cardsfolder/g/glissas_courier.txt @@ -2,5 +2,5 @@ Name:Glissa's Courier ManaCost:1 G G Types:Creature Phyrexian Horror PT:2/3 -K:Mountainwalk +K:Landwalk:Mountain Oracle:Mountainwalk (This creature can't be blocked as long as defending player controls a Mountain.) diff --git a/forge-gui/res/cardsfolder/g/goblin_flotilla.txt b/forge-gui/res/cardsfolder/g/goblin_flotilla.txt index 4745a9f2dee..bb982a217c9 100644 --- a/forge-gui/res/cardsfolder/g/goblin_flotilla.txt +++ b/forge-gui/res/cardsfolder/g/goblin_flotilla.txt @@ -2,7 +2,7 @@ Name:Goblin Flotilla ManaCost:2 R Types:Creature Goblin PT:2/2 -K:Islandwalk +K:Landwalk:Island T:Mode$ Phase | Phase$ BeginCombat | TriggerZones$ Battlefield | Execute$ AnimateDB | TriggerDescription$ At the beginning of each combat, unless you pay {R}, whenever CARDNAME blocks or becomes blocked by a creature this combat, that creature gains first strike until end of turn. SVar:AnimateDB:DB$ Effect | Triggers$ AttackerBlocked,Blocks | UnlessCost$ R | UnlessPayer$ You | Duration$ UntilEndOfCombat SVar:AttackerBlocked:Mode$ AttackerBlockedByCreature | ValidCard$ Creature | ValidBlocker$ Card.EffectSource | Execute$ PumpAttacker | TriggerDescription$ Whenever EFFECTSOURCE blocks or becomes blocked by a creature this combat, that creature gains first strike until end of turn. diff --git a/forge-gui/res/cardsfolder/g/goblin_king.txt b/forge-gui/res/cardsfolder/g/goblin_king.txt index f53dc4f3f38..1d7f0a26804 100644 --- a/forge-gui/res/cardsfolder/g/goblin_king.txt +++ b/forge-gui/res/cardsfolder/g/goblin_king.txt @@ -2,7 +2,7 @@ Name:Goblin King ManaCost:1 R R Types:Creature Goblin PT:2/2 -S:Mode$ Continuous | Affected$ Creature.Goblin+Other | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ Mountainwalk | Description$ Other Goblin creatures get +1/+1 and have mountainwalk. +S:Mode$ Continuous | Affected$ Creature.Goblin+Other | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ Landwalk:Mountain | Description$ Other Goblin creatures get +1/+1 and have mountainwalk. SVar:PlayMain1:TRUE DeckHas:Keyword$Mountainwalk DeckHints:Type$Goblin & Name$Blood Moon diff --git a/forge-gui/res/cardsfolder/g/goblin_mountaineer.txt b/forge-gui/res/cardsfolder/g/goblin_mountaineer.txt index 0bf6495a5ac..c00acee87bb 100644 --- a/forge-gui/res/cardsfolder/g/goblin_mountaineer.txt +++ b/forge-gui/res/cardsfolder/g/goblin_mountaineer.txt @@ -2,5 +2,5 @@ Name:Goblin Mountaineer ManaCost:R Types:Creature Goblin Scout PT:1/1 -K:Mountainwalk +K:Landwalk:Mountain Oracle:Mountainwalk (This creature can't be blocked as long as defending player controls a Mountain.) diff --git a/forge-gui/res/cardsfolder/g/goblin_spelunkers.txt b/forge-gui/res/cardsfolder/g/goblin_spelunkers.txt index 0b576fe8c91..be14e6349f4 100644 --- a/forge-gui/res/cardsfolder/g/goblin_spelunkers.txt +++ b/forge-gui/res/cardsfolder/g/goblin_spelunkers.txt @@ -2,5 +2,5 @@ Name:Goblin Spelunkers ManaCost:2 R Types:Creature Goblin Warrior PT:2/2 -K:Mountainwalk +K:Landwalk:Mountain Oracle:Mountainwalk (This creature can't be blocked as long as defending player controls a Mountain.) diff --git a/forge-gui/res/cardsfolder/g/goblins_of_the_flarg.txt b/forge-gui/res/cardsfolder/g/goblins_of_the_flarg.txt index dd322380ecb..b1eb055e79c 100644 --- a/forge-gui/res/cardsfolder/g/goblins_of_the_flarg.txt +++ b/forge-gui/res/cardsfolder/g/goblins_of_the_flarg.txt @@ -2,7 +2,7 @@ Name:Goblins of the Flarg ManaCost:R Types:Creature Goblin Warrior PT:1/1 -K:Mountainwalk +K:Landwalk:Mountain T:Mode$ Always | TriggerZones$ Battlefield | IsPresent$ Dwarf.YouCtrl | PresentCompare$ GE1 | Execute$ TrigSac | TriggerDescription$ When you control a Dwarf, sacrifice CARDNAME. SVar:TrigSac:DB$ Sacrifice SVar:NeedsToPlayVar:DwarfsYouCtrl EQ0 diff --git a/forge-gui/res/cardsfolder/g/gosta_dirk.txt b/forge-gui/res/cardsfolder/g/gosta_dirk.txt index c65eadaa917..df3be40e46d 100644 --- a/forge-gui/res/cardsfolder/g/gosta_dirk.txt +++ b/forge-gui/res/cardsfolder/g/gosta_dirk.txt @@ -2,6 +2,6 @@ Name:Gosta Dirk ManaCost:3 W W U U Types:Legendary Creature Human Warrior PT:4/4 -S:Mode$ Continuous | Affected$ Creature.withIslandwalk | AddHiddenKeyword$ May be blocked as though it doesn't have Islandwalk. | Description$ Creatures with islandwalk can be blocked as though they didn't have islandwalk. +S:Mode$ IgnoreLandWalk | ValidKeyword$ Landwalk:Island | Description$ Creatures with islandwalk can be blocked as though they didn't have islandwalk. K:First Strike Oracle:First strike\nCreatures with islandwalk can be blocked as though they didn't have islandwalk. diff --git a/forge-gui/res/cardsfolder/g/graceful_antelope.txt b/forge-gui/res/cardsfolder/g/graceful_antelope.txt index 6b9d6608fff..89f174e0763 100644 --- a/forge-gui/res/cardsfolder/g/graceful_antelope.txt +++ b/forge-gui/res/cardsfolder/g/graceful_antelope.txt @@ -2,7 +2,7 @@ Name:Graceful Antelope ManaCost:2 W W Types:Creature Antelope PT:1/4 -K:Plainswalk +K:Landwalk:Plains T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigAnimate | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, you may have target land become a Plains until CARDNAME leaves the battlefield. SVar:TrigAnimate:DB$ Animate | ValidTgts$ Land | TgtPrompt$ Select target land | Duration$ UntilHostLeavesPlay | Types$ Plains | RemoveLandTypes$ True | RemoveIntrinsicAbilities$ True AI:RemoveDeck:All diff --git a/forge-gui/res/cardsfolder/g/grayscaled_gharial.txt b/forge-gui/res/cardsfolder/g/grayscaled_gharial.txt index 75ac01e9b99..28a4f2fdde4 100644 --- a/forge-gui/res/cardsfolder/g/grayscaled_gharial.txt +++ b/forge-gui/res/cardsfolder/g/grayscaled_gharial.txt @@ -2,5 +2,5 @@ Name:Grayscaled Gharial ManaCost:U Types:Creature Crocodile PT:1/1 -K:Islandwalk +K:Landwalk:Island Oracle:Islandwalk (This creature can't be blocked as long as defending player controls an Island.) diff --git a/forge-gui/res/cardsfolder/g/great_wall.txt b/forge-gui/res/cardsfolder/g/great_wall.txt index ce0ac426426..0ba23895ee0 100644 --- a/forge-gui/res/cardsfolder/g/great_wall.txt +++ b/forge-gui/res/cardsfolder/g/great_wall.txt @@ -1,7 +1,7 @@ Name:Great Wall ManaCost:2 W Types:Enchantment -S:Mode$ Continuous | Affected$ Creature.withPlainswalk | AddHiddenKeyword$ May be blocked as though it doesn't have Plainswalk. | Description$ Creatures with plainswalk can be blocked as though they didn't have plainswalk. +S:Mode$ IgnoreLandWalk | ValidKeyword$ Landwalk:Plains | Description$ Creatures with plainswalk can be blocked as though they didn't have plainswalk. SVar:NonStackingEffect:True AI:RemoveDeck:Random Oracle:Creatures with plainswalk can be blocked as though they didn't have plainswalk. diff --git a/forge-gui/res/cardsfolder/h/halimar_wavewatch.txt b/forge-gui/res/cardsfolder/h/halimar_wavewatch.txt index 82ac2126f33..ebe4ae5be02 100644 --- a/forge-gui/res/cardsfolder/h/halimar_wavewatch.txt +++ b/forge-gui/res/cardsfolder/h/halimar_wavewatch.txt @@ -5,5 +5,5 @@ PT:0/3 K:Level up:2 SVar:maxLevel:5 S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 0 | SetToughness$ 6 | IsPresent$ Card.Self+counters_GE1_LEVEL+counters_LE4_LEVEL | Description$ LEVEL 1-4 0/6 -S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 6 | SetToughness$ 6 | AddKeyword$ Islandwalk | IsPresent$ Card.Self+counters_GE5_LEVEL | Description$ LEVEL 5+ 6/6 Islandwalk +S:Mode$ Continuous | Affected$ Card.Self | SetPower$ 6 | SetToughness$ 6 | AddKeyword$ Landwalk:Island | IsPresent$ Card.Self+counters_GE5_LEVEL | Description$ LEVEL 5+ 6/6 Islandwalk Oracle:Level up {2} ({2}: Put a level counter on this. Level up only as a sorcery.)\nLEVEL 1-4\n0/6\nLEVEL 5+\n6/6\nIslandwalk (This creature can't be blocked as long as defending player controls an Island.) diff --git a/forge-gui/res/cardsfolder/h/harbor_serpent.txt b/forge-gui/res/cardsfolder/h/harbor_serpent.txt index 79a758c270f..2f8f93d2e80 100644 --- a/forge-gui/res/cardsfolder/h/harbor_serpent.txt +++ b/forge-gui/res/cardsfolder/h/harbor_serpent.txt @@ -2,7 +2,7 @@ Name:Harbor Serpent ManaCost:4 U U Types:Creature Serpent PT:5/5 -K:Islandwalk +K:Landwalk:Island S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ CARDNAME can't attack. | IsPresent$ Island | PresentCompare$ LT5 | Description$ CARDNAME can't attack unless there are five or more Islands on the battlefield. SVar:BuffedBy:Island Oracle:Islandwalk (This creature can't be blocked as long as defending player controls an Island.)\nHarbor Serpent can't attack unless there are five or more Islands on the battlefield. diff --git a/forge-gui/res/cardsfolder/h/hazezon_shaper_of_sand.txt b/forge-gui/res/cardsfolder/h/hazezon_shaper_of_sand.txt index 662863a2028..e7e012805f5 100644 --- a/forge-gui/res/cardsfolder/h/hazezon_shaper_of_sand.txt +++ b/forge-gui/res/cardsfolder/h/hazezon_shaper_of_sand.txt @@ -2,7 +2,7 @@ Name:Hazezon, Shaper of Sand ManaCost:R G W Types:Legendary Creature Human Warrior PT:3/3 -K:Desertwalk +K:Landwalk:Desert S:Mode$ Continuous | Affected$ Desert.YouOwn | MayPlay$ True | AffectedZone$ Graveyard | Description$ You may play Desert lands from your graveyard T:Mode$ ChangesZone | ValidCard$ Desert.YouCtrl | Origin$ Any | Destination$ Battlefield | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ Whenever a Desert enters the battlefield under your control, create two 1/1 red, green, and white Sand Warrior creature tokens. SVar:TrigToken:DB$ Token | TokenAmount$ 2 | TokenScript$ rgw_1_1_sand_warrior | TokenOwner$ You diff --git a/forge-gui/res/cardsfolder/h/heartwood_treefolk.txt b/forge-gui/res/cardsfolder/h/heartwood_treefolk.txt index 73ed262f0fe..a8c2bf62255 100644 --- a/forge-gui/res/cardsfolder/h/heartwood_treefolk.txt +++ b/forge-gui/res/cardsfolder/h/heartwood_treefolk.txt @@ -2,5 +2,5 @@ Name:Heartwood Treefolk ManaCost:2 G G Types:Creature Treefolk PT:3/4 -K:Forestwalk +K:Landwalk:Forest Oracle:Forestwalk (This creature can't be blocked as long as defending player controls a Forest.) diff --git a/forge-gui/res/cardsfolder/h/hidden_path.txt b/forge-gui/res/cardsfolder/h/hidden_path.txt index b6903642635..d077efc7d6e 100644 --- a/forge-gui/res/cardsfolder/h/hidden_path.txt +++ b/forge-gui/res/cardsfolder/h/hidden_path.txt @@ -1,7 +1,7 @@ Name:Hidden Path ManaCost:2 G G G G Types:Enchantment -S:Mode$ Continuous | Affected$ Creature.Green | AddKeyword$ Forestwalk | Description$ Green creatures have forestwalk. (They can't be blocked as long as defending player controls a Forest.) +S:Mode$ Continuous | Affected$ Creature.Green | AddKeyword$ Landwalk:Forest | Description$ Green creatures have forestwalk. (They can't be blocked as long as defending player controls a Forest.) SVar:NonStackingEffect:True SVar:NeedsToPlayVar:CountOpps LTCountMe SVar:CountOpps:Count$Valid Creature.OppCtrl+Green diff --git a/forge-gui/res/cardsfolder/h/hillcomber_giant.txt b/forge-gui/res/cardsfolder/h/hillcomber_giant.txt index c5e1ac439fd..fbf84677a5a 100644 --- a/forge-gui/res/cardsfolder/h/hillcomber_giant.txt +++ b/forge-gui/res/cardsfolder/h/hillcomber_giant.txt @@ -2,5 +2,5 @@ Name:Hillcomber Giant ManaCost:2 W W Types:Creature Giant Scout PT:3/3 -K:Mountainwalk +K:Landwalk:Mountain Oracle:Mountainwalk (This creature can't be blocked as long as defending player controls a Mountain.) diff --git a/forge-gui/res/cardsfolder/i/illusionary_presence.txt b/forge-gui/res/cardsfolder/i/illusionary_presence.txt index 9120f8bd00f..266a877af30 100644 --- a/forge-gui/res/cardsfolder/i/illusionary_presence.txt +++ b/forge-gui/res/cardsfolder/i/illusionary_presence.txt @@ -5,5 +5,5 @@ PT:2/2 K:Cumulative upkeep:U T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigCL | TriggerDescription$ At the beginning of your upkeep, choose a land type. CARDNAME gains landwalk of the chosen type until end of turn. (It can't be blocked as long as defending player controls a land of that type.) SVar:TrigCL:DB$ ChooseType | Defined$ You | Type$ Land | AILogic$ ChosenLandwalk | SubAbility$ DBPump -SVar:DBPump:DB$ Pump | KW$ ChosenTypewalk | Defined$ Self | DefinedKW$ ChosenType +SVar:DBPump:DB$ Pump | KW$ Landwalk:ChosenType | Defined$ Self | DefinedKW$ ChosenType Oracle:Cumulative upkeep {U} (At the beginning of your upkeep, put an age counter on this permanent, then sacrifice it unless you pay its upkeep cost for each age counter on it.)\nAt the beginning of your upkeep, choose a land type. Illusionary Presence gains landwalk of the chosen type until end of turn. (It can't be blocked as long as defending player controls a land of that type.) diff --git a/forge-gui/res/cardsfolder/i/inkfathom_divers.txt b/forge-gui/res/cardsfolder/i/inkfathom_divers.txt index 3aaa8756567..c67d683605e 100644 --- a/forge-gui/res/cardsfolder/i/inkfathom_divers.txt +++ b/forge-gui/res/cardsfolder/i/inkfathom_divers.txt @@ -2,7 +2,7 @@ Name:Inkfathom Divers ManaCost:3 U U Types:Creature Merfolk Soldier PT:3/3 -K:Islandwalk +K:Landwalk:Island T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigRearrange | TriggerDescription$ When CARDNAME enters the battlefield, look at the top four cards of your library, then put them back in any order. SVar:TrigRearrange:DB$ RearrangeTopOfLibrary | Defined$ You | NumCards$ 4 Oracle:Islandwalk (This creature can't be blocked as long as defending player controls an Island.)\nWhen Inkfathom Divers enters the battlefield, look at the top four cards of your library, then put them back in any order. diff --git a/forge-gui/res/cardsfolder/i/inkwell_leviathan.txt b/forge-gui/res/cardsfolder/i/inkwell_leviathan.txt index 26913020124..d9f63225571 100644 --- a/forge-gui/res/cardsfolder/i/inkwell_leviathan.txt +++ b/forge-gui/res/cardsfolder/i/inkwell_leviathan.txt @@ -2,7 +2,7 @@ Name:Inkwell Leviathan ManaCost:7 U U Types:Artifact Creature Leviathan PT:7/11 -K:Islandwalk +K:Landwalk:Island K:Trample K:Shroud Oracle:Trample\nIslandwalk (This creature can't be blocked as long as defending player controls an Island.)\nShroud (This creature can't be the target of spells or abilities.) diff --git a/forge-gui/res/cardsfolder/i/ivy_dancer.txt b/forge-gui/res/cardsfolder/i/ivy_dancer.txt index 7a594f73bed..5b8a63d65de 100644 --- a/forge-gui/res/cardsfolder/i/ivy_dancer.txt +++ b/forge-gui/res/cardsfolder/i/ivy_dancer.txt @@ -2,5 +2,5 @@ Name:Ivy Dancer ManaCost:2 G Types:Creature Dryad Shaman PT:1/2 -A:AB$ Pump | Cost$ T | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Forestwalk | SpellDescription$ Target creature gains forestwalk until end of turn. (It can't be blocked as long as defending player controls a Forest.) +A:AB$ Pump | Cost$ T | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Landwalk:Forest | SpellDescription$ Target creature gains forestwalk until end of turn. (It can't be blocked as long as defending player controls a Forest.) Oracle:{T}: Target creature gains forestwalk until end of turn. (It can't be blocked as long as defending player controls a Forest.) diff --git a/forge-gui/res/cardsfolder/j/jedit_ojanen_of_efrava.txt b/forge-gui/res/cardsfolder/j/jedit_ojanen_of_efrava.txt index 3819e0dad72..823a6535e0e 100644 --- a/forge-gui/res/cardsfolder/j/jedit_ojanen_of_efrava.txt +++ b/forge-gui/res/cardsfolder/j/jedit_ojanen_of_efrava.txt @@ -2,7 +2,7 @@ Name:Jedit Ojanen of Efrava ManaCost:3 G G G Types:Legendary Creature Cat Warrior PT:5/5 -K:Forestwalk +K:Landwalk:Forest T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ Whenever CARDNAME attacks or blocks, create a 2/2 green Cat Warrior creature token with forestwalk. T:Mode$ Blocks | ValidCard$ Card.Self | Execute$ TrigToken | Secondary$ True | TriggerDescription$ Whenever CARDNAME attacks or blocks, create a 2/2 green Cat Warrior creature token with forestwalk. SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenOwner$ You | TokenScript$ g_2_2_cat_warrior_forestwalk diff --git a/forge-gui/res/cardsfolder/j/jukai_messenger.txt b/forge-gui/res/cardsfolder/j/jukai_messenger.txt index f217abd7b2d..1b4974ee380 100644 --- a/forge-gui/res/cardsfolder/j/jukai_messenger.txt +++ b/forge-gui/res/cardsfolder/j/jukai_messenger.txt @@ -2,5 +2,5 @@ Name:Jukai Messenger ManaCost:G Types:Creature Human Monk PT:1/1 -K:Forestwalk +K:Landwalk:Forest Oracle:Forestwalk (This creature can't be blocked as long as defending player controls a Forest.) diff --git a/forge-gui/res/cardsfolder/k/koths_courier.txt b/forge-gui/res/cardsfolder/k/koths_courier.txt index deae415d866..ade2dd27102 100644 --- a/forge-gui/res/cardsfolder/k/koths_courier.txt +++ b/forge-gui/res/cardsfolder/k/koths_courier.txt @@ -2,5 +2,5 @@ Name:Koth's Courier ManaCost:1 R R Types:Creature Human Rogue PT:2/3 -K:Forestwalk +K:Landwalk:Forest Oracle:Forestwalk (This creature can't be blocked as long as defending player controls a Forest.) diff --git a/forge-gui/res/cardsfolder/k/krosan_constrictor.txt b/forge-gui/res/cardsfolder/k/krosan_constrictor.txt index b8f9bb7459c..ad7d9a8f763 100644 --- a/forge-gui/res/cardsfolder/k/krosan_constrictor.txt +++ b/forge-gui/res/cardsfolder/k/krosan_constrictor.txt @@ -2,6 +2,6 @@ Name:Krosan Constrictor ManaCost:3 G Types:Creature Snake PT:2/2 -K:Swampwalk +K:Landwalk:Swamp A:AB$ Pump | Cost$ T | NumAtt$ -2 | IsCurse$ True | TgtPrompt$ Choose target Black creature | ValidTgts$ Creature.Black | SpellDescription$ Target black creature gets -2/-0 until end of turn. Oracle:Swampwalk (This creature can't be blocked as long as defending player controls a Swamp.)\n{T}: Target black creature gets -2/-0 until end of turn. diff --git a/forge-gui/res/cardsfolder/l/leaf_dancer.txt b/forge-gui/res/cardsfolder/l/leaf_dancer.txt index 5f983bef719..fd484ae3ac1 100644 --- a/forge-gui/res/cardsfolder/l/leaf_dancer.txt +++ b/forge-gui/res/cardsfolder/l/leaf_dancer.txt @@ -2,5 +2,5 @@ Name:Leaf Dancer ManaCost:1 G G Types:Creature Centaur PT:2/2 -K:Forestwalk +K:Landwalk:Forest Oracle:Forestwalk (This creature can't be blocked as long as defending player controls a Forest.) diff --git a/forge-gui/res/cardsfolder/l/legions_of_lim_dul.txt b/forge-gui/res/cardsfolder/l/legions_of_lim_dul.txt index 1f69af11016..30970b5728e 100644 --- a/forge-gui/res/cardsfolder/l/legions_of_lim_dul.txt +++ b/forge-gui/res/cardsfolder/l/legions_of_lim_dul.txt @@ -2,5 +2,5 @@ Name:Legions of Lim-Dûl ManaCost:1 B B Types:Creature Zombie PT:2/3 -K:Snow swampwalk +K:Landwalk:Swamp.Snow:snow Swamp Oracle:Snow swampwalk (This creature can't be blocked as long as defending player controls a snow Swamp.) diff --git a/forge-gui/res/cardsfolder/l/leshracs_rite.txt b/forge-gui/res/cardsfolder/l/leshracs_rite.txt index 7e86479feed..86cd1c233a8 100644 --- a/forge-gui/res/cardsfolder/l/leshracs_rite.txt +++ b/forge-gui/res/cardsfolder/l/leshracs_rite.txt @@ -3,5 +3,5 @@ ManaCost:B Types:Enchantment Aura K:Enchant creature A:SP$ Attach | Cost$ B | ValidTgts$ Creature | AILogic$ Pump -S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ Swampwalk | Description$ Enchanted creature has swampwalk. (It can't be blocked as long as defending player controls a Swamp.) +S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ Landwalk:Swamp | Description$ Enchanted creature has swampwalk. (It can't be blocked as long as defending player controls a Swamp.) Oracle:Enchant creature\nEnchanted creature has swampwalk. (It can't be blocked as long as defending player controls a Swamp.) diff --git a/forge-gui/res/cardsfolder/l/livonya_silone.txt b/forge-gui/res/cardsfolder/l/livonya_silone.txt index 2a7d156d9c2..43dec5c0327 100644 --- a/forge-gui/res/cardsfolder/l/livonya_silone.txt +++ b/forge-gui/res/cardsfolder/l/livonya_silone.txt @@ -3,5 +3,5 @@ ManaCost:2 R R G G Types:Legendary Creature Human Warrior PT:4/4 K:First Strike -K:Legendary landwalk +K:Landwalk:Land.Legendary:Legendary land Oracle:First strike; legendary landwalk (This creature can't be blocked as long as defending player controls a legendary land.) diff --git a/forge-gui/res/cardsfolder/l/lord_magnus.txt b/forge-gui/res/cardsfolder/l/lord_magnus.txt index 996b5a37129..744809c94b8 100644 --- a/forge-gui/res/cardsfolder/l/lord_magnus.txt +++ b/forge-gui/res/cardsfolder/l/lord_magnus.txt @@ -2,7 +2,7 @@ Name:Lord Magnus ManaCost:3 G W W Types:Legendary Creature Human Druid PT:4/3 -S:Mode$ Continuous | Affected$ Creature.withPlainswalk | AddHiddenKeyword$ May be blocked as though it doesn't have Plainswalk. | Description$ Creatures with plainswalk can be blocked as though they didn't have plainswalk. -S:Mode$ Continuous | Affected$ Creature.withForestwalk | AddHiddenKeyword$ May be blocked as though it doesn't have Forestwalk. | Description$ Creatures with forestwalk can be blocked as though they didn't have forestwalk. +S:Mode$ IgnoreLandWalk | ValidKeyword$ Landwalk:Plains | Description$ Creatures with plainswalk can be blocked as though they didn't have plainswalk. +S:Mode$ IgnoreLandWalk | ValidKeyword$ Landwalk:Forest | Description$ Creatures with forestwalk can be blocked as though they didn't have forestwalk. K:First Strike Oracle:First strike\nCreatures with plainswalk can be blocked as though they didn't have plainswalk.\nCreatures with forestwalk can be blocked as though they didn't have forestwalk. diff --git a/forge-gui/res/cardsfolder/l/lord_of_atlantis.txt b/forge-gui/res/cardsfolder/l/lord_of_atlantis.txt index 891015eff15..91931bfabe5 100644 --- a/forge-gui/res/cardsfolder/l/lord_of_atlantis.txt +++ b/forge-gui/res/cardsfolder/l/lord_of_atlantis.txt @@ -2,7 +2,7 @@ Name:Lord of Atlantis ManaCost:U U 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.) +S:Mode$ Continuous | Affected$ Card.Merfolk+Other | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ Landwalk:Island | 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 diff --git a/forge-gui/res/cardsfolder/l/lost_soul.txt b/forge-gui/res/cardsfolder/l/lost_soul.txt index 17794c6a8d8..e06a2cc038b 100644 --- a/forge-gui/res/cardsfolder/l/lost_soul.txt +++ b/forge-gui/res/cardsfolder/l/lost_soul.txt @@ -2,5 +2,5 @@ Name:Lost Soul ManaCost:1 B B Types:Creature Spirit Minion PT:2/1 -K:Swampwalk +K:Landwalk:Swamp Oracle:Swampwalk (This creature can't be blocked as long as defending player controls a Swamp.) diff --git a/forge-gui/res/cardsfolder/l/lumbering_satyr.txt b/forge-gui/res/cardsfolder/l/lumbering_satyr.txt index c0ae54ec21f..e1d4ebbb756 100644 --- a/forge-gui/res/cardsfolder/l/lumbering_satyr.txt +++ b/forge-gui/res/cardsfolder/l/lumbering_satyr.txt @@ -2,5 +2,5 @@ Name:Lumbering Satyr ManaCost:2 G G Types:Creature Satyr Beast PT:5/4 -S:Mode$ Continuous | Affected$ Creature | AddKeyword$ Forestwalk | Description$ All creatures have forestwalk. (They can't be blocked as long as defending player controls a Forest.) +S:Mode$ Continuous | Affected$ Creature | AddKeyword$ Landwalk:Forest | Description$ All creatures have forestwalk. (They can't be blocked as long as defending player controls a Forest.) Oracle:All creatures have forestwalk. (They can't be blocked as long as defending player controls a Forest.) diff --git a/forge-gui/res/cardsfolder/l/lurking_crocodile.txt b/forge-gui/res/cardsfolder/l/lurking_crocodile.txt index 92457e7bc43..4f50b5bff6f 100644 --- a/forge-gui/res/cardsfolder/l/lurking_crocodile.txt +++ b/forge-gui/res/cardsfolder/l/lurking_crocodile.txt @@ -3,5 +3,5 @@ ManaCost:2 G Types:Creature Crocodile PT:2/2 K:Bloodthirst:1 -K:Islandwalk +K:Landwalk:Island Oracle:Bloodthirst 1 (If an opponent was dealt damage this turn, this creature enters the battlefield with a +1/+1 counter on it.)\nIslandwalk (This creature can't be blocked as long as defending player controls an Island.) diff --git a/forge-gui/res/cardsfolder/l/lynx.txt b/forge-gui/res/cardsfolder/l/lynx.txt index 7d09f503def..8b9a8678069 100644 --- a/forge-gui/res/cardsfolder/l/lynx.txt +++ b/forge-gui/res/cardsfolder/l/lynx.txt @@ -2,5 +2,5 @@ Name:Lynx ManaCost:1 G Types:Creature Cat PT:2/1 -K:Forestwalk +K:Landwalk:Forest Oracle:Forestwalk (This creature can't be blocked as long as defending player controls a Forest.) diff --git a/forge-gui/res/cardsfolder/m/magnigoth_treefolk.txt b/forge-gui/res/cardsfolder/m/magnigoth_treefolk.txt index 891645e17d0..5c8b5ab780a 100644 --- a/forge-gui/res/cardsfolder/m/magnigoth_treefolk.txt +++ b/forge-gui/res/cardsfolder/m/magnigoth_treefolk.txt @@ -2,9 +2,10 @@ Name:Magnigoth Treefolk ManaCost:4 G Types:Creature Treefolk PT:2/6 -S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Plainswalk | IsPresent$ Plains.YouCtrl | Description$ Domain — For each basic land type among lands you control, CARDNAME has landwalk of that type -S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Islandwalk | IsPresent$ Island.YouCtrl -S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Swampwalk | IsPresent$ Swamp.YouCtrl -S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Mountainwalk | IsPresent$ Mountain.YouCtrl -S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Forestwalk | IsPresent$ Forest.YouCtrl +# TODO without BasicLandTypeNames +S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Landwalk:Plains | IsPresent$ Plains.YouCtrl | Description$ Domain — For each basic land type among lands you control, CARDNAME has landwalk of that type +S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Landwalk:Island | IsPresent$ Island.YouCtrl +S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Landwalk:Swamp | IsPresent$ Swamp.YouCtrl +S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Landwalk:Mountain | IsPresent$ Mountain.YouCtrl +S:Mode$ Continuous | Affected$ Card.Self | AddKeyword$ Landwalk:Forest | IsPresent$ Forest.YouCtrl Oracle:Domain — For each basic land type among lands you control, Magnigoth Treefolk has landwalk of that type. (It can't be blocked as long as defending player controls a land of that type.) diff --git a/forge-gui/res/cardsfolder/m/marsh_boa.txt b/forge-gui/res/cardsfolder/m/marsh_boa.txt index 3cf0f26442a..cf6b9ba9bce 100644 --- a/forge-gui/res/cardsfolder/m/marsh_boa.txt +++ b/forge-gui/res/cardsfolder/m/marsh_boa.txt @@ -2,5 +2,5 @@ Name:Marsh Boa ManaCost:G Types:Creature Snake PT:1/1 -K:Swampwalk +K:Landwalk:Swamp Oracle:Swampwalk (This creature can't be blocked as long as defending player controls a Swamp.) diff --git a/forge-gui/res/cardsfolder/m/marsh_goblins.txt b/forge-gui/res/cardsfolder/m/marsh_goblins.txt index 06ecb0987ae..dcac7c068e9 100644 --- a/forge-gui/res/cardsfolder/m/marsh_goblins.txt +++ b/forge-gui/res/cardsfolder/m/marsh_goblins.txt @@ -2,5 +2,5 @@ Name:Marsh Goblins ManaCost:B R Types:Creature Goblin PT:1/1 -K:Swampwalk +K:Landwalk:Swamp Oracle:Swampwalk (This creature can't be blocked as long as defending player controls a Swamp.) diff --git a/forge-gui/res/cardsfolder/m/marsh_threader.txt b/forge-gui/res/cardsfolder/m/marsh_threader.txt index 987530a2366..36847b00479 100644 --- a/forge-gui/res/cardsfolder/m/marsh_threader.txt +++ b/forge-gui/res/cardsfolder/m/marsh_threader.txt @@ -2,5 +2,5 @@ Name:Marsh Threader ManaCost:1 W Types:Creature Kor Scout PT:2/1 -K:Swampwalk +K:Landwalk:Swamp Oracle:Swampwalk (This creature can't be blocked as long as defending player controls a Swamp.) diff --git a/forge-gui/res/cardsfolder/m/master_of_the_pearl_trident.txt b/forge-gui/res/cardsfolder/m/master_of_the_pearl_trident.txt index 74ab38b5ac7..c524490c4c2 100644 --- a/forge-gui/res/cardsfolder/m/master_of_the_pearl_trident.txt +++ b/forge-gui/res/cardsfolder/m/master_of_the_pearl_trident.txt @@ -2,7 +2,7 @@ Name:Master of the Pearl Trident ManaCost:U U Types:Creature Merfolk PT:2/2 -S:Mode$ Continuous | Affected$ Creature.Merfolk+Other+YouCtrl | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ Islandwalk | Description$ Other Merfolk you control get +1/+1 and have islandwalk. +S:Mode$ Continuous | Affected$ Creature.Merfolk+Other+YouCtrl | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ Landwalk:Island | Description$ Other Merfolk you control get +1/+1 and have islandwalk. SVar:PlayMain1:TRUE DeckHints:Type$Merfolk Oracle:Other Merfolk creatures you control 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/m/meandering_towershell.txt b/forge-gui/res/cardsfolder/m/meandering_towershell.txt index cefcf078aa1..fd1a3875775 100644 --- a/forge-gui/res/cardsfolder/m/meandering_towershell.txt +++ b/forge-gui/res/cardsfolder/m/meandering_towershell.txt @@ -2,7 +2,7 @@ Name:Meandering Towershell ManaCost:3 G G Types:Creature Turtle PT:5/9 -K:Islandwalk +K:Landwalk:Island T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigExile | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME attacks, exile it. Return it to the battlefield under your control tapped and attacking at the beginning of the next declare attackers step on your next turn. SVar:TrigExile:DB$ ChangeZone | Defined$ Self | Origin$ Battlefield | Destination$ Exile | RememberChanged$ True | SubAbility$ DelTrig SVar:DelTrig:DB$ DelayedTrigger | ConditionDefined$ Remembered | ConditionPresent$ Card | DelayedTriggerDefinedPlayer$ You | RememberObjects$ RememberedLKI | ThisTurn$ True | Mode$ Phase | Phase$ Declare Attackers | Execute$ TrigReturn | TriggerDescription$ Return CARDNAME to the battlefield tapped and attacking. diff --git a/forge-gui/res/cardsfolder/m/merfolk_raiders.txt b/forge-gui/res/cardsfolder/m/merfolk_raiders.txt index 1adc7dc4113..2d4c95311af 100644 --- a/forge-gui/res/cardsfolder/m/merfolk_raiders.txt +++ b/forge-gui/res/cardsfolder/m/merfolk_raiders.txt @@ -2,6 +2,6 @@ Name:Merfolk Raiders ManaCost:1 U Types:Creature Merfolk Soldier PT:2/3 -K:Islandwalk +K:Landwalk:Island K:Phasing Oracle:Islandwalk (This creature can't be blocked as long as defending player controls an Island.)\nPhasing (This phases in or out before you untap during each of your untap steps. While it's phased out, it's treated as though it doesn't exist.) diff --git a/forge-gui/res/cardsfolder/m/merfolk_seastalkers.txt b/forge-gui/res/cardsfolder/m/merfolk_seastalkers.txt index 8806afad84a..9422ccc2735 100644 --- a/forge-gui/res/cardsfolder/m/merfolk_seastalkers.txt +++ b/forge-gui/res/cardsfolder/m/merfolk_seastalkers.txt @@ -2,6 +2,6 @@ Name:Merfolk Seastalkers ManaCost:3 U Types:Creature Merfolk Scout PT:2/3 -K:Islandwalk +K:Landwalk:Island A:AB$ Tap | Cost$ 2 U | ValidTgts$ Creature.withoutFlying | TgtPrompt$ Select target creature without flying | SpellDescription$ Tap target creature without flying. Oracle:Islandwalk (This creature can't be blocked as long as defending player controls an Island.)\n{2}{U}: Tap target creature without flying. diff --git a/forge-gui/res/cardsfolder/m/merfolk_spy.txt b/forge-gui/res/cardsfolder/m/merfolk_spy.txt index 9eea1dad8e7..c30c81422dc 100644 --- a/forge-gui/res/cardsfolder/m/merfolk_spy.txt +++ b/forge-gui/res/cardsfolder/m/merfolk_spy.txt @@ -2,7 +2,7 @@ Name:Merfolk Spy ManaCost:U Types:Creature Merfolk Rogue PT:1/1 -K:Islandwalk +K:Landwalk:Island T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigReveal | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, that player reveals a card at random from their hand. SVar:TrigReveal:DB$ Reveal | Random$ True | Defined$ TriggeredTarget Oracle:Islandwalk (This creature can't be blocked as long as defending player controls an Island.)\nWhenever Merfolk Spy deals combat damage to a player, that player reveals a card at random from their hand. diff --git a/forge-gui/res/cardsfolder/m/merrow_harbinger.txt b/forge-gui/res/cardsfolder/m/merrow_harbinger.txt index 692fa584d3a..9c4ef7321ad 100644 --- a/forge-gui/res/cardsfolder/m/merrow_harbinger.txt +++ b/forge-gui/res/cardsfolder/m/merrow_harbinger.txt @@ -2,7 +2,7 @@ Name:Merrow Harbinger ManaCost:3 U Types:Creature Merfolk Wizard PT:2/3 -K:Islandwalk +K:Landwalk:Island T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChange | OptionalDecider$ You | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for a Merfolk card, reveal it, then shuffle and put that card on top. SVar:TrigChange:DB$ ChangeZone | Origin$ Library | Destination$ Library | LibraryPosition$ 0 | ChangeType$ Card.Merfolk | ChangeNum$ 1 | ShuffleNonMandatory$ True AI:RemoveDeck:Random diff --git a/forge-gui/res/cardsfolder/m/mire_boa.txt b/forge-gui/res/cardsfolder/m/mire_boa.txt index b533602439b..7fc975194bc 100644 --- a/forge-gui/res/cardsfolder/m/mire_boa.txt +++ b/forge-gui/res/cardsfolder/m/mire_boa.txt @@ -2,6 +2,6 @@ Name:Mire Boa ManaCost:1 G Types:Creature Snake PT:2/1 -K:Swampwalk +K:Landwalk:Swamp A:AB$ Regenerate | Cost$ G | SpellDescription$ Regenerate CARDNAME. (The next time this creature would be destroyed, instead tap it, remove it from combat, and heal all damage on it.) Oracle:Swampwalk (This creature can't be blocked as long as defending player controls a Swamp.)\n{G}: Regenerate Mire Boa. (The next time this creature would be destroyed, instead tap it, remove it from combat, and heal all damage on it.) diff --git a/forge-gui/res/cardsfolder/m/mirri_cat_warrior.txt b/forge-gui/res/cardsfolder/m/mirri_cat_warrior.txt index 16991ba9702..a6827fb49e7 100644 --- a/forge-gui/res/cardsfolder/m/mirri_cat_warrior.txt +++ b/forge-gui/res/cardsfolder/m/mirri_cat_warrior.txt @@ -3,6 +3,6 @@ ManaCost:1 G G Types:Legendary Creature Cat Warrior PT:2/3 K:First Strike -K:Forestwalk +K:Landwalk:Forest K:Vigilance Oracle:First strike, forestwalk, vigilance (This creature deals combat damage before creatures without first strike, it can't be blocked as long as defending player controls a Forest, and attacking doesn't cause this creature to tap.) diff --git a/forge-gui/res/cardsfolder/m/moor_fiend.txt b/forge-gui/res/cardsfolder/m/moor_fiend.txt index 02848e556fb..27833be51f4 100644 --- a/forge-gui/res/cardsfolder/m/moor_fiend.txt +++ b/forge-gui/res/cardsfolder/m/moor_fiend.txt @@ -2,5 +2,5 @@ Name:Moor Fiend ManaCost:3 B Types:Creature Horror PT:3/3 -K:Swampwalk +K:Landwalk:Swamp Oracle:Swampwalk (This creature can't be blocked as long as defending player controls a Swamp.) diff --git a/forge-gui/res/cardsfolder/m/mountain_goat.txt b/forge-gui/res/cardsfolder/m/mountain_goat.txt index 259a4a7de5d..57da77a113c 100644 --- a/forge-gui/res/cardsfolder/m/mountain_goat.txt +++ b/forge-gui/res/cardsfolder/m/mountain_goat.txt @@ -2,5 +2,5 @@ Name:Mountain Goat ManaCost:R Types:Creature Goat PT:1/1 -K:Mountainwalk +K:Landwalk:Mountain Oracle:Mountainwalk (This creature can't be blocked as long as defending player controls a Mountain.) diff --git a/forge-gui/res/cardsfolder/m/mountain_yeti.txt b/forge-gui/res/cardsfolder/m/mountain_yeti.txt index d9779b1cd5e..23440391719 100644 --- a/forge-gui/res/cardsfolder/m/mountain_yeti.txt +++ b/forge-gui/res/cardsfolder/m/mountain_yeti.txt @@ -2,6 +2,6 @@ Name:Mountain Yeti ManaCost:2 R R Types:Creature Yeti PT:3/3 -K:Mountainwalk +K:Landwalk:Mountain K:Protection from white Oracle:Mountainwalk (This creature can't be blocked as long as defending player controls a Mountain.)\nProtection from white diff --git a/forge-gui/res/cardsfolder/n/natures_cloak.txt b/forge-gui/res/cardsfolder/n/natures_cloak.txt index acea6633756..b4b936a1f3a 100644 --- a/forge-gui/res/cardsfolder/n/natures_cloak.txt +++ b/forge-gui/res/cardsfolder/n/natures_cloak.txt @@ -1,6 +1,6 @@ Name:Nature's Cloak ManaCost:2 G Types:Sorcery -A:SP$ PumpAll | Cost$ 2 G | ValidCards$ Creature.Green+YouCtrl | KW$ Forestwalk | SpellDescription$ Green creatures you control gain forestwalk until end of turn. +A:SP$ PumpAll | Cost$ 2 G | ValidCards$ Creature.Green+YouCtrl | KW$ Landwalk:Forest | SpellDescription$ Green creatures you control gain forestwalk until end of turn. AI:RemoveDeck:Random Oracle:Green creatures you control gain forestwalk until end of turn. (They can't be blocked as long as defending player controls a Forest.) diff --git a/forge-gui/res/cardsfolder/n/nighthaze.txt b/forge-gui/res/cardsfolder/n/nighthaze.txt index d4303c31d38..c778333912b 100644 --- a/forge-gui/res/cardsfolder/n/nighthaze.txt +++ b/forge-gui/res/cardsfolder/n/nighthaze.txt @@ -1,6 +1,6 @@ Name:Nighthaze ManaCost:B Types:Sorcery -A:SP$ Pump | Cost$ B | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Swampwalk | SpellDescription$ Target creature gains swampwalk until end of turn. (It can't be blocked as long as defending player controls a Swamp.) | SubAbility$ DBDraw +A:SP$ Pump | Cost$ B | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Landwalk:Swamp | SpellDescription$ Target creature gains swampwalk until end of turn. (It can't be blocked as long as defending player controls a Swamp.) | SubAbility$ DBDraw SVar:DBDraw:DB$ Draw | NumCards$ 1 | SpellDescription$ Draw a card. Oracle:Target creature gains swampwalk until end of turn. (It can't be blocked as long as defending player controls a Swamp.)\nDraw a card. diff --git a/forge-gui/res/cardsfolder/o/odylic_wraith.txt b/forge-gui/res/cardsfolder/o/odylic_wraith.txt index 062dd01d52b..9901d192ca3 100644 --- a/forge-gui/res/cardsfolder/o/odylic_wraith.txt +++ b/forge-gui/res/cardsfolder/o/odylic_wraith.txt @@ -2,7 +2,7 @@ Name:Odylic Wraith ManaCost:3 B Types:Creature Wraith PT:2/2 -K:Swampwalk +K:Landwalk:Swamp T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | Execute$ TrigDiscard | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals damage to a player, that player discards a card. SVar:TrigDiscard:DB$ Discard | Defined$ TriggeredTarget | NumCards$ 1 | Mode$ TgtChoose Oracle:Swampwalk (This creature can't be blocked as long as defending player controls a Swamp.)\nWhenever Odylic Wraith deals damage to a player, that player discards a card. diff --git a/forge-gui/res/cardsfolder/o/old_fogey.txt b/forge-gui/res/cardsfolder/o/old_fogey.txt index c9ae2be4e9a..86e9ca00849 100644 --- a/forge-gui/res/cardsfolder/o/old_fogey.txt +++ b/forge-gui/res/cardsfolder/o/old_fogey.txt @@ -7,7 +7,7 @@ K:Cumulative upkeep:1 K:Echo:G G K:Fading:3 K:Bands with Other Dinosaurs -K:Snow plainswalk +K:Landwalk:Plains.Snow:Snow Plains K:Protection:Homarid:Homarids K:Flanking K:Rampage:2 diff --git a/forge-gui/res/cardsfolder/o/orbweaver_kumo.txt b/forge-gui/res/cardsfolder/o/orbweaver_kumo.txt index fb9f979b6c2..8220a1d736d 100644 --- a/forge-gui/res/cardsfolder/o/orbweaver_kumo.txt +++ b/forge-gui/res/cardsfolder/o/orbweaver_kumo.txt @@ -4,7 +4,7 @@ Types:Creature Spirit PT:3/4 K:Reach T:Mode$ SpellCast | ValidCard$ Spirit,Arcane | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever you cast a Spirit or Arcane spell, CARDNAME gains forestwalk until end of turn. (It can't be blocked as long as defending player controls a Forest.) -SVar:TrigPump:DB$ Pump | Defined$ Self | KW$ Forestwalk +SVar:TrigPump:DB$ Pump | Defined$ Self | KW$ Landwalk:Forest SVar:BuffedBy:Arcane,Spirit AI:RemoveDeck:Random DeckHints:Type$Spirit|Arcane diff --git a/forge-gui/res/cardsfolder/p/pale_bears.txt b/forge-gui/res/cardsfolder/p/pale_bears.txt index 604f77d9d2f..547cb1bbb65 100644 --- a/forge-gui/res/cardsfolder/p/pale_bears.txt +++ b/forge-gui/res/cardsfolder/p/pale_bears.txt @@ -2,5 +2,5 @@ Name:Pale Bears ManaCost:2 G Types:Creature Bear PT:2/2 -K:Islandwalk +K:Landwalk:Island Oracle:Islandwalk (This creature can't be blocked as long as defending player controls an Island.) diff --git a/forge-gui/res/cardsfolder/p/part_water.txt b/forge-gui/res/cardsfolder/p/part_water.txt index 10c4c82cd4c..8ced41d8a3f 100644 --- a/forge-gui/res/cardsfolder/p/part_water.txt +++ b/forge-gui/res/cardsfolder/p/part_water.txt @@ -1,7 +1,7 @@ Name:Part Water ManaCost:X X U Types:Sorcery -A:SP$ Pump | KW$ Islandwalk | TargetMin$ X | TargetMax$ X | ValidTgts$ Creature | TgtPrompt$ Select X target creatures | StackDescription$ SpellDescription | SpellDescription$ X target creatures gain islandwalk until end of turn. (They can't be blocked as long as defending player controls an Island.) +A:SP$ Pump | KW$ Landwalk:Island | TargetMin$ X | TargetMax$ X | ValidTgts$ Creature | TgtPrompt$ Select X target creatures | StackDescription$ SpellDescription | SpellDescription$ X target creatures gain islandwalk until end of turn. (They can't be blocked as long as defending player controls an Island.) SVar:X:Count$xPaid AI:RemoveDeck:Random DeckHas:Keyword$Islandwalk diff --git a/forge-gui/res/cardsfolder/p/piracy_charm.txt b/forge-gui/res/cardsfolder/p/piracy_charm.txt index f8db3a8f4f6..f9f02ebec6f 100644 --- a/forge-gui/res/cardsfolder/p/piracy_charm.txt +++ b/forge-gui/res/cardsfolder/p/piracy_charm.txt @@ -2,7 +2,7 @@ Name:Piracy Charm ManaCost:U Types:Instant A:SP$ Charm | Cost$ U | Choices$ DBPump1,DBPump2,DBDiscard | CharmNum$ 1 -SVar:DBPump1:DB$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Islandwalk | SpellDescription$ Target creature gains islandwalk until end of turn. +SVar:DBPump1:DB$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Landwalk:Island | SpellDescription$ Target creature gains islandwalk until end of turn. SVar:DBPump2:DB$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ +2 | NumDef$ -1 | SpellDescription$ Target creature gets +2/-1 until end of turn. SVar:DBDiscard:DB$ Discard | ValidTgts$ Player | TgtPrompt$ Choose a player | NumCards$ 1 | Mode$ TgtChoose | SpellDescription$ Target player discards a card. Oracle:Choose one —\n• Target creature gains islandwalk until end of turn. (It can't be blocked as long as defending player controls an Island.)\n• Target creature gets +2/-1 until end of turn.\n• Target player discards a card. diff --git a/forge-gui/res/cardsfolder/p/plague_beetle.txt b/forge-gui/res/cardsfolder/p/plague_beetle.txt index f24b99d4bab..4485ad59d60 100644 --- a/forge-gui/res/cardsfolder/p/plague_beetle.txt +++ b/forge-gui/res/cardsfolder/p/plague_beetle.txt @@ -2,5 +2,5 @@ Name:Plague Beetle ManaCost:B Types:Creature Insect PT:1/1 -K:Swampwalk +K:Landwalk:Swamp Oracle:Swampwalk (This creature can't be blocked as long as defending player controls a Swamp.) diff --git a/forge-gui/res/cardsfolder/p/pygmy_allosaurus.txt b/forge-gui/res/cardsfolder/p/pygmy_allosaurus.txt index 53a95d8044e..ce769867de5 100644 --- a/forge-gui/res/cardsfolder/p/pygmy_allosaurus.txt +++ b/forge-gui/res/cardsfolder/p/pygmy_allosaurus.txt @@ -2,5 +2,5 @@ Name:Pygmy Allosaurus ManaCost:2 G Types:Creature Dinosaur PT:2/2 -K:Swampwalk +K:Landwalk:Swamp Oracle:Swampwalk (This creature can't be blocked as long as defending player controls a Swamp.) diff --git a/forge-gui/res/cardsfolder/q/quag_vampires.txt b/forge-gui/res/cardsfolder/q/quag_vampires.txt index e0b0e9d483c..6ffae600f53 100644 --- a/forge-gui/res/cardsfolder/q/quag_vampires.txt +++ b/forge-gui/res/cardsfolder/q/quag_vampires.txt @@ -2,7 +2,7 @@ Name:Quag Vampires ManaCost:B Types:Creature Vampire Rogue PT:1/1 -K:Swampwalk +K:Landwalk:Swamp K:Multikicker:1 B K:etbCounter:P1P1:XKicked:no condition:CARDNAME enters the battlefield with a +1/+1 counter on it for each time it was kicked. SVar:XKicked:Count$TimesKicked diff --git a/forge-gui/res/cardsfolder/q/quagmire.txt b/forge-gui/res/cardsfolder/q/quagmire.txt index e83d1bc1187..06377d23c7e 100644 --- a/forge-gui/res/cardsfolder/q/quagmire.txt +++ b/forge-gui/res/cardsfolder/q/quagmire.txt @@ -1,7 +1,7 @@ Name:Quagmire ManaCost:2 B Types:Enchantment -S:Mode$ Continuous | Affected$ Creature.withSwampwalk | AddHiddenKeyword$ May be blocked as though it doesn't have Swampwalk. | Description$ Creatures with swampwalk can be blocked as though they didn't have swampwalk. +S:Mode$ IgnoreLandWalk | ValidKeyword$ Landwalk:Swamp | Description$ Creatures with swampwalk can be blocked as though they didn't have swampwalk. SVar:NonStackingEffect:True AI:RemoveDeck:Random Oracle:Creatures with swampwalk can be blocked as though they didn't have swampwalk. diff --git a/forge-gui/res/cardsfolder/r/raiding_nightstalker.txt b/forge-gui/res/cardsfolder/r/raiding_nightstalker.txt index 7e4463ad08a..e705c44c32b 100644 --- a/forge-gui/res/cardsfolder/r/raiding_nightstalker.txt +++ b/forge-gui/res/cardsfolder/r/raiding_nightstalker.txt @@ -2,5 +2,5 @@ Name:Raiding Nightstalker ManaCost:2 B Types:Creature Nightstalker PT:2/2 -K:Swampwalk +K:Landwalk:Swamp Oracle:Swampwalk (This creature can't be blocked as long as defending player controls a Swamp.) diff --git a/forge-gui/res/cardsfolder/r/restless_bones.txt b/forge-gui/res/cardsfolder/r/restless_bones.txt index ec84a0d4314..0f4d37dc3a5 100644 --- a/forge-gui/res/cardsfolder/r/restless_bones.txt +++ b/forge-gui/res/cardsfolder/r/restless_bones.txt @@ -2,6 +2,6 @@ Name:Restless Bones ManaCost:2 B Types:Creature Skeleton PT:1/1 -A:AB$ Pump | Cost$ 3 B T | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Swampwalk | SpellDescription$ Target creature gains swampwalk until end of turn. (It can't be blocked as long as defending player controls a Swamp.) +A:AB$ Pump | Cost$ 3 B T | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Landwalk:Swamp | SpellDescription$ Target creature gains swampwalk until end of turn. (It can't be blocked as long as defending player controls a Swamp.) A:AB$ Regenerate | Cost$ 1 B | SpellDescription$ Regenerate CARDNAME. Oracle:{3}{B}, {T}: Target creature gains swampwalk until end of turn. (It can't be blocked as long as defending player controls a Swamp.)\n{1}{B}: Regenerate Restless Bones. diff --git a/forge-gui/res/cardsfolder/r/righteous_avengers.txt b/forge-gui/res/cardsfolder/r/righteous_avengers.txt index 9560cdd65f8..b156ac95bc7 100644 --- a/forge-gui/res/cardsfolder/r/righteous_avengers.txt +++ b/forge-gui/res/cardsfolder/r/righteous_avengers.txt @@ -2,5 +2,5 @@ Name:Righteous Avengers ManaCost:4 W Types:Creature Human Soldier PT:3/1 -K:Plainswalk +K:Landwalk:Plains Oracle:Plainswalk (This creature can't be blocked as long as defending player controls a Plains.) diff --git a/forge-gui/res/cardsfolder/r/rime_dryad.txt b/forge-gui/res/cardsfolder/r/rime_dryad.txt index 9661c3358bb..28d47f14a31 100644 --- a/forge-gui/res/cardsfolder/r/rime_dryad.txt +++ b/forge-gui/res/cardsfolder/r/rime_dryad.txt @@ -2,5 +2,5 @@ Name:Rime Dryad ManaCost:G Types:Creature Dryad PT:1/2 -K:Snow forestwalk +K:Landwalk:Forest.Snow:snow Forest Oracle:Snow forestwalk (This creature can't be blocked as long as defending player controls a snow Forest.) diff --git a/forge-gui/res/cardsfolder/r/rishadan_dockhand.txt b/forge-gui/res/cardsfolder/r/rishadan_dockhand.txt index ccb93d44aa8..521e5703b81 100644 --- a/forge-gui/res/cardsfolder/r/rishadan_dockhand.txt +++ b/forge-gui/res/cardsfolder/r/rishadan_dockhand.txt @@ -2,6 +2,6 @@ Name:Rishadan Dockhand ManaCost:U Types:Creature Merfolk PT:1/2 -K:Islandwalk +K:Landwalk:Island A:AB$ Tap | Cost$ 1 T | ValidTgts$ Land | TgtPrompt$ Select target land | SpellDescription$ Tap target land. Oracle:Islandwalk (This creature can't be blocked as long as defending player controls an Island.)\n{1}, {T}: Tap target land. diff --git a/forge-gui/res/cardsfolder/r/river_bear.txt b/forge-gui/res/cardsfolder/r/river_bear.txt index 3f1805fd996..c1e407f5407 100644 --- a/forge-gui/res/cardsfolder/r/river_bear.txt +++ b/forge-gui/res/cardsfolder/r/river_bear.txt @@ -2,5 +2,5 @@ Name:River Bear ManaCost:3 G Types:Creature Bear PT:3/3 -K:Islandwalk +K:Landwalk:Island Oracle:Islandwalk (This creature can't be blocked as long as defending player controls an Island.) diff --git a/forge-gui/res/cardsfolder/r/river_boa.txt b/forge-gui/res/cardsfolder/r/river_boa.txt index 53a1b8c73f4..5ab6d508022 100644 --- a/forge-gui/res/cardsfolder/r/river_boa.txt +++ b/forge-gui/res/cardsfolder/r/river_boa.txt @@ -2,6 +2,6 @@ Name:River Boa ManaCost:1 G Types:Creature Snake PT:2/1 -K:Islandwalk +K:Landwalk:Island A:AB$ Regenerate | Cost$ G | SpellDescription$ Regenerate CARDNAME. Oracle:Islandwalk (This creature can't be blocked as long as defending player controls an Island.)\n{G}: Regenerate River Boa. diff --git a/forge-gui/res/cardsfolder/r/river_merfolk.txt b/forge-gui/res/cardsfolder/r/river_merfolk.txt index 6793b27aadd..f1ee68927ca 100644 --- a/forge-gui/res/cardsfolder/r/river_merfolk.txt +++ b/forge-gui/res/cardsfolder/r/river_merfolk.txt @@ -2,5 +2,5 @@ Name:River Merfolk ManaCost:U U Types:Creature Merfolk PT:2/1 -A:AB$ Pump | Cost$ U | KW$ Mountainwalk | Defined$ Self | SpellDescription$ CARDNAME gains mountainwalk until end of turn. (It can't be blocked as long as defending player controls a Mountain.) +A:AB$ Pump | Cost$ U | KW$ Landwalk:Mountain | Defined$ Self | SpellDescription$ CARDNAME gains mountainwalk until end of turn. (It can't be blocked as long as defending player controls a Mountain.) Oracle:{U}: River Merfolk gains mountainwalk until end of turn. (It can't be blocked as long as defending player controls a Mountain.) diff --git a/forge-gui/res/cardsfolder/r/rock_badger.txt b/forge-gui/res/cardsfolder/r/rock_badger.txt index 0932aee5398..e4f49637f4e 100644 --- a/forge-gui/res/cardsfolder/r/rock_badger.txt +++ b/forge-gui/res/cardsfolder/r/rock_badger.txt @@ -2,5 +2,5 @@ Name:Rock Badger ManaCost:4 R Types:Creature Badger Beast PT:3/3 -K:Mountainwalk +K:Landwalk:Mountain Oracle:Mountainwalk (This creature can't be blocked as long as defending player controls a Mountain.) diff --git a/forge-gui/res/cardsfolder/r/rootwater_commando.txt b/forge-gui/res/cardsfolder/r/rootwater_commando.txt index 40cfaeaebe2..310ecd681c6 100644 --- a/forge-gui/res/cardsfolder/r/rootwater_commando.txt +++ b/forge-gui/res/cardsfolder/r/rootwater_commando.txt @@ -2,5 +2,5 @@ Name:Rootwater Commando ManaCost:2 U Types:Creature Merfolk PT:2/2 -K:Islandwalk +K:Landwalk:Island Oracle:Islandwalk (This creature can't be blocked as long as defending player controls an Island.) diff --git a/forge-gui/res/cardsfolder/r/rushwood_dryad.txt b/forge-gui/res/cardsfolder/r/rushwood_dryad.txt index 968299d71da..6cb11d793d9 100644 --- a/forge-gui/res/cardsfolder/r/rushwood_dryad.txt +++ b/forge-gui/res/cardsfolder/r/rushwood_dryad.txt @@ -2,5 +2,5 @@ Name:Rushwood Dryad ManaCost:1 G Types:Creature Dryad PT:2/1 -K:Forestwalk +K:Landwalk:Forest Oracle:Forestwalk (This creature can't be blocked as long as defending player controls a Forest.) diff --git a/forge-gui/res/cardsfolder/s/sand_squid.txt b/forge-gui/res/cardsfolder/s/sand_squid.txt index 3c1edb724f7..68cd16359b9 100644 --- a/forge-gui/res/cardsfolder/s/sand_squid.txt +++ b/forge-gui/res/cardsfolder/s/sand_squid.txt @@ -2,7 +2,7 @@ Name:Sand Squid ManaCost:3 U Types:Creature Squid Beast PT:2/2 -K:Islandwalk +K:Landwalk:Island K:You may choose not to untap CARDNAME during your untap step. A:AB$ Tap | Cost$ T | ValidTgts$ Creature | RememberTapped$ True | AlwaysRemember$ True | SpellDescription$ Tap target creature. That creature doesn't untap during its controller's untap step for as long as CARDNAME remains tapped. | StackDescription$ SpellDescription S:Mode$ Continuous | Affected$ Creature.IsRemembered | AddHiddenKeyword$ CARDNAME doesn't untap during your untap step. diff --git a/forge-gui/res/cardsfolder/s/sandals_of_abdallah.txt b/forge-gui/res/cardsfolder/s/sandals_of_abdallah.txt index f9158a3cde1..f240542d9ef 100644 --- a/forge-gui/res/cardsfolder/s/sandals_of_abdallah.txt +++ b/forge-gui/res/cardsfolder/s/sandals_of_abdallah.txt @@ -1,7 +1,7 @@ Name:Sandals of Abdallah ManaCost:4 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.) +A:AB$ Pump | Cost$ 2 T | KW$ Landwalk:Island | 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 diff --git a/forge-gui/res/cardsfolder/s/scarwood_bandits.txt b/forge-gui/res/cardsfolder/s/scarwood_bandits.txt index 370fc56fe1c..afef8750a17 100644 --- a/forge-gui/res/cardsfolder/s/scarwood_bandits.txt +++ b/forge-gui/res/cardsfolder/s/scarwood_bandits.txt @@ -2,7 +2,7 @@ Name:Scarwood Bandits ManaCost:2 G G Types:Creature Human Rogue PT:2/2 -K:Forestwalk +K:Landwalk:Forest A:AB$ GainControl | Cost$ 2 G T | ValidTgts$ Artifact | TgtPrompt$ Select target artifact. | LoseControl$ LeavesPlay | UnlessCost$ 2 | UnlessPayer$ Opponent | SpellDescription$ Unless an opponent pays {2}, gain control of target artifact for as long as CARDNAME remains on the battlefield. AI:RemoveDeck:All Oracle:Forestwalk (This creature can't be blocked as long as defending player controls a Forest.)\n{2}{G}, {T}: Unless an opponent pays {2}, gain control of target artifact for as long as Scarwood Bandits remains on the battlefield. diff --git a/forge-gui/res/cardsfolder/s/scarwood_hag.txt b/forge-gui/res/cardsfolder/s/scarwood_hag.txt index c04bf89aa3f..eefffa99c5b 100644 --- a/forge-gui/res/cardsfolder/s/scarwood_hag.txt +++ b/forge-gui/res/cardsfolder/s/scarwood_hag.txt @@ -2,7 +2,7 @@ Name:Scarwood Hag ManaCost:1 G Types:Creature Hag PT:1/1 -A:AB$ Pump | Cost$ G G G G T | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Forestwalk | SpellDescription$ Target creature gains forestwalk until end of turn. (It can't be blocked as long as defending player controls a Forest.) -A:AB$ Debuff | Cost$ T | ValidTgts$ Creature | TgtPrompt$ Select target creature | Keywords$ Forestwalk | SpellDescription$ Target creature loses forestwalk until end of turn. +A:AB$ Pump | Cost$ G G G G T | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Landwalk:Forest | SpellDescription$ Target creature gains forestwalk until end of turn. (It can't be blocked as long as defending player controls a Forest.) +A:AB$ Debuff | Cost$ T | ValidTgts$ Creature | TgtPrompt$ Select target creature | Keywords$ Landwalk:Forest | SpellDescription$ Target creature loses forestwalk until end of turn. DeckHas:Keyword$Forestwalk Oracle:{G}{G}{G}{G}, {T}: Target creature gains forestwalk until end of turn. (It can't be blocked as long as defending player controls a Forest.)\n{T}: Target creature loses forestwalk until end of turn. diff --git a/forge-gui/res/cardsfolder/s/segovian_leviathan.txt b/forge-gui/res/cardsfolder/s/segovian_leviathan.txt index a3ad9902898..3ba22edcd12 100644 --- a/forge-gui/res/cardsfolder/s/segovian_leviathan.txt +++ b/forge-gui/res/cardsfolder/s/segovian_leviathan.txt @@ -2,5 +2,5 @@ Name:Segovian Leviathan ManaCost:4 U Types:Creature Leviathan PT:3/3 -K:Islandwalk +K:Landwalk:Island Oracle:Islandwalk (This creature can't be blocked as long as defending player controls an Island.) diff --git a/forge-gui/res/cardsfolder/s/sewer_shambler.txt b/forge-gui/res/cardsfolder/s/sewer_shambler.txt index 0e30c3fb727..f10341dbd91 100644 --- a/forge-gui/res/cardsfolder/s/sewer_shambler.txt +++ b/forge-gui/res/cardsfolder/s/sewer_shambler.txt @@ -2,6 +2,6 @@ Name:Sewer Shambler ManaCost:2 B Types:Creature Zombie PT:2/1 -K:Swampwalk +K:Landwalk:Swamp K:Scavenge:2 B Oracle:Swampwalk (This creature can't be blocked as long as defending player controls a Swamp.)\nScavenge {2}{B} ({2}{B}, Exile this card from your graveyard: Put a number of +1/+1 counters equal to this card's power on target creature. Scavenge only as a sorcery.) diff --git a/forge-gui/res/cardsfolder/s/sewerdreg.txt b/forge-gui/res/cardsfolder/s/sewerdreg.txt index c1e9dc2139a..bcefa1036b9 100644 --- a/forge-gui/res/cardsfolder/s/sewerdreg.txt +++ b/forge-gui/res/cardsfolder/s/sewerdreg.txt @@ -2,7 +2,7 @@ Name:Sewerdreg ManaCost:3 B B Types:Creature Spirit PT:3/3 -K:Swampwalk +K:Landwalk:Swamp A:AB$ ChangeZone | Cost$ Sac<1/CARDNAME> | Origin$ Graveyard | Destination$ Exile | TgtPrompt$ Choose target card in a graveyard | ValidTgts$ Card | SpellDescription$ Exile target card from a graveyard. AI:RemoveDeck:All Oracle:Swampwalk (This creature can't be blocked as long as defending player controls a Swamp.)\nSacrifice Sewerdreg: Exile target card from a graveyard. diff --git a/forge-gui/res/cardsfolder/s/shanodin_dryads.txt b/forge-gui/res/cardsfolder/s/shanodin_dryads.txt index 42fe1fd25bf..1cdf8135560 100644 --- a/forge-gui/res/cardsfolder/s/shanodin_dryads.txt +++ b/forge-gui/res/cardsfolder/s/shanodin_dryads.txt @@ -2,5 +2,5 @@ Name:Shanodin Dryads ManaCost:G Types:Creature Nymph Dryad PT:1/1 -K:Forestwalk +K:Landwalk:Forest Oracle:Forestwalk (This creature can't be blocked as long as defending player controls a Forest.) diff --git a/forge-gui/res/cardsfolder/s/sheoldred_whispering_one.txt b/forge-gui/res/cardsfolder/s/sheoldred_whispering_one.txt index d7b7e365ba6..a5fbcb1ac5f 100644 --- a/forge-gui/res/cardsfolder/s/sheoldred_whispering_one.txt +++ b/forge-gui/res/cardsfolder/s/sheoldred_whispering_one.txt @@ -2,7 +2,7 @@ Name:Sheoldred, Whispering One ManaCost:5 B B Types:Legendary Creature Phyrexian Praetor PT:6/6 -K:Swampwalk +K:Landwalk:Swamp T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigChange | TriggerDescription$ At the beginning of your upkeep, return target creature card from your graveyard to the battlefield. SVar:TrigChange:DB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | ValidTgts$ Creature.YouCtrl T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ Opponent | TriggerZones$ Battlefield | Execute$ TrigSac | TriggerDescription$ At the beginning of each opponent's upkeep, that player sacrifices a creature. diff --git a/forge-gui/res/cardsfolder/s/shore_snapper.txt b/forge-gui/res/cardsfolder/s/shore_snapper.txt index e83f435bbf6..6cd637482af 100644 --- a/forge-gui/res/cardsfolder/s/shore_snapper.txt +++ b/forge-gui/res/cardsfolder/s/shore_snapper.txt @@ -2,5 +2,5 @@ Name:Shore Snapper ManaCost:2 B Types:Creature Beast PT:2/2 -A:AB$ Pump | Cost$ U | Defined$ Self | KW$ Islandwalk | SpellDescription$ CARDNAME gains islandwalk until end of turn. (It can't be blocked as long as defending player controls an Island.) +A:AB$ Pump | Cost$ U | Defined$ Self | KW$ Landwalk:Island | SpellDescription$ CARDNAME gains islandwalk until end of turn. (It can't be blocked as long as defending player controls an Island.) Oracle:{U}: Shore Snapper gains islandwalk until end of turn. (It can't be blocked as long as defending player controls an Island.) diff --git a/forge-gui/res/cardsfolder/s/slinking_serpent.txt b/forge-gui/res/cardsfolder/s/slinking_serpent.txt index f2c7aee549c..203011cfcb0 100644 --- a/forge-gui/res/cardsfolder/s/slinking_serpent.txt +++ b/forge-gui/res/cardsfolder/s/slinking_serpent.txt @@ -2,5 +2,5 @@ Name:Slinking Serpent ManaCost:2 U B Types:Creature Serpent PT:2/3 -K:Forestwalk +K:Landwalk:Forest Oracle:Forestwalk (This creature can't be blocked as long as defending player controls a Forest.) diff --git a/forge-gui/res/cardsfolder/s/slithery_stalker.txt b/forge-gui/res/cardsfolder/s/slithery_stalker.txt index 8c46084c72d..509ef4ce1c8 100644 --- a/forge-gui/res/cardsfolder/s/slithery_stalker.txt +++ b/forge-gui/res/cardsfolder/s/slithery_stalker.txt @@ -2,7 +2,7 @@ Name:Slithery Stalker ManaCost:1 B B Types:Creature Nightmare Horror PT:1/1 -K:Swampwalk +K:Landwalk:Swamp T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, exile target green or white creature an opponent controls. T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ TrigReturn | TriggerDescription$ When CARDNAME leaves the battlefield, return the exiled card to the battlefield under its owner's control. SVar:TrigExile:DB$ ChangeZone | TargetMin$ 1 | TargetMax$ 1 | IsCurse$ True | ValidTgts$ Creature.Green+OppCtrl,Creature.White+OppCtrl | TgtPrompt$ Choose target green or white creature your opponent controls. | RememberTargets$ True | ForgetOtherTargets$ True | Origin$ Battlefield | Destination$ Exile diff --git a/forge-gui/res/cardsfolder/s/sokenzan_bruiser.txt b/forge-gui/res/cardsfolder/s/sokenzan_bruiser.txt index eaf7db44229..d5ca27405cf 100644 --- a/forge-gui/res/cardsfolder/s/sokenzan_bruiser.txt +++ b/forge-gui/res/cardsfolder/s/sokenzan_bruiser.txt @@ -2,5 +2,5 @@ Name:Sokenzan Bruiser ManaCost:4 R Types:Creature Ogre Warrior PT:3/3 -K:Mountainwalk +K:Landwalk:Mountain Oracle:Mountainwalk (This creature can't be blocked as long as defending player controls a Mountain.) diff --git a/forge-gui/res/cardsfolder/s/solkanar_the_swamp_king.txt b/forge-gui/res/cardsfolder/s/solkanar_the_swamp_king.txt index 9d92f0de688..a1bcedc93d2 100644 --- a/forge-gui/res/cardsfolder/s/solkanar_the_swamp_king.txt +++ b/forge-gui/res/cardsfolder/s/solkanar_the_swamp_king.txt @@ -2,7 +2,7 @@ Name:Sol'kanar the Swamp King ManaCost:2 U B R Types:Legendary Creature Demon PT:5/5 -K:Swampwalk +K:Landwalk:Swamp T:Mode$ SpellCast | ValidCard$ Card.Black | TriggerZones$ Battlefield | Execute$ TrigGainLife | TriggerDescription$ Whenever a player casts a black spell, you gain 1 life. SVar:TrigGainLife:DB$ GainLife | Defined$ You | LifeAmount$ 1 DeckHas:Ability$LifeGain diff --git a/forge-gui/res/cardsfolder/s/somberwald_dryad.txt b/forge-gui/res/cardsfolder/s/somberwald_dryad.txt index 4a1f11ee71d..3a0636fdb77 100644 --- a/forge-gui/res/cardsfolder/s/somberwald_dryad.txt +++ b/forge-gui/res/cardsfolder/s/somberwald_dryad.txt @@ -2,5 +2,5 @@ Name:Somberwald Dryad ManaCost:1 G Types:Creature Dryad PT:2/2 -K:Forestwalk +K:Landwalk:Forest Oracle:Forestwalk (This creature can't be blocked as long as defending player controls a Forest.) diff --git a/forge-gui/res/cardsfolder/s/staff_of_the_ages.txt b/forge-gui/res/cardsfolder/s/staff_of_the_ages.txt index d17f9526fc0..98488fd329d 100644 --- a/forge-gui/res/cardsfolder/s/staff_of_the_ages.txt +++ b/forge-gui/res/cardsfolder/s/staff_of_the_ages.txt @@ -1,7 +1,7 @@ Name:Staff of the Ages ManaCost:3 Types:Artifact -S:Mode$ Continuous | Affected$ Creature | AddHiddenKeyword$ May be blocked as though it doesn't have landwalk. | Description$ Creatures with landwalk abilities can be blocked as though they didn't have those abilities. +S:Mode$ IgnoreLandWalk | Description$ Creatures with landwalk abilities can be blocked as though they didn't have those abilities. SVar:NonStackingEffect:True AI:RemoveDeck:Random Oracle:Creatures with landwalk abilities can be blocked as though they didn't have those abilities. diff --git a/forge-gui/res/cardsfolder/s/stalker_hag.txt b/forge-gui/res/cardsfolder/s/stalker_hag.txt index e10a86cba1e..627c34b56d0 100644 --- a/forge-gui/res/cardsfolder/s/stalker_hag.txt +++ b/forge-gui/res/cardsfolder/s/stalker_hag.txt @@ -2,6 +2,6 @@ Name:Stalker Hag ManaCost:BG BG BG Types:Creature Hag PT:3/2 -K:Swampwalk -K:Forestwalk +K:Landwalk:Swamp +K:Landwalk:Forest Oracle:Swampwalk, forestwalk (This creature can't be blocked as long as defending player controls a Swamp or a Forest.) diff --git a/forge-gui/res/cardsfolder/s/stonybrook_banneret.txt b/forge-gui/res/cardsfolder/s/stonybrook_banneret.txt index 6f46d6b6954..b3aeaa9799c 100644 --- a/forge-gui/res/cardsfolder/s/stonybrook_banneret.txt +++ b/forge-gui/res/cardsfolder/s/stonybrook_banneret.txt @@ -2,6 +2,6 @@ Name:Stonybrook Banneret ManaCost:1 U Types:Creature Merfolk Wizard PT:1/1 -K:Islandwalk +K:Landwalk:Island S:Mode$ ReduceCost | ValidCard$ Merfolk,Wizard | Type$ Spell | Activator$ You | Amount$ 1 | Description$ Merfolk spells and Wizard spells you cast cost {1} less to cast. Oracle:Islandwalk (This creature can't be blocked as long as defending player controls an Island.)\nMerfolk spells and Wizard spells you cast cost {1} less to cast. diff --git a/forge-gui/res/cardsfolder/s/stormtide_leviathan.txt b/forge-gui/res/cardsfolder/s/stormtide_leviathan.txt index 6d2c215627c..43535601b18 100644 --- a/forge-gui/res/cardsfolder/s/stormtide_leviathan.txt +++ b/forge-gui/res/cardsfolder/s/stormtide_leviathan.txt @@ -2,7 +2,7 @@ Name:Stormtide Leviathan ManaCost:5 U U U Types:Creature Leviathan PT:8/8 -K:Islandwalk +K:Landwalk:Island S:Mode$ Continuous | Affected$ Land | AddType$ Island | Description$ All lands are Islands in addition to their other types. S:Mode$ CantAttack | ValidCard$ Creature.withoutFlying+withoutIslandwalk | Description$ Creatures without flying or islandwalk can't attack. Oracle:Islandwalk (This creature can't be blocked as long as defending player controls an Island.)\nAll lands are Islands in addition to their other types.\nCreatures without flying or islandwalk can't attack. diff --git a/forge-gui/res/cardsfolder/s/streambed_aquitects.txt b/forge-gui/res/cardsfolder/s/streambed_aquitects.txt index 829bdc9ee27..fe124ee5ed7 100644 --- a/forge-gui/res/cardsfolder/s/streambed_aquitects.txt +++ b/forge-gui/res/cardsfolder/s/streambed_aquitects.txt @@ -2,6 +2,6 @@ Name:Streambed Aquitects ManaCost:1 U U Types:Creature Merfolk Scout PT:2/3 -A:AB$ Pump | Cost$ T | ValidTgts$ Merfolk | TgtPrompt$ Select target Merfolk creature | NumAtt$ +1 | NumDef$ +1 | KW$ Islandwalk | SpellDescription$ Target Merfolk creature gets +1/+1 and gains islandwalk until end of turn. +A:AB$ Pump | Cost$ T | ValidTgts$ Merfolk | TgtPrompt$ Select target Merfolk creature | NumAtt$ +1 | NumDef$ +1 | KW$ Landwalk:Island | SpellDescription$ Target Merfolk creature gets +1/+1 and gains islandwalk until end of turn. A:AB$ Animate | Cost$ T | ValidTgts$ Land | TgtPrompt$ Select target land | Types$ Island | RemoveLandTypes$ True | SpellDescription$ Target land becomes an Island until end of turn. Oracle:{T}: Target Merfolk creature gets +1/+1 and gains islandwalk until end of turn. (It can't be blocked as long as defending player controls an Island.)\n{T}: Target land becomes an Island until end of turn. diff --git a/forge-gui/res/cardsfolder/s/street_savvy.txt b/forge-gui/res/cardsfolder/s/street_savvy.txt index b58d56e18e3..fde4c03ef98 100644 --- a/forge-gui/res/cardsfolder/s/street_savvy.txt +++ b/forge-gui/res/cardsfolder/s/street_savvy.txt @@ -3,5 +3,6 @@ ManaCost:G Types:Enchantment Aura K:Enchant creature A:SP$ Attach | Cost$ G | ValidTgts$ Creature | AILogic$ Pump -S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddToughness$ 2 | AddHiddenKeyword$ CARDNAME can block creatures with landwalk abilities as though they didn't have those abilities. | Description$ Enchanted creature gets +0/+2 and can block creatures with landwalk abilities as though they didn't have those abilities. +S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddToughness$ 2 | Description$ Enchanted creature gets +0/+2 and can block creatures with landwalk abilities as though they didn't have those abilities. +S:Mode$ IgnoreLandWalk | ValidBlocker$ Creature.EnchantedBy | Secondary$ True | Description$ Enchanted creature can block creatures with landwalk abilities as though they didn't have those abilities. Oracle:Enchant creature\nEnchanted creature gets +0/+2 and can block creatures with landwalk abilities as though they didn't have those abilities. diff --git a/forge-gui/res/cardsfolder/s/street_wraith.txt b/forge-gui/res/cardsfolder/s/street_wraith.txt index 76926a669fa..acb3f83e220 100644 --- a/forge-gui/res/cardsfolder/s/street_wraith.txt +++ b/forge-gui/res/cardsfolder/s/street_wraith.txt @@ -2,6 +2,6 @@ Name:Street Wraith ManaCost:3 B B Types:Creature Wraith PT:3/4 -K:Swampwalk +K:Landwalk:Swamp K:Cycling:PayLife<2> Oracle:Swampwalk (This creature can't be blocked as long as defending player controls a Swamp.)\nCycling—Pay 2 life. (Pay 2 life, Discard this card: Draw a card.) diff --git a/forge-gui/res/cardsfolder/s/sygg_river_guide.txt b/forge-gui/res/cardsfolder/s/sygg_river_guide.txt index 455c4a95c54..bd7cfaec08a 100644 --- a/forge-gui/res/cardsfolder/s/sygg_river_guide.txt +++ b/forge-gui/res/cardsfolder/s/sygg_river_guide.txt @@ -2,7 +2,7 @@ Name:Sygg, River Guide ManaCost:W U Types:Legendary Creature Merfolk Wizard PT:2/2 -K:Islandwalk +K:Landwalk:Island A:AB$ Protection | Cost$ 1 W | ValidTgts$ Merfolk.YouCtrl | TgtPrompt$ Select target Merfolk you control | Gains$ Choice | Choices$ AnyColor | SpellDescription$ Target Merfolk you control gains protection from the color of your choice until end of turn. DeckHints:Type$Merfolk Oracle:Islandwalk (This creature can't be blocked as long as defending player controls an Island.)\n{1}{W}: Target Merfolk you control gains protection from the color of your choice until end of turn. diff --git a/forge-gui/res/cardsfolder/t/tattermunge_duo.txt b/forge-gui/res/cardsfolder/t/tattermunge_duo.txt index a2b33086e1a..d674d9b75ca 100644 --- a/forge-gui/res/cardsfolder/t/tattermunge_duo.txt +++ b/forge-gui/res/cardsfolder/t/tattermunge_duo.txt @@ -5,6 +5,6 @@ PT:2/3 T:Mode$ SpellCast | ValidCard$ Card.Red | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPump11 | TriggerDescription$ Whenever you cast a red spell, CARDNAME gets +1/+1 until end of turn. T:Mode$ SpellCast | ValidCard$ Card.Green | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPumpKW | TriggerDescription$ Whenever you cast a green spell, CARDNAME gains forestwalk until end of turn. (It can't be blocked as long as defending player controls a Forest.) SVar:TrigPump11:DB$ Pump | NumAtt$ +1 | NumDef$ +1 | Defined$ Self -SVar:TrigPumpKW:DB$ Pump | KW$ Forestwalk | Defined$ Self +SVar:TrigPumpKW:DB$ Pump | KW$ Landwalk:Forest | Defined$ Self SVar:BuffedBy:Card.Red,Card.Green Oracle:Whenever you cast a red spell, Tattermunge Duo gets +1/+1 until end of turn.\nWhenever you cast a green spell, Tattermunge Duo gains forestwalk until end of turn. (It can't be blocked as long as defending player controls a Forest.) diff --git a/forge-gui/res/cardsfolder/t/thada_adel_acquisitor.txt b/forge-gui/res/cardsfolder/t/thada_adel_acquisitor.txt index b14f6e5062e..ab35a3687b6 100644 --- a/forge-gui/res/cardsfolder/t/thada_adel_acquisitor.txt +++ b/forge-gui/res/cardsfolder/t/thada_adel_acquisitor.txt @@ -2,7 +2,7 @@ Name:Thada Adel, Acquisitor ManaCost:1 U U Types:Legendary Creature Merfolk Rogue PT:2/2 -K:Islandwalk +K:Landwalk:Island T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigChangeZone | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, search that player's library for an artifact card and exile it. Then that player shuffles. Until end of turn, you may play that card. SVar:TrigChangeZone:DB$ ChangeZone | Origin$ Library | Destination$ Exile | DefinedPlayer$ TriggeredTarget | Chooser$ You | ChangeType$ Artifact | ChangeNum$ 1 | RememberChanged$ True | SubAbility$ DBEffect SVar:DBEffect:DB$ Effect | StaticAbilities$ STPlay | ExileOnMoved$ Exile | RememberObjects$ Remembered | SubAbility$ DBCleanup diff --git a/forge-gui/res/cardsfolder/t/the_flood_of_mars.txt b/forge-gui/res/cardsfolder/t/the_flood_of_mars.txt index d328b62945c..74d9d85f5d5 100644 --- a/forge-gui/res/cardsfolder/t/the_flood_of_mars.txt +++ b/forge-gui/res/cardsfolder/t/the_flood_of_mars.txt @@ -2,7 +2,7 @@ Name:The Flood of Mars ManaCost:2 U U Types:Creature Alien Zombie Horror PT:3/3 -K:Islandwalk +K:Landwalk:Island T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ DBCounter | TriggerDescription$ Water Always Wins — Whenever CARDNAME attacks, put a flood counter on another target creature or land. If it's a creature, it becomes a copy of CARDNAME. If it's a land, it becomes an Island in addition to its other types. SVar:DBCounter:DB$ PutCounter | ValidTgts$ Creature.Other,Land.Other | AITgts$ Creature.OppCtrl+notnamedThe Flood of Mars,Land.OppCtrl+nonIsland | TgtPrompt$ Select target creature or land | CounterType$ FLOOD | SubAbility$ DBCopy SVar:DBCopy:DB$ Clone | ConditionDefined$ ParentTarget | ConditionPresent$ Creature | Defined$ Self | CloneZone$ Battlefield | CloneTarget$ ParentTarget | SubAbility$ DBAnimate diff --git a/forge-gui/res/cardsfolder/t/trailblazers_boots.txt b/forge-gui/res/cardsfolder/t/trailblazers_boots.txt index 627800e37e2..1b1945b9948 100644 --- a/forge-gui/res/cardsfolder/t/trailblazers_boots.txt +++ b/forge-gui/res/cardsfolder/t/trailblazers_boots.txt @@ -2,5 +2,5 @@ Name:Trailblazer's Boots ManaCost:2 Types:Artifact Equipment K:Equip:2 -S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddKeyword$ Nonbasic landwalk | Description$ Equipped creature has nonbasic landwalk. +S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddKeyword$ Landwalk:Land.nonBasic:Nonbasic land | Description$ Equipped creature has nonbasic landwalk. Oracle:Equipped creature has nonbasic landwalk. (It can't be blocked as long as defending player controls a nonbasic land.)\nEquip {2} diff --git a/forge-gui/res/cardsfolder/t/travelers_cloak.txt b/forge-gui/res/cardsfolder/t/travelers_cloak.txt index 8b29b0b5717..c3fa64d40ad 100644 --- a/forge-gui/res/cardsfolder/t/travelers_cloak.txt +++ b/forge-gui/res/cardsfolder/t/travelers_cloak.txt @@ -7,5 +7,5 @@ K:ETBReplacement:Other:ChooseLT SVar:ChooseLT:DB$ ChooseType | Defined$ You | Type$ Land | AILogic$ ChosenLandwalk | SpellDescription$ As CARDNAME enters the battlefield, choose a land type. T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDraw | TriggerDescription$ When CARDNAME enters the battlefield, draw a card. SVar:TrigDraw:DB$ Draw | NumCards$ 1 -S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ ChosenTypewalk | Description$ Enchanted creature has landwalk of the chosen type. (It can't be blocked as long as defending player controls a land of that type.) +S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddKeyword$ Landwalk:ChosenType | Description$ Enchanted creature has landwalk of the chosen type. (It can't be blocked as long as defending player controls a land of that type.) Oracle:Enchant creature\nAs Traveler's Cloak enters the battlefield, choose a land type.\nWhen Traveler's Cloak enters the battlefield, draw a card.\nEnchanted creature has landwalk of the chosen type. (It can't be blocked as long as defending player controls a land of that type.) diff --git a/forge-gui/res/cardsfolder/u/undertow.txt b/forge-gui/res/cardsfolder/u/undertow.txt index 0e2a7e16acb..205a773ab3f 100644 --- a/forge-gui/res/cardsfolder/u/undertow.txt +++ b/forge-gui/res/cardsfolder/u/undertow.txt @@ -1,7 +1,7 @@ Name:Undertow ManaCost:2 U Types:Enchantment -S:Mode$ Continuous | Affected$ Creature.withIslandwalk | AddHiddenKeyword$ May be blocked as though it doesn't have Islandwalk. | Description$ Creatures with islandwalk can be blocked as though they didn't have islandwalk. +S:Mode$ IgnoreLandWalk | ValidKeyword$ Landwalk:Island | Description$ Creatures with islandwalk can be blocked as though they didn't have islandwalk. SVar:NonStackingEffect:True AI:RemoveDeck:Random Oracle:Creatures with islandwalk can be blocked as though they didn't have islandwalk. diff --git a/forge-gui/res/cardsfolder/u/unseen_walker.txt b/forge-gui/res/cardsfolder/u/unseen_walker.txt index ad49666250e..4a78904a866 100644 --- a/forge-gui/res/cardsfolder/u/unseen_walker.txt +++ b/forge-gui/res/cardsfolder/u/unseen_walker.txt @@ -2,6 +2,6 @@ Name:Unseen Walker ManaCost:1 G Types:Creature Dryad PT:1/1 -K:Forestwalk -A:AB$ Pump | Cost$ 1 G G | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Forestwalk | SpellDescription$ Target creature gains forestwalk until end of turn. +K:Landwalk:Forest +A:AB$ Pump | Cost$ 1 G G | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Landwalk:Forest | SpellDescription$ Target creature gains forestwalk until end of turn. Oracle:Forestwalk (This creature can't be blocked as long as defending player controls a Forest.)\n{1}{G}{G}: Target creature gains forestwalk until end of turn. diff --git a/forge-gui/res/cardsfolder/u/ur_drago.txt b/forge-gui/res/cardsfolder/u/ur_drago.txt index ddfa93faa24..84f0e47dc99 100644 --- a/forge-gui/res/cardsfolder/u/ur_drago.txt +++ b/forge-gui/res/cardsfolder/u/ur_drago.txt @@ -2,6 +2,6 @@ Name:Ur-Drago ManaCost:3 U U B B Types:Legendary Creature Elemental PT:4/4 -S:Mode$ Continuous | Affected$ Creature.withSwampwalk | AddHiddenKeyword$ May be blocked as though it doesn't have Swampwalk. | Description$ Creatures with swampwalk can be blocked as though they didn't have swampwalk. +S:Mode$ IgnoreLandWalk | ValidKeyword$ Landwalk:Swamp | Description$ Creatures with swampwalk can be blocked as though they didn't have swampwalk. K:First Strike Oracle:First strike\nCreatures with swampwalk can be blocked as though they didn't have swampwalk. diff --git a/forge-gui/res/cardsfolder/u/urborg.txt b/forge-gui/res/cardsfolder/u/urborg.txt index 368040a03a1..8791d9e2ce1 100644 --- a/forge-gui/res/cardsfolder/u/urborg.txt +++ b/forge-gui/res/cardsfolder/u/urborg.txt @@ -4,6 +4,6 @@ Types:Legendary Land A:AB$ Mana | Cost$ T | Produced$ B | Amount$ 1 | SpellDescription$ Add {B}. A:AB$ GenericChoice | Cost$ T | ValidTgts$ Creature | TgtPrompt$ Select target creature | Choices$ DebuffFS,DebuffSW | Defined$ You | SpellDescription$ Target creature loses first strike or swampwalk until end of turn. SVar:DebuffFS:DB$ Debuff | Keywords$ First Strike | Defined$ Targeted | SpellDescription$ Target creature loses first strike until end of turn. -SVar:DebuffSW:DB$ Debuff | Defined$ Targeted | Keywords$ Swampwalk | SpellDescription$ Target creature loses swampwalk until end of turn. +SVar:DebuffSW:DB$ Debuff | Defined$ Targeted | Keywords$ Landwalk:Swamp | SpellDescription$ Target creature loses swampwalk until end of turn. AI:RemoveDeck:All Oracle:{T}: Add {B}.\n{T}: Target creature loses first strike or swampwalk until end of turn. diff --git a/forge-gui/res/cardsfolder/v/vectis_gloves.txt b/forge-gui/res/cardsfolder/v/vectis_gloves.txt index acace17f1b2..d72720961c1 100644 --- a/forge-gui/res/cardsfolder/v/vectis_gloves.txt +++ b/forge-gui/res/cardsfolder/v/vectis_gloves.txt @@ -1,6 +1,6 @@ Name:Vectis Gloves ManaCost:2 Types:Artifact Equipment -S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 2 | AddKeyword$ Artifact landwalk | Description$ Equipped creature gets +2/+0 and has artifact landwalk. (It can't be blocked as long as defending player controls an artifact land.) +S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 2 | AddKeyword$ Landwalk:Land.Artifact:artifact land | Description$ Equipped creature gets +2/+0 and has artifact landwalk. (It can't be blocked as long as defending player controls an artifact land.) K:Equip:2 Oracle:Equipped creature gets +2/+0 and has artifact landwalk. (It can't be blocked as long as defending player controls an artifact land.)\nEquip {2} diff --git a/forge-gui/res/cardsfolder/v/veldrane_of_sengir.txt b/forge-gui/res/cardsfolder/v/veldrane_of_sengir.txt index 6c48eaea4e0..4bf4dad61ba 100644 --- a/forge-gui/res/cardsfolder/v/veldrane_of_sengir.txt +++ b/forge-gui/res/cardsfolder/v/veldrane_of_sengir.txt @@ -2,5 +2,5 @@ Name:Veldrane of Sengir ManaCost:5 B B Types:Legendary Creature Human Rogue PT:5/5 -A:AB$ Pump | Cost$ 1 B B | Defined$ Self | NumAtt$ -3 | KW$ Forestwalk | SpellDescription$ CARDNAME gets -3/-0 and gains forestwalk until end of turn. (It can't be blocked as long as defending player controls a Forest.) +A:AB$ Pump | Cost$ 1 B B | Defined$ Self | NumAtt$ -3 | KW$ Landwalk:Forest | SpellDescription$ CARDNAME gets -3/-0 and gains forestwalk until end of turn. (It can't be blocked as long as defending player controls a Forest.) Oracle:{1}{B}{B}: Veldrane of Sengir gets -3/-0 and gains forestwalk until end of turn. (It can't be blocked as long as defending player controls a Forest.) diff --git a/forge-gui/res/cardsfolder/v/vine_dryad.txt b/forge-gui/res/cardsfolder/v/vine_dryad.txt index 5df8a6f8f69..ff1249508b6 100644 --- a/forge-gui/res/cardsfolder/v/vine_dryad.txt +++ b/forge-gui/res/cardsfolder/v/vine_dryad.txt @@ -3,6 +3,6 @@ ManaCost:3 G Types:Creature Dryad PT:1/3 K:Flash -K:Forestwalk +K:Landwalk:Forest SVar:AltCost:Cost$ ExileFromHand<1/Card.Green+Other> | Description$ You may exile one green card from your hand rather than pay this spell's mana cost. Oracle:You may exile a green card from your hand rather than pay this spell's mana cost.\nFlash\nForestwalk (This creature can't be blocked as long as defending player controls a Forest.) diff --git a/forge-gui/res/cardsfolder/v/viscid_lemures.txt b/forge-gui/res/cardsfolder/v/viscid_lemures.txt index d2430fa1e72..3b2455a7690 100644 --- a/forge-gui/res/cardsfolder/v/viscid_lemures.txt +++ b/forge-gui/res/cardsfolder/v/viscid_lemures.txt @@ -2,5 +2,5 @@ Name:Viscid Lemures ManaCost:4 B Types:Creature Spirit PT:4/3 -A:AB$ Pump | Cost$ 0 | Defined$ Self | NumAtt$ -1 | KW$ Swampwalk | SpellDescription$ CARDNAME gets -1/-0 and gains swampwalk until end of turn. (It can't be blocked as long as defending player controls a Swamp.) +A:AB$ Pump | Cost$ 0 | Defined$ Self | NumAtt$ -1 | KW$ Landwalk:Swamp | SpellDescription$ CARDNAME gets -1/-0 and gains swampwalk until end of turn. (It can't be blocked as long as defending player controls a Swamp.) Oracle:{0}: Viscid Lemures gets -1/-0 and gains swampwalk until end of turn. (It can't be blocked as long as defending player controls a Swamp.) diff --git a/forge-gui/res/cardsfolder/v/volcanic_strength.txt b/forge-gui/res/cardsfolder/v/volcanic_strength.txt index a7547046331..e2583584485 100644 --- a/forge-gui/res/cardsfolder/v/volcanic_strength.txt +++ b/forge-gui/res/cardsfolder/v/volcanic_strength.txt @@ -3,5 +3,5 @@ ManaCost:1 R Types:Enchantment Aura K:Enchant creature A:SP$ Attach | Cost$ 1 R | ValidTgts$ Creature | AILogic$ Pump -S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 2 | AddToughness$ 2 | AddKeyword$ Mountainwalk | Description$ Enchanted creature gets +2/+2 and has mountainwalk. (It can't be blocked as long as defending player controls a Mountain.) +S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ 2 | AddToughness$ 2 | AddKeyword$ Landwalk:Mountain | Description$ Enchanted creature gets +2/+2 and has mountainwalk. (It can't be blocked as long as defending player controls a Mountain.) Oracle:Enchant creature\nEnchanted creature gets +2/+2 and has mountainwalk. (It can't be blocked as long as defending player controls a Mountain.) diff --git a/forge-gui/res/cardsfolder/v/vug_lizard.txt b/forge-gui/res/cardsfolder/v/vug_lizard.txt index 8c424de12f2..e4550584518 100644 --- a/forge-gui/res/cardsfolder/v/vug_lizard.txt +++ b/forge-gui/res/cardsfolder/v/vug_lizard.txt @@ -2,6 +2,6 @@ Name:Vug Lizard ManaCost:1 R R Types:Creature Lizard PT:3/4 -K:Mountainwalk +K:Landwalk:Mountain K:Echo:1 R R Oracle:Mountainwalk (This creature can't be blocked as long as defending player controls a Mountain.)\nEcho {1}{R}{R} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.) diff --git a/forge-gui/res/cardsfolder/w/war_barge.txt b/forge-gui/res/cardsfolder/w/war_barge.txt index d9e2d9a56f1..fbe0caf1bdf 100644 --- a/forge-gui/res/cardsfolder/w/war_barge.txt +++ b/forge-gui/res/cardsfolder/w/war_barge.txt @@ -1,7 +1,7 @@ Name:War Barge ManaCost:4 Types:Artifact -A:AB$ Pump | Cost$ 3 | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Islandwalk | SubAbility$ DelTrig | SpellDescription$ Target creature gains islandwalk until end of turn. When CARDNAME leaves the battlefield this turn, destroy that creature. A creature destroyed this way can't be regenerated. +A:AB$ Pump | Cost$ 3 | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Landwalk:Island | SubAbility$ DelTrig | SpellDescription$ Target creature gains islandwalk until end of turn. When CARDNAME leaves the battlefield this turn, destroy that creature. A creature destroyed this way can't be regenerated. SVar:DelTrig:DB$ DelayedTrigger | Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Battlefield | Destination$ Any | Execute$ TrigDestroy | ThisTurn$ True | RememberObjects$ Targeted | TriggerDescription$ When CARDNAME leaves the battlefield this turn, destroy that creature. A creature destroyed this way can't be regenerated. SVar:TrigDestroy:DB$ Destroy | Defined$ DelayTriggerRememberedLKI | NoRegen$ True DeckHas:Keyword$Islandwalk diff --git a/forge-gui/res/cardsfolder/w/warthog.txt b/forge-gui/res/cardsfolder/w/warthog.txt index 226f966050f..018c4571415 100644 --- a/forge-gui/res/cardsfolder/w/warthog.txt +++ b/forge-gui/res/cardsfolder/w/warthog.txt @@ -2,5 +2,5 @@ Name:Warthog ManaCost:1 G G Types:Creature Boar PT:3/2 -K:Swampwalk +K:Landwalk:Swamp Oracle:Swampwalk (This creature can't be blocked as long as defending player controls a Swamp.) diff --git a/forge-gui/res/cardsfolder/w/weatherseed_elf.txt b/forge-gui/res/cardsfolder/w/weatherseed_elf.txt index 86dd14a0f14..672b5b7495b 100644 --- a/forge-gui/res/cardsfolder/w/weatherseed_elf.txt +++ b/forge-gui/res/cardsfolder/w/weatherseed_elf.txt @@ -2,5 +2,5 @@ Name:Weatherseed Elf ManaCost:G Types:Creature Elf PT:1/1 -A:AB$ Pump | Cost$ T | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Forestwalk | SpellDescription$ Target creature gains forestwalk until end of turn. (It can't be blocked as long as defending player controls a Forest.) +A:AB$ Pump | Cost$ T | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Landwalk:Forest | SpellDescription$ Target creature gains forestwalk until end of turn. (It can't be blocked as long as defending player controls a Forest.) Oracle:{T}: Target creature gains forestwalk until end of turn. (It can't be blocked as long as defending player controls a Forest.) diff --git a/forge-gui/res/cardsfolder/w/whispering_shade.txt b/forge-gui/res/cardsfolder/w/whispering_shade.txt index 4753074fe5d..79582cb9e89 100644 --- a/forge-gui/res/cardsfolder/w/whispering_shade.txt +++ b/forge-gui/res/cardsfolder/w/whispering_shade.txt @@ -2,6 +2,6 @@ Name:Whispering Shade ManaCost:3 B Types:Creature Shade PT:1/1 -K:Swampwalk +K:Landwalk:Swamp A:AB$ Pump | Cost$ B | NumAtt$ +1 | NumDef$ +1 | SpellDescription$ CARDNAME gets +1/+1 until end of turn. Oracle:Swampwalk (This creature can't be blocked as long as defending player controls a Swamp.)\n{B}: Whispering Shade gets +1/+1 until end of turn. diff --git a/forge-gui/res/cardsfolder/w/wild_ox.txt b/forge-gui/res/cardsfolder/w/wild_ox.txt index d35fd8153dd..ab9e8b81470 100644 --- a/forge-gui/res/cardsfolder/w/wild_ox.txt +++ b/forge-gui/res/cardsfolder/w/wild_ox.txt @@ -2,5 +2,5 @@ Name:Wild Ox ManaCost:3 G Types:Creature Ox PT:3/3 -K:Swampwalk +K:Landwalk:Swamp Oracle:Swampwalk (This creature can't be blocked as long as defending player controls a Swamp.) diff --git a/forge-gui/res/cardsfolder/w/willow_dryad.txt b/forge-gui/res/cardsfolder/w/willow_dryad.txt index f3b34e3edf3..a1d36c4cb16 100644 --- a/forge-gui/res/cardsfolder/w/willow_dryad.txt +++ b/forge-gui/res/cardsfolder/w/willow_dryad.txt @@ -2,5 +2,5 @@ Name:Willow Dryad ManaCost:G Types:Creature Dryad PT:1/1 -K:Forestwalk +K:Landwalk:Forest Oracle:Forestwalk (This creature can't be blocked as long as defending player controls a Forest.) diff --git a/forge-gui/res/cardsfolder/w/witch_engine.txt b/forge-gui/res/cardsfolder/w/witch_engine.txt index 8338ea32446..ba69308e966 100644 --- a/forge-gui/res/cardsfolder/w/witch_engine.txt +++ b/forge-gui/res/cardsfolder/w/witch_engine.txt @@ -2,7 +2,7 @@ Name:Witch Engine ManaCost:5 B Types:Creature Horror PT:4/4 -K:Swampwalk +K:Landwalk:Swamp A:AB$ Mana | Cost$ T | Produced$ B | Amount$ 4 | SubAbility$ ChangeControl | SpellDescription$ Add {B}{B}{B}{B}. SVar:ChangeControl:DB$ GainControl | Defined$ Self | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | SubAbility$ RemCombat | SpellDescription$ Target opponent gains control of CARDNAME. SVar:RemCombat:DB$ RemoveFromCombat | Defined$ Self diff --git a/forge-gui/res/cardsfolder/w/woodlot_crawler.txt b/forge-gui/res/cardsfolder/w/woodlot_crawler.txt index e73ce39485f..18d611eb917 100644 --- a/forge-gui/res/cardsfolder/w/woodlot_crawler.txt +++ b/forge-gui/res/cardsfolder/w/woodlot_crawler.txt @@ -2,6 +2,6 @@ Name:Woodlot Crawler ManaCost:U B Types:Creature Insect PT:2/1 -K:Forestwalk +K:Landwalk:Forest K:Protection from green Oracle:Forestwalk (This creature can't be blocked as long as defending player controls a Forest.)\nProtection from green diff --git a/forge-gui/res/cardsfolder/w/wormwood_dryad.txt b/forge-gui/res/cardsfolder/w/wormwood_dryad.txt index 5bbe624231c..1397affdb8c 100644 --- a/forge-gui/res/cardsfolder/w/wormwood_dryad.txt +++ b/forge-gui/res/cardsfolder/w/wormwood_dryad.txt @@ -2,7 +2,7 @@ Name:Wormwood Dryad ManaCost:2 G Types:Creature Dryad PT:3/1 -A:AB$ Pump | Cost$ G | KW$ Forestwalk | Defined$ Self | SubAbility$ DBDealDamage | SpellDescription$ CARDNAME gains forestwalk until end of turn and deals 1 damage to you. (It can't be blocked as long as defending player controls a Forest.) -A:AB$ Pump | Cost$ B | KW$ Swampwalk | Defined$ Self | SubAbility$ DBDealDamage | SpellDescription$ CARDNAME gains swampwalk until end of turn and deals 1 damage to you. (It can't be blocked as long as defending player controls a Swamp.) +A:AB$ Pump | Cost$ G | KW$ Landwalk:Forest | Defined$ Self | SubAbility$ DBDealDamage | SpellDescription$ CARDNAME gains forestwalk until end of turn and deals 1 damage to you. (It can't be blocked as long as defending player controls a Forest.) +A:AB$ Pump | Cost$ B | KW$ Landwalk:Swamp | Defined$ Self | SubAbility$ DBDealDamage | SpellDescription$ CARDNAME gains swampwalk until end of turn and deals 1 damage to you. (It can't be blocked as long as defending player controls a Swamp.) SVar:DBDealDamage:DB$ DealDamage | Defined$ You | NumDmg$ 1 Oracle:{G}: Wormwood Dryad gains forestwalk until end of turn and deals 1 damage to you. (It can't be blocked as long as defending player controls a Forest.)\n{B}: Wormwood Dryad gains swampwalk until end of turn and deals 1 damage to you. (It can't be blocked as long as defending player controls a Swamp.) diff --git a/forge-gui/res/cardsfolder/w/wormwood_treefolk.txt b/forge-gui/res/cardsfolder/w/wormwood_treefolk.txt index 490f685b912..cdf47e71e4e 100644 --- a/forge-gui/res/cardsfolder/w/wormwood_treefolk.txt +++ b/forge-gui/res/cardsfolder/w/wormwood_treefolk.txt @@ -2,8 +2,8 @@ Name:Wormwood Treefolk ManaCost:3 G G Types:Creature Treefolk PT:4/4 -A:AB$ Pump | Cost$ G G | KW$ Forestwalk | Defined$ Self | SubAbility$ DBDealDamage | SpellDescription$ CARDNAME gains forestwalk until end of turn and deals 2 damage to you. (It can't be blocked as long as defending player controls a Forest.) -A:AB$ Pump | Cost$ B B | KW$ Swampwalk | Defined$ Self | SubAbility$ DBDealDamage | SpellDescription$ CARDNAME gains swampwalk until end of turn and deals 2 damage to you. (It can't be blocked as long as defending player controls a Swamp.) +A:AB$ Pump | Cost$ G G | KW$ Landwalk:Forest | Defined$ Self | SubAbility$ DBDealDamage | SpellDescription$ CARDNAME gains forestwalk until end of turn and deals 2 damage to you. (It can't be blocked as long as defending player controls a Forest.) +A:AB$ Pump | Cost$ B B | KW$ Landwalk:Swamp | Defined$ Self | SubAbility$ DBDealDamage | SpellDescription$ CARDNAME gains swampwalk until end of turn and deals 2 damage to you. (It can't be blocked as long as defending player controls a Swamp.) SVar:DBDealDamage:DB$ DealDamage | Defined$ You | NumDmg$ 2 DeckNeeds:Color$Black DeckHas:Keyword$Swampwalk|Forestwalk diff --git a/forge-gui/res/cardsfolder/w/wrexial_the_risen_deep.txt b/forge-gui/res/cardsfolder/w/wrexial_the_risen_deep.txt index f50e745615b..3b3e808fc4d 100644 --- a/forge-gui/res/cardsfolder/w/wrexial_the_risen_deep.txt +++ b/forge-gui/res/cardsfolder/w/wrexial_the_risen_deep.txt @@ -2,8 +2,8 @@ Name:Wrexial, the Risen Deep ManaCost:3 U U B Types:Legendary Creature Kraken PT:5/8 -K:Islandwalk -K:Swampwalk +K:Landwalk:Island +K:Landwalk:Swamp T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigPlay | TriggerZones$ Battlefield | OptionalDecider$ You | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, you may cast target instant or sorcery card from that player's graveyard without paying its mana cost. If that spell would be put into a graveyard this turn, exile it instead. SVar:TrigPlay:DB$ Play | TgtZone$ Graveyard | ValidTgts$ Instant.OwnedBy Player.TriggeredTarget,Sorcery.OwnedBy Player.TriggeredTarget | TgtPrompt$ Choose target instant or sorcery card from an opponent's graveyard | WithoutManaCost$ True | ValidSA$ Spell | Optional$ True | ReplaceGraveyard$ Exile | AILogic$ ReplaySpell Oracle:Islandwalk, swampwalk (This creature can't be blocked as long as defending player controls an Island or a Swamp.)\nWhenever Wrexial, the Risen Deep deals combat damage to a player, you may cast target instant or sorcery card from that player's graveyard without paying its mana cost. If that spell would be put into a graveyard this turn, exile it instead. diff --git a/forge-gui/res/cardsfolder/y/yavimaya_dryad.txt b/forge-gui/res/cardsfolder/y/yavimaya_dryad.txt index 2aae1fbdcc5..062bbd5777e 100644 --- a/forge-gui/res/cardsfolder/y/yavimaya_dryad.txt +++ b/forge-gui/res/cardsfolder/y/yavimaya_dryad.txt @@ -2,7 +2,7 @@ Name:Yavimaya Dryad ManaCost:1 G G Types:Creature Dryad PT:2/1 -K:Forestwalk +K:Landwalk:Forest T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigRamp | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for a Forest card, put it onto the battlefield tapped under target player's control, then shuffle. SVar:TrigRamp:DB$ Pump | ValidTgts$ Player | TgtPrompt$ Select target player to gain control of forest | SubAbility$ DBChangeZone SVar:DBChangeZone:DB$ ChangeZone | Origin$ Library | Destination$ Battlefield | ChangeType$ Forest | ChangeNum$ 1 | GainControl$ Targeted | Tapped$ True | ShuffleNonMandatory$ True diff --git a/forge-gui/res/cardsfolder/z/zendikar_farguide.txt b/forge-gui/res/cardsfolder/z/zendikar_farguide.txt index 911e81c7bec..ad0299ebe09 100644 --- a/forge-gui/res/cardsfolder/z/zendikar_farguide.txt +++ b/forge-gui/res/cardsfolder/z/zendikar_farguide.txt @@ -2,5 +2,5 @@ Name:Zendikar Farguide ManaCost:4 G Types:Creature Elemental PT:3/3 -K:Forestwalk +K:Landwalk:Forest Oracle:Forestwalk (This creature can't be blocked as long as defending player controls a Forest.) diff --git a/forge-gui/res/cardsfolder/z/zodiac_dog.txt b/forge-gui/res/cardsfolder/z/zodiac_dog.txt index 4ee053655ee..15fa4ee00ca 100644 --- a/forge-gui/res/cardsfolder/z/zodiac_dog.txt +++ b/forge-gui/res/cardsfolder/z/zodiac_dog.txt @@ -2,5 +2,5 @@ Name:Zodiac Dog ManaCost:2 R Types:Creature Dog PT:2/2 -K:Mountainwalk +K:Landwalk:Mountain Oracle:Mountainwalk (This creature can't be blocked as long as defending player controls a Mountain.) diff --git a/forge-gui/res/cardsfolder/z/zodiac_goat.txt b/forge-gui/res/cardsfolder/z/zodiac_goat.txt index 6896e79e76b..aa733bf7c64 100644 --- a/forge-gui/res/cardsfolder/z/zodiac_goat.txt +++ b/forge-gui/res/cardsfolder/z/zodiac_goat.txt @@ -2,5 +2,5 @@ Name:Zodiac Goat ManaCost:R Types:Creature Goat PT:1/1 -K:Mountainwalk +K:Landwalk:Mountain Oracle:Mountainwalk (This creature can't be blocked as long as defending player controls a Mountain.) diff --git a/forge-gui/res/cardsfolder/z/zodiac_horse.txt b/forge-gui/res/cardsfolder/z/zodiac_horse.txt index 1361063ebd3..aa5faed328e 100644 --- a/forge-gui/res/cardsfolder/z/zodiac_horse.txt +++ b/forge-gui/res/cardsfolder/z/zodiac_horse.txt @@ -2,5 +2,5 @@ Name:Zodiac Horse ManaCost:3 G Types:Creature Horse PT:3/3 -K:Islandwalk +K:Landwalk:Island Oracle:Islandwalk (This creature can't be blocked as long as defending player controls an Island.) diff --git a/forge-gui/res/cardsfolder/z/zodiac_monkey.txt b/forge-gui/res/cardsfolder/z/zodiac_monkey.txt index 411ec1bbf37..10a293c3058 100644 --- a/forge-gui/res/cardsfolder/z/zodiac_monkey.txt +++ b/forge-gui/res/cardsfolder/z/zodiac_monkey.txt @@ -2,5 +2,5 @@ Name:Zodiac Monkey ManaCost:1 G Types:Creature Monkey PT:2/1 -K:Forestwalk +K:Landwalk:Forest Oracle:Forestwalk (This creature can't be blocked as long as defending player controls a Forest.) diff --git a/forge-gui/res/cardsfolder/z/zodiac_ox.txt b/forge-gui/res/cardsfolder/z/zodiac_ox.txt index 6191e792c66..109c26e53e6 100644 --- a/forge-gui/res/cardsfolder/z/zodiac_ox.txt +++ b/forge-gui/res/cardsfolder/z/zodiac_ox.txt @@ -2,5 +2,5 @@ Name:Zodiac Ox ManaCost:3 G Types:Creature Ox PT:3/3 -K:Swampwalk +K:Landwalk:Swamp Oracle:Swampwalk (This creature can't be blocked as long as defending player controls a Swamp.) diff --git a/forge-gui/res/cardsfolder/z/zodiac_pig.txt b/forge-gui/res/cardsfolder/z/zodiac_pig.txt index 95bdb5c3d77..d303f0360e5 100644 --- a/forge-gui/res/cardsfolder/z/zodiac_pig.txt +++ b/forge-gui/res/cardsfolder/z/zodiac_pig.txt @@ -2,5 +2,5 @@ Name:Zodiac Pig ManaCost:3 B Types:Creature Boar PT:3/3 -K:Swampwalk +K:Landwalk:Swamp Oracle:Swampwalk (This creature can't be blocked as long as defending player controls a Swamp.) diff --git a/forge-gui/res/cardsfolder/z/zodiac_rabbit.txt b/forge-gui/res/cardsfolder/z/zodiac_rabbit.txt index e32c18ca74f..248c767ec05 100644 --- a/forge-gui/res/cardsfolder/z/zodiac_rabbit.txt +++ b/forge-gui/res/cardsfolder/z/zodiac_rabbit.txt @@ -2,5 +2,5 @@ Name:Zodiac Rabbit ManaCost:G Types:Creature Rabbit PT:1/1 -K:Forestwalk +K:Landwalk:Forest Oracle:Forestwalk (This creature can't be blocked as long as defending player controls a Forest.) diff --git a/forge-gui/res/cardsfolder/z/zodiac_rat.txt b/forge-gui/res/cardsfolder/z/zodiac_rat.txt index 72b639539af..38f691e93a7 100644 --- a/forge-gui/res/cardsfolder/z/zodiac_rat.txt +++ b/forge-gui/res/cardsfolder/z/zodiac_rat.txt @@ -2,5 +2,5 @@ Name:Zodiac Rat ManaCost:B Types:Creature Rat PT:1/1 -K:Swampwalk +K:Landwalk:Swamp Oracle:Swampwalk (This creature can't be blocked as long as defending player controls a Swamp.) diff --git a/forge-gui/res/cardsfolder/z/zodiac_rooster.txt b/forge-gui/res/cardsfolder/z/zodiac_rooster.txt index f1bd921792a..d36671df03d 100644 --- a/forge-gui/res/cardsfolder/z/zodiac_rooster.txt +++ b/forge-gui/res/cardsfolder/z/zodiac_rooster.txt @@ -2,5 +2,5 @@ Name:Zodiac Rooster ManaCost:1 G Types:Creature Bird PT:2/1 -K:Plainswalk +K:Landwalk:Plains Oracle:Plainswalk (This creature can't be blocked as long as defending player controls a Plains.) diff --git a/forge-gui/res/cardsfolder/z/zodiac_snake.txt b/forge-gui/res/cardsfolder/z/zodiac_snake.txt index d8d59f96d3d..4a68c78ddbf 100644 --- a/forge-gui/res/cardsfolder/z/zodiac_snake.txt +++ b/forge-gui/res/cardsfolder/z/zodiac_snake.txt @@ -2,5 +2,5 @@ Name:Zodiac Snake ManaCost:2 B Types:Creature Snake PT:2/2 -K:Swampwalk +K:Landwalk:Swamp Oracle:Swampwalk (This creature can't be blocked as long as defending player controls a Swamp.) diff --git a/forge-gui/res/cardsfolder/z/zodiac_tiger.txt b/forge-gui/res/cardsfolder/z/zodiac_tiger.txt index 03743ab8cbd..29c82b46562 100644 --- a/forge-gui/res/cardsfolder/z/zodiac_tiger.txt +++ b/forge-gui/res/cardsfolder/z/zodiac_tiger.txt @@ -2,5 +2,5 @@ Name:Zodiac Tiger ManaCost:2 G G Types:Creature Cat PT:3/4 -K:Forestwalk +K:Landwalk:Forest Oracle:Forestwalk (This creature can't be blocked as long as defending player controls a Forest.) diff --git a/forge-gui/res/cardsfolder/z/zombie_master.txt b/forge-gui/res/cardsfolder/z/zombie_master.txt index 447571aa7aa..c161b7897cf 100644 --- a/forge-gui/res/cardsfolder/z/zombie_master.txt +++ b/forge-gui/res/cardsfolder/z/zombie_master.txt @@ -2,7 +2,7 @@ Name:Zombie Master ManaCost:1 B B Types:Creature Zombie PT:2/3 -S:Mode$ Continuous | Affected$ Creature.Zombie+Other | AddKeyword$ Swampwalk | Description$ Other Zombie creatures have swampwalk. (They can't be blocked as long as defending player controls a Swamp.) +S:Mode$ Continuous | Affected$ Creature.Zombie+Other | AddKeyword$ Landwalk:Swamp | Description$ Other Zombie creatures have swampwalk. (They can't be blocked as long as defending player controls a Swamp.) S:Mode$ Continuous | Affected$ Card.Zombie+Other | AddAbility$ Regenerate | Description$ Other Zombies have "{B}: Regenerate this permanent." SVar:Regenerate:AB$ Regenerate | Cost$ B | SpellDescription$ Regenerate this permanent SVar:PlayMain1:TRUE diff --git a/forge-gui/res/cardsfolder/z/zombie_musher.txt b/forge-gui/res/cardsfolder/z/zombie_musher.txt index eadb80e38f3..8b94ff1421c 100644 --- a/forge-gui/res/cardsfolder/z/zombie_musher.txt +++ b/forge-gui/res/cardsfolder/z/zombie_musher.txt @@ -2,7 +2,8 @@ Name:Zombie Musher ManaCost:3 B Types:Snow Creature Zombie PT:2/3 -K:Snow landwalk + +K:Landwalk:Land.Snow:snow Land A:AB$ Regenerate | Cost$ S | SpellDescription$ Regenerate CARDNAME. # AI can now use snow mana to pay for activated abilities. AI:RemoveDeck:Random diff --git a/forge-gui/res/cardsfolder/z/zombie_trailblazer.txt b/forge-gui/res/cardsfolder/z/zombie_trailblazer.txt index 5b85b3bcb18..c80a410af9a 100644 --- a/forge-gui/res/cardsfolder/z/zombie_trailblazer.txt +++ b/forge-gui/res/cardsfolder/z/zombie_trailblazer.txt @@ -3,6 +3,6 @@ ManaCost:B B B Types:Creature Zombie Scout PT:2/2 A:AB$ Animate | Cost$ tapXType<1/Zombie> | ValidTgts$ Land | TgtPrompt$ Select target land | Types$ Swamp | RemoveLandTypes$ True | SpellDescription$ Target land becomes a Swamp until end of turn. -A:AB$ Pump | Cost$ tapXType<1/Zombie> | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Swampwalk | SpellDescription$ Target creature gains swampwalk until end of turn. +A:AB$ Pump | Cost$ tapXType<1/Zombie> | ValidTgts$ Creature | TgtPrompt$ Select target creature | KW$ Landwalk:Swamp | SpellDescription$ Target creature gains swampwalk until end of turn. AI:RemoveDeck:All Oracle:Tap an untapped Zombie you control: Target land becomes a Swamp until end of turn.\nTap an untapped Zombie you control: Target creature gains swampwalk until end of turn. (It can't be blocked as long as defending player controls a Swamp.) diff --git a/forge-gui/res/tokenscripts/g_2_2_alien_salamander_islandwalk.txt b/forge-gui/res/tokenscripts/g_2_2_alien_salamander_islandwalk.txt index 8dfae3847e1..f736128c909 100644 --- a/forge-gui/res/tokenscripts/g_2_2_alien_salamander_islandwalk.txt +++ b/forge-gui/res/tokenscripts/g_2_2_alien_salamander_islandwalk.txt @@ -3,5 +3,5 @@ ManaCost:no cost Types:Creature Alien Salamander Colors:green PT:2/2 -K:Islandwalk +K:Landwalk:Island Oracle:Islandwalk diff --git a/forge-gui/res/tokenscripts/g_2_2_cat_warrior_forestwalk.txt b/forge-gui/res/tokenscripts/g_2_2_cat_warrior_forestwalk.txt index 9bdf73f4b49..4b99c17db0e 100644 --- a/forge-gui/res/tokenscripts/g_2_2_cat_warrior_forestwalk.txt +++ b/forge-gui/res/tokenscripts/g_2_2_cat_warrior_forestwalk.txt @@ -3,5 +3,5 @@ ManaCost:no cost Types:Creature Cat Warrior Colors:green PT:2/2 -K:Forestwalk +K:Landwalk:Forest Oracle:Forestwalk diff --git a/forge-gui/res/tokenscripts/g_2_3_antelope_forestwalk.txt b/forge-gui/res/tokenscripts/g_2_3_antelope_forestwalk.txt index ffba915914b..e18e8e861fb 100644 --- a/forge-gui/res/tokenscripts/g_2_3_antelope_forestwalk.txt +++ b/forge-gui/res/tokenscripts/g_2_3_antelope_forestwalk.txt @@ -3,5 +3,5 @@ ManaCost:no cost Types:Creature Antelope Colors:green PT:2/3 -K:Forestwalk +K:Landwalk:Forest Oracle:Forestwalk diff --git a/forge-gui/res/tokenscripts/r_1_1_goblin_scout_mountainwalk.txt b/forge-gui/res/tokenscripts/r_1_1_goblin_scout_mountainwalk.txt index f541802bbe0..40b22ee1dd9 100644 --- a/forge-gui/res/tokenscripts/r_1_1_goblin_scout_mountainwalk.txt +++ b/forge-gui/res/tokenscripts/r_1_1_goblin_scout_mountainwalk.txt @@ -3,5 +3,5 @@ ManaCost:no cost Types:Creature Goblin Scout Colors:red PT:1/1 -K:Mountainwalk +K:Landwalk:Mountain Oracle:Mountainwalk diff --git a/forge-gui/res/tokenscripts/spawn_of_azar.txt b/forge-gui/res/tokenscripts/spawn_of_azar.txt index 67892705eb6..61c9847e52f 100644 --- a/forge-gui/res/tokenscripts/spawn_of_azar.txt +++ b/forge-gui/res/tokenscripts/spawn_of_azar.txt @@ -3,5 +3,5 @@ ManaCost:no cost Types:Creature Spawn Colors:black PT:*/* -K:Swampwalk +K:Landwalk:Swamp Oracle:Swampwalk diff --git a/forge-gui/res/tokenscripts/u_1_1_squid_islandwalk.txt b/forge-gui/res/tokenscripts/u_1_1_squid_islandwalk.txt index 2a04753219e..a117501c76b 100644 --- a/forge-gui/res/tokenscripts/u_1_1_squid_islandwalk.txt +++ b/forge-gui/res/tokenscripts/u_1_1_squid_islandwalk.txt @@ -3,5 +3,5 @@ ManaCost:no cost Types:Creature Squid Colors:blue PT:1/1 -K:Islandwalk +K:Landwalk:Island Oracle:Islandwalk (This creature can't be blocked as long as defending player controls an Island.)