mse version: 2.5.0 game: magic short name: M15 Extra full name: M15 with Extra Features icon: card-sample.png installer group: magic/m15 style/normal cards/with extra features position hint: 050 version: 2024-06-06 depends on: package: magic.mse-game version: 2015-04-08 depends on: package: magic-default-image.mse-include version: 2007-09-23 depends on: package: magic-mana-large-extra-m15.mse-symbol-font version: 2014-03-11 depends on: package: magic-mana-small-extra-m15.mse-symbol-font version: 2014-03-11 depends on: package: magic-pt-symbols-extra-m15.mse-symbol-font version: 2014-03-20 depends on: package: magic-modules.mse-include version: 2024-10-01 card width: 375 card height: 523 card dpi: 150 ############################################################## Extra scripts init script: # Load scripts that are redefined from the game file include file: game_scripts # Load scripts that are redefined from the blends package include file: blends_scripts # Load scripts for image box include file: /magic-default-image.mse-include/scripts # Load font profiles include file: font_new include file: font_phyrexian include file: font_old include file: font_m15 # Should hybrids have a grey name? mask_hybrid_with_land := { contains(styling.regular_options, match:"grey hybrid names") } #Should multicolor lands with basic land types have a colored name? mask_multi_land_with_color := { contains(styling.regular_options, match:"colored multicolor land names") } template_prefix := [ card: "" pt: "" stamp: "stamps/" ubstamp: "ubstamps/" identity: "" ] template_suffix := [ card: "card.jpg" pt: "pt.png" stamp: "stamp.png" ubstamp: "stamp.png" identity: "identity.png" ] template := { template_prefix[type] + input + template_suffix[type] } land_template := { template_prefix[type] + (if input == "a" or input == "s" then "c" else input) + "l" + template_suffix[type] } # Use land templates for previews because they show more contrast hybrid_previews := "land,hybrid" card_ubstamp := { color_background(type:"ubstamp", base_hybrid:stamp_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 := { contains(styling.regular_options, match:"guild mana symbols") } # Filter to commas, so they can be counted to see if field is complete comma_count := filter_text@(match:",") # Interpret the font profile choice. font_profile := { if styling.font_style == "Phyrexian" then "phyrexian" else if styling.font_style == "Before 8th Edition" then "old" else if styling.font_style == "After 8th Edition" then "new" else "m15" } font_field := { if font_profile() == "new" then ( if field == "name" then font_name_new[value] else if field == "type" then font_type_new[value] else if field == "text" then font_text_new[value] else if field == "pt" then font_pt_new[value] else font_pt_new[value] ) else if font_profile() == "phyrexian" then ( if field == "name" then font_name_phyrexian[value] else if field == "type" then font_type_phyrexian[value] else if field == "text" then font_text_phyrexian[value] else if field == "pt" then font_pt_phyrexian[value] else font_pt_phyrexian[value] ) else if font_profile() == "old" then ( if field == "name" then font_name_old[value] else if field == "type" then font_type_old[value] else if field == "text" then font_text_old[value] else if field == "pt" then font_pt_old[value] else font_pt_old[value] )else( if field == "name" then font_name_m15[value] else if field == "type" then font_type_m15[value] else if field == "text" then font_text_m15[value] else if field == "pt" then font_pt_m15[value] else font_pt_m15[value] ) } # Is the card a promo card? is_promo := { styling.promo } is_unsorted := { contains(styling.regular_options, match:"remove from autocount") } chop_top := {if comma_count(styling.chop_text) == ",," then split_text(match:",", styling.chop_text).0 else "0"} chop_bot := {if comma_count(styling.chop_text) == ",," then split_text(match:",", styling.chop_text).1 else "0"} ############################################################## 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 text description: Shrinks the textbox, formatted as "top,bottom". This must end in a comma. styling field: type: choice name: font style description: Which font style should be used? choice: After Magic 2015 choice: After 8th Edition choice: Before 8th Edition choice: Phyrexian initial: After Magic 2015 styling field: type: multiple choice name: regular options description: Which regular styling options would you like to use? choice: center text choice: colored multicolor land names choice: grey hybrid names choice: guild mana symbols choice: promo rarity choice: inverted common symbol choice: remove from autocount initial: colored multicolor land names, grey hybrid names, holofoil stamped rares styling field: type: multiple choice name: extras description: Which extra options would you like to use? choice: pichoro's alchemist watermark choice: alpha style dual lands choice: card creator credit field choice: takeabow's clock watermark choice: advent's colored xyz mana choice: circeus' colorless-colored hybrid choice: anuttymous' frost effect choice: holiday promo text choice: dark nova's runes choice: lesurgo's spell-land hybrid choice: circeus' tinged artifact hybrid choice: type symbol with name choice: unsorted casting cost choice: double watermarks 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-extra-m15.mse-symbol-font styling field: type: package choice name: pt box symbols match: magic-pt-symbols-*.mse-symbol-font initial: magic-pt-symbols-extra.mse-symbol-font 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: outer color description: Should the outside of the frame be a special color? choice: default choice: white choice: blue choice: black choice: red choice: green choice: purple choice: pink choice: artifact choice: snow choice: multicolor choice: spectral choice: colorless styling field: type: choice name: trim color description: Should the trim of the frame be a special color? choice: default choice: white choice: blue choice: black choice: red choice: green choice: purple choice: pink choice: artifact choice: snow choice: multicolor choice: spectral choice: colorless styling field: type: choice name: inner color description: Should the inside of the frame be a special color? choice: default choice: white choice: blue choice: black choice: red choice: green choice: purple choice: pink choice: artifact choice: snow choice: multicolor choice: spectral choice: colorless 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 style: tap symbol: render style: both choice images: modern: /magic-mana-large-extra-m15.mse-symbol-font/mana_t.png old: /magic-mana-large-extra-m15.mse-symbol-font/mana_t_old.png diagonal T: /magic-mana-large-extra-m15.mse-symbol-font/mana_t_older.png regular options: render style: checklist direction: vertical extras: render style: checklist direction: vertical ############################################################## Card fields include file: /magic-modules.mse-include/information/card_fields include file: /magic-modules.mse-include/corners/card_fields include file: /magic-modules.mse-include/stamps/card_fields card style: border color: left: 0 top : 0 width: 375 height: 523 left width: 17 right width: 17 top width: 17 bottom width: 18 z index: 4 mask: border_mask.png ############################# Background stuff ############################# Name line name: left: { if card.card_symbol=="none" and (card.type_symbol=="none" or not contains(styling.extras, match:"type symbol with name")) then 32 else if card.card_symbol == "none" then 49 else if card.type_symbol == "none" or ( not contains(styling.extras, match:"type symbol with name")) then 49 else 67} top: { font_field(field: "name", value: "top")} right: { 341 - card_style.casting_cost.content_width } height: 23 alignment: bottom shrink-overflow padding bottom: 0 z index: 1 font: name: { font_field(field: "name", value: "name")} size: { font_field(field: "name", value: "size")} weight: { font_field(field: "name", value: "weight")} color: black 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-extra-m15 size: 15 alignment: middle right always symbol: true z index: 2 padding top: 0 card symbol: left: {if card.card_symbol == "none" then 20 else if card.type_symbol == "none" or not contains(styling.extras, match:"type symbol with name") then 26 else 50} top: 29 height: 21 width: 23 z index: 1 render style: image include file: /magic.mse-game/card-symbols/menu_choice_images image: { card_symbol_image(face: 1) } type symbol: left: {if card.type_symbol == "none" or not contains(styling.extras, match:"type symbol with name") then 18 else 27} top: {if card.type_symbol == "none" or not contains(styling.extras, match:"type symbol with name") then 20 else 30} width: 21 height: 20 z index: 5 render style: image alignment: middle center visible: { contains(styling.extras, match:"type symbol with name") } choice images: artifact: type-symbols/artifact_black.png creature: type-symbols/creature_black.png enchantment: type-symbols/enchantment_black.png instant: type-symbols/instant_black.png land: type-symbols/land_black.png multitype: type-symbols/multitype_black.png sorcery: type-symbols/sorcery_black.png planeswalker: type-symbols/planeswalker_black.png structure: type-symbols/structure_black.png ############################# Image image: left: 29 top: 59 width: 316 height: 231 z index: 1 default: {default_image(card.card_color)} image 2: left: {if comma_count(styling.popout_image_style) == ",,,," then split_text(match:",", styling.popout_image_style).0 else "0"} top: {if comma_count(styling.popout_image_style) == ",,,," then split_text(match:",", styling.popout_image_style).1 else "0"} width: {if comma_count(styling.popout_image_style) == ",,,," then split_text(match:",", styling.popout_image_style).2 else "0"} height: {if comma_count(styling.popout_image_style) == ",,,," then split_text(match:",", styling.popout_image_style).3 else "0"} z index: 1010 ############################# Card type type: left: { if has_identity() then "52" else "32" } top: { font_field(field: "type", value: "top")} width: { (if has_identity() then "290" else "310") - max(22,card_style.rarity.content_width) } height: 20 alignment: top shrink-overflow z index: 2 padding top: 2 font: name: { font_field(field: "type", value: "name")} size: { font_field(field: "type", value: "size")} weight: { font_field(field: "type", value: "weight")} color: black separator color: red rarity: right: 344 top: 297 width: 44 height: 22 z index: 2 render style: image alignment: middle right include file: /magic-modules.mse-include/rarities/choice_images ############################# Text box text: left: 29 top: { 327 - (-chop_top()) } width: 314 bottom: { 481 - chop_bot() } font: name: { font_field(field: "text", value: "name")} italic name: { font_field(field: "text", value: "italic")} size: { font_field(field: "text", value: "size")} weight: { font_field(field: "text", value: "weight")} scale down to: 6 color: black symbol font: name: { styling.text_box_mana_symbols } size: 14 alignment: script: if contains(styling.regular_options, match:"center text") then "middle center" else "middle left" z index: 2 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 ############################# PT pt: z index: 2 left: 286 top: 469 width: 60 height: 28 alignment: center middle shrink-overflow font: name: { font_field(field: "pt", value: "name")} size: { font_field(field: "pt", value: "size")} weight: { font_field(field: "pt", value: "weight")} color: black separator color: red symbol font: name: {styling.pt_box_symbols} size: 8 alignment: middle right ############################################################## Extra card fields extra card field: type: multiple choice name: stamp empty choice: colorless choice: white choice: blue choice: black choice: red choice: green choice: purple choice: name: pink line below: true choice: artifact choice: snow choice: land choice: multicolor choice: spectral choice: name: hybrid line below: true choice: name: horizontal type: radio choice: name: vertical type: radio choice: name: radial type: radio choice: name: diagonal type: radio choice: name: overlay type: radio choice: name: reversed script: card_color_filter(value) default: card_color(casting_cost: card.casting_cost, rules_text: card.rule_text, type: card.super_type, watermark: card.watermark, card_name: card.name) extra card field: type: multiple choice name: pt box empty choice: colorless choice: white choice: blue choice: black choice: red choice: green choice: purple choice: name: pink line below: true choice: artifact choice: snow choice: land choice: multicolor choice: spectral choice: name: hybrid line below: true choice: name: horizontal type: radio choice: name: vertical type: radio choice: name: radial type: radio choice: name: diagonal type: radio choice: name: overlay type: radio choice: name: reversed script: card_color_filter(value) default: card_color(casting_cost: card.casting_cost, rules_text: card.rule_text, type: card.super_type, watermark: card.watermark, card_name: card.name) extra card field: type: choice name: foil layer choice: foil save value: false editable: false extra card field: type: choice name: emblem include file: watermarks/watermark-names extra card field: type: choice name: emblem 2 include file: watermarks/watermark-names extra card field: type: text name: creator computer save value: false editable: false show statistics: false script: ":" extra card field: type: text name: creator save value: true show statistics: false editable: true extra card field: type: text name: promo label save value: true description: The golden promo label. extra card field: type: multiple choice name: frame empty choice: colorless choice: white choice: blue choice: black choice: red choice: green choice: purple choice: name: pink line below: true choice: artifact choice: snow choice: land choice: multicolor choice: spectral choice: name: hybrid line below: true choice: name: horizontal type: radio choice: name: vertical type: radio choice: name: radial type: radio choice: name: diagonal type: radio choice: name: overlay type: radio choice: name: reversed script: card_color_filter(value) default: card_color(casting_cost: card.casting_cost, rules_text: card.rule_text, type: card.super_type, watermark: card.watermark, card_name: card.name) extra card field: type: multiple choice name: extra indicator empty choice: colorless choice: white choice: blue choice: black choice: red choice: green choice: purple choice: name: pink line below: true choice: artifact choice: snow choice: land choice: multicolor choice: spectral choice: name: hybrid line below: true choice: name: horizontal type: radio choice: name: vertical type: radio choice: name: radial type: radio choice: name: diagonal type: radio choice: name: overlay type: radio choice: name: reversed script: card_color_filter(value) default: extra_card.frame extra card field: type: choice name: clock watermark save value: false editable: false script: "clock" extra card field: type: choice name: alchemist watermark save value: false editable: false script: "alchemy" extra card field: type: choice name: frost effect save value: false editable: false script: "frost" extra card field: type: choice name: runes save value: false editable: false script: "runes" extra card field: type: choice name: flavor bar choice: bar editable: false save value: false show statistics: false extra card style: stamp: left: 159 top: 471 width: 56 height: 26 z index: 1 visible: { card.card_stamp != "none" and not card_stamp_disabled_1() } render style: image image: { if stamp_shape() == "triangle" then card_ubstamp() else card_stamp() } pt box: left: 273 top: 466 width: 81 height: 42 z index: 1 visible: { card.pt != "" } render style: image image: { card_ptbox() } 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_stamped() then "masks/foil_mask_rare.png" else "masks/foil_mask.png" } emblem: left: { if contains(styling.extras, match:"double watermarks") then 48 else 117 } top: 321 width: 138 height: 166 z index: 1 render style: image popup style: in place alignment: middle center include file: watermarks/watermarks emblem 2: left: { if contains(styling.extras, match:"double watermarks") then 186 else 500 } top: 321 width: 138 height: 166 z index: 1 render style: image popup style: in place alignment: middle center include file: watermarks/watermarks creator computer: left: { 48 + card_style.set_code.content_width + card_style.illustrator.content_width } top: 497.5 width: 10 height: 10 z index: 1 visible: { contains(styling.extras, match:"card creator credit field") } font: name: Wingdings size: 8.5 weight: bold color: white creator: left: { 62 + card_style.set_code.content_width + card_style.illustrator.content_width } top: 497.5 width: 100 height: 10 z index: 1 visible: { contains(styling.extras, match:"card creator credit field") } font: name: Beleren Small Caps Bold size: 7.5 color: white promo label: left: 40 top: 262 width: 295 height: 29 alignment: middle right z index: 4 font: name: { if contains(styling.extras, match:"holiday promo text") then "MagicMedieval" else "ModMatrix" } size: 14 color: { if contains(styling.extras, match:"holiday promo text") then rgb(217,0,0) else rgb(223,169,41) } frame: left: 0 top: 0 width: 375 height: 523 z index: 0 render style: image popup style: in place image: { card_background() } clock watermark: left: 28 top: 326 width: 318 height: 157 z index: 4 render style: image image: clock_watermark.png visible: { contains(styling.extras, match: "clock watermark") } mask: { if is_rare() and contains(styling.regular_options, match:"holofoil stamped rares") then "masks/mask_fullsize_watermarks.png" else nil } alchemist watermark: left: 28 top: 326 width: 318 height: 157 z index: 4 render style: image image: alchemy_watermark.png visible: { contains(styling.extras, match: "alchemist watermark") } mask: { if is_rare() and contains(styling.regular_options, match:"holofoil stamped rares") then "masks/mask_fullsize_watermarks.png" else nil } frost effect: left: 0 top: 0 width: 375 height: 523 z index: 4 render style: image image: frost.png visible: { contains(styling.extras, match: "frost effect") } runes: left: 0 top: 0 width: 375 height: 523 z index: 4 render style: image image: runes.png visible: { contains(styling.extras, match: "runes") } mask: masks/rune_mask.png flavor bar: left: 0 top: { bar_equation() } width: 375 height: 1 z index: 3 render style: image image: bar.png visible: { card.rule_text != "" and remove_tags(card.flavor_text) != "" and set.use_flavor_bar } extra indicator: left: 31 top: 300 width: 17 height: 17 z index: 2 render style: image visible: { has_identity() } image: { card_identity() }