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

2291 lines
77 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-04
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-05-20
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
include file: /magic-modules.mse-include/crowns/init_script
#### 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_shift: "/magic-modules.mse-include/levels/slides/1/shifted/"
slide2_shift: "/magic-modules.mse-include/levels/slides/2/shifted/"
slide3_shift: "/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_snow: "/magic-modules.mse-include/trims/miracle/snow/"
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"
node: "node.png"
node_shifted: "node.png"
curtains: "card.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) != "nothing"
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) != "nothing"
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,
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")
}
#### 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_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 := {
chosen(styling.frames, choice:"custom border")
and contains(styling.custom_border_source, match:".png")
}
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_snow() and not is_leveler()
then "snow"
else "standard"
}
#### trims
curtain_plate := { color_background(type:"curtains", base_hybrid: card_hybrid)}
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 := {
type := if is_fnm()
then "miracle_fnm"
else if is_inverted()
then "miracle_inv"
else if is_planeshifted()
then "miracle_shifted"
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 "")
}
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() then
img := set_mask(image:img, mask:"frame_masks/crown_miracle_borderless.png")
img
}
card_background := {
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"
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 ""
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 != "" 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() 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: 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: 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
styling field:
type: text
name: custom symbol
description: Uses a custom Lesson symbol from data/magic-mainframe-extras.mse-include
styling field:
type: text
name: card watermark
description: Filename in magic-watermarks to use for standalone card watermark
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: 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: 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()}
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: {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