Files
magic-set-editor-fork/data/magic-m15-split-fusable.mse-style/style
2025-01-11 15:12:01 -06:00

1322 lines
39 KiB
Plaintext

mse version: 2.0.0
game: magic
short name: Mainframe Splits
full name: Fusable Splits & Rooms
icon: card-sample.png
installer group: magic/m15 style/split cards/fuse
position hint: 011
version: 2024-09-03
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-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: 523
card height: 375
card dpi: 150
############################################################## 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.grey_hybrid_name }
#Should multicolor lands with basic land types have a colored name?
mask_multi_land_with_color := { styling.colored_multicolor_land_name }
template_prefix := [
card: "normal/"
fuse_left: "fuse_left/"
fuse_right: "fuse_right/"
borderless: "normal/borderless/"
cover: "rooms/"
bridge: "bridge/"
nyx: "/magic-modules.mse-include/trims/nyx/",
star: "/magic-modules.mse-include/trims/star/",
beyond: "/magic-modules.mse-include/trims/beyond/",
pt: "/magic-modules.mse-include/pts/375 m15/"
identity: "/magic-modules.mse-include/indicators/",
texture: "texture/"
]
template_suffix := [
card: "card.png"
fuse_left: "fuse.png"
fuse_right: "fuse.png"
borderless: "card.png"
bridge: "bridge.png"
cover: "cover.png"
nyx: "nyx.png",
star: "star.png",
beyond: "beyond.png",
pt: "pt.png",
identity: "identity.png",
texture:"texture.png",
]
template := {
if type_name(harder_script[type] or else nil) != type_name(nil)
then harder_script[type](input, land:false)
else template_prefix[type] + input + template_suffix[type]
}
land_template := {
if type_name(harder_script[type] or else nil) != type_name(nil)
then harder_script[type](input, land:true)
else template_prefix[type] + input + (if landless(type) or input == "a" then "" else "l") + template_suffix[type]
}
landless := {
landless_ar[input] or else false
}
landless_ar := [
nyx: true,
cover: true,
star: true,
beyond: true,
left_fuse: true,
right_fuse: true,
borderless: true,
borderless_room_left: true,
borderless_room_right: true
]
# Use land templates for previews because they show more contrast
hybrid_previews := "land,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"
}
# Use guild mana symbols?
guild_mana := { styling.use_guild_mana_symbols }
# Is the card a promo card?
is_promo := { styling.promo }
is_unsorted := {styling.remove_from_autocount}
ancestral_mana := { contains(styling.other_options, match:"ancestral generic")}
name_tag_for_level := { if input == 2 then "_2" else "" }
card_shape := { "fuse split" }
bridge_image := {
lc := left_clear()
rc := right_clear()
if lc and rc then ""
else if lc then set_mask(image:bridge_colored(), mask:"bridge/xcmask.png")
else if rc then set_mask(image:bridge_colored(), mask:"bridge/cxmask.png")
else bridge_colored()
}
bridge_colored := {
# Card 1
# What type of 'hybrid'?
land := chosen(choice:"land", card.card_color)
multi := chosen(choice:"multicolor", card.card_color)
hybrid := chosen(choice:"hybrid", card.card_color)
artifact := chosen(choice:"artifact", card.card_color)
if land and colored_lands then template := land_template # use land template instead?
# The selected colors
colors := sort_text( order: "(wubrg)"
, (if chosen(choice:"white", card.card_color) then "w")
+ (if chosen(choice:"blue", card.card_color) then "u")
+ (if chosen(choice:"black", card.card_color) then "b")
+ (if chosen(choice:"red", card.card_color) then "r")
+ (if chosen(choice:"green", card.card_color) then "g"))
if multi and (hybrid or colors == "") then (
colors := colors + "m"
multi := false
)
if artifact and (hybrid or colors == "") then (
colors := colors + "a"
artifact := false
)
if chosen(choice:"reversed") then colors := reverse(colors)
color_count := number_of_items(in: colors)
if colors == "" then color1 := "c"
if color_count > 0 then color1 := colors[color_count - 1]
image1 := mask_bridge(color: color1)
# Card 2
# What type of 'hybrid'?
land := chosen(choice:"land", card.card_color_2)
multi := chosen(choice:"multicolor", card.card_color_2)
hybrid := chosen(choice:"hybrid", card.card_color_2)
artifact := chosen(choice:"artifact", card.card_color_2)
if land and colored_lands then template := land_template # use land template instead?
# The selected colors
colors := sort_text( order: "(wubrg)"
, (if chosen(choice:"white", card.card_color_2) then "w")
+ (if chosen(choice:"blue", card.card_color_2) then "u")
+ (if chosen(choice:"black", card.card_color_2) then "b")
+ (if chosen(choice:"red", card.card_color_2) then "r")
+ (if chosen(choice:"green", card.card_color_2) then "g"))
if multi and (hybrid or colors == "") then (
colors := colors + "m"
multi := false
)
if artifact and (hybrid or colors == "") then (
colors := colors + "a"
artifact := false
)
if chosen(choice:"reversed") then colors := reverse(colors)
color_count := number_of_items(in: colors)
if colors == "" then color2 := "c"
if color_count > 0 then (
if chosen(choice:"vertical", card.card_color_2) then
color2 := colors[color_count - 1]
else
color2 := colors[0]
)
image2 := mask_bridge(color: color2)
linear_blend(x1:0, y1:0, x2:1, y2:0)
}
mask_bridge := {
base := "bridge/" + color + "bridge.png"
if land then
"bridge/clbridge.png"
else if multi then
masked_blend(
mask: "bridge/bridgemask.png",
dark: "bridge/mbridge.png",
light: base,
)
else if artifact and color_count > 1 and mask_hybrid_with_land() then
masked_blend(
mask: "bridge/bridgemask.png",
dark: "bridge/clbridge.png",
light: base
)
else if artifact then
base
else if color_count > 1 and mask_hybrid_with_land() then
masked_blend(
mask: "bridge/bridgemask.png",
dark: "bridge/clbridge.png",
light: base,
)
else base
}
beyond_background := { color_background(type:"beyond", base_hybrid:card_hybrid, folder:template_prefix.beyond) }
fuse_left_background := { color_background(type:"fuse_left", base_hybrid:card_hybrid, folder:"fuse_left/", blend_type:"fuse") }
fuse_right_background := { color_background(type:"fuse_right", base_hybrid:card_hybrid, folder:"fuse_right/", blend_type:"fuse") }
fuse_left_img := {
if is_borderless()
then set_mask(image: fuse_left_background(), mask:"shadow_mask.png")
else fuse_left_background()
}
fuse_right_img := {
if is_borderless()
then set_mask(image: fuse_right_background(), mask:"shadow_mask.png")
else fuse_right_background()
}
room_cover := {
if left_clear()
then "rooms/xcover.png"
else color_background(type:"cover", base_hybrid:card_hybrid, folder:"rooms/")
}
blend_room_cover := {
land := chosen(card.card_color, choice:"land")
multi := chosen(card.card_color, choice:"multicolor")
hybrid := chosen(card.card_color, choice:"hybrid")
artifact := chosen(card.card_color, choice:"artifact")
land2 := chosen(card.card_color_2, choice:"land")
multi2 := chosen(card.card_color_2, choice:"multicolor")
hybrid2 := chosen(card.card_color_2, choice:"hybrid")
artifact2 := chosen(card.card_color_2, choice:"artifact")
colors := sort_text( order: if card_is_wedge(card.card_color) then "(wbgur)" else "(wubrg)"
, (if chosen(card.card_color, choice:"white" ) then "w")
+ (if chosen(card.card_color, choice:"blue" ) then "u")
+ (if chosen(card.card_color, choice:"black" ) then "b")
+ (if chosen(card.card_color, choice:"red" ) then "r")
+ (if chosen(card.card_color, choice:"green" ) then "g"))
colors2 := sort_text( order: if card_is_wedge(card.card_color_2) then "(wbgur)" else "(wubrg)"
, (if chosen(card.card_color_2, choice:"white" ) then "w")
+ (if chosen(card.card_color_2, choice:"blue" ) then "u")
+ (if chosen(card.card_color_2, choice:"black" ) then "b")
+ (if chosen(card.card_color_2, choice:"red" ) then "r")
+ (if chosen(card.card_color_2, choice:"green" ) then "g"))
if colors == "" and multi then (
colors := "m"
multi := false
)
if colors == "" and artifact then (
colors := "a"
artifact := false
)
if colors == "" then colors := "c"
if chosen(card.card_color, choice:"reversed") then colors := reverse(colors)
color_count := number_of_items(in: colors)
shape := if chosen(card.card_color, choice:"horizontal" ) then "horizontal"
else if chosen(card.card_color, choice:"vertical" ) then "vertical"
else if chosen(card.card_color, choice:"overlay" ) then "overlay"
else "radial"
if colors2 == "" and multi2 then (
colors2 := "m"
multi2 := false
)
if colors2 == "" and artifact2 then (
colors2 := "a"
artifact2 := false
)
if colors2 == "" then colors2 := "c"
if chosen(card.card_color_2, choice:"reversed") then colors2 := reverse(colors)
color_count2 := number_of_items(in: colors2)
shape2 := if chosen(card.card_color_2, choice:"horizontal") then "horizontal"
else if chosen(card.card_color_2, choice:"vertical" ) then "vertical"
else if chosen(card.card_color_2, choice:"overlay" ) then "overlay"
else "radial"
img1 := if color_count == 1 then "rooms/" + colors.0 + "cover.png"
else if color_count > 2 then "rooms/mcover.png"
else if shape == "vertical" then
linear_blend(
image1:"rooms/" + colors.0 + "cover.png",
image2:"rooms/" + colors.1 + "cover.png",
x1: 0, x2: 0, y1:0, y2:0.5
)
else if shape == "overlay" then
combine_blend(
image1:"rooms/" + colors.0 + "cover.png",
image2:"rooms/" + colors.1 + "cover.png",
combine: "symmetric overlay"
)
else linear_blend(
image1:"rooms/" + colors.0 + "cover.png",
image2:"rooms/" + colors.1 + "cover.png",
x1: 0.256, x2: 0.325, y1:0, y2:0
)
img2 := if color_count2 == 1 then "rooms/" + colors2.0 + "cover.png"
else if color_count2 > 2 then "rooms/mcover.png"
else if shape2 == "vertical" then
linear_blend(
image1:"rooms/" + colors2.0 + "cover.png",
image2:"rooms/" + colors2.1 + "cover.png",
x1: 0, x2: 0, y1:0, y2:0.5
)
else if shape2 == "overlay" then
combine_blend(
image1:"rooms/" + colors2.0 + "cover.png",
image2:"rooms/" + colors2.1 + "cover.png",
combine: "symmetric overlay"
)
else linear_blend(
image1:"rooms/" + colors2.0 + "cover.png",
image2:"rooms/" + colors2.1 + "cover.png",
x1: 0.671, x2: 0.744, y1:0, y2:0
)
masked_blend(
dark: img1,
light: img2,
mask: "rooms/blend_mask.png"
)
}
texture_background := { color_background(type:"texture", base_hybrid:card_hybrid, folder:"texture/") }
texture_template := {
template_prefix[type] + (if land then "l" else input) + template_suffix[type]
}
borderless_card := { color_background(type:"borderless", base_hybrid:card_hybrid, blend_type:"card", folder:"normal/") }
swap_fonts_name_default := [
name: {"Beleren Bold"},
size: {15},
color: {if borderless_frames() and not left_clear() then "white" else "black"},
italic: {""},
vertical: {0}
]
swap_fonts_type_default := [
name: {"Beleren Bold"},
size: {9},
color: { if (borderless_frames() and not left_clear()) or is_room() then "white" else "black"},
italic: {""},
vertical: {0}
]
swap_fonts_body_default := [
name: {"MPlantin"},
size: { left_font_size() },
color: {if borderless_frames() and not left_clear() then "white" else "black"},
italic: {"MPlantin-Italic"},
vertical: {0}
]
swap_fonts_name2_default := [
name: {"Beleren Bold"},
size: {15},
color: {if borderless_frames() and not right_clear() then "white" else "black"},
italic: {""},
vertical: {0}
]
swap_fonts_type2_default := [
name: {"Beleren Bold"},
size: {9},
color: { if (borderless_frames() and not right_clear()) or is_room() then "white" else "black"},
italic: {""},
vertical: {0}
]
swap_fonts_body2_default := [
name: {"MPlantin"},
size: { right_font_size() },
color: {if borderless_frames() and not right_clear() then "white" else "black"},
italic: {"MPlantin-Italic"},
vertical: {0}
]
swap_fonts_body3_default := [
name: {"MPlantin"},
size: { if is_room() then 10 else 11 },
color: { if is_room() then "white" else "black"},
italic: {"MPlantin-Italic"},
vertical: {0}
]
image_width := {
clear := if input == "left" then left_clear() else if input == "right" then right_clear() else false
bl := is_borderless()
room_style := styling.room_images
if is_room() then (
if room_style == "one image" and input == "left"
then if bl then 488 else if clear then 474 else 452
else if room_style == "one image"
then 0
else if bl and input == "left"
then 251
else if bl
then 265
else if clear
then 251
else 240
)
else if bl and input == "left" and room_style == "one image"
then 488
else if bl and room_style == "one image"
then 0
else if bl and input == "left"
then 251
else if bl
then 265
else if clear
then 237
else 203
}
image_height := {
clear := if input == "left" then left_clear() else if input == "right" then right_clear() else false
if is_borderless()
then 375
else if clear
then 345
else if is_room()
then 211
else 148
}
image_mask := {
tb := is_borderless()
bl := borderless_frames()
clear := if input == "left" then left_clear() else if input == "right" then right_clear() else false
tag := if tb and uses_fuse_arrows() then (if clear then "_bl" else "_arrow") else if tb and bl then "_bl" else if clear then "_clear" else ""
room_style := styling.room_images
rm := is_room()
if rm then (
if room_style == "one image" and input == "left"
then "rooms/image_mask{tag}.png"
else "rooms/image_mask_{input}{tag}.png"
)
else if bl and room_style == "one image" and input == "left"
then "normal/image_mask_bl.png"
else if bl and room_style == "one image"
then ""
else if bl
then "normal/image_mask_{input}_bl.png"
else if tb and clear and uses_fuse_arrows()
then "normal/image_mask_{input}_bl.png"
else if clear
then "normal/image_mask_{input}_clear.png"
else if tb and room_style == "one image" and input == "left"
then "normal/image_mask.png"
else if tb and room_style == "one image"
then "normal/image_mask.png"
else if tb
then "normal/image_mask_{input}.png"
else ""
}
is_room := {
chosen(styling.frames, choice:"room") or lang_setting("is_room")(card.sub_type)
}
is_fuse := { card.rule_text_3 != "" and not is_room() }
is_arrows := { chosen(styling.frames, choice:"arrows") }
is_borderless := { chosen(styling.frames, choice:"borderless") }
borderless_frames := {
is_borderless() and not uses_fuse_arrows()
}
is_beyond := { chosen(styling.frames, choice:"universes beyond") or auto_beyond() }
left_nyx := {
chosen(styling.frames, choice:"nyx") or auto_nyx(card.super_type)
}
right_nyx := {
chosen(styling.frames, choice:"nyx") or (if is_room() then auto_nyx(card.super_type) else auto_nyx(card.super_type_2))
}
auto_beyond := {
chosen(styling.auto_frames, choice:"universes beyond") and (card.card_stamp == "universes beyond" or card.card_stamp == "flatstamped universes beyond")
}
left_clear := {
chosen(styling.frames, choice:"clear colorless") and card.card_color == "colorless" and (not is_room() or card.card_color_2 == "colorless")
}
right_clear := {
chosen(styling.frames, choice:"clear colorless") and card.card_color_2 == "colorless" and (not is_room() or card.card_color == "colorless")
}
floating_frame := {
bl := is_borderless()
rm := is_room()
clear := if side == "left" then left_clear() else if side == "right" then right_clear() else false
img := if clear
then clear_fuse(side)
else if bl
then borderless_card()
else ""
if rm and bl
then set_mask(image:img, mask:"normal/borderless/{side}_mask.png")
else if rm
then set_mask(image:img, mask:"fuse_{side}/clear_room_mask.png")
else img
}
clear_fuse := {
base := "fuse_{input}/xfuse.png"
normal := "normal/xcard.png"
if is_borderless() then (
base := set_mask(image:base, mask:"fuse_{input}/borderless_clear_mask.png")
normal := set_mask(image:normal, mask:"normal/borderless_clear_mask.png")
)
fus := is_fuse()
arr := uses_fuse_arrows()
if fus and arr
then base
else if arr
then masked_blend(light:base, dark:normal, mask:"arrow_mask.png")
else if fus
then masked_blend(light:base, dark:normal, mask:"bar_mask.png")
else normal
}
auto_nyx := {
is_ench := lang_setting("is_enchantment")(input)
if not is_ench
then false ## not an enchantment
else if not set.auto_nyx
then false ## set auto disabled
else if not chosen(styling.auto_frames, choice:"nyx")
then false ## style auto disabled
else true ## auto nyx
}
uses_fuse_arrows := { (is_fuse() and styling.use_fuse_arrows) or is_arrows() }
border_mask_script := {
if is_borderless()
then "borders/borderless.png"
else if is_room()
then "borders/room{if uses_fuse_arrows() and (left_clear() or right_clear()) then "_cfuse" else ""}.png"
else if not is_fuse() and not is_arrows()
then "borders/mask.png"
else (
lc := left_clear()
rc := right_clear()
if is_fuse() and not lc and not rc
then "borders/fuse_mask.png" #### colors can layer over
else blend_clear_border_mask(lc:lc, rc:rc)
)
}
blend_clear_border_mask := {
canvas := "borders/canvas.png"
arr := uses_fuse_arrows()
bar := is_fuse()
base := if bar then "borders/fuse_mask.png" else "borders/mask.png"
adds := "borders/fuse_add.png"
if lc and rc and arr and bar then "borders/clear_fuse.png" else (
if lc and not rc then
adds := masked_blend(light:adds, dark:canvas, mask:"borders/left_mask.png")
else if rc and not lc then
adds := masked_blend(dark:adds, light:canvas, mask:"borders/left_mask.png")
#else adds := adds
if not bar then
adds := masked_blend(light:adds, dark:canvas, mask:"borders/top_mask.png")
else if not arr then
adds := masked_blend(dark:adds, light:canvas, mask:"borders/top_mask.png")
#else adds := adds
masked_blend(light:base, dark:adds, mask:adds)
)
}
watermark_include := "/magic-modules.mse-include/watermarks"
left_font_size := {to_number(pull_comma_array(styling.font_size_cap, end:false, cell:0, default:13))}
right_font_size := {to_number(pull_comma_array(styling.font_size_cap, end:false, cell:1, default:left_font_size()))}
card_stamp_offset_left_1 := {-5}
faces_coordinates := {
[
[
left: 0,
top: 0,
width: 523,
height: 375
],
[
left: 0,
top: 0,
width: 523,
height: 375
]
]
}
flavor_bar_width := { 251 }
flavor_bar_offset_left_1 := { 25 }
flavor_bar_offset_left_2 := { 268 }
harder_script := [
alt_nyx: alt_nyx_template,
texture: texture_template
]
############################################################## 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 options
styling field:
type: multiple choice
name: frames
choice: arrows
choice: borderless
choice: clear colorless
choice: nyx
choice: room
choice: universes beyond
styling field:
type: multiple choice
name: auto frames
choice: nyx
choice: universes beyond
initial: nyx, universes beyond
styling field:
type: choice
name: room images
choice: one image
choice: two images
choice: three images
styling field:
type: boolean
name: use fuse arrows
description: disable this to only use the extra fuse textbox and not fuse arrows
styling field:
type: text
name: font size cap
description: Maximum font size for both textboxes, or "X,Y" to set individual caps. Default is 13.
styling field:
type: multiple choice
name: other options
choice: ancestral generic mana
choice: prerelease stamp
choice: two illustrators
initial: two illustrators
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: remove from autocount
description: Removes the automatic card number for specific cards, to allow for overcounted cards like in Planeswalker Decks.
initial: no
include file: /magic-modules.mse-include/rarities/styling_fields
styling field:
type: boolean
name: grey hybrid name
description: Use a grey background for the name and type line on hybrid cards. This is done on real cards.
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: choice
name: center text 1
description: When to center text on the first card (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: choice
name: center text 2
description: When to center text on the second card (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 field:
type: choice
name: room cover
script: card.card_color
editable: false
save value: false
styling field:
type: choice
name: room cover 2
script: card.card_color
editable: false
save value: false
styling style:
frames:
render style: checklist
direction: vertical
auto frames:
render style: checklist
direction: vertical
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 1:
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
center text 2:
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") }
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/stamps/card_fields
include file: /magic-modules.mse-include/separators/card_fields_dfc
card style:
############################# Background stuff
border color:
left: 0
top : 0
width: 523
height: 375
z index: 500
mask: { border_mask_script() }
card color:
left: 31
top: 13
width: 241
height: 345
z index: 100
render style: image
popup style: in place
image: { if left_clear() or borderless_frames() then "" else module_card() }
mask: { if is_room() then "normal/left_mask.png" else ""}
card color 2:
left: 272
top: 13
width: 241
height: 345
z index: 100
render style: image
popup style: in place
image: { if right_clear() or borderless_frames() then "" else module_card() }
mask: { if is_room() then "normal/right_mask.png" else ""}
############################# Name line
name:
left: { if card.card_symbol == "none" then 52 else 68 }
top: { 17 + name_font_vertical() }
right: { 248 - max(27,card_style.casting_cost.content_width) }
height: 25
alignment: bottom shrink-overflow
padding bottom: 0
z index: 900
font:
name: { name_font() }
italic name: { name_font_italic() }
size: { name_font_size() }
color: { name_font_color() }
name 2:
left: { if card.card_symbol_2 == "none" then 293 else 309 }
top: { 17 + name_font_vertical() }
right: { 487 - max(27,card_style.casting_cost_2.content_width) }
height: 25
alignment: bottom shrink-overflow
padding bottom: 0
z index: 900
font:
name: { name2_font() }
italic name: { name2_font_italic() }
size: { name2_font_size() }
color: { name2_font_color() }
casting cost:
right: 254
top: 18
width: { max(24, card_style.casting_cost.content_width) + 3 }
height: 23
alignment: middle right
font:
name: MPlantin
size: { name_font_size() }
symbol font:
name: magic-mana-large
size: { name_font_size() }
alignment: middle right
always symbol: true
z index: 920
padding top: 0
casting cost 2:
right: 496
top: 18
width: { max(24, card_style.casting_cost_2.content_width) + 3 }
height: 23
alignment: middle right
font:
name: MPlantin
size: { name2_font_size() }
symbol font:
name: magic-mana-large
size: { name2_font_size() }
alignment: middle right
always symbol: true
z index: 920
padding top: 0
card symbol:
left: 47
top: { if card.card_symbol == "none" then 0 else 20 }
height: 19
width: 21
z index: 830
render style: image
include file: /magic.mse-game/card-symbols/menu_choice_images
image: { card_symbol_image(face: 1) }
card symbol 2:
left: 288
top: { if card.card_symbol_2 == "none" then 0 else 20 }
height: 19
width: 21
z index: 830
render style: image
include file: /magic.mse-game/card-symbols/menu_choice_images
image: { card_symbol_image(face: 2) }
############################# Image
image:
left: { if is_borderless() or left_clear() then 35 else if is_room() then 46 else 50 }
top: { if is_borderless() then 0 else if left_clear() then 13 else 49 }
width: { image_width("left") }
height: { image_height("left") }
z index: 400
default: {default_image(card.card_color)}
mask: { image_mask("left") }
image 2:
left: { if is_borderless() then 258 else if right_clear() then (if is_room() then 258 else 272) else if not is_room() then 291 else 258 }
top: { if is_borderless() then 0 else if right_clear() then 13 else 49 }
width: { image_width("right") }
height: { image_height("right") }
z index: 401
default: {default_image(card.card_color_2)}
mask: { image_mask("right") }
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
mainframe image 2:
left: 245
top: { if is_borderless() then 0 else 53 }
width: { if (is_room() or is_borderless()) and styling.room_images == "three images" then 50 else 0 }
height: { if is_borderless() then 375 else 209 }
z index: 410
mask: { "rooms/image_mask_middle" + (if not is_room() then "_fuse" else if is_borderless() then (if uses_fuse_arrows() then "_arrow" else "_bl") else "") + ".png" }
############################# Card type
indicator:
left: 50
top: 205
width: 12
height: 12
z index: 910
render style: image
visible: { has_identity() }
image: { module_identity() }
indicator 2:
left: 291
top: 205
width: 12
height: 12
z index: 910
render style: image
visible: { not is_room() and has_identity_2() }
image: { module_identity() }
type:
left: { if has_identity() then 65 else 52 }
top: { (if is_room() then 204 else 203) + type_font_vertical() }
width: { if is_room() then (if has_identity() then 422 else 435) else (if has_identity() then 185 else 198) - max(16,card_style.rarity.content_width) }
height: 16
alignment: top shrink-overflow
z index: 900
padding top: 0
font:
name: { type_font() }
italic name: { type_font_italic() }
size: { type_font_size() }
color: { type_font_color() }
separator color: red
type 2:
left: { if has_identity_2() then 306 else 293 }
top: { (if is_room() then 204 else 203) + type_font_vertical() }
width: { if is_room() then 0 else (if has_identity_2() then 185 else 198) - max(16,card_style.rarity.content_width) }
height: 16
alignment: top shrink-overflow
z index: 900
padding top: 0
font:
name: { type2_font() }
italic name: { type2_font_italic() }
size: { type2_font_size() }
color: { type2_font_color() }
separator color: red
rarity:
right: { if is_room() then 496 else 255 }
top: { if is_room() then 204 else 203 }
width: 24
height: 14
z index: 950
render style: image
alignment: middle right
include file: /magic-modules.mse-include/rarities/choice_images
rarity 2:
right: 496
top: 203
width: { if is_room() then 0 else 24 }
height: 14
z index: 950
render style: image
alignment: middle right
include file: /magic-modules.mse-include/rarities/choice_images
############################# Text box
text:
left: 50
top: { body_font_vertical() + if is_room() then 263 else 225 }
width: 204
bottom: { if is_fuse() then 332 else 353 }
font:
name: { body_font() }
italic name: { body_font_italic() }
size: { body_font_size() }
scale down to: 6
color: { body_font_color() }
symbol font:
name: { styling.text_box_mana_symbols }
size: { body_font_size() }
alignment:
script:
if (styling.center_text_1 == "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_1 == "always"
then "middle center"
else "middle left"
z index: 900
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
text 2:
left: 291
top: { body2_font_vertical() + if is_room() then 263 else 225 }
width: 204
bottom: { if is_fuse() then 332 else 353 }
font:
name: { body2_font() }
italic name: { body2_font_italic() }
size: { body2_font_size() }
scale down to: 6
color: { body2_font_color() }
symbol font:
name: { styling.text_box_mana_symbols }
size: { body2_font_size() }
alignment:
script:
if (styling.center_text_2 == "short text only" and
not contains(match:"\n", card.rule_text_2) and
card.flavor_text_2 == "<i-flavor></i-flavor>" and
card_style.text_2.content_lines <= 2) or
styling.center_text_2 == "always"
then "middle center"
else "middle left"
z index: 900
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
rule text 3:
left: { if is_room() then 60 else 50 }
top : { body3_font_vertical() + if is_room() then 224 else 337 }
width: { if is_room() then 424 else 444 }
height: { if is_room() then 36 else 16 }
font:
name: { body3_font() }
italic name: { body3_font_italic() }
size: { body3_font_size() }
scale down to: 6
color: { body3_font_color() }
symbol font:
name: { styling.text_box_mana_symbols }
size: { body3_font_size() }
alignment: "middle center"
z index: 910
padding left: 2
padding right: 2
line height hard: 1.2
line height line: 1.5
line height soft: 0.9
watermark:
left: 40
top: { (if is_room() then 263 else 225)+2 }
width: 224
bottom: { (if is_fuse() then 334 else 355)-2 }
z index: 720
render style: image
popup style: in place
alignment: middle center
include file: /magic.mse-game/watermarks/menu_choice_images
image: { watermark_image_1() }
watermark 2:
left: 281
top: { (if is_room() then 263 else 225)+2 }
width: 224
bottom: { (if is_fuse() then 334 else 355)-2 }
z index: 720
render style: image
popup style: in place
alignment: middle center
include file: /magic.mse-game/watermarks/menu_choice_images
image: { watermark_image_2() }
############################################################## Extra card fields
extra card field:
type: choice
name: pt box
script: card.card_color
editable: false
save value: false
extra card field:
type: choice
name: pt box 2
script: card.card_color_2
editable: false
save value: false
extra card field:
type: choice
name: fuse_bridge
script: "true"
editable: false
save value: false
show statistics: false
extra card field:
type: choice
name: foil layer
choice: foil
save value: false
editable: false
extra card field:
type: choice
name: fusebox 1
script: card.card_color
choice: fusebox
editable: false
save value: false
extra card field:
type: choice
name: fusebox 2
script: card.card_color_2
choice: fusebox
editable: false
save value: false
extra card field:
type: text
name: auto copyright
script: set.copyright
save value: false
editable: false
show statistics: false
extra card field:
type: text
name: promo label
save value: true
description: The golden promo label.
extra card field:
type: text
name: promo label 2
save value: true
description: The second golden promo label.
extra card field:
type: choice
name: stamp backing
script: card.card_color
editable: false
save value: false
extra card field:
type: choice
name: room cover
script: card.card_color
editable: false
save value: false
extra card field:
type: choice
name: room cover 2
choice: bar
editable: false
save value: false
extra card field:
type: choice
name: floating frame left
script: card.card_color
editable: false
save value: false
extra card field:
type: choice
name: floating frame right
script: card.card_color_2
editable: false
save value: false
extra card field:
type: choice
name: card texture
script: card.card_color
editable: false
save value: false
extra card field:
type: choice
name: card texture 2
script: card.card_color_2
editable: false
save value: false
extra card field:
type: choice
name: patch
choice: patch
editable: false
save value: false
extra card style:
fuse_bridge:
left: 265
top : 334
width: 14
height: 24
z index: 610
render style: image
image: { bridge_image() }
visible: { is_fuse() }
fusebox 1:
left: 31
top: 13
width: 241
height: 345
z index: 600
render style: image
image: { fuse_left_img() }
mask: { if is_arrows() and not is_fuse() then "{if is_room() then "top_" else ""}arrow_mask.png" else if uses_fuse_arrows() then "" else "bar_mask.png" }
visible: { is_fuse() or is_arrows() and not left_clear() }
fusebox 2:
left: 272
top: 13
width: 241
height: 345
z index: 600
render style: image
image: { fuse_right_img() }
mask: { if is_arrows() and not is_fuse() then "{if is_room() then "top_" else ""}arrow_mask.png" else if uses_fuse_arrows() then "" else "bar_mask.png" }
visible: { is_fuse() or is_arrows() and not right_clear() }
promo label:
left: 50
top: 177
width: {if contains(styling.other_options, match:"prerelease stamp") then (if is_room() then 440 else 199) else 0}
height: 20
alignment: middle right
z index: 1030
font:
name: ModMatrix
size: 12
color: rgb(223,169,41)
promo label 2:
left: 291
top: 177
width: {if is_room() or not contains(styling.other_options, match:"prerelease stamp") then 0 else 199}
height: 20
alignment: middle right
z index: 1030
font:
name: ModMatrix
size: 12
color: rgb(223,169,41)
stamp backing:
left: { if stamp_shape() == "round" then 46 else 45 }
top: 165
width: 46
height: 26
z index: 850
angle: -90
visible: { card.card_stamp != "none" }
render style: image
image: { recolor_image("/magic-modules.mse-include/stamps/backs/" + (if stamp_shape(field:1) == "triangle" then "triangle_stamp" else "stamp") + "_color.png", color: card.border_color) }
room cover:
left: 0
top: 0
width: 523
height: 375
z index: 810
render style: image
visible: { is_room() }
image: { if card.card_color == card.card_color_2 then room_cover() else blend_room_cover() }
mask: { if is_borderless() then "rooms/cover_mask_bl.png" else "" }
room cover 2:
left: 0
top: 0
width: 523
height: 375
z index: 810
render style: image
visible: { is_room() }
image: rooms/roombar.png
mask: { if is_borderless() then "rooms/cover_mask_bl.png" else "" }
card texture:
left: 31
top: 13
width: 241
height: 345
z index: 90
render style: image
popup style: in place
image: { if is_borderless() or left_clear() then "" else if left_nyx() then module_nyx() else if is_beyond() then beyond_background() else texture_background() }
card texture 2:
left: 272
top: 13
width: 241
height: 345
z index: 90
render style: image
popup style: in place
image: { if is_borderless() or right_clear() then "" else if right_nyx() then module_nyx() else if is_beyond() then beyond_background() else texture_background() }
floating frame left:
left: 31
top: 13
width: 241
height: 345
z index: 480
render style: image
popup style: in place
image: { floating_frame(side:"left") }
visible: { left_clear() or borderless_frames() }
mask: { if is_room() and left_clear() then "normal/left_mask.png" else ""}
floating frame right:
left: 272
top: 13
width: 241
height: 345
z index: 480
render style: image
popup style: in place
image: { floating_frame(side:"right") }
visible: { right_clear() or borderless_frames() }
mask: { if is_room() and right_clear() then "normal/left_mask.png" else ""}
patch:
left: 254
top: 224
width: 36
height: 36
z index: 480
render style: image
image: rooms/patch.png
visible: { borderless_frames() and is_room() and not left_clear() }