mse version: 2.0.0 game: magic short name: Monster Manual full name: DND Showcase icon: card-sample.png installer group: magic/m15 style/normal cards position hint: 095 version: 2024-09-01 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: 2007-09-23 card width: 375 card height: 523 card dpi: 150 ####### images from Card Conjurer ############################################################## 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:"splashes/" identity: "/magic-modules.mse-include/indicators/"] template_suffix := [card:".jpg" stamp: "stamp.jpg" identity: "identity.png"] template := { template_prefix[type] + input + template_suffix[type] } land_template := { template_prefix[type] + (if input == "a" then "c" else input) + template_suffix[type] } # Use land templates for previews because they show more contrast hybrid_previews := "land,hybrid" crown_background := { color_background(type:"crown", 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 } # Is the card a promo card? is_promo := { styling.promo } is_legend := {set.auto_legends and lang_setting("is_legendary")(card.super_type) } mana_sort := { if styling.unsorted_casting_cost then input else sort_text@(order: "XYZI[0123456789]HSCA(WUBRG)")() } ancestral_mana := { styling.ancestral_mana_symbols } watermark_include := "/magic-modules.mse-include/watermarks" is_unsorted := {styling.remove_from_autocount} chop_top := {to_number(pull_comma_array(styling.text_chops, cell:0, end:false))} chop_bot := {to_number(pull_comma_array(styling.text_chops, cell:1, end:false))} chop_correction := { chop_bot() } shrink_type := {if styling.shrink_typeline_text != "" then to_number(styling.shrink_typeline_text) else 0} shrink_name := {if styling.shrink_name_text != "" then to_number(styling.shrink_name_text) else 0} is_d20 := {styling.d20_dividers != "off"} is_all_break := {contains(styling.d20_dividers, match:"all breaks")} d20string := "^()?((()?[-0-9 ,+>\<]()?)+|[Ee]lse|[Oo]ther) ?()?[|]" d20_array := filter_text@(match:"(\n|"+d20string+")") +split_text@(match:d20string) number_of_rolls := {if is_all_break() then 1+length(filter_text(card.rule_text, match:"\n"))-rolls_start(card.text) else length(d20_array(input))-1} rolls_start := { if styling.d20_dividers == "all breaks +3" then 4 else if styling.d20_dividers == "all breaks +2" then 3 else if styling.d20_dividers == "all breaks +1" then 2 else if styling.d20_dividers == "all breaks" then 0 else if is_d20() then length(d20_array(input).0) else 0 } d20_filter := replace@(match:"^([Ee]lse ?|[Oo]ther ?|(()?[-0-9 ,+>\<]()?)+)[|]", replace:"\\1|") top_of_para := { input := input + no_roll(card.text) if card_style.text.layout.paragraphs[input].top or else 0 > 0 then card_style.text.top + card_style.text.layout.paragraphs[input].top - 0.5*(card_style.text.layout.paragraphs[input].top-card_style.text.layout.paragraphs[input-1].bottom) else 0 } height_of_para := { input := input + no_roll(card.text) if card_style.text.layout.paragraphs[input].bottom or else 0 > 0 then card_style.text.layout.paragraphs[input].bottom + 1.3*(card_style.text.layout.paragraphs[input].top-card_style.text.layout.paragraphs[input-1].bottom) - card_style.text.layout.paragraphs[input].top else 0 } no_roll := {if styling.d20_dividers == "all breaks" then 1 else if rolls_start(input) == 0 then 1 else 0} text_filter := text_filter + d20_filter alias_mask := { alias_src + "masks/remove_color.png" } ############################################################## 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: text chops description: Format as "X,Y". Shrinks textbox X pixels from the top and Y from bottom. styling field: type: text name: shrink name text description: Shrinks name X pixels styling field: type: text name: shrink typeline text description: Shrinks type X pixels styling field: type: boolean name: hover art description: use transparent art with painted background initial: no styling field: type: choice name: d20 dividers choice: d20 mode choice: off choice: all breaks choice: all breaks +1 choice: all breaks +2 choice: all breaks +3 description: Do dice levels normally, off, on all linebreaks, on all but the first linebreak, etc. include file: /magic-modules.mse-include/stamps/styling_fields include file: /magic-modules.mse-include/rarities/styling_fields 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: 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: unsorted casting cost description: Disables automatic mana symbol sorting. initial: no styling field: type: boolean name: ancestral mana symbols description: Enables ancestral's modified generic mana. initial: no 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: masterpiece description: Is this card a Masterpiece? 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 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/stamps/card_fields include file: /magic-modules.mse-include/separators/card_fields include file: /magic-modules.mse-include/alias/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: 3 mask: {if is_legend() then "crown_border.png" else "border_mask.png"} card color: left: 0 top: 0 width: 375 height: 523 z index: 2 render style: image popup style: in place image: frame.png mask: frame_mask.png ############################# Name line name: left: 32 top: 27 right: { 341 - card_style.casting_cost.content_width } height: {23 - 0.5*shrink_name()} alignment: bottom shrink-overflow padding bottom: 0 z index: 3 font: name: Beleren Bold size: {16 - shrink_name()} color: black casting cost: right: 346 top: 26 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: 4 padding top: 0 ############################# Image image: left: 22 top: 56 width: {if styling.hover_art then 0 else 338} height: 240 z index: 1 default: {card_background(card.card_color)} mainframe image: left: 14 top: 35 width: {if styling.hover_art then 347 else 0} height: 276 z index: 4 ############################# Card type indicator: left: 31 top: 300 width: 17 height: 17 z index: 1 render style: image visible: { has_identity() } image: { module_identity() } type: left: { if has_identity() then "46" else "28" } top: {shrink_type() + 299 } width: { (if has_identity() then "290" else "310") - max(22,card_style.rarity.content_width) } height: { 20 - shrink_type() } alignment: top shrink-overflow z index: 2 padding top: 2 font: name: Beleren Bold size: {13 - shrink_type()} color: black separator color: red rarity: right: 344 top: 300 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: {330-(-chop_top())} width: 314 bottom: {481-chop_bot()} 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 scale down to: 6 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: {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: 19 top: 330 width: 334 bottom: 481 z index: 2 alignment: middle center render style: image popup style: in place include file: /magic.mse-game/watermarks/menu_choice_images image: { watermark_image_1() } ############################# PT pt: z index: 4 left: 294 top: 468 width: 55 height: 28 alignment: center middle shrink-overflow font: name: Beleren Bold size: 15 color: black separator color: red ############################################################## 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: foil stamp choice: stamp save value: false editable: false extra card field: type: choice name: foil layer choice: foil save value: false editable: false extra card field: type: choice name: crown choice: overlay editable: false extra card field: type: choice name: color back script: card.card_color editable: false save value: false extra card field: type: choice name: level 2 overlay choice: mask editable: false show statistics: false extra card field: type: choice name: level 3 overlay choice: mask editable: false show statistics: false extra card field: type: choice name: level 4 overlay choice: mask editable: false show statistics: false extra card style: pt box: left: 289 top: 465 width: 65 height: 33 z index: 3 visible: { card.pt != "" } render style: image image: pt.png 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" } foil stamp: left: 165 top: 472 width: 46 height: 26 z index: 850 visible: { card.card_stamp != "none" } render style: image image: { "/magic-modules.mse-include/stamps/backs/" + (if stamp_shape(field:1) == "triangle" then "triangle_stamp.png" else "stamp.png") } crown: left: 0 top: 0 width: 375 height: 61 render style: image image: crown.png z index: 2 visible: {is_legend()} color back: left: 22 top: 56 width: 338 height: 240 z index: 0 render style: image image: {card_background()} level 2 overlay: left: 29 top: { top_of_para(rolls_start(card.text))} height: { height_of_para(rolls_start(card.text))} width: 314 z index: 2 render style: image image: d20slice.png visible: {is_d20() and number_of_rolls(card.text) > 0} level 3 overlay: left: 29 top: { top_of_para(rolls_start(card.text)+2)} height: { height_of_para(rolls_start(card.text)+2)} width: 314 z index: 2 render style: image image: d20slice.png visible: {is_d20() and number_of_rolls(card.text) > 2} level 4 overlay: left: 29 top: { top_of_para(rolls_start(card.text)+4)} height: { height_of_para(rolls_start(card.text)+4)} width: 314 z index: 2 render style: image image: d20slice.png visible: {is_d20() and number_of_rolls(card.text) > 4}