mse version: 0.3.7 short name: Vanguard full name: Magic Vanguard installer group: Magic Vanguard/game files icon: card-sample.png position hint: 02 version: 2008-08-08 # Author : Wolfwood # Most stuff is copy/pasted from magic.mse-game ############################################################## Functions & filters # General functions init script: ############################################################## Sorting mana symbols # correctly sort a mana symbol (no guild mana) mana_sort := sort_text@(order: "XYZI[0123456789]S(WUBRG)") # correctly sort guild mana mana_sort_guild := sort_text@(order: "[XYZI01234567890SWUBRG/|]") + replace@( match: "./.|././.|./././.|.[|]", in_context: "(^|[^/])($|[^/])", replace: {sort_text(order:"in_place((WUBRG)")} ) mana_has_guild := match@(match: "[/|]") # Is there guild or half mana in the input? # A mana cost can contain both normal and guild mana mana_filter := to_upper + { if mana_has_guild() then mana_sort_guild() else mana_sort() } # Like mana filter, only also allow tap symbols: tap_filter := sort_text@(order: "") mana_filter_t := replace@( # Remove [] used for forcing mana symbols match: "[\\[\\]]", replace: "" ) + { tap_filter() + mana_filter() } ############################################################## Utilities for keywords # replaces — correctly add := "" # default is nothing for_mana_costs := format_cost := { if input.separator_before == "—" and contains(input.param, " ") then ( if contains(input.param, match:",") then ( if match(match: "^[STQXYZIWUBRG0-9/|]+,", input.param) then "{add}{combined_cost(input.param)}" else "{combined_cost(input.param)}" ) else "{alternative_cost(input.param)}" ) else "{add}{input.param}" } alternative_cost := replace@(match:"^[A-Z]", replace: { to_lower() }) combined_cost := replace@(match:", [A-Z]", replace: { to_lower() })+ replace@(match:",", replace:" and")+ replace@(match:"^[STQXYZIWUBRG0-9/|]", in_context: "(^|[[:space:]])", replace: "&")+ replace@(match:"^[A-Z]", replace: { to_lower() }) long_dash := replace@(match:"-", replace:"—") # Utilities for keywords has_cc := { card.casting_cost != "" } has_pt := { card.pt != "" } # Converted mana cost is_half_mana := match@(match: "1/2|[|][WUBRGS]") is_colored_mana := match@(match: "[WUBRG]") only_numbers := filter_text@(match: "^[0123456789]+") cmc_split := break_text@(match: "(?ix) 1/2 | [|][WUBRG] | [0-9]+(?!/[WUBRGSTQ2]) | [WUBRGS0-9](/[WUBRGS])\{0,4} ") cmc := {to_number( for each sym in cmc_split() do ( numbers := only_numbers(sym) if is_half_mana(sym) then 0.5 else if numbers != "" then max(1, to_int(numbers)) else 1 # all other symbols are 1 )) } colored_mana := {to_number( for each sym in cmc_split() do ( numbers := only_numbers(sym) if is_colored_mana(sym) then if is_half_mana(sym) then 0.5 else 1 else 0 )) } ############################################################## The text box # Filters for the text box # context in which mana symbols are found mana_context := "(?ix) # case insensitive, ignore whitespace (^|[[:space:]\"(]) # start of a word ( : # G: something | , # G, tap: something | [ ]can[ ]be[ ]pay | (pays?|additional|costs?|the # pay X. creatures cost 1 less. pay an additional G. |adds?|pay(ed)?[ ](with|using) ) ([ ]either)? # pay either X or Y ([ ]]*>[TQSXYZIWUBRG0-9/|]+]*>[ ](and|or))* # pay X or Y [ ] ([,.)]|$ # (end of word) |[ ][^ .,]*$ # still typing... |[ ]( or | and | in | less | more | to ) # or next word is ... ) ) | # keyword argument that is declared as mana | [ ]* # keyword argument that is declared as cost | , # keyword argument that is declared as cost "; # the rule text filter # - adds mana symbols # - makes text in parentheses italic text_filter := # step 1 : remove all automatic tags remove_tag@(tag: "") + remove_tag@(tag: "") + # step 2 : reminder text for keywords expand_keywords@( condition: { correct_case or (mode != "pseudo" and not used_placeholders) } default_expand: { chosen(choice:if correct_case then mode else "lower case", set.automatic_reminder_text) }, combine: { if mode == "pseudo" then "{keyword}" else "{keyword} ({process_english_hints(reminder)})" } ) + # step 2b : move inline keywords' reminder text to the end of the line replace@( match: "(.*]*>)([^\n(]+)", replace: "\\2\\1" ) + replace@( match: "(.*]*>)([^\n(]+)", replace: "\\2\\1" ) + replace@( match: "(.*]*>)([^\n(]+)", replace: "\\2\\1" ) + # step 3 : expand shortcut words ~ and CARDNAME replace@( match: "~|~THIS~|CARDNAME", in_context: "(^|[[:space:]]|\\()", replace: "" ) + # step 4 : fill in atom fields tag_contents@( tag: "", contents: { if card.name=="" then "CARDNAME" else card.name } ) + # step 4.5 : explict non mana symbols replace@( match: "\\][STQXYZIWUBRG0-9/|]+\\[", replace: {"" + mana_filter_t() + ""} ) + # step 5 : add mana & tap symbols replace@( match: "[STQXYZIWUBRG0-9/|]+", in_context: mana_context, replace: {"" + mana_filter_t() + ""} ) + # step 5b : add explict mana symbols replace@( match: "\\[[STQXYZIWUBRG0-9/|]+\\]", replace: {"" + mana_filter_t() + ""} ) + # step 7 : italic reminder text replace@( match: "[(][^)\n]*[)]?", in_context: "(^|[[:space:]])|", replace: "&") + # step 8 : automatic capitalization replace@( match: "[a-z]", in_context: "[(]()?|[ ]*: |—| — ", replace: { to_upper() }) curly_quotes ############################################################## Other boxes # the flavor text filter # - makes all text italic flavor_text_filter := # step 2 : remove italic tags remove_tag@(tag: "") + # step 3 : surround by tags { "" + input + "" } + # curly quotes curly_quotes #Necessary to make magic-mana-future play nicely colorless_color := { "c" } word_count := break_text@(match:"[^[:space:]]+") + length ############################################################## Set fields set field: type: info name: Set Information set field: type: text name: title set field: type: text name: description multi line: true set field: type: text name: artist set field: type: text name: copyright set field: type: info name: Defaults and Automation set field: type: color name: border color description: The default border color for cards choice: name: black color: rgb(0,0,0) choice: name: white color: rgb(255,255,255) choice: name: silver color: rgb(128,128,128) choice: name: gold color: rgb(200,180,0) set field: type: multiple choice name: automatic reminder text choice: old choice: core choice: expert choice: pseudo choice: custom initial: old, pseudo, custom # Convert from older mse versions script: if value = "yes" then "old, core, expert, custom" else if value = "no" then "" else value description: For which kinds of keywords should reminder text be added by default? Note: you can enable/disable reminder text by right clicking the keyword. set field: type: boolean name: automatic card numbers initial: no description: Should card numbers be shown on the cards? ############################# Default style default set style: title: padding left: 2 font: size: 16 automatic reminder text: render style: checklist direction: vertical ############################################################## Card fields ############################# Background stuff card field: type: color name: border color default: set.border_color choice: name: black color: rgb(0,0,0) choice: name: white color: rgb(255,255,255) choice: name: silver color: rgb(128,128,128) choice: name: gold color: rgb(200,180,0) show statistics: false description: The border of the card; can be any solid color card field: type: choice name: background choice: normal show statistics: false editable: false ############################# Name line card field: type: text name: name identifying: true show statistics: false card list visible: true card list column: 1 card list width: 150 description: The name of the card ############################# Image card field: type: image name: image show statistics: false description: The image of the card ############################# Card type card field: type: text name: type card list visible: true card list column: 2 description: The type of the card ############################# Text box card field: type: text name: rule text script: text_filter(value) show statistics: false multi line: true description: The rules text of the card card field: type: text name: flavor text script: flavor_text_filter(value) show statistics: false multi line: true description: The flavor text of the card ############################# PT card field: type: text name: handmod card list visible: true card list column: 3 card list width: 50 card list name: hand description: The starting and maximum hand size modifier card field: type: text name: lifemod card list visible: true card list column: 4 card list width: 50 card list name: life description: The starting life total modifier ############################# Card sorting / numbering card field: type: text name: card number save value: false script: position( of: card in: set order_by: { card.name } ) + 1 + "/" + number_of_items(in: set) card list visible: true card list column: 10 card list width: 50 card list name: # editable: false show statistics: false ############################# Copyright stuff card field: type: text name: illustrator default: set.artist description: The illustrator of the image icon: stats/illustrator.png card field: type: text name: copyright default: set.copyright show statistics: false editable: false card field: type: text name: copyright line save value: false show statistics: false script: if set.automatic_card_numbers then combined_editor(field1: card.copyright, separator: " ", field2: card.card_number) else forward_editor(field: card.copyright) description: The copyright and card number of the card ############################################################### Extra Statistics statistics dimension: name: keywords position hint: 1000 script: keyword_usage(unique:true) show empty: false split list: true icon: stats/keywords.png statistics dimension: name: style position hint: 1001 script: stylesheet.short_name icon: stats/stylesheet.png statistics dimension: name: text length (words) position hint: 100 script: word_count(to_text(card.rule_text)) numeric: true bin size: 5 icon: stats/text_length.png ############################################################## Auto replace # Do we need categories? #auto replace category: text box #auto replace category: copyright #auto replace category: everywhere auto replace: match: (C) replace: © auto replace: match: AE replace: Æ whole word: false auto replace: match: TM replace: ™ whole word: false auto replace: match: -- replace: — auto replace: # note the spaces match: - replace: — auto replace: match: CIP replace: comes into play auto replace: match: AAA replace: as an additional cost to play ############################################################## Card pack items pack item: name: card filter: card.name != "" ############################################################## Card packs pack type: name: booster pack item: name: card amount: 1 ############################################################## Keywords ############################# Keyword rules has keywords: true #keyword preview: {keyword} ({reminder}) keyword mode: name: old description: Old keywords (Banding, Phasing, etc.) keyword mode: name: core description: Core set keywords (Flying, Regenerate, etc.) keyword mode: name: expert description: Expert level keywords (Scry, Vanishing, etc.) keyword mode: name: pseudo description: Pseudo keyword / named ability (Hellbent, Threshold, etc.) keyword mode: is default: true name: custom description: Custom keywords keyword parameter type: name: mana match: [STQXYZI0-9WUBRG/|]+ refer script: name: normal description: No changes made script: \{{input}\} refer script: name: converted mana cost description: Converts mana to number # "0" left in so users can easily see how to edit script. script: \{cmc({input}) + 0\} refer script: name: colored mana cost description: Converts mana to number of colored mana # "0" left in so users can easily see how to edit script. script: \{colored_mana({input}) + 0\} # By pichoro and bunnierein keyword parameter type: name: cost match: [ ][STQXYZI0-9WUBRG/|]*|[-—][^(\n]* separator before is: [ —-] separator after is: [.] optional: false # note: the separator is part of match refer script: name: normal description: When using mana only costs, doesn't include anything extra in the reminder text 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: \{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: \{for_mana_costs(add:"pay ",{input})\} separator script: long_dash() keyword parameter type: name: number match: [XYZ0-9]+ refer script: name: normal description: (1,2,3) script: \{{input}\} refer script: name: as words description: (one, two, three) script: \{english_number({input})\} refer script: name: as words, use "a" for 1 description: (a, two, three) script: \{english_number_a({input})\} refer script: name: as words, use "" for 1 description: (, two, three) script: \{english_number_multiple({input})\} keyword parameter type: name: action match: [^(:\n]+ separator after is: [.] reminder script: alternative_cost() 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" optional: false match: [A-Z][A-Z,a-z’ ]* example: Forest keyword parameter type: name: a match: [ ]*|[ an?]* ############################# All Magic keywords # By JrEye and Neko_Asakami, Updated by Pichoro and Buttock1234 keyword: keyword: Flying match: flying mode: core reminder: It can’t be blocked except by creatures with flying or reach. keyword: keyword: First strike match: first strike mode: core reminder: It deals combat damage before creatures without first strike. keyword: keyword: Trample match: trample mode: core reminder: If it would deal enough combat damage to its blockers to destroy them, you may have it deal the rest of its damage to defending player. keyword: keyword: Banding match: banding mode: old reminder: Any number of attacking creatures with banding, and up to one without, can form a band. Blocking a creature in the band blocks all of them. You assign combat damage for any creature blocking or blocked by this creature. keyword: keyword: Landwalk match: prefixwalk mode: core reminder: This creature is unblockable as long as defending player controls a {if match(param1.value, match: " land$") or contains(param1.value, match: "Snow") or contains(param1.value, match:"Basic") or contains(param1.value, match:"Legendary") then "{to_lower(param1)}" else "{param1}"}. keyword: keyword: Protection from match: protection from name mode: core reminder: It can’t be blocked, targeted, dealt damage, enchanted, or equipped by anything {english_singular(param1)}. keyword: keyword: Regeneration match: Regenerate mode: core reminder: The next time it would be destroyed this turn, it isn't. If it is a creature, instead tap it, remove all damage from it, and remove it from combat. keyword: keyword: Bands with other match: bands with other name mode: old reminder: Any number of attacking creatures with banding or bands with other {param1} can form a band. Blocking a creature in the band blocks all of them. You assign combat damage for any creature blocking or blocked by this creature and another creature with bands with other {param1}. keyword: keyword: Rampage match: rampage number mode: old reminder: Whenever it becomes blocked, it gets +{param1}/+{param1} until end of turn for each creature blocking it beyond the first. keyword: keyword: Cumulative upkeep match: cumulative upkeep cost mode: old reminder: At the beginning of your upkeep, put an age counter on it, then sacrifice it unless you pay its upkeep cost for each age counter on it. keyword: keyword: Phasing match: phasing mode: old reminder: At the beginning of your upkeep, put it and any cards and/or counters attached to it in the phased-out zone. If it is already in the phased-out zone, return it and any cards or counters attached to it to play. This ability does not cause comes-into-play or leaves-play abilities to trigger. keyword: keyword: Flanking match: flanking mode: old reminder: Whenever a creature without flanking blocks the creature, the blocking creature gets -1/-1 until end of turn. keyword: keyword: Shadow match: shadow mode: expert reminder: It 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, the creature is unblockable. keyword: keyword: Buyback match: buyback cost mode: expert reminder: You may {for_mana_costs(add:"pay an additional ",param1)} as you play it. If you do, put it into your hand as it resolves. keyword: keyword: Echo match: echo cost mode: expert reminder: At the beginning of your upkeep, if the permanent came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost. keyword: keyword: Cycling match: cycling cost mode: expert reminder: {param1}, Discard it: Draw a card. keyword: keyword: Haste match: haste mode: core reminder: It can attack and T as soon as it comes under your control. keyword: keyword: Horsemanship match: horsemanship mode: old reminder: It can’t be blocked except by creatures with horsemanship. keyword: keyword: Fading match: fading number mode: expert reminder: It 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: kicker mana and/or mana mode: expert reminder: You may pay an additional {param1} and/or {param2} as you play the card. keyword: keyword: Kicker match: kicker cost mode: expert reminder: You may {for_mana_costs(add:"pay an additional ",param1)} as you play the card. keyword: keyword: Flashback match: flashback cost mode: expert reminder: You may play it 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: If you discard it, you may play it for its madness cost instead of putting it into your graveyard. keyword: keyword: Morph match: morph cost mode: expert reminder: You may play it 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: It can’t be blocked except by artifact creatures and/or black creatures. keyword: keyword: Amplify match: amplify number mode: expert reminder: As it comes into play, put {english_number_a(param1)} +1/+1 counter(s) on it for each creature that shares a type with it that you reveal in your hand. keyword: keyword: Double strike match: double strike mode: core reminder: It deals both first-strike and regular combat damage. keyword: keyword: Provoke match: provoke mode: expert reminder: When it 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 it: Search your library for a {param1} card, reveal it, and put it into your hand. Then shuffle your library. keyword: keyword: Storm match: storm mode: expert reminder: When you play it, copy it for each spell played before it this turn. You may choose new targets for the copies. keyword: keyword: Affinity for match: affinity for name mode: expert reminder: It costs 1 less to play for each {english_singular(param1)} you control. keyword: keyword: Entwine match: entwine cost mode: expert reminder: Choose both if you pay the entwine cost. keyword: keyword: Equip match: equip cost mode: core reminder: {param1}: Attach to target creature you control. Equip only as a sorcery. keyword: keyword: Imprint match: imprint — action mode: expert reminder: The removed card is imprinted on the card. keyword: keyword: Modular match: modular number mode: expert reminder: It comes into play with {english_number_a(param1)} +1/+1 counter(s) on it. When it’s put into a graveyard, you may put its +1/+1 counters on target artifact creature. keyword: keyword: Scry match: Scry number mode: expert reminder: To scry {param1}, look at the top { if param1.value==1 then "card of your library, then you may put that card on the bottom of your library." else "{english_number(param1)} cards of your library. Put any number of them on the bottom of your library in any order and the rest on top in any order." } keyword: keyword: Sunburst match: sunburst mode: expert reminder: It 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: Art rampage match: art rampage number mode: expert reminder: Whenever it blocked by a creature, it gets +{param1}/+{param1} for each creature in the blocker's art beyond the first. keyword: keyword: Super haste match: Super haste mode: expert reminder: It may attack the turn before you play it. (You may put it into play from your hand, tapped and attacking, during your declare attackers step. If you do, you lose the game at the end of your next turn unless you pay its mana cost during that turn.) 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 the card from your hand and pay its splice cost. If you do, add its effects to that spell. keyword: keyword: Bushido match: bushido number mode: expert reminder: When it blocks or becomes blocked, it gets +{param1}/+{param1} until end of turn. keyword: keyword: Soulshift match: soulshift number mode: expert reminder: When it 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 the card. The card comes into play attached to that {param1}. keyword: keyword: Vigilance match: vigilance mode: core reminder: Attacking doesn’t cause it to tap. keyword: keyword: Defender match: defender mode: core reminder: It can’t attack. keyword: keyword: Offering match: prefix offering mode: expert reminder: You may play it any time you could play an instant by sacrificing a {param1} and paying the difference in mana costs between it 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 the 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 the card except for its epic ability. If it 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: Convoke match: convoke mode: expert reminder: Each creature you tap while playing the card reduces its cost by 1 or by one mana of that creature’s color. keyword: keyword: Transmute match: transmute cost mode: expert reminder: {param1}, Discard it: Search your library for a card with the same converted mana cost as the discarded 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: If you would draw a card, instead you may put exactly {english_number(param1)} card(s) from the top of your library into your graveyard. If you do, return the card from your graveyard to your hand. Otherwise, draw a card. keyword: keyword: Radiance match: Radiance mode: pseudo keyword: keyword: Haunt match: haunt mode: expert reminder: When it is put into a graveyard from play, or when it resolves if it is not a permanent, remove it from the game haunting target creature. keyword: keyword: Bloodthirst match: bloodthirst number mode: expert reminder: If an opponent was dealt damage this turn, the permanent comes into play with {english_number_a(param1)} +1/+1 counter(s) on it. keyword: keyword: Replicate match: replicate cost mode: expert reminder: When you play it, copy it for each time you paid its replicate cost. You may choose new targets for the copies. keyword: keyword: Graft match: graft number mode: expert reminder: It comes into play with {english_number_a(param1)} +1/+1 counter(s) on it. Whenever a creature comes into play, you may move a +1/+1 counter from the permanent onto it. keyword: keyword: Forecast match: forecast — action, Reveal name from your hand: action mode: expert reminder: Play the ability only during your upkeep and only once each turn. keyword: keyword: Hellbent match: Hellbent mode: pseudo keyword: keyword: Recover match: recover cost mode: expert reminder: When a creature is put into your graveyard from play, you may {for_mana_costs(add:"pay ",param1)}. If you do, return the card from your graveyard to your hand. Otherwise, remove this card from the game. keyword: keyword: Ripple match: ripple number mode: expert reminder: When you play it, you may reveal the top {english_number_multiple(param1)} card(s) of your library. You may play any revealed cards with the same name as the card without paying their mana costs. Put the rest on the bottom of your library. keyword: keyword: Flash match: flash mode: core reminder: You may play it any time you could play an instant. keyword: keyword: Split second match: split second mode: expert reminder: As long as it is on the stack, players can't play spells or activated abilities that aren't mana abilities. keyword: keyword: Suspend match: suspend numbercost mode: expert reminder: Rather than play it 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: It 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 the last is removed, sacrifice it. keyword: keyword: Deathtouch match: deathtouch mode: expert reminder: Whenever it deals damage to a creature, destroy that creature. keyword: keyword: Reach match: reach mode: core reminder: It can block creatures with flying. keyword: keyword: Gravestorm match: gravestorm mode: expert reminder: When you play it, copy it for each permanent put into a graveyard this turn. You may choose new targets for the copies. keyword: keyword: Lifelink match: lifelink mode: core reminder: Whenever it deals damage, you gain that much life. keyword: keyword: Absorb match: absorb number mode: expert reminder: If a source would deal damage to it, prevent {param1} of that damage. keyword: keyword: Fateseal match: fateseal number mode: expert reminder: Look at the top { if param1.value==1 then "card of an opponent's library, then you may put it on the bottom of that player's library." else "{english_number(param1)} cards 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: transfigure cost mode: expert reminder: {param1}, Sacrifice it: Search your library for a creature card with the same converted mana cost as the sacrificed card and put that card into play. Then shuffle your library. Play only as a sorcery. keyword: keyword: Aura swap match: aura swap cost mode: expert reminder: {param1}: Exchange it with an Aura card in your hand. keyword: keyword: Frenzy match: frenzy number mode: expert reminder: Whenever it attacks and isn't blocked, it gets +{param1}/+0 until end of turn. keyword: keyword: Delve match: delve mode: expert reminder: You may remove any number of cards in your graveyard from the game as you play it. It costs 1 less to play for each card removed this way. keyword: keyword: Poisonous match: poisonous number mode: expert reminder: Whenever it deals combat damage to a player, that player gets {english_number_a(param1)} poison counter(s). A player with ten or more poison counters loses the game. keyword: keyword: Shroud match: shroud mode: core reminder: It can't be the target of spells or abilities. keyword: keyword: Fortify match: fortify cost mode: expert reminder: {param1}: Attach to target land you control. Fortify only as a sorcery. It comes into play unattached and stays in play if the land leaves play. keyword: keyword: Grandeur match: Grandeur mode: pseudo keyword: keyword: Evoke match: evoke cost mode: expert reminder: You may play it for its evoke cost. If you do, it's sacrificed when it comes into play. keyword: keyword: Champion match: championaname mode: expert reminder: When it comes into play, sacrifice it unless you remove another {param2} you control from the game. When it leaves play, that card returns to play. keyword: keyword: Clash match: clash mode: expert reminder: Each clashing player reveals the top card of his or her library, then puts that card on the top or bottom. A player wins if his or her card had a higher converted mana cost. keyword: keyword: Changeling match: changeling mode: expert reminder: It is every creature type at all times. keyword: keyword: Hideaway match: hideaway mode: expert reminder: The land comes into play tapped. When it does, look at the top four cards of your library, remove one from the game face down, then put the rest on the bottom of your library. keyword: keyword: Prowl match: prowl cost mode: expert reminder: You may play it for its prowl cost if you dealt combat damage to a player this turn with a creature that shares a type with it. keyword: keyword: Reinforce match: reinforce numbercost mode: expert reminder: {param2}, Discard it: Put {english_number_a(param1)} +1/+1 counter(s) on target creature. keyword: keyword: Kinship match: Kinship mode: pseudo keyword: keyword: Persist match: persist mode: expert reminder: When it is put into a graveyard from play, if it had no -1/-1 counters on it, return it to play under its owner's control with a -1/-1 counter on it. keyword: keyword: Wither match: wither mode: expert reminder: It deals damage to creatures in the form of -1/-1 counters. keyword: keyword: Conspire match: conspire mode: expert reminder: As you play it, you may tap two untapped creatures you control that share a color with it. When you do, copy it and you may choose a new target for the copy. keyword: keyword: Retrace match: Retrace mode: expert reminder: You may play this card from your graveyard by discarding a land card in addition to paying its other costs. keyword: keyword: Chroma match: Chroma mode: pseudo rules: Chroma — [effect] based on the number of [color] mana symbols [in graveyard, under your control, in cards you discard].