Files
magic-set-editor-fork/data/magic-m15-adventure.mse-style/style
cajun 64fc3828d6 3.0.7
Bug fix for Card Symbol on DFCs
Bug fix for Amass rt
Bug fixes for "this type" capitalization
Bug fixes for CARDNAME on planes
Adds THIS atom that gets the opposite value as CARDNAME
Adds Custom Border automization
2025-01-18 15:01:42 -06:00

1312 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: 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: magic-mana-large
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: magic-mana-large
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: magic-mana-large
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()}