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 == "" 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 == "" 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() }