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

940 lines
29 KiB
Plaintext

mse version: 2.0.0
game: magic
short name: Mainframe Tokens
full name: Tokens
icon: card-sample.png
installer group: magic/m15 style/tokens
position hint: 004
version: 2025-01-11
depends on:
package: magic.mse-game
version: 2014-06-25
depends on:
package: magic-default-image.mse-include
version: 2007-09-23
depends on:
package: magic-modules.mse-include
version: 2024-10-01
depends on:
package: magic-mana-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
##### Nyx Tokens by HonchkrowDavid
##### Flavor Bar image by SirnightNano
##### M20 base tokens and Vehicle background by silverback_ape
##### M20 Clear tokens by Femme Fatale
############################################################## Extra scripts
init script:
# Should hybrids have a grey name?
mask_hybrid_with_land := { styling.grey_hybrid_typeline }
text_filter :=
{
if is_archetype() then archetype_formatter(input) else input
}
+
text_filter
archetype_formatter := {
out := replace(input
match:"^([^ ]+)[ ]([^\\\n]+)([ ][ ])"
replace:{"<sym>"+remove_tags(_1) + "</sym> <font:Gotham Pro Black>" + to_upper(remove_tags(_2)) + "</font> "}
)
out
}
# Load scripts for image box
include file: /magic-default-image.mse-include/scripts
template_prefix := [
alias: "alias/"
crown:"/magic-modules.mse-include/crowns/375/borderless/"
card: ""
card2: ""
card3: ""
card4: "nyx/"
card5: "nyx/"
card6:"nyx/"
card7: "m20/"
card8: "m20/"
card9: "m20/"
snow: "/magic-modules.mse-include/trims/snow/"
nyx: "/magic-modules.mse-include/trims/nyx/"
pt:"/magic-modules.mse-include/pts/375 m15/"
snowbox: "/magic-modules.mse-include/cards/375 m15 simple/snow/"
stamp:"stamps/round/"
ubstamp:"stamps/ub/"
star: "/magic-modules.mse-include/trims/star/",
]
template_suffix := [
alias: "alias.png",
crown:"crown.png"
card: "card.jpg",
card2: "card2.jpg",
card3: "card3.jpg",
card4: "nyx.png",
card5: "card2.jpg",
card6: "card3.jpg",
card7: "card.png",
card8: "card2.png",
card9: "card3.png",
snow: "snow.png"
nyx: "nyx.png"
pt: "pt.png"
stamp: "stamp.png"
ubstamp: "stamp.png",
snowbox: "card.jpg"
star: "star.png",
]
template := {
if type_name(harder_script[type] or else nil) != type_name(nil)
then harder_script[type](input, land:false)
else template_prefix[type]
+ input_mixer(input, type:type)
+ template_suffix[type]
}
land_template := {
if type_name(harder_script[type] or else nil) != type_name(nil)
then harder_script[type](input, land:true)
else template_prefix[type]
+ input_mixer(input, type:type)
+ template_suffix[type]
}
input_mixer := {
if input == "w" and (type == "card7" or type == "card8" or type == "card9") and (card.card_color != "white")
then "h"
else input
}
landless := {
landless_ar[input] or else false
}
landless_ar := [ star:true ]
harder_script := [
custom_border: custom_border_image,
alt_nyx: alt_nyx_template
]
# Use the normal tap symbol
mana_t := {
if styling.tap_symbol == "old" then "old"
else if styling.tap_symbol == "diagonal T" then "older"
else "new"
}
# Use guild mana symbols?
guild_mana := { styling.use_guild_mana_symbols }
is_promo := { styling.promo }
########## Frame styling
card_shape := { "token" }
is_unsorted := {styling.remove_from_autocount}
is_m20 := {contains(styling.frames, match: "M20")}
is_tall := {contains(styling.frames, match: "tall")}
is_textless := {card.rule_text == "" and remove_tags(card.flavor_text) == ""}
is_clear := {contains(styling.frames, match: "clear")}
mtgo_abil := {contains(styling.frames, match: "MTGO Ability") and not is_m20()}
is_legend := { auto_legend() or contains(styling.frames, match:"legendary") }
is_vehicle := { (auto_vehicle() or contains(styling.frames, match:"vehicle")) and not is_m20() }
is_nyx := { (auto_nyx() or contains(styling.frames, match:"nyx")) and not is_clear() }
is_snow := { (auto_snow() or contains(styling.frames, match:"snow")) }
auto_legend := { set.auto_legends and lang_setting("is_legendary")(card.super_type) }
auto_vehicle := { contains(styling.auto_frames, match:"vehicle") and lang_setting("is_vehicle")(card.sub_type) }
auto_nyx := { contains(styling.auto_frames, match:"nyx") and lang_setting("is_enchantment")(card.super_type) }
auto_snow := { contains(styling.auto_frames, match:"snow") and lang_setting("is_snow")(card.super_type) }
is_copy := {contains(styling.frames, match: "copy")}
text_shape := {
if is_m20() and is_tall() then "9"
else if is_m20() and is_textless() then "7"
else if is_m20() then "8"
else if is_tall() then "3"
else if is_textless() then ""
else "2"
}
crown_background := {color_background(type:"crown", base_hybrid:card_hybrid, folder:"/magic-modules.mse-include/crowns/375/")}
alias_bar := { color_background(type:"alias", base_hybrid:card_hybrid) }
use_evobar := {chosen(styling.other_options, choice:"pokemon evobar") and not is_skinned()}
is_skinned := {chosen(styling.other_options, choice:"godzilla style alias")}
snow_card_background := { color_background(type:"snowbox", base_hybrid:card_hybrid, folder:"/magic-modules.mse-include/cards/375 m15 simple/", blend_type:"card") }
########## Mainframe stuff
use_main_rarity := { contains(set.mainframe_rarity_name, match: ".png")}
un_png := replace@(match:".png", replace: "")
ancestral_mana := { contains(styling.other_options, match:"ancestral generic")}
center_pt := { contains(styling.other_options, match:"center pt")}
remove_rarity := { contains(styling.other_options, match:"remove rarity")}
pre_stamp := { contains(styling.other_options, match:"prerelease")}
shrink_type := {if styling.shrink_typeline_text != "" then to_int(styling.shrink_typeline_text) else 0 }
shrink_name := {if styling.shrink_name_text != "" then to_int(styling.shrink_name_text) else 0 }
use_vorthos := {chosen(styling.other_options, choice:"vorthos box")}
is_weird_token := {chosen(styling.frames, choice:"archetype") or chosen(styling.frames, choice:"state")}
is_state := {chosen(styling.frames, choice:"state")}
is_archetype := {chosen(styling.frames, choice:"archetype")}
white_state_font := {is_weird_token() and contains(styling.other_options, match:"white state text")}
archetype_image := {is_archetype() and contains(styling.other_options, match:"archetype image")}
use_drop_shadow := {is_weird_token() and contains(styling.other_options, match:"state drop shadow")}
### Customize fonts
swap_fonts_name_default := [
name: {
if is_archetype() then "Gotham Medium"
else if is_copy() or mtgo_abil() then "Beleren Bold"
else "Beleren Small Caps Bold"
},
size: {
if is_archetype() then 9
else if is_copy() or mtgo_abil() then 18
else 19
},
color: {
if is_weird_token() then "white"
else if is_m20() and is_snow() then "black"
else if is_m20() and card.card_color == "white" and not is_clear() then "black"
else if is_m20() then "white"
else rgb(255,239,128)
},
vertical: {0},
italic: {""}
]
swap_fonts_type_default := [
name: {"Beleren Bold"},
size: {14},
color: {if mtgo_abil() then rgb(255,239,128) else "black"},
vertical: {0},
italic: {""}
]
swap_fonts_body_default := [
name: {if is_archetype() then "Gotham Pro" else "MPlantin"},
size: {14},
color: {if white_state_font() then "white" else "black"},
vertical: {0},
italic: {"MPlantin-Italic"}
]
swap_fonts_pt_default := [
name: {"Beleren Bold"},
size: {16},
color: {if is_vehicle() then "white" else "black"},
vertical: {0},
italic: {""}
]
stamp_img := {
sh := stamp_shape()
if is_m20() and sh == "triangle"
then module_ubstamp()
else if is_m20()
then module_stamp()
else "/magic-modules.mse-include/stamps/backs/" + (if sh == "triangle" then "triangle_stamp.png" else "stamp.png")
}
is_custom_border := {
if chosen(styling.frames, choice:"custom border")
then has_png(styling.custom_border_source)
else auto_custom_border()
}
custom_border_blend := { color_background(type:"custom_border", base_hybrid:card_hybrid) }
watermark_include := "/magic-modules.mse-include/watermarks"
############################################################## Set info fields
set info style:
symbol:
variation:
name: invertedcommon
border radius: 0.10
fill type: solid
fill color: rgb(255,255,255)
border color: rgb(0,0,0)
############################################################## Extra style
styling field:
type: multiple choice
name: frames
choice: archetype
choice: state
choice: copy
choice: tall
choice: legendary
choice: clear
choice: M20
choice: MTGO Ability
choice: nyx
choice: snow
choice: vehicle
choice: custom border
styling field:
type: text
name: custom border source
description: Use this file from magic-mainframe-extras as a custom vehicle-like frame. if colored, name images like "wborder.png" and put "-color-border.png" here.
styling field:
type: multiple choice
name: auto frames
description: Automatically applies frames for multi-typed enchantments, snow, or Vehicles.
choice: nyx
choice: snow
choice: vehicle
initial: nyx, vehicle, snow
styling field:
type: multiple choice
name: other options
choice: center pt
choice: remove rarity symbol
choice: prerelease stamp
choice: ancestral generic mana
choice: vorthos box
choice: godzilla style alias
choice: pokemon evobar
choice: archetype image
choice: white state text
choice: state drop shadow
initial: white state test
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: 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: text
name: shrink font size
description: Reduces the fontsize text N points.
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:...:X:" 1 and 2 are fill color, 3 and 4 border color, X is border thickness. For example, rare is 214,196,94:95,84,40:0,0,0:0,0,0:0.07
styling field:
type: boolean
name: apply custom fonts
description: Enable to attempt to use custom fonts given below
initial: no
styling field:
type: text
name: custom name font
description: Formatted as "font name;font size;font color;vertical offset;italic font name" last 4 are optional. color can be a name or R,G,B,A numbers.
styling field:
type: text
name: custom type font
description: Formatted as "font name;font size;font color;vertical offset;italic font name" last 4 are optional. color can be a name or R,G,B,A numbers.
styling field:
type: text
name: custom body font
description: Formatted as "font name;font size;font color;vertical offset;italic font name" last 4 are optional. color can be a name or R,G,B,A numbers.
styling field:
type: text
name: custom pt font
description: Formatted as "font name;font size;font color;vertical offset;italic font name" last 4 are optional. color can be a name or R,G,B,A numbers.
styling field:
type: text
name: 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: boolean
name: grey hybrid typeline
description: Use a grey background for the type line on hybrid cards. 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: package choice
name: text box mana symbols
match: magic-mana-*.mse-symbol-font
initial: magic-mana-small.mse-symbol-font
styling field:
type: choice
name: 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: 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: short text only
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-small.mse-symbol-font/mana_t.png
old: /magic-mana-small.mse-symbol-font/mana_t_old.png
diagonal T: /magic-mana-small.mse-symbol-font/mana_t_older.png
center text:
render style: both
choice images:
always: /magic.mse-game/icons/center-all-text.png
short text only: /magic.mse-game/icons/center-short-text.png
never: /magic.mse-game/icons/center-no-text.png
inverted common symbol:
choice images:
no: { symbol_variation(symbol: set.symbol, variation: "common") }
yes: { symbol_variation(symbol: set.symbol, variation: "invertedcommon") }
frames:
render style: checklist
direction: vertical
auto frames:
render style: checklist
direction: vertical
other options:
render style: checklist
direction: vertical
############################################################## Card fields
include file: /magic-modules.mse-include/corners/card_fields
include file: /magic-modules.mse-include/information/card_fields
include file: /magic-modules.mse-include/separators/card_fields
include file: /magic-modules.mse-include/stamps/card_fields
card style:
############################# Background stuff
border color:
left: 0
top : 0
width: 375
height: 523
radius: 18
left width: 17
right width: 17
top width: 17
bottom width: 18
z index: 4
mask: { if is_legend() then "crown_border.png" else "border_mask.png"}
card color:
left: 0
top: 0
width: { if is_clear() then 0 else 375 }
height: { if is_clear() then 0 else 523 }
z index: 0
render style: image
popup style: in place
image: { if is_archetype() then "arch_frame.png" else if is_state() then "state_frame.png" else color_background(type:"card" + text_shape(), base_hybrid:card_hybrid) }
mask: {if is_archetype() then "arch_mask.png" else if is_state() then "state_mask.png" else "framemask" + text_shape() + ".png"}
############################# Name line
name:
left: { if is_copy() then 32 else 30}
top: { (if is_archetype() then 10 else if is_copy() then 24 else 26) + name_font_vertical()}
width: { 315 - (if is_copy() then card_style.casting_cost.content_width else 0)}
height: {if is_archetype() then 14 else 28 - (0.5 * shrink_name())}
alignment: { if is_copy() or mtgo_abil() then "bottom shrink-overflow" else "bottom center"}
padding bottom: -2
padding top: 2
z index: 900
font:
name: { name_font() }
italic name: { name_font_italic() }
size: { name_font_size() }
color: { name_font_color() }
weight: {if is_archetype() then "bold" else ""}
alias:
left: {if is_skinned() then 45 else 19}
top: {if is_m20() and is_skinned() then (if is_legend() then 57 else 51) else 52}
width: {if is_skinned() then 285 else if use_evobar() then max(100, card_style.alias.content_width) else 0}
height: 20
alignment: { (if is_skinned() then "center" else "") + "bottom shrink-overflow"}
padding bottom: 0
z index: 900
font:
name: {if use_evobar() then "Matrix" else "MPlantin-Italic"}
size: {if use_evobar() then 10 else 9}
style: {if use_evobar() then "italic" else "bold"}
weight: {if use_evobar() then "italic" else "bold"}
color: {if use_evobar() then "black" else "white"}
casting cost:
right: 344
top: 29
width: { if not is_copy() then 0 else max(30, card_style.casting_cost.content_width) + 5 }
height: 23
alignment: middle right
font:
name: MPlantin
size: 15
symbol font:
name: magic-mana-large
size: 15
alignment: middle right
always symbol: true
z index: 900
padding top: 0
############################# Image
image:
left: { if is_weird_token() then 14 else if is_clear() or is_m20() then 0 else 29 }
top: { if is_archetype() then 30 else if is_state() then 15 else if is_clear() or is_m20() then 0 else 62 }
width: { if is_weird_token() then 346 else if is_clear() or is_m20() then 375 else 317 }
height: { if archetype_image() then 461 else if is_archetype() then 0 else if is_state() then 467 else if is_clear() or is_m20() then 523 else if is_tall() then 229 else if is_textless() then 363 else 289}
mask: { if is_weird_token() then "" else (if is_m20() then "m20_" else if is_clear() then "clear_" else "") + "imagemask" + (if is_clear() and not is_m20() then "" else if is_tall() then "3" else if is_textless() then "" else "2") + ".png" }
z index: -1
default: { if is_clear() then "" else default_image(card.card_color)}
mainframe image:
left: {if comma_count(styling.popout_image_style) == ",,,," then split_text(match:",", styling.popout_image_style).0 else "0"}
top: {if comma_count(styling.popout_image_style) == ",,,," then split_text(match:",", styling.popout_image_style).1 else "0"}
width: {if comma_count(styling.popout_image_style) == ",,,," then split_text(match:",", styling.popout_image_style).2 else "0"}
height: {if comma_count(styling.popout_image_style) == ",,,," then split_text(match:",", styling.popout_image_style).3 else "0"}
z index: 1010
############################# Card type
type:
left: 32
top:
{(if is_tall() and is_clear() then 294
else if is_tall() then 296
else if is_textless() and is_clear() then 429
else if is_textless() then 429
else if is_clear() then 354
else 354)
+ (if is_m20() and is_textless() then 1 else if is_m20() and not is_tall() then 2 else if is_m20() and is_clear() then 2)
+ shrink_type()
+ type_font_vertical()}
width: { if is_weird_token() then 0 else 311 - ( if contains(styling.other_options, match:"remove rarity") then 0 else rare_width()) }
height: { 20 - shrink_type()}
alignment: top shrink-overflow
z index: 900
padding top: 2
padding bottom: 4
padding right: 2
font:
name: { type_font() }
italic name: { type_font_italic() }
size: { type_font_size() }
color: { type_font_color() }
separator color: red
rarity:
right: 344
top:
{
(if is_tall() and is_clear() then 296
else if is_tall() then (if is_m20() then 298 else if is_clear() then 296 else 297)
else if is_textless() then (if is_m20() then 432 else 431)
else if is_m20() then 358
else 356)
}
width: { if is_weird_token() or contains(styling.other_options, match:"remove rarity") then 0 else 44}
height: 22
z index: 2
alignment: middle right
render style: image
include file: /magic-modules.mse-include/rarities/choice_images
############################# Text box
text:
left: {if is_archetype() then 20 else 29}
top:
{
(if is_archetype() then 30
else if is_state() then 327
else if is_tall() then 327
else if is_textless() then 459
else 388)
+ body_font_vertical()
}
width: { if is_archetype() then 337 else 315}
height:
{
if is_archetype() then 450
else if is_state() then 154
else if is_tall() then 154
else if is_textless() then 27
else 94
}
font:
name: { body_font() }
italic name: { body_font_italic() }
size: { body_font_size() }
scale down to: 6
color: { body_font_color() }
shadow color: {if not use_drop_shadow() then rgba(0,0,0,0) else if white_state_font() then "black" else "white"}
shadow displacement x: -1
shadow displacement y: 1
symbol font:
name: { styling.text_box_mana_symbols }
size: { if styling.shrink_font_size != "" then 14 - to_number(styling.shrink_font_size) else 14}
alignment:
script:
if (styling.center_text == "short text only" and
card_style.text.content_lines <= 2 and
not contains(match: ".", card.rule_text) and
not contains(match: ";", card.rule_text) and
not contains(match: ":", card.rule_text) and
not contains(match: "!", card.rule_text) and
not contains(match: "?", card.rule_text) and
card.flavor_text == "<i-flavor></i-flavor>") or
styling.center_text == "always"
then "middle center shrink-overflow"
else "middle left shrink-overflow"
z index: 900
padding left: 6
padding top: 2
padding right: 4
padding bottom: 2
line height hard: 1.2
line height line: 1.5
line height soft: 0.9
rule text 2:
top: 58
left: 29
width: {if is_state() then 315 else 0}
height: 70
font:
name: MPlantin-Italic
italic name: MPlantin
size: 13
scale down to: 8
color: {if white_state_font() then "white" else "black"}
shadow color: {if not use_drop_shadow() then rgba(0,0,0,0) else if white_state_font() then "black" else "white"}
shadow displacement x: -1
shadow displacement y: 1
symbol font:
name: { styling.text_box_mana_symbols }
size: 13
alignment:
script:
if (styling.center_text == "short text only" and
card_style.text_2.content_lines <= 2 and
not contains(match: ".", card.rule_text_2) and
not contains(match: ";", card.rule_text_2) and
not contains(match: ":", card.rule_text_2) and
not contains(match: "!", card.rule_text_2) and
not contains(match: "?", card.rule_text_2) and
card.flavor_text == "<i-flavor></i-flavor>") or
styling.center_text == "always"
then "top center shrink-overflow"
else "top left shrink-overflow"
z index: 900
padding left: 6
padding top: 2
padding right: 4
padding bottom: 2
line height hard: 1.2
line height line: 1.5
line height soft: 0.9
watermark:
left: { if is_tall() then 117 else 142 }
top: { if is_tall() then 321 else if is_textless() then 600 else 383 }
width: { if is_tall() then 138 else 85 }
height: { if is_tall() then 166 else 104 }
z index: 1
render style: image
alignment: middle center
include file: /magic.mse-game/watermarks/menu_choice_images
image: { watermark_image_1() }
############################# PT
pt:
z index: 900
left: { if center_pt() then 157.5 else 286}
top: {469 + pt_font_vertical()}
width: 60
height: 28
alignment: center middle shrink-overflow
font:
name: {pt_font()}
italic name: {pt_font_italic()}
size: {pt_font_size()}
color: {pt_font_color()}
separator color: red
############################################################## Extra card fields
extra card field:
type: choice
name: pt box
script: card.card_color
editable: false
save value: false
extra card field:
type: choice
name: foil layer
choice: foil
save value: false
editable: false
extra card field:
type: choice
name: clear frame
choice: clear
save value: false
editable: false
extra card field:
type: choice
name: legend 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: plate
choice: plate
save value: false
editable: false
extra card field:
type: choice
name: nyx overlay
script: card.card_color
save value: false
editable: false
extra card field:
type: choice
name: snow overlay
script: card.card_color
save value: false
editable: false
extra card field:
type: choice
name: snow type overlay
script: card.card_color
save value: false
editable: false
extra card field:
type: choice
name: snow box overlay
script: card.card_color
save value: false
editable: false
extra card field:
type: choice
name: vehicle overlay
choice: plate
save value: false
editable: false
extra card field:
type: choice
name: custom overlay
choice: plate
save value: false
editable: false
extra card field:
type: text
name: vorthos box
save value: true
editable: true
description: Where they put mtgstory.com on story spotlights.
extra card field:
type: choice
name: evobar tip
choice: evo
save value: false
editable: false
extra card field:
type: choice
name: evobar
choice: evo
save value: false
editable: false
extra card field:
type: choice
name: alias bar
script: card.card_color
save value: false
editable: false
extra card field:
type: color
name: arch back
choice:
name: gray
color: rgb(120,100,100)
show statistics: false
description: The background of the card; can be any solid color.
extra card field:
type: choice
name: stamp backing
choice: stamp
editable: false
save value: false
script: card.card_color
extra card style:
pt box:
left: {if center_pt() then 144 else 273 }
top: 466
width: 81
height: 42
z index: 1
visible: { card.pt != "" }
render style: image
image: { if is_clear() then template_prefix["pt"]+"cpt.png" else module_ptbox(vehicle:is_vehicle()) }
foil layer:
left: 0
top : 0
width: 375
height: 523
z index: 1050
render style: image
image: {if styling.overlay == "" then nil else styling.overlay + "/overlay.png"}
clear frame:
left: 0
top: 0
width: { if is_clear() then 375 else 0 }
height: { if is_clear() then 523 else 0 }
z index: 0
render style: image
image: { "xcard" + text_shape() + ".png" }
legend crown:
left: 0
top: 0
width: 375
height: 523
z index: 2
render style: image
visible: {is_legend()}
image: {if is_m20() then crown_background() else "crown.png"}
promo label:
left: 40
top: { if is_tall() then 262 else if is_textless() then 399 else 324 }
width: {if contains(styling.other_options, match:"prerelease stamp") then 295 else 0}
height: 29
alignment: middle right
z index: 4
font:
name: ModMatrix
size: 14
color: rgb(223,169,41)
plate:
left: 19
top: { if is_tall() then 291 else if is_textless() then 425 else 351 }
width: 336
height: 37
z index: 1
render style: image
image: plate.png
visible: { mtgo_abil() }
nyx overlay:
left: {if is_m20() then 0 else 15}
top: {if is_m20() then 0 else 15}
width: {if is_m20() then 375 else 345}
height: {if is_m20() then 523 else 471}
z index: 1
render style: image
image: {module_nyx()}
mask: {if is_m20() then "m20/nyx_mask.png" else "v_" + if is_tall() then "tall_mask.png" else if is_textless() then "short_mask.png" else "mid_mask.png"}
visible: { is_nyx() }
snow overlay:
left: {if is_m20() then 0 else 15}
top: {if is_m20() then 0 else 15}
width: {if is_m20() then 375 else 345}
height: {if is_m20() then 523 else 471}
z index: 1
render style: image
image: {module_snow()}
mask: {if is_m20() then "m20/nyx_mask.png" else "v_" + (if is_nyx() then "nyx_" else "") + if is_tall() then "tall_mask.png" else if is_textless() then "short_mask.png" else "mid_mask.png"}
visible: { is_snow() }
snow type overlay:
left: 0
top: { if is_tall() then 0 else if is_textless() then 134 else 60 }
width: 375
height: 523
z index: 1
render style: image
image: {module_snow()}
mask: m20/type_mask.png
visible: { is_snow() and is_m20() }
snow box overlay:
left: 28
top: { if is_tall() then 327 else 387 }
width: { if is_textless() then 0 else 320 }
height: { if is_tall() then 156 else 96 }
z index: 1
render style: image
image: { crop(snow_card_background(), offset_x:28, offset_y:327, width:320, height:156) }
mask: m20/snowbox_mask.png
visible: { is_snow() and is_m20() }
vehicle overlay:
left: 15
top: 15
width: 345
height: 471
z index: 1
render style: image
image: voverlay.png
mask: {"v_" + (if is_nyx() or is_snow() then "nyx_" else "") + if is_tall() then "tall_mask.png" else if is_textless() then "short_mask.png" else "mid_mask.png"}
visible: { is_vehicle() }
vehicle overlay:
left: 15
top: 15
width: 345
height: 471
z index: 1
render style: image
image: {custom_border_blend()}
mask: {"v_" + (if is_nyx() or is_snow() then "nyx_" else "") + if is_tall() then "tall_mask.png" else if is_textless() then "short_mask.png" else "mid_mask.png"}
visible: { is_custom_border() }
vorthos box:
right: { if card.pt != "" then 275 else 350 }
top: 488
left: 210
height: {if use_vorthos() then 10 else 0}
z index: 3
alignment: middle right
font:
name: Relay-Medium
size: 7
color: white
weight: bold
alias bar:
left: 38
top: {if is_m20() and is_legend() then 61 else if is_m20() then 55 else 56}
width: 298
height: 21
z index: 2
render style: image
image: {if is_m20() then alias_bar() else "alias/malias.png"}
visible: {is_skinned() and not use_evobar()}
evobar:
left: 15
top: 57
width: {card_style.alias.content_width}
height: 27
z index: 2
render style: image
image: evobar.png
visible: {use_evobar()}
evobar tip:
left: {14.6 + card_style.alias.content_width}
top: 57
width: 36
height: 27
z index: 2
render style: image
image: evobar_tip.png
visible: {use_evobar()}
arch back:
left: 0
top: 0
width: {if is_archetype() then 375 else 0}
height: 523
z index: -2
stamp backing:
left: 159
top: { if is_m20() then 471 else 474 }
width: 56
height: 26
z index: 850
visible: { card.card_stamp != "none" }
render style: image
image: { stamp_img() }