Files
magic-set-editor-fork/data/magic-m15-adventure.mse-style/style

1317 lines
41 KiB
Plaintext

mse version: 2.0.0
game: magic
short name: M15 Adventure
full name: Mainframe
icon: card-sample.png
installer group: magic/m15 style/split cards
position hint: 011
version: 2024-05-27
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-modules.mse-include
version: 2024-10-01
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
depends on:
package: magic-mainframe-extras.mse-include
version: 2018-01-01
card width: 375
card height: 523
card dpi: 150
###### Credits
###### Standard blanks by kebelqwa
###### Spotlight blanks by Femme Fatale
###### Cleanup and coding by cajun
###### Reverse Adventures by BA Start
############################################################## 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: "/magic-modules.mse-include/cards/375 m15 simple/",
ubcard: "/magic-modules.mse-include/cards/375 m15 simple/beyond/",
double_page: "/magic-modules.mse-include/pages/double_page/",
single_page: "/magic-modules.mse-include/pages/single_page/",
null_page: "/magic-modules.mse-include/pages/null_page/",
double_flat: "/magic-modules.mse-include/pages/double_flat/",
single_flat: "/magic-modules.mse-include/pages/single_flat/",
binding: "binding/",
pt: "/magic-modules.mse-include/pts/375 m15/",
stamp: "/magic-modules.mse-include/stamps/backs/375 round/",
ubstamp: "/magic-modules.mse-include/stamps/backs/375 ub/",
spot: "spotlight/",
spotpt: "spotlight/",
spotpage: "spotlight/",
crown: "/magic-modules.mse-include/crowns/375/",
nyx: "/magic-modules.mse-include/trims/nyx/",
snowtexture: "/magic-modules.mse-include/trims/snow/",
alias: "/magic-modules.mse-include/extras/alias/",
star: "/magic-modules.mse-include/trims/star/",
identity: "/magic-modules.mse-include/indicators/"
]
template_suffix := [
card: "card.jpg",
ubcard: "card.jpg",
double_page: "page.png",
single_page: "page.png",
null_page: "page.png",
double_flat: "page.png",
single_flat: "page.png",
binding: "block.jpg",
pt: "pt.png",
stamp: "stamp.png",
ubstamp: "stamp.png",
spot: "card.png",
spotpt: "pt.png",
spotpage: "card2.png",
crown: "crown.png",
nyx: "nyx.png",
alias: "alias.png",
snowtexture: "snow.png",
star: "star.png",
identity: "identity.png"
]
template := {
if type_name(harder_script[type] or else nil) != type_name(nil)
then harder_script[type](input, land:false)
else template_prefix[type] + input + template_suffix[type]
}
land_template := {
if type_name(harder_script[type] or else nil) != type_name(nil)
then harder_script[type](input, land:true)
else template_prefix[type] + input + (if landless(type) or input == "a" then "" else "l") + template_suffix[type]
}
landless := {
landless_ar[input] or else false
}
landless_ar := [
alias: true,
binding: true,
double_flat: true,
double_page: true,
null_page: true,
nyx: true,
single_flat: true,
single_page: true,
spot: true,
spotpage: true,
spotpt: true
]
watermark_include := "/magic-modules.mse-include/watermarks"
# Use land templates for previews because they show more contrast
hybrid_previews := "land,hybrid"
null_page_blend := { color_background(type:"null_page", base_hybrid:card_hybrid, folder:template_prefix["null_page"]) }
single_page_blend := { color_background(type:"single_page", base_hybrid:card_hybrid, folder:template_prefix["single_page"]) }
double_page_blend := { color_background(type:"double_page", base_hybrid:card_hybrid, folder:template_prefix["double_page"]) }
binding_background := { color_background(type:"binding", base_hybrid:card_hybrid, folder:"blend_masks/") }
double_flat_page_blend := { color_background(type:"double_flat", base_hybrid:card_hybrid, folder:template_prefix["double_flat"]) }
single_flat_page_blend := { color_background(type:"single_flat", base_hybrid:card_hybrid, folder:template_prefix["single_flat"]) }
page_spread_blend := { color_background(type:"pages", base_hybrid:card_hybrid, folder:"blend_masks/") }
decoration_background := { color_background(type:"decoration", base_hybrid:card_hybrid, folder:"blend_masks/")}
spot_background := { color_background(type:"spot", base_hybrid:card_hybrid, folder:"blend_masks/") }
spot_page_background := { color_background(type:"spotpage", base_hybrid:card_hybrid, folder:"blend_masks/") }
spot_pt := { color_background(type:"spotpt", base_hybrid:card_hybrid, folder:"blend_masks/") }
crown_background := { color_background(type:"crown", base_hybrid: card_hybrid, folder:"blend_masks/")}
beyond_background := { color_background(type:"ubcard", base_hybrid: card_hybrid, folder:template_prefix["card"], blend_type:"card")}
# 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 }
is_spot := {contains(styling.frames, match:"Spotlight")}
is_reversed := { not is_spot() and contains(styling.frames, match:"Reversed")}
is_legend := { not is_spot() and auto_legend() }
is_vehicle := { not is_spot() and (auto_vehicle() or contains(styling.frames, match:"vehicle")) }
is_nyx := { not is_spot() and (auto_nyx() or contains(styling.frames, match:"nyx")) }
is_snow := { not is_spot() and (auto_snow() or contains(styling.frames, match:"snow")) }
is_beyond := { not is_spot() and (auto_ub() or contains(styling.frames, match:"universes beyond")) }
auto_legend := { set.auto_legends and lang_setting("is_legendary")(card.super_type) }
auto_vehicle := { contains(styling.auto_frames, match:"vehicle") and lang_setting("is_vehicle")(card.sub_type) }
auto_nyx := {
is_ench := lang_setting("is_enchantment")(card.super_type)
if not is_ench
then false ## not an enchantment
else if not set.auto_nyx
then false ## set auto disabled
else if not chosen(styling.auto_frames, choice:"nyx")
then false ## style auto disabled
else true ## auto nyx
}
auto_snow := { contains(styling.auto_frames, match:"snow") and lang_setting("is_snow")(card.super_type) }
auto_ub := { contains(styling.auto_frames, match:"universes beyond") and (card.card_stamp == "universes beyond" or card.card_stamp == "flatstamped universes beyond") }
##### flavor bar stuff
chop_correction := { chop_bot() }
top_of_textbox := {327-(-chop_top())}
bottom_of_textbox := {(if is_spot() then 464 else 481)-chop_bot()}
top_of_textbox2 := {375-(-back_chop_top())}
bottom_of_textbox2 := {(if is_spot() then 464 else 481)-back_chop_bot()}
chop_top := {to_number(pull_comma_array(styling.chop_main, cell:0, end:false))}
chop_bot := {to_number(pull_comma_array(styling.chop_main, cell:1, end:false))}
back_chop_top := {to_number(pull_comma_array(styling.chop_adventure, cell:0, end:false))}
back_chop_bot := {to_number(pull_comma_array(styling.chop_adventure, cell:1, end:false))}
##### backface bar
flavor_text2 := {remove_tags(card.flavor_text_2) + "\n"}
chop_correction2 := { 0 }
is_unsorted := {styling.remove_from_autocount}
shrink_type := {if styling.shrink_typeline_text != "" then to_number((if comma_count(styling.shrink_typeline_text) == "" then styling.shrink_typeline_text else split_text(match:",", styling.shrink_typeline_text).0)) else 0 }
shrink_name := {if styling.shrink_name_text != "" then to_number((if comma_count(styling.shrink_name_text) == "" then styling.shrink_name_text else split_text(match:",", styling.shrink_name_text).0)) else 0 }
shrink_type2 := {if styling.shrink_typeline_text != "" then to_number((if comma_count(styling.shrink_typeline_text) != "" then split_text(match:",", styling.shrink_typeline_text).1)) else 0 }
shrink_name2 := {if styling.shrink_name_text != "" then to_number((if comma_count(styling.shrink_name_text) != "" then split_text(match:",", styling.shrink_name_text).1)) else 0 }
use_evobar := {contains(styling.other_options, match:"pokemon evobar")}
is_skinned := {contains(styling.other_options, match:"godzilla style alias")}
card_shape := {"adventure"}
### Customize fonts
swap_fonts_name2_default := [
name: {"Beleren Bold"},
size: {12},
color: {"white"},
vertical: {0},
italic: {""}
]
swap_fonts_type2_default := [
name: {"Beleren Bold"},
size: {11},
color: {"white"},
vertical: {0},
italic: {""}
]
swap_fonts_pt_default := [
name: {"Beleren Bold"},
size: {16},
color: {if is_vehicle() then "white" else "black"},
vertical: {0},
italic: {""}
]
page_decoration_template := {
src := "/magic-mainframe-extras.mse-include/"
str := styling.page_decoration
if not contains(str, match:".png") then (
src := ""
str := ""
)
c := ""
pt := ""
l := ""
if contains(str, match:";color") then c := input
if contains(str, match:";pt")
and (right_name() and card.pt != "") then pt := "_pt";
if land and contains(str, match:";land") then l := "l"
replace(
str,
match:"([^;]*/)?([^/;]+)([.]png)(;.+)?",
replace:{src + _1 + c + l + _2 + pt + _3}
)
}
page_script := {
flip := if input == "none"
then false
else if input == "blank page" then
if side == "left" then true else false
else if side == "right" then
true
else false;
adj_color := if flip then color + ", reversed" else color
img := case input of
"name and type page": double_page_blend(adj_color),
"name page": single_page_blend(adj_color),
"blank page": null_page_blend(adj_color),
"name and type flat": mask_dblflat(double_flat_page_blend(adj_color)),
"name flat": mask_sngflat(single_flat_page_blend(adj_color)),
else: "";
if flip then flip_horizontal(img) else img
}
mask_dblflat := {
if no_divider() then
set_mask(image: input, mask:"double_mask.png")
else input
}
mask_sngflat := {
if no_divider() then
set_mask(image:input, mask:"single_mask.png")
else input
}
named_page := contains@(match:"name")
left_name := {
style_check := if is_spot() then "name and type page" else if is_reversed() then styling.right_style else styling.left_style
named_page(style_check)
}
right_name := {
style_check := if is_spot() then "none" else if is_reversed() then styling.left_style else styling.right_style
named_page(style_check)
}
left_page_img := {
page_script(
if is_spot() then "name and type page" else if is_reversed() then styling.right_style else styling.left_style,
color: (if left_name() then card.card_color_2 else card.card_color),
side: "left"
)
}
right_page_img := {
page_script(
if is_spot() then "none" else if is_reversed() then styling.left_style else styling.right_style,
color: (if right_name() then (if left_name() then card.card_color_3 else card.card_color_2) else card.card_color),
side: "right"
)
}
page_1_side := {
## the main text of the card
## two pages, gone
## left side page, on the right
## right side page or no pages, on the left
if left_name() and right_name() then "none"
else if left_name() then "right"
else "left"
}
page_2_side := {
## the adventure text of the card
## two pages, left (check reverse)
## left side page, left
## right side page, right
## no pages, gone
if left_name() and right_name() then
if is_reversed() then "right" else "left"
else if left_name() then "left"
else if right_name() then "right"
else "none"
}
page_3_side := {
## the second adventure text of the card
## two pages, right (check reverse)
## else, gone
if left_name() and right_name() then
if is_reversed() then "left" else "right"
else if left_name() == right_name() then
if is_reversed() then "left" else "right"
else "none"
}
reverser := ["left":"right", "right":"left"]
page_style := {
str := if input == "none" then ""
else if is_reversed() then styling[reverser[input] + "_style"]
else styling[input + "_style"]
if is_spot() then
"double"
else if contains(str, match:"type") then
"double"
else if contains(str, match:"name") then
"single"
else "null"
}
page_flat := {
str := if input == "none" then ""
else if is_reversed() then styling[reverser[input] + "_style"]
else styling[input + "_style"]
if is_spot() then false else contains(str, match:"flat")
}
page_1_flat := {page_flat(page_1_side())}
page_2_flat := {page_flat(page_2_side())}
page_3_flat := {page_flat(page_3_side())}
page_top := [
"double": 375,
"single": 358,
"null": 332
]
page_1_top := {page_top[page_style(page_1_side())]}
page_2_top := {page_top[page_style(page_2_side())]}
page_3_top := {page_top[page_style(page_3_side())]}
page_coords := [
"left": [
"page": 18,
"name_left": 32,
"name_right": 178,
"cost": 180,
"type": 32,
"text": 27,
"decoration": 0,
"flavor bar": 10,
"watermark": 20,
"spot_watermark": 30
],
"right": [
"page": 188,
"name_left": 197,
"name_right": 28,
"cost": 345,
"type": 197,
"text": 190,
"decoration": 175,
"flavor bar": 175
"watermark": 188,
"spot_watermark": 195
],
"none": [
"page": 500,
"name_left": 500,
"name_right": -10,
"cost": 500,
"type": 500,
"text": 500,
"decoration": 500,
"flavor bar": 500
"watermark": 500,
"spot_watermark": 500
]
]
no_divider := {chosen(styling.other_options, choice:"no flat page divider")}
custom_border_image := {
src := styling.custom_border_source
ps := split_text(src, match:"-color-")
if length(ps) > 1 then
"/magic-mainframe-extras.mse-include/" + ps[0] + input + (if land then "l" else "") + ps[1]
else
"/magic-mainframe-extras.mse-include/" + src
}
custom_border_blend := { color_background(type:"custom_border", base_hybrid:card_hybrid, folder:"blend_masks/") }
is_custom_border := {
if chosen(styling.frames, choice:"custom border")
then has_png(styling.custom_border_source)
else auto_custom_border()
}
# this goes at the very end
harder_script := [
crown: module_crown_template,
custom_border: custom_border_image,
decoration: page_decoration_template
alt_nyx: alt_nyx_template
]
############################################################## 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 main
description: Format as "X,Y". Shrinks main textbox X pixels from the top and Y from bottom.
styling field:
type: text
name: chop adventure
description: Format as "X,Y". Shrinks adventure textbox X pixels from the top and Y from bottom.
styling field:
type: text
name: shrink name text
description: Format as "X,Y". Shrinks main name X pixels and adventure name Y pixels.
styling field:
type: text
name: shrink typeline text
description: Format as "X,Y". Shrinks main type X pixels and adventure type Y pixels.
styling field:
type: multiple choice
name: frames
description: Frames to use. Higher choices may override lower choices.
choice: Spotlight
choice: Reversed
choice: nyx
choice: vehicle
choice: snow
choice: universes beyond
choice: custom border
styling field:
type: text
name: custom border source
description: Use this file from magic-mainframe-extras as a custom vehicle-like frame. if colored, name images like "wborder.png" and put "-color-border.png" here.
styling field:
type: multiple choice
name: auto frames
description: Automatically applies frames for multi-typed enchantments, snow, or Vehicles on the main card.
choice: nyx
choice: vehicle
choice: snow
choice: universes beyond
initial: nyx, vehicle, snow, universes beyond
styling field:
type: multiple choice
name: other options
description: Other options for the frame
choice: godzilla style alias
choice: pokemon evobar
choice: prerelease stamp
choice: no flat page divider
styling field:
type: choice
name: left style
description: Choose the type of the page section.
choice: name and type page
choice: name page
choice: blank page
choice: name and type flat
choice: name flat
choice: none
initial: name and type page
styling field:
type: choice
name: right style
description: Choose the type of the page section.
choice: name and type page
choice: name page
choice: blank page
choice: name and type flat
choice: name flat
choice: none
initial: blank page
styling field:
type: text
name: page decoration
description: Image link from magic-mainframe-extras to layer over the adventure. Add ";color" for color dependent or ";pt" for pt dependent.
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
include file: /magic-modules.mse-include/crowns/styling_fields
include file: /magic-modules.mse-include/rarities/styling_fields
styling field:
type: boolean
name: apply custom fonts
description: Enable to attempt to use custom fonts given below
initial: no
styling field:
type: text
name: custom name font
description: Formatted as "font name;font size;font color;vertical offset;italic font name" last 4 are optional. color can be a name or R,G,B,A numbers.
styling field:
type: text
name: custom type font
description: Formatted as "font name;font size;font color;vertical offset;italic font name" last 4 are optional. color can be a name or R,G,B,A numbers.
styling field:
type: text
name: custom body font
description: Formatted as "font name;font size;font color;vertical offset;italic font name" last 4 are optional. color can be a name or R,G,B,A numbers.
styling field:
type: text
name: custom pt font
description: Formatted as "font name;font size;font color;vertical offset;italic font name" last 4 are optional. color can be a name or R,G,B,A numbers.
styling field:
type: text
name: custom name 2 font
description: Formatted as "font name;font size;font color;vertical offset;italic font name" last 4 are optional. color can be a name or R,G,B,A numbers.
styling field:
type: text
name: custom type 2 font
description: Formatted as "font name;font size;font color;vertical offset;italic font name" last 4 are optional. color can be a name or R,G,B,A numbers.
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: casting cost mana symbols
match: magic-mana-*.mse-symbol-font
initial: magic-mana-large.mse-symbol-font
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") }
frames:
render style: checklist
direction: vertical
auto frames:
render style: checklist
direction: vertical
other options:
render style: checklist
direction: vertical
############################################################## Card fields
include file: /magic-modules.mse-include/corners/card_fields
include file: /magic-modules.mse-include/information/card_fields
include file: /magic-modules.mse-include/card-symbols/card_fields
include file: /magic-modules.mse-include/crowns/card_fields
include file: /magic-modules.mse-include/stamps/card_fields
include file: /magic-modules.mse-include/information/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: { (if is_spot() then "spot_" else "") + (if is_legend() then "crown" else "border") + "_mask" + (if not is_spot() and card.border_color == rgb(200,200,200) then "_silver") + ".png"}
card color:
left: 0
top: 0
width: 375
height: 523
z index: -1
render style: image
popup style: in place
image: { if is_spot() then spot_background() else if is_beyond() then beyond_background() else module_card() }
card color 2:
left: {if is_spot() then 21 else page_coords[page_2_side()]["page"]}
top: {if is_spot() then 319 else 327}
width: 170
height: {if is_spot() then 170 else 156.5}
z index: 1
render style: image
popup style: in place
image: { if is_spot() then spot_page_background() else if left_name() then left_page_img() else right_page_img() }
card color 3:
left: {page_coords[page_3_side()]["page"]}
top: 327
width: 170
height: 156.5
z index: 1
render style: image
image: {right_page_img()}
visible: {left_name() and right_name()}
############################# Name line
name:
left: { (if is_spot() then 22 else 0) + (if card.card_symbol=="none" then 32 else 50) }
top: {30 + name_font_vertical()}
right: { 341 - card_style.casting_cost.content_width }
height: { 23 - 0.5*shrink_name() }
alignment: bottom shrink-overflow
padding bottom: 0
z index: 1
font:
name: { name_font() }
italic name: { name_font_italic() }
size: { name_font_size() }
color: { name_font_color() }
name 2:
left: { page_coords[page_2_side()]["name_left"] }
top: { (if is_spot() or not page_2_flat() then 330 else 328) + (if is_spot() then 2 else 0)+ name2_font_vertical()}
right: { page_coords[page_2_side()]["name_right"] - card_style.casting_cost_2.content_width }
height: { 20 - shrink_name2() }
alignment: bottom shrink-overflow
z index: 2
font:
name: { name2_font() }
italic name: { name2_font_italic() }
size: { name2_font_size() }
color: { name2_font_color() }
name 3:
left: { page_coords[page_3_side()]["name_left"] }
top: { (if is_spot() or not page_3_flat() then 330 else 328) + (if is_spot() then 2 else 0)+ name2_font_vertical()}
right: { page_coords[page_3_side()]["name_right"] - card_style.casting_cost_3.content_width }
height: {if page_style(page_3_side()) == "null" then 0 else 20 - shrink_name2() }
alignment: bottom shrink-overflow
z index: 2
font:
name: { name2_font() }
italic name: { name2_font_italic() }
size: { name2_font_size() }
color: { name2_font_color() }
alias:
left: {if is_skinned() then 45 else 33}
top: 53
width: {if is_skinned() then 285 else if use_evobar() then max(100, card_style.alias.content_width) else 0}
height: 20
alignment: { (if is_skinned() then "center") + "bottom shrink-overflow"}
padding bottom: 0
z index: 880
font:
name: {if use_evobar() then "Matrix" else "MPlantin-Italic"}
size: {if use_evobar() then 10 else 9}
style: {if use_evobar() then "italic" else "bold"}
weight: {if use_evobar() then "italic" else "bold"}
color: {if use_evobar() then "black" else "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: { styling.casting_cost_mana_symbols }
size: 15
alignment: middle right
always symbol: true
z index: 2
padding top: 0
casting cost 2:
right: {page_coords[page_2_side()]["cost"]}
top: { if is_spot() then 330 else if page_2_flat() then 328 else 329}
width: { max(30, card_style.casting_cost_2.content_width) + 5 }
height: 23
alignment: middle right
symbol font:
name: { styling.casting_cost_mana_symbols }
size: 12
alignment: middle right
always symbol: true
z index: 2
padding top: 0
casting cost 3:
right: {page_coords[page_3_side()]["cost"]}
top: { if is_spot() then 330 else if page_3_flat() then 328 else 329}
width: { max(30, card_style.casting_cost_3.content_width) + 5 }
height: {if page_style(page_3_side()) == "null" then 0 else 23}
alignment: middle right
symbol font:
name: { styling.casting_cost_mana_symbols }
size: 12
alignment: middle right
always symbol: true
z index: 2
padding top: 0
############################# Image
image:
left: {if is_spot() then 10 else 29}
top: {if is_spot() then 13 else 59}
width: { if is_spot() then 354 else 316}
height: { if is_spot() then 298 else 231}
z index: 1
default: {default_image(card.card_color)}
mask: { if is_spot() then "imagemask.png" else ""}
############################# Card type
indicator:
left: { if is_spot() then 80 else 31 }
top: { if is_spot() then 303 else 300 }
width: 17
height: 17
z index: 1
render style: image
visible: { has_identity() }
image: { module_identity() }
type:
left: { (if is_spot() then 50 else 0) + (if has_identity() then (if is_spot() then 50 else 52) else 32) }
top: { shrink_type() + type_font_vertical() + if is_spot() then 298 else 296}
width: { (if has_identity() then "290" else "310") - rare_width() - (if is_spot() then 73 else 0) }
height: { 20 - shrink_type() }
alignment: { if is_spot() then "top center shrink-overflow" else "top shrink-overflow"}
z index: 1
padding top: 2
font:
name: { type_font() }
italic name: { type_font_italic() }
size: { type_font_size() }
color: { type_font_color() }
separator color: red
indicator 2:
left: {(if is_reversed() then 165 else 0) + (if has_identity_2() then 30 else 0)}
top: {355 + (if is_spot() then 2 else 0) }
width: 15
height: 15
z index: 2
render style: image
visible: {has_identity_2()}
image: {module_identity()}
type 2:
left: {page_coords[page_2_side()]["type"] + (if has_identity_2() then 20 else 0)}
top: {shrink_type2() + (if is_spot() or not page_2_flat() then 353 else 352)}
width: {155 - (if has_identity_2() then 20 else 0)}
height: { if page_style(page_2_side()) == "double" then 20 - shrink_type2() else 0}
alignment: top shrink-overflow
z index: 1
padding top: 2
font:
name: { type2_font() }
italic name: { type2_font_italic() }
size: { type2_font_size() }
color: { type2_font_color() }
separator color: red
type 3:
left: {page_coords[page_3_side()]["type"] + (if has_identity_2() then 20 else 0)}
top: {shrink_type2() + (if is_spot() or not page_3_flat() then 353 else 352)}
width: {155 - (if has_identity_2() then 20 else 0)}
height: { if page_style(page_3_side()) == "double" then 20 - shrink_type2() else 0 }
alignment: top shrink-overflow
z index: 1
padding top: 2
font:
name: { type2_font() }
italic name: { type2_font_italic() }
size: { type2_font_size() }
color: { type2_font_color() }
separator color: red
rarity:
right: { if is_spot() then 342 else 344}
top: { if is_spot() then 299 else 297}
width: { if is_spot() then 22 else 44}
height: 22
z index: 2
render style: image
alignment: { if is_spot() then "middle center" else "middle right"}
include file: /magic-modules.mse-include/rarities/choice_images
############################# Text box
text:
left: {page_coords[page_1_side()]["text"]}
top: { (if is_spot() then 335 else page_1_top()) + to_int(chop_top()) + body_font_vertical() }
width: {if is_spot() then 157 else if page_style(page_1_side()) == "null" then 157 else 143}
bottom: { (if is_spot() then 464 else 481) - to_int(chop_bot()) }
font:
name: { body_font() }
italic name: { body_font_italic() }
size: { body_font_size() }
scale down to: 6
color: { body_font_color() }
symbol font:
name: { styling.text_box_mana_symbols }
size: 13
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: 3
padding left: 6
padding right: 4
line height hard: {if is_modal(card.rule_text) then 0.9 else 1.2 }
line height line: 1.5
line height soft: 0.9
line height hard max: {if is_modal(card.rule_text) then 1.0 else 1.3 }
line height line max: 1.6
text 2:
left: {page_coords[page_2_side()]["text"]}
top: { page_2_top() + to_int(back_chop_top()) + body_font_vertical()}
width: {if is_spot() then 157 else if page_style(page_1_side()) == "null" then 157 else 143}
bottom: { (if is_spot() then 464 else 481) - to_int(back_chop_bot()) }
font:
name: { body_font() }
italic name: { body_font_italic() }
size: { body_font_size() }
scale down to: 6
color: { body_font_color() }
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: 3
padding left: 6
padding right: 4
line height hard: {if is_modal(card.rule_text_2) then 0.9 else 1.2 }
line height line: 1.5
line height soft: 0.9
line height hard max: {if is_modal(card.rule_text_2) then 1.0 else 1.3 }
line height line max: 1.6
text 3:
left: {page_coords[page_3_side()]["text"]}
top: { page_3_top() + to_int(chop_top()) + body_font_vertical() }
width: {if page_style(page_1_side()) == "null" then 157 else 143}
bottom: { (if is_spot() then 464 else 481) - to_int(chop_bot()) }
font:
name: { body_font() }
italic name: { body_font_italic() }
size: { body_font_size() }
scale down to: 6
color: { body_font_color() }
symbol font:
name: { styling.text_box_mana_symbols }
size: 13
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: 3
padding left: 6
padding right: 4
line height hard: {if is_modal(card.rule_text) then 0.9 else 1.2 }
line height line: 1.5
line height soft: 0.9
line height hard max: {if is_modal(card.rule_text) then 1.0 else 1.3 }
line height line max: 1.6
watermark:
left: { page_coords[page_1_side()][(if is_spot() then "spot_watermark" else "watermark")] }
top: { if is_spot() then 330 else page_1_top() }
width: { if is_spot() then 150 else 168}
bottom: {if is_spot() then 470 else 481}
z index: 2
render style: image
popup style: in place
alignment: middle center
include file: /magic.mse-game/watermarks/menu_choice_images
image: { watermark_image_1() }
watermark 2:
left: { min(page_coords[page_2_side()][(if is_spot() then "spot_watermark" else "watermark")], page_coords[page_3_side()][(if is_spot() then "spot_watermark" else "watermark")]) }
top: { page_2_top() }
width: { if is_spot() then 154 else 167}
bottom: {if is_spot() then 470 else 481}
z index: 2
render style: image
popup style: in place
alignment: middle center
include file: /magic.mse-game/watermarks/menu_choice_images
image: { watermark_image_2() }
watermark 3:
left: { page_coords[page_3_side()][(if is_spot() then "spot_watermark" else "watermark")] }
top: { if is_spot() then 330 else page_3_top() }
width: { if is_spot() then 154 else 167}
bottom: {if is_spot() then 470 else 481}
z index: 2
render style: image
popup style: in place
alignment: middle center
include file: /magic.mse-game/watermarks/menu_choice_images
image: { watermark_image_3() }
############################# PT
pt:
z index: 4
left: { if is_spot() then 293 else 286}
top: {(if is_spot() then 466 else 469)+(pt_font_vertical())}
width: 60
height: 28
alignment: center middle shrink-overflow
font:
name: {pt_font()}
italic name: {pt_font_italic()}
size: {pt_font_size()}
color: {pt_font_color()}
separator color: red
############################################################## Extra card fields
extra card field:
type: choice
name: color page
script: card.card_color
save value: false
editable: false
extra card field:
type: choice
name: backup page
script: card.card_color
save value: false
editable: false
extra card field:
type: text
name: promo label
editable: true
save value: true
extra card field:
type: choice
name: left decoration
script: card.card_color_2
save value: false
editable: false
extra card field:
type: choice
name: right decoration
script: if left_name() then card.card_color_3 else card.card_color_2
save value: false
editable: false
extra card field:
type: choice
name: binding
script: card.card_color
save value: false
editable: false
extra card field:
type: choice
name: alias bar
script: card.card_color
save value: false
editable: false
extra card field:
type: choice
name: pt box
script: card.card_color
editable: false
save value: false
extra card field:
type: choice
name: stamp
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: choice
name: flavor bar
choice: bar
editable: false
save value: false
show statistics: false
extra card field:
type: choice
name: flavor bar 2
choice: bar
editable: false
save value: false
show statistics: false
extra card field:
type: choice
name: crown
choice: crown
editable: false
save value: false
show statistics: false
script: card.card_color
extra card field:
type: choice
name: snow overlay
choice: overlay
editable: false
save value: false
show statistics: false
script: card.card_color
extra card field:
type: choice
name: vehicle overlay
choice: overlay
editable: false
save value: false
show statistics: false
extra card field:
type: choice
name: custom overlay
choice: car door
save value: false
editable: false
extra card field:
type: choice
name: nyx overlay
choice: overlay
editable: false
save value: false
show statistics: false
script: card.card_color
extra card field:
type: choice
name: evobar tip
choice: evo
save value: false
editable: false
extra card field:
type: choice
name: evobar start
choice: evo
save value: false
editable: false
extra card field:
type: choice
name: evobar
choice: evo
save value: false
editable: false
extra card field:
type: text
name: vorthos box
save value: true
editable: true
description: Where they put mtgstory.com on story spotlights.
extra card field:
type: text
name: promo label
save value: true
description: The golden promo label.
extra card style:
color page:
left: {page_coords[page_1_side()]["page"]}
top: 327
width: 170
height: 156.5
z index: 1
render style: image
image: {if not left_name() then left_page_img() else right_page_img()}
visible: {not (left_name() and right_name())}
backup page:
left: {page_coords[page_3_side()]["page"]}
top: 327
width: 170
height: 156.5
z index: 1
render style: image
image: {right_page_img()}
visible: {not left_name() and not right_name()}
binding:
left: {if (styling.left_style == "none" and not is_reversed()) or (styling.right_style == "none" and is_reversed()) then 188 else 28 }
top: 326
width: {if styling.left_style == "none" or styling.right_style == "none" then 160 else 321}
height:{if is_spot() then 0 else 10}
render style: image
z index: -1
image: {binding_background()}
visible: {not (styling.left_style == "none" and styling.right_style == "none")}
promo label:
left: {if is_spot() then 65 else 40}
top: 262
width: {if chosen(styling.other_options, choice:"prerelease stamp") then (if is_spot() then 245 else 295) else 0}
height: 29
alignment: middle right
z index: 4
font:
name: ModMatrix
size: 14
color: rgb(223,169,41)
pt box:
left: {if is_spot() then 290 else 273}
top: {if is_spot() then 460 else 466}
width: {if is_spot() then 68 else 81}
height: { if is_spot() then 38 else 42}
z index: 1
visible: { card.pt != "" }
render style: image
image: { if is_spot() then spot_pt() else module_ptbox(vehicle:is_vehicle()) }
stamp:
left: 159
top: 471
width: 56
height: 26
z index: 5
render style: image
image: { if stamp_shape() == "triangle" then module_ubstamp() else module_stamp() }
mask: { if is_spot() and stamp_shape() != "triangle" then "spotmask.jpg" else ""}
visible: { card.card_stamp != "none" }
foil layer:
left: 0
top : 0
width: 375
height: 523
z index: 1050
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" }
flavor bar:
left: { page_coords[page_1_side()]["flavor bar"]}
top: { bar_equation() }
width: 188
height: 1
z index: 1
render style: image
image: bar.png
visible: { card.rule_text != "" and remove_tags(card.flavor_text) != "" and set.use_flavor_bar }
flavor bar 2:
left: {page_coords[page_2_side()]["flavor bar"]}
top: { bar_equation2() }
width: 188
height: 1
z index: 1
render style: image
image: bar.png
visible: { card.rule_text_2 != "" and remove_tags(card.flavor_text_2) != "" and set.use_flavor_bar }
vehicle overlay:
left: 0
top: 0
width: 375
height: 523
render style: image
image: { "/magic-modules.mse-include/trims/" + (if is_beyond() then "beyond/vbeyond.png" else "vehicle.png") }
mask: {"/magic-modules.mse-include/trims/375x523 trim mask.png"}
z index: 0
visible: {is_vehicle()}
custom overlay:
left: 0
top: 0
width: 375
height: 523
render style: image
image: { custom_border_blend() }
z index: 0
visible: {is_custom_border()}
mask: {(if is_vehicle() or is_snow() or is_nyx() then "double_") + "frame_border_mask.png"}
nyx overlay:
left: 0
top: 0
width: 375
height: 523
render style: image
image: {module_nyx()}
z index: 0
visible: {is_nyx()}
mask: {"/magic-modules.mse-include/trims/375x523 " + (if is_snow() or is_vehicle() then "double" else "") + "trim mask.png"}
snow overlay:
left: 0
top: 0
width: 375
height: 523
render style: image
image: {module_snow()}
z index: 0
visible: {is_snow()}
mask: {"/magic-modules.mse-include/trims/375x523 trim mask.png"}
evobar:
left: 27
top: 57
width: {card_style.alias.content_width}
height: 27
z index: 2
render style: image
image: /magic-modules.mse-include/extras/evobar.png
visible: {use_evobar()}
evobar tip:
left: {26.6 + card_style.alias.content_width}
top: 57
width: 36
height: 27
z index: 2
render style: image
image: /magic-modules.mse-include/extras/evobar_tip.png
visible: {use_evobar()}
alias bar:
left: 38
top: 57
width: 298
height: 21
z index: 2
render style: image
image: {module_alias()}
visible: {is_skinned() and not use_evobar()}
vorthos box:
right: { if card.pt != "" then 275 else 350 }
top: 488
left: 210
height: 10
z index: 900
alignment: middle right
font:
name: Relay-Medium
size: 7
color: white
weight: bold
left decoration:
left: {page_coords["left"]["decoration"]}
top: 293
width: 200
height: 230
z index: 4
render style: image
image: {decoration_background()}
visible: {left_name()}
right decoration:
left: {page_coords["right"]["decoration"]}
top: 293
width: 200
height: 230
z index: 4
render style: image
image: {decoration_background()}
visible: {right_name()}