Files
magic-set-editor-fork/data/magic-scifi.mse-style/altered modal backup
CajunAvenger c5e1ad9ba9 The List and cleanup
Add The List icon to Old, OldAbu, New, New Planeswalkers, New Conspiracy, M15, M15 Planeswalkers, and Mainframes M15, Adventure, Planeswalker, and DFC
Cleaned up magic-mainframe-extras
Cleaned up some position hints
2023-02-13 16:14:46 -06:00

1680 lines
63 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-05-10
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
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 by silverback_ape
##### PUMA by kebelqwa and cajun
############################################################## Extra scripts
init script:
# Load scripts for image box
include file: /magic-default-image.mse-include/scripts
# Should hybrids have a grey name?
mask_hybrid_with_land := { styling.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: "" nyx: "nyx/" miracle: "miracles/" promo: "promo/" crown: "legend/" cons:"conspiracy/" curtain: "curtains/" fnm: "fnm/", fnmpt: "paradox/", 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/"]
shifted_template_prefix := [card: "shifted/" nyx: "nyx/" miracle: "shifted/" promo: "promo/" crown: "shifted/" cons:"conspiracy/" curtain: "curtains/" fnm:"fnm/", fnmpt: "paradox/", 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/"]
template_prefix := { if is_shifted() then shifted_template_prefix else base_template_prefix }
template_suffix := [card: "card.jpg" nyx: "nyx.png" miracle: "miracle.png" promo: "card.jpg" crown: "crown.png" cons:"cons.png" curtain: "card.png" fnm:"card.png", fnmpt: "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"]
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 == "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}
nyx_background := { color_background(type:"nyx", base_hybrid:card_hybrid) }
fnm_background := { color_background(type:"fnm", 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) }
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)}
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_clear := { chosen(styling.frames, choice: "clear") and not is_map()}
is_puma := { not is_expanded_art() and not is_full_art() and chosen(styling.frames, choice: "puma") and not is_map()}
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()}
is_nyx := { chosen(styling.frames, choice: "nyx") and not is_map() }
is_vehicle := { chosen(styling.frames, choice: "vehicle") and not is_map()}
is_cons := { chosen(styling.frames, choice: "conspiracy") or chosen(styling.frames, choice: "draft matters") and not is_map()}
is_conspiracy := { 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_map := { chosen(styling.frames, choice: "map") }
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")}
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>")
text_filter := text_filter + override_clear + {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")}
is_skinned := {chosen(styling.other_options, choice:"godzilla style alias")}
is_tarot := {chosen(styling.other_options, choice:"text watermarks")}
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_modal() then (359 + to_number(pull_comma_array(styling.level_offset, cell:0, end:false))) else if is_map() then 475 else 481) - chop_bot() }
bar_offset := {if styling_offset() == "-" then 0 else if styling_offset() != "" then -styling_offset() else 0}
styling_offset := { replace(styling.flavor_bar_offset, match:"(u|d)+", replace: "") }
offset_lines := {offset_counter(styling.flavor_bar_offset)}
#bar_equation := {if card_style.text.layout.blocks[0].bottom or else 0 > 0 then card_style.text.top + 0.5*(card_style.text.layout.blocks[0].bottom+card_style.text.layout.blocks[1].top) else 0}
tweaked_bar_eq := {if modal_flavor() and modal_rules() then level_34_position()-1+bar_offset() else if modal_flavor() then bottom_of_modes()+2+bar_offset() else bar_equation()}
is_modal := {not is_leveler() and not is_mutate() and chosen(styling.frames, choice:"modal")}
breakers := {split_text(remove_tags(card.modal_rule_text), match:"\n")}
mod_font_size := {if styling.font_cap != "" then to_number(styling.font_cap) else round_near(card_style.modal_rule_text.content_height / card_style.modal_rule_text.content_lines) - 5}
font_size_offset := {0.5 * (14 - mod_font_size())}
mod_char_per_line := {min(52,round_up(card_style.modal_rule_text.content_width / mod_char_width()))}
mod_char_width := {7.35 * min(14, mod_font_size()+0.95) / 14}
modal_height := { card_style.modal_rule_text.content_height / card_style.modal_rule_text.content_lines}
modal_lines := {calc_lines(word_split(input), char:mod_char_per_line())}
box_offset := {0.5*(card_style.modal_rule_text.height-card_style.modal_rule_text.content_height)}
bullet1offset := {-1 + box_offset() - font_size_offset() + to_number(pull_comma_array(styling.arrow_or_bullet_offsets, cell:0, end: 0))}
bullet2offset := {-2 + if length(breakers()) < 1 then 600 else modal_height()*modal_lines(breakers().0) + box_offset() - font_size_offset() + to_number(pull_comma_array(styling.arrow_or_bullet_offsets, cell:1, end: 0))}
bullet3offset := {-3 + if length(breakers()) < 2 then 600 else modal_height()*(modal_lines(breakers().1) + modal_lines(breakers().0)) + box_offset() - font_size_offset() + to_number(pull_comma_array(styling.arrow_or_bullet_offsets, cell:2, end: 0))}
bullet4offset := {-3 + if length(breakers()) < 3 then 600 else modal_height()*(modal_lines(breakers().2) + modal_lines(breakers().1) + modal_lines(breakers().0)) + box_offset() - font_size_offset() + to_number(pull_comma_array(styling.arrow_or_bullet_offsets, cell:3, end: 0))}
bullet5offset := {-4 + if length(breakers()) < 4 then 600 else modal_height()*(modal_lines(breakers().3) + modal_lines(breakers().2) + modal_lines(breakers().1) + modal_lines(breakers().0)) + box_offset() - font_size_offset() + to_number(pull_comma_array(styling.arrow_or_bullet_offsets, cell:4, end: 0))}
bottom_of_modes := {min(479,475+to_number(pull_comma_array(styling.level_offset, cell:1, end:false))-(if modal_flavor() then 15 else 0)-(if modal_rules() then 15 else 0))}
##TODO Plus
level_34_position := {476-(if modal_rules() and modal_flavor() then 13 else 0)+to_number(pull_comma_array(styling.level_offset, cell:2, end:false))}
modal_flavor := {is_modal() and remove_tags(card.modal_flavor_text) != ""}
modal_rules := {is_modal() and card.level_2_text != ""}
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_2_height := {lv_3_coordinate() - lv_2_coordinate()}
lv_3_height := {152-lv_3_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()}
overlay1 := {slice_crop(background_slide(), height: lv_2_height(), width:314, distance:(152-lv_2_coordinate()))}
overlay2 := {slice_crop(background_slide_2(), height: lv_3_height(), width:314, distance:lv_3_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 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 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 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 leveler_ptbox3() }
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)
}
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 "")
) else if is_modal() then
card.level_1_text + "\n"
+ "• " + replace(card.modal_rule_text, match:"\n", replace:"\n• ")
+ (if modal_rules() then "\n" + card.level_2_text else "")
+ (if modal_flavor() then "\n" + card.modal_flavor_text else "")
else if is_mutate() then
card.level_1_text + "\n" + card.text
else ""
}
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: map
choice: clear
choice: borderless art
choice: frameless art
choice: fullart
choice: puma
choice: mutate
choice: fnm promo
choice: planeshifted
choice: legend
choice: season
choice: conspiracy
choice: draft matters
choice: miracle
choice: vehicle
choice: nyx
choice: leveler
choice: modal
styling field:
type: text
name: flavor bar offset
description: Move the flavor bar up X pixels. Use negative to move down.
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: 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 nyx crowns
choice: text watermarks
initial: auto nyx crowns
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/modal bullets down X pixels. Use negative to move up.
styling field:
type: text
name: level offset
description: Formatted as 1,2,3,. Move the level/modal boxes down X pixels. Use negative to move up.
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: 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() then "" else if is_fnm() then fnm_background() else if is_full_art() then promo_background() else card_background() }
############################# Name line
name:
left: { if center_map() then 55 else if is_map() then 60 else if card.card_symbol=="none" then 32 else 50 }
top: { if is_map() then 27 else if is_clear() 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() 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: Matrix
size: 10
style: italic
color: black
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 is_mutate() then 22 else 29}
top: {if is_map() then 57 else if is_clear() or is_expanded_art() 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 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 265 else if is_full_art() then 423 else if is_mutate() then 334 else 231}
z index: 1
default: {default_image(card.card_color)}
mask: { if is_clear() then "image_mask.png" else if is_thbland() then "cornermask.png" else if is_puma() then "puma_mask.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() 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}
top: { if is_clear() or is_map() then 298 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") else if styling.color_indicator_dot then "52" else "32" }
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") - 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() 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 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: 44
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 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 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 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 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 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 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_modal() or 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() 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: 4
padding left: 6
padding right: 4
line height hard: 1.2
line height line: 1.5
line height soft: 0.9
line height hard max: 1.3
line height line max: 1.6
############################# leveler and modal
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 not is_modal() then (if is_mutate() then 342 else if is_map() then 40 else 29) else if is_map() then 327 else 343 }
bottom: { if is_mutate() then 392 else if is_leveler() then (327+lv_1_height()) else bottom_of_textbox()+box_offset() }
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 (if is_modal() then "bottom center" else "middle center")
else if is_modal() then "bottom left"
else "middle left"
z index: 3
padding left: 6
padding right: 4
line height hard: 1.2
line height line: 1.5
line height soft: 0.9
line height hard max: 1.3
line height line max: 1.6
############################# modal
modal rule text:
left: { 12+ if is_map() then 40 else 29}
top: { bottom_of_textbox()+box_offset() }
width: { if not is_modal() then 0 else -12 + if is_map() then 287 else 314 }
bottom: { bottom_of_modes() }
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: top left
z index: 3
padding left: 6
padding right: 4
line height hard: 1.2
line height line: 1.5
line height soft: 0.9
line height hard max: 1.3
line height line max: 1.6
############################# leveler and modal
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 if not is_modal() then 0 else (if not modal_rules() then -8 else 0) + if is_map() then 40 else 29}
top: { if is_leveler() then (329 + lv_2_coordinate()) else bottom_of_modes() }
right: { if is_leveler() then (if card.pt_2 != "" then 277 else 342) else if not is_modal() then 0 else (if not modal_rules() then -8 else 0) + if is_map() then 40 else 29 + (if not modal_flavor() and not modal_rules() then 0.5 else 1) * (if is_map() then 287 else 314) }
bottom: { if is_leveler() then (329 + lv_2_coordinate()) + lv_2_height()-2 else (if modal_flavor() then level_34_position() else 481 - chop_bot()) }
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: 1.2
line height line: 1.5
line height soft: 0.9
line height hard max: 1.3
line height line max: 1.6
############################# modal
modal flavor text:
left: { if not is_modal() then 0 else (if not modal_flavor() then 157) + if is_map() then 40 else 29}
top: { if modal_rules() then level_34_position() else bottom_of_modes() }
width: { if not is_modal() then 0 else (if not modal_rules() and not modal_flavor() then 0.5 else 1) * (if is_map() then 287 else 314) }
bottom: { 480-chop_bot() }
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: 4
padding left: 6
padding right: 4
line height hard: 1.2
line height line: 1.5
line height soft: 0.9
line height hard max: 1.3
line height line max: 1.6
############################# leveler
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() 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: 1.2
line height line: 1.5
line height soft: 0.9
line height hard max: 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}
############################# 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() 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() 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() 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 shrink-overflow
font:
name: Matrix
size: 7
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: 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
choice: frame
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: 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
choice: scroll
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: flash indicator
choice: dot
save value: false
editable: false
extra card field:
type: text
name: bullet 1
save value: false
editable: false
script: "•"
extra card field:
type: text
name: bullet 2
save value: false
script: "•"
editable: false
extra card field:
type: text
name: bullet 3
save value: false
script: "•"
editable: false
extra card field:
type: text
name: bullet 4
save value: false
script: "•"
editable: false
extra card field:
type: text
name: bullet 5
save value: false
script: "•"
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 first 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 second arrow.
extra card field:
type: text
name: lvl label 2
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: 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: 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)
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 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")}
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 not is_clear() }
render style: image
image: { if is_map() then "maps/holo_stamp.png" else card_stamp() }
mask: { if is_full_art() or (is_borderless() and is_leveler()) then "med_full_stamp_mask.png" else if is_borderless() then "med_stamp_mask.png" else if is_leveler() then "stamp_mask.png" else ""}
foil stamp:
left: 165
top: 472
width: 46
height: 26
z index: 3
visible: { is_rare() and styling.use_holofoil_stamps and 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 shrink-overflow
font:
name: Matrix
size: 7
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: 0
width: 375
height: 523
render style: image
image: {if is_clear() 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 (is_curtains() or is_expanded_art() or is_puma()) 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_full_art() then "full_" else "") + "consscrolls.png"}
z index: 1
visible: {chosen(styling.frames, choice:"conspiracy")}
miracle overlay:
left: 0
top: 0
width: 375
height: 523
render style: image
image: {if is_clear() then "miracles/xmiracle.png" else miracle_background()}
z index: 1
visible: {is_miracle()}
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_rare() and styling.use_holofoil_stamps then "clear_rare.png" else "clear.png"}
visible: { is_clear() }
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_skinned() then 75 else if is_map() then 15 else 27}
top: {if is_map() then 62 else 57}
width: {if is_skinned() then 225 else card_style.alias.content_width}
height: 27
z index: 2
render style: image
image: evobar.png
visible: {is_skinned() or use_evobar()}
evobar tip:
left: {if is_skinned() then 299.6 else (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: {is_skinned() or use_evobar()}
evobar start:
left: 39.4
top: {if is_map() then 62 else 57}
width: 36
height: 27
z index: 2
render style: image
image: evobar_flip.png
visible: {is_skinned()}
flavor bar:
left: 0
top: { tweaked_bar_eq() }
width: 375
height: 1
z index: 1
render style: image
image: bar.png
visible: { ((is_modal() and modal_flavor()) or (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)}
bullet 1:
left: { if is_map() then 40 else 28}
top: { bottom_of_textbox() + bullet1offset()}
width: 20
height: 26
font:
name: MPlantin
italic name: MPlantin-Italic
size: {mod_font_size()}
scale down to: 6
color: { if is_full_art() then "white" else "black"}
shadow color: {if is_full_art() then "black" else rgba(0,0,0,0)}
shadow displacement x: -1
shadow displacement y: 1
alignment: "middle center"
z index: 4
padding left: 6
padding right: 4
visible: {is_modal()}
bullet 2:
left: { if is_map() then 40 else 28}
top: { bottom_of_textbox() + bullet2offset()}
width: 20
height: 26
font:
name: MPlantin
italic name: MPlantin-Italic
size: {mod_font_size()}
scale down to: 6
color: { if is_full_art() then "white" else "black"}
shadow color: {if is_full_art() then "black" else rgba(0,0,0,0)}
shadow displacement x: -1
shadow displacement y: 1
alignment: "middle center"
z index: 4
padding left: 6
padding right: 4
visible: {length(breakers()) > 1}
bullet 3:
left: { if is_map() then 40 else 28}
top: { bottom_of_textbox() + bullet3offset()}
width: 20
height: 26
font:
name: MPlantin
italic name: MPlantin-Italic
size: {mod_font_size()}
scale down to: 6
color: { if is_full_art() then "white" else "black"}
shadow color: {if is_full_art() then "black" else rgba(0,0,0,0)}
shadow displacement x: -1
shadow displacement y: 1
alignment: "middle center"
z index: 4
padding left: 6
padding right: 4
visible: {length(breakers()) > 2}
bullet 4:
left: { if is_map() then 40 else 28}
top: { bottom_of_textbox() + bullet4offset()}
width: 20
height: 26
font:
name: MPlantin
italic name: MPlantin-Italic
size: {mod_font_size()}
scale down to: 6
color: { if is_full_art() then "white" else "black"}
shadow color: {if is_full_art() then "black" else rgba(0,0,0,0)}
shadow displacement x: -1
shadow displacement y: 1
alignment: "middle center"
z index: 4
padding left: 6
padding right: 4
visible: {length(breakers()) > 3}
bullet 5:
left: { if is_map() then 40 else 28}
top: { bottom_of_textbox() + bullet5offset()}
width: 20
height: 26
font:
name: MPlantin
italic name: MPlantin-Italic
size: {mod_font_size()}
scale down to: 6
color: { if is_full_art() then "white" else "black"}
shadow color: {if is_full_art() then "black" else rgba(0,0,0,0)}
shadow displacement x: -1
shadow displacement y: 1
alignment: "middle center"
z index: 4
padding left: 6
padding right: 4
visible: {length(breakers()) > 4}
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 != ""}
level 2 overlay:
left: 29
top: { 329 + lv_2_coordinate()}
height: { lv_2_height()}
width: 314
z index: 0
render style: image
image: {overlay1()}
visible: {is_leveler() and not is_full_art() and not is_map() and not is_fnm()}
level 3 overlay:
left: 29
top: { 329 + lv_3_coordinate()}
height: { lv_3_height()}
width: 314
z index: 0
render style: image
image: {overlay2()}
visible: {is_leveler() and not is_full_art() and not is_map() and not is_fnm()}
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()}
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