Commit 15dd2821 authored by artfreakwiu's avatar artfreakwiu

No commit message

No commit message
parent 64d1bfb3
mse version: 0.3.8 mse version: 0.3.8
version: 2009-08-10 version: 2011-04-11
# Symbol font in the 'popup' style, used for casting costs on modern cards # Symbol font in the 'popup' style, used for casting costs on modern cards
short name: popup style short name: popup style
installer group: magic/Mana symbols/popup style installer group: magic/Mana symbols/popup style
...@@ -164,6 +164,30 @@ symbol: ...@@ -164,6 +164,30 @@ symbol:
code: G/U code: G/U
image: mana_gu.png image: mana_gu.png
image font size: 145 image font size: 145
symbol:
code: ;W
image: mana_phyw.png
image font size: 117
symbol:
code: ;U
image: mana_phyu.png
image font size: 117
symbol:
code: ;B
image: mana_phyb.png
image font size: 117
symbol:
code: ;R
image: mana_phyr.png
image font size: 117
symbol:
code: ;G
image: mana_phyg.png
image font size: 117
symbol:
code: ;1
image: mana_phyc.png
image font size: 117
symbol: symbol:
code: 1/2 code: 1/2
image: mana_1_half.png image: mana_1_half.png
...@@ -337,6 +361,14 @@ insert symbol menu: ...@@ -337,6 +361,14 @@ insert symbol menu:
item: S item: S
item: item:
type: line type: line
item:
name: phyrexian
item: ;W
item: ;U
item: ;B
item: ;R
item: ;G
item: ;1
item: item:
name: half name: half
item: 1/2 item: 1/2
......
mse version: 0.3.8 mse version: 2.0.0
version: 2009-08-10 version: 2011-04-11
short name: normal short name: normal
installer group: magic/Mana symbols/normal style installer group: magic/Mana symbols/normal style
position hint: 001 position hint: 001
...@@ -171,6 +171,30 @@ symbol: ...@@ -171,6 +171,30 @@ symbol:
code: G/U code: G/U
image: mana_gu.png image: mana_gu.png
image font size: 145 image font size: 145
symbol:
code: ;W
image: mana_phyw.png
image font size: 117
symbol:
code: ;U
image: mana_phyu.png
image font size: 117
symbol:
code: ;B
image: mana_phyb.png
image font size: 117
symbol:
code: ;R
image: mana_phyr.png
image font size: 117
symbol:
code: ;G
image: mana_phyg.png
image font size: 117
symbol:
code: ;1
image: mana_phyc.png
image font size: 117
symbol: symbol:
code: 1/2 code: 1/2
image: mana_1_half.png image: mana_1_half.png
...@@ -344,6 +368,14 @@ insert symbol menu: ...@@ -344,6 +368,14 @@ insert symbol menu:
item: S item: S
item: item:
type: line type: line
item:
name: phyrexian
item: ;W
item: ;U
item: ;B
item: ;R
item: ;G
item: ;1
item: item:
name: half name: half
item: 1/2 item: 1/2
......
mse version: 2.0.0
full name: Icons/symbols for Modern Magic The Gathering templates
version: 2011-09-11
mse version: 2.0.0
game: magic
short name: Modern Transformer
full name: Innistrad Transformers
icon: card-sample.png
position hint: 002
installer group: magic/new style/transformer
version: 2011-09-15
depends on: magic.mse-game 2011-09-10
depends on: magic-new-common.mse-include 2011-09-11
depends on: magic-default-image.mse-include 2007-09-23
depends on: magic-watermarks.mse-include 2007-09-23
depends on: magic-mana-large.mse-symbol-font 2011-04-10
depends on: magic-mana-small.mse-symbol-font 2011-04-10
card background: white
card width: 375
card height: 523
card dpi: 150
############################################################## Extra scripts
init script:
# Load scripts for image box
include file: /magic-default-image.mse-include/scripts
# Should hybrids have a grey name?
mask_hybrid_with_land := { styling.grey_hybrid_name }
#Should multicolor lands with basic land types have a colored name?
mask_multi_land_with_color := { styling.colored_multicolor_land_name }
# Which artifact template should be used?
alternate_template := {
if input == "a" then (
if styling.artifact_style == "brown" then "ba"
else "a"
) else if input == "m" then (
if styling.saturated_multicolor then "m"
else "om"
) else input
}
template := { (if type=="identity" then "/magic-new-common.mse-include/" else (if is_night() then "n" else "d")) + alternate_template() + "{type}." + (if type=="identity" then "png" else "jpg") }
land_template := { (if type=="identity" then "/magic-new-common.mse-include/" else (if is_night() then "n" else "d")) + (if input == "a" then "c" else alternate_template()) + (if type=="identity" then "" else "l") + "{type}." +(if type=="identity" then "png" else "jpg") }
# Use land templates for previews because they show more contrast
hybrid_previews := "land,hybrid"
# 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 }
# Replacing the section of the blends file relevant to masking due to day and night having different masks
color_combination := {
# The base hybrid, without the outer frame blended over it
base := base_hybrid[shape][color_count]()
# Put a frame around it?
if land and not colored_lands then
masked_blend(
mask: (if type=="identity" then "/magic-new-common.mse-include/" else "") + (if type=="pt" then "" else (if has_no_cost() then "n" else "d")) + "multicolor_blend_{type}.png",
dark: land_template("c"),
light: base,
)
else if land and multi and mask_multi_land_with_color() then
masked_blend(
mask: (if type=="identity" then "/magic-new-common.mse-include/" else "") + "hybrid_blend_{type}.png",
dark: base,
light: land_template("m"),
)
else if multi and artifact then
masked_blend(
mask: (if type=="identity" then "/magic-new-common.mse-include/" else "") + (if type=="pt" then "" else (if has_no_cost() then "n" else "d")) + "artifact_blend_{type}.png",
dark: template("a"),
light: masked_blend(
mask: (if type=="identity" then "/magic-new-common.mse-include/" else "") + (if type=="pt" then "" else (if has_no_cost() then "n" else "d")) + "multicolor_blend_{type}.png",
dark: template("m"),
light: base
)
)
else if multi then
masked_blend(
mask: (if type=="identity" then "/magic-new-common.mse-include/" else "") + (if type=="pt" then "" else (if has_no_cost() then "n" else "d")) + "multicolor_blend_{type}.png",
dark: template("m"),
light: base,
)
else if artifact and color_count > 1 and mask_hybrid_with_land() then
masked_blend(
mask: (if type=="identity" then "/magic-new-common.mse-include/" else "") + (if type=="pt" then "" else (if has_no_cost() then "n" else "d")) + "artifact_blend_{type}.png",
dark: template("a"),
light: masked_blend(
mask: (if type=="identity" then "/magic-new-common.mse-include/" else "") + (if type=="pt" then "" else (if has_no_cost() then "n" else "d")) + "multicolor_blend_{type}.png",
dark: template("c"),
light: base
)
)
else if artifact then
masked_blend(
mask: (if type=="identity" then "/magic-new-common.mse-include/" else "") + (if type=="pt" then "" else (if has_no_cost() then "n" else "d")) + "artifact_blend_{type}.png",
dark: template("a"),
light: base,
)
else if color_count > 1 and mask_hybrid_with_land() then
masked_blend(
mask: (if type=="identity" then "/magic-new-common.mse-include/" else "") + "hybrid_blend_{type}.png",
dark: land_template("c"),
light: base,
)
else base
}
############################################################## 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: choice
name: color identity
choice: always
choice: sometimes
choice: never
description: Do you want to always, sometimes, or never use color indicators?
initial: sometimes
styling field:
type: choice
name: artifact style
description: Choose the style of artifacts: light = before Fifth Dawn, dark = used since Fifth Dawn, brown = old rust style.
initial: dark
choice: dark
choice: brown
styling field:
type: boolean
name: saturated multicolor
description: Should multicolor cards be more saturated? This is done on real cards.
initial: yes
styling field:
type: boolean
name: grey hybrid name
description: Use a grey background for the name and type line on hybrid cards. This is done on real cards.
styling field:
type: boolean
name: colored multicolor land name
description: Use a colored background for the name and type on multicolor land cards with a basic land type. This is done on real cards.
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: 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: 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: center text
description: When to center text (short text only means only on one-line cards with no flavor text)
choice: always
choice: short text only
choice: never
initial: never
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: image size
description: Should the art extend into a transparent textbox?
initial: standard
choice: standard
choice: extended
styling style:
artifact style:
render style: both
choice images:
dark: dacard.jpg
brown: dbacard.jpg
saturated multicolor:
choice images:
yes: dmcard.jpg
no: domcard.jpg
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-large.mse-symbol-font/mana_t.png
old: /magic-mana-large.mse-symbol-font/mana_t_old.png
diagonal T: /magic-mana-large.mse-symbol-font/mana_t_older.png
center text:
render style: both
choice images:
always: /magic.mse-game/icons/center-all-text.png
short text only: /magic.mse-game/icons/center-short-text.png
never: /magic.mse-game/icons/center-no-text.png
inverted common symbol:
choice images:
no: { symbol_variation(symbol: set.symbol, variation: "common") }
yes: { symbol_variation(symbol: set.symbol, variation: "invertedcommon") }
image size:
render style: both
choice images:
standard: /magic.mse-game/icons/small-image.png
extended: /magic.mse-game/icons/large-image.png
############################################################## Card fields
card style:
############################# Background stuff
border color:
left: 0
top : 0
width: 375
height: 523
radius: 18
left width: 17
right width: 17
top width: 17
bottom width: 18
#mask: border-mask.png
z index: -1
card color:
left: 0
top: 0
width: { if is_day() then 375 else 0 }
height: 523
z index: -2
render style: image
popup style: in place
image: { card_background() }
visible: { is_day() }
############################# Name line
name:
left: { if card.card_symbol=="none" then 60 else 76 }
top : 30
right: { if has_no_cost() then 341 else (341 - card_style.casting_cost.content_width) }
height: { if is_day() then 23 else 0 }
alignment: bottom shrink-overflow
padding bottom: 0
z index: 1
font:
name: Matrix
size: 17
weight: bold
color: { if is_day() then rgb(0,0,0) else rgb(255,255,255) }
visible: { is_day() }
casting cost:
right: 343
top : 31
width: { max(30, card_style.casting_cost.content_width) + 5 }
height: { if is_day() then 23 else 0 }
alignment: middle right
font:
name: MPlantin
size: 15
symbol font:
name: magic-mana-large
size: 15
alignment: middle right
always symbol: true
z index: 2
padding top: 0
visible: { is_day() }
card symbol:
left: {if card.card_symbol=="none" then 55 else 60}
top : 31
height: 20
width: { if is_day() then 14 else 0 }
render style: image
choice images:
tombstone: tombstone.png
visible: { is_day() }
transformation:
left: 21
top : 26
height: 31
width: 31
render style: image
choice images:
day: sun_circle.png
night: night_circle.png
############################# Image
image:
left: 32
top: 62
width: { if is_day() then 311 else 0 }
height: { if styling.image_size == "extended" then 408 else 228 }
z index: 1
mask:
script: if styling.image_size == "extended" then "imagemask_extended.png" else "imagemask_standard.png"
default: {default_image(card.card_color)}
visible: { is_day() }
############################# Card type
type:
left: { if contains(card.card_color, match:"land") then 35 else (if styling.color_identity=="always" then 55 else if (styling.color_identity=="sometimes" and has_no_cost()) then 55 else 35) }
top : 298
width: { if contains(card.card_color, match:"land") then (308 - max(22,card_style.rarity.content_width)) else (if styling.color_identity=="always" then (288 - max(22,card_style.rarity.content_width)) else if (styling.color_identity=="sometimes" and has_no_cost()) then (288 - max(22,card_style.rarity.content_width)) else (308 - max(22,card_style.rarity.content_width))) }
height: { if is_day() then 20 else 0 }
alignment: top shrink-overflow
z index: 2
padding top: 2
font:
name: Matrix
size: 14
color: { if is_day() then rgb(0,0,0) else rgb(255,255,255) }
separator color: rgb(128,128,128)
visible: { is_day() }
rarity:
right: 342
top : 297
width: 44
height: 22
z index: 1
render style: image
alignment: middle right
choice images:
# Images based on the set symbol
basic land:
script:
if styling.inverted_common_symbol then symbol_variation(symbol: set.symbol, variation: "invertedcommon")
else symbol_variation(symbol: set.symbol, variation: "common")
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")
identity:
left: 41
top : 297
width: { if contains(card.card_color, match:"land") then 0 else (if styling.color_identity=="always" then 17 else if (styling.color_identity=="sometimes" and has_no_cost()) then 17 else 0) }
height: 17
angle: -45
z index: 2
render style: image
image: { card_identity() }
mask: /magic-new-common.mse-include/dmulticolor_blend_identity.png
visible: { styling.color_identity=="always" or (styling.color_identity=="sometimes" and has_no_cost()) or (has_no_cost() and is_day()) }
idframe:
left: 34
top : 301
width: { if contains(card.card_color, match:"land") then 0 else (if styling.color_identity=="always" then 17 else if (styling.color_identity=="sometimes" and has_no_cost()) then 17 else 0) }
height: 17
z index: 1
render style: image
choice images:
frame: /magic-new-common.mse-include/cidentity.png
mask: /magic-new-common.mse-include/inverse_blend_identity.png
visible: { styling.color_identity=="always" or (styling.color_identity=="sometimes" and has_no_cost()) or (has_no_cost() and is_day()) }
############################# Text box
text:
left: 31
top : 328
width: { if is_day() then 311 else 0 }
height: 142
font:
name: MPlantin
italic name: MPlantin-Italic
size: 14
scale down to: 6
color: rgb(0,0,0)
symbol font:
name: { styling.text_box_mana_symbols }
size: 14
alignment:
script:
if (styling.center_text == "short text only" and
not contains(match:"\n", card.rule_text) and
card.flavor_text == "<i-flavor></i-flavor>" and
card_style.text.content_lines <= 2) or
styling.center_text == "always"
then "middle center"
else "middle left"
z index: 2
padding left: 6
# padding top: 2
padding right: 4
# padding bottom: 2
line height hard: 1.2
line height line: 1.5
line height soft: 0.9
line height hard max: 1.3
line height line max: 1.6
visible: { is_day() }
watermark:
left: 117
top : 321
width: { if is_day() then 138 else 0 }
height: 156
z index: 1
render style: image
alignment: middle center
include file: /magic-watermarks.mse-include/watermarks
visible: { is_day() }
############################# PT
pt:
z index: 4
left: 284
top: 466
width: { if is_day() then 60 else 0 }
height: 28
alignment: center middle shrink-overflow
font:
name: ModMatrix
size: 17
weight: bold
color: { if is_day() then rgb(0,0,0) else rgb(255,255,255) }
separator color: rgb(200,0,0)
visible: { is_day() }
############################# Card sorting / numbering
############################# Copyright stuff
illustrator:
left: 56
top : 478
width: { if is_day() then 217 else 0 }
height: 16
z index: 1
font:
name: Matrix
size: 10
weight: bold
color: { font_color(card.card_color) }
visible: { is_day() }
############################# Day side extra
pt 3:
z index: 4
left: 311
top: 451
width: { if is_day() then 30 else 0 }
height: 12
alignment: bottom right
font:
name: ModMatrix
size: 12
weight: bold
color: rgb(35,35,35)
separator color: rgb(200,0,0)
visible: { is_day() }
############################# Night side
############################# Background stuff
card color 2:
left: 0
top: 0
width: { if is_night() then 375 else 0 }
height: 523
z index: -2
render style: image
popup style: in place
image: { card_background() }
visible: { is_night() }
############################# Name line
name 2:
left: { if card.card_symbol=="none" then 60 else 76 }
top : 30
right: { if has_no_cost() then 341 else (341 - card_style.casting_cost.content_width) }
height: { if is_night() then 23 else 0 }
alignment: bottom shrink-overflow
padding bottom: 0
z index: 1
font:
name: Matrix
size: 17
weight: bold
color: rgb(255,255,255)
visible: { is_night() }
casting cost 2:
right: 343
top : 31
width: { max(30, card_style.casting_cost.content_width) + 5 }
height: { if is_night() then 23 else 0 }
alignment: middle right
font:
name: MPlantin
size: 15
symbol font:
name: magic-mana-large
size: 15
alignment: middle right
always symbol: true
z index: 2
padding top: 0
visible: { is_night() }
card symbol 2:
left: {if card.card_symbol=="none" then 55 else 60}
top : 31
height: 20
width: { if is_night() then 14 else 0 }
render style: image
choice images:
tombstone: tombstone.png
visible: { is_night() }
############################# Image
image 2:
left: 32
top: 62
width: { if is_night() then 311 else 0 }
height: { if styling.image_size == "extended" then 408 else 228 }
z index: 1
mask:
script: if styling.image_size == "extended" then "imagemask_extended.png" else "imagemask_standard.png"
default: {default_image(card.card_color)}
visible: { is_night() }
############################# Card type
type 2:
left: { if has_no_cost() then 55 else 35 }
top : 298
width: { if has_no_cost() then (288 - max(22,card_style.rarity.content_width)) else (308 - max(22,card_style.rarity.content_width)) }
height: { if is_night() then 20 else 0 }
alignment: top shrink-overflow
z index: 2
padding top: 2
font:
name: Matrix
size: 14
color: rgb(255,255,255)
separator color: rgb(128,128,128)
visible: { is_night() }
identity 2:
left: 41
top : 297
width: { if (contains(card.card_color, match:"land") or is_day()) then 0 else (if styling.color_identity=="always" then 17 else if (styling.color_identity=="sometimes" and has_no_cost()) then 17 else 0) }
height: 17
angle: -45
z index: 2
render style: image
image: { card_identity() }
mask: /magic-new-common.mse-include/dmulticolor_blend_identity.png
visible: { styling.color_identity=="always" or (styling.color_identity=="sometimes" and has_no_cost()) or (has_no_cost() and is_night()) }
idframe 2:
left: 34
top : 301
width: { if (contains(card.card_color, match:"land") or is_day()) then 0 else (if styling.color_identity=="always" then 17 else if (styling.color_identity=="sometimes" and has_no_cost()) then 17 else 0) }
height: 17
z index: 1
render style: image
choice images:
frame: /magic-new-common.mse-include/cidentity.png
mask: /magic-new-common.mse-include/inverse_blend_identity.png
visible: { styling.color_identity=="always" or (styling.color_identity=="sometimes" and has_no_cost()) or (has_no_cost() and is_night()) }
############################# Text box
text 2:
left: 31
top : 328
width: { if is_night() then 311 else 0 }
height: 142
font:
name: MPlantin
italic name: MPlantin-Italic
size: 14
scale down to: 6
color: rgb(0,0,0)
symbol font:
name: { styling.text_box_mana_symbols }
size: 14
alignment:
script:
if (styling.center_text == "short text only" and
not contains(match:"\n", card.rule_text) and
card.flavor_text == "<i-flavor></i-flavor>" and
card_style.text.content_lines <= 2) or
styling.center_text == "always"
then "middle center"
else "middle left"
z index: 2
padding left: 6
# padding top: 2
padding right: 4
# padding bottom: 2
line height hard: 1.2
line height line: 1.5
line height soft: 0.9
line height hard max: 1.3
line height line max: 1.6
visible: { is_night() }
watermark 2:
left: 117
top : 321
width: { if is_night() then 138 else 0 }
height: 156
z index: 1
render style: image
alignment: middle center
include file: /magic-watermarks.mse-include/watermarks
visible: { is_night() }
############################# PT
pt 2:
z index: 4
left: 284
top: 466
width: { if is_night() then 60 else 0 }
height: 28
alignment: center middle shrink-overflow
font:
name: ModMatrix
size: 17
weight: bold
color: { if is_day() then rgb(0,0,0) else rgb(255,255,255) }
separator color: rgb(200,0,0)
visible: { is_night() }
############################# Card sorting / numbering
############################# Copyright stuff
illustrator 2:
left: 56
top : 478
width: { if is_night() then 217 else 0 }
height: 16
z index: 1
font:
name: Matrix
size: 10
weight: bold
color: { font_color(card.card_color_2) }
visible: { is_night() }
############################################################## Extra card fields
extra card field:
type: choice
name: pt box
script: card.card_color
editable: false
extra card field:
type: choice
name: pt box 2
script: card.card_color_2
editable: false
extra card field:
type: text
name: copyright line a
save value: false
show statistics: false
script:
if set.automatic_card_numbers then
combined_editor(field1: card.copyright, separator: " ", field2: card.card_number_a_or_b)
else
forward_editor(field: card.copyright)
description: Copyright of this card and cardnumber, the default value can be changed on the 'set info' tab
extra card field:
type: text
name: copyright line b
save value: false
show statistics: false
script:
if set.automatic_card_numbers then
combined_editor(field1: card.copyright, separator: " ", field2: card.card_number_a_or_b)
else
forward_editor(field: card.copyright)
description: Copyright of this card and cardnumber, the default value can be changed on the 'set info' tab
extra card style:
pt box:
left: 271
top: 461
width: { if is_day() then 81 else 0 }
height: 42
z index: 1
mask: ptmask.png
visible: { card.pt != "" and is_day() }
render style: image
image: { card_ptbox() }
pt box 2:
left: 271
top: 461
width: { if is_night() then 81 else 0 }
height: 42
z index: 1
mask: ptmask.png
visible: { card.pt_2 != "" and is_night() }
render style: image
image: { card_ptbox() }
copyright line a:
left: 30
top : 493
width: { if is_day() then 247 else 0 }
height: 12
z index: 1
font:
name: MPlantin
size: 6.5
color: { font_color(card.card_color) }
visible: { is_day() }
copyright line b:
left: 30
top : 493
width: {if is_night() then 247 else 0 }
height: 12
z index: 1
font:
name: MPlantin
size: 6.5
color: { font_color(card.card_color_2) }
visible: { is_night() }
\ No newline at end of file
mse version: 0.3.8 mse version: 2.0.0
game: magic game: magic
short name: Modern style short name: Modern style
full name: After 8th edition full name: After 8th edition
...@@ -6,17 +6,21 @@ icon: card-sample.png ...@@ -6,17 +6,21 @@ icon: card-sample.png
position hint: 001 position hint: 001
installer group: magic/new style/normal cards installer group: magic/new style/normal cards
version: 2009-07-07 version: 2011-09-15
depends on: magic.mse-game 2008-06-02 depends on: magic.mse-game 2011-09-10
depends on: magic-new-common.mse-include 2011-09-11
depends on: magic-default-image.mse-include 2007-09-23 depends on: magic-default-image.mse-include 2007-09-23
depends on: magic-watermarks.mse-include 2007-09-23 depends on: magic-watermarks.mse-include 2007-09-23
depends on: magic-mana-large.mse-symbol-font 2007-09-23 depends on: magic-mana-large.mse-symbol-font 2011-04-10
depends on: magic-mana-small.mse-symbol-font 2007-09-23 depends on: magic-mana-small.mse-symbol-font 2011-04-10
card background: white
card width: 375 card width: 375
card height: 523 card height: 523
card dpi: 150 card dpi: 150
############################################################## Extra scripts ############################################################## Extra scripts
init script: init script:
# Load scripts for image box # Load scripts for image box
include file: /magic-default-image.mse-include/scripts include file: /magic-default-image.mse-include/scripts
...@@ -38,8 +42,8 @@ init script: ...@@ -38,8 +42,8 @@ init script:
else "om" else "om"
) else input ) else input
} }
template := { alternate_template() + "{type}.jpg" } template := { (if type=="identity" then "/magic-new-common.mse-include/" else "") + alternate_template() + "{type}." + (if type=="identity" then "png" else "jpg") }
land_template := { (if input == "a" then "c" else alternate_template()) + "l{type}.jpg" } land_template := { (if type=="identity" then "/magic-new-common.mse-include/" else "") + (if input == "a" then "c" else alternate_template()) + (if type=="identity" then "" else "l") + "{type}." +(if type=="identity" then "png" else "jpg") }
# Use land templates for previews because they show more contrast # Use land templates for previews because they show more contrast
hybrid_previews := "land,hybrid" hybrid_previews := "land,hybrid"
...@@ -52,6 +56,65 @@ init script: ...@@ -52,6 +56,65 @@ init script:
# Use guild mana symbols? # Use guild mana symbols?
guild_mana := { styling.use_guild_mana_symbols } guild_mana := { styling.use_guild_mana_symbols }
# Replacing the section of the blends file relevant to masking due to common folder reference issues
color_combination := {
# The base hybrid, without the outer frame blended over it
base := base_hybrid[shape][color_count]()
# Put a frame around it?
if land and not colored_lands then
masked_blend(
mask: (if type=="identity" then "/magic-new-common.mse-include/" else "") + "multicolor_blend_{type}.png",
dark: land_template("c"),
light: base,
)
else if land and multi and mask_multi_land_with_color() then
masked_blend(
mask: (if type=="identity" then "/magic-new-common.mse-include/" else "") + "hybrid_blend_{type}.png",
dark: base,
light: land_template("m"),
)
else if multi and artifact then
masked_blend(
mask: (if type=="identity" then "/magic-new-common.mse-include/" else "") + "artifact_blend_{type}.png",
dark: template("a"),
light: masked_blend(
mask: (if type=="identity" then "/magic-new-common.mse-include/" else "") + "multicolor_blend_{type}.png",
dark: template("m"),
light: base
)
)
else if multi then
masked_blend(
mask: (if type=="identity" then "/magic-new-common.mse-include/" else "") + "multicolor_blend_{type}.png",
dark: template("m"),
light: base,
)
else if artifact and color_count > 1 and mask_hybrid_with_land() then
masked_blend(
mask: (if type=="identity" then "/magic-new-common.mse-include/" else "") + "artifact_blend_{type}.png",
dark: template("a"),
light: masked_blend(
mask: (if type=="identity" then "/magic-new-common.mse-include/" else "") + "multicolor_blend_{type}.png",
dark: template("c"),
light: base
)
)
else if artifact then
masked_blend(
mask: (if type=="identity" then "/magic-new-common.mse-include/" else "") + "artifact_blend_{type}.png",
dark: template("a"),
light: base,
)
else if color_count > 1 and mask_hybrid_with_land() then
masked_blend(
mask: (if type=="identity" then "/magic-new-common.mse-include/" else "") + "hybrid_blend_{type}.png",
dark: land_template("c"),
light: base,
)
else base
}
############################################################## Set info fields ############################################################## Set info fields
...@@ -63,7 +126,17 @@ set info style: ...@@ -63,7 +126,17 @@ set info style:
fill type: solid fill type: solid
fill color: rgb(255,255,255) fill color: rgb(255,255,255)
border color: rgb(0,0,0) border color: rgb(0,0,0)
############################################################## Extra style options ############################################################## Extra style options
styling field:
type: choice
name: color identity
choice: always
choice: sometimes
choice: never
description: Do you want to always, sometimes, or never use color indicators?
initial: sometimes
styling field: styling field:
type: choice type: choice
name: artifact style name: artifact style
...@@ -116,12 +189,6 @@ styling field: ...@@ -116,12 +189,6 @@ styling field:
name: inverted common symbol name: inverted common symbol
description: Should the common rarity symbol be inverted, like in Coldsnap? description: Should the common rarity symbol be inverted, like in Coldsnap?
initial: no initial: no
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 field: styling field:
type: choice type: choice
name: image size name: image size
...@@ -165,6 +232,7 @@ styling style: ...@@ -165,6 +232,7 @@ styling style:
choice images: choice images:
standard: /magic.mse-game/icons/small-image.png standard: /magic.mse-game/icons/small-image.png
extended: /magic.mse-game/icons/large-image.png extended: /magic.mse-game/icons/large-image.png
############################################################## Card fields ############################################################## Card fields
card style: card style:
############################# Background stuff ############################# Background stuff
...@@ -178,20 +246,22 @@ card style: ...@@ -178,20 +246,22 @@ card style:
right width: 17 right width: 17
top width: 17 top width: 17
bottom width: 18 bottom width: 18
z index: 4 #mask: border-mask.png
z index: -1
card color: card color:
left: 0 left: 0
top: 0 top: 0
width: 375 width: 375
height: 523 height: 523
z index: 0 z index: -2
render style: image render style: image
popup style: in place popup style: in place
image: { card_background() } image: { card_background() }
############################# Name line ############################# Name line
name: name:
left: { if card.card_symbol=="none" then 32 else 51 } left: { if card.card_symbol=="none" then 32 else 51 }
top : 30 top : 30
right: { 341 - card_style.casting_cost.content_width } right: { 341 - card_style.casting_cost.content_width }
height: 23 height: 23
alignment: bottom shrink-overflow alignment: bottom shrink-overflow
...@@ -223,10 +293,10 @@ card style: ...@@ -223,10 +293,10 @@ card style:
top : 31 top : 31
height: 20 height: 20
width: 14 width: 14
z index: 1
render style: image render style: image
choice images: choice images:
tombstone: tombstone.png tombstone: tombstone.png
############################# Image ############################# Image
image: image:
left: 32 left: 32
...@@ -237,26 +307,29 @@ card style: ...@@ -237,26 +307,29 @@ card style:
mask: mask:
script: if styling.image_size == "extended" then "imagemask_extended.png" else "imagemask_standard.png" script: if styling.image_size == "extended" then "imagemask_extended.png" else "imagemask_standard.png"
default: {default_image(card.card_color)} default: {default_image(card.card_color)}
############################# Card type ############################# Card type
type: type:
left: 35 left: { if contains(card.card_color, match:"land") then 35 else (if styling.color_identity=="always" then 55 else if (styling.color_identity=="sometimes" and has_no_cost()) then 55 else 35) }
top : 298 top : 298
width: { 308 - max(22,card_style.rarity.content_width) } width: { if contains(card.card_color, match:"land") then (308 - max(22,card_style.rarity.content_width)) else (if styling.color_identity=="always" then (288 - max(22,card_style.rarity.content_width)) else if (styling.color_identity=="sometimes" and has_no_cost()) then (288 - max(22,card_style.rarity.content_width)) else (308 - max(22,card_style.rarity.content_width))) }
height: 20 height: 20
alignment: top shrink-overflow alignment: top shrink-overflow
z index: 1 z index: 2
padding top: 2 padding top: 2
font: font:
name: Matrix name: Matrix
size: 14 size: 14
color: rgb(0,0,0) color: rgb(0,0,0)
separator color: rgb(128,128,128) separator color: rgb(128,128,128)
rarity: rarity:
right: 342 right: 342
top : 297 top : 297
width: 44 width: 44
height: 22 height: 22
z index: 2 z index: 1
render style: image render style: image
alignment: middle right alignment: middle right
choice images: choice images:
...@@ -273,6 +346,31 @@ card style: ...@@ -273,6 +346,31 @@ card style:
rare: script: symbol_variation(symbol: set.symbol, variation: "rare") rare: script: symbol_variation(symbol: set.symbol, variation: "rare")
mythic rare: script: symbol_variation(symbol: set.symbol, variation: "mythic rare") mythic rare: script: symbol_variation(symbol: set.symbol, variation: "mythic rare")
special: script: symbol_variation(symbol: set.symbol, variation: "special") special: script: symbol_variation(symbol: set.symbol, variation: "special")
identity:
left: 41
top : 297
width: { if contains(card.card_color, match:"land") then 0 else (if styling.color_identity=="always" then 17 else if (styling.color_identity=="sometimes" and has_no_cost()) then 17 else 0) }
height: 17
angle: -45
z index: 2
render style: image
image: { card_identity() }
mask: /magic-new-common.mse-include/multicolor_blend_identity.png
visible: { styling.color_identity=="always" or (styling.color_identity=="sometimes" and has_no_cost()) }
idframe:
left: 34
top : 301
width: { if contains(card.card_color, match:"land") then 0 else (if styling.color_identity=="always" then 17 else if (styling.color_identity=="sometimes" and has_no_cost()) then 17 else 0) }
height: 17
z index: 1
render style: image
choice images:
frame: /magic-new-common.mse-include/cidentity.png
mask: /magic-new-common.mse-include/inverse_blend_identity.png
visible: { styling.color_identity=="always" or (styling.color_identity=="sometimes" and has_no_cost()) }
############################# Text box ############################# Text box
text: text:
left: 31 left: 31
...@@ -299,12 +397,15 @@ card style: ...@@ -299,12 +397,15 @@ card style:
else "middle left" else "middle left"
z index: 2 z index: 2
padding left: 6 padding left: 6
# padding top: 2
padding right: 4 padding right: 4
# padding bottom: 2
line height hard: 1.2 line height hard: 1.2
line height line: 1.5 line height line: 1.5
line height soft: 0.9 line height soft: 0.9
line height hard max: 1.3 line height hard max: 1.3
line height line max: 1.6 line height line max: 1.6
watermark: watermark:
left: 117 left: 117
top : 321 top : 321
...@@ -314,9 +415,10 @@ card style: ...@@ -314,9 +415,10 @@ card style:
render style: image render style: image
alignment: middle center alignment: middle center
include file: /magic-watermarks.mse-include/watermarks include file: /magic-watermarks.mse-include/watermarks
############################# PT ############################# PT
pt: pt:
z index: 2 z index: 4
left: 284 left: 284
top: 466 top: 466
width: 60 width: 60
...@@ -328,8 +430,10 @@ card style: ...@@ -328,8 +430,10 @@ card style:
weight: bold weight: bold
color: rgb(0,0,0) color: rgb(0,0,0)
separator color: rgb(200,0,0) separator color: rgb(200,0,0)
############################# Card sorting / numbering ############################# Card sorting / numbering
############################# Copyright stuff ############################# Copyright stuff
illustrator: illustrator:
left: 56 left: 56
top : 478 top : 478
...@@ -341,6 +445,7 @@ card style: ...@@ -341,6 +445,7 @@ card style:
size: 10 size: 10
weight: bold weight: bold
color: { font_color(card.card_color) } color: { font_color(card.card_color) }
copyright line: copyright line:
left: 30 left: 30
top : 493 top : 493
...@@ -351,19 +456,15 @@ card style: ...@@ -351,19 +456,15 @@ card style:
name: MPlantin name: MPlantin
size: 6.5 size: 6.5
color: { font_color(card.card_color) } color: { font_color(card.card_color) }
############################################################## Extra card fields ############################################################## Extra card fields
extra card field: extra card field:
type: choice type: choice
name: pt box name: pt box
script: card.card_color script: card.card_color
editable: false editable: false
save value: false
extra card field:
type: choice
name: foil layer
choice: foil
save value: false
editable: false
extra card style: extra card style:
pt box: pt box:
left: 271 left: 271
...@@ -375,12 +476,3 @@ extra card style: ...@@ -375,12 +476,3 @@ extra card style:
visible: { card.pt != "" } visible: { card.pt != "" }
render style: image render style: image
image: { card_ptbox() } image: { card_ptbox() }
foil layer:
left: 0
top : 0
width: 375
height: 523
z index: 3
render style: image
image: {if styling.overlay == "" then nil else styling.overlay + "/overlay.png"}
...@@ -138,6 +138,12 @@ card field: ...@@ -138,6 +138,12 @@ card field:
choice: sorcery choice: sorcery
choice: none choice: none
description: The card type symbol for this card description: The card type symbol for this card
card field:
type: choice
name: transformation
choice: day
choice: night
description: On transforming cards, is this the day or the night side?
############################# Image ############################# Image
card field: card field:
...@@ -188,7 +194,7 @@ card field: ...@@ -188,7 +194,7 @@ card field:
choice: rare choice: rare
choice: mythic rare choice: mythic rare
choice: special choice: special
initial: common default: set.default_rarity
card list visible: true card list visible: true
card list column: 6 card list column: 6
description: The rarity of the card, to edit the symbol switch to the 'set info' tab description: The rarity of the card, to edit the symbol switch to the 'set info' tab
...@@ -199,6 +205,16 @@ card field: ...@@ -199,6 +205,16 @@ card field:
mythic rare: rgb(202, 49, 35) mythic rare: rgb(202, 49, 35)
rare: rgb(255,207,52) rare: rgb(255,207,52)
special: rgb(190,0,255) special: rgb(190,0,255)
card field:
type: choice
name: identity
script: card.card_color
editable: false
card field:
type: choice
name: idframe
choice: frame
editable: false
############################# Text box ############################# Text box
card field: card field:
...@@ -324,6 +340,19 @@ card field: ...@@ -324,6 +340,19 @@ card field:
card list alignment: right card list alignment: right
editable: false editable: false
show statistics: false show statistics: false
card field:
type: text
name: card number a or b
save value: false
script: card_number() + ( if is_day() then "a" else "b") + "/" + card_count()
sort script: rarity_sort() + card.card_number
card list visible: true
card list column: 10
card list width: 50
card list name: #
card list alignment: right
editable: false
show statistics: false
############################# Copyright stuff ############################# Copyright stuff
card field: card field:
...@@ -421,6 +450,12 @@ card field: ...@@ -421,6 +450,12 @@ card field:
choice: tombstone choice: tombstone
show statistics: false show statistics: false
description: The card symbol of the card (Tombstone) description: The card symbol of the card (Tombstone)
card field:
type: choice
name: transformation 2
choice: day
choice: night
description: On transforming cards, is this the day or the night side?
card field: card field:
type: image type: image
name: image 2 name: image 2
...@@ -467,6 +502,16 @@ card field: ...@@ -467,6 +502,16 @@ card field:
script: card.rarity script: card.rarity
editable: false editable: false
show statistics: false show statistics: false
card field:
type: choice
name: identity 2
script: card.card_color_2
editable: false
card field:
type: choice
name: idframe 2
choice: frame
editable: false
card field: card field:
type: text type: text
name: rule text 2 name: rule text 2
......
mse version: 0.3.9 mse version: 2.0.0
short name: Magic short name: Magic
full name: Magic the Gathering full name: Magic the Gathering
installer group: magic/game files installer group: magic/game files
icon: card-back.png icon: card-back.png
position hint: 01 position hint: 01
version: 2011-01-18 version: 2011-09-10
depends on: magic-blends.mse-include 2010-04-07 depends on: magic-blends.mse-include 2011-09-10
depends on: magic-watermarks.mse-include 2007-09-23 depends on: magic-watermarks.mse-include 2007-09-23
############################################################## The script ############################################################## The script
......
...@@ -355,7 +355,7 @@ keyword: ...@@ -355,7 +355,7 @@ keyword:
keyword: Soulshift keyword: Soulshift
match: Soulshift <atom-param>number</atom-param> match: Soulshift <atom-param>number</atom-param>
mode: expert mode: expert
reminder: When this 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. reminder: When this dies, you may return target Spirit card with converted mana cost {param1} or less from your graveyard to your hand.
keyword: keyword:
keyword: Enchant keyword: Enchant
match: Enchant <atom-param>name</atom-param> match: Enchant <atom-param>name</atom-param>
...@@ -420,7 +420,7 @@ keyword: ...@@ -420,7 +420,7 @@ keyword:
keyword: Haunt keyword: Haunt
match: Haunt match: Haunt
mode: expert mode: expert
reminder: When this { if contains(card.type,match:"Instant") or contains(card.type,match:"Sorcery") then "spell card is put into a graveyard after resolving," else "card is put into a graveyard from the battlefield," } exile it haunting target creature. reminder: When this { if contains(card.type,match:"Instant") or contains(card.type,match:"Sorcery") then "spell card is put into a graveyard after resolving," else "card dies," } exile it haunting target creature.
keyword: keyword:
keyword: Bloodthirst keyword: Bloodthirst
match: Bloodthirst <atom-param>number</atom-param> match: Bloodthirst <atom-param>number</atom-param>
...@@ -594,7 +594,7 @@ keyword: ...@@ -594,7 +594,7 @@ keyword:
keyword: Persist keyword: Persist
match: Persist match: Persist
mode: expert mode: expert
reminder: When this creature 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. reminder: When this creature dies, 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:
keyword: Wither keyword: Wither
match: Wither match: Wither
...@@ -700,3 +700,23 @@ keyword: ...@@ -700,3 +700,23 @@ keyword:
match: Living weapon match: Living weapon
mode: expert mode: expert
reminder: When this Equipment enters the battlefield, put a 0/0 black Germ creature token onto the battlefield, then attach this to it. reminder: When this Equipment enters the battlefield, put a 0/0 black Germ creature token onto the battlefield, then attach this to it.
keyword:
keyword: Join forces
match: Join forces
mode: pseudo
rules: Join forces — Starting with you, each player may [effect].
keyword:
keyword: Morbid
match: Morbid
mode: pseudo
rules: Morbid — If a creature died this turn, [effect].
keyword:
keyword: Hexproof
match: Hexproof
mode: core
reminder: This creature can't be the target of spells or abilities your opponents control.
keyword:
keyword: Fight
match: fight
mode: action
reminder: Each deals damage equal to its power to the other.
...@@ -7,15 +7,15 @@ include file: language ...@@ -7,15 +7,15 @@ include file: language
# correctly sort a mana symbol (no guild mana) # correctly sort a mana symbol (no guild mana)
mana_sort := sort_text@(order: "XYZI[0123456789]S(WUBRG)") mana_sort := sort_text@(order: "XYZI[0123456789]S(WUBRG)")
# correctly sort guild mana # correctly sort guild mana
mana_sort_guild := sort_text@(order: "[XYZI01234567890SWUBRG/|]") + mana_sort_guild := sort_text@(order: "[XYZI01234567890SWUBRG/|;]") +
replace@( replace@(
# No lookbehind :( # No lookbehind :(
#match: "(?<!/)(./.|././.|./././.|.[|])(?!/)", #match: "(?<!/)(./.|././.|./././.|.[|])(?!/)",
match: "./.|././.|./././.|.[|]", match: "./.|././.|./././.|.[|].|.;",
in_context: "(^|[^/])<match>($|[^/])", in_context: "(^|[^/])<match>($|[^/])",
replace: {sort_text(order:"in_place((WUBRG)")} replace: {sort_text(order:"in_place((WUBRG)")}
) )
mana_has_guild := match@(match: "[/|]") # Is there guild or half mana in the input? mana_has_guild := match@(match: "[/|;]") # Is there guild or half mana in the input?
# A mana cost can contain both normal and guild mana # A mana cost can contain both normal and guild mana
mana_filter := to_upper + { mana_filter := to_upper + {
if mana_has_guild() then mana_sort_guild() if mana_has_guild() then mana_sort_guild()
...@@ -74,14 +74,14 @@ mana_to_color := { ...@@ -74,14 +74,14 @@ mana_to_color := {
else "multicolor" else "multicolor"
else if contains(type, match:"Artifact") then else if contains(type, match:"Artifact") then
# hybrid, but artifact # hybrid, but artifact
if count == 0 then "artifact" if count == 0 then "artifact"
else if count == 1 then color_names_1() + ", artifact" else if count == 1 then color_names_1() + ", artifact"
else if count == 2 then color_names_2() + ", artifact" else if count == 2 then color_names_2() + ", artifact"
else "artifact, multicolor" else "artifact, multicolor"
else else
# hybrid, not artifact # hybrid, not artifact
if count == 0 then "colorless" if count == 0 then "colorless"
else if count == 1 then color_names_1() else if count == 1 then color_names_1()
else if count == 2 then color_names_2() + ", hybrid" else if count == 2 then color_names_2() + ", hybrid"
else "multicolor" else "multicolor"
} }
...@@ -118,24 +118,24 @@ land_to_color := { ...@@ -118,24 +118,24 @@ land_to_color := {
text_to_color := { text_to_color := {
# Note: running filter_text is quite slow, do a quick 'contains' check first # Note: running filter_text is quite slow, do a quick 'contains' check first
if contains(match: card_name) then ( if contains(match: card_name) then (
text := filter_text(match: "is (colorless|all colors|((blue|white|green|red|black)((,|,? and) (blue|white|green|red|black))*))", in_context: regex_escape(card_name)+"(</[-a-z]+>)* <match>\\.") text := filter_text(match: "is (colorless|all colors|((blue|white|green|red|black)((,|,? and) (blue|white|green|red|black))*))", in_context: regex_escape(card_name)+"(</[-a-z]+>)* <match>\\.")
if text != "" then ( if text != "" then (
if contains(text, match: "all colors") then ( if contains(text, match: "all colors") then (
colors := "WUBRG" colors := "WUBRG"
if land = "land" then land_multicolor() if land = "land" then land_multicolor()
else mana_to_color(hybrid: "") else mana_to_color(hybrid: "")
) else ( ) else (
colors := "" colors := ""
if contains(text, match: "white") then colors := colors + "W" if contains(text, match: "white") then colors := colors + "W"
if contains(text, match: "blue") then colors := colors + "U" if contains(text, match: "blue") then colors := colors + "U"
if contains(text, match: "black") then colors := colors + "B" if contains(text, match: "black") then colors := colors + "B"
if contains(text, match: "red") then colors := colors + "R" if contains(text, match: "red") then colors := colors + "R"
if contains(text, match: "green") then colors := colors + "G" if contains(text, match: "green") then colors := colors + "G"
if land = "land" then land_multicolor() if land = "land" then land_multicolor()
else mana_to_color(hybrid: "") else mana_to_color(hybrid: "")
) )
) )
) else nil )
} }
# The color of a card # The color of a card
...@@ -148,7 +148,7 @@ is_spell := match@(match: "(?i)Instant|Sorcery") ...@@ -148,7 +148,7 @@ is_spell := match@(match: "(?i)Instant|Sorcery")
card_color := { card_color := {
# usually the color of mana # usually the color of mana
text_color := text_to_color(rules_text, land: is_land(type)); text_color := text_to_color(rules_text, land: is_land(type));
if text_color == nil then ( if text_color == "" then (
mana_color := mana_to_color(colors: color_filter(casting_cost), hybrid: color_filterH(casting_cost)) mana_color := mana_to_color(colors: color_filter(casting_cost), hybrid: color_filterH(casting_cost))
if mana_color == "colorless" and is_land (type) then land_to_color(watermark) if mana_color == "colorless" and is_land (type) then land_to_color(watermark)
else if mana_color == "colorless" and is_artifact(type) then "artifact" else if mana_color == "colorless" and is_artifact(type) then "artifact"
...@@ -196,7 +196,7 @@ sort_name := ...@@ -196,7 +196,7 @@ sort_name :=
# Remove "The", "A", and "And" at the beginning # Remove "The", "A", and "And" at the beginning
replace@(match: "^(The|An?) ", replace: "") + replace@(match: "^(The|An?) ", replace: "") +
# Remove commas and apostrophes # Remove commas and apostrophes
replace@(match: "(,|'|’)", replace: "") + replace@(match: "(,|'|’|;)", replace: "") +
# Remove bold and italic tags # Remove bold and italic tags
replace@(match: "(<b>|<i>|</b>|</i>)", replace: "") + replace@(match: "(<b>|<i>|</b>|</i>)", replace: "") +
# Make lowercase # Make lowercase
...@@ -329,7 +329,7 @@ add := "" # default is nothing ...@@ -329,7 +329,7 @@ add := "" # default is nothing
for_mana_costs := format_cost := { for_mana_costs := format_cost := {
if input.separator_before == "—" and contains(input.param, match: " ") then ( if input.separator_before == "—" and contains(input.param, match: " ") then (
if contains(input.param, match:",") then ( if contains(input.param, match:",") then (
if match(match: "^[SCTQXYZIWUBRG0-9/|]+,", input.param) then if match(match: "^[SCTQXYZIWUBRG0-9/|;]+,", input.param) then
"{add}<param-cost>{combined_cost(input.param)}</param-cost>" "{add}<param-cost>{combined_cost(input.param)}</param-cost>"
else "<param-cost>{combined_cost(input.param)}</param-cost>" else "<param-cost>{combined_cost(input.param)}</param-cost>"
) else ) else
...@@ -342,7 +342,7 @@ alternative_cost := replace@(match:"^[A-Z]", replace: { to_lower() }) ...@@ -342,7 +342,7 @@ alternative_cost := replace@(match:"^[A-Z]", replace: { to_lower() })
# #
combined_cost := replace@(match:", [A-Z]", replace: { to_lower() })+ combined_cost := replace@(match:", [A-Z]", replace: { to_lower() })+
replace@(match:",", replace:" and")+ replace@(match:",", replace:" and")+
replace@(match:"^[SCTQXYZIWUBRG0-9/|]", in_context: "(^|[[:space:]])<match>", replace: "<sym-auto>&</sym-auto>")+ replace@(match:"^[SCTQXYZIWUBRG0-9/|;]", in_context: "(^|[[:space:]])<match>", replace: "<sym-auto>&</sym-auto>")+
replace@(match:"^[A-Z]", replace: { to_lower() }) replace@(match:"^[A-Z]", replace: { to_lower() })
long_dash := replace@(match:"-", replace:"—") long_dash := replace@(match:"-", replace:"—")
...@@ -368,8 +368,8 @@ mana_context := ...@@ -368,8 +368,8 @@ mana_context :=
|adds?|pay(ed)?[ ](with|using) |adds?|pay(ed)?[ ](with|using)
) )
([ ]either)? # pay either X or Y ([ ]either)? # pay either X or Y
([ ](<sym[^>]*>)?[SCTQXYZIWUBRG0-9/|]+(</sym[^>]*>)?,)* # pay X, Y or Z ([ ](<sym[^>]*>)?[SCTQXYZIWUBRG0-9/|;]+(</sym[^>]*>)?,)* # pay X, Y or Z
([ ](<sym[^>]*>)?[SCTQXYZIWUBRG0-9/|]+(</sym[^>]*>)?[ ](and|or|and/or))* # pay X or Y ([ ](<sym[^>]*>)?[SCTQXYZIWUBRG0-9/|;]+(</sym[^>]*>)?[ ](and|or|and/or))* # pay X or Y
[ ]<match> [ ]<match>
([,.)]|$ # (end of word) ([,.)]|$ # (end of word)
|[ ][^ .,]*$ # still typing... |[ ][^ .,]*$ # still typing...
...@@ -448,16 +448,18 @@ text_filter := ...@@ -448,16 +448,18 @@ text_filter :=
) + ) +
# step 4 : explict non mana symbols # step 4 : explict non mana symbols
replace@( replace@(
match: "\\][SCTQXYZIWUBRG0-9/|]+\\[", match: "\\][SCTQXYZIWUBRG0-9/|;]+\\[",
replace: {"<nosym>" + mana_filter_t() + "</nosym>"} ) + replace: {"<nosym>" + mana_filter_t() + "</nosym>"} ) +
########Be sure to thank Shiv2503 if you see this and him, because without his work, Phyrexian Mana wouldn't work in text. Thanks, Shiv. ;) -AF
# step 5 : add mana & tap symbols # step 5 : add mana & tap symbols
replace@( replace@(
match: "\\b[SCTQXYZIWUBRG0-9/|]+\\b", match: "[;|]?\\b[SCTQXYZIWUBRG0-9/|;]+\\b",
in_context: mana_context, in_context: mana_context,
replace: {"<sym-auto>" + mana_filter_t() + "</sym-auto>"} ) + replace: {"<sym-auto>" + mana_filter_t() + "</sym-auto>"} ) +
########
# step 5b : add explict mana symbols # step 5b : add explict mana symbols
replace@( replace@(
match: "\\[[SCTQXYZIWUBRG0-9/|]+\\]", match: "\\[[SCTQXYZIWUBRG0-9/|;]+\\]",
replace: {"<sym>" + mana_filter_t() + "</sym>"} ) + replace: {"<sym>" + mana_filter_t() + "</sym>"} ) +
# step 6 : curly quotes # step 6 : curly quotes
curly_quotes + curly_quotes +
...@@ -517,15 +519,13 @@ sub_type_filter := { ...@@ -517,15 +519,13 @@ sub_type_filter := {
input := remove_tag(tag: "<soft") input := remove_tag(tag: "<soft")
lang := language() lang := language()
# What word list to use? # What word list to use?
list_type_rest := list_type_rest := if lang.is_creature(type) then "class"
if lang.is_creature(type) then "class" else if lang.is_land(type) then "land"
else if lang.is_land(type) then "land" else if lang.is_artifact(type) then "artifact"
else if lang.is_artifact(type) then "artifact" else if lang.is_enchantment(type) then "enchantment"
else if lang.is_enchantment(type) then "enchantment" else if lang.is_spell(type) then "spell"
else if lang.is_spell(type) then "spell" else if lang.is_planeswalker(type) then "planeswalker"
else if lang.is_planeswalker(type) then "planeswalker" if list_type_rest != "" then (
else nil
if list_type_rest != nil then (
if lang.is_creature(type) or lang.is_tribal(type) then ( if lang.is_creature(type) or lang.is_tribal(type) then (
list_type_first := "race" list_type_first := "race"
) else ( ) else (
...@@ -587,14 +587,28 @@ typesymbol_type := { typesymbol_for(card.super_type) } ...@@ -587,14 +587,28 @@ typesymbol_type := { typesymbol_for(card.super_type) }
#Script to make magic-mana-future compatible w/ other templates #Script to make magic-mana-future compatible w/ other templates
colorless_color := { "c" } colorless_color := { "c" }
#Script determining Night or Day transformations
is_night := {
card.transformation == "night"
}
is_day := {
card.transformation == "day"
}
has_no_cost := {
is_day() and card.casting_cost == "" or
is_night() and card.casting_cost_2 == ""
}
############################################################## Statistics utilities ############################################################## Statistics utilities
# Converted mana cost # Converted mana cost
is_half_mana := match@(match: "1/2|[|][WUBRGS]") is_half_mana := match@(match: "1/2|[|][WUBRGS]")
is_colored_mana := match@(match: "[WUBRG]") is_colored_mana := match@(match: "[WUBRG]")
is_phyrexian_mana := match@(match: "[;][WUBRGC]")
only_numbers := filter_text@(match: "^[0123456789]+") only_numbers := filter_text@(match: "^[0123456789]+")
cmc_split := break_text@(match: "(?ix) 1/2 | [|][WUBRG] | [0-9]+(?!/[WUBRGSCTQ2]) | [WUBRGS0-9](/[WUBRGS])\{0,4} ") cmc_split := break_text@(match: "(?ix) 1/2 | [|][WUBRG] | [;][WUBRG1] | [0-9]+(?!/[WUBRGSCTQ2]) | [WUBRGS0-9](/[WUBRGS])\{0,4} ")
cmc := {to_number( cmc := {to_number(
for each sym in cmc_split(to_text()) do ( for each sym in cmc_split(to_text()) do (
numbers := only_numbers(sym) numbers := only_numbers(sym)
......
...@@ -70,6 +70,17 @@ set field: ...@@ -70,6 +70,17 @@ set field:
choice: after other cards choice: after other cards
choice: separate numbering choice: separate numbering
initial: after other cards initial: after other cards
set field:
type: choice
name: default rarity
description: Sets a default rarity for all the cards in the set.
choice: basic land
choice: common
choice: uncommon
choice: rare
choice: mythic rare
choice: special
initial: common
set field: set field:
type: choice type: choice
name: card language name: card language
...@@ -162,3 +173,12 @@ default set style: ...@@ -162,3 +173,12 @@ default set style:
choice images: choice images:
English: /magic.mse-game/icons/language-en.png English: /magic.mse-game/icons/language-en.png
Français: /magic.mse-game/icons/language-fr.png Français: /magic.mse-game/icons/language-fr.png
default rarity:
render style: both
choice images:
basic land: /magic.mse-game/icons/common.png
common: /magic.mse-game/icons/common.png
uncommon: /magic.mse-game/icons/uncommon.png
rare: /magic.mse-game/icons/rare.png
mythic rare: /magic.mse-game/icons/mythicrare.png
special: /magic.mse-game/icons/special.png
# This script contains tests of the functions defined in other script files.
# These are not used during normal execution, they are only used for development.
# When everything is right, all these tests pass.
##############################################################
# card_color_color_count
##############################################################
assert(card_color_color_count("") == 0)
assert(card_color_color_count("asdf") == 0)
assert(card_color_color_count("white") == 1)
assert(card_color_color_count("artifact,white") == 2)
##############################################################
# converted mana cost
##############################################################
assert(cmc("") == 0)
assert(cmc("0") == 0)
assert(cmc("1/2") == 0.5)
assert(cmc("2/R3/W") == 5)
assert(cmc("W/UW") == 2)
assert(cmc("RRR") == 3)
assert(cmc("2X") == 2)
assert(cmc("22") == 22)
assert(cmc("20WUBRG") == 25)
...@@ -398,6 +398,7 @@ word list: ...@@ -398,6 +398,7 @@ word list:
script: all_sub_types(match: "Enchantment") script: all_sub_types(match: "Enchantment")
line below: true line below: true
word: Aura word: Aura
word: Curse
word: Shrine word: Shrine
word list: word list:
......

############################################################## Magic word lists
word list:
name: type
word:
name: de base
is prefix: true
word:
name: légendaire
is prefix: true
word:
name: tribaux
is prefix: true
word:
name: de neige
is prefix: true
word:
name: monde
is prefix: true
line below: true
word: Créature
word: Artefact
word: Artefact Créature
word: Enchantement
word: Instant
word: Rituel
word: Terrain
word: Planeswalker
word list:
name: race
word:
script: all_races()
line below: true
word: Angel
word: Beast
word: Bird
word: Construct
word: Demon
word: Dragon
word: Drake
word: Elemental
word: Elf
word: Faerie
word: Giant
word: Goblin
word: Golem
word: Human
word: Illusion
word: Merfolk
word: Treefolk
word: Zombie
word:
name: All Races
word:
name: A
word: Angel
word: Anteater
word: Antelope
word: Ape
word: Archon
word: Assembly-Worker
word: Atog
word: Aurochs
word: Avatar
word:
name: B
word: Badger
word: Basilisk
word: Bat
word: Bear
word: Beast
word: Beeble
word: Bird
word: Blinkmoth
word: Boar
word: Bringer
word: Brushwagg
word:
name: C
word: Camarid
word: Camel
word: Caribou
word: Cat
word: Centaur
word: Cephalid
word: Chimera
word: Cockatrice
word: Construct
word: Crab
word: Crocodile
word: Cyclops
word:
name: D
word: Dauthi
word: Demon
word: Devil
word: Djinn
word: Dragon
word: Drake
word: Dreadnought
word: Dryad
word: Dwarf
word:
name: E
word: Efreet
word: Egg
word: Elemental
word: Elephant
word: Elf
word: Elk
word: Eye
word:
name: F
word: Faerie
word: Ferret
word: Fish
word: Fox
word: Frog
word: Fungus
word:
name: G
word: Gargoyle
word: Giant
word: Gnome
word: Goat
word: Goblin
word: Golem
word: Gorgon
word: Graveborn
word: Griffin
word:
name: H
word: Hag
word: Harpy
word: Hellion
word: Hippo
word: Homarid
word: Homunculus
word: Horror
word: Horse
word: Hound
word: Human
word: Hydra
word: Hyena
word:
name: I
word: Illusion
word: Imp
word: Incarnation
word: Insect
word:
name: J
word: Jellyfish
word: Juggernaut
word:
name: K
word: Kavu
word: Kirin
word: Kithkin
word: Kobold
word: Kor
word: Kraken
word:
name: L
word: Lammasu
word: Leech
word: Leviathan
word: Lhurgoyf
word: Licid
word: Lizard
word:
name: M
word: Manticore
word: Masticore
word: Merfolk
word: Metathran
word: Minotaur
word: Mongoose
word: Moonfolk
word: Mutant
word: Myr
word:
name: N
word: Nautilus
word: Nephilim
word: Nightmare
word: Nightstalker
word: Noggle
word:
name: O
word: Octopus
word: Ogre
word: Ooze
word: Orb
word: Orc
word: Orgg
word: Ouphe
word: Ox
word: Oyster
word:
name: P
word: Pegasus
word: Pentavite
word: Pest
word: Phelddagrif
word: Phoenix
word: Pincher
word: Plant
word: Prism
word:
name: R
word: Rabbit
word: Rat
word: Reflection
word: Rhino
word:
name: S
word:
name: Sa-Sl
word: Salamander
word: Sand
word: Saproling
word: Satyr
word: Scarecrow
word: Scorpion
word: Serpent
word: Shade
word: Shapeshifter
word: Sheep
word: Skeleton
word: Slith
word: Sliver
word: Slug
word:
name: Sn-Sz
word: Snake
word: Soltari
word: Spawn
word: Specter
word: Sphinx
word: Spider
word: Spike
word: Spirit
word: Splinter
word: Sponge
word: Squid
word: Squirrel
word: Starfish
word:
name: T
word: Tetravite
word: Thalakos
word: Thopter
word: Thrull
word: Treefolk
word: Triskelavite
word: Troll
word: Turtle
word:
name: U
word: Unicorn
word:
name: V
word: Vampire
word: Vedalken
word: Viashino
word: Volver
word:
name: W
word: Wall
word: Weird
word: Whale
word: Wolf
word: Wolverine
word: Wombat
word: Worm
word: Wraith
word: Wurm
word:
name: Y
word: Yeti
word:
name: Z
word: Zombie
word: Zubera
word list:
name: class
word:
script: all_classes()
line below: true
word: Advisor
word: Archer
word: Artificer
word: Assassin
word: Beast
word: Cleric
word: Druid
word: Knight
word: Mutant
word: Rogue
word: Scout
word: Shaman
word: Soldier
word: Warrior
word: Wizard
word: Zombie
word:
name: All Classes
word:
name: A-C
word: Advisor
word: Archer
word: Archon
word: Artificer
word: Assassin
word: Barbarian
word: Beast
word: Berserker
word: Bringer
word: Carrier
word: Citizen
word: Cleric
word: Coward
word:
name: D-I
word: Deserter
word: Dreadnought
word: Drone
word: Druid
word: Elder
word: Flagbearer
word: Horror
word: Incarnation
word:
name: J-P
word: Juggernaut
word: Knight
word: Leviathan
word: Mercenary
word: Minion
word: Monger
word: Monk
word: Mutant
word: Mystic
word: Ninja
word: Nomad
word: Pirate
word:
name: R-S
word: Rebel
word: Reflection
word: Rigger
word: Rogue
word: Samurai
word: Scout
word: Serf
word: Shaman
word: Soldier
word: Spellshaper
word: Survivor
word:
name: T-Z
word: Thopter
word: Vampire
word: Warrior
word: Wizard
word: Zombie
word list:
name: artifact
word:
name:
line below: true
word: Contraption
word: Equipment
word: Fortification
word list:
name: land
word:
script: all_sub_types(match: "Land")
line below: true
word: Plains
word: Island
word: Swamp
word: Mountain
word: Forest
word: Desert
word: Lair
word: Locus
word: Mine
word: Power-Plant
word: Tower
word: Urza's
word list:
name: enchantment
word:
name:
line below: true
word: Aura
word: Shrine
word list:
name: spell
word:
name:
line below: true
word: Arcane
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