diff --git a/data/magic.mse-game/game b/data/magic.mse-game/game index 52f917c5..af45c611 100644 --- a/data/magic.mse-game/game +++ b/data/magic.mse-game/game @@ -178,7 +178,6 @@ init script: # Utilities for keywords has_cc := { card.casting_cost != "" } has_pt := { card.pt != "" } - hasno_pt := { card.pt == "" } # Filters for the text box # context in which mana symbols are found @@ -1194,6 +1193,14 @@ keyword parameter type: keyword parameter type: name: name match: [^(.,\n—-]+ + refer script: + name: normal + description: No changes made. + script: \{{input}\} + refer script: + name: singular + description: Removes plurality from words. + script: \{english_singular({input})\} keyword parameter type: name: prefix description: Prefix for things like "walk" @@ -1209,31 +1216,11 @@ keyword: match: Flying mode: core reminder: This creature can’t be blocked except by creatures with flying and/or reach. -keyword: - keyword: Haste - match: Haste - mode: core - reminder: This creature can attack and tap the turn it comes under your control. -keyword: - keyword: Fear - match: Fear - mode: core - reminder: This creature can’t be blocked except by artifact creatures and/or black creatures. keyword: keyword: First strike match: First strike mode: core reminder: This creature deals combat damage before creatures without first strike. -keyword: - keyword: Enchant - match: Enchant name - mode: core - reminder: Target a {param1} as you play this. This card comes into play attached to that {param1}. -keyword: - keyword: Cycling - match: Cycling cost - mode: expert - reminder: {param1}, Discard this card: Draw a card. keyword: keyword: Trample match: Trample @@ -1244,6 +1231,16 @@ keyword: match: Banding mode: old reminder: When declaring attackers or blockers this creature may group with others creatures with banding and one creature without banding. When damage is dealt, you decide where damage is dealt. +keyword: + keyword: Landwalk + match: prefixwalk + mode: core + reminder: This creature is unblockable as long as defending player controls a {param1}. +keyword: + keyword: Protection from + match: Protection from name + mode: core + reminder: This creature can’t be blocked, targeted, dealt damage, or enchanted, or equipped by anything {english_singular(param1)}. keyword: keyword: Bands with other match: Bands with other name @@ -1254,26 +1251,11 @@ keyword: match: Rampage number mode: old reminder: Whenever this creature becomes blocked, it gets +{param1}/+{param1} until end of turn for each creature blocking it beyond the first. -keyword: - keyword: Vigilance - match: Vigilance - mode: core - reminder: Attacking doesn’t cause this creature to tap. -keyword: - keyword: Defender - match: Defender - mode: core - reminder: This creature can’t attack. keyword: keyword: Cumulative upkeep match: Cumulative upkeep cost mode: old reminder: At the beginning of your upkeep, put an age counter on this permanent, then sacrifice it unless you {for_mana_costs(add:"pay ",param1)} for each age counter on it. -keyword: - keyword: Horsemanship - match: Horsemanship - mode: old - reminder: This creature can’t be blocked except by creatures with horsemanship. keyword: keyword: Phasing match: Phasing @@ -1289,6 +1271,11 @@ keyword: match: Shadow mode: core reminder: This creature can block or be blocked by only creatures with shadow. +keyword: + keyword: Denimwalk + match: Denimwalk + mode: old + reminder: If defending player is wearing any clothing made of denim, this creature is unblockable. keyword: keyword: Buyback match: Buyback cost @@ -1300,10 +1287,20 @@ keyword: mode: expert reminder: 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. keyword: - keyword: Cardcycling - match: prefixcycling cost + keyword: Cycling + match: Cycling cost mode: expert - reminder: {param2}, Discard this card: Search your library for a {param1} card, reveal it, and put it into your hand. Then shuffle your library. + reminder: {param1}, Discard this card: Draw a card. +keyword: + keyword: Haste + match: Haste + mode: core + reminder: This creature can attack and tap the turn it comes under your control. +keyword: + keyword: Horsemanship + match: Horsemanship + mode: old + reminder: This creature can’t be blocked except by creatures with horsemanship. keyword: keyword: Fading match: Fading number @@ -1319,21 +1316,30 @@ keyword: match: Kicker cost mode: expert reminder: You may {for_mana_costs(add:"pay an additional ",param1)} as you play this spell. -keyword: - keyword: Madness - match: Madness cost - mode: expert - reminder: You may play this card for its madness cost at the time you discard it. keyword: keyword: Flashback match: Flashback cost mode: expert reminder: You may play this card from your graveyard for its flashback cost. Then remove it from the game. +keyword: + keyword: Threshold + match: Threshold + mode: pseudo +keyword: + keyword: Madness + match: Madness cost + mode: expert + reminder: You may play this card for its madness cost at the time you discard it. keyword: keyword: Morph match: Morph cost mode: expert reminder: You may play this face down as a 2/2 creature for 3. Turn it face up any time for its morph cost. +keyword: + keyword: Fear + match: Fear + mode: core + reminder: This creature can’t be blocked except by artifact creatures and/or black creatures. keyword: keyword: Amplify match: Amplify number @@ -1349,6 +1355,11 @@ keyword: match: Provoke mode: expert reminder: When this attacks, you may have target creature defending player controls untap and block it if able. +keyword: + keyword: Typecycling + match: prefixcycling cost + mode: expert + reminder: {param2}, Discard this card: Search your library for a {param1} card, reveal it, and put it into your hand. Then shuffle your library. keyword: keyword: Storm match: Storm @@ -1389,36 +1400,67 @@ keyword: match: Sunburst mode: expert reminder: This comes into play with a {if has_pt() then "+1/+1" else "charge"} counter on it for each color of mana used to pay its cost. +keyword: + keyword: Gotcha + match: Gotcha + mode: pseudo keyword: keyword: Splice match: Splice onto name cost mode: expert reminder: As you play a {param1} spell, you may reveal this card from your hand and pay its splice cost. If you do, add this card’s effects to that spell. -keyword: - keyword: Offering - match: prefix offering - mode: expert - reminder: You may play this card any time you could play an instant by sacrificing a {param1} and paying the difference in mana costs between this and the sacrificed {param1}. Mana cost includes color. keyword: keyword: Bushido match: Bushido number mode: expert reminder: When this blocks or becomes blocked, it gets +{param1}/+{param1} until end of turn. -keyword: - keyword: Ninjutsu - match: Ninjutsu cost - mode: expert - reminder: {param1}, Return an unblocked attacker you control to hand: Put this card into play from your hand tapped and attacking. keyword: keyword: Soulshift match: Soulshift number mode: expert reminder: When this is put into a graveyard from play, you may return target Spirit card with converted mana cost {param1} or less from you graveyard to your hand. +keyword: + keyword: Enchant + match: Enchant name + mode: core + reminder: Target a {param1} as you play this. This card comes into play attached to that {param1}. +keyword: + keyword: Vigilance + match: Vigilance + mode: core + reminder: Attacking doesn’t cause this creature to tap. +keyword: + keyword: Defender + match: Defender + mode: core + reminder: This creature can’t attack. +keyword: + keyword: Offering + match: prefix offering + mode: expert + reminder: You may play this card any time you could play an instant by sacrificing a {param1} and paying the difference in mana costs between this and the sacrificed {param1}. Mana cost includes color. +keyword: + keyword: Ninjutsu + match: Ninjutsu cost + mode: expert + reminder: {param1}, Return an unblocked attacker you control to hand: Put this card into play from your hand tapped and attacking. keyword: keyword: Epic match: Epic mode: expert reminder: For the rest of the game, you can’t play spells. At the beginning of each of your upkeeps, copy this spell except for its epic ability. If the spell has any targets, you may choose new targets for the copy. +keyword: + keyword: Channel + match: Channel + mode: pseudo +keyword: + keyword: Sweep + match: Sweep + mode: pseudo +keyword: + keyword: Radiance + match: Radiance + mode: pseudo keyword: keyword: Convoke match: Convoke @@ -1429,6 +1471,11 @@ keyword: match: Transmute cost mode: expert reminder: {param1}, Discard this card: Search your library for a card with the same converted mana cost as this card, reveal it, and put it into your hand. Then shuffle your library. Play only as a sorcery. +keyword: + keyword: Dredge + match: Dredge number + mode: expert + reminder: As long as you have at least {english_number(param1)} card(s) in your library, if you would draw a card, you may instead put exactly {english_number(param1)} card(s) from the top of your library into your graveyard and return this card from your graveyard to your hand. keyword: keyword: Haunt match: Haunt @@ -1444,26 +1491,6 @@ keyword: match: Replicate cost mode: expert reminder: When you play this spell, copy it for each time you paid its replicate cost. You may choose new targets for the copies. -keyword: - keyword: Denimwalk - match: Denimwalk - mode: old - reminder: If defending player is wearing any clothing made of denim, this creature is unblockable. -keyword: - keyword: Landwalk - match: prefixwalk - mode: core - reminder: This creature is unblockable as long as defending player controls a {param1}. -keyword: - keyword: Protection from - match: Protection from name - mode: core - reminder: This creature can’t be blocked, targeted, dealt damage, or enchanted, or equipped by anything {english_singular(param1)}. -keyword: - keyword: Dredge - match: Dredge number - mode: expert - reminder: As long as you have at least {english_number(param1)} card(s) in your library, if you would draw a card, you may instead put exactly {english_number(param1)} card(s) from the top of your library into your graveyard and return this card from your graveyard to your hand. keyword: keyword: Graft match: Graft number @@ -1474,6 +1501,10 @@ keyword: match: Forecast cost, Reveal name from your hand: action mode: expert reminder: Play this ability only during your upkeep and only once each turn. +keyword: + keyword: Hellbent + match: Hellbent + mode: pseudo keyword: keyword: Recover match: Recover cost @@ -1504,6 +1535,10 @@ keyword: match: Vanishing number mode: expert reminder: This permanent comes into play with {english_number_a(param1)} time counter(s) on it. At the beginning of your upkeep, remove a time counter from it. When you remove the last, sacrifice it. +keyword: + keyword: Grandeur + match: Grandeur + mode: pseudo keyword: keyword: Deathtouch match: Deathtouch @@ -1564,34 +1599,6 @@ keyword: match: Shroud mode: expert reminder: This permanent can't be the target of spells or abilities. -keyword: - keyword: Hellbent - match: Hellbent - mode: pseudo -keyword: - keyword: Channel - match: Channel - mode: pseudo -keyword: - keyword: Sweep - match: Sweep - mode: pseudo -keyword: - keyword: Threshold - match: Threshold - mode: pseudo -keyword: - keyword: Radiance - match: Radiance - mode: pseudo -keyword: - keyword: Gotcha - match: Gotcha - mode: pseudo -keyword: - keyword: Grandeur - match: Grandeur - mode: pseudo keyword: keyword: Fortify match: Fortify cost diff --git a/data/vanguard.mse-game/game b/data/vanguard.mse-game/game index 3183e70c..b4419fe1 100644 --- a/data/vanguard.mse-game/game +++ b/data/vanguard.mse-game/game @@ -68,15 +68,21 @@ init script: ) + { tap_filter() + mana_filter() } # replaces — correctly - alternative_cost := replace_rule(match:"—|\\.", replace:"") + replace_rule(match:"[A-Z]", in_context:"", replace: { to_lower() }) - mana_cost := replace_rule(match:" ", replace: "") add := "" # default is nothing - format_cost := { - if substring(begin: 0, end: 13)=="—" then - alternative_cost() - else add + mana_cost() - }; - format_cost_start := replace_rule(match:"^()?[ ]?-", replace:"\\1—") + for_mana_costs := format_cost := { + if input.separator_before == "—" then + "{input.param}" + else + "{add}{input.param}" + } + alternative_cost := replace_rule(match:"^[A-Z]", replace: { to_lower() }) + format_alt_cost := { + if input.separator_before == "—" then + alternative_cost(input.param) + else + input.param + } + long_dash := replace_rule(match:"-", replace:"—") # Utilities for keywords has_cc := { card.casting_cost != "" } has_pt := { card.pt != "" } @@ -153,18 +159,6 @@ init script: replace_rule( match: "AE", replace: "Æ" ) + - # step 6c : "s" remover for keywords - replace_rule( - match: "s" - replace: "" ) + - # step 6e : p/t detector, needed for suspend - tag_contents_rule( - tag: "" - contents: { if card.pt == "" then "" else contents } ) + - # step 6f : casting cost detector, needed for suspend - tag_contents_rule(## by somebloke - tag: "" - contents: { if card.casting_cost == "" then "" else contents } ) + # step 7 : italic reminder text replace_rule( match: "[(][^)\n]*[)]?", @@ -371,6 +365,7 @@ card field: has keywords: true +keyword match script: name_filter(value) #keyword preview: {keyword} ({reminder}) keyword mode: @@ -397,23 +392,24 @@ keyword parameter type: keyword parameter type: name: cost match: [ ][STXYZ0-9WUBRG/|]*|[-—][^(\n]* + separator before is: [ —-] + separator after is: [.] + optional: false + # note: the separator is part of match refer script: name: normal - description: standard cost - script: \{{input}\} - refer script: - name: add nothing for mana costs description: When using mana only costs, doesn't include anything extra in the reminder text - script: \{format_cost({input})\} + script: \{{input}\} refer script: name: add "pay an additional " for mana costs description: When using mana only costs, words the reminder text as "pay an additional " - script: \{format_cost(add:"pay an additional ",{input})\} + script: \{for_mana_costs(add:"pay an additional ",{input})\} refer script: name: add "pay " for mana costs description: When using mana only costs, words the reminder text as "pay " - script: \{format_cost(add:"pay ",{input})\} - script: format_cost_start() + script: \{for_mana_costs(add:"pay ",{input})\} + reminder script: format_alt_cost() + separator script: long_dash() keyword parameter type: name: number match: [XYZ0-9]+ @@ -438,7 +434,15 @@ keyword parameter type: match: [^(,\n]+ keyword parameter type: name: name - match: [^(.,\n]+ + match: [^(.,\n—-]+ + refer script: + name: normal + description: No changes made. + script: \{{input}\} + refer script: + name: singular + description: Removes plurality from words. + script: \{english_singular({input})\} keyword parameter type: name: prefix description: Prefix for things like "walk" @@ -454,31 +458,11 @@ keyword: match: Flying mode: core reminder: This creature can’t be blocked except by creatures with flying and/or reach. -keyword: - keyword: Haste - match: Haste - mode: core - reminder: This creature can attack and tap the turn it comes under your control. -keyword: - keyword: Fear - match: Fear - mode: core - reminder: This creature can’t be blocked except by artifact creatures and/or black creatures. keyword: keyword: First strike match: First strike mode: core reminder: This creature deals combat damage before creatures without first strike. -keyword: - keyword: Enchant - match: Enchant name - mode: core - reminder: Target a {param1} as you play this. This card comes into play attached to that {param1}. -keyword: - keyword: Cycling - match: Cyclingcost - mode: core - reminder: {format_cost(param1)}, Discard this card: Draw a card. keyword: keyword: Trample match: Trample @@ -489,6 +473,16 @@ keyword: match: Banding mode: old reminder: When declaring attackers or blockers this creature may group with others creatures with banding and one creature without banding. When damage is dealt, you decide where damage is dealt. +keyword: + keyword: Landwalk + match: prefixwalk + mode: core + reminder: This creature is unblockable as long as defending player controls a {param1}. +keyword: + keyword: Protection from + match: Protection from name + mode: core + reminder: This creature can’t be blocked, targeted, dealt damage, or enchanted, or equipped by anything {english_singular(param1)}. keyword: keyword: Bands with other match: Bands with other name @@ -499,26 +493,11 @@ keyword: match: Rampage number mode: old reminder: Whenever this creature becomes blocked, it gets +{param1}/+{param1} until end of turn for each creature blocking it beyond the first. -keyword: - keyword: Vigilance - match: Vigilance - mode: core - reminder: Attacking doesn’t cause this creature to tap. -keyword: - keyword: Defender - match: Defender - mode: core - reminder: This creature can’t attack. keyword: keyword: Cumulative upkeep - match: Cumulative upkeepcost + match: Cumulative upkeep cost mode: old - reminder: At the beginning of your upkeep, put an age counter on this permanent, then sacrifice it unless you {format_cost(add:"pay ",param1)} for each age counter on it. -keyword: - keyword: Horsemanship - match: Horsemanship - mode: old - reminder: This creature can’t be blocked except by creatures with horsemanship. + reminder: At the beginning of your upkeep, put an age counter on this permanent, then sacrifice it unless you {for_mana_costs(add:"pay ",param1)} for each age counter on it. keyword: keyword: Phasing match: Phasing @@ -533,22 +512,37 @@ keyword: keyword: Shadow match: Shadow mode: core - reminder: This creature can block or be blocked only by creatures with shadow. + reminder: This creature can block or be blocked by only creatures with shadow. +keyword: + keyword: Denimwalk + match: Denimwalk + mode: old + reminder: If defending player is wearing any clothing made of denim, this creature is unblockable. keyword: keyword: Buyback - match: Buybackcost + match: Buyback cost mode: expert - reminder: You may {format_cost(add:"pay ",param1)} in addition to any other costs as you play this spell. If you do, put this card into your hand as it resolves. + reminder: You may {for_mana_costs(add:"pay ",param1)} in addition to any other costs as you play this spell. If you do, put this card into your hand as it resolves. keyword: keyword: Echo - match: Echocost + match: Echo cost mode: expert reminder: 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. keyword: - keyword: Cardcycling - match: prefixcyclingcost + keyword: Cycling + match: Cycling cost mode: expert - reminder: {format_cost(param2)}, Discard this card: Search your library for a {param1} card, reveal it, and put it into your hand. Then shuffle your library. + reminder: {param1}, Discard this card: Draw a card. +keyword: + keyword: Haste + match: Haste + mode: core + reminder: This creature can attack and tap the turn it comes under your control. +keyword: + keyword: Horsemanship + match: Horsemanship + mode: old + reminder: This creature can’t be blocked except by creatures with horsemanship. keyword: keyword: Fading match: Fading number @@ -556,24 +550,38 @@ keyword: reminder: This comes into play with {english_number_a(param1)} fade counter(s) on it. At the beginning of your upkeep, remove a fade counter from it. If you can’t, sacrifice it. keyword: keyword: Kicker - match: Kickercost + match: Kicker mana and/or mana mode: expert - reminder: You may {format_cost(add:"pay an additional ",param1)} as you play this spell. + reminder: You may pay an additional {param1} and/or {param2} as you play this spell. keyword: - keyword: Madness - match: Madnesscost + keyword: Kicker + match: Kicker cost mode: expert - reminder: You may play this card for its madness cost at the time you discard it. + reminder: You may {for_mana_costs(add:"pay an additional ",param1)} as you play this spell. keyword: keyword: Flashback - match: Flashbackcost + match: Flashback cost mode: expert reminder: You may play this card from your graveyard for its flashback cost. Then remove it from the game. +keyword: + keyword: Threshold + match: Threshold + mode: pseudo +keyword: + keyword: Madness + match: Madness cost + mode: expert + reminder: You may play this card for its madness cost at the time you discard it. keyword: keyword: Morph - match: Morphcost + match: Morph cost mode: expert reminder: You may play this face down as a 2/2 creature for 3. Turn it face up any time for its morph cost. +keyword: + keyword: Fear + match: Fear + mode: core + reminder: This creature can’t be blocked except by artifact creatures and/or black creatures. keyword: keyword: Amplify match: Amplify number @@ -589,6 +597,11 @@ keyword: match: Provoke mode: expert reminder: When this attacks, you may have target creature defending player controls untap and block it if able. +keyword: + keyword: Typecycling + match: prefixcycling cost + mode: expert + reminder: {param2}, Discard this card: Search your library for a {param1} card, reveal it, and put it into your hand. Then shuffle your library. keyword: keyword: Storm match: Storm @@ -598,17 +611,17 @@ keyword: keyword: Affinity for match: Affinity for name mode: expert - reminder: This spell costs 1 less to play for each {param1} you control. + reminder: This spell costs 1 less to play for each {english_singular(param1)} you control. keyword: keyword: Entwine - match: Entwinecost + match: Entwine cost mode: expert reminder: Choose both if you pay the entwine cost. keyword: keyword: Equip - match: Equipcost + match: Equip cost mode: expert - reminder: {format_cost(param1)}: Attach to target creature you control. Equip only as a sorcery. + reminder: {param1}: Attach to target creature you control. Equip only as a sorcery. keyword: keyword: Imprint match: Imprint—action @@ -628,43 +641,68 @@ keyword: keyword: Sunburst match: Sunburst mode: expert - reminder: This comes into play with a +1/+1 counter on it for each color of mana used to pay its cost. If it is not a creature, use charge counters instead. -#Two versions of splice needed because if there's no separator, the program doesn't know when to switch from param1 to param2. + reminder: This comes into play with a +1/+1 counter on it for each color of mana used to pay its cost. If it isn't a creature, use charge counters instead. keyword: - keyword: Splice (Mana Cost) - match: Splice onto name mana + keyword: Gotcha + match: Gotcha + mode: pseudo +keyword: + keyword: Splice + match: Splice onto name cost mode: expert reminder: As you play a {param1} spell, you may reveal this card from your hand and pay its splice cost. If you do, add this card’s effects to that spell. -keyword: - keyword: Splice (Alternative Cost) - match: Splice onto nameaction - mode: expert - reminder: As you play a {param1} spell, you may reveal this card from your hand and pay its splice cost. If you do, add this card’s effects to that spell. -keyword: - keyword: Offering - match: prefix offering - mode: expert - reminder: You may play this card any time you could play an instant by sacrificing a {param1} and paying the difference in mana costs between this and the sacrificed {param1}. Mana cost includes color. keyword: keyword: Bushido match: Bushido number mode: expert reminder: When this blocks or becomes blocked, it gets +{param1}/+{param1} until end of turn. -keyword: - keyword: Ninjutsu - match: Ninjutsucost - mode: expert - reminder: {format_cost(param1)}, Return an unblocked attacker you control to hand: Put this card into play from your hand tapped and attacking. keyword: keyword: Soulshift match: Soulshift number mode: expert reminder: When this is put into a graveyard from play, you may return target Spirit card with converted mana cost {param1} or less from you graveyard to your hand. +keyword: + keyword: Enchant + match: Enchant name + mode: core + reminder: Target a {param1} as you play this. This card comes into play attached to that {param1}. +keyword: + keyword: Vigilance + match: Vigilance + mode: core + reminder: Attacking doesn’t cause this creature to tap. +keyword: + keyword: Defender + match: Defender + mode: core + reminder: This creature can’t attack. +keyword: + keyword: Offering + match: prefix offering + mode: expert + reminder: You may play this card any time you could play an instant by sacrificing a {param1} and paying the difference in mana costs between this and the sacrificed {param1}. Mana cost includes color. +keyword: + keyword: Ninjutsu + match: Ninjutsu cost + mode: expert + reminder: {param1}, Return an unblocked attacker you control to hand: Put this card into play from your hand tapped and attacking. keyword: keyword: Epic match: Epic mode: expert reminder: For the rest of the game, you can’t play spells. At the beginning of each of your upkeeps, copy this spell except for its epic ability. If the spell has any targets, you may choose new targets for the copy. +keyword: + keyword: Channel + match: Channel + mode: pseudo +keyword: + keyword: Sweep + match: Sweep + mode: pseudo +keyword: + keyword: Radiance + match: Radiance + mode: pseudo keyword: keyword: Convoke match: Convoke @@ -672,9 +710,14 @@ keyword: reminder: Each creature you tap while playing this spell reduces its cost by 1 or by one mana of that creature’s color. keyword: keyword: Transmute - match: Transmutecost + match: Transmute cost mode: expert - reminder: {format_cost(param1)}, Discard this card: Search your library for a card with the same converted mana cost as this card, reveal it, and put it into your hand. Then shuffle your library. Play only as a sorcery. + reminder: {param1}, Discard this card: Search your library for a card with the same converted mana cost as this card, reveal it, and put it into your hand. Then shuffle your library. Play only as a sorcery. +keyword: + keyword: Dredge + match: Dredge number + mode: expert + reminder: As long as you have at least {english_number(param1)} card(s) in your library, if you would draw a card, you may instead put exactly {english_number(param1)} card(s) from the top of your library into your graveyard and return this card from your graveyard to your hand. keyword: keyword: Haunt match: Haunt @@ -687,29 +730,9 @@ keyword: reminder: If an opponent was dealt damage this turn, this creature comes into play with {english_number_a(param1)} +1/+1 counter(s) on it. keyword: keyword: Replicate - match: Replicatecost + match: Replicate cost mode: expert reminder: When you play this spell, copy it for each time you paid its replicate cost. You may choose new targets for the copies. -keyword: - keyword: Denimwalk - match: Denimwalk - mode: old - reminder: If defending player is wearing any clothing made of denim, this creature is unblockable. -keyword: - keyword: Landwalk - match: prefixwalk - mode: core - reminder: This creature is unblockable as long as defending player controls a {param1}. -keyword: - keyword: Protection from - match: Protection from name - mode: core - reminder: This creature can’t be blocked, targeted, dealt damage, or enchanted, or equipped by anything {param1}. -keyword: - keyword: Dredge - match: Dredge number - mode: expert - reminder: As long as you have at least {english_number(param1)} card(s) in your library, if you would draw a card, you may instead put exactly {english_number(param1)} card(s) from the top of your library into your graveyard and return this card from your graveyard to your hand. keyword: keyword: Graft match: Graft number @@ -717,14 +740,18 @@ keyword: reminder: This creature comes into play with {english_number_a(param1)} +1/+1 counter(s) on it. Whenever another creature comes into play, you may move a +1/+1 counter from this creature onto it. keyword: keyword: Forecast - match: Forecastcost, Reveal name from your hand: action + match: Forecast cost, Reveal name from your hand: action mode: expert reminder: Play this ability only during your upkeep and only once each turn. +keyword: + keyword: Hellbent + match: Hellbent + mode: pseudo keyword: keyword: Recover - match: Recovercost + match: Recover cost mode: expert - reminder: When a creature is put into your graveyard from play, you may {format_cost(add:"pay ",param1)}. If you do, return this card from your graveyard to your hand. Otherwise, remove this card from the game. + reminder: When a creature is put into your graveyard from play, you may {for_mana_costs(add:"pay ",param1)}. If you do, return this card from your graveyard to your hand. Otherwise, remove this card from the game. keyword: keyword: Ripple match: Ripple number @@ -744,12 +771,16 @@ keyword: keyword: Suspend match: Suspend numbermana mode: expert - reminder: Rather than play this card from your hand,{if has_cc() then " you may" else ""} pay {param2} and remove it from the game with {english_number_a(param1)} time counter(s) on it. At the beginning of your upkeep, remove a time counter. When the last is removed, play it without paying its mana cost.{if has_pt() then " It has haste." else ""} + reminder: Rather than play this card from your hand, you may pay {param2} and remove it from the game with {english_number_a(param1)} time counter(s) on it. At the beginning of your upkeep, remove a time counter. When the last is removed, play it without paying its mana cost. If it is a creature, it has haste. keyword: keyword: Vanishing match: Vanishing number mode: expert - reminder: This creature comes into play with {english_number_a(param1)} time counter(s) on it. At the beginning of your upkeep, remove a time counter from it. When you remove the last, sacrifice it. + reminder: This permanent comes into play with {english_number_a(param1)} time counter(s) on it. At the beginning of your upkeep, remove a time counter from it. When you remove the last, sacrifice it. +keyword: + keyword: Grandeur + match: Grandeur + mode: pseudo keyword: keyword: Deathtouch match: Deathtouch @@ -782,14 +813,14 @@ keyword: reminder: Look at the top {english_number_multiple(param1)} card(s) of an opponent's library, then put any number of them on the bottom of that player's library and the rest on top in any order. keyword: keyword: Transfigure - match: Transfigurecost + match: Transfigure cost mode: expert - reminder: {format_cost(param1)}, Sacrifice this creature: Search your library for a creature card with the same converted mana cost as this creature and put that card into play. Then shuffle your library. Play only as a sorcery. + reminder: {param1}, Sacrifice this creature: Search your library for a creature card with the same converted mana cost as this creature and put that card into play. Then shuffle your library. Play only as a sorcery. keyword: keyword: Aura swap - match: Aura swapcost + match: Aura swap cost mode: expert - reminder: {format_cost(param1)}: Exchange this Aura with an Aura card in your hand. + reminder: {param1}: Exchange this Aura with an Aura card in your hand. keyword: keyword: Frenzy match: Frenzy number @@ -810,36 +841,8 @@ keyword: match: Shroud mode: expert reminder: This permanent can't be the target of spells or abilities. -keyword: - keyword: Hellbent - match: Hellbent - mode: pseudo -keyword: - keyword: Channel - match: Channel - mode: pseudo -keyword: - keyword: Sweep - match: Sweep - mode: pseudo -keyword: - keyword: Threshold - match: Threshold - mode: pseudo -keyword: - keyword: Radiance - match: Radiance - mode: pseudo -keyword: - keyword: Gotcha - match: Gotcha - mode: pseudo -keyword: - keyword: Grandeur - match: Grandeur - mode: pseudo keyword: keyword: Fortify - match: Fortifycost + match: Fortify cost mode: expert - reminder: {format_cost(param1)}: Attach to target land you control. Fortify only as a sorcery. This card comes into play unattached and stays in play if the land leaves play. + reminder: {param1}: Attach to target land you control. Fortify only as a sorcery. This card comes into play unattached and stays in play if the land leaves play.