579 lines
17 KiB
Plaintext
579 lines
17 KiB
Plaintext
mse version: 2.0.0
|
|
game: magic
|
|
short name: M15 Spellbook
|
|
full name: w/Flavor Bar
|
|
icon: card-sample.png
|
|
installer group: magic/m15 style/normal cards
|
|
position hint: 018
|
|
|
|
version: 2018-05-03
|
|
depends on:
|
|
package: magic.mse-game
|
|
version: 2014-06-25
|
|
depends on:
|
|
package: magic-default-image.mse-include
|
|
version: 2007-09-23
|
|
depends on:
|
|
package: magic-watermarks.mse-include
|
|
version: 2007-09-23
|
|
depends on:
|
|
package: magic-identity-new.mse-include
|
|
version: 2012-01-22
|
|
depends on:
|
|
package: magic-mana-small-spellbook.mse-symbol-font
|
|
version: 2018-05-07
|
|
depends on:
|
|
package: magic-mana-large.mse-symbol-font
|
|
version: 2007-09-23
|
|
depends on:
|
|
package: magic-mana-small.mse-symbol-font
|
|
version: 2007-09-23
|
|
|
|
card width: 375
|
|
card height: 523
|
|
card dpi: 150
|
|
##### Flavor bar image by SirnightNano
|
|
##### Blue spellbook image by HQ Cardgen
|
|
##### Other images colorshifted by Cajun
|
|
############################################################## 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 }
|
|
|
|
template_prefix := [card: "" pt: "" identity: "/magic-identity-new.mse-include/"]
|
|
template_suffix := [card: "card.jpg" pt: "pt.png" identity: "identity.png"]
|
|
template := { template_prefix[type] + input + template_suffix[type] }
|
|
land_template := { template_prefix[type] + input + template_suffix[type] }
|
|
# 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 }
|
|
|
|
# Is the card a promo card?
|
|
is_promo := { styling.promo }
|
|
mana_sort := {
|
|
if styling.unsorted_casting_cost then
|
|
input
|
|
else
|
|
sort_text@(order: "XYZI[0123456789]HSCA(WUBRG)")()
|
|
}
|
|
has_identity := { styling.color_indicator_dot }
|
|
is_unsorted := {styling.remove_from_autocount}
|
|
|
|
top_of_textbox := {if styling.chop_top != "" then (335 - (-styling.chop_top)) else 335 }
|
|
bottom_of_textbox := {if styling.chop_bottom != "" then (460 - styling.chop_bottom) else 460 }
|
|
paragraph_count := filter_text@(match:"\n")
|
|
hard_paragraph_count :=
|
|
replace@(match:"<soft-line>\n", replace:"")+
|
|
filter_text@(match:"\n")
|
|
soft_break_filter :=
|
|
filter_text @(match:"<", in_context: "<match>soft-line>")
|
|
flavor_text := {remove_tags(card.flavor_text) + "\n"}
|
|
length_of_flavor := { to_int(length(split_text(match:"\n", flavor_text()).0)) }
|
|
hard_flavor_break := { if not contains(card.flavor_text, match:"\n") then 0 else if contains(card.flavor_text, match:"<soft-line>\n") then 0 else if lines_of_rules() >= 3 then -3 else -2}
|
|
char_per_line := { (if card_style.text.content_lines == "9" then 60 else if card_style.text.content_lines == "8" then 52 else if card_style.text.content_lines == "7" then 49 else if card_style.text.content_lines == "6" then 46 else 42.5) + (if card_style.text.content_lines < 7 then (4*chop_correction())/line_height())}
|
|
chop_correction := { (if styling.chop_bottom != "" then styling.chop_bottom else 0) }
|
|
lines_of_flavor := { to_int((length_of_flavor() / char_per_line()) + 0.99) + (if length(split_text(match:"\n", flavor_text()).1) >= max(43,char_per_line()-4) then 2 else if split_text(match:"\n", flavor_text()).1 != "" then length(soft_break_filter(card.flavor_text)) else 0) + length(filter_text(styling.flavor_bar_offset, match:"u")) - length(filter_text(styling.flavor_bar_offset, match:"d")) + (if contains(card.notes, match:"!fbu") then 1 else 0)}
|
|
lines_of_rules := { card_style.text.content_lines - lines_of_flavor() }
|
|
line_height := {(card_style.text.content_height / card_style.text.content_lines)}
|
|
height_of_flavor := { lines_of_flavor() * line_height() }
|
|
padding_height := { 0.5*(bottom_of_textbox() - top_of_textbox() - card_style.text.content_height) }
|
|
linebreak_height := { 2*length(hard_paragraph_count(card.rule_text)) }
|
|
uneven_correction := { if lines_of_flavor() == 1 then max(4, (card_style.text.content_lines - (2*lines_of_flavor()))) else (card_style.text.content_lines - (2*lines_of_flavor())) }
|
|
bar_offset := {if styling_offset() == "-" then 0 else if styling_offset() != "" then -styling_offset() else 0}
|
|
styling_offset := { replace(styling.flavor_bar_offset, match:"(u|d)+", replace: "") }
|
|
bar_equation := { top_of_textbox() + padding_height() + card_style.text.content_height - height_of_flavor() + linebreak_height() - uneven_correction() + correction_coeff() + bar_offset() + hard_flavor_break() +1 }
|
|
correction_coeff := {
|
|
(if lines_of_rules() == 1 then
|
|
(if lines_of_flavor() == 1 then 3
|
|
else if lines_of_flavor() == 2 then 1
|
|
else if lines_of_flavor() == 3 then 1.5
|
|
else if lines_of_flavor() == 4 then 0
|
|
else 5 - lines_of_flavor())
|
|
else if lines_of_rules() == 2 and linebreak_height() == 2 then
|
|
(if lines_of_flavor() == 1 then 1
|
|
else if lines_of_flavor() == 2 then 1
|
|
else if lines_of_flavor() == 3 then 2
|
|
else if lines_of_flavor() == 4 then 2
|
|
else 3)
|
|
else if lines_of_rules() == 2 then
|
|
(if lines_of_flavor() == 1 then 1
|
|
else if lines_of_flavor() == 2 then 0
|
|
else if lines_of_flavor() == 3 then 0
|
|
else if lines_of_flavor() == 4 then 0
|
|
else -1)
|
|
else if lines_of_rules() == 3 and linebreak_height() == 2 then
|
|
(if lines_of_flavor() == 1 then 0
|
|
else if lines_of_flavor() == 2 then 0
|
|
else if lines_of_flavor() == 3 then 1
|
|
else if lines_of_flavor() == 4 then 1
|
|
else 2)
|
|
else if lines_of_rules() == 3 then
|
|
(if lines_of_flavor() == 1 then 0
|
|
else if lines_of_flavor() == 2 then -1
|
|
else if lines_of_flavor() == 3 then -0.5
|
|
else if lines_of_flavor() == 4 then -1
|
|
else 0)
|
|
else if lines_of_rules() == 4 and linebreak_height() == 2 then
|
|
(-2 + lines_of_flavor())
|
|
else if lines_of_rules() == 4 then
|
|
(if lines_of_flavor() == 1 then -1
|
|
else if lines_of_flavor() == 2 then 0
|
|
else if lines_of_flavor() == 3 then -0.5
|
|
else -1)
|
|
else if lines_of_rules() == 5 and linebreak_height() == 4 then
|
|
(-5 + lines_of_flavor())
|
|
else if lines_of_rules() == 5 and linebreak_height() == 2 then
|
|
(-2 + lines_of_flavor())
|
|
else if lines_of_rules() == 5 then
|
|
(2 - lines_of_flavor())
|
|
else if lines_of_rules() == 6 and linebreak_height() == 2 then
|
|
(-1 - lines_of_flavor())
|
|
else if lines_of_rules() == 6 then
|
|
(2 - lines_of_flavor())
|
|
else 0) + (if linebreak_height() >= 4 then 0.5*linebreak_height()-1)
|
|
}
|
|
############################################################## 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: text
|
|
name: chop top
|
|
description: Shrinks the textbox from the top.
|
|
styling field:
|
|
type: text
|
|
name: chop bottom
|
|
description: Shrinks the textbox from the bottom.
|
|
styling field:
|
|
type: text
|
|
name: flavor bar offset
|
|
description: Moves the flavor bar.
|
|
styling field:
|
|
type: boolean
|
|
name: use flavor bar
|
|
description: Enables the flavor bar.
|
|
styling field:
|
|
type: boolean
|
|
name: black on black
|
|
description: Uses black font on the monoblack text box. (Default white)
|
|
initial: no
|
|
styling field:
|
|
type: boolean
|
|
name: use holofoil stamps
|
|
description: Change to no to disable rare holofoil stamps
|
|
styling field:
|
|
type: boolean
|
|
name: color indicator dot
|
|
description: Use the color indicator dot
|
|
initial: no
|
|
styling field:
|
|
type: boolean
|
|
name: remove from autocount
|
|
description: Removes the automatic card number for specific cards, to allow for overcounted cards like in Planeswalker Decks.
|
|
initial: no
|
|
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: unsorted casting cost
|
|
description: Disables automatic mana symbol sorting.
|
|
initial: no
|
|
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: promo
|
|
description: Is this card a promo card, with the "P" rarity?
|
|
initial: no
|
|
styling field:
|
|
type: boolean
|
|
name: inverted common symbol
|
|
description: Should the common rarity symbol be inverted, like in Coldsnap?
|
|
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 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-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") }
|
|
############################################################## 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
|
|
z index: 4
|
|
mask: border_mask.png
|
|
card color:
|
|
left: 0
|
|
top: 0
|
|
width: 375
|
|
height: 523
|
|
z index: 0
|
|
render style: image
|
|
popup style: in place
|
|
image: { card_background() }
|
|
############################# Name line
|
|
name:
|
|
left: { if card.card_symbol=="none" then 32 else 50 }
|
|
top: 30
|
|
right: { 341 - card_style.casting_cost.content_width }
|
|
height: 23
|
|
alignment: bottom shrink-overflow
|
|
padding bottom: 0
|
|
z index: 1
|
|
font:
|
|
name: Beleren Bold
|
|
size: 16
|
|
color: white
|
|
casting cost:
|
|
right: 346
|
|
top: 29
|
|
width: { max(30, card_style.casting_cost.content_width) + 5 }
|
|
height: 23
|
|
alignment: middle right
|
|
font:
|
|
name: MPlantin
|
|
size: 15
|
|
symbol font:
|
|
name: magic-mana-small-spellbook
|
|
size: 15
|
|
alignment: middle right
|
|
always symbol: true
|
|
z index: 2
|
|
padding top: 0
|
|
card symbol:
|
|
left: {if card.card_symbol=="none" then 20 else 30}
|
|
top: 29
|
|
height: 20
|
|
width: 14
|
|
z index: 1
|
|
render style: image
|
|
choice images:
|
|
tombstone: tombstone.png
|
|
############################# Image
|
|
image:
|
|
left: 29
|
|
top: 59
|
|
width: 315
|
|
height: 231
|
|
z index: 1
|
|
default: {default_image(card.card_color)}
|
|
############################# Card type
|
|
indicator:
|
|
left: 31
|
|
top: 300
|
|
width: 17
|
|
height: 17
|
|
z index: 2
|
|
render style: image
|
|
visible: { has_identity() }
|
|
image: { card_identity() }
|
|
type:
|
|
left: { if has_identity() then "52" else "32" }
|
|
top: 296
|
|
width: { (if has_identity() then "290" else "310") - max(22,card_style.rarity.content_width) }
|
|
height: 20
|
|
alignment: top shrink-overflow
|
|
z index: 1
|
|
padding top: 2
|
|
font:
|
|
name: Beleren Bold
|
|
size: 13
|
|
color: white
|
|
separator color: red
|
|
rarity:
|
|
right: 344
|
|
top: 297
|
|
width: 44
|
|
height: 22
|
|
z index: 2
|
|
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")
|
|
masterpiece: script: symbol_variation(symbol: set.masterpiece_symbol, variation: "mythic rare")
|
|
############################# Text box
|
|
text:
|
|
left: 29
|
|
top: { top_of_textbox() }
|
|
width: 314
|
|
bottom: { bottom_of_textbox() }
|
|
font:
|
|
name: MPlantin
|
|
italic name: MPlantin-Italic
|
|
size: 14
|
|
scale down to: 6
|
|
color: { if card.card_color == "black" and not styling.black_on_black then "white" else "black" }
|
|
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 right: 4
|
|
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
|
|
watermark:
|
|
left: 117
|
|
top: 321
|
|
width: 138
|
|
height: 166
|
|
z index: 1
|
|
render style: image
|
|
popup style: in place
|
|
alignment: middle center
|
|
include file: /magic-watermarks.mse-include/watermarks
|
|
############################# PT
|
|
pt:
|
|
z index: 2
|
|
left: 286
|
|
top: 469
|
|
width: 60
|
|
height: 28
|
|
alignment: center middle shrink-overflow
|
|
font:
|
|
name: Beleren Bold
|
|
size: 16
|
|
color: black
|
|
separator color: red
|
|
############################# Card sorting / numbering
|
|
set code:
|
|
left: 24
|
|
top: 498
|
|
width: 40
|
|
height: 10
|
|
z index: 1
|
|
font:
|
|
name: Relay-Medium
|
|
size: 7
|
|
color: white
|
|
weight: bold
|
|
############################# Copyright stuff
|
|
illustrator:
|
|
left: { 44 + card_style.set_code.content_width }
|
|
top: 497.5
|
|
width: 200
|
|
height: 10
|
|
z index: 1
|
|
font:
|
|
name: Beleren Small Caps Bold
|
|
size: 7.25
|
|
color: white
|
|
copyright:
|
|
right: 350
|
|
top: { if card.pt != "" then 500 else 488 }
|
|
width: 140
|
|
height: 10
|
|
z index: 2
|
|
visible: {not set.automatic_copyright}
|
|
alignment: middle right shrink-overflow
|
|
font:
|
|
name: Matrix
|
|
size: 7
|
|
color: white
|
|
weight: bold
|
|
############################################################## Extra card fields
|
|
extra card field:
|
|
type: text
|
|
name: card code
|
|
save value: false
|
|
script:
|
|
if set.automatic_card_numbers and not styling.remove_from_autocount then
|
|
forward_editor(prefix: card_number_m15() + "/" + card_count_m15() + " " + rarity_code() + " ", field: card.card_code_text)
|
|
else
|
|
combined_editor(field1: card.custom_card_number, separator: " " + rarity_code() + " ", field2: card.card_code_text)
|
|
extra card field:
|
|
type: choice
|
|
name: artist arrow
|
|
editable: false
|
|
save value: false
|
|
choice: white
|
|
extra card field:
|
|
type: choice
|
|
name: pt box
|
|
script: card.card_color
|
|
editable: false
|
|
save value: false
|
|
extra card field:
|
|
type: choice
|
|
name: foil layer
|
|
choice: foil
|
|
save value: false
|
|
editable: false
|
|
extra card field:
|
|
type: text
|
|
name: auto copyright
|
|
script: set.copyright
|
|
save value: false
|
|
editable: false
|
|
show statistics: false
|
|
extra card field:
|
|
type: choice
|
|
name: flavor bar
|
|
choice: bar
|
|
editable: false
|
|
save value: false
|
|
show statistics: false
|
|
extra card style:
|
|
card code:
|
|
left: 24
|
|
top: 488
|
|
width: 120
|
|
height: 10
|
|
z index: 1
|
|
font:
|
|
name: Relay-Medium
|
|
size: 7
|
|
color: white
|
|
weight: bold
|
|
artist arrow:
|
|
left: { 28 + card_style.set_code.content_width }
|
|
top: 500
|
|
width: 12
|
|
height: 7
|
|
z index: 1
|
|
render style: image
|
|
image: artist_arrow.png
|
|
pt box:
|
|
left: 273
|
|
top: 466
|
|
width: 81
|
|
height: 42
|
|
z index: 1
|
|
visible: { card.pt != "" }
|
|
render style: image
|
|
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"}
|
|
mask: { if is_rare() then "foil_mask_rare.png" else "foil_mask.png" }
|
|
auto copyright:
|
|
right: 350
|
|
top: { if card.pt != "" then 500 else 488 }
|
|
width: 140
|
|
height: 10
|
|
z index: 2
|
|
alignment: middle right shrink-overflow
|
|
visible: {set.automatic_copyright}
|
|
font:
|
|
name: Matrix
|
|
size: 7
|
|
color: white
|
|
weight: bold
|
|
flavor bar:
|
|
left: 0
|
|
top: { bar_equation() }
|
|
width: 375
|
|
height: 1
|
|
z index: 1
|
|
render style: image
|
|
image: bar.png
|
|
visible: { styling.use_flavor_bar and card.rule_text != "" and remove_tags(card.flavor_text) != "" } |