Files
magic-set-editor-fork/data/magic-m15-altered.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

2326 lines
79 KiB
Plaintext

mse version: 2.0.0
game: magic
short name: M15 Mainframe
full name: M15 w/Text altering
icon: card-sample.png
installer group: magic/m15 style/normal cards
position hint: 001
version: 2024-09-23
depends on:
package: magic.mse-game
version: 2020-04-25
depends on:
package: magic-default-image.mse-include
version: 2007-09-23
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
depends on:
package: magic-modules.mse-include
version: 2024-10-01
depends on:
package: magic-pride.mse-include
version: 2024-05-22
card width: 375
card height: 523
card dpi: 150
##### Flavor bar image by SirnightNano
##### Ancestral generic mana by ancestral
##### Nyx crowns by Angelus
##### Companion crowns, nyx extensions, DOM FNM frame, THB fullart lands, snow frames by silverback_ape
##### Updated PUMA by Cardists
##### Inverted by VerumCH
############################################################## Extra scripts
init script:
#### Load scripts
include file: /magic-default-image.mse-include/scripts
include file: /magic-pride.mse-include/scripts
#### Blend settings
# Should hybrids have a grey name?
mask_hybrid_with_land := { styling.hybrid_name == "grey" }
mask_hybrid_with_gold := { styling.hybrid_name == "gold" }
#Should multicolor lands with basic land types have a colored name?
mask_multi_land_with_color := { styling.colored_multicolor_land_name }
# 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"
}
loyalty_image := {
if contains(input, match: "+") then "loyaltyup.png"
else if contains(input, match: "-") then "loyaltydown.png"
else "loyaltynaught.png"
}
ancestral_mana := { chosen(styling.other_options, choice:"ancestral generic mana")}
# Use guild mana symbols?
guild_mana := { styling.use_guild_mana_symbols }
#### template images
#### base template
template_prefix := [
card: "/magic-modules.mse-include/cards/375 m15 simple/",
pt: "/magic-modules.mse-include/pts/375 m15/",
fnm_pt: "/magic-modules.mse-include/pts/375 m15/paradox/",
inv_pt: "/magic-modules.mse-include/pts/375 m15/inverted/",
shifted_pt: "/magic-modules.mse-include/pts/375 m15/shifted/",
alias: "/magic-modules.mse-include/extras/alias/",
snow: "/magic-modules.mse-include/trims/snow/",
nyx: "/magic-modules.mse-include/trims/nyx/",
nyx_shifted: "/magic-modules.mse-include/trims/nyx/shifted/",
draft: "/magic-modules.mse-include/trims/conspiracy/",
crown: "/magic-modules.mse-include/crowns/375/",
stamp: "/magic-modules.mse-include/stamps/backs/375 round/",
ubstamp: "/magic-modules.mse-include/stamps/backs/375 ub/",
identity: "/magic-modules.mse-include/indicators/"
star: "/magic-modules.mse-include/trims/star/",
arrow: "/magic-modules.mse-include/levels/arrows/1/"
arrow2: "/magic-modules.mse-include/levels/arrows/2/"
arrow3: "/magic-modules.mse-include/levels/arrows/3/"
slide: "/magic-modules.mse-include/levels/slides/1/"
slide2: "/magic-modules.mse-include/levels/slides/2/"
slide3: "/magic-modules.mse-include/levels/slides/3/"
slide_shifted: "/magic-modules.mse-include/levels/slides/1/shifted/"
slide2_shifted: "/magic-modules.mse-include/levels/slides/2/shifted/"
slide3_shifted: "/magic-modules.mse-include/levels/slides/3/shifted/"
devoid: "devoid/"
map: "/magic-modules.mse-include/cards/746 maps/"
mappt: "/magic-modules.mse-include/pts/746 maps/"
miracle: "/magic-modules.mse-include/trims/miracle/"
miracle_shifted: "/magic-modules.mse-include/trims/miracle/shifted/"
miracle_inv: "/magic-modules.mse-include/trims/miracle/inverted/"
miracle_fnm: "/magic-modules.mse-include/trims/miracle/fnm/"
miracle_beyond: "/magic-modules.mse-include/trims/miracle/beyond/"
miracle_snow: "/magic-modules.mse-include/trims/miracle/snow/"
beyond: "/magic-modules.mse-include/trims/beyond/"
draft: "/magic-modules.mse-include/trims/draft/"
node: "nodes/"
node_shifted: "nodes/shifted/"
puma: "puma/"
puma_shift: "puma/shifted/"
curtains: "curtains/"
season: "season/"
]
template_suffix := [
card: "card.jpg",
pt: "pt.png",
fnm_pt: "pt.png",
inv_pt: "pt.png",
shifted_pt: "pt.png",
alias: "alias.png",
snow: "snow.png",
nyx: "nyx.png",
nyx_shifted: "nyx.png",
draft: "draft.png",
crown: "crown.png",
stamp: "stamp.png",
ubstamp: "stamp.png",
identity: "identity.png"
star: "star.png",
devoid: "card.png"
map: "card.png"
mappt: "pt.png"
miracle: "miracle.png"
miracle_shifted: "miracle.png"
miracle_inv: "miracle.png"
miracle_fnm: "miracle.png"
miracle_snow: "miracle.png"
miracle_beyond: "miracle.png"
node: "node.png"
node_shifted: "node.png"
curtains: "card.png"
beyond:"beyond.png"
slide: "slide.png"
slide2: "slide.png"
slide3: "slide.png"
slide_shifted: "slide.png"
slide2_shifted: "slide.png"
slide3_shifted: "slide.png"
arrow: "arrow.png"
arrow2: "arrow.png"
arrow3: "arrow.png"
season: "flag.png"
puma: "puma.png"
puma_shift: "puma.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]
}
# Use land templates for previews because they show more contrast
hybrid_previews := "land,hybrid"
landless := {
landless_ar[input] or else false
}
landless_ar := [
nyx: true,
nyx_shifted: true,
star: true,
node: true,
miracle: true,
miracle_shifted: true,
miracle_snow: true,
miracle_inv: true,
miracle_fnm: true,
miracle_beyond: true,
alias: true,
devoid: true,
energy: true,
season: true,
conspiracy: true,
arrow: true,
arrow2: true,
arrow3: true,
crown: true,
draft: true,
curtains: true
]
#### Map is a very different frame that usurps basically everything
is_map := {
chosen(styling.frames, choice:"map")
}
#### Devoid and Clear using floating frames but still use trims
is_devoid := {
chosen(styling.frames, choice:"devoid")
}
is_clear := {
chosen(styling.frames, choice:"clear")
}
uses_clear_frame := {
is_clear() or is_devoid()
}
#### Frameless/Borderless apply a mask to the normal frame
is_borderless := {
chosen(styling.frames, choice:"borderless art")
}
is_frameless := {
chosen(styling.frames, choice:"frameless art")
}
uses_expanded_art := {
is_borderless() or is_frameless()
}
#### except THBLand is a special kind of frameless
is_thbland := {
is_frameless()
and not is_leveler()
and remove_tags(card.text) == "\n"
}
is_dka := {
chosen(styling.frames, choice:"fullart") and not is_map() and not uses_clear_frame()
}
#### PUMA and Mutate add things on top
is_puma := {
chosen(styling.frames, choice:"puma") and not is_map() and not uses_expanded_art() and not uses_clear_frame() and not is_dka()
}
is_mutate := {
chosen(styling.frames, choice:"mutate") and not is_map()
}
mutate_image := {
is_mutate() and not uses_expanded_art() and not is_dka() and not uses_clear_frame() and not clear_tops()
}
#### Alternate card bases
is_fnm := {
chosen(styling.frames, choice:"fnm promo")
}
is_inverted := {
chosen(styling.frames, choice:"inverted")
}
is_planeshifted := {
chosen(styling.frames, choice:"planeshifted")
}
is_snow := {
chosen(styling.frames, choice:"snow")
or (lang_setting("is_snow")(card.super_type) and chosen(styling.other_options, choice:"auto snow"))
}
#### Pieces
is_season := {
chosen(styling.frames, choice:"season") and not is_map()
}
is_scrolls := {
chosen(styling.frames, choice:"conspiracy")
}
#### trims
is_draft := {
chosen(styling.frames, choice:"conspiracy")
or chosen(styling.frames, choice:"draft matters")
}
is_beyond := {
chosen(styling.frames, choice:"universes beyond")
or (chosen(styling.other_options, choice:"auto ub") and (card.card_stamp == "universes beyond" or card.card_stamp == "flatstamped universes beyond"))
}
is_miracle := {
chosen(styling.frames, choice:"miracle")
}
is_vehicle := {
chosen(styling.frames, choice:"vehicle")
or (chosen(styling.other_options, choice:"auto vehicles") and lang_setting("is_vehicle")(card.sub_type))
}
is_nyx := {
chosen(styling.frames, choice:"nyx")
or (lang_setting("is_enchantment")(card.super_type) and set.auto_nyx)
}
is_leveler := {
chosen(styling.frames, choice:"leveler")
}
is_custom_border := {
if chosen(styling.frames, choice:"custom border")
then has_png(styling.custom_border_source)
else auto_custom_border()
}
is_leveler := {chosen(styling.frames, choice:"leveler")}
is_legend := {
chosen(styling.frames, choice:"legend")
or (lang_setting("is_legendary")(card.super_type) and set.auto_legends)
}
is_curtains := {contains(card.notes, match:"!curtain")}
is_pinned := {chosen(styling.other_options, choice:"pride pinlines")}
clear_tops := {chosen(styling.other_options, choice:"clear tops") and not is_puma() and not uses_expanded_art()}
mask_trims_for_devoid := {chosen(styling.other_options, choice:"avoid covering devoid")}
base_card := {
if is_map()
then "map"
else if is_devoid()
then "devoid"
else if is_clear()
then "clear"
else if is_thbland()
then "energy"
else if is_dka()
then "fullart"
else if is_fnm()
then "fnm"
else if is_inverted()
then "inverted"
else if is_planeshifted()
then "shifted"
else if is_beyond()
then "beyond"
else if is_snow() and not is_leveler()
then "snow"
else "standard"
}
#### trims
curtain_plate := { color_background(type:"curtains", base_hybrid: card_hybrid) }
ub_background := { color_background(type:"beyond", base_hybrid: card_hybrid, folder:template_prefix["ub"]) }
draft_trim := { color_background(type:"draft", base_hybrid: card_hybrid, folder:template_prefix["draft"])}
module_nyx := {
type := "nyx"
if has_png(set.alternate_nyx)
then type := "alt_nyx"
else if set.alternate_nyx == "star"
then type := "star"
else if is_planeshifted()
then type := "nyx_shifted"
color_background(
type: type,
blend_type: "nyx",
base_hybrid:card_hybrid,
folder:template_prefix["nyx"],
)
}
miracle_plate_base := { color_background(type:"miracle", base_hybrid:card_hybrid, folder:template_prefix["miracle"])}
miracle_plate_snow := { color_background(type:"miracle_snow", base_hybrid:card_hybrid, folder:template_prefix["miracle"], blend_type:"miracle")}
miracle_plate_shift := { color_background(type:"miracle_shifted", base_hybrid:card_hybrid, folder:template_prefix["miracle"], blend_type:"miracle")}
miracle_plate_invert := { color_background(type:"miracle_inv", base_hybrid:card_hybrid, folder:template_prefix["miracle"], blend_type:"miracle")}
miracle_plate_fnm := { color_background(type:"miracle_fnm", base_hybrid:card_hybrid, folder:template_prefix["miracle"], blend_type:"miracle")}
miracle_plate_beyond := { color_background(type:"miracle_beyond", base_hybrid:card_hybrid, folder:template_prefix["miracle"], blend_type:"miracle")}
miracle_plate := {
type := if is_fnm()
then "miracle_fnm"
else if is_inverted()
then "miracle_inv"
else if is_planeshifted()
then "miracle_shifted"
else if is_beyond()
then "miracle_beyond"
else if base_card() == "snow"
then "miracle_snow"
else "miracle"
if is_clear() or clear_tops()
then template_prefix["miracle"] + "xmiracle.png"
else (
img := color_background(
type: type,
blend_type: "miracle",
base_hybrid: card_hybrid,
folder: template_prefix["miracle"]
)
if is_scrolls() then set_mask(image:img, mask: template_prefix["miracle"] + "mask_point.png") else img
)
}
custom_border_blend := { color_background(type:"custom_border", base_hybrid:card_hybrid) }
#### other pieces
node_base := { color_background(type:"node", base_hybrid:card_hybrid, folder:"nodes/") }
node_shift := { color_background(type:"node_shifted", base_hybrid:card_hybrid, folder:"nodes/", blend_type:"node") }
node_img := {
if is_devoid() and not is_legend() then "nodes/devoidnode.png"
else if is_planeshifted() then node_shift()
else node_base()
}
puma_base := { color_background(type:"puma", base_hybrid:card_hybrid, folder:"puma/") }
puma_shift := { color_background(type:"puma_shift", base_hybrid:card_hybrid, folder:"puma/", blend_type:"puma") }
puma_img := { if is_planeshifted() then puma_shift() else puma_base() }
mappt_background := { color_background(type:"mappt", base_hybrid:pt_hybrid, folder:"/magic-modules.mse-include/pts/746 maps/", blend_type:"pt") }
season_background := {
img := color_background(type:"season", base_hybrid:card_hybrid)
if uses_expanded_art()
then set_mask(image: img, mask: "season/full_mask.png")
else img
}
arrow_img_1 := { color_background(type:"arrow", base_hybrid:card_hybrid, folder:"/magic-modules.mse-include/levels/arrows/") }
arrow_img_2 := { color_background(type:"arrow2", base_hybrid:card_hybrid, folder:"/magic-modules.mse-include/levels/arrows/", blend_type:"arrow") }
arrow_img_3 := { color_background(type:"arrow3", base_hybrid:card_hybrid, folder:"/magic-modules.mse-include/levels/arrows/", blend_type:"arrow") }
level_img_1 := { color_background(type:"slide", base_hybrid:card_hybrid, folder:"/magic-modules.mse-include/levels/slides/") }
level_img_2 := { color_background(type:"slide2", base_hybrid:card_hybrid, folder:"/magic-modules.mse-include/levels/slides/", blend_type:"slide") }
level_img_3 := { color_background(type:"slide3", base_hybrid:card_hybrid, folder:"/magic-modules.mse-include/levels/slides/", blend_type:"slide") }
level_img_1_s := { color_background(type:"slide_shifted", base_hybrid:card_hybrid, folder:"/magic-modules.mse-include/levels/slides/") }
level_img_2_s := { color_background(type:"slide2_shifted", base_hybrid:card_hybrid, folder:"/magic-modules.mse-include/levels/slides/", blend_type:"slide") }
level_img_3_s := { color_background(type:"slide3_shifted", base_hybrid:card_hybrid, folder:"/magic-modules.mse-include/levels/slides/", blend_type:"slide") }
background_slide := {
if is_planeshifted() then level_img_1_s()
else level_img_1()
}
background_slide_2 := {
if is_planeshifted() then level_img_2_s()
else level_img_2()
}
background_slide_3 := {
if is_planeshifted() then level_img_3_s()
else level_img_3()
}
#### ptbox
choose_ptbox := {
if is_map()
then mappt_background()
else if is_vehicle()
then template_prefix["pt"] + "vpt.png"
else if uses_clear_frame()
then template_prefix["pt"] + "cpt.png"
else if is_fnm()
then color_background(type:"fnm_pt", base_hybrid:pt_hybrid, folder:template_prefix["fnm_pt"], blend_type:"pt")
else if is_inverted()
then color_background(type:"inv_pt", base_hybrid:pt_hybrid, folder:template_prefix["inv_pt"], blend_type:"pt")
else if is_planeshifted()
then color_background(type:"shifted_pt", base_hybrid:pt_hybrid, folder:template_prefix["shifted_pt"], blend_type:"pt")
else module_ptbox()
}
#### crown handling
crowns_folder := {
"/magic-modules.mse-include/crowns/375/" + (if is_planeshifted() then "shifted/" else "")
}
module_brawl_crown_template := { "/magic-modules.mse-include/crowns/375/brawl/" + (if input == "a" then "c" else input) + "crown.png" }
crown_main := {
if is_clear() or clear_tops()
then template_prefix["crown"] + "xcrown.png"
else module_crown()
}
module_crown_template_patch := {
module_crown_template(override: if is_devoid() or uses_expanded_art() or is_puma() then "borderless" else if is_nyx() and chosen(styling.other_options, choice:"auto nyx crowns") then "nyx" else "")
}
crown_img := {
img := crown_main()
if card.transformation != "none" then
img := set_mask(image:img, mask:"nodes/mask.png")
if is_borderless() and is_frameless() and is_miracle() then
img := set_mask(image:img, mask:"frame_masks/crown_miracle_borderless.png")
if (is_devoid() or uses_expanded_art() or is_puma()) and is_skinned() then
img := set_mask(image:img, mask:"frame_masks/bl_alias_crown_mask.png")
img
}
card_background := {
bc := base_card()
if bc == "clear"
then "/magic-modules.mse-include/cards/375 m15 simple/xcard.png"
else color_background(
type:"card",
base_hybrid:card_hybrid,
folder: if is_map() then "/magic-modules.mse-include/cards/746 maps/" else if is_thbland() then "energies/" else if is_dka() then "dka/" else template_prefix["card"]
)
}
mainframe_card_base := {
[
map: "/magic-modules.mse-include/cards/746 maps/" + input + (if land then "l" else "") + "card.png",
devoid: "devoid/" + input + "card.png",
clear: "/magic-modules.mse-include/cards/375 m15 simple/xcard.png",
energy: "energies/" + input + "card.png",
fullart: "dka/" + input + (if land then "l" else "") + "card.jpg"
fnm: "fnm/" + input + "card.png"
inverted: "inverted/" + (if land and input == "a" then "cl" else if land then input + "l" else input) + "card.png"
shifted: "/magic-modules.mse-include/cards/375 m15 simple/shifted/" + (if land and input == "a" then "cl" else if land then input + "l" else input) + "card.jpg"
beyond: "/magic-modules.mse-include/cards/375 m15 simple/beyond/" + (if land and input == "a" then "cl" else if land then input + "l" else input) + "card.jpg"
snow: "/magic-modules.mse-include/cards/375 m15 simple/snow/" + (if land and input == "a" then "cl" else if land then input + "l" else input) + "card.jpg"
standard: "/magic-modules.mse-include/cards/375 m15 simple/" + (if land and input == "a" then "cl" else if land then input + "l" else input) + "card.jpg"
][base_card()]
}
# this goes at the very end
harder_script := [
crown: module_crown_template_patch,
card: mainframe_card_base
custom_border: custom_border_image,
alt_nyx: alt_nyx_template
]
#### mask scripts
border_mask := {
if is_borderless() then "" else
"border_masks/"
+ (if is_puma() then "puma_" else "")
+ (if is_legend() and not is_map() then "crown_border" else "border_mask")
+ (if card.border_color == rgb(200,200,200) then "_silver" else "")
+ ".png"
}
frame_mask_script := {
if is_map()
then "frame_masks/map_mask.png"
else if is_clear() or is_devoid()
then "frame_masks/clear_frame_mask.png"
else if is_thbland()
then "frame_masks/energy.png"
else if uses_expanded_art() and is_dka()
then "frame_masks/borderless_dka.png"
else if is_borderless() and is_frameless()
then "frame_masks/borderless_frameless" + (if is_miracle() then "_miracle" else "") + ".png"
else if uses_expanded_art()
then "frame_masks/borderless.png"
else if clear_tops()
then "frame_masks/clear_tops" + (if is_dka() then "_dka" else "") + "_mask.png"
else if is_dka()
then "frame_masks/dka.png"
else "frame_masks/frame_mask" + (if is_puma() then "_puma" else "") + (if is_mutate() then "_mutate" else "") + ".png"
}
image_mask_script := {
if is_map() then ""
else if is_devoid() then "image_masks/devoid.png"
else if is_clear() then "image_masks/clear.png"
else if is_thbland() then "image_masks/energy.png"
else if uses_expanded_art() then "image_masks/guide_borderless" + (if is_dka() then "_dka" else "") + ".png"
else if mutate_image() then
"image_masks/" + (if is_puma() then "puma_" else "") + "mutate.png"
else ""
}
miracle_mask := {
if is_borderless() and is_frameless() and not is_thbland()
then "frame_masks/miracle_borderless" + (if is_legend() then "_crown" else "") + ".png"
else if is_legend() and uses_expanded_art()
then template_prefix["miracle"] + "mask_onlypoint.png"
else if is_legend() and is_puma()
then template_prefix["miracle"] + "mask_onlypoint.png"
else if uses_expanded_art() or is_puma()
then template_prefix["miracle"] + "mask_rays.png"
else if is_devoid() and mask_trims_for_devoid()
then template_prefix["miracle"] + "mask_backplate.png"
else if is_legend() and is_clear()
then template_prefix["miracle"] + "mask_fullcrown.png"
else if is_legend()
then template_prefix["miracle"] + "mask_pointcrown.png"
else ""
}
main_trim_mask := {
"/magic-modules.mse-include/trims/375x523 trim mask" + (if is_dka() then " fullart.png" else if is_puma() then " puma.png" else ".png")
}
twin_trim_mask := {
"/magic-modules.mse-include/trims/375x523 doubletrim mask" + (if is_dka() then " fullart.png" else if is_puma() then " puma.png" else ".png")
}
devoid_mask := {
if is_devoid() and mask_trims_for_devoid()
then set_mask(image:input, mask:"devoid/trim_mask.png")
else input
}
#### formatting
shrink_type := {
if styling.shrink_typeline_text != ""
then to_number(styling.shrink_typeline_text) or else 0
else if length(remove_tags(card.type)) > 41
then 2
else if length(remove_tags(card.type)) > 38
then 1
else 0
}
shrink_name := {
if styling.shrink_name_text != ""
then to_number(styling.shrink_name_text) or else 0
else 0
}
chop_top := {
if styling.chop_top == ""
then 0
else if comma_count(styling.chop_top) == "," or comma_count(styling.chop_top) == ",,"
then to_number(split_text(match:",", styling.chop_top).0) or else 0
else to_number(styling.chop_top) or else 0
}
chop_bot := {
if comma_count(styling.chop_top) == ",,"
then to_number(split_text(match:",", styling.chop_top).1) or else 0
else if styling.chop_bottom == ""
then 0
else to_number(styling.chop_bottom) or else 0
}
top_of_textbox := {
(
if is_map() then 340
else if is_dka() and is_mutate() then 395
else if is_dka() then 359
else if is_mutate() then 395
else 327
) - (-chop_top()) + body_font_vertical()
}
bottom_of_textbox := {
(if is_map() then 475 else 481) - chop_bot()
}
#### other settings
use_flash_dot := { styling.use_flash_dot and (lang_setting("is_instant")(card.super_type) or contains(card.type, match:"Flash"))}
is_promo := { styling.promo }
is_unsorted := {styling.remove_from_autocount}
is_skinned := {chosen(styling.other_options, choice:"godzilla style alias")}
use_vorthos := {((not is_leveler() or lone_pt()) and card.pt != "") or chosen(styling.other_options, choice:"vorthos box")}
is_tarot := {chosen(styling.other_options, choice:"text watermarks")}
use_evobar := {chosen(styling.other_options, choice:"pokemon evobar")}
center_map := {is_map() and (card.casting_cost == "" or chosen(styling.other_options, choice:"always center map names"))}
#### bools
shown_cr := {
if set.automatic_copyright
then set.copyright != ""
else card.copyright != ""
}
white_text := {is_dka() or is_fnm() or is_inverted()}
#### backend magic
watermark_include := "/magic-modules.mse-include/watermarks"
custom_watermark_a := {
if styling.card_watermark == "" or not contains(styling.card_watermark, match:".png")
then "/magic-modules.mse-include/watermarks/other/planeswalker.png"
else "/magic-mainframe-extras.mse-include/" + styling.card_watermark
}
transfer_levels := {if is_mutate() then false else true}
card_shape := {if is_leveler() then "leveler" else "normal"}
rare_width := {
cw := card_style.rarity.content_width
cw := if cw > 44 then (if set.print_fix != "" then set.print_fix else 22) else if cw < 22 then 22 else cw
if card_style.rarity.width == 0 then 0 else cw
}
special_text := {if is_leveler() then ((if card.level_0 != "" then "[" + level_label(0) + " " + card.level_0 + "] " else "") + card.level_1_text + (if card.pt != "" and not lone_pt() then " [" + card.pt + "]" else "") + "\n"
+ (if card.level_1 != "" then "[" + level_label(1) + " " + card.level_1 + "] " else "") + card.level_2_text + (if card.pt_2 != "" then " [" + card.pt_2 + "]" else "") + "\n"
+ (if card.level_2 != "" then "[" + level_label(2) + " " + card.level_2 + "] " else "") + card.level_3_text + (if card.pt_3 != "" then " [" + card.pt_3 + "]" else "") + (if card.level_4_text != "" then "\n" else "")
+ (if card.level_3 != "" then "[" + level_label(3) + " " + card.level_3 + "] " else "") + card.level_4_text + (if card.pt_7 != "" then " [" + card.pt_7 + "]" else "")
) else if is_mutate() then
card.level_1_text + "\n" + card.rule_text
else ""
}
#### d20
is_d20 := {styling.d20_dividers != "off" and not is_leveler()}
is_all_break := {contains(styling.d20_dividers, match:"all breaks")}
d20string := "^(<b>)?(((</sym>)?[-0-9 ,+>\<](<sym>)?)+|[Ee]lse|[Oo]ther) ?(</b>)?[|]"
d20_array :=
filter_text@(match:"(\n|"+d20string+")")
+split_text@(match:d20string)
number_of_rolls := {min(6, if is_all_break() then 1+length(filter_text(card.rule_text, match:"\n"))-(rolls_start(card.text)-invert_rolls()) else length(d20_array(input))-1)}
rolls_start := {
if styling.d20_dividers == "all breaks +3" then 4
else if styling.d20_dividers == "all breaks +2" then 3
else if styling.d20_dividers == "all breaks +1" then 2
else if styling.d20_dividers == "all breaks" then 0
else if is_d20() then length(d20_array(input).0)
else 0
}
d20_filter := replace@(match:"^([Ee]lse ?|[Oo]ther ?|((</sym>)?[-0-9 ,+>\<](<sym>)?)+)[|]", replace:"<b>\\1</b>|")
top_of_para := {
input := input + no_roll(card.text)
input := max(input, 0)
if card_style.text.layout.paragraphs[input].top or else -1 >= 0 then
if invert_rolls() == 1 and input == rolls_start()-invert_rolls() then card_style.text.top
else if input == 0 then card_style.text.top + card_style.text.layout.paragraphs[input].top
else card_style.text.top + card_style.text.layout.paragraphs[input].top - 0.5*(card_style.text.layout.paragraphs[input].top-card_style.text.layout.paragraphs[input-1].bottom)
else 0
}
height_of_para := {
input := input + no_roll(card.text)
if card_style.text.layout.paragraphs[input].bottom or else 0 > 0 then
if invert_rolls() == 1 and input == rolls_start() then card_style.text.layout.paragraphs[input-1].bottom
else card_style.text.layout.paragraphs[input].bottom + 1.3*(card_style.text.layout.paragraphs[input].top-card_style.text.layout.paragraphs[input-1].bottom) - card_style.text.layout.paragraphs[input].top
else 0
}
no_roll := {if styling.d20_dividers == "all breaks" then 1 else if rolls_start(input) == 0 then 1 else 0}
invert_rolls := {if chosen(styling.other_options, choice:"inverted d20") then 1 else 0}
#### levelers
box_leveler := { styling.level_containers == "pt boxes" }
loy_leveler := { styling.level_containers == "loyalty boxes" }
center_label := { loy_leveler() or level_label(input) == " " }
aug_leveler := { box_leveler() and level_label(input) == " " }
starting_loyalty := { chosen(styling.other_options, choice:"use starting loyalty") }
arrow_left := {
if box_leveler() then -3
else if loy_leveler() then 10
else 18
}
arrow_width := {
if box_leveler() then 84
else if loy_leveler() then 42
else 56
}
arrow_height := {
if aug_leveler(input) then 42
else if box_leveler() then 50
else if loy_leveler() then 40
else 40
}
arrow_offset := {
to_number(pull_comma_array(styling.arrow_or_bullet_offsets, cell:input, end: 0))
+ (if box_leveler() then -5 else 0)
+ (if aug_leveler(input) then 4 else 0)
}
lone_pt := { chosen(styling.other_options, choice:"regular pt on levelers") and not starting_loyalty() }
level_label := {
if styling.level_label == ""
then "level"
else pull_comma_array(styling.level_label, end:false, cell:input, default:styling.level_label)
}
minimax := {
if input > ceil then ceil
else if input < floor then floor
else input
}
lv_2_coordinate := {
base := 52 + (if is_dka() then 10 else if is_mutate() then 12 else 0)
base := base + to_number(pull_comma_array(styling.level_offset, cell:0))
minimax(base, ceil:152, floor:0)
}
lv_3_coordinate := {
base := 101 + (if is_dka() then 10 else if is_mutate() then 12 else 0)
base := base + to_number(pull_comma_array(styling.level_offset, cell:1))
minimax(base, ceil:152, floor:lv_2_coordinate())
}
lv_4_coordinate := {
base := 152 + (if is_dka() then 10 else if is_mutate() then 12 else 0)
base := base + to_number(pull_comma_array(styling.level_offset, cell:2))
minimax(base, ceil:152, floor:lv_3_coordinate())
}
lv_1_height := { lv_2_coordinate() }
lv_2_height := {lv_3_coordinate() - lv_2_coordinate()}
lv_3_height := {lv_4_coordinate()-lv_3_coordinate()}
lv_4_height := {152-lv_4_coordinate()}
l1_center := {327 + (if is_dka() then 16 else 0) + 0.5*lv_1_height()}
l2_center := {327 + lv_2_coordinate() + 0.5*lv_2_height()}
l3_center := {327 + lv_3_coordinate() + 0.5*lv_3_height()}
l4_center := {327 + lv_4_coordinate() + 0.5*lv_4_height()}
overlay1 := {
if is_d20()
then "/magic-modules.mse-include/levels/d20slice.png"
else if is_clear()
then ""
else slice_crop(
background_slide(),
height: lv_2_height(),
width: 314,
distance:(152-lv_2_coordinate())
)
}
overlay2 := {
if is_d20()
then "/magic-modules.mse-include/levels/d20slice.png"
else if is_clear()
then ""
else slice_crop(
background_slide_2(),
height: lv_3_height(),
width: 314,
distance:lv_3_height()
)
}
overlay3 := {
if is_d20()
then "/magic-modules.mse-include/levels/d20slice.png"
else if is_clear()
then ""
else slice_crop(
background_slide_3(),
height: lv_4_height(),
width: 314,
distance:lv_4_height()
)
}
mask_height := {
if input == "one" then lv_1_height()
else if input == "two" then lv_2_height()
else if input == "three" then lv_3_height()
else if input == "four" then lv_4_height()
else 0
}
### Customize fonts
## redefine these since Maps make them annoying
swap_fonts_name_default := [
name: {if is_map() then "Beleren Small Caps" else "Beleren Bold"},
size: {if is_map() then 14.8 else 16},
color: {if is_map() or uses_clear_frame() then "black" else if is_planeshifted() or is_fnm() or (is_inverted() and not is_dka()) then "white" else "black"},
vertical: {0},
italic: {""}
]
swap_fonts_type_default := [
name: {"Beleren Bold"},
size: {if is_map() then 12 else 13},
color: {if is_map() or uses_clear_frame() then "black" else if is_dka() or is_puma() or is_planeshifted() or is_fnm() or is_inverted() then "white" else "black"},
vertical: {0},
italic: {""}
]
swap_fonts_body_default := [
name: {"MPlantin"},
size: {if styling.font_cap != "" then to_number(styling.font_cap) else if is_mutate() then 12 else 14},
color: {if is_map() then "black" else if is_dka() or is_fnm() or is_inverted() then "white" else "black"},
vertical: {0},
italic: {"MPlantin-Italic"}
]
swap_fonts_pt_default := [
name: {"Beleren Bold"},
size: {if is_map() then 14 else 16},
color: {
if is_map() then "black"
else if is_planeshifted() or is_fnm() or is_inverted() then "white"
else if is_vehicle() then "white"
else "black"
},
vertical: {0},
italic: {""}
]
loyalty_font_size := {
swap_font_size(
src:styling.custom_pt_font,
font_size: 14
)
}
loyalty_font_color := {
swap_font_color(
src: styling.custom_pt_font,
font_color: "white"
)
}
tri_stamp := {
if is_map() or is_clear() or is_thbland()
then template_prefix["ubstamp"] + "_stamp.png"
else if is_devoid()
then template_prefix["ubstamp"] + "devoid.png"
else module_ubstamp()
}
round_stamp := {
if is_map() or is_clear() or is_thbland()
then template_prefix["stamp"] + "_stamp.png"
else if is_devoid()
then template_prefix["stamp"] + "devoid.png"
else module_stamp()
}
stamp_top := {
sh := stamp_shape()
if is_map() and sh == "triangle"
then 472
else if is_clear()
then (if sh == "triangle" then 472 else 473)
else if is_thbland()
then 472
else 471
}
#### Module offsets
information_secondary_shift_with_pt_1 := {
if is_leveler() and not (lone_pt() or starting_loyalty())
then false
else true
}
card_symbol_offset_top_1 := { if is_clear() then 1 else 0 }
override_clear := replace@(match:"</color>(</b></code>)?", replace: "")+
replace@(match:"(<code><b>)?<color:black>", replace: "")
override_filter := replace@(match:"\\[([^\\]]+)]", replace: "<code><b><color:black>[\\1]</color></b></code>")
text_filter := text_filter + override_clear + d20_filter + {if chosen(styling.other_options, choice:"override-style text") then override_filter(input) else input}
############################################################## 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)
set info style:
symbol:
variation:
name: special
border radius: 0.10
fill type: solid
fill color: rgb(155,155,155)
border color: rgb(0,0,0)
############################################################## Extra style options
styling field:
type: text
name: chop top
description: Shrinks the textbox X pixels from the top OR shrinks "top,bottom,"
styling field:
type: text
name: chop bottom
description: Shrinks the textbox X pixels from the bottom.
styling field:
type: text
name: shrink name text
description: Reduces the name text N points.
styling field:
type: text
name: shrink typeline text
description: Reduces the typeline text N points.
styling field:
type: multiple choice
name: frames
description: Use these frames. Higher level frames may override lower levels.
choice: map
choice: devoid
choice: clear
choice: borderless art
choice: frameless art
choice: fullart
choice: puma
choice: mutate
choice: fnm promo
choice: inverted
choice: planeshifted
choice: legend
choice: season
choice: conspiracy
choice: draft matters
choice: universes beyond
choice: miracle
choice: nyx
choice: vehicle
choice: leveler
choice: snow
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: text
name: popout image style
description: The styling instructions for the popout image field, formatted as "left,top,width,height,". The text MUST end with a comma.
styling field:
type: multiple choice
name: other options
description: Other frame options
choice: prerelease stamp
choice: godzilla style alias
choice: pokemon evobar
choice: ancestral generic mana
choice: override-style text
choice: always center map names
choice: avoid covering devoid
choice: use starting loyalty
choice: regular pt on levelers
choice: auto vehicles
choice: auto snow
choice: auto nyx crowns
choice: auto ub
choice: text watermarks
choice: clear tops
choice: vorthos box
choice: pride pinlines
choice: inverted d20
initial: avoid covering devoid, auto vehicles, auto snow, auto nyx crowns, auto ub
styling field:
type: text
name: custom symbol
description: Uses a custom Lesson symbol from data/magic-mainframe-extras.mse-include
script: verify_symbol_image(value)
styling field:
type: text
name: card watermark
description: Filename in magic-mainframe-extras to use for standalone card watermark
script: verify_watermark_image(value)
include file: /magic-modules.mse-include/crowns/styling_fields
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: choice
name: d20 dividers
choice: d20 mode
choice: off
choice: all breaks
choice: all breaks +1
choice: all breaks +2
choice: all breaks +3
description: Do dice levels normally, off, on all linebreaks, on all but the first linebreak, etc.
styling field:
type: choice
name: level containers
choice: arrows
choice: pt boxes
choice: loyalty boxes
styling field:
type: text
name: level label
description: Change the level label. default is "LEVEL". Secondary lables can be added after a comma, "1,2,3,"
styling field:
type: text
name: font cap
description: Caps the font size of all text boxes to allow consistent sizes. Default is 14.
styling field:
type: text
name: arrow or bullet offsets
description: Formatted as 1,2,3,. Move the level arrow down X pixels. Use negative to move up.
styling field:
type: text
name: level offset
description: Formatted as 1,2,3,. Move the level boxes down X pixels. Use negative to move up. For 4 equal levels, use -14,-25,-38,
include file: /magic-modules.mse-include/rarities/styling_fields
include file: /magic-modules.mse-include/fonts/styling_fields
styling field:
type: choice
name: hybrid name
choice: grey
choice: gold
choice: hybrid
description: Use a grey background for the name and type line on hybrid cards like real cards, or gold or hybrid instead.
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: package choice
name: level mana symbols
match: magic-mana-*.mse-symbol-font
initial: magic-mana-large.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
choice: right align
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: use flash dot
initial: no
description: Automatically applies Tumbles flash dot to Instant/Flash typed cards.
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
other options:
render style: checklist
direction: vertical
############################################################## 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/separators/card_fields
include file: /magic-modules.mse-include/corners/card_fields
include file: /magic-modules.mse-include/stamps/card_fields
include file: /magic-modules.mse-include/symbols/card_fields
card style:
############################# Background stuff
border color:
left: 0
top : 0
width: {if is_borderless() then 0 else 375}
height: 523
left width: 17
right width: 17
top width: 17
bottom width: 18
z index: 500
mask: { border_mask() }
card color:
left: 0
top: 0
width: 375
height: 523
z index: 200
render style: image
popup style: in place
image: { card_background() }
mask: { frame_mask_script() }
############################# Name line
name:
left:
script:
if center_map()
then 55
else if is_map() and card.transformation != "none"
then 65
else if is_map()
then 60
else if card.transformation != "none" and card.card_symbol != "none"
then 78
else if card.transformation != "none"
then 58
else if card.card_symbol != "none"
then 50
else 32
top:
script:
(
if is_map() then 27
else if is_clear() or clear_tops() then 31
else 30
) + name_font_vertical()
right: { if center_map() then 320 else (if is_map() then 320 else 341) - card_style.casting_cost.content_width }
height: { 23 - (0.5 * shrink_name()) }
alignment: {if center_map() then "center bottom shrink-overflow" else "left bottom shrink-overflow" }
padding bottom: 0
z index: 900
font:
name: { name_font() }
italic name: { name_font_italic() }
size: { name_font_size() }
color: { name_font_color() }
shadow color: {if is_map() then rgba(0,0,0,0) else if is_planeshifted() or is_fnm() then rgb(0,0,0) else rgba(0,0,0,0)}
shadow displacement x: -1
shadow displacement y: 1
alias:
left: {if is_skinned() then 45 else if is_map() then 15 else 33}
top: {if is_map() then 58 else 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" else "") + "bottom shrink-overflow"}
padding bottom: 0
z index: 900
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: { if is_map() then 327 else 346}
top: { if is_map() then 27 else 29}
width: { max(30, card_style.casting_cost.content_width) + 5 }
height: 23
alignment: middle right
font:
name: MPlantin
size: { if is_map() then 14 else 15}
symbol font:
name: magic-mana-large
size: { if is_map() then 14 else 15}
alignment: middle right
always symbol: true
z index: 920
padding top: 0
############################# Image
image:
left:
script:
if is_map() or uses_clear_frame() or uses_expanded_art() or is_puma()
then 0
else if clear_tops()
then 15
else if is_dka()
then 23
else if mutate_image()
then 22
else 29
top:
script:
if is_map()
then 57
else if uses_clear_frame() or clear_tops() or uses_expanded_art()
then 0
else 59
width:
script:
if is_map() or uses_clear_frame() or uses_expanded_art() or is_puma()
then 375
else if clear_tops()
then 345
else if is_dka()
then 328
else if mutate_image()
then 330
else 316
height:
script:
if is_map()
then 241
else if uses_clear_frame() or uses_expanded_art()
then 523
else if clear_tops() and is_dka()
then 483
else if clear_tops()
then 291
else if is_dka()
then 423
else if mutate_image()
then 334
else if is_puma()
then 265
else 231
z index: 100
default: {default_image(card.card_color)}
mask: { image_mask_script() }
mainframe image:
left: {if comma_count(styling.popout_image_style) == ",,,," then split_text(match:",", styling.popout_image_style).0 else 0}
top: {if comma_count(styling.popout_image_style) == ",,,," then split_text(match:",", styling.popout_image_style).1 else 0}
width: {if comma_count(styling.popout_image_style) == ",,,," then split_text(match:",", styling.popout_image_style).2 else 0}
height: {if comma_count(styling.popout_image_style) == ",,,," then split_text(match:",", styling.popout_image_style).3 else 0}
z index: 1010
############################# Card type
indicator:
left: { if is_map() then 18 else 31 + (if is_season() then 12 else 0) + (if is_clear() then 2 else 0) + (if use_flash_dot() then 3 else 0) }
top: { if is_map() or is_clear() then 298 else if is_thbland() then 449 else if is_dka() then 332 else 300 }
width: 17
height: 17
z index: 800
render style: image
visible: { has_identity() }
image: { module_identity() }
type:
left: { if is_map() then 85 else 32 + (if is_season() then 12 else 0) + (if has_identity() then 20 else 0) + (if is_clear() then 4 else 0) + (if use_flash_dot() then 3 else 0) }
top: { (if is_map() then 297.5 else if is_devoid() then 295 else if is_clear() then 294 else if is_thbland() then 444 else if is_dka() then 329 else 296) + shrink_type() + type_font_vertical() }
width: { if is_map() then 205 else (if has_identity() then 290 else 310) - rare_width() - (if is_season() then 12 else 0) }
height: { (if is_map() then 18 else 20) - shrink_type() }
alignment: { if is_map() then "center top shrink-overflow" else "top shrink-overflow" }
z index: 900
padding top: 2
font:
name: { type_font() }
italic name: { type_font_italic() }
size: { type_font_size() }
color: { type_font_color() }
shadow color: {if is_map() then rgba(0,0,0,0) else if is_dka() or is_puma() or is_planeshifted() or is_fnm() then "black" else rgba(0,0,0,0)}
shadow displacement x: -1
shadow displacement y: 1
separator color: red
rarity:
right: { (if is_map() then 199 else if is_scrolls() then 334 else 344) + rarity_user_offset_left(styling.rarity_offsets or else "") }
top: { (if is_map() then 53 else if is_devoid() then 296 else if is_clear() then 295 else if is_thbland() then 445 else if is_dka() then 329 else 297) + rarity_user_offset_top(styling.rarity_offsets or else "") }
width: { if set.shorten_types_for_rarity then 44 + rarity_user_offset_width(styling.rarity_offsets or else "") else 0 }
height: {22 + rarity_user_offset_height(styling.rarity_offsets or else "")}
z index: 950
render style: image
alignment: middle right
include file: /magic-modules.mse-include/rarities/choice_images
############################# Text boxs
text:
left: { if (card.level_0 != "" or card.level_1 != "" or card.level_2 != "") then 75 else if is_map() then 40 else 29 }
top: { top_of_textbox() }
bottom: { bottom_of_textbox() }
width: { if is_leveler() then 0 else (if is_map() then 287 else 314) + (if (card.level_0 != "" or card.level_1 != "" or card.level_2 != "") then -46 else 0) }
font:
name: { body_font() }
italic name: { body_font_italic() }
size: { body_font_size() }
scale down to: 6
color: { body_font_color() }
shadow color: {if is_map() then rgba(0,0,0,0) else if is_dka() or is_fnm() then "black" else rgba(0,0,0,0)}
shadow displacement x: -1
shadow displacement y: 1
symbol font:
name: { styling.text_box_mana_symbols }
size: {body_font_size()}
scale down to: 6
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 if styling.center_text == "right align" then "middle right"
else "middle left"
z index: 900
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
############################# leveler
level 1 text:
left: { if is_leveler() and card.level_0 != "" then (if loy_leveler() then 57 else if box_leveler() then 78 else 75) else if is_map() then 40 else 29}
top: { if is_dka() and is_mutate() then 359 else if is_mutate() then 329 else top_of_textbox() }
right: { if is_leveler() then (if lone_pt() or card.pt == "" then 342 else 277) else if is_mutate() then 342 else if is_map() then 40 else 29}
bottom: { if is_mutate() then 392 else if is_leveler() then (327+lv_1_height()) else bottom_of_textbox() }
font:
font:
name: { body_font() }
italic name: { body_font_italic() }
size: { body_font_size() }
scale down to: 6
color: { body_font_color() }
shadow color: {if is_map() then rgba(0,0,0,0) else if is_dka() or is_fnm() then "black" else rgba(0,0,0,0)}
shadow displacement x: -1
shadow displacement y: 1
symbol font:
name: { styling.text_box_mana_symbols }
size: {body_font_size()}
scale down to: 6
alignment:
script:
if (styling.center_text == "short text only" and
card_style.level_1_text.content_lines <= 2) or
styling.center_text == "always"
then "middle center"
else "middle left"
z index: 900
padding left: 6
padding right: 4
line height hard: {if is_modal(card.level_1_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.level_1_text) then 1.0 else 1.3 }
line height line max: 1.6
level 2 text:
left: { if is_leveler() then (if card.level_1 != "" then (if loy_leveler() then 57 else if box_leveler() then 78 else 75) else if is_map() then 40 else 29) else 0}
top: { if is_leveler() then (329 + lv_2_coordinate()) else 0 }
right: { if is_leveler() then (if card.pt_2 != "" then 277 else 342) else 0 }
bottom: { if is_leveler() then (329 + lv_2_coordinate()) + lv_2_height()-2 else 0 }
font:
name: { body_font() }
italic name: { body_font_italic() }
size: { body_font_size() }
scale down to: 6
color: { body_font_color() }
shadow color: {if is_map() then rgba(0,0,0,0) else if is_dka() or is_fnm() then "black" else rgba(0,0,0,0)}
shadow displacement x: -1
shadow displacement y: 1
symbol font:
name: { styling.text_box_mana_symbols }
size: {body_font_size()}
scale down to: 6
alignment:
script:
if (styling.center_text == "short text only" and
card_style.level_2_text.content_lines <= 2) or
styling.center_text == "always"
then "middle center"
else "middle left"
z index: 900
padding left: 6
padding right: 4
line height hard: {if is_modal(card.level_2_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.level_2_text) then 1.0 else 1.3 }
line height line max: 1.6
level 3 text:
left: {if card.level_2 != "" then (if loy_leveler() then 57 else if box_leveler() then 78 else 75) else if is_map() then 40 else 29}
top: {331 + lv_3_coordinate()}
right: {if card.pt_3 != "" then 277 else 342}
height: {if not is_leveler()then 0 else lv_3_height()-2}
font:
name: { body_font() }
italic name: { body_font_italic() }
size: { body_font_size() }
scale down to: 6
color: { body_font_color() }
shadow color: {if is_map() then rgba(0,0,0,0) else if is_dka() or is_fnm() then "black" else rgba(0,0,0,0)}
shadow displacement x: -1
shadow displacement y: 1
symbol font:
name: { styling.text_box_mana_symbols }
size: {body_font_size()}
scale down to: 6
alignment:
script:
if (styling.center_text == "short text only" and
card_style.level_3_text.content_lines <= 2) or
styling.center_text == "always"
then "middle center"
else "middle left"
z index: 900
padding left: 6
padding right: 4
line height hard: {if is_modal(card.level_3_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.level_3_text) then 1.0 else 1.3 }
line height line max: 1.6
level 4 text:
left: {if card.level_3 != "" then (if loy_leveler() then 57 else if box_leveler() then 78 else 75) else if is_map() then 40 else 29}
top: {331 + lv_4_coordinate()}
right: {if card.pt_7 != "" then 277 else 342}
height: {if not is_leveler() then 0 else lv_4_height()-2}
font:
name: { body_font() }
italic name: { body_font_italic() }
size: { body_font_size() }
scale down to: 6
color: { body_font_color() }
shadow color: {if is_map() then rgba(0,0,0,0) else if is_dka() or is_fnm() then "black" else rgba(0,0,0,0)}
shadow displacement x: -1
shadow displacement y: 1
symbol font:
name: { styling.text_box_mana_symbols }
size: {body_font_size()}
scale down to: 6
alignment:
script:
if (styling.center_text == "short text only" and
card_style.level_4_text.content_lines <= 2) or
styling.center_text == "always"
then "middle center"
else "middle left"
z index: 900
padding left: 6
padding right: 4
line height hard: {if is_modal(card.level_4_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.level_4_text) then 1.0 else 1.3 }
line height line max: 1.6
watermark:
left: { if is_map() then 40 else 19 }
top: { if is_map() then 330 else if is_dka() then 359 else 330 }
width: { if is_tarot() then 0 else if is_map() then 287 else 334 }
height: { if is_map() then 154 else if is_dka() then 120 else 152 }
z index: 720
render style: image
popup style: in place
alignment: middle center
include file: /magic.mse-game/watermarks/menu_choice_images
image: { watermark_image_1() }
############################# Levels
level 0:
z index: 910
left: {if box_leveler() then 8 else if loy_leveler() then 14 else 21}
top: {l1_center() - (if aug_leveler(0) then 4 else 2) - (if center_label(0) then 6 else 0) + arrow_offset(0)}
width: {if is_leveler() or card.level_0 != "" then (34 + (if box_leveler() then 30 else 0)) else 0}
height: 22
alignment: center middle shrink-overflow
font:
name: Beleren Bold
size: {if loy_leveler() then 11 else 12 + if center_label(0) then 2 else 0}
weight: bold
color: {if loy_leveler() then "white" else "black"}
shadow color: { if loy_leveler() then rgba(0,0,0,0) else "white"}
shadow blur: 2
symbol font:
name: { styling.level_mana_symbols }
size: {12 + if center_label(0) then 0.5 else 0}
level 1:
z index: 910
left: {if box_leveler() then 8 else if loy_leveler() then 14 else 21}
top: {l2_center() - (if aug_leveler(1) then 4 else 2) - (if center_label(1) then 6 else 0) + arrow_offset(1)}
height: 22
width: {if is_leveler() or card.level_1 != "" then (34 + (if box_leveler() then 30 else 0)) else 0}
alignment: center middle shrink-overflow
font:
name: Beleren Bold
size: {if loy_leveler() then 11 else 12 + if center_label(0) then 2 else 0}
weight: bold
color: {if loy_leveler() then "white" else "black"}
shadow color: { if loy_leveler() then rgba(0,0,0,0) else "white"}
shadow blur: 2
symbol font:
name: { styling.level_mana_symbols }
size: {12 + if center_label(0) then 0.5 else 0}
level 2:
z index: 910
left: {if box_leveler() then 8 else if loy_leveler() then 14 else 21}
top: {l3_center() - (if aug_leveler(2) then 4 else 2) - (if center_label(2) then 6 else 0) + arrow_offset(2)}
width: {if is_leveler() or card.level_2 != "" then (34 + (if box_leveler() then 30 else 0)) else 0}
height: 22
alignment: center middle shrink-overflow
font:
name: Beleren Bold
size: {if loy_leveler() then 11 else 12 + if center_label(0) then 2 else 0}
weight: bold
color: {if loy_leveler() then "white" else "black"}
shadow color: { if loy_leveler() then rgba(0,0,0,0) else "white"}
shadow blur: 2
symbol font:
name: { styling.level_mana_symbols }
size: {12 + if center_label(0) then 0.5 else 0}
level 3:
z index: 910
left: {if box_leveler() then 8 else if loy_leveler() then 14 else 21}
top: {l4_center() - (if aug_leveler(3) then 4 else 2) - (if center_label(3) then 6 else 0) + arrow_offset(3)}
width: {if is_leveler() or card.level_2 != "" then (34 + (if box_leveler() then 30 else 0)) else 0}
height: { if card_style.level_4_text.height < 10 and card.level_3 == "" then 0 else 22}
alignment: center middle shrink-overflow
font:
name: Beleren Bold
size: {if loy_leveler() then 11 else 12 + if center_label(0) then 2 else 0}
weight: bold
color: {if loy_leveler() then "white" else "black"}
shadow color: { if loy_leveler() then rgba(0,0,0,0) else "white"}
shadow blur: 2
symbol font:
name: { styling.level_mana_symbols }
size: {12 + if center_label(0) then 0.5 else 0}
############################# PT
pt:
z index: 900
left: {if is_leveler() and not lone_pt() then 291 else 286}
top: { (if is_leveler() and not lone_pt() then (l1_center() - 14) else if is_map() then 467 else 469)+(pt_font_vertical())}
width: {if starting_loyalty() and not is_leveler() then 0 else 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
shadow color: {if is_map() then rgba(0,0,0,0) else if is_planeshifted() or is_fnm() then rgb(0,0,0) else rgba(0,0,0,0)}
shadow displacement x: -1
shadow displacement y: 1
pt 2:
z index: 900
left: 291
top: {(l2_center() - 12)+(if is_map() then -1 else 0)+(pt_font_vertical())}
width: {if is_leveler() and not lone_pt() or card.pt_2 != "" then 60 else 0}
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
shadow color: {if is_map() then rgba(0,0,0,0) else if is_planeshifted() or is_fnm() then rgb(0,0,0) else rgba(0,0,0,0)}
shadow displacement x: -1
shadow displacement y: 1
pt 3:
z index: 900
left: 291
top: {(l3_center() - 12)+(if is_map() then -1 else 0)+(pt_font_vertical())}
width: {if is_leveler() and not lone_pt() or card.pt_3 != "" then 60 else 0}
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
shadow color: {if is_map() then rgba(0,0,0,0) else if is_planeshifted() or is_fnm() then rgb(0,0,0) else rgba(0,0,0,0)}
shadow displacement x: -1
shadow displacement y: 1
pt 7:
z index: 900
left: 291
top: {(l4_center() - 12)+(if is_map() then -1 else 0)+(pt_font_vertical())}
width: {if is_leveler() and not lone_pt() or card.pt_7 != "" then 60 else 0}
height: {if card_style.level_4_text.height < 10 and card.pt_7 == "" then 0 else 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
shadow color: {if is_map() then rgba(0,0,0,0) else if is_planeshifted() or is_fnm() then rgb(0,0,0) else rgba(0,0,0,0)}
shadow displacement x: -1
shadow displacement y: 1
loyalty:
z index: 900
left: 326
top: {468+(pt_font_vertical())}
width: {if starting_loyalty() then 13.16 else 0}
height: 34.63
alignment: center middle
font:
name: {pt_font()}
italic name: {pt_font_italic()}
size: {loyalty_font_size()}
color: {loyalty_font_color()}
############################################################## Extra card fields
extra card field:
type: choice
name: pt box
script: card.card_color
editable: false
save value: false
extra card field:
type: choice
name: pt box 2
script: card.card_color
editable: false
save value: false
extra card field:
type: choice
name: pt box 3
script: card.card_color
editable: false
save value: false
extra card field:
type: choice
name: pt box 4
script: card.card_color
editable: false
save value: false
extra card field:
type: choice
name: loyalty box
editable: false
choice: loyalty
save value: false
extra card field:
type: choice
name: foil layer
choice: foil
save value: false
editable: false
extra card field:
type: text
name: promo label
save value: true
description: The golden promo label.
extra card field:
type: text
name: tarot watermark
extra card field:
type: choice
name: clear top frame
script: card.card_color
save value: false
editable: false
extra card field:
type: choice
name: evobar
choice: evo
save value: false
editable: false
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: alias bar
script: card.card_color
save value: false
editable: false
extra card field:
type: choice
name: scrolls
script: card.card_color
editable: false
save value: false
show statistics: false
extra card field:
type: choice
name: curtain
script: card.card_color
editable: false
save value: false
show statistics: false
extra card field:
type: choice
name: miracle overlay
choice: miracle
save value: false
editable: false
script: card.card_color
extra card field:
type: choice
name: nyx overlay
choice: nyx
save value: false
editable: false
script: card.card_color
extra card field:
type: choice
name: snow overlay
choice: snow
save value: false
editable: false
script: card.card_color
extra card field:
type: choice
name: beyond overlay
choice: beyond
save value: false
editable: false
script: card.card_color
extra card field:
type: choice
name: custom overlay
script: card.card_color
save value: false
editable: false
extra card field:
type: choice
name: draft overlay
script: card.card_color
save value: false
editable: false
extra card field:
type: choice
name: vehicle overlay
choice: car door
save value: false
editable: false
# Add the word "LEVEL" to the top arrow.
extra card field:
type: text
name: lvl label 0
editable: false
save value: false
script: if loy_leveler() then ":" else level_label(0)
# Add the word "LEVEL" to the second arrow.
extra card field:
type: text
name: lvl label 1
editable: false
save value: false
script: if loy_leveler() then ":" else level_label(1)
# Add the word "LEVEL" to the third arrow.
extra card field:
type: text
name: lvl label 2
editable: false
save value: false
script: if loy_leveler() then ":" else level_label(2)
# Add the word "LEVEL" to the fourth arrow.
extra card field:
type: text
name: lvl label 3
editable: false
save value: false
script: if loy_leveler() then ":" else level_label(2)
extra card field:
type: choice
name: level 2 overlay
script: card.card_color
choice: mask
editable: false
show statistics: false
extra card field:
type: choice
name: level 3 overlay
script: card.card_color
choice: mask
editable: false
show statistics: false
extra card field:
type: choice
name: level 4 overlay
script: card.card_color
choice: mask
editable: false
show statistics: false
extra card field:
type: choice
name: arrow 1
script: card.card_color
editable: false
save value: false
show statistics: false
extra card field:
type: choice
name: arrow 2
script: card.card_color
editable: false
save value: false
show statistics: false
extra card field:
type: choice
name: arrow 3
script: card.card_color
editable: false
save value: false
show statistics: false
extra card field:
type: choice
name: arrow 4
script: card.card_color
editable: false
save value: false
show statistics: false
extra card field:
type: text
name: ascend
script: text_filter(value, card_name:card.name, margin_code:"unknown")
extra card field:
type: choice
name: season flag
script: card.card_color
save value: false
editable: false
extra card field:
type: choice
name: mutbar
choice: bar
editable: false
save value: false
show statistics: false
extra card field:
type: color
name: silver patch
script: rgb(0,0,0)
editable: false
save value: false
extra card field:
type: choice
name: node
script: card.card_color
editable: false
save value: false
show statistics: false
extra card field:
type: choice
name: crown
script: card.card_color
save value: false
editable: false
extra card field:
type: multiple choice
name: pride pin
include file: /magic-pride.mse-include/pins
save value: true
editable: true
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: choice
name: flash indicator
choice: dot
save value: false
editable: false
extra card field:
type: choice
name: stamp backing
script: card.card_color
save value: false
editable: false
extra card style:
pt box:
left: { if is_leveler() and not lone_pt() then 278 else if is_map() then 270 else 273 }
top: { if is_leveler() and not lone_pt() then (l1_center() - (if is_map() then 26 else 18)) else if is_map() then 453 else 466}
width: { if starting_loyalty() and not is_leveler() then 0 else if is_map() then 90 else 81}
height: { if is_map() then 54 else 42}
z index: 840
visible: { card.pt != "" }
render style: image
image: { choose_ptbox() }
pt box 2:
left: 278
top: { l2_center() - (if is_map() then 26 else 15)}
width: { if (is_leveler() and not lone_pt()) or card.pt_2 != "" then (if is_map() then 90 else 81) else 0}
height: { if (is_leveler() and not lone_pt()) or card.pt_2 != "" then (if is_map() then 54 else 42) else 0}
z index: 840
visible: { card.pt_2 != "" }
render style: image
image: {if is_map() then mappt_background() else combine_blend(image1: choose_ptbox(), image2: template_prefix["pt"]+"ptbox_multiply_1.png", combine: "multiply")}
pt box 3:
left: 278
top: { l3_center() - (if is_map() then 26 else 15)}
width: { if (is_leveler() and not lone_pt()) or card.pt_3 != "" then (if is_map() then 90 else 81) else 0}
height: { if (is_leveler() and not lone_pt()) or card.pt_3 != "" then (if is_map() then 54 else 42) else 0}
z index: 840
visible: { card.pt_3 != "" }
render style: image
image: {if is_map() then mappt_background() else combine_blend(image1: choose_ptbox(), image2: template_prefix["pt"]+"ptbox_multiply_2.png", combine: "multiply")}
pt box 4:
left: 278
top: { l4_center() - (if is_map() then 26 else 15)}
width: { if (is_leveler() and not lone_pt()) or card.pt_3 != "" then (if is_map() then 90 else 81) else 0}
height: { if (is_leveler() and not lone_pt()) or card.pt_3 != "" then (if is_map() then 54 else 42) else 0}
z index: 840
visible: { card.pt_7 != "" }
render style: image
image: {if is_map() then mappt_background() else combine_blend(image1: choose_ptbox(), image2: template_prefix["pt"]+"ptbox_multiply_3.png", combine: "multiply")}
loyalty box:
right: 362
top: 466
width: 60
height: 38
z index: 830
render style: image
visible: { starting_loyalty() and card.loyalty != "" }
choice images:
loyalty: loyalty.png
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: { "foil_mask" + (if card.pt != "" then "_pt") + (if is_stamped() then "_rare") + ".png" }
promo label:
left: 40
top: { if is_dka() then 295 else 262 }
width: {if chosen(styling.other_options, choice:"prerelease stamp") then 295 else 0}
height: 29
alignment: middle right
z index: 1030
font:
name: ModMatrix
size: 14
color: rgb(223,169,41)
tarot watermark:
left: { if is_map() then 40 else 19 }
top: { if is_dka() then 359 else 330 }
width: { if not is_tarot() then 0 else if is_map() then 287 else 334 }
height: { if is_map() then 154 else if is_dka() then 120 else 152 }
z index: 720
alignment: middle center
font:
name: MPlantin
size: 90
color: {rgba(0,0,0,40)}
clear top frame:
left: 0
top: 0
width: {if clear_tops() then 375 else 0}
height: 523
z index: 199
render style: image
popup style: in place
image: /magic-modules.mse-include/cards/375 m15 simple/xcard.png
mask: { if is_dka() then "frame_masks/clear_tops_dka_mask2.png" }
evobar:
left: {if is_map() then 15 else 27}
top: {if is_map() then 62 else 57}
width: {card_style.alias.content_width}
height: 27
z index: 870
render style: image
image: /magic-modules.mse-include/extras/evobar/evobar.png
visible: {use_evobar()}
evobar tip:
left: {(if is_map() then 14.6 else 26.6) + card_style.alias.content_width}
top: {if is_map() then 62 else 57}
width: 36
height: 27
z index: 870
render style: image
image: /magic-modules.mse-include/extras/evobar/evobar_tip.png
visible: {use_evobar()}
alias bar:
left: 38
top: { if uses_clear_frame() or clear_tops() then 59 else 57}
width: 298
height: 21
z index: 880
render style: image
image: {if is_devoid() and not is_legend() then template_prefix["alias"]+"devoidalias.png" else if is_clear() or clear_tops() then template_prefix["alias"]+"xalias.png" else module_alias()}
visible: {is_skinned() and not use_evobar()}
mask: { if is_legend() and (is_devoid() or uses_expanded_art() or is_puma()) then "frame_masks/bl_alias_mask.png" else "" }
scrolls:
left: 0
top: 0
width: 375
height: 523
render style: image
image: {if is_puma() then puma_img() else "scrolls" + (if is_dka() then "_full" else "") + (if is_miracle() and not is_legend() then "_miracle" else "") + ".png"}
z index: 600
visible: {not is_map() and (is_scrolls() or is_puma())}
curtain:
left: 0
top: 0
width: 375
height: 523
render style: image
image: {curtain_plate()}
z index: 610
visible: {not is_map() and not uses_expanded_art() and is_curtains()}
mask: {if is_legend() then "curtains/legend_mask.png"}
miracle overlay:
left: 0
top: { if is_devoid() and is_legend() then 1 else 0 }
width: 375
height: 523
render style: image
image: { miracle_plate() }
z index: 810
visible: {not is_map() and is_miracle()}
mask: { miracle_mask() }
nyx overlay:
left: 0
top: 0
width: 375
height: 523
render style: image
image: { devoid_mask(module_nyx()) }
z index: 330
visible: { not is_map() and not uses_expanded_art() and is_nyx() }
mask: { if is_snow() or is_custom_border() or is_draft() or is_vehicle() then twin_trim_mask() else main_trim_mask() }
snow overlay:
left: 0
top: 0
width: 375
height: 523
render style: image
image: { devoid_mask(module_snow()) }
z index: 320
visible: { not is_map() and not uses_expanded_art() and is_snow() and base_card() != "snow" }
mask: { if is_custom_border() or is_draft() or is_vehicle() then twin_trim_mask() else main_trim_mask() }
custom overlay:
left: 0
top: 0
width: 375
height: 523
render style: image
image: { devoid_mask(custom_border_blend()) }
z index: 317
visible: { not is_map() and not uses_expanded_art() and is_custom_border() }
mask: { if is_vehicle() or is_draft() then twin_trim_mask() else main_trim_mask() }
draft overlay:
left: 0
top: 0
width: 375
height: 523
z index: 315
render style: image
image: { devoid_mask(draft_trim()) }
visible: {not is_map() and not uses_expanded_art() and is_draft()}
mask: { if is_vehicle() then twin_trim_mask() else main_trim_mask() }
vehicle overlay:
left: 0
top: 0
width: 375
height: 523
render style: image
image: {if is_beyond() then devoid_mask("/magic-modules.mse-include/trims/beyond/vbeyond.png") else devoid_mask("/magic-modules.mse-include/trims/vehicle.png")}
z index: 310
visible: { not is_map() and not uses_expanded_art() and is_vehicle() }
mask: { main_trim_mask() }
lvl label 0:
left: {if box_leveler() then 8 else if loy_leveler() then 48 else 21}
top: {l1_center() - (if loy_leveler() then 2 else 10) + arrow_offset(0)}
width: {if is_leveler() or card.level_0 != "" then (if loy_leveler() then 10 else 34 + (if box_leveler() then 30 else 0)) else 0}
height: {if loy_leveler() then 10 else if center_label(0) then 0 else 10}
z index: 860
alignment: middle center
font:
name: {if loy_leveler() then "MPlantin" else "Beleren Small Caps"}
size: {if loy_leveler() then 15 else if length(level_label(0)) < 8 or box_leveler() then 7 else 6}
color: black
weight: {if loy_leveler() then "" else "bold"}
visible: {card.level_0 != ""}
lvl label 1:
left: {if box_leveler() then 8 else if loy_leveler() then 48 else 21}
top: {l2_center() - (if loy_leveler() then 2 else 10) + arrow_offset(1)}
width: {if is_leveler() or card.level_1 != "" then (if loy_leveler() then 10 else 34 + (if box_leveler() then 30 else 0)) else 0}
height: {if loy_leveler() then 10 else if center_label(1) then 0 else 10}
z index: 860
alignment: middle center
font:
name: {if loy_leveler() then "MPlantin" else "Beleren Small Caps"}
size: {if loy_leveler() then 15 else if length(level_label(1)) < 8 or box_leveler() then 7 else 6}
color: black
weight: {if loy_leveler() then "" else "bold"}
visible: {card.level_1 != ""}
lvl label 2:
left: {if box_leveler() then 8 else if loy_leveler() then 48 else 21}
top: {l3_center() - (if loy_leveler() then 2 else 10) + arrow_offset(2)}
width: {if is_leveler() or card.level_2 != "" then (if loy_leveler() then 10 else 34 + (if box_leveler() then 30 else 0)) else 0}
height: {if loy_leveler() then 10 else if center_label(2) then 0 else 10}
z index: 860
alignment: middle center
font:
name: {if loy_leveler() then "MPlantin" else "Beleren Small Caps"}
size: {if loy_leveler() then 15 else if length(level_label(2)) < 8 or box_leveler() then 7 else 6}
color: black
weight: {if loy_leveler() then "" else "bold"}
visible: {card.level_2 != ""}
lvl label 3:
left: {if box_leveler() then 8 else if loy_leveler() then 48 else 21}
top: {l4_center() - (if loy_leveler() then 2 else 10) + arrow_offset(3)}
width: {if is_leveler() or card.level_3 != "" then (if loy_leveler() then 10 else 34 + (if box_leveler() then 30 else 0)) else 0}
height: {if loy_leveler() then 10 else if center_label(3) then 0 else 10}
z index: 860
alignment: middle center
font:
name: {if loy_leveler() then "MPlantin" else "Beleren Small Caps"}
size: {if loy_leveler() then 15 else if length(level_label(2)) < 8 or box_leveler() then 7 else 6}
color: black
weight: {if loy_leveler() then "" else "bold"}
visible: {card.level_3 != ""}
level 2 overlay:
left: 29
top: { if is_d20() then top_of_para(rolls_start(card.text)-invert_rolls()) else 329 + lv_2_coordinate()}
height: { if is_d20() then height_of_para(rolls_start(card.text)) else lv_2_height()}
width: 314
z index: 640
render style: image
image: {overlay1()}
visible: {(is_d20() and number_of_rolls(card.text) > 0) or (is_leveler() and not is_dka() and not is_map() and not is_fnm() and not is_inverted())}
level 3 overlay:
left: 29
top: { if is_d20() then top_of_para(rolls_start(card.text)+2-invert_rolls()) else 329 + lv_3_coordinate()}
height: { if is_d20() then height_of_para(rolls_start(card.text)+2-invert_rolls()) else lv_3_height()}
width: 314
z index: 640
render style: image
image: {overlay2()}
visible: {(is_d20() and number_of_rolls(card.text)-no_roll(card.text) > 2) or (is_leveler() and not is_dka() and not is_map() and not is_fnm() and not is_inverted())}
level 4 overlay:
left: 29
top: { if is_d20() then top_of_para(rolls_start(card.text)+4-invert_rolls()) else 329 + lv_4_coordinate()}
height: { if is_d20() then height_of_para(rolls_start(card.text)+4-invert_rolls()) else lv_4_height()}
width: 314
z index: 640
render style: image
image: {overlay3()}
visible: {(is_d20() and number_of_rolls(card.text)-no_roll(card.text) > 4) or (is_leveler() and not is_dka() and not is_map() and not is_fnm() and not is_inverted())}
arrow 1:
z index: 840
left: {arrow_left()}
top: {l1_center() - 16 + arrow_offset(0)}
width: {if card.level_0 != "" then arrow_width() else 0}
height: {arrow_height(0)}
render style: image
image: {if loy_leveler() then loyalty_image(card.level_0) else if box_leveler() then choose_ptbox() else arrow_img_1()}
arrow 2:
z index: 840
left: {arrow_left()}
top: {l2_center() - 16 + arrow_offset(1)}
width: {if card.level_1 != "" then arrow_width() else 0}
height: {arrow_height(1)}
render style: image
image: {if loy_leveler() then loyalty_image(card.level_1) else if box_leveler() then choose_ptbox() else arrow_img_1()}
arrow 3:
z index: 840
left: {arrow_left()}
top: {l3_center() - 16 + arrow_offset(2)}
width: {if card.level_2 != "" then arrow_width() else 0}
height: {arrow_height(2)}
render style: image
image: {if loy_leveler() then loyalty_image(card.level_2) else if box_leveler() then choose_ptbox() else arrow_img_2()}
arrow 4:
z index: 840
left: {arrow_left()}
top: {l4_center() - 16 + arrow_offset(3)}
width: {if card.level_3 != "" then arrow_width() else 0}
height: {arrow_height(3)}
render style: image
image: {if loy_leveler() then loyalty_image(card.level_3) else if box_leveler() then choose_ptbox() else arrow_img_3()}
ascend:
left: 37
top: 59
width: {if is_season() then 300 else 0}
height: 20
angle: 270
z index: 900
alignment: justify-all force
always symbol: true
font:
name: MPlantin
italic name: MPlantin-Italic
size: {if styling.font_cap != "" then to_number(styling.font_cap) else 14}
scale down to: 6
color: black
symbol font:
name: { styling.text_box_mana_symbols }
size: {if styling.font_cap != "" then to_number(styling.font_cap) else 14}
scale down to: 6
season flag:
left: 0
top: 0
width: 375
height: 523
z index: 800
render style: image
image: { season_background() }
visible: { is_season() }
mask: { if card.transformation != "none" then "nodes/mask.png" else "" }
mutbar:
z index: 730
left: 28
top: 393
height: 2
width: 317
render style: image
image: mutbar.png
visible: {is_mutate()}
silver patch:
left: 10
top: 10
width: 355
height: 15
z index: 495
visible: {is_legend() and card.border_color == rgb(200,200,200) and not uses_expanded_art()}
node:
left: 0
top: 0
height: 63
width: 375
z index: 610
render style: image
image: { node_img() }
visible: {not is_map() and not is_clear() and card.transformation != "none"}
crown:
left: 0
top: {if is_devoid() then 1 else 0}
width: 375
height: 523
render style: image
image: { crown_img() }
z index: 800
visible: {is_legend() and not is_map()}
mask: { if is_fnm() and is_season() then "fnm/crown_season_mask.png" else if is_fnm() then "fnm/crown_mask.png" else if is_season() then "season/crown_mask.png" else ""}
pride pin:
left: {if is_legend() then 18 else 24}
top: 58
width: {if not is_pinned() then 0 else if is_legend() then 338 else 325}
height: {if not is_pinned() then 0 else 234}
z index: 420
render style: image
popup style: in place
mask: {"/magic-pride.mse-include/masks/m15" + if is_legend() then " legend.png" else ".png"}
image: {pin_image()}
vorthos box:
right: { if is_leveler() and not lone_pt() then 350 else if (starting_loyalty() and card.loyalty != "") then 300 else if (card.pt != "" and not starting_loyalty()) then 275 else 350 }
top: {if card.pt == "" and shown_cr() then 500 else 488}
width: { if is_leveler() and not lone_pt() then 140 else if (starting_loyalty() and card.loyalty != "") then 90 else if (card.pt != "" and not starting_loyalty()) then 65 else 140 }
height: {if use_vorthos() then 10 else 0}
z index: 900
alignment: middle right
font:
name: Relay-Medium
size: 7
color: white
weight: bold
flash indicator:
left: 0
top: 0
width: 375
height: 523
z index: 840
render style: image
image: flashdot.png
visible: { use_flash_dot() }
stamp backing:
left: { 159 }
top: { stamp_top() }
height: { 26 }
width: { 56 }
visible: { card.card_stamp != "none" }
render style: image
image: { if stamp_shape() == "triangle" then tri_stamp() else round_stamp() }
z index: 850