mse version: 2.0.0 game: magic short name: M15 Adventure full name: Mainframe icon: card-sample.png installer group: magic/m15 style/split cards position hint: 011 version: 2024-05-27 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: 375 card height: 523 card dpi: 150 ###### Credits ###### Standard blanks by kebelqwa ###### Spotlight blanks by Femme Fatale ###### Cleanup and coding by cajun ###### Reverse Adventures by BA Start ############################################################## 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: "/magic-modules.mse-include/cards/375 m15 simple/", ubcard: "/magic-modules.mse-include/cards/375 m15 simple/beyond/", double_page: "/magic-modules.mse-include/pages/double_page/", single_page: "/magic-modules.mse-include/pages/single_page/", null_page: "/magic-modules.mse-include/pages/null_page/", double_flat: "/magic-modules.mse-include/pages/double_flat/", single_flat: "/magic-modules.mse-include/pages/single_flat/", binding: "binding/", pt: "/magic-modules.mse-include/pts/375 m15/", stamp: "/magic-modules.mse-include/stamps/backs/375 round/", ubstamp: "/magic-modules.mse-include/stamps/backs/375 ub/", spot: "spotlight/", spotpt: "spotlight/", spotpage: "spotlight/", crown: "/magic-modules.mse-include/crowns/375/", nyx: "/magic-modules.mse-include/trims/nyx/", snowtexture: "/magic-modules.mse-include/trims/snow/", alias: "/magic-modules.mse-include/extras/alias/", star: "/magic-modules.mse-include/trims/star/", identity: "/magic-modules.mse-include/indicators/" ] template_suffix := [ card: "card.jpg", ubcard: "card.jpg", double_page: "page.png", single_page: "page.png", null_page: "page.png", double_flat: "page.png", single_flat: "page.png", binding: "block.jpg", pt: "pt.png", stamp: "stamp.png", ubstamp: "stamp.png", spot: "card.png", spotpt: "pt.png", spotpage: "card2.png", crown: "crown.png", nyx: "nyx.png", alias: "alias.png", snowtexture: "snow.png", star: "star.png", identity: "identity.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 := [ alias: true, binding: true, double_flat: true, double_page: true, null_page: true, nyx: true, single_flat: true, single_page: true, spot: true, spotpage: true, spotpt: true ] watermark_include := "/magic-modules.mse-include/watermarks" # Use land templates for previews because they show more contrast hybrid_previews := "land,hybrid" null_page_blend := { color_background(type:"null_page", base_hybrid:card_hybrid, folder:template_prefix["null_page"]) } single_page_blend := { color_background(type:"single_page", base_hybrid:card_hybrid, folder:template_prefix["single_page"]) } double_page_blend := { color_background(type:"double_page", base_hybrid:card_hybrid, folder:template_prefix["double_page"]) } binding_background := { color_background(type:"binding", base_hybrid:card_hybrid, folder:"blend_masks/") } double_flat_page_blend := { color_background(type:"double_flat", base_hybrid:card_hybrid, folder:template_prefix["double_flat"]) } single_flat_page_blend := { color_background(type:"single_flat", base_hybrid:card_hybrid, folder:template_prefix["single_flat"]) } page_spread_blend := { color_background(type:"pages", base_hybrid:card_hybrid, folder:"blend_masks/") } decoration_background := { color_background(type:"decoration", base_hybrid:card_hybrid, folder:"blend_masks/")} spot_background := { color_background(type:"spot", base_hybrid:card_hybrid, folder:"blend_masks/") } spot_page_background := { color_background(type:"spotpage", base_hybrid:card_hybrid, folder:"blend_masks/") } spot_pt := { color_background(type:"spotpt", base_hybrid:card_hybrid, folder:"blend_masks/") } crown_background := { color_background(type:"crown", base_hybrid: card_hybrid, folder:"blend_masks/")} beyond_background := { color_background(type:"ubcard", base_hybrid: card_hybrid, folder:template_prefix["card"], blend_type:"card")} # 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_spot := {contains(styling.frames, match:"Spotlight")} is_reversed := { not is_spot() and contains(styling.frames, match:"Reversed")} is_legend := { not is_spot() and auto_legend() } is_vehicle := { not is_spot() and (auto_vehicle() or contains(styling.frames, match:"vehicle")) } is_nyx := { not is_spot() and (auto_nyx() or contains(styling.frames, match:"nyx")) } is_snow := { not is_spot() and (auto_snow() or contains(styling.frames, match:"snow")) } is_beyond := { not is_spot() and (auto_ub() or contains(styling.frames, match:"universes beyond")) } 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 := { is_ench := lang_setting("is_enchantment")(card.super_type) 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 } auto_snow := { contains(styling.auto_frames, match:"snow") and lang_setting("is_snow")(card.super_type) } auto_ub := { contains(styling.auto_frames, match:"universes beyond") and (card.card_stamp == "universes beyond" or card.card_stamp == "flatstamped universes beyond") } ##### flavor bar stuff chop_correction := { chop_bot() } top_of_textbox := {327-(-chop_top())} bottom_of_textbox := {(if is_spot() then 464 else 481)-chop_bot()} top_of_textbox2 := {375-(-back_chop_top())} bottom_of_textbox2 := {(if is_spot() then 464 else 481)-back_chop_bot()} chop_top := {to_number(pull_comma_array(styling.chop_main, cell:0, end:false))} chop_bot := {to_number(pull_comma_array(styling.chop_main, cell:1, end:false))} back_chop_top := {to_number(pull_comma_array(styling.chop_adventure, cell:0, end:false))} back_chop_bot := {to_number(pull_comma_array(styling.chop_adventure, cell:1, end:false))} ##### backface bar flavor_text2 := {remove_tags(card.flavor_text_2) + "\n"} chop_correction2 := { 0 } is_unsorted := {styling.remove_from_autocount} shrink_type := {if styling.shrink_typeline_text != "" then to_number((if comma_count(styling.shrink_typeline_text) == "" then styling.shrink_typeline_text else split_text(match:",", styling.shrink_typeline_text).0)) else 0 } shrink_name := {if styling.shrink_name_text != "" then to_number((if comma_count(styling.shrink_name_text) == "" then styling.shrink_name_text else split_text(match:",", styling.shrink_name_text).0)) else 0 } shrink_type2 := {if styling.shrink_typeline_text != "" then to_number((if comma_count(styling.shrink_typeline_text) != "" then split_text(match:",", styling.shrink_typeline_text).1)) else 0 } shrink_name2 := {if styling.shrink_name_text != "" then to_number((if comma_count(styling.shrink_name_text) != "" then split_text(match:",", styling.shrink_name_text).1)) else 0 } use_evobar := {contains(styling.other_options, match:"pokemon evobar")} is_skinned := {contains(styling.other_options, match:"godzilla style alias")} card_shape := {"adventure"} ### Customize fonts swap_fonts_name2_default := [ name: {"Beleren Bold"}, size: {12}, color: {"white"}, vertical: {0}, italic: {""} ] swap_fonts_type2_default := [ name: {"Beleren Bold"}, size: {11}, color: {"white"}, vertical: {0}, italic: {""} ] swap_fonts_pt_default := [ name: {"Beleren Bold"}, size: {16}, color: {if is_vehicle() then "white" else "black"}, vertical: {0}, italic: {""} ] page_decoration_template := { src := "/magic-mainframe-extras.mse-include/" str := styling.page_decoration if not contains(str, match:".png") then ( src := "" str := "" ) c := "" pt := "" l := "" if contains(str, match:";color") then c := input if contains(str, match:";pt") and (right_name() and card.pt != "") then pt := "_pt"; if land and contains(str, match:";land") then l := "l" replace( str, match:"([^;]*/)?([^/;]+)([.]png)(;.+)?", replace:{src + _1 + c + l + _2 + pt + _3} ) } page_script := { flip := if input == "none" then false else if input == "blank page" then if side == "left" then true else false else if side == "right" then true else false; adj_color := if flip then color + ", reversed" else color img := case input of "name and type page": double_page_blend(adj_color), "name page": single_page_blend(adj_color), "blank page": null_page_blend(adj_color), "name and type flat": mask_dblflat(double_flat_page_blend(adj_color)), "name flat": mask_sngflat(single_flat_page_blend(adj_color)), else: ""; if flip then flip_horizontal(img) else img } mask_dblflat := { if no_divider() then set_mask(image: input, mask:"double_mask.png") else input } mask_sngflat := { if no_divider() then set_mask(image:input, mask:"single_mask.png") else input } named_page := contains@(match:"name") left_name := { style_check := if is_spot() then "name and type page" else if is_reversed() then styling.right_style else styling.left_style named_page(style_check) } right_name := { style_check := if is_spot() then "none" else if is_reversed() then styling.left_style else styling.right_style named_page(style_check) } left_page_img := { page_script( if is_spot() then "name and type page" else if is_reversed() then styling.right_style else styling.left_style, color: (if left_name() then card.card_color_2 else card.card_color), side: "left" ) } right_page_img := { page_script( if is_spot() then "none" else if is_reversed() then styling.left_style else styling.right_style, color: (if right_name() then (if left_name() then card.card_color_3 else card.card_color_2) else card.card_color), side: "right" ) } page_1_side := { ## the main text of the card ## two pages, gone ## left side page, on the right ## right side page or no pages, on the left if left_name() and right_name() then "none" else if left_name() then "right" else "left" } page_2_side := { ## the adventure text of the card ## two pages, left (check reverse) ## left side page, left ## right side page, right ## no pages, gone if left_name() and right_name() then if is_reversed() then "right" else "left" else if left_name() then "left" else if right_name() then "right" else "none" } page_3_side := { ## the second adventure text of the card ## two pages, right (check reverse) ## else, gone if left_name() and right_name() then if is_reversed() then "left" else "right" else if left_name() == right_name() then if is_reversed() then "left" else "right" else "none" } reverser := ["left":"right", "right":"left"] page_style := { str := if input == "none" then "" else if is_reversed() then styling[reverser[input] + "_style"] else styling[input + "_style"] if is_spot() then "double" else if contains(str, match:"type") then "double" else if contains(str, match:"name") then "single" else "null" } page_flat := { str := if input == "none" then "" else if is_reversed() then styling[reverser[input] + "_style"] else styling[input + "_style"] if is_spot() then false else contains(str, match:"flat") } page_1_flat := {page_flat(page_1_side())} page_2_flat := {page_flat(page_2_side())} page_3_flat := {page_flat(page_3_side())} page_top := [ "double": 375, "single": 358, "null": 332 ] page_1_top := {page_top[page_style(page_1_side())]} page_2_top := {page_top[page_style(page_2_side())]} page_3_top := {page_top[page_style(page_3_side())]} page_coords := [ "left": [ "page": 18, "name_left": 32, "name_right": 178, "cost": 180, "type": 32, "text": 27, "decoration": 0, "flavor bar": 10, "watermark": 20, "spot_watermark": 30 ], "right": [ "page": 188, "name_left": 197, "name_right": 28, "cost": 345, "type": 197, "text": 190, "decoration": 175, "flavor bar": 175 "watermark": 188, "spot_watermark": 195 ], "none": [ "page": 500, "name_left": 500, "name_right": -10, "cost": 500, "type": 500, "text": 500, "decoration": 500, "flavor bar": 500 "watermark": 500, "spot_watermark": 500 ] ] no_divider := {chosen(styling.other_options, choice:"no flat page divider")} custom_border_image := { src := styling.custom_border_source ps := split_text(src, match:"-color-") if length(ps) > 1 then "/magic-mainframe-extras.mse-include/" + ps[0] + input + (if land then "l" else "") + ps[1] else "/magic-mainframe-extras.mse-include/" + src } custom_border_blend := { color_background(type:"custom_border", base_hybrid:card_hybrid, folder:"blend_masks/") } is_custom_border := { if chosen(styling.frames, choice:"custom border") then has_png(styling.custom_border_source) else auto_custom_border() } # this goes at the very end harder_script := [ crown: module_crown_template, custom_border: custom_border_image, decoration: page_decoration_template alt_nyx: alt_nyx_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: text name: chop main description: Format as "X,Y". Shrinks main textbox X pixels from the top and Y from bottom. styling field: type: text name: chop adventure description: Format as "X,Y". Shrinks adventure textbox X pixels from the top and Y from bottom. styling field: type: text name: shrink name text description: Format as "X,Y". Shrinks main name X pixels and adventure name Y pixels. styling field: type: text name: shrink typeline text description: Format as "X,Y". Shrinks main type X pixels and adventure type Y pixels. styling field: type: multiple choice name: frames description: Frames to use. Higher choices may override lower choices. choice: Spotlight choice: Reversed choice: nyx choice: vehicle choice: snow choice: universes beyond 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 on the main card. choice: nyx choice: vehicle choice: snow choice: universes beyond initial: nyx, vehicle, snow, universes beyond styling field: type: multiple choice name: other options description: Other options for the frame choice: godzilla style alias choice: pokemon evobar choice: prerelease stamp choice: no flat page divider styling field: type: choice name: left style description: Choose the type of the page section. choice: name and type page choice: name page choice: blank page choice: name and type flat choice: name flat choice: none initial: name and type page styling field: type: choice name: right style description: Choose the type of the page section. choice: name and type page choice: name page choice: blank page choice: name and type flat choice: name flat choice: none initial: blank page styling field: type: text name: page decoration description: Image link from magic-mainframe-extras to layer over the adventure. Add ";color" for color dependent or ";pt" for pt dependent. 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/crowns/styling_fields include file: /magic-modules.mse-include/rarities/styling_fields 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: custom name 2 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 2 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: 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 description: When to center text (short text only means only on one-line cards with no flavor text) choice: always choice: short text only choice: never initial: never styling field: type: boolean name: promo description: Is this card a promo card, with the "P" rarity? initial: no styling field: type: boolean name: inverted common symbol description: Should the common rarity symbol be inverted, like in Coldsnap? initial: no styling field: type: package choice name: overlay description: Should there be an overlay applied, such as foil? match: magic-overlay-*.mse-include required: false styling style: use guild mana symbols: choice images: yes: /magic-mana-small.mse-symbol-font/mana_guild_rg.png no: /magic-mana-small.mse-symbol-font/mana_rg.png tap symbol: render style: both choice images: modern: /magic-mana-large.mse-symbol-font/mana_t.png old: /magic-mana-large.mse-symbol-font/mana_t_old.png diagonal T: /magic-mana-large.mse-symbol-font/mana_t_older.png center text: render style: both choice images: always: /magic.mse-game/icons/center-all-text.png short text only: /magic.mse-game/icons/center-short-text.png never: /magic.mse-game/icons/center-no-text.png inverted common symbol: choice images: no: { symbol_variation(symbol: set.symbol, variation: "common") } yes: { symbol_variation(symbol: set.symbol, variation: "invertedcommon") } frames: render style: checklist direction: vertical 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/card-symbols/card_fields include file: /magic-modules.mse-include/crowns/card_fields include file: /magic-modules.mse-include/stamps/card_fields include file: /magic-modules.mse-include/information/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_spot() then "spot_" else "") + (if is_legend() then "crown" else "border") + "_mask" + (if not is_spot() and card.border_color == rgb(200,200,200) then "_silver") + ".png"} card color: left: 0 top: 0 width: 375 height: 523 z index: -1 render style: image popup style: in place image: { if is_spot() then spot_background() else if is_beyond() then beyond_background() else module_card() } card color 2: left: {if is_spot() then 21 else page_coords[page_2_side()]["page"]} top: {if is_spot() then 319 else 327} width: 170 height: {if is_spot() then 170 else 156.5} z index: 1 render style: image popup style: in place image: { if is_spot() then spot_page_background() else if left_name() then left_page_img() else right_page_img() } card color 3: left: {page_coords[page_3_side()]["page"]} top: 327 width: 170 height: 156.5 z index: 1 render style: image image: {right_page_img()} visible: {left_name() and right_name()} ############################# Name line name: left: { (if is_spot() then 22 else 0) + (if card.card_symbol=="none" then 32 else 50) } top: {30 + name_font_vertical()} right: { 341 - card_style.casting_cost.content_width } height: { 23 - 0.5*shrink_name() } alignment: bottom shrink-overflow padding bottom: 0 z index: 1 font: name: { name_font() } italic name: { name_font_italic() } size: { name_font_size() } color: { name_font_color() } name 2: left: { page_coords[page_2_side()]["name_left"] } top: { (if is_spot() or not page_2_flat() then 330 else 328) + (if is_spot() then 2 else 0)+ name2_font_vertical()} right: { page_coords[page_2_side()]["name_right"] - card_style.casting_cost_2.content_width } height: { 20 - shrink_name2() } alignment: bottom shrink-overflow z index: 2 font: name: { name2_font() } italic name: { name2_font_italic() } size: { name2_font_size() } color: { name2_font_color() } name 3: left: { page_coords[page_3_side()]["name_left"] } top: { (if is_spot() or not page_3_flat() then 330 else 328) + (if is_spot() then 2 else 0)+ name2_font_vertical()} right: { page_coords[page_3_side()]["name_right"] - card_style.casting_cost_3.content_width } height: {if page_style(page_3_side()) == "null" then 0 else 20 - shrink_name2() } alignment: bottom shrink-overflow z index: 2 font: name: { name2_font() } italic name: { name2_font_italic() } size: { name2_font_size() } color: { name2_font_color() } alias: left: {if is_skinned() then 45 else 33} top: 53 width: {if is_skinned() then 285 else if use_evobar() then max(100, card_style.alias.content_width) else 0} height: 20 alignment: { (if is_skinned() then "center") + "bottom shrink-overflow"} padding bottom: 0 z index: 880 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: 346 top: 29 width: { 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: 2 padding top: 0 casting cost 2: right: {page_coords[page_2_side()]["cost"]} top: { if is_spot() then 330 else if page_2_flat() then 328 else 329} width: { max(30, card_style.casting_cost_2.content_width) + 5 } height: 23 alignment: middle right symbol font: name: magic-mana-large size: 12 alignment: middle right always symbol: true z index: 2 padding top: 0 casting cost 3: right: {page_coords[page_3_side()]["cost"]} top: { if is_spot() then 330 else if page_3_flat() then 328 else 329} width: { max(30, card_style.casting_cost_3.content_width) + 5 } height: {if page_style(page_3_side()) == "null" then 0 else 23} alignment: middle right symbol font: name: magic-mana-large size: 12 alignment: middle right always symbol: true z index: 2 padding top: 0 ############################# Image image: left: {if is_spot() then 10 else 29} top: {if is_spot() then 13 else 59} width: { if is_spot() then 354 else 316} height: { if is_spot() then 298 else 231} z index: 1 default: {default_image(card.card_color)} mask: { if is_spot() then "imagemask.png" else ""} ############################# Card type indicator: left: { if is_spot() then 80 else 31 } top: { if is_spot() then 303 else 300 } width: 17 height: 17 z index: 1 render style: image visible: { has_identity() } image: { module_identity() } type: left: { (if is_spot() then 50 else 0) + (if has_identity() then (if is_spot() then 50 else 52) else 32) } top: { shrink_type() + type_font_vertical() + if is_spot() then 298 else 296} width: { (if has_identity() then "290" else "310") - rare_width() - (if is_spot() then 73 else 0) } height: { 20 - shrink_type() } alignment: { if is_spot() then "top center shrink-overflow" else "top shrink-overflow"} z index: 1 padding top: 2 font: name: { type_font() } italic name: { type_font_italic() } size: { type_font_size() } color: { type_font_color() } separator color: red indicator 2: left: {(if is_reversed() then 165 else 0) + (if has_identity_2() then 30 else 0)} top: {355 + (if is_spot() then 2 else 0) } width: 15 height: 15 z index: 2 render style: image visible: {has_identity_2()} image: {module_identity()} type 2: left: {page_coords[page_2_side()]["type"] + (if has_identity_2() then 20 else 0)} top: {shrink_type2() + (if is_spot() or not page_2_flat() then 353 else 352)} width: {155 - (if has_identity_2() then 20 else 0)} height: { if page_style(page_2_side()) == "double" then 20 - shrink_type2() else 0} alignment: top shrink-overflow z index: 1 padding top: 2 font: name: { type2_font() } italic name: { type2_font_italic() } size: { type2_font_size() } color: { type2_font_color() } separator color: red type 3: left: {page_coords[page_3_side()]["type"] + (if has_identity_2() then 20 else 0)} top: {shrink_type2() + (if is_spot() or not page_3_flat() then 353 else 352)} width: {155 - (if has_identity_2() then 20 else 0)} height: { if page_style(page_3_side()) == "double" then 20 - shrink_type2() else 0 } alignment: top shrink-overflow z index: 1 padding top: 2 font: name: { type2_font() } italic name: { type2_font_italic() } size: { type2_font_size() } color: { type2_font_color() } separator color: red rarity: right: { if is_spot() then 342 else 344} top: { if is_spot() then 299 else 297} width: { if is_spot() then 22 else 44} height: 22 z index: 2 render style: image alignment: { if is_spot() then "middle center" else "middle right"} include file: /magic-modules.mse-include/rarities/choice_images ############################# Text box text: left: {page_coords[page_1_side()]["text"]} top: { (if is_spot() then 335 else page_1_top()) + to_int(chop_top()) + body_font_vertical() } width: {if is_spot() then 157 else if page_style(page_1_side()) == "null" then 157 else 143} bottom: { (if is_spot() then 464 else 481) - to_int(chop_bot()) } 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: 13 alignment: script: if (styling.center_text == "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 == "always" then "middle center" else "middle left" z index: 3 padding left: 6 padding right: 4 line height hard: {if is_modal(card.rule_text) then 0.9 else 1.2 } line height line: 1.5 line height soft: 0.9 line height hard max: {if is_modal(card.rule_text) then 1.0 else 1.3 } line height line max: 1.6 text 2: left: {page_coords[page_2_side()]["text"]} top: { page_2_top() + to_int(back_chop_top()) + body_font_vertical()} width: {if is_spot() then 157 else if page_style(page_1_side()) == "null" then 157 else 143} bottom: { (if is_spot() then 464 else 481) - to_int(back_chop_bot()) } 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: 14 alignment: script: if (styling.center_text == "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 == "always" then "middle center" else "middle left" z index: 3 padding left: 6 padding right: 4 line height hard: {if is_modal(card.rule_text_2) then 0.9 else 1.2 } line height line: 1.5 line height soft: 0.9 line height hard max: {if is_modal(card.rule_text_2) then 1.0 else 1.3 } line height line max: 1.6 text 3: left: {page_coords[page_3_side()]["text"]} top: { page_3_top() + to_int(chop_top()) + body_font_vertical() } width: {if page_style(page_1_side()) == "null" then 157 else 143} bottom: { (if is_spot() then 464 else 481) - to_int(chop_bot()) } 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: 13 alignment: script: if (styling.center_text == "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 == "always" then "middle center" else "middle left" z index: 3 padding left: 6 padding right: 4 line height hard: {if is_modal(card.rule_text) then 0.9 else 1.2 } line height line: 1.5 line height soft: 0.9 line height hard max: {if is_modal(card.rule_text) then 1.0 else 1.3 } line height line max: 1.6 watermark: left: { page_coords[page_1_side()][(if is_spot() then "spot_watermark" else "watermark")] } top: { if is_spot() then 330 else page_1_top() } width: { if is_spot() then 150 else 168} bottom: {if is_spot() then 470 else 481} z index: 2 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: { min(page_coords[page_2_side()][(if is_spot() then "spot_watermark" else "watermark")], page_coords[page_3_side()][(if is_spot() then "spot_watermark" else "watermark")]) } top: { page_2_top() } width: { if is_spot() then 154 else 167} bottom: {if is_spot() then 470 else 481} z index: 2 render style: image popup style: in place alignment: middle center include file: /magic.mse-game/watermarks/menu_choice_images image: { watermark_image_2() } watermark 3: left: { page_coords[page_3_side()][(if is_spot() then "spot_watermark" else "watermark")] } top: { if is_spot() then 330 else page_3_top() } width: { if is_spot() then 154 else 167} bottom: {if is_spot() then 470 else 481} z index: 2 render style: image popup style: in place alignment: middle center include file: /magic.mse-game/watermarks/menu_choice_images image: { watermark_image_3() } ############################# PT pt: z index: 4 left: { if is_spot() then 293 else 286} top: {(if is_spot() then 466 else 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: color page script: card.card_color save value: false editable: false extra card field: type: choice name: backup page script: card.card_color save value: false editable: false extra card field: type: text name: promo label editable: true save value: true extra card field: type: choice name: left decoration script: card.card_color_2 save value: false editable: false extra card field: type: choice name: right decoration script: if left_name() then card.card_color_3 else card.card_color_2 save value: false editable: false extra card field: type: choice name: binding script: card.card_color 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: choice name: pt box script: card.card_color editable: false save value: false extra card field: type: choice name: stamp script: card.card_color editable: false save value: false extra card field: type: choice name: foil layer choice: foil save value: false editable: false extra card field: type: choice name: flavor bar choice: bar editable: false save value: false show statistics: false extra card field: type: choice name: flavor bar 2 choice: bar editable: false save value: false show statistics: false extra card field: type: choice name: crown choice: crown editable: false save value: false show statistics: false script: card.card_color extra card field: type: choice name: snow overlay choice: overlay editable: false save value: false show statistics: false script: card.card_color extra card field: type: choice name: vehicle overlay choice: overlay editable: false save value: false show statistics: false extra card field: type: choice name: custom overlay choice: car door save value: false editable: false extra card field: type: choice name: nyx overlay choice: overlay editable: false save value: false show statistics: false script: card.card_color extra card field: type: choice name: evobar tip choice: evo save value: false editable: false extra card field: type: choice name: evobar start choice: evo save value: false editable: false extra card field: type: choice name: evobar choice: evo 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: text name: promo label save value: true description: The golden promo label. extra card style: color page: left: {page_coords[page_1_side()]["page"]} top: 327 width: 170 height: 156.5 z index: 1 render style: image image: {if not left_name() then left_page_img() else right_page_img()} visible: {not (left_name() and right_name())} backup page: left: {page_coords[page_3_side()]["page"]} top: 327 width: 170 height: 156.5 z index: 1 render style: image image: {right_page_img()} visible: {not left_name() and not right_name()} binding: left: {if (styling.left_style == "none" and not is_reversed()) or (styling.right_style == "none" and is_reversed()) then 188 else 28 } top: 326 width: {if styling.left_style == "none" or styling.right_style == "none" then 160 else 321} height:{if is_spot() then 0 else 10} render style: image z index: -1 image: {binding_background()} visible: {not (styling.left_style == "none" and styling.right_style == "none")} promo label: left: {if is_spot() then 65 else 40} top: 262 width: {if chosen(styling.other_options, choice:"prerelease stamp") then (if is_spot() then 245 else 295) else 0} height: 29 alignment: middle right z index: 4 font: name: ModMatrix size: 14 color: rgb(223,169,41) pt box: left: {if is_spot() then 290 else 273} top: {if is_spot() then 460 else 466} width: {if is_spot() then 68 else 81} height: { if is_spot() then 38 else 42} z index: 1 visible: { card.pt != "" } render style: image image: { if is_spot() then spot_pt() else module_ptbox(vehicle:is_vehicle()) } stamp: left: 159 top: 471 width: 56 height: 26 z index: 5 render style: image image: { if stamp_shape() == "triangle" then module_ubstamp() else module_stamp() } mask: { if is_spot() and stamp_shape() != "triangle" then "spotmask.jpg" else ""} visible: { card.card_stamp != "none" } 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"} mask: { if is_rare() then "foil_mask_rare.png" else "foil_mask.png" } flavor bar: left: { page_coords[page_1_side()]["flavor bar"]} top: { bar_equation() } width: 188 height: 1 z index: 1 render style: image image: bar.png visible: { card.rule_text != "" and remove_tags(card.flavor_text) != "" and set.use_flavor_bar } flavor bar 2: left: {page_coords[page_2_side()]["flavor bar"]} top: { bar_equation2() } width: 188 height: 1 z index: 1 render style: image image: bar.png visible: { card.rule_text_2 != "" and remove_tags(card.flavor_text_2) != "" and set.use_flavor_bar } vehicle overlay: left: 0 top: 0 width: 375 height: 523 render style: image image: { "/magic-modules.mse-include/trims/" + (if is_beyond() then "beyond/vbeyond.png" else "vehicle.png") } mask: {"/magic-modules.mse-include/trims/375x523 trim mask.png"} z index: 0 visible: {is_vehicle()} custom overlay: left: 0 top: 0 width: 375 height: 523 render style: image image: { custom_border_blend() } z index: 0 visible: {is_custom_border()} mask: {(if is_vehicle() or is_snow() or is_nyx() then "double_") + "frame_border_mask.png"} nyx overlay: left: 0 top: 0 width: 375 height: 523 render style: image image: {module_nyx()} z index: 0 visible: {is_nyx()} mask: {"/magic-modules.mse-include/trims/375x523 " + (if is_snow() or is_vehicle() then "double" else "") + "trim mask.png"} snow overlay: left: 0 top: 0 width: 375 height: 523 render style: image image: {module_snow()} z index: 0 visible: {is_snow()} mask: {"/magic-modules.mse-include/trims/375x523 trim mask.png"} evobar: left: 27 top: 57 width: {card_style.alias.content_width} height: 27 z index: 2 render style: image image: /magic-modules.mse-include/extras/evobar.png visible: {use_evobar()} evobar tip: left: {26.6 + card_style.alias.content_width} top: 57 width: 36 height: 27 z index: 2 render style: image image: /magic-modules.mse-include/extras/evobar_tip.png visible: {use_evobar()} alias bar: left: 38 top: 57 width: 298 height: 21 z index: 2 render style: image image: {module_alias()} visible: {is_skinned() and not use_evobar()} vorthos box: right: { if card.pt != "" then 275 else 350 } top: 488 left: 210 height: 10 z index: 900 alignment: middle right font: name: Relay-Medium size: 7 color: white weight: bold left decoration: left: {page_coords["left"]["decoration"]} top: 293 width: 200 height: 230 z index: 4 render style: image image: {decoration_background()} visible: {left_name()} right decoration: left: {page_coords["right"]["decoration"]} top: 293 width: 200 height: 230 z index: 4 render style: image image: {decoration_background()} visible: {right_name()}