Files
magic-set-editor-fork/data/magic-m15-altered.mse-style/style
CajunAvenger 3c0b4a4d86 October update
2021-10-07 00:35:28 -05:00

1880 lines
73 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: 2020-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-watermarks.mse-include
version: 2007-09-23
depends on:
package: magic-identity-new.mse-include
version: 2012-01-22
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-pride.mse-include
version: 2021-05-26
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 for image box
include file: /magic-default-image.mse-include/scripts
include file: /magic-pride.mse-include/scripts
# 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 }
base_template_prefix := [card: "" alias: "alias/" snow:"snow/" snowtexture:"snow/" devoid:"devoid/" nyx: "nyx/" miracle: "miracles/" node:"nodes/" promo: "promo/" crown: "legend/" cons:"conspiracy/" curtain: "curtains/" fnm: "fnm/", fnmpt: "paradox/", inverted: "inverted/", invertedpt: "inverted/", map: "maps/" energy: "energies/", mappt: "maps/" pt: "", slide: "masks/", slide2: "masks/", arrow: "arrows/", arrow2: "arrows/", arrow3: "arrows/", season: "season/" stamp: "" identity: "/magic-identity-new.mse-include/", puma: "puma/"]
shifted_template_prefix := [card: "shifted/" alias: "shifted/" snow:"snow/" snowtexture:"snow/" devoid:"devoid/" nyx: "nyx/" miracle: "shifted/" node:"shifted/" promo: "promo/" crown: "shifted/" cons:"conspiracy/" curtain: "curtains/" fnm:"fnm/", fnmpt: "paradox/", inverted: "inverted/", invertedpt: "inverted/", map: "maps/" energy: "energies/", mappt: "maps/" pt: "shifted/", slide: "shifted/", slide2: "shifted/", arrow: "arrows/", arrow2: "arrows/", arrow3: "arrows/", season: "season/" stamp: "shifted/" identity: "/magic-identity-new.mse-include/", puma: "puma/shifted/"]
template_prefix := { if type == "miracle" and pure_snow() then [miracle:"snow/"] else if is_shifted() then shifted_template_prefix else base_template_prefix }
template_suffix := [card: "card.jpg" node:"node.png" alias:"alias.png" devoid:"card.png" snow:"card.jpg" snowtexture:"snow.png" nyx: "nyx.png" miracle: "miracle.png" promo: "card.jpg" crown: "crown.png" cons:"cons.png" curtain: "card.png" fnm:"card.png", fnmpt: "pt.png", inverted: "card.png", invertedpt: "pt.png", map: "card.png", energy: "card.png", mappt: "pt.png" pt: "pt.png", slide: "slide.png", slide2: "slide2.png", stamp: "stamp.jpg", arrow: "arrow.png", arrow2: "arrow2.png", arrow3: "arrow3.png", season: "flag.png" identity: "identity.png", puma: "puma.png"]
template := { crown_lead(type) + template_prefix()[type] + input + crown_follow(type) + template_suffix[type] }
land_template := { crown_lead(type) + template_prefix()[type] + (if input == "a" then "c" else input) + (if landless(type) then "" else "l") + crown_follow(type) + template_suffix[type] }
# Use land templates for previews because they show more contrast
hybrid_previews := "land,hybrid"
landless := {if input == "nyx" or input == "node" or input == "miracle" or input == "alias" or input == "devoid" or input == "energy" or input == "season" or input == "cons" or input == "arrow" or input == "crown" or input == "nyxcrown" then true else false}
crown_lead := {
if input != "crown" then ""
else if (styling.legend_crown == "custom" and styling.custom_crown_location != "")
then "/magic-mainframe-extras.mse-include/" + styling.custom_crown_location
else ""
}
crown_follow := {
if input != "crown" then ""
else if styling.legend_crown == "nyx" or (is_nyx() and chosen(styling.other_options, choice:"auto nyx crowns"))
then "nyx"
else if styling.legend_crown == "companion"
then "com"
else ""
}
transfer_levels := {if is_mutate() then false else true}
node_background := { color_background(type:"node", base_hybrid:card_hybrid) }
nyx_background := { color_background(type:"nyx", base_hybrid:card_hybrid) }
devoid_background := { color_background(type:"devoid", base_hybrid:card_hybrid) }
snow_background := { color_background(type:"snow", base_hybrid:card_hybrid) }
snow_texture := { color_background(type:"snowtexture", base_hybrid:card_hybrid) }
puma_bar := { color_background(type:"puma", base_hybrid:card_hybrid) }
fnm_background := { color_background(type:"fnm", base_hybrid:card_hybrid) }
inverted_background := { color_background(type:"inverted", base_hybrid:card_hybrid) }
alias_bar := { color_background(type:"alias", base_hybrid:card_hybrid) }
miracle_background := { color_background(type:"miracle", base_hybrid:card_hybrid) }
map_background := { color_background(type:"map", base_hybrid:card_hybrid) }
energy_background := { color_background(type:"energy", base_hybrid:card_hybrid) }
promo_background := { color_background(type:"promo", base_hybrid:card_hybrid) }
fnm_ptbox := { color_background(type:"fnmpt", base_hybrid:pt_hybrid) }
inverted_ptbox := { color_background(type:"invertedpt", base_hybrid:pt_hybrid) }
mappt_background := { color_background(type:"mappt", base_hybrid:pt_hybrid) }
arrow_background := { color_background(type:"arrow", base_hybrid:pt_hybrid) }
arrow_background_2 := { color_background(type:"arrow2", base_hybrid:pt_hybrid) }
arrow_background_3 := { color_background(type:"arrow3", base_hybrid:pt_hybrid) }
crown_background := { color_background(type:"crown", base_hybrid: card_hybrid)}
curtain_background := { color_background(type:"curtain", base_hybrid: card_hybrid)}
cons_background := { color_background(type:"cons", base_hybrid: card_hybrid)}
background_slide := { color_background(type:"slide", base_hybrid: card_hybrid)}
background_slide_2 := { color_background(type:"slide2", base_hybrid: card_hybrid)}
background_slide_3 := { color_background(type:"slide3", base_hybrid: card_hybrid)}
season_background := { color_background(type:"season", base_hybrid:card_hybrid) }
# Use the normal tap symbol
mana_t := {
if styling.tap_symbol == "old" then "old"
else if styling.tap_symbol == "diagonal T" then "older"
else "new"
}
loyalty_image := {
if contains(input, match: "+") then "loyaltyup.png"
else if contains(input, match: "-") then "loyaltydown.png"
else "loyaltynaught.png"
}
# Use guild mana symbols?
guild_mana := { styling.use_guild_mana_symbols }
# Is the card a promo card?
is_promo := { styling.promo }
is_stamped := {styling.use_holofoil_stamps and (card.rarity == "rare" or card.rarity == "mythic rare")}
has_identity := { styling.color_indicator_dot }
shrink_type := {if styling.shrink_typeline_text != "" then to_int(styling.shrink_typeline_text) 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_int(styling.shrink_name_text) else 0 }
is_unsorted := {styling.remove_from_autocount}
is_devoid := { chosen(styling.frames, choice: "devoid") and not is_map()}
is_clear := { (chosen(styling.frames, choice: "clear") or is_devoid()) and not is_map()}
is_puma := { chosen(styling.frames, choice: "puma") and not is_map() and not is_clear() and not contains(styling.frames, match:"less art") and not is_full_art() }
is_mutate := { not is_expanded_art() and not is_full_art() and chosen(styling.frames, choice: "mutate") and not is_map()}
is_miracle := { chosen(styling.frames, choice: "miracle") and not is_map() and not is_expanded_art() and not is_cons() and not is_fnm() and not is_inverted()}
is_nyx := { chosen(styling.frames, choice: "nyx") and not is_map() }
is_vehicle := { (chosen(styling.frames, choice: "vehicle") or (chosen(styling.other_options, choice:"auto vehicles") and match_vehicle(card.sub_type))) and not is_map()}
is_snow := { (chosen(styling.frames, choice: "snow") or (chosen(styling.other_options, choice:"auto snow") and match_snow(card.super_type))) and not is_map()}
is_cons := { chosen(styling.frames, choice: "draft matters") or chosen(styling.frames, choice: "conspiracy") and not is_map() }
is_scrolls := { chosen(styling.frames, choice: "conspiracy") and not is_map()}
is_shifted := { chosen(styling.frames, choice: "planeshifted") and not is_map() and not is_full_art() and not is_fnm()}
is_fnm := {chosen(styling.frames, choice:"fnm promo") and not is_clear() and not is_full_art() and not is_map()}
is_inverted := {chosen(styling.frames, choice:"inverted") and not is_clear() and not is_full_art() and not is_fnm() and not is_map()}
is_map := { chosen(styling.frames, choice: "map") }
use_node := { chosen(styling.frames, choice: "lesson") }
is_season := { chosen(styling.frames, choice: "season") and not is_map() }
is_legend := {not is_map() and (chosen(styling.frames, choice: "legend") or (set.auto_legends and contains(card.super_type, match:"Legendary"))) }
is_full_art := {chosen(styling.frames, choice:"fullart") and not is_map() and not is_clear()}
is_expanded_art := {not is_map() and not is_clear() and contains(styling.frames, match:"less art")}
is_borderless := {not is_map() and not is_clear() and chosen(styling.frames, choice:"borderless art")}
is_thbland := {chosen(styling.frames, choice:"frameless art") and not is_leveler() and remove_tags(card.text) == "\n"}
expanded_mask := { "bigimagemasks/" + (if is_full_art() then "dka_" else "") + (if is_borderless() then (if is_stamped() then "rare_" else "") + "borderless_" else "") + "frameless.png"}
is_curtains := {contains(card.notes, match:"!curtain")}
is_pinned := {chosen(styling.other_options, choice:"pride pinlines")}
use_main_rarity := { contains(set.mainframe_rarity_name, match: ".png")}
un_png := replace@(match:".png", replace: "")
ancestral_mana := { chosen(styling.other_options, choice:"ancestral generic mana")}
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>")
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 := {if is_all_break() then 1+length(filter_text(card.rule_text, match:"\n"))-rolls_start(card.text) 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)
if card_style.text.layout.paragraphs[input].top or else 0 > 0 then
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
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}
text_filter := text_filter + override_clear + d20_filter + {if chosen(styling.other_options, choice:"override-style text") then override_filter(input) else input}
center_map := {is_map() and (card.casting_cost == "" or chosen(styling.other_options, choice:"always center map names"))}
use_evobar := {chosen(styling.other_options, choice:"pokemon evobar")}
alt_rarity := {styling.alt_rarity_color != ""}
alt_rarity_color := {
string := "83,67,53:177,150,131:0,0,0:0,0,0:0.07:"
if match(styling.alt_rarity_color, match:":$") then string := styling.alt_rarity_color
colons := length(filter_text(string, match:":"))
output := split_text(string, match:",|:")
splits := split_text(string, match:":")
if colons == 4
then output := split_text(string+"0.07:", match:",|:")
if colons == 3
then output := split_text(string+splits[2]+"0.07:", match:",|:")
else if colons == 2
then output := split_text(string+"0,0,0:0,0,0:0.07:", match:",|:")
else if colons == 1
then output := split_text(string+splits[0]+":0,0,0:0,0,0:0.07:", match:",|:")
output
}
alt_symbol := {symbol_variation(symbol:set.symbol, border_radius: alt_rarity_color().12, fill_type: "linear gradient", fill_color_1: rgb(alt_rarity_color().0, alt_rarity_color().1, alt_rarity_color().2), fill_color_2: rgb(alt_rarity_color().3, alt_rarity_color().4, alt_rarity_color().5), border_color_1: rgb(alt_rarity_color().6, alt_rarity_color().7, alt_rarity_color().8), border_color_2: rgb(alt_rarity_color().9, alt_rarity_color().10, alt_rarity_color().11), center_x:0.5, center_y:0.5, end_x:1, end_y:1)}
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")}
clear_tops := {chosen(styling.other_options, choice:"clear tops") and not is_puma()}
is_tarot := {chosen(styling.other_options, choice:"text watermarks")}
pure_snow := {is_snow() and not is_fnm() and not is_inverted() and not is_full_art() and not is_leveler() and not is_shifted()}
chop_top := {if styling.chop_top == "" then 0 else if comma_count(styling.chop_top) == "," or comma_count(styling.chop_top) == ",," then split_text(match:",", styling.chop_top).0 else styling.chop_top}
chop_bot := {if comma_count(styling.chop_top) == ",," then split_text(match:",", styling.chop_top).1 else if styling.chop_bottom == "" then 0 else styling.chop_bottom}
top_of_textbox := {(if is_map() then 340 else if is_full_art() then 359 else if is_mutate() then 395 else 327) - (-chop_top()) }
bottom_of_textbox := {(if is_map() then 475 else 481) - chop_bot() }
is_leveler := {chosen(styling.frames, choice:"leveler")}
box_leveler := {styling.level_containers == "pt boxes"}
loy_leveler := {styling.level_containers == "loyalty boxes"}
aug_leveler := {box_leveler() and center_label(input)}
level_label := {if styling.level_label == "" then "level" else pull_comma_array(styling.level_label, end:false, cell:input, default:styling.level_label)}
center_label := {loy_leveler() or level_label(input) == " "}
lv_1_height := {lv_2_coordinate()}
lv_2_coordinate := {max(min(52 + to_number(pull_comma_array(styling.level_offset, cell:0))+(if is_full_art() then 20 else if is_mutate() then 12 else nil),152), 0)}
lv_3_coordinate := {max(min(101 + to_number(pull_comma_array(styling.level_offset, cell:1)+(if is_full_art() then 10 else if is_mutate() then 12 else nil)),152), lv_2_coordinate())}
lv_4_coordinate := {max(min(152 + to_number(pull_comma_array(styling.level_offset, cell:2)+(if is_full_art() then 10 else if is_mutate() then 12 else nil)),152), lv_3_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_full_art() 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 "d20slice.png" else slice_crop(background_slide(), height: lv_2_height(), width:314, distance:(152-lv_2_coordinate()))}
overlay2 := {if is_d20() then "d20slice.png" else slice_crop(background_slide_2(), height: lv_3_height(), width:314, distance:lv_3_height())}
overlay3 := {if is_d20() then "d20slice.png" 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}
lone_pt := {chosen(styling.other_options, choice:"regular pt on levelers") and not starting_loyalty()}
starting_loyalty := {chosen(styling.other_options, choice:"use starting loyalty")}
choose_ptbox := {if is_fnm() then fnm_ptbox() else if is_inverted() then inverted_ptbox() else card_ptbox()}
lv_2_ptbox := { if is_vehicle() then "vpt.png" else if is_clear() then "cpt.png" else if is_fnm() then fnm_ptbox() else if is_inverted() then inverted_ptbox() else leveler_ptbox2() }
lv_3_ptbox := { if is_vehicle() then "vpt.png" else if is_clear() then "cpt.png" else if is_fnm() then fnm_ptbox() else if is_inverted() then inverted_ptbox() else leveler_ptbox3() }
lv_4_ptbox := { if is_vehicle() then "vpt.png" else if is_clear() then "cpt.png" else if is_fnm() then fnm_ptbox() else if is_inverted() then inverted_ptbox() else color_background(type:"pt", base_hybrid:leveler_pt_hybrid3) }
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)
}
custom_watermark_a := {if styling.card_watermark == "" or not contains(styling.card_watermark, match:".png") then "/magic-watermarks.mse-include/planeswalker.png" else "/magic-watermarks.mse-include/" + styling.card_watermark}
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 ""
}
shown_cr := {if set.automatic_copyright then set.copyright != "" else card.copyright != ""}
card_shape := {if is_leveler() then "leveler" else "normal"}
############################################################## 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: lesson
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: vehicle
choice: nyx
choice: leveler
choice: snow
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: text
name: custom symbol
description: Uses a custom Lesson symbol from data/magic-mainframe-extras.mse-include
styling field:
type: choice
name: legend crown
choice: standard
choice: nyx
choice: companion
choice: custom
description: The type of legend crown to use for this card.
styling field:
type: text
name: custom crown location
description: location of custom legend crown images in magic-mainframe-extras
styling field:
type: multiple choice
name: other options
description: Other frame options
choice: prerelease stamp
choice: brown legendary vehicle pt
choice: godzilla style alias
choice: pokemon evobar
choice: ancestral generic mana
choice: override-style text
choice: always center map names
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
initial: auto nyx crowns, auto vehicles, auto snow
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: 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: 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,
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: choice
name: level containers
choice: arrows
choice: pt boxes
choice: loyalty boxes
styling field:
type: boolean
name: use holofoil stamps
description: Change to no to disable rare holofoil stamps
styling field:
type: boolean
name: color indicator dot
description: Use the color indicator dot
initial: no
styling field:
type: boolean
name: remove from autocount
description: Removes the automatic card number for specific cards, to allow for overcounted cards like in Planeswalker Decks.
initial: no
styling field:
type: text
name: alt rarity color
description: Use a custom color for the rarity symbol. Formatted as "R1,G1,B1:R2,G2,B2:..." 1 and 2 are fill color, 3 and 4 border color
styling field:
type: text
name: card watermark
description: Filename in magic-watermarks to use for standalone card watermark
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
initial: never
styling field:
type: boolean
name: promo
description: Is this card a promo card, with the "P" rarity?
initial: no
styling field:
type: boolean
name: inverted common symbol
description: Should the common rarity symbol be inverted, like in Coldsnap?
initial: no
styling field:
type: package choice
name: overlay
description: Should there be an overlay applied, such as foil?
match: magic-overlay-*.mse-include
required: false
styling style:
use guild mana symbols:
choice images:
yes: /magic-mana-small.mse-symbol-font/mana_guild_rg.png
no: /magic-mana-small.mse-symbol-font/mana_rg.png
tap symbol:
render style: both
choice images:
modern: /magic-mana-large.mse-symbol-font/mana_t.png
old: /magic-mana-large.mse-symbol-font/mana_t_old.png
diagonal T: /magic-mana-large.mse-symbol-font/mana_t_older.png
center text:
render style: both
choice images:
always: /magic.mse-game/icons/center-all-text.png
short text only: /magic.mse-game/icons/center-short-text.png
never: /magic.mse-game/icons/center-no-text.png
inverted common symbol:
choice images:
no: { symbol_variation(symbol: set.symbol, variation: "common") }
yes: { symbol_variation(symbol: set.symbol, variation: "invertedcommon") }
frames:
render style: checklist
direction: vertical
other options:
render style: checklist
direction: vertical
############################################################## Card fields
card style:
############################# Background stuff
border color:
left: 0
top : 0
width: {if is_borderless() then 0 else 375}
height: 523
radius: 18
left width: 17
right width: 17
top width: 17
bottom width: 18
z index: 4
mask: { (if is_puma() then "puma_" else "") + (if is_legend() then "crown_border" else "border_mask") + (if card.border_color == rgb(200,200,200) then "_silver" else "") + ".png" }
card color:
left: 0
top: 0
width: 375
height: 523
z index: 0
render style: image
popup style: in place
image: { if is_clear() or clear_tops() then "" else if is_fnm() then fnm_background() else if is_inverted() then inverted_background() else if is_full_art() then promo_background() else if pure_snow() then snow_background() else card_background() }
############################# Name line
name:
left: { if center_map() then 55 else if is_map() then (if use_node() then 65 else 60) else if use_node() then 58 else if card.card_symbol=="none" then 32 else 50 }
top: { if is_map() then 27 else if is_devoid() then 30 else if is_clear() or clear_tops() then 31 else 30 }
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: 2
font:
name: { if is_map() then "Beleren Small Caps" else "Beleren Bold" }
size: { (if is_map() then 14.8 else 16) - shrink_name() }
color: {if is_shifted() or is_fnm() or is_inverted() then "white" else "black"}
shadow color: {if is_shifted() 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: 3
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: 2
padding top: 0
card symbol:
left: {if card.card_symbol=="none" then 20 else 30}
top: 29
height: 20
width: 14
z index: 1
render style: image
choice images:
tombstone: tombstone.png
############################# Image
image:
left: { if is_clear() or is_map() or is_expanded_art() or is_puma() then 0 else if is_full_art() then 23 else if clear_tops() then 15 else if is_mutate() then 22 else 29}
top: {if is_map() then 57 else if is_clear() or is_expanded_art() or clear_tops() then 0 else 59}
width: {if is_clear() or is_map() or is_expanded_art() or is_puma() then 375 else if is_full_art() then 328 else if clear_tops() then 345 else if is_mutate() then 330 else 316}
height: {if is_clear() or is_expanded_art() then 523 else if is_map() then 241 else if is_puma() then (if is_mutate() then 334 else 265) else if is_full_art() then 423 else if clear_tops() then 291 else if is_mutate() then 334 else 231}
z index: 1
default: {default_image(card.card_color)}
mask: { if is_devoid() then "image_mask_devoid.png" else if is_clear() then "image_mask.png" else if is_thbland() then "cornermask.png" else if is_puma() then "puma_mask" + (if is_mutate() then "_mutate.png" else "3.png") else if is_expanded_art() then expanded_mask() else if is_full_art() then "promo/image_mask" + (if is_rare() and styling.use_holofoil_stamps then "_rare") + ".png" else if is_mutate() and not clear_tops() then "mutate_mask.png" else ""}
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: 8
############################# Card type
indicator:
left: { (if is_map() then 18 else if is_season() then 43 else 31) + (if is_clear() then 2 else 0)}
top: { if is_clear() or is_map() then 298 else if is_thbland() then 449 else if is_full_art() then 332 else 300 }
width: 17
height: 17
z index: 2
render style: image
visible: { styling.color_indicator_dot }
image: { card_identity() }
type:
left: { if is_map() then 85 else if is_season() then (if styling.color_indicator_dot then 64 else 44)+(if is_clear() then 4 else 0) else (if styling.color_indicator_dot then 52 else 32) + (if is_clear() then 4 else 0) }
top: { (if is_map() then 297.5 else if is_clear() then 294 else if is_thbland() then 444 else if is_full_art() then 329 else 296) + shrink_type() }
width: { if is_map() then 205 else (if styling.color_indicator_dot then "290" else "310") - (if card_style.rarity.width == 0 then 0 else max(22,card_style.rarity.content_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: 5
padding top: 2
font:
name: Beleren Bold
size: { (if is_map() then 12 else 13) - shrink_type() }
color: { if is_full_art() or is_puma() or is_shifted() or is_fnm() or is_inverted() then "white" else "black"}
shadow color: {if is_full_art() or is_puma() or is_shifted() 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}
top: { if is_map() then 53 else if is_clear() then 295 else if is_thbland() then 445 else if is_full_art() then 329 else 297 }
width: {if set.shorten_types_for_rarity then 44 else 0}
height: 22
z index: 5
render style: image
alignment: middle right
choice images:
# Images based on the set symbol
basic land:
script:
if use_main_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "c.png"
else if alt_rarity() then alt_symbol()
else if styling.inverted_common_symbol then symbol_variation(symbol: set.symbol, variation: "invertedcommon")
else symbol_variation(symbol: set.symbol, variation: "common")
common:
script:
if use_main_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "c.png"
else if alt_rarity() then alt_symbol()
else if styling.inverted_common_symbol then symbol_variation(symbol: set.symbol, variation: "invertedcommon")
else symbol_variation(symbol: set.symbol, variation: "common")
uncommon:
script:
if use_main_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "u.png"
else if alt_rarity() then alt_symbol()
else symbol_variation(symbol: set.symbol, variation: "uncommon")
rare:
script:
if use_main_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "r.png"
else if alt_rarity() then alt_symbol()
else symbol_variation(symbol: set.symbol, variation: "rare")
mythic rare:
script:
if use_main_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "m.png"
else if alt_rarity() then alt_symbol()
else symbol_variation(symbol: set.symbol, variation: "mythic rare")
special:
script:
if use_main_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "s.png"
else if alt_rarity() then alt_symbol()
else symbol_variation(symbol: set.symbol, variation: "special")
masterpiece:
script:
if use_main_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "mp.png"
else symbol_variation(symbol: set.masterpiece_symbol, variation: "mythic rare")
############################# 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() }
width: { if is_leveler() then 0 else (if(card.level_0 != "" or card.level_1 != "" or card.level_2 != "") then -46 else 0) + if is_map() then 287 else 314 }
bottom: { bottom_of_textbox() }
font:
name: MPlantin
italic name: MPlantin-Italic
size: {if styling.font_cap != "" then to_number(styling.font_cap) else (if is_mutate() then 12 else 14)}
scale down to: 6
color: { if is_full_art() or is_fnm() or is_inverted() then "white" else "black"}
shadow color: {if is_full_art() 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: {if styling.font_cap != "" then to_number(styling.font_cap) else (if is_mutate() then 12 else 14)}
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 "middle left"
z index: 4
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_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:
name: MPlantin
italic name: MPlantin-Italic
size: {if styling.font_cap != "" then to_number(styling.font_cap) else 14}
scale down to: 6
color: { if is_full_art() or is_fnm() or is_inverted() then "white" else "black"}
shadow color: {if is_full_art() 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: {if styling.font_cap != "" then to_number(styling.font_cap) else 14}
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 "middle left"
z index: 3
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: MPlantin
italic name: MPlantin-Italic
size: {if styling.font_cap != "" then to_number(styling.font_cap) else 14}
scale down to: 6
color: { if is_full_art() or is_fnm() or is_inverted() then "white" else "black"}
shadow color: {if is_full_art() 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: {if styling.font_cap != "" then to_number(styling.font_cap) else 14}
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 "middle left"
z index: 3
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: MPlantin
italic name: MPlantin-Italic
size: {if styling.font_cap != "" then to_number(styling.font_cap) else 14}
scale down to: 6
color: { if is_full_art() or is_fnm() or is_inverted() then "white" else "black"}
shadow color: {if is_full_art() 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: {if styling.font_cap != "" then to_number(styling.font_cap) else 14}
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 "middle left"
z index: 3
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: MPlantin
italic name: MPlantin-Italic
size: {if styling.font_cap != "" then to_number(styling.font_cap) else 14}
scale down to: 6
color: { if is_full_art() or is_fnm() then "white" else "black"}
shadow color: {if is_full_art() 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: {if styling.font_cap != "" then to_number(styling.font_cap) else 14}
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 "middle left"
z index: 3
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_full_art() 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_full_art() then 120 else 152 }
z index: 2
render style: image
popup style: in place
alignment: middle center
include file: /magic-watermarks.mse-include/watermarks
############################# Levels
level 0:
z index: 7
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: 7
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: 7
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: 7
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: 4
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}
width: {if starting_loyalty() and not is_leveler() then 0 else 60}
height: 28
alignment: center middle shrink-overflow
font:
name: Beleren Bold
size: {if is_map() then 14 else 16}
color: {if is_shifted() or is_fnm() or is_inverted() then "white" else if is_vehicle() and (not is_legend() or chosen(styling.other_options, choice:"brown legendary vehicle pt")) then "white" else "black"}
separator color: red
shadow color: {if is_shifted() 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: 4
left: 291
top: {(l2_center() - 12)}
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: Beleren Bold
size: {if is_map() then 14 else 16}
color: {if is_shifted() or is_fnm() or is_inverted() then "white" else if is_vehicle() and (not is_legend() or chosen(styling.other_options, choice:"brown legendary vehicle pt")) then "white" else "black"}
separator color: red
shadow color: {if is_shifted() 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: 4
left: 291
top: {(l3_center() - 12)}
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: Beleren Bold
size: {if is_map() then 14 else 16}
color: {if is_shifted() or is_fnm() or is_inverted() then "white" else if is_vehicle() and (not is_legend() or chosen(styling.other_options, choice:"brown legendary vehicle pt")) then "white" else "black"}
separator color: red
shadow color: {if is_shifted() 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: 4
left: 291
top: {(l4_center() - 12)}
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: Beleren Bold
size: {if is_map() then 14 else 16}
color: {if is_shifted() or is_fnm() then "white" else if is_vehicle() and (not is_legend() or chosen(styling.other_options, choice:"brown legendary vehicle pt")) then "white" else "black"}
separator color: red
shadow color: {if is_shifted() 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: 7
left: 326
top: 468
width: {if starting_loyalty() then 13.16 else 0}
height: 34.63
alignment: center middle
font:
name: Beleren Bold
size: 14
color: white
############################# Card sorting / numbering
set code:
left: 24
top: 498
width: 40
height: 10
z index: 3
font:
name: Relay-Medium
size: 7
color: white
weight: bold
############################# Copyright stuff
illustrator:
left: { 44 + card_style.set_code.content_width }
top: 497.5
width: 200
height: 10
z index: 3
font:
name: Beleren Small Caps Bold
size: 7.25
color: white
copyright:
right: 350
top:
{
if is_leveler() and not lone_pt()
then 488
else if (starting_loyalty() and card.loyalty != "") or (card.pt != "" and not starting_loyalty())
then 500
else 488
}
width: {if set.automatic_copyright then 0 else 140}
height: 10
z index: 4
alignment: middle right
font:
name: MPlantin
size: 6.5
color: white
weight: bold
############################################################## Extra card fields
extra card field:
type: text
name: card code
save value: false
script:
if set.automatic_card_numbers and not styling.remove_from_autocount then
forward_editor(prefix: card_number_m15() + "/" + card_count_m15() + " " + rarity_code() + " ", field: card.card_code_text)
else
combined_editor(field1: card.custom_card_number, separator: " " + rarity_code() + " ", field2: card.card_code_text)
extra card field:
type: choice
name: artist arrow
editable: false
save value: false
choice: white
extra card field:
type: choice
name: pt box
script: card.card_color
editable: false
save value: false
extra card field:
type: choice
name: 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: stamp
script: card.card_color
editable: false
save value: false
extra card field:
type: choice
name: foil stamp
choice: stamp
save value: false
editable: false
extra card field:
type: choice
name: clear frame
script: card.card_color
save value: false
editable: false
extra card field:
type: choice
name: mirror frame
script: card.card_color
save value: false
editable: false
extra card field:
type: choice
name: foil layer
choice: foil
save value: false
editable: false
extra card field:
type: text
name: auto copyright
script: set.copyright
save value: false
editable: false
show statistics: false
extra card field:
type: choice
name: mainframe rarity
choice: rarity
save value: false
editable: false
extra card field:
type: choice
name: vehicle overlay
choice: car door
save value: false
editable: false
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: nyx overlay
choice: nyx
save value: false
editable: false
script: card.card_color
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: map frame
script: card.card_color
save value: false
editable: false
extra card field:
type: choice
name: flavor bar
choice: bar
editable: false
save value: false
show statistics: false
extra card field:
type: text
name: tarot watermark
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: scrolls
script: card.card_color
editable: false
save value: false
show statistics: false
extra card field:
type: choice
name: crown
script: card.card_color
editable: false
save value: false
show statistics: false
extra card field:
type: text
name: promo label
save value: true
description: The golden promo label.
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
# 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: 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)
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: loyalty box
editable: false
choice: loyalty
save value: false
extra card field:
type: choice
name: stripe
choice: stripe
editable: false
save value: false
show statistics: false
extra card field:
type: choice
name: stripe 2
choice: stripe
editable: false
save value: false
show statistics: 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: corner
choice: none
choice: lesson
choice: custom
choice: day
choice: night
choice: moon
choice: eldrazi
choice: compass
choice: artifact
choice: creature
choice: enchantment
choice: instant
choice: land
choice: multitype
choice: sorcery
choice: planeswalker
choice: structure
choice: aetherprint
choice: modal
choice:
name: sparker colors
choice: white
choice: blue
choice: black
choice: red
choice: green
choice: multicolor
choice: colorless
default: "lesson"
save value: true
editable: true
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 style:
promo label:
left: 40
top: { if is_full_art() then 295 else 262 }
width: {if chosen(styling.other_options, choice:"prerelease stamp") then 295 else 0}
height: 29
alignment: middle right
z index: 4
font:
name: ModMatrix
size: 14
color: rgb(223,169,41)
card code:
left: 24
top: 488
width: 120
height: 10
z index: 3
font:
name: Relay-Medium
size: 7
color: white
weight: bold
artist arrow:
left: { 28 + card_style.set_code.content_width }
top: 500
width: 12
height: 7
z index: 3
render style: image
image: artist_arrow.png
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: 3
visible: { card.pt != "" }
render style: image
image: { if is_map() then mappt_background() else if is_vehicle() and (not is_legend() or chosen(styling.other_options, choice:"brown legendary vehicle pt")) then "vpt.png" else if is_clear() then "cpt.png" else 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: 3
visible: { card.pt_2 != "" }
render style: image
image: {if is_map() then mappt_background() else combine_blend(image1: lv_2_ptbox(), image2: "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: 3
visible: { card.pt_3 != "" }
render style: image
image: {if is_map() then mappt_background() else combine_blend(image1: lv_3_ptbox(), image2: "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: 3
visible: { card.pt_7 != "" }
render style: image
image: {if is_map() then mappt_background() else combine_blend(image1: lv_4_ptbox(), image2: "ptbox_multiply_3.png", combine: "multiply")}
loyalty box:
right: 362
top: 466
width: 60
height: 38
z index: 6
render style: image
visible: { starting_loyalty() and card.loyalty != "" }
choice images:
loyalty: loyalty.png
stamp:
left: 165
top: 472
width: 46
height: 26
z index: 2
visible: { is_rare() and styling.use_holofoil_stamps and (is_devoid() or not is_clear()) }
render style: image
image: { if is_map() then "maps/holo_stamp.png" else if is_devoid() then "devoid/stamp.png" else card_stamp() }
mask: {"stamp_mask.png"}
foil stamp:
left: 165
top: 472
width: 46
height: 26
z index: 3
visible: { is_rare() and styling.use_holofoil_stamps and (is_devoid() or not is_clear()) }
render style: image
image: foil_stamp.png
foil layer:
left: 0
top : 0
width: 375
height: 523
z index: 3
render style: image
image: {if styling.overlay == "" then nil else styling.overlay + "/overlay.png"}
mask: { "foil_mask" + (if card.pt != "" then "_pt") + (if is_rare() and styling.use_holofoil_stamps then "_rare") + ".png" }
auto copyright:
right: 350
top:
{
if is_leveler() and not lone_pt()
then 488
else if (starting_loyalty() and card.loyalty != "") or (card.pt != "" and not starting_loyalty())
then 500
else 488
}
width: {if set.automatic_copyright then 140 else 0}
height: 10
z index: 4
alignment: middle right
font:
name: MPlantin
size: 6.5
color: white
weight: bold
nyx overlay:
left: 0
top: 0
width: 375
height: 523
render style: image
image: {nyx_background()}
z index: 0
visible: {is_nyx()}
mask: {"nyx/" + (if is_vehicle() then "v_" else "") + (if is_full_art() then "full" else "") + "mask.png"}
### FNM has a teeny mask because of a few pixel disagreements between it and normal frames
crown:
left: 0
top: {if is_devoid() then 1 else 0}
width: 375
height: 523
render style: image
image: {if (is_clear() or clear_tops()) and not is_devoid() then "legend/xcrown.png" else if is_fnm() then set_mask(image:crown_background(), mask:"legend/fnm_mask.png") else crown_background()}
z index: 5
visible: {is_legend() and not is_map()}
mask: {if is_legend() and styling.legend_crown != "custom" and (is_curtains() or is_expanded_art() or is_puma() or is_devoid()) then "curtainmask.png" else if is_season() then "crown_season_mask.png" else ""}
curtain:
left: 0
top: 0
width: 375
height: 523
render style: image
image: {if is_cons() then cons_background() else curtain_background()}
z index: 0
visible: {is_cons() or is_curtains()}
mask: {if is_legend() and is_curtains() then "lcurtainmask.png"}
scrolls:
left: 0
top: 0
width: 375
height: 523
render style: image
image: {if is_puma() then "puma.png" else (if is_full_art() then "full_" else "") + "consscrolls.png"}
mask: {if is_puma() then "puma_mask3.png" else ""}
z index: 1
visible: {is_scrolls() or is_puma()}
miracle overlay:
left: 0
top: 0
width: 375
height: 523
render style: image
image: {if (is_clear() or clear_tops()) and not is_devoid() then "miracles/xmiracle.png" else miracle_background()}
z index: 1
visible: {is_miracle()}
snow overlay:
left: 0
top: 0
width: 375
height: 523
render style: image
image: {snow_texture()}
z index: 1
mask: {"snow/snow_" + (if is_full_art() then "promo" else "fnm") + "_mask.png"}
visible: {is_snow() and not pure_snow() and not is_expanded_art()}
vehicle overlay:
left: 0
top: 0
width: 375
height: 523
render style: image
image: {"voverlay" + (if is_full_art() then "_full" else "") + ".png" }
z index: 0
visible: {is_vehicle()}
clear frame:
left: 0
top: 0
width: 375
height: 523
z index: 1
render style: image
image: { if is_devoid() then devoid_background() else if is_rare() and styling.use_holofoil_stamps then "clear_rare.png" else "clear.png"}
visible: { is_clear() or is_devoid() or clear_tops()}
mirror frame:
left: 0
top: 0
width: {if clear_tops() then 375 else 0}
height: 523
z index: 1
render style: image
popup style: in place
image: { if not clear_tops() then "" else if is_fnm() then fnm_background() else if is_inverted() then inverted_background() else if is_full_art() then promo_background() else card_background() }
mask: {if clear_tops() then "clear_tops_mask.png" else ""}
map frame:
left: 0
top: 0
width: 375
height: 523
z index: 1
render style: image
image: { if is_map() then map_background() else energy_background() }
visible: { is_map() or is_thbland() }
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: 2
render style: image
image: 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: 2
render style: image
image: evobar_tip.png
visible: {use_evobar()}
flavor bar:
left: 0
top: { bar_equation() }
width: 375
height: 1
z index: 1
render style: image
image: bar.png
visible: { card.rule_text != "" and remove_tags(card.flavor_text) != "" and set.use_flavor_bar }
tarot watermark:
left: { if is_map() then 40 else 19 }
top: { if is_full_art() 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_full_art() then 120 else 152 }
z index: 2
alignment: middle center
font:
name: MPlantin
size: 90
color: {rgba(0,0,0,40)}
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: 6
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: 6
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: 6
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: 6
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)) 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: 1
render style: image
image: {overlay1()}
visible: {(is_d20() and number_of_rolls(card.text) > 0) or (is_leveler() and not is_full_art() 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) else 329 + lv_3_coordinate()}
height: { if is_d20() then height_of_para(rolls_start(card.text)+2) else lv_3_height()}
width: 314
z index: 1
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_full_art() 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) else 329 + lv_4_coordinate()}
height: { if is_d20() then height_of_para(rolls_start(card.text)+4) else lv_4_height()}
width: 314
z index: 1
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_full_art() and not is_map() and not is_fnm() and not is_inverted())}
arrow 1:
z index: 5
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_background()}
arrow 2:
z index: 5
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_background()}
arrow 3:
z index: 5
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_background()}
arrow 4:
z index: 5
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_background()}
mutbar:
z index: 2
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: 2
visible: {is_legend() and card.border_color == rgb(200,200,200)}
season flag:
left: 0
top: 0
width: 375
height: 523
z index: 1
render style: image
image: { season_background() }
visible: { is_season() }
mask: {if is_expanded_art() then "season/full_mask.png" else ""}
ascend:
left: 37
top: 59
width: {if is_season() then 300 else 0}
height: 20
angle: 270
z index: 6
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
alias bar:
left: 38
top: {if is_clear() or clear_tops() then 59 else 57}
width: 298
height: 21
z index: 2
render style: image
image: {if is_devoid() then (if is_legend() then alias_bar() else "alias/devoidalias.png") else if is_clear() or clear_tops() then "alias/xalias.png" else alias_bar()}
visible: {is_skinned() and not use_evobar()}
node:
left: 0
top: 0
height: 63
width: 375
z index: 6
render style: image
image: {node_background()}
visible: {not is_map() and not is_clear() and use_node()}
corner:
left: { if is_map() then 22 else 19}
top: 25
height: 31
width: {if use_node() then 31 else 0}
z index: 7
render style: image
visible: {use_node()}
choice images:
lesson: corners/lesson.png
day: corners/sun_circle.png
night: corners/night_circle.png
eldrazi: corners/eldrazi.png
moon: corners/moon.png
compass: corners/compass.png
artifact: corners/artifact.png
creature: corners/creature.png
enchantment: corners/enchantment.png
instant: corners/instant.png
land: corners/land.png
multitype: corners/multitype.png
sorcery: corners/sorcery.png
planeswalker: corners/planeswalker.png
structure: corners/structure.png
compass: corners/compass.png
aetherprint: corners/aetherprint.png
sparker colors white: corners/wcorner.png
sparker colors blue: corners/ucorner.png
sparker colors black: corners/bcorner.png
sparker colors red: corners/rcorner.png
sparker colors green: corners/gcorner.png
sparker colors multicolor: corners/mcorner.png
sparker colors colorless: corners/ccorner.png
custom: { if contains(styling.custom_symbol, match:".png") then "/magic-mainframe-extras.mse-include/" + styling.custom_symbol 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: 7
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: 3
alignment: middle right
font:
name: Relay-Medium
size: 7
color: white
weight: bold