Commit 05061762 authored by pichoro's avatar pichoro

Updated Vanguard Keywords.

Added some fields that are necessary for modern tokens and futureshifts.
Altered card sorting script to sort cards with super type "Basic Land" but common rarity as non-basic lands.
parent e68e8bef
...@@ -127,16 +127,16 @@ init script: ...@@ -127,16 +127,16 @@ init script:
is_colorless := filter_rule(match: "^colorless") + {input != ""}; is_colorless := filter_rule(match: "^colorless") + {input != ""};
is_artifact := filter_rule(match: "^artifact") + {input != ""}; is_artifact := filter_rule(match: "^artifact") + {input != ""};
sort_index := { sort_index := {
if card.card_color=="white" then "A" if card.card_color=="white" then "A"
else if card.card_color=="blue" then "B" else if card.card_color=="blue" then "B"
else if card.card_color=="black" then "C" else if card.card_color=="black" then "C"
else if card.card_color=="red" then "D" else if card.card_color=="red" then "D"
else if card.card_color=="green" then "E" else if card.card_color=="green" then "E"
else if is_multicolor(card.card_color) then "F" else if is_multicolor(card.card_color) then "F"
else if is_hybrid (card.card_color) then "G" else if is_hybrid (card.card_color) then "G"
else if is_colorless (card.card_color) or is_artifact (card.card_color) then "H" else if is_colorless (card.card_color) or is_artifact (card.card_color) then "I"
else if card.super_type!="Basic Land" then "I" else if card.rarity!="basic land" then "J"
else "J" else "K"
}; };
# The color of a card # The color of a card
...@@ -528,6 +528,43 @@ card field: ...@@ -528,6 +528,43 @@ card field:
choice: none choice: none
choice: tombstone choice: tombstone
description: Symbol for this card (tombstone) description: Symbol for this card (tombstone)
#for use in futureshifts
card field:
type: choice
name: type symbol
choice: none
choice: creature
choice: enchantment
choice: sorcery
choice: instant
choice: artifact
choice: land
choice: multitype
description: Symbol for the type of this card (claw marks, chalice, lightning bolt)
# Part of Name box for new token template
card field:
type: choice
name: name box
choice: black
editable: false
save value: false
show statistics: false
# Part of Name box for new token template
card field:
type: choice
name: name box left
choice: black
editable: false
save value: false
show statistics: false
# Part of Name box for new token template
card field:
type: choice
name: name box right
choice: black
editable: false
save value: false
show statistics: false
############################# Image ############################# Image
card field: card field:
...@@ -570,7 +607,6 @@ card field: ...@@ -570,7 +607,6 @@ card field:
name: type image name: type image
include file: magic-blends.mse-include/card-colors include file: magic-blends.mse-include/card-colors
script: card.card_color script: card.card_color
editable: false
card field: card field:
type: choice type: choice
name: rarity name: rarity
...@@ -612,7 +648,6 @@ card field: ...@@ -612,7 +648,6 @@ card field:
name: textbox name: textbox
include file: magic-blends.mse-include/card-colors include file: magic-blends.mse-include/card-colors
script: card.card_color script: card.card_color
editable: false
save value: false save value: false
show statistics: false show statistics: false
card field: card field:
......
...@@ -19,8 +19,11 @@ init script: ...@@ -19,8 +19,11 @@ init script:
replace: "Æ") + replace: "Æ") +
# step 2 : longdash for keywords # step 2 : longdash for keywords
replace_rule( replace_rule(
match: "--| - ", match: "--",
replace: "—") + replace: "—") +
replace_rule(
match: " - ",
replace: " — ") +
# step 3 : trademark symbol # step 3 : trademark symbol
replace_rule( replace_rule(
match: "TM", match: "TM",
...@@ -38,8 +41,11 @@ init script: ...@@ -38,8 +41,11 @@ init script:
replace: "Æ") + replace: "Æ") +
# step 2 : longdash for keywords # step 2 : longdash for keywords
replace_rule( replace_rule(
match: "--| - ", match: "--",
replace: "—") replace: "—") +
replace_rule(
match: " - ",
replace: " — ")
# correctly sort a mana symbol (no guild mana) # correctly sort a mana symbol (no guild mana)
mana_sort := sort_rule(order: "XYZ[0123456789]S(WUBRG)") mana_sort := sort_rule(order: "XYZ[0123456789]S(WUBRG)")
...@@ -63,12 +69,17 @@ init script: ...@@ -63,12 +69,17 @@ init script:
# replaces — correctly # replaces — correctly
alternative_cost := replace_rule(match:"—|\\.", replace:"") + replace_rule(match:"[A-Z]", in_context:"<param-[a-z]*><match>", replace: { to_lower() }) alternative_cost := replace_rule(match:"—|\\.", replace:"") + replace_rule(match:"[A-Z]", in_context:"<param-[a-z]*><match>", replace: { to_lower() })
mana_cost := replace_rule(match:" ", in_context:"\\><match>", replace: "") mana_cost := replace_rule(match:"<param-cost> ", replace: "<param-cost>")
add := "" # default is nothing
format_cost := { format_cost := {
if substring(begin: 0, end: 13)=="<param-cost>—" then if substring(begin: 0, end: 13)=="<param-cost>—" then
alternative_cost(input:input) alternative_cost()
else add + "<sym>" + mana_cost(input:input) + "</sym>" else add + mana_cost()
}; };
format_cost_start := replace_rule(match:"^(<param-cost>)?[ ]?-", replace:"\\1—")
# Utilities for keywords
has_cc := { card.casting_cost != "" }
has_pt := { card.pt != "" }
# Filters for the text box # Filters for the text box
# context in which mana symbols are found # context in which mana symbols are found
...@@ -102,8 +113,10 @@ init script: ...@@ -102,8 +113,10 @@ init script:
tag_remove_rule(tag: "<i-auto>") + tag_remove_rule(tag: "<i-auto>") +
# step 2 : reminder text for keywords # step 2 : reminder text for keywords
expand_keywords_rule( expand_keywords_rule(
default_expand: { contains(match:mode, set.automatic_reminder_text, match:mode) }, default_expand: { contains(match:mode, set.automatic_reminder_text) },
combine: { "{keyword}<atom-reminder><i> ({process_english_hints(reminder)})</i></atom-reminder>" } combine: {
if mode == "pseudo" then "<i-auto>{keyword}</i-auto>"
else "{keyword}<atom-reminder><i> ({process_english_hints(reminder)})</i></atom-reminder>" }
) + ) +
# step 3 : expand shortcut words ~ and CARDNAME # step 3 : expand shortcut words ~ and CARDNAME
replace_rule( replace_rule(
...@@ -131,8 +144,11 @@ init script: ...@@ -131,8 +144,11 @@ init script:
replace: {"<sym>" + mana_filter_t() + "</sym>"} ) + replace: {"<sym>" + mana_filter_t() + "</sym>"} ) +
# step 6 : longdash # step 6 : longdash
replace_rule( replace_rule(
match: "--| - ", match: "--",
replace: "—" ) + replace: "—") +
replace_rule(
match: " - ",
replace: " — ") +
# step 6b : Æ replacement # step 6b : Æ replacement
replace_rule( replace_rule(
match: "AE", match: "AE",
...@@ -141,10 +157,6 @@ init script: ...@@ -141,10 +157,6 @@ init script:
replace_rule( replace_rule(
match: "s</param-name><s>" match: "s</param-name><s>"
replace: "" ) + replace: "" ) +
# step 6d : period remover for action param keywords
replace_rule(
match: ".</param-action><.>"
replace: "" ) +
# step 6e : p/t detector, needed for suspend # step 6e : p/t detector, needed for suspend
tag_contents_rule( tag_contents_rule(
tag: "<haspt>" tag: "<haspt>"
...@@ -208,6 +220,7 @@ set field: ...@@ -208,6 +220,7 @@ set field:
choice: old choice: old
choice: core choice: core
choice: expert choice: expert
choice: pseudo
choice: custom choice: custom
initial: old, core, expert, custom initial: old, core, expert, custom
# Convert from older mse versions # Convert from older mse versions
...@@ -369,6 +382,9 @@ keyword mode: ...@@ -369,6 +382,9 @@ keyword mode:
keyword mode: keyword mode:
name: expert name: expert
description: Expert level keywords (Cycling, Vanishing, etc.) description: Expert level keywords (Cycling, Vanishing, etc.)
keyword mode:
name: pseudo
description: Pseudo keyword / named ability (Hellbent, Threshold, etc.)
keyword mode: keyword mode:
is default: true is default: true
name: custom name: custom
...@@ -376,27 +392,28 @@ keyword mode: ...@@ -376,27 +392,28 @@ keyword mode:
keyword parameter type: keyword parameter type:
name: mana name: mana
match: [XYZ0-9WUBRGS/]+ match: [STXYZ0-9WUBRG/|]+
# By pichoro and bunnierein # By pichoro and bunnierein
keyword parameter type: keyword parameter type:
name: cost name: cost
match: [:space:]?[^(\n]+ match: [ ][STXYZ0-9WUBRG/|]*|[-—][^(\n]*
refer script: refer script:
name: normal name: normal
description: standard cost description: standard cost
script: \{{input}\} script: \{{input}\}
refer script: refer script:
name: add = nothing name: add nothing for mana costs
description: parses dual costs without pay an additional description: When using mana only costs, doesn't include anything extra in the reminder text
script: \{format_cost({input},add:"")\} script: \{format_cost({input})\}
refer script: refer script:
name: add = "pay an additional " name: add "pay an additional " for mana costs
description: parses dual costs without pay an additional description: When using mana only costs, words the reminder text as "pay an additional <cost>"
script: \{format_cost({input},add:"pay an additional ")\} script: \{format_cost(add:"pay an additional ",{input})\}
refer script: refer script:
name: add = "pay " name: add "pay " for mana costs
description: parses dual costs without pay an additional description: When using mana only costs, words the reminder text as "pay <cost>"
script: \{format_cost({input},add:"pay ")\} script: \{format_cost(add:"pay ",{input})\}
script: format_cost_start()
keyword parameter type: keyword parameter type:
name: number name: number
match: [XYZ0-9]+ match: [XYZ0-9]+
...@@ -461,7 +478,7 @@ keyword: ...@@ -461,7 +478,7 @@ keyword:
keyword: Cycling keyword: Cycling
match: Cycling<atom-param>cost</atom-param> match: Cycling<atom-param>cost</atom-param>
mode: core mode: core
reminder: {format_cost(param1,add:"")}, Discard this card: Draw a card. reminder: {format_cost(param1)}, Discard this card: Draw a card.
keyword: keyword:
keyword: Trample keyword: Trample
match: Trample match: Trample
...@@ -496,7 +513,7 @@ keyword: ...@@ -496,7 +513,7 @@ keyword:
keyword: Cumulative upkeep keyword: Cumulative upkeep
match: Cumulative upkeep<atom-param>cost</atom-param> match: Cumulative upkeep<atom-param>cost</atom-param>
mode: old mode: old
reminder: At the beginning of your upkeep, put an age counter on this permanent, then sacrifice it unless you {format_cost(param1,add:"pay ")} for each age counter on it. 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:
keyword: Horsemanship keyword: Horsemanship
match: Horsemanship match: Horsemanship
...@@ -521,7 +538,7 @@ keyword: ...@@ -521,7 +538,7 @@ keyword:
keyword: Buyback keyword: Buyback
match: Buyback<atom-param>cost</atom-param> match: Buyback<atom-param>cost</atom-param>
mode: expert mode: expert
reminder: You may pay {format_cost(param1,add:"pay ")} 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 {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.
keyword: keyword:
keyword: Echo keyword: Echo
match: Echo<atom-param>cost</atom-param> match: Echo<atom-param>cost</atom-param>
...@@ -531,7 +548,7 @@ keyword: ...@@ -531,7 +548,7 @@ keyword:
keyword: Cardcycling keyword: Cardcycling
match: <atom-param>prefix</atom-param>cycling<atom-param>cost</atom-param> match: <atom-param>prefix</atom-param>cycling<atom-param>cost</atom-param>
mode: expert mode: expert
reminder: {format_cost(param2,add:"")}, Discard this card: Search your library for a {param1} card, reveal it, and put it into your hand. Then shuffle your library. 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.
keyword: keyword:
keyword: Fading keyword: Fading
match: Fading <atom-param>number</atom-param> match: Fading <atom-param>number</atom-param>
...@@ -541,7 +558,7 @@ keyword: ...@@ -541,7 +558,7 @@ keyword:
keyword: Kicker keyword: Kicker
match: Kicker<atom-param>cost</atom-param> match: Kicker<atom-param>cost</atom-param>
mode: expert mode: expert
reminder: You may {format_cost(param1,add:"pay an additional ")} as you play this spell. reminder: You may {format_cost(add:"pay an additional ",param1)} as you play this spell.
keyword: keyword:
keyword: Madness keyword: Madness
match: Madness<atom-param>cost</atom-param> match: Madness<atom-param>cost</atom-param>
...@@ -591,7 +608,7 @@ keyword: ...@@ -591,7 +608,7 @@ keyword:
keyword: Equip keyword: Equip
match: Equip<atom-param>cost</atom-param> match: Equip<atom-param>cost</atom-param>
mode: expert mode: expert
reminder: {format_cost(param1,add:"")}: Attach to target creature you control. Equip only as a sorcery. reminder: {format_cost(param1)}: Attach to target creature you control. Equip only as a sorcery.
keyword: keyword:
keyword: Imprint keyword: Imprint
match: Imprint—<atom-param>action</atom-param> match: Imprint—<atom-param>action</atom-param>
...@@ -599,7 +616,7 @@ keyword: ...@@ -599,7 +616,7 @@ keyword:
reminder: The removed card is imprinted on this artifact. reminder: The removed card is imprinted on this artifact.
keyword: keyword:
keyword: Modular keyword: Modular
match: Modular <atom-param>number</atom-param> match: Modular <atom-param>number</atom-param>
mode: expert mode: expert
reminder: This 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. reminder: This 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:
...@@ -612,6 +629,7 @@ keyword: ...@@ -612,6 +629,7 @@ keyword:
match: Sunburst match: Sunburst
mode: expert 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. 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.
keyword: keyword:
keyword: Splice (Mana Cost) keyword: Splice (Mana Cost)
match: Splice onto <atom-param>name</atom-param> <atom-param>mana</atom-param> match: Splice onto <atom-param>name</atom-param> <atom-param>mana</atom-param>
...@@ -636,7 +654,7 @@ keyword: ...@@ -636,7 +654,7 @@ keyword:
keyword: Ninjutsu keyword: Ninjutsu
match: Ninjutsu<atom-param>cost</atom-param> match: Ninjutsu<atom-param>cost</atom-param>
mode: expert mode: expert
reminder: {format_cost(param1,add:"")}, Return an unblocked attacker you control to hand: Put this card into play from your hand tapped and attacking. 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:
keyword: Soulshift keyword: Soulshift
match: Soulshift <atom-param>number</atom-param> match: Soulshift <atom-param>number</atom-param>
...@@ -656,7 +674,7 @@ keyword: ...@@ -656,7 +674,7 @@ keyword:
keyword: Transmute keyword: Transmute
match: Transmute<atom-param>cost</atom-param> match: Transmute<atom-param>cost</atom-param>
mode: expert mode: expert
reminder: {format_cost(param1,add:"")}, 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: {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.
keyword: keyword:
keyword: Haunt keyword: Haunt
match: Haunt match: Haunt
...@@ -672,7 +690,6 @@ keyword: ...@@ -672,7 +690,6 @@ keyword:
match: Replicate<atom-param>cost</atom-param> match: Replicate<atom-param>cost</atom-param>
mode: expert 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. reminder: When you play this spell, copy it for each time you paid its replicate cost. You may choose new targets for the copies.
#Denimwalk was a casualty of my fixing landwalk to work right
keyword: keyword:
keyword: Denimwalk keyword: Denimwalk
match: Denimwalk match: Denimwalk
...@@ -692,7 +709,7 @@ keyword: ...@@ -692,7 +709,7 @@ keyword:
keyword: Dredge keyword: Dredge
match: Dredge <atom-param>number</atom-param> match: Dredge <atom-param>number</atom-param>
mode: expert 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 {param1} card(s) from the top of your library into your graveyard and return this card from your graveyard to your hand. 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:
keyword: Graft keyword: Graft
match: Graft <atom-param>number</atom-param> match: Graft <atom-param>number</atom-param>
...@@ -707,7 +724,7 @@ keyword: ...@@ -707,7 +724,7 @@ keyword:
keyword: Recover keyword: Recover
match: Recover<atom-param>cost</atom-param> match: Recover<atom-param>cost</atom-param>
mode: expert mode: expert
reminder: When a creature is put into your graveyard from play, you may {format_cost(param1,add:"pay ")}. 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 {format_cost(add:"pay ",param1)}. If you do, return this card from your graveyard to your hand. Otherwise, remove this card from the game.
keyword: keyword:
keyword: Ripple keyword: Ripple
match: Ripple <atom-param>number</atom-param> match: Ripple <atom-param>number</atom-param>
...@@ -727,7 +744,7 @@ keyword: ...@@ -727,7 +744,7 @@ keyword:
keyword: Suspend keyword: Suspend
match: Suspend <atom-param>number</atom-param>—<atom-param>mana</atom-param> match: Suspend <atom-param>number</atom-param>—<atom-param>mana</atom-param>
mode: expert mode: expert
reminder: Rather than play this card from your hand,<hascc> you may</hascc> 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.<haspt> It has haste.</haspt> 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's a creature, it has haste.
keyword: keyword:
keyword: Vanishing keyword: Vanishing
match: Vanishing <atom-param>number</atom-param> match: Vanishing <atom-param>number</atom-param>
...@@ -767,12 +784,12 @@ keyword: ...@@ -767,12 +784,12 @@ keyword:
keyword: Transfigure keyword: Transfigure
match: Transfigure<atom-param>cost</atom-param> match: Transfigure<atom-param>cost</atom-param>
mode: expert mode: expert
reminder: {format_cost(param1,add:"")}, 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: {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.
keyword: keyword:
keyword: Aura swap keyword: Aura swap
match: Aura swap<atom-param>cost</atom-param> match: Aura swap<atom-param>cost</atom-param>
mode: expert mode: expert
reminder: {format_cost(param1,add:"")}: Exchange this Aura with an Aura card in your hand. reminder: {format_cost(param1)}: Exchange this Aura with an Aura card in your hand.
keyword: keyword:
keyword: Frenzy keyword: Frenzy
match: Frenzy <atom-param>number</atom-param> match: Frenzy <atom-param>number</atom-param>
...@@ -793,8 +810,32 @@ keyword: ...@@ -793,8 +810,32 @@ keyword:
match: Shroud match: Shroud
mode: expert mode: expert
reminder: This permanent can't be the target of spells or abilities. 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:
keyword: Fortify keyword: Fortify
match: Fortify<atom-param>cost</atom-param> match: Fortify<atom-param>cost</atom-param>
mode: expert mode: expert
reminder: {format_cost(param1,add:"")}: 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: {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.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment