Commit 1dd7f510 authored by pichoro's avatar pichoro

Magic Archenemy Scheme cards template, with forum spoiler exporter.

Yay 1500!
parent f38b9c25
mse version: 0.3.8
short name: Forum
full name: Spoiler Exporter
position hint: 002
icon: icon.png
version: 2010-05-17
installer group: Magic Archenemy/Export/forum
depends on:
package: archenemy.mse-game
version: 2010-05-17
game: archenemy
file type: *.txt|*.txt|*.*|*.*
# By Pichoro
# Based on code by Idle Muse, Innuendo and Seeonee
option field:
type: choice
name: forum
choice: mse
choice: mtgsalvation
description: What forum should the spoiler be formatted for?
option field:
type: boolean
name: text costs
initial: yes
description: Should mana costs be plain text? Symbols usually can't be copied and pasted.
option field:
type: text
name: creator
description: The creator of the set.
option field:
type: boolean
name: include notes
description: Should card notes be included?
initial: no
option field:
type: boolean
name: color rarities
description: Should rarities be colored?
initial: yes
script:
# Colored rarity markers.
rarity_color := {
if card.rarity == "basic land" then " (C)"
else if card.rarity == "common" then " (C)"
else if card.rarity == "uncommon" then " [color=silver](U)[/color]"
else if card.rarity == "rare" then " [color=gold](R)[/color]"
else if card.rarity == "mythic rare" then " [color=orange](M)[/color]"
else if card.rarity == "special" then " [color=purple](S)[/color]"
else " (C)"
}
# Non colored rarity markers.
rarity_uncolor := {
if card.rarity == "basic land" then " (C)"
else if card.rarity == "common" then " (C)"
else if card.rarity == "uncommon" then " (U)"
else if card.rarity == "rare" then " (R)"
else if card.rarity == "mythic rare" then " (M)"
else if card.rarity == "special" then " (S)"
else " (C)"
}
# Formats rules text w/ only italic tags.
forum_rules_filter_plain := replace@(match:"[(]", replace:"[i](")+
replace@(match:"[)]", replace: ")[/i]")
# Formats rules text w/ mana symbols. MSE and mtgsally use same bbcode tags for mana.
forum_rules_filter_mtgsally_mse :=
# Italics around parenthesis.
replace@(match:"[(]", replace:"[i](")+
replace@(match:"[)]", replace: ")[/i]")+
# 2/C's don't appear in regular english, format them all.
replace@(match:"2/W", replace:":sym2w:")+
replace@(match:"2/U", replace:":sym2u:")+
replace@(match:"2/B", replace:":sym2b:")+
replace@(match:"2/R", replace:":sym2r:")+
replace@(match:"2/G", replace:":sym2g:")+
# C/D's don't appear in regular english, format them all.
replace@(match:"W/U", replace:":symwu:")+
replace@(match:"W/B", replace:":symwb:")+
replace@(match:"U/B", replace:":symub:")+
replace@(match:"U/R", replace:":symur:")+
replace@(match:"B/R", replace:":symbr:")+
replace@(match:"B/G", replace:":symbg:")+
replace@(match:"R/G", replace:":symrg:")+
replace@(match:"R/W", replace:":symrw:")+
replace@(match:"G/W", replace:":symgw:")+
replace@(match:"G/U", replace:":symgu:")+
# Various positions for taps, untaps and chaos symbols.
replace@(match:" T ", replace:" :symtap: ")+
replace@(match:" Q ", replace:" :symq: ")+
replace@(match:" C ", replace:" :symch: ")+
replace@(match:"T,", replace:":symtap:,")+
replace@(match:"Q,", replace:":symq:,")+
replace@(match:"C,", replace:":symch:,")+
replace@(match:"T:", replace:":symtap::")+
replace@(match:"Q:", replace:":symq::")+
replace@(match:"C:", replace:":symch::")+
# Mana right before a space.
replace@(match:"G ", replace:":symg: ")+
replace@(match:"R ", replace:":symr: ")+
replace@(match:"B ", replace:":symb: ")+
replace@(match:"U ", replace:":symu: ")+
replace@(match:"W ", replace:":symw: ")+
replace@(match:"S ", replace:":snow: ")+
# Mana right before a comma.
replace@(match:"G,", replace:":symg:,")+
replace@(match:"R,", replace:":symr:,")+
replace@(match:"B,", replace:":symb:,")+
replace@(match:"U,", replace:":symu:,")+
replace@(match:"W,", replace:":symw:,")+
replace@(match:"S,", replace:":snow:,")+
# Mana right before a colon.
replace@(match:"G:", replace:":symg::")+
replace@(match:"R:", replace:":symr::")+
replace@(match:"B:", replace:":symb::")+
replace@(match:"U:", replace:":symu::")+
replace@(match:"W:", replace:":symw::")+
# Drag rules text to search for more mana characters. Reverse color wheel order works better. Repeat several times.
replace@(match:"G:", replace:":symg::")+
replace@(match:"R:", replace:":symr::")+
replace@(match:"B:", replace:":symb::")+
replace@(match:"U:", replace:":symu::")+
replace@(match:"W:", replace:":symw::")+
replace@(match:"G:", replace:":symg::")+
replace@(match:"R:", replace:":symr::")+
replace@(match:"B:", replace:":symb::")+
replace@(match:"U:", replace:":symu::")+
replace@(match:"W:", replace:":symw::")+
replace@(match:"G:", replace:":symg::")+
replace@(match:"R:", replace:":symr::")+
replace@(match:"B:", replace:":symb::")+
replace@(match:"U:", replace:":symu::")+
replace@(match:"W:", replace:":symw::")+
# Symbolize snow.
replace@(match:"S:", replace:":snow::")+
replace@(match:"S:", replace:":snow::")+
replace@(match:"S:", replace:":snow::")+
# Symbolize numbers from 20-0 when before a comma.
replace@(match:"20,", replace:":20mana:,")+
replace@(match:"19,", replace:":19mana:,")+
replace@(match:"18,", replace:":18mana:,")+
replace@(match:"17,", replace:":17mana:,")+
replace@(match:"16,", replace:":16mana:,")+
replace@(match:"15,", replace:":15mana:,")+
replace@(match:"14,", replace:":14mana:,")+
replace@(match:"13,", replace:":13mana:,")+
replace@(match:"12,", replace:":12mana:,")+
replace@(match:"11,", replace:":11mana:,")+
replace@(match:"10,", replace:":10mana:,")+
replace@(match:"9,", replace:":9mana:,")+
replace@(match:"8,", replace:":8mana:,")+
replace@(match:"7,", replace:":7mana:,")+
replace@(match:"6,", replace:":6mana:,")+
replace@(match:"5,", replace:":5mana:,")+
replace@(match:"4,", replace:":4mana:,")+
replace@(match:"3,", replace:":3mana:,")+
replace@(match:"2,", replace:":2mana:,")+
replace@(match:"1,", replace:":1mana:,")+
replace@(match:"0,", replace:":0mana:,")+
# Symbolize numbers from 20-0 when before another symbol or a colon.
replace@(match:"20:", replace:":20mana::")+
replace@(match:"19:", replace:":19mana::")+
replace@(match:"18:", replace:":18mana::")+
replace@(match:"17:", replace:":17mana::")+
replace@(match:"16:", replace:":16mana::")+
replace@(match:"15:", replace:":15mana::")+
replace@(match:"14:", replace:":14mana::")+
replace@(match:"13:", replace:":13mana::")+
replace@(match:"12:", replace:":12mana::")+
replace@(match:"11:", replace:":11mana::")+
replace@(match:"10:", replace:":10mana::")+
replace@(match:"9:", replace:":9mana::")+
replace@(match:"8:", replace:":8mana::")+
replace@(match:"7:", replace:":7mana::")+
replace@(match:"6:", replace:":6mana::")+
replace@(match:"5:", replace:":5mana::")+
replace@(match:"4:", replace:":4mana::")+
replace@(match:"3:", replace:":3mana::")+
replace@(match:"2:", replace:":2mana::")+
replace@(match:"1:", replace:":1mana::")+
replace@(match:"0:", replace:":0mana::")+
# Symbolize X and Y when before a comma.
replace@(match:"Y,", replace:":symy:,")+
replace@(match:"X,", replace:":symx:,")+
# Symbolize X and Y when before another symbol or a colon.
replace@(match:"Y:", replace:":symy::")+
replace@(match:"X:", replace:":symx::")
# Count the number of paragraphs to detect number of walker abilities.
write_card := {
# The Name
"\n[b]"+card.name+"[/b]"
# The Type and Rarity
+"\n"+card.type+(if options.color_rarities then rarity_color() else rarity_uncolor())
# The Rules Text
+(if card.rule_text != "" then "\n")
+(if not options.text_costs then forum_rules_filter_mtgsally_mse(remove_tags(card.rule_text)))
+(if options.text_costs then forum_rules_filter_plain(card.rule_text))
# The Flavor Text
+(if card.flavor_text != "<i-flavor></i-flavor>" then "\n[i]")
+card.flavor_text
+(if card.flavor_text != "<i-flavor></i-flavor>" then "[/i]")
# The Notes
+(if options.include_notes and card.notes !="" then "\n[spoiler]Card Notes: ")
+(if options.include_notes and card.notes !="" then card.notes)
+(if options.include_notes and card.notes !="" then "[/spoiler]")
+"\n"
}
write_cards := to_text(for each card in sort_list(cards, order_by: {input.card_number}) do write_card())
to_string("Full Spoiler List for "+set.title+"\nSet by "+options.creator+"\n"+set.description+"\n"+write_cards)
mse version: 0.3.8
game: archenemy
short name: Standard
installer group: Magic Archenemy/normal style
icon: card-sample.png
position hint: 01
version: 2010-05-20
depends on:
package: archenemy.mse-game
version: 2010-05-17
depends on:
package: magic-mana-small.mse-symbol-font
version: 2007-09-23
depends on:
package: magic-future-common.mse-include
version: 2007-09-23
card width: 435
card height: 621
card dpi: 131.1179678
# By Pichoro
# Images by Art_Freak
############################################################## Extra scripts
init script:
# Use the normal tap symbol
mana_t := {
if styling.tap_symbol == "old" then "old"
else if styling.tap_symbol == "diagonal T" then "older"
else "new"
}
# Use guild mana symbols?
guild_mana := { styling.use_guild_mana_symbols }
############################################################## Set info fields
set info style:
symbol:
variation:
name: invertedcommon
border radius: 0.10
fill type: solid
fill color: rgb(255,255,255)
border color: rgb(0,0,0)
############################################################## Extra style options
styling field:
type: boolean
name: use guild mana symbols
description: Use the Ravnica guild symbols instead of the official half/half circles for hybrid mana.
initial: no
styling field:
type: package choice
name: text box mana symbols
match: magic-mana-*.mse-symbol-font
initial: magic-mana-small.mse-symbol-font
styling field:
type: choice
name: tap symbol
description: What tap and untap symbols should be used on cards?
initial: modern
choice: modern
choice: old
choice: diagonal T
styling field:
type: boolean
name: inverted common symbol
description: Should the common rarity symbol be inverted, like in Coldsnap?
initial: no
styling field:
type: choice
name: artist font color
description: Should the illustrator, copyright, and illustrator paintbrush be white or black?
choice: white
choice: black
styling field:
type: package choice
name: overlay
description: Should there be an overlay applied, such as foil?
match: magic-overlay-*.mse-include
required: false
styling style:
use guild mana symbols:
choice images:
yes: /magic-mana-small.mse-symbol-font/mana_guild_rg.png
no: /magic-mana-small.mse-symbol-font/mana_rg.png
tap symbol:
render style: both
choice images:
modern: /magic-mana-small.mse-symbol-font/mana_t.png
old: /magic-mana-small.mse-symbol-font/mana_t_old.png
diagonal T: /magic-mana-small.mse-symbol-font/mana_t_older.png
############################################################## Card fields
card style:
############################# Background stuff
border color:
left: 0
top: 0
width: 435
height: 621
radius: 16
left width: 16
right width: 15
top width: 13
bottom width: 15
z index: 4
############################# Name line
name:
left: 63
top: 35
width: 306
height: 27
alignment: bottom center shrink-overflow
padding bottom: 0
z index: 2
font:
name: Matrix
size: 16
weight: bold
color: black
############################# Image
image:
left: 26
top: 25
width: 383
height: 571
z index: 1
mask: image_mask.png
############################# Card type
type:
left: 65
top: 406
width: { 312 - max(21,card_style.rarity.content_width) }
height: 21
alignment: middle left shrink-overflow
z index: 2
font:
name: Matrix
size: 14
color: black
rarity:
right: 370
top: 407
width: 37
height: 19
z index: 2
render style: image
alignment: middle right
choice images:
# Images based on the set symbol
common:
script:
if styling.inverted_common_symbol then symbol_variation(symbol: set.symbol, variation: "invertedcommon")
else symbol_variation(symbol: set.symbol, variation: "common")
uncommon: script: symbol_variation(symbol: set.symbol, variation: "uncommon")
rare: script: symbol_variation(symbol: set.symbol, variation: "rare")
mythic rare: script: symbol_variation(symbol: set.symbol, variation: "mythic rare")
special: script: symbol_variation(symbol: set.symbol, variation: "special")
############################# Text box
text:
left: 64
top: 435
width: 309
height: 122
font:
name: MPlantin
italic name: MPlantin-Italic
size: 14
scale down to: 7
color: black
symbol font:
name: { styling.text_box_mana_symbols }
size: 14
alignment: middle left
z index: 2
padding left: 5
padding top: 2
padding right: 5
padding bottom: 2
line height hard: 1.2
line height line: 1.5
############################# Card sorting / numbering
############################# Copyright stuff
illustrator:
left: 99
top: 570
width: 267
height: 14
alignment: center
z index: 2
font:
name: Matrix
size: 11
color: {styling.artist_font_color}
copyright line:
left: 67
top: 587
width: 296
height: 14
alignment: center
z index: 2
font:
name: MPlantin
size: 6
color: {styling.artist_font_color}
############################################################## Extra card fields
extra card field:
type: choice
name: frame
choice: frame
save value: false
editable: false
extra card field:
type: choice
name: foil layer
choice: foil
save value: false
editable: false
extra card field:
type: choice
name: paintbrush
script: styling.artist_font_color
editable: false
save value: false
extra card style:
paintbrush:
right: { 232 + ( card_style.illustrator.content_width * -0.5 ) }
top: 571
width: 35
height: 14
z index: 6
render style: image
choice images:
black: /magic-future-common.mse-include/paintbrush_black.png
white: /magic-future-common.mse-include/paintbrush_white.png
frame:
left: 0
top: 0
width: 435
height: 621
z index: 0
render style: image
image: card.png
foil layer:
left: 0
top: 0
width: 435
height: 621
z index: 3
render style: image
image: {if styling.overlay == "" then nil else styling.overlay + "/overlay.png"}
mse version: 0.3.8
short name: Archenemy
full name: Magic Scheme Cards
installer group: Magic Archenemy/game files
icon: card-sample.png
position hint: 02
version: 2010-08-14
# By Pichoro
############################################################## 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: "(^|[^/])<match>($|[^/])",
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: "<CTQ>")
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: "^[SCTQXYZIWUBRG0-9/|]+,", input.param) then
"{add}<param-cost>{combined_cost(input.param)}</param-cost>"
else "<param-cost>{combined_cost(input.param)}</param-cost>"
) else
"<param-cost>{alternative_cost(input.param)}</param-cost>"
) else
"{add}<param-mana>{input.param}</param-mana>"
}
alternative_cost := replace@(match:"^[A-Z]", replace: { to_lower() })
combined_cost := replace@(match:", [A-Z]", replace: { to_lower() })+
replace@(match:",", replace:" and")+
replace@(match:"^[SCTQXYZIWUBRG0-9/|]", in_context: "(^|[[:space:]])<match>", replace: "<sym-auto>&</sym-auto>")+
replace@(match:"^[A-Z]", replace: { to_lower() })
long_dash := replace@(match:"-", replace:"—")
# 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]+(?!/[WUBRGSCTQ2]) | [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
( <match>: # G: something
| <match>, # G, tap: something
| <match>[ ]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
([ ]<sym[^>]*>[CTQSXYZIWUBRG0-9/|]+</sym[^>]*>[ ](and|or))* # pay X or Y
[ ]<match>
([,.)]|$ # (end of word)
|[ ][^ .,]*$ # still typing...
|[ ]( or | and | in | less | more | to ) # or next word is ...
)
)
| <param-mana><match></param-mana> # keyword argument that is declared as mana
| <param-cost>[ ]*<match></param-cost> # keyword argument that is declared as cost
| <param-cost><match>, # 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: "<sym-auto>") +
remove_tag@(tag: "<i-auto>") +
remove_tag@(tag: "<nospellcheck") +
# 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: {
keyword := "<nospellcheck>{keyword}</nospellcheck>"
reminder := process_english_hints(reminder)
if mode == "pseudo" then "<i-auto>{keyword}</i-auto>"
else keyword + if expand then "<atom-reminder-{mode}> ({reminder})</atom-reminder-{mode}>" }
) +
# step 2b : move inline keywords' reminder text to the end of the line
replace@(
match: "(<atom-reminder-core>.*</atom-reminder-core></kw[^>]*>)([^\n(]+)",
replace: "\\2\\1"
) +
replace@(
match: "(<atom-reminder-old>.*</atom-reminder-old></kw[^>]*>)([^\n(]+)",
replace: "\\2\\1"
) +
replace@(
match: "(<atom-reminder-expert>.*</atom-reminder-expert></kw[^>]*>)([^\n(]+)",
replace: "\\2\\1"
) +
# step 3 : expand shortcut words ~ and CARDNAME
replace@(
match: "CARDNAME",
in_context: "(^|[[:space:]]|\\()<match>",
replace: "<atom-cardname></atom-cardname>"
) +
# step 4 : explict non mana symbols
replace@(
match: "\\][SCTQXYZIWUBRG0-9/|]+\\[",
replace: {"<nosym>" + mana_filter_t() + "</nosym>"} ) +
# step 5 : add mana & tap symbols
replace@(
match: "[SCTQXYZIWUBRG0-9/|]+",
in_context: mana_context,
replace: {"<sym-auto>" + mana_filter_t() + "</sym-auto>"} ) +
# step 5b : add explict mana symbols
replace@(
match: "\\[[SCTQXYZIWUBRG0-9/|]+\\]",
replace: {"<sym>" + mana_filter_t() + "</sym>"} ) +
# step 6 : curly quotes
curly_quotes +
# step 7 : italic reminder text
replace@(
match: "[(][^)\n]*[)]?",
in_context: "(^|[[:space:]])<match>|<atom-keyword><match></>",
replace: "<i-auto>&</i-auto>") +
# step 8 : automatic capitalization, but not after "("
replace@(
match: "[a-z]",
in_context: "[ ]*: <match>|—<match>| — <match>",
replace: { to_upper() })
############################################################## Other boxes
# the flavor text filter
# - makes all text italic
flavor_text_filter :=
# step 2 : remove italic tags
remove_tag@(tag: "<i-flavor>") +
# step 3 : surround by <i> tags
{ "<i-flavor>" + input + "</i-flavor>" } +
# curly quotes
replace@(
match: "[[.quotation-mark.]]|”",
in_context: "[ ]<match>+|^<match>|<i-flavor><match>",
replace: "“" )+
replace@(
match: "[[.quotation-mark.]]",
replace: "”" )
# Process the name for sorting rules
sort_name :=
# Remove "The", "A", and "And" at the beginning
replace@(match: "^(The|An?) ", replace: "") +
# Remove commas and apostrophes
replace@(match: "(,|'|’)", replace: "") +
# Remove bold and italic tags
replace@(match: "(<b>|<i>|</b>|</i>)", replace: "") +
# Make lowercase
to_lower
#Necessary to make magic-mana-future play nicely
colorless_color := { "c" }
word_count := break_text@(match:"[^[:space:]]+") + length
line_count := split_text@(match:"\n+",include_empty:false) + length
# Move the cursor past the separator in the type box
type_over_type := replace@(match:" ?[-:]$", replace:"")
type_filter := {
input := remove_tag(tag: "<word-list-")
input := type_over_type()
tag := "word-list-type"
"<{tag}>{input}</{tag}>"
}
############################################################## 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: symbol
name: symbol
description: The symbol for this set, double click to edit
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, expert, 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: yes
description: Should card numbers be shown on the cards?
############################# Default style
default set style:
title:
padding left: 2
font:
size: 16
symbol:
max aspect ratio: 2.5
variation:
name: common
border radius: 0.10
fill type: solid
fill color: rgb(0,0,0)
border color: rgb(255,255,255)
variation:
name: uncommon
border radius: 0.07
fill type: linear gradient
fill color 1: rgb(224,224,224)
fill color 2: rgb(84, 84, 84)
border color 1: rgb(0, 0, 0)
border color 2: rgb(0, 0, 0)
variation:
name: rare
border radius: 0.07
fill type: linear gradient
fill color 1: rgb(214,196,94)
fill color 2: rgb(95, 84, 40)
border color 1: rgb(0, 0, 0)
border color 2: rgb(0, 0, 0)
variation:
name: mythic rare
border radius: 0.07
fill type: linear gradient
fill color 1: rgb(245,148,31)
fill color 2: rgb(186,45,38)
border color 1: rgb(0, 0, 0)
border color 2: rgb(0, 0, 0)
variation:
name: special
border radius: 0.10
fill type: linear gradient
fill color 1: rgb(224,170,247)
fill color 2: rgb(58,7,80)
border color 1: rgb(255,255,255)
border color 2: rgb(255,255,255)
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
############################# 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
icon: stats/type.png
card list visible: true
card list column: 2
card list width: 100
description: The type of the card
script: type_filter(value)
card field:
type: choice
name: rarity
icon: stats/rarity.png
position hint: 100
choice: common
choice: uncommon
choice: rare
choice: mythic rare
choice: special
initial: common
card list visible: true
card list column: 4
card list width: 50
description: The rarity of the card, to edit the symbol switch to the 'set info' tab
choice colors:
common: rgb(33,33,33)
uncommon: rgb(224,224,224)
mythic rare: rgb(202, 49, 35)
rare: rgb(255,207,52)
special: rgb(190,0,255)
############################# 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
card field:
type: text
name: text
multi line: true
save value: false
show statistics: false
script:
combined_editor(field1: card.rule_text, separator: "<line>\n</line>", field2: card.flavor_text)
description: The rules and flavor text for the card; use up and down arrows to switch
############################# Card sorting / numbering
card field:
type: text
name: card number
save value: false
script:
position(
of: card
in: set
order_by: { sort_name(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
position hint: 100
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
statistics dimension:
name: text length (lines)
position hint: 101
script: line_count(to_text(card.rule_text))
numeric: true
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: CR
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: enters the battlefield
auto replace:
match: AAA
replace: as an additional cost to cast
auto replace:
match: scheming
replace: When you set this scheme in motion,
auto replace:
match: hot seat
replace: When you set this scheme in motion, target opponent chooses self or others. If that player chooses self,
auto replace:
match: ~
replace: this scheme
auto replace:
match: '
replace: ’
############################################################## Card pack items
pack type:
name: card
filter: card.name != ""
############################################################## Card packs
pack type:
name: booster pack
item:
name: card
amount: 1
############################################################## Archenemy word lists
word list:
name: type
word:
name: Ongoing
is prefix: true
line below: true
word: Scheme
############################################################## Keywords
############################# Keyword rules
has keywords: true
#keyword preview: {keyword} <i>({reminder})</i>
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: [SCTQXYZI0-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: [ ][SCTQXYZI0-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 <cost>"
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 <cost>"
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 "<something>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 or planeswalker.
keyword:
keyword: Banding
match: banding
mode: old
reminder: Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature’s combat damage, not its controller, among any of the creatures it’s being blocked by or is blocking.
keyword:
keyword: Landwalk
match: <atom-param>prefix</atom-param>walk
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 <atom-param>name</atom-param>
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 <atom-param>name</atom-param>
mode: old
reminder: Any {param1} can attack in a band as long as at least one has “bands with other {param1}.” Bands are blocked as a group. If at least two {param1} you control, one of which has “bands with other {param1},” are blocking or being blocked by the same creature, you divide that creature’s combat damage, not its controller, among any of the creatures it’s being blocked by or is blocking.
keyword:
keyword: Rampage
match: rampage <atom-param>number</atom-param>
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 <atom-param>cost</atom-param>
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: It 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.
keyword:
keyword: Flanking
match: flanking
mode: expert
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 <atom-param>cost</atom-param>
mode: expert
reminder: You may {for_mana_costs(add:"pay an additional ",param1)} as you cast it. If you do, put it into your hand as it resolves.
keyword:
keyword: Echo
match: echo <atom-param>cost</atom-param>
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 <atom-param>cost</atom-param>
mode: expert
reminder: {param1}, Discard it: Draw a card.
keyword:
keyword: Haste
match: haste
mode: core
reminder: It can attack and <sym>T</sym> 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 <atom-param>number</atom-param>
mode: expert
reminder: It enters the battlefield 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 <atom-param>cost</atom-param>
mode: expert
reminder: You may {for_mana_costs(add:"pay an additional ",param1)} as you cast the card.
keyword:
keyword: Flashback
match: flashback <atom-param>cost</atom-param>
mode: expert
reminder: You may cast it from your graveyard for its flashback cost. Then exile it.
keyword:
keyword: Threshold
match: Threshold
mode: pseudo
rules: Threshold — [effect] as long as seven or more cards are in your graveyard.
keyword:
keyword: Madness
match: madness <atom-param>cost</atom-param>
mode: expert
reminder: If you discard it, you may cast it for its madness cost instead of putting it into your graveyard.
keyword:
keyword: Morph
match: morph <atom-param>cost</atom-param>
mode: expert
reminder: You may cast it face down as a 2/2 creature for <sym>3</sym>. Turn it face up any time for its morph cost.
keyword:
keyword: Fear
match: fear
mode: old
reminder: It can’t be blocked except by artifact creatures and/or black creatures.
keyword:
keyword: Amplify
match: amplify <atom-param>number</atom-param>
mode: expert
reminder: As it enters the battlefield, 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: <atom-param>prefix</atom-param>cycling <atom-param>cost</atom-param>
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 cast it, copy it for each spell cast before it this turn. You may choose new targets for the copies.
keyword:
keyword: Affinity for
match: affinity for <atom-param>name</atom-param>
mode: expert
reminder: It costs <sym>1</sym> less to cast for each {english_singular(param1)} you control.
keyword:
keyword: Entwine
match: entwine <atom-param>cost</atom-param>
mode: expert
reminder: Choose both if you pay the entwine cost.
keyword:
keyword: Equip
match: equip <atom-param>cost</atom-param>
mode: core
reminder: {param1}: Attach to target creature you control. Equip only as a sorcery.
keyword:
keyword: Imprint
match: Imprint
mode: pseudo
rules: Imprint — When it enters the battlefield, you may exile a [something] from [somewhere].
keyword:
keyword: Modular
match: modular <atom-param>number</atom-param>
mode: expert
reminder: It enters the battlefield 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 <atom-param>number</atom-param>
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 enters the battlefield with a +1/+1 counter on it for each color of mana spent to cast it. If it isn’t a creature, use charge counters instead.
keyword:
keyword: Art rampage
match: art rampage <atom-param>number</atom-param>
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 cast it. (You may have it enter the battlefield 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
rules: Gotcha — Whenever an opponent [does something], you may say “Gotcha!”. If you do, return [something] from your graveyard to your hand.
keyword:
keyword: Splice
match: splice onto <atom-param>name</atom-param> <atom-param>cost</atom-param>
mode: expert
reminder: As you cast 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 <atom-param>number</atom-param>
mode: expert
reminder: When it blocks or becomes blocked, it gets +{param1}/+{param1} until end of turn.
keyword:
keyword: Soulshift
match: soulshift <atom-param>number</atom-param>
mode: expert
reminder: When it is put into a graveyard from the battlefield, you may return target Spirit card with converted mana cost {param1} or less from your graveyard to your hand.
keyword:
keyword: Enchant
match: enchant <atom-param>name</atom-param>
mode: core
reminder: Target a {param1} as you cast the card. The card enters the battlefield 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: <atom-param>prefix</atom-param> offering
mode: expert
reminder: You may cast it any time you could cast 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 <atom-param>cost</atom-param>
mode: expert
reminder: {param1}, Return an unblocked attacker you control to hand: Put it onto the battlefield from your hand tapped and attacking.
keyword:
keyword: Epic
match: epic
mode: expert
reminder: For the rest of the game, you can’t cast 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
rules: Channel — [cost], Discard a card: [effect].
keyword:
keyword: Sweep
match: Sweep
mode: pseudo
rules: Sweep — Return any number of [basic land type] you control to their owner’s hand. [effect based on number of lands returned].
keyword:
keyword: Convoke
match: convoke
mode: expert
reminder: Each creature you tap while casting the card reduces its cost by <sym>1</sym> or by one mana of that creature’s color.
keyword:
keyword: Transmute
match: transmute <atom-param>cost</atom-param>
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. Transmute only as a sorcery.
keyword:
keyword: Dredge
match: dredge <atom-param>number</atom-param>
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
rules: Radiance — [effect to target permanent or spell and all cards of same card type that share a color with it].
keyword:
keyword: Haunt
match: haunt
mode: expert
reminder: When it is put into a graveyard from the battlefield, or when it resolves if it is not a permanent, exile it haunting target creature.
keyword:
keyword: Bloodthirst
match: bloodthirst <atom-param>number</atom-param>
mode: expert
reminder: If an opponent was dealt damage this turn, the permanent enters the battlefield with {english_number_a(param1)} +1/+1 counter(s) on it.
keyword:
keyword: Replicate
match: replicate <atom-param>cost</atom-param>
mode: expert
reminder: When you cast it, copy it for each time you paid its replicate cost. You may choose new targets for the copies.
keyword:
keyword: Graft
match: graft <atom-param>number</atom-param>
mode: expert
reminder: It enters the battlefield with {english_number_a(param1)} +1/+1 counter(s) on it. Whenever a creature enters the battlefield, you may move a +1/+1 counter from the permanent onto it.
keyword:
keyword: Forecast
match: forecast — <atom-param>action</atom-param>, Reveal <atom-param>name</atom-param> from your hand: <atom-param>action</atom-param>
mode: expert
reminder: Activate the ability only during your upkeep and only once each turn.
keyword:
keyword: Hellbent
match: Hellbent
mode: pseudo
rules: Hellbent — [effect] if you have no cards in hand.
keyword:
keyword: Recover
match: recover <atom-param>cost</atom-param>
mode: expert
reminder: When a creature is put into your graveyard from the battlefield, you may {for_mana_costs(add:"pay ",param1)}. If you do, return the card from your graveyard to your hand. Otherwise, exile this card.
keyword:
keyword: Ripple
match: ripple <atom-param>number</atom-param>
mode: expert
reminder: When you cast it, you may reveal the top {english_number_multiple(param1)} card(s) of your library. You may cast 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 cast it any time you could cast an instant.
keyword:
keyword: Split second
match: split second
mode: expert
reminder: As long as it is on the stack, players can’t cast spells or activate abilities that aren’t mana abilities.
keyword:
keyword: Suspend
match: suspend <atom-param>number</atom-param>—<atom-param>cost</atom-param>
mode: expert
reminder: Rather than cast it from your hand, you may pay {param2} and exile it 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, cast it without paying its mana cost. If it is a creature, it has haste.
keyword:
keyword: Vanishing
match: vanishing <atom-param>number</atom-param>
mode: expert
reminder: It enters the battlefield 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: Any amount of damage it deals to a creature is enough to destroy it.
keyword:
keyword: Reach
match: reach
mode: core
reminder: It can block creatures with flying.
keyword:
keyword: Gravestorm
match: gravestorm
mode: expert
reminder: When you cast 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: Damage dealt by it also causes you to gain that much life.
keyword:
keyword: Absorb
match: absorb <atom-param>number</atom-param>
mode: expert
reminder: If a source would deal damage to it, prevent {param1} of that damage.
keyword:
keyword: Fateseal
match: fateseal <atom-param>number</atom-param>
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 <atom-param>cost</atom-param>
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 onto the battlefield. Then shuffle your library. Transfigure only as a sorcery.
keyword:
keyword: Aura swap
match: aura swap <atom-param>cost</atom-param>
mode: expert
reminder: {param1}: Exchange it with an Aura card in your hand.
keyword:
keyword: Frenzy
match: frenzy <atom-param>number</atom-param>
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 exile any number of cards in your graveyard as you cast it. It costs <sym>1</sym> less to cast for each card exiled this way.
keyword:
keyword: Poisonous
match: poisonous <atom-param>number</atom-param>
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 <atom-param>cost</atom-param>
mode: expert
reminder: {param1}: Attach to target land you control. Fortify only as a sorcery. It enters the battlefield unattached and stays on the battlefield if the land leaves.
keyword:
keyword: Grandeur
match: Grandeur
mode: pseudo
rules: Grandeur — Discard another card named [something]: [effect].
keyword:
keyword: Evoke
match: evoke <atom-param>cost</atom-param>
mode: expert
reminder: You may cast it for its evoke cost. If you do, it’s sacrificed when it enters the battlefield.
keyword:
keyword: Champion
match: champion <atom-param>a</atom-param> <atom-param>name</atom-param>
mode: expert
reminder: When it enters the battlefield, sacrifice it unless you exile another {param2} you control. When it leaves the battlefield, return that card to the battlefield.
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 enters the battlefield tapped. When it does, look at the top four cards of your library, exile one face down, then put the rest on the bottom of your library.
keyword:
keyword: Prowl
match: prowl <atom-param>cost</atom-param>
mode: expert
reminder: You may cast 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 <atom-param>number</atom-param>—<atom-param>cost</atom-param>
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
rules: Kinship — At the beginning of your upkeep, you may look at the top card of your library. If that card shares a creature type with it, you may reveal it. If you do, [effect].
keyword:
keyword: Persist
match: persist
mode: expert
reminder: When it is put into a graveyard from the battlefield, if it had no -1/-1 counters on it, return it to the battlefield 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 cast 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 cast it 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].
keyword:
keyword: Unearth
match: unearth <atom-param>cost</atom-param>
mode: expert
reminder: {param1}: Return it from your graveyard to the battlefield. If it is a creature, it gains haste. Exile it at the beginning of the end step or if it would leave the battlefield. Unearth only as a sorcery.
keyword:
keyword: Devour
match: devour <atom-param>number</atom-param>
mode: expert
reminder: As it enters the battlefield, you may sacrifice any number of creatures. It enters the battlefield with { if param1.value == 1 then "" else if param1.value == 2 then "twice " else english_number(param1) + " times " }that many +1/+1 counters on it.
keyword:
keyword: Exalted
match: exalted
mode: expert
reminder: Whenever a creature you control attacks alone, that creature gets +1/+1 until end of turn.
keyword:
keyword: Domain
match: Domain
mode: pseudo
rules: Domain — [effect] for each basic land type among lands you control.
keyword:
keyword: Cascade
match: cascade
mode: expert
reminder: When you cast it, exile the top card of your library until you remove a nonland card that costs less. You may cast that card without paying its mana cost. Put the exiled cards on the bottom of your library at random.
keyword:
keyword: Intimidate
match: intimidate
mode: core
reminder: It can’t be blocked except by artifact creatures and/or creatures that share a color with it.
keyword:
keyword: Landfall
match: Landfall
mode: pseudo
rules: Landfall — Whenever a land enters the battlefield under your control, [effect].
keyword:
keyword: Multikicker
match: multikicker <atom-param>cost</atom-param>
mode: expert
reminder: You may {for_mana_costs(add:"pay an additional ", param1)} any number of times as you cast it.
keyword:
keyword: Annihilator
match: annihilator <atom-param>number</atom-param>
mode: expert
reminder: Whenever it attacks, defending player sacrifices {english_number_a(param1)} permanent(s).
keyword:
keyword: Rebound
match: rebound
mode: expert
reminder: If you cast it from your hand, exile it as it resolves. At the beginning of your next upkeep, you may cast it from exile without paying its mana cost.
keyword:
keyword: Totem armor
match: totem armor
mode: expert
reminder: If enchanted creature would be destroyed, instead remove all damage from the creature and destroy it.
keyword:
keyword: Level up
match: level up <atom-param>cost</atom-param>
mode: expert
reminder: {param1}: Put a level counter on it. Level up only as a sorcery.
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