mse version: 2.0.0 game: magic short name: EMN Meld (3-in-1) full name: M15 Style Meld cards (3-in-1) icon: card-sample.png position hint: 066 installer group: magic/m15 style/double faced version: 2024-06-07 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 card width: 568 card height: 523 card dpi: 150 card region: name: minifront x: 0 y: 0 height: 261 width: 188 card region: name: meldpair x: 0 y: 263 height: 261 width: 188 card region: name: meld x: 193 y: 0 width: 375 height: 523 card region: name: front x: 0 y: 0 width: 375 height: 523 card region: name: meldback x: 193 y: 0 width: 375 height: 523 ############################################################## 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: "" 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/" identity: "/magic-modules.mse-include/indicators/" ] 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" then "c" else input) + "l" + template_suffix[type] } # Use land templates for previews because they show more contrast hybrid_previews := "land,hybrid" # This will create two seperate card faces card_background2 := { color_background(type:"card2", base_hybrid:card_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 } typesymbol_for := { "none" } # Is the card a promo card? is_promo := { styling.promo } # Is the second card face a creature? has_pt_2 := { card.power_2 != "" or card.toughness_2 != "" } card_shape := { "double faced" } faces_coordinates := { if styling.three_cards then [ [ left: 0, top: 0, width: 188, height: 261 ], [ left: 0, top: 263, width: 188, height: 261 ], [ left: 193, top: 0, width: 375, height: 523 ] ] else [ [ left: 0, top: 0, width: 375, height: 523 ], [ left: 193, top: 0, width: 375, height: 523 ] ] } watermark_include := "/magic-modules.mse-include/watermarks" is_unsorted := {styling.remove_from_autocount} transform_symbol_default := { stylesheet if margin_code == "transform1" then "meld" else if margin_code == "transform2" then "meld" else "eldrazi" } card_symbol_left := { map := face_coordinates_map(face) has_tr := (transform_symbol_field(face) != "none") has_sym := (card_symbol_field(face) != "none") default := if not has_sym then 0 else if has_tr then 9 + 18 + 28 else if has_sym then 9 + 18 else 0 if map.width > map.height then map.left + default * map.width/523 + offset else map.left + default * map.width/375 + offset } card_stamp_default := { shape := styling.default_stamp or else set.default_stamp stamp_behavior := styling.stamp_behavior or else set.stamp_behavior if stamp_behavior == "default" or stamp_behavior == "flatstamped default" then stamp_behavior := set.stamp_behavior if field > 2 then "none" #### backface doesn't have it by default else stamp_behavior_checks[stamp_behavior](rare_face:is_rare(field:field), shape:shape) }@(field:1) ############################################################## 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: boolean name: remove from autocount description: Removes the automatic card number for specific cards, to allow for overcounted cards like in Planeswalker Decks. initial: no styling field: type: boolean name: three cards description: Display both meld cards? (Default yes) initial: yes 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") } ############################################################## Card fields include file: /magic-modules.mse-include/corners/card_fields_tfc include file: /magic-modules.mse-include/information/card_fields_tfc include file: /magic-modules.mse-include/card-symbols/card_fields_tfc include file: /magic-modules.mse-include/symbols/card_fields_tfc include file: /magic-modules.mse-include/stamps/card_fields_tfc include file: /magic-modules.mse-include/stamps/stamp_back_tfc include file: /magic-modules.mse-include/rarities/card_fields_tfc include file: /magic-modules.mse-include/watermarks/card_fields_tfc include file: /magic-modules.mse-include/separators/card_fields_tfc card style: ############################# Background stuff card color: left: 0 top: {if styling.three_cards == "yes" then -1 else 0} width: {if styling.three_cards == "yes" then 188 else 375} height: {if styling.three_cards == "yes" then 262 else 523} z index: 10 render style: image popup style: in place image: { card_background() } mask: cornermask.png card color 2: left: 0 top: 263 width: 188 height: 262 z index: 0 render style: image popup style: in place image: { card_background() } visible: { styling.three_cards } ############################# Name line name: left: {if styling.three_cards == "yes" then (if card.card_symbol == "none" then 30 else 40) else if card.card_symbol == "none" then 58 else 79} top: {if styling.three_cards == "yes" then 14 else 30} right: {if styling.three_cards == "yes" then 170 - card_style.casting_cost.content_width else 341 - card_style.casting_cost.content_width} height: {if styling.three_cards == "yes" then 12 else 24} alignment: bottom shrink-overflow padding bottom: 0 z index: 900 font: name: Beleren Bold size: {if styling.three_cards == "yes" then 8 else 16} color: black name 2: left: {if styling.three_cards == "yes" then (if card.card_symbol_2 == "none" then 30 else 40) else if card.card_symbol_2 == "none" then 58 else 79} top: 277 right: { 170- card_style.casting_cost_2.content_width } height: 12 alignment: bottom shrink-overflow padding bottom: 0 z index: 900 font: name: Beleren Bold size: 8 color: black visible: { styling.three_cards } name 3: left: { if card.card_symbol_3 == "none" then 255 else 275 } top: 30 right: 534 height: 23 alignment: bottom shrink-overflow padding bottom: 0 z index: 900 font: name: Beleren Bold size: 16 color: black casting cost: right: {if styling.three_cards == "yes" then 173 else 346} top: {if styling.three_cards == "yes" then 14 else 28} width: { max(if styling.three_cards == "yes" then 15 else 30, card_style.casting_cost.content_width) + if styling.three_cards == "yes" then 3 else 5} height: {if styling.three_cards == "yes" then 12 else 23} alignment: middle right font: name: MPlantin size: {if styling.three_cards == "yes" then 7.5 else 15} symbol font: name: magic-mana-large size: {if styling.three_cards == "yes" then 7.5 else 15} alignment: middle right always symbol: true z index: 920 padding top: 0 casting cost 2: right: 173 top: 276 width: { max(15, card_style.casting_cost_2.content_width) + 3 } height: 12 alignment: middle right symbol font: name: magic-mana-large size: 7.5 alignment: middle right always symbol: true z index: 920 padding top: 0 visible: { styling.three_cards } type symbol: left: {if styling.three_cards == "yes" then 9 else 19} top: {if styling.three_cards == "yes" then 11 else 25} height: { if card.type_symbol == "none" then if styling.three_cards == "yes" then 8 else 16 else if styling.three_cards == "yes" then 16 else 31} width: {if card.type_symbol == "none" then if styling.three_cards == "yes" then 8 else 16 else if styling.three_cards == "yes" then 16 else 31 } z index: 11 render style: image choice images: artifact: artifact.png test: border_mask.png creature: creature.png enchantment: enchantment.png instant: instant.png land: land.png multitype: multitype.png sorcery: sorcery.png planeswalker: planeswalker.png structure: structure.png type symbol 2: left: 9 top: 275 height: { if card.type_symbol_2 == "none" then 8 else 16 } width: {if card.type_symbol_2 == "none" then 8 else 16 } z index: 1 render style: image choice images: artifact: artifact.png creature: creature.png enchantment: enchantment.png instant: instant.png land: land.png multitype: multitype.png sorcery: sorcery.png planeswalker: planeswalker.png structure: structure.png visible: { styling.three_cards } type symbol 3: left: 212 top: 25 height: 31 width: 31 z index: 3 render style: image choice images: artifact: artifact.png creature: creature.png enchantment: enchantment.png instant: instant.png land: land.png multitype: multitype.png sorcery: sorcery.png planeswalker: planeswalker.png structure: structure.png ############################# Image image: left: {if styling.three_cards == "yes" then 15 else 29} top: {if styling.three_cards == "yes" then 29 else 60} width: {if styling.three_cards == "yes" then 158 else 316} height: {if styling.three_cards == "yes" then 115 else 231} z index: 11 default: {default_image(card.card_color)} image 2: left: 15 top: 293 width: 158 height: 115 z index: 1 default: {default_image(card.card_color)} visible: { styling.three_cards } ############################# Card type type: left: { if styling.three_cards == "yes" then if has_identity() then 26 else 16 else if has_identity() then 52 else 32} top: { if styling.three_cards == "yes" then 147 else 296} width: { (if has_identity() then if styling.three_cards == "yes" then "145" else "155" else if styling.three_cards == "yes" then 290 else 145) - max(if styling.three_cards == "yes" then 11 else 22,card_style.rarity.content_width) } height: { if styling.three_cards == "yes" then 10 else 20} alignment: top shrink-overflow z index: 900 padding top: 1 font: name: Beleren Bold size: {if styling.three_cards == "yes" then 6.5 else 13} color: black separator color: red type 2: left: { if has_identity_2() then "26" else "16" } top: 411 width: { (if has_identity_2() then "145" else "155") - max(11,card_style.rarity.content_width) } height: 10 alignment: top shrink-overflow z index: 900 padding top: 1 font: name: Beleren Bold size: 6.5 color: black separator color: red visible: { styling.three_cards } type 3: left: 227 top: 298 width: { 307 - max(22,card_style.rarity.content_width) } height: 20 alignment: top shrink-overflow z index: 900 padding top: 2 font: name: Beleren Bold size: 13 color: black separator color: rgb(128,128,128) indicator: left: {if styling.three_cards == "yes" then 15 else 31} top: {if styling.three_cards == "yes" then 150 else 300} width: {if styling.three_cards == "yes" then 8 else 17} height: {if styling.three_cards == "yes" then 8 else 17} z index: 800 render style: image visible: { has_identity() } image: { module_identity() } indicator 2: left: 15 top: 412 width: 8 height: 8 z index: 800 render style: image visible: { has_identity_2() and styling.three_cards == "yes"} image: { module_identity() } ############################# Text box text: left: {if styling.three_cards == "yes" then 15 else 31 } top: {if styling.three_cards == "yes" then 163 else 328 } width: {if styling.three_cards == "yes" then 157 else 311 } height: {if styling.three_cards == "yes" then 76 else 142 } font: name: MPlantin italic name: MPlantin-Italic size: {if styling.three_cards == "yes" then 7 else 14 } scale down to: 6 color: black symbol font: name: { styling.text_box_mana_symbols } size: {if styling.three_cards == "yes" then 7 else 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: 900 padding left: {if styling.three_cards == "yes" then 3 else 6} padding right: {if styling.three_cards == "yes" then 2 else 4} line height hard: 1.2 line height line: {if styling.three_cards == "yes" then 1.2 else 1.5} line height soft: {if styling.three_cards == "yes" then 0.75 else 0.9 } line height hard max: {if styling.three_cards == "yes" then 0.65 else 1.3 } line height line max: {if styling.three_cards == "yes" then 0.2 else 1.6 } text 2: left: 15 top: 425 width: 157 height: 76 font: name: MPlantin italic name: MPlantin-Italic size: 7 scale down to: 3 color: black symbol font: name: { styling.text_box_mana_symbols } size: 7 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: 900 padding left: 3 padding right: 2 line height hard: 1.2 line height line: 1.2 line height soft: 0.75 line height hard max: 0.65 line height line max: 0.2 visible: { styling.three_cards } text 3: left: 224 top : 328 width: 311 height: 142 font: name: MPlantin italic name: MPlantin-Italic size: 14 scale down to: 6 color: black 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: 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 ############################# PT pt: z index: 900 left: {if styling.three_cards == "yes" then 143 else 286} top: {if styling.three_cards == "yes" then 237 else 469} width: {if styling.three_cards == "yes" then 30 else 60} height: {if styling.three_cards == "yes" then 14 else 28} alignment: center middle shrink-overflow font: name: Beleren Bold size: {if styling.three_cards == "yes" then 8 else 16 } color: black separator color: red pt 2: z index: 900 left: 143 top: 498 width: 30 height: 14 alignment: center middle shrink-overflow font: name: Beleren Bold size: 8 color: black separator color: red visible: { styling.three_cards } pt 3: z index: 900 left: 479 top: 469 width: 60 height: 28 alignment: center middle shrink-overflow font: name: Beleren Bold size: 16 color: black separator color: red ############################# Card sorting / numbering set code: left: {if styling.three_cards == "yes" then 12 else 24} top: {if styling.three_cards == "yes" then 249 else 498} width: {if styling.three_cards == "yes" then 20 else 40} height: {if styling.three_cards == "yes" then 5 else 10} z index: 11 font: name: Relay-Medium size: {if styling.three_cards == "yes" then 3.5 else 7} color: white weight: bold set code 2: left: 12 top: 512 width: 20 height: 5 z index: 1 font: name: Relay-Medium size: 3.5 color: white weight: bold visible: { styling.three_cards } set code 3: left: 217 top: 498 width: 40 height: 10 z index: 2 font: name: Relay-Medium size: 7 color: white weight: bold ############################################################## Extra card fields extra card field: type: choice name: foil layer choice: foil save value: false editable: false extra card field: type: choice name: foil layer 2 choice: foil save value: false editable: false extra card field: type: choice name: foil layer 3 choice: foil save value: false editable: false extra card field: type: text name: pt 3 copy script: card.pt_3 editable: false save value: false extra card field: type: text name: pt 3 copy 2 script: card.pt_3 editable: false save value: false 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: pt box 3 script: "pt" editable: false save value: false ################################# Meld Card Fields extra card field: type: choice name: frame script: "frame" editable: false save value: false extra card field: type: image name: meld image editable: true save value: true description: The image of the card extra card field: type: choice name: change focus choice: name: Focus on front choice: name: Focus on meld editable: false save value: false ################################# extra card style: ################################# Meld Card Styles change focus: left: { if styling.three_cards == "yes" then -600 else 0 } top: { if styling.three_cards == "yes" then -600 else 0 } width: 568 height: 523 z index: 9 frame: left: 193 top: 0 width: 375 height: 523 z index: 1 render style: image image: frame.png meld image: left: 193 top: 0 width: 375 height: 523 z index: 0 mask: imagemask.png ################################# foil layer: left: 0 top: {if styling.three_cards == "yes" then -1 else 0} width: {if styling.three_cards == "yes" then 188 else 375} height: {if styling.three_cards == "yes" then 262 else 523} z index: 1050 render style: image image: {if styling.overlay == "" then nil else styling.overlay + "/overlay.png"} mask: { "foil_mask" + ( if is_rare() then "_rare" else "" ) + ( if has_pt() then "_pt" else "" ) + ".png" } foil layer 2: left: 0 top: 263 width: 188 height: 262 z index: 1050 render style: image image: {if styling.overlay == "" then nil else styling.overlay + "/overlay.png"} mask: { "foil_mask" + ( if has_pt_2() then "_pt" else "" ) + ".png" } visible: { styling.three_cards } pt 3 copy: z index: 900 left: {if styling.three_cards == "yes" then 156 else 311} top: {if styling.three_cards == "yes" then 223 else 447} width: {if styling.three_cards == "yes" then 15 else 30} height: {if styling.three_cards == "yes" then 6 else 12} alignment: bottom right font: name: ModMatrix size: {if styling.three_cards == "yes" then 6 else 12} weight: bold color: grey separator color: red pt 3 copy 2: z index: 900 left: 156 top: 488 width: 15 height: 6 alignment: bottom right font: name: ModMatrix size: 6 weight: bold color: grey separator color: red visible: { styling.three_cards } pt box: left: {if styling.three_cards == "yes" then 136 else 273} top: {if styling.three_cards == "yes" then 235 else 466} width: {if styling.three_cards == "yes" then 40.5 else 81} height: {if styling.three_cards == "yes" then 21 else 42} z index: 840 visible: { card.pt != "" } render style: image image: { card_ptbox() } pt box 2: left: 136 top: 496 width: 40.5 height: 21 z index: 840 visible: { card.pt_2 != "" and styling.three_cards == "yes"} render style: image image: { card_ptbox() } pt box 3: left: 464 top: 466 width: 81 height: 42 z index: 840 visible: { card.pt_3 != "" } render style: image image: { template_prefix["pt"] + "cpt.png" }