mse version: 2.1.2 game: magic short name: Full Art full name: w/ basic land symbol icon: card_sample.png position hint: 020 version: 2023-08-15 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 ### blanks by GenevensiS ### code by GenevensiS ### made from magic-744-60-full-art.mse-style ############################################################## Extra scripts init script: swap_fonts_pt_default := [ name: {"Beleren Bold"}, size: {16.0}, color: {"black"}, vertical: {0}, italic: {"Beleren Bold"} ] swap_fonts_body_default := [ name: {"MPlantin"}, size: {14.0}, color: {"white"}, vertical: {0}, italic: {"MPlantin-Italic"} ] swap_fonts_type_default := [ name: {"Beleren Bold"}, size: {13.0}, color: {"black"}, vertical: {0}, italic: {""} ] swap_fonts_name_default := [ name: {"Beleren Bold"}, size: {16.0}, color: {"black"}, vertical: {0}, italic: {""} ] swap_fonts_name2_default := [ name: {"MPlantin-Italic"}, size: {9.0}, color: {"white"}, vertical: {0}, italic: {"MPlantin-Italic"} ] swap_fonts_name2_src := { styling.custom_alias_font or else "" } template_prefix := [ crown: "crown/", identity: "/magic-modules.mse-include/indicators/" pt: "pt/", basicsymbol: "basicsymbol/", name: "name/", type: "type/", basictype: "basictype/", pinline: "pinline/", ] template_suffix := [ crown: "crown.png", identity: "identity.png" pt: "pt.png", basicsymbol: "basicsymbol.png", name: "name.png", type: "type.png", basictype: "basictype.png", pinline: "pinline.png", ] template := { if is_basic_symboled() then ( if is_plains(card.sub_type) then template_prefix[type] + "w" + template_suffix[type] else if is_island(card.sub_type) then template_prefix[type] + "u" + template_suffix[type] else if is_swamp(card.sub_type) then template_prefix[type] + "b" + template_suffix[type] else if is_mountain(card.sub_type) then template_prefix[type] + "r" + template_suffix[type] else if is_forest(card.sub_type) then template_prefix[type] + "g" + template_suffix[type] else template_prefix[type] + input + template_suffix[type] ) else template_prefix[type] + input + template_suffix[type] } land_template := { if is_basic_symboled() then ( if is_plains(card.sub_type) then template_prefix[type] + "w" + template_suffix[type] else if is_island(card.sub_type) then template_prefix[type] + "u" + template_suffix[type] else if is_swamp(card.sub_type) then template_prefix[type] + "b" + template_suffix[type] else if is_mountain(card.sub_type) then template_prefix[type] + "r" + template_suffix[type] else if is_forest(card.sub_type) then template_prefix[type] + "g" + template_suffix[type] else template_prefix[type] + input + template_suffix[type] ) else template_prefix[type] + (if input == "a" then "c" else input) + template_suffix[type] } card_crown := { color_background(input: card.card_color, type: "crown", base_hybrid: card_hybrid) }@(offset:0 ) card_ptbox := { color_background(input: card.card_color, type: "pt", base_hybrid: card_hybrid) }@(offset:0 ) card_basicsymbol := { color_background(input: card.card_color, type: "basicsymbol", base_hybrid: card_hybrid) }@(offset:0 ) card_name := { color_background(input: card.card_color, type: "name", base_hybrid: card_hybrid) }@(offset:0 ) card_type := { color_background(input: card.card_color, type: if is_basic_symboled() then "basictype" else "type", base_hybrid: card_hybrid) }@(offset:0 ) card_pinline := { color_background(input: card.card_color, type: "pinline", base_hybrid: card_hybrid) }@(offset:0 ) card_stampholofoil := { if card.card_stamp == "none" then "" else "holofoil/" + card.card_stamp + (if is_foil_stamped() then "" else "_void") + ".png" } pure_colors := { sort_text( order: if card_is_wedge(input) then "(wbgur)" else "(wubrg)", (if chosen(card.card_color, choice:"white") then "w") + (if chosen(card.card_color, choice:"blue") then "u") + (if chosen(card.card_color, choice:"black") then "b") + (if chosen(card.card_color, choice:"red") then "r") + (if chosen(card.card_color, choice:"green") then "g") ) } mana_t := { if styling.tap_symbol == "old" then "old" else if styling.tap_symbol == "diagonal T" then "older" else "new" } guild_mana := { styling.use_guild_mana_symbols } ancestral_mana := { styling.use_ancestral_mana_symbols } is_land := lang_setting("is_land") is_basic := lang_setting("is_basic") is_plains := lang_setting("is_plains") is_island := lang_setting("is_island") is_swamp := lang_setting("is_swamp") is_mountain := lang_setting("is_mountain") is_forest := lang_setting("is_forest") is_wastes := lang_setting("is_wastes") is_basic_symboled := { styling.basic_land_symbol and is_basic(card.super_type) and is_land(card.super_type) and ( is_plains(card.sub_type) or is_island(card.sub_type) or is_swamp(card.sub_type) or is_mountain(card.sub_type) or is_forest(card.sub_type) or is_wastes(card.name) ) } is_promo := { styling.promo } is_unsorted := { styling.remove_from_autocount } is_aliased := { card.alias != "" } is_crowned := { styling.legend_crown == "yes" or (styling.legend_crown == "if legendary" and contains(card.super_type, match:"Legendary")) } is_pinlined := { styling.pinlines } is_backdrop := { styling.pinlines or styling.smaller_backdrop } chop_top := { split := split_comma(styling.chop_textbox); if length(split) > 0 and split.0 != "" and split.0 != "-" then clamp(to_int(split.0), minimum: -300, maximum: 250) else 0 } chop_bottom := { split := split_comma(styling.chop_textbox); if length(split) > 1 and split.1 != "" and split.1 != "-" then clamp(to_int(split.1), minimum: -300, maximum: 250) else 0 } chop_right := { split := split_comma(styling.chop_textbox); if length(split) > 2 and split.2 != "" and split.2 != "-" then clamp(to_int(split.2), minimum: -300, maximum: 250) else 0 } use_main_rarity := { contains(set.mainframe_rarity_name, match: ".png") } rarity_right := { split := split_comma(styling.rarity_coordinates); if length(split) > 0 and split.0 != "" then clamp(split.0, minimum: 0, maximum: 800) else 344 } rarity_top := { split := split_comma(styling.rarity_coordinates); if length(split) > 1 and split.1 != "" then clamp(split.1, minimum: 0, maximum: 1100) else 445 } rarity_size := { split := split_comma(styling.rarity_coordinates); if length(split) > 2 and split.2 != "" then clamp(split.2, minimum: 0, maximum: 1100) else 22 } rarity_left := { rarity_right() - rarity_size() } popout_left := { split := split_comma(styling.popout_art_coordinates); if length(split) > 3 and split.0 != "" then clamp(split.0, minimum: -300, maximum: 400) else 0 } popout_top := { split := split_comma(styling.popout_art_coordinates); if length(split) > 3 and split.1 != "" then clamp(split.1, minimum: -300, maximum: 550) else 0 } popout_width := { split := split_comma(styling.popout_art_coordinates); if length(split) > 3 and split.2 != "" then clamp(split.2, minimum: 0, maximum: 800) else 0 } popout_height := { split := split_comma(styling.popout_art_coordinates); if length(split) > 3 and split.3 != "" then clamp(split.3, minimum: 0, maximum: 1000) else 0 } get_alpha := { alpha_value := if input == "" then default else to_number(input) or else default if alpha_value < 0 then 0.0 else if alpha_value <= 100 then alpha_value/100.0 else 1.0 } textbox_left := { if is_backdrop() then 25 else 0 } textbox_width := { if is_backdrop() then 325 else 375 } textbox_height := { if is_backdrop() then 442 else 523 } textbox_image := { set_alpha(recolor_image("textbox.png", color: styling.textbox_color), alpha: get_alpha(styling.textbox_opacity_percentage, default: 0)) } textbox_mask := { mask := if not styling.rounded_textbox or styling.border == "no" then "mask_textbox_flat.png" else if styling.border == "yes" then "mask_textbox.png" else "mask_textbox_borderless.png" crop_safe(mask, offset_x: textbox_left(), offset_y: 300 - chop_top(), width: textbox_width(), height: textbox_height(), max_x:375, max_y:1123) } pinline_mask := { base := if is_pinlined() then "mask_pinline_extended.png" else "mask_pinline.png" if is_crowned() then combine_blend(image1: "mask_shadow_crown.png", image2: base, combine: "multiply") else base } ############################################################## 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: popout art coordinates description: The coordinates for the popout image field, formatted as "left,top,width,height". Used to make the illustration jump in front of the frame. styling field: type: boolean name: stretch art to whole card description: Make the image span the whole card instead of just the visible part. Use this to help make popout effects. initial: no styling field: type: text name: chop textbox description: Formatted as "X,Y,Z". Shrinks textbox X pixels from the top, Y from the bottom, and Z from the right. styling field: type: choice name: center rule text description: When to center text (short text means only on one-line cards with no flavor text) choice: always choice: short text only choice: never initial: never styling field: type: color name: textbox color description: Use the specified color for the textbox background. choice: name: black color: rgb(0,0,0) choice: name: white color: rgb(255,255,255) initial: black styling field: type: text name: textbox opacity percentage description: Set the opacity percentage for the textbox background. Opaque is 100, transparent is 0, default is 0. styling field: type: boolean name: rounded textbox description: Should the textbox background have rounded corners? initial: yes styling field: type: choice name: PT color scheme description: Use the selected color scheme for the PT box on two color cards choice: gold choice: hybrid choice: blend initial: gold styling field: type: choice name: legend crown description: Use the legend crown? choice: yes choice: if legendary choice: no initial: if legendary styling field: type: boolean name: pinlines description: Use pinlines on the side? initial: no styling field: type: boolean name: smaller backdrop description: Use the smaller backdrop without pinlines? initial: no styling field: type: boolean name: basic land symbol description: Use a special symbol if the card is a basic land? initial: yes styling field: type: choice name: border description: Use a border? choice: yes choice: only copyright choice: no initial: only copyright 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: boolean name: inverted common symbol description: Should the common rarity symbol be inverted, like in Coldsnap? initial: no styling field: type: text name: alt rarity color description: Use a custom color for the rarity symbol. Formatted as "R1,G1,B1:R2,G2,B2:..." 1 and 2 are fill color, 3 and 4 border color styling field: type: text name: rarity coordinates description: The coordinates for the set symbol, formatted as "right,top,size". Default is 344,445,22. 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: promo description: Is this card a promo card, with the "P" rarity? initial: no styling field: type: color name: copyright text color description: Color of the copyright, illustrator, and set code text. choice: white choice: black initial: white allow custom: true styling field: type: boolean name: use ancestral mana symbols description: Enables ancestral's modified generic mana. initial: no 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? choice: modern choice: old choice: diagonal T initial: modern styling field: type: package choice name: casting cost mana symbols description: Symbols used in the casting cost. match: magic-mana-*.mse-symbol-font initial: magic-mana-large.mse-symbol-font styling field: type: package choice name: text box mana symbols description: Symbols used in the rule text and flavor text. match: magic-mana-*.mse-symbol-font initial: magic-mana-small.mse-symbol-font include file: /magic-modules.mse-include/fonts/styling_fields styling field: type: text name: custom alias 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 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 rule 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/separators/card_fields include file: /magic-modules.mse-include/stamps/card_fields card style: ############################# Background stuff border color: left: 0 top : 0 width: 375 height: 523 z index: 110 visible: { styling.border != "no" } mask: { if styling.border == "yes" then "mask_background_border.png" else "mask_background_borderless_border.png" } card color: left: 0 top: 0 width: 375 height: 523 z index: 0 popup style: in place render style: image mask: { if is_pinlined() then "mask_card_color_pinline.png" else "mask_card_color.png" } ############################# Name line name: left: 32 top: 27 right: { 343 - (if card_style.casting_cost.content_width == 0 then 0 else card_style.casting_cost.content_width + 3) } height: 26 z index: 900 alignment: middle left shrink-overflow font: name: { name_font() } italic name: { name_font_italic() } size: { name_font_size() } scale down to: 7 color: { name_font_color() } casting cost: right: 346 top: 28 width: { max(35, card_style.casting_cost.content_width + 6) } height: 26 z index: 920 alignment: middle right always symbol: true font: name: MPlantin italic name: { name_font_italic() } size: { name_font_size() } scale down to: 7 color: { name_font_color() } symbol font: name: { styling.casting_cost_mana_symbols } size: { name_font_size() } scale down to: 7 alias: left: 54 top: 58 right: 321 height: 15 z index: 900 alignment: middle center shrink-overflow font: name: { name2_font() } italic name: { name2_font_italic() } size: { name2_font_size() } scale down to: 5 color: { name2_font_color() } weight: bold ############################# Image image: left: { if styling.stretch_art_to_whole_card then 0 else if styling.border != "yes" then 0 else 15 } top: { if styling.stretch_art_to_whole_card then 0 else if styling.border != "yes" then 0 else 15 } width: { if styling.stretch_art_to_whole_card then 375 else if styling.border != "yes" then 375 else 345 } bottom: { if styling.stretch_art_to_whole_card then 524 else if styling.border != "no" then 480 else 524 } z index: 100 mainframe image: left: { popout_left() } top: { popout_top() } width: { popout_width() } height: { popout_height() } z index: 1010 ############################# Card type indicator: left: { if is_basic_symboled() then 71 else 31 } top: 448 width: 17 height: 17 z index: 940 visible: { has_identity() } render style: image image: { module_identity() } type: left: { if has_identity() then (if is_basic_symboled() then 92 else 52) else (if is_basic_symboled() then 70 else 32) } top: 443 right: { if set.shorten_types_for_rarity then clamp(rarity_left()-3, minimum: 200, maximum: 343) else 343 } height: 27 z index: 1000 alignment: middle left shrink-overflow font: name: { type_font() } italic name: { type_font_italic() } size: { type_font_size() } scale down to: 7 color: { type_font_color() } separator color: red rarity: right: { rarity_right() } top: { rarity_top() } width: { 44 } height: { rarity_size() } z index: 1010 alignment: middle right render style: image include file: /magic-modules.mse-include/rarities/choice_images ############################# Text box text: left: 33 top: { 315 + chop_top() } right: { 341 - chop_right() } bottom: { 435 - chop_bottom() } z index: 1000 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 alignment: script: if (styling.center_rule_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_rule_text == "always" then "middle center" else "middle left" font: name: { body_font() } italic name: { body_font_italic() } size: { body_font_size() } scale down to: 7 color: { body_font_color() } symbol font: name: { styling.text_box_mana_symbols } size: { body_font_size() } scale down to: 7 watermark: left: 10 top: { 315 + chop_top() } right: 355 bottom: 437 z index: 600 render style: image popup style: in place alignment: middle center include file: /magic.mse-game/watermarks/menu_choice_images image: { watermark_image_1() } ############################# PT pt: left: 299 top: 410 width: 47 height: 27 z index: 1000 alignment: center middle shrink-overflow font: name: { pt_font() } italic name: { pt_font_italic() } size: { pt_font_size() } scale down to: 7 color: { pt_font_color() } separator color: red ############################################################## Extra card fields extra card field: type: choice name: card shadow script: card.card_color editable: false save value: false show statistics: false extra card field: type: choice name: pinline script: card.card_color editable: false save value: false show statistics: false extra card field: type: choice name: basic land pinline script: card.card_color editable: false save value: false show statistics: false extra card field: type: choice name: basic land symbol script: card.card_color editable: false save value: false show statistics: false extra card field: type: choice name: name box script: card.card_color editable: false save value: false show statistics: false extra card field: type: choice name: alias box script: card.card_color editable: false save value: false show statistics: false extra card field: type: choice name: alias shadow script: card.card_color editable: false save value: false show statistics: false extra card field: type: color name: alias border script: rgb(0, 0, 0) editable: false save value: false show statistics: false extra card field: type: choice name: type box script: card.card_color editable: false save value: false show statistics: false extra card field: type: choice name: text box script: card.card_color editable: false save value: false show statistics: false extra card field: type: choice name: pt box script: card.card_color editable: false save value: false show statistics: false extra card field: type: choice name: pt shadow editable: false save value: false show statistics: false choice: pt shadow extra card field: type: choice name: crown script: card.card_color editable: false save value: false show statistics: false extra card field: type: choice name: crown shadow editable: false save value: false show statistics: false choice: crown shadow extra card field: type: choice name: card stamp rim script: card.card_color editable: false save value: false show statistics: false extra card field: type: color name: card stamp background border script: card.border_color editable: false save value: false show statistics: false extra card field: type: choice name: card stamp shadow script: card.card_color editable: false save value: false show statistics: false extra card field: type: choice name: foil layer editable: false save value: false show statistics: false choice: foil layer extra card field: type: color name: corners script: rgb(255, 255, 255) editable: false save value: false show statistics: false extra card style: card shadow: left: 0 top: 0 width: 375 height: 523 z index: 300 render style: image image: { "shadow_card" + (if is_basic_symboled() then "_basic" else "") + (if is_pinlined() then "_pinline" else "") + ".png" } mask: { if is_crowned() then "mask_shadow_crown.png" else "" } pinline: left: 0 top: 0 width: 375 height: 523 z index: 310 render style: image image: { card_pinline() } mask: { pinline_mask() } basic land pinline: left: 0 top: 0 width: 375 height: 523 z index: 310 render style: image image: { if is_basic_symboled() then card_pinline() else "" } mask: mask_pinline_basic_land.png basic land symbol: left: 0 top: 0 width: 375 height: 523 z index: 500 render style: image image: { if is_basic_symboled() then card_basicsymbol() else "" } name box: left: 0 top: 0 width: 375 height: 523 z index: 500 render style: image image: { card_name() } mask: mask_name.png alias box: left: 0 top: 0 width: 375 height: 523 z index: 500 visible: { card.alias != "" } render style: image image: { card_pinline() } mask: mask_alias.png alias shadow: left: 0 top: 0 width: 375 height: 523 z index: 300 visible: { card.alias != "" } render style: image image: shadow_alias.png alias border: left: 0 top: 0 width: 375 height: 523 z index: 510 visible: { card.alias != "" } mask: mask_alias_border.png type box: left: 0 top: 0 width: 375 height: 523 z index: 500 render style: image image: { card_type() } mask: mask_type.png text box: left: { textbox_left() } top: 0 width: { textbox_width() } height: { textbox_height() } z index: 105 render style: image image: { textbox_image() } mask: { textbox_mask() } pt box: left: 0 top: 0 width: 375 height: 523 z index: 810 visible: { card.pt != "" } render style: image image: script: pure := pure_colors() count := length(pure) if styling.PT_color_scheme == "gold" and count > 1 then template("m", type: "pt") else if styling.PT_color_scheme == "hybrid" and count == 2 then masked_blend(mask: "special_blend_pt.png", dark: template(pure.0, type: "pt"), light: template(pure.1, type: "pt")) else card_ptbox() #mask: mask_pt.png pt shadow: left: 0 top: 0 width: 375 height: 523 z index: 800 visible: { card.pt != "" } render style: image image: pt/shadow.png crown: left: 0 top: 0 width: 375 height: 523 z index: 420 visible: { is_crowned() } render style: image image: { card_crown() } mask: { if is_pinlined() then "mask_crown_pinlines.png" else "mask_crown.png" } crown shadow: left: 0 top: 0 width: 375 height: 523 z index: 410 visible: { is_crowned() } render style: image image: { if is_pinlined() then "shadow_crown_pinline.png" else "shadow_crown.png" } card stamp rim: left: 0 top: 0 width: 375 height: 523 z index: 310 visible: { is_stamped() } render style: image image: { card_pinline() } mask: { if card.card_stamp == "universes beyond" then "mask_stamp_rim_triangle.png" else "mask_stamp_rim.png" } card stamp background border: left: 0 top: 0 width: 375 height: 523 z index: 110 visible: { styling.border != "no" and is_stamped() } mask: { if card.card_stamp == "universes beyond" then "mask_stamp_background_border_triangle.png" else "mask_stamp_background_border.png" } card stamp shadow: left: 0 top: 0 width: 375 height: 523 z index: 300 visible: { is_stamped() } render style: image image: { if card.card_stamp == "universes beyond" then "shadow_stamp_pinline_triangle.png" else "shadow_stamp_pinline.png" } foil layer: left: 0 top : 0 width: 375 height: 523 z index: 3000 visible: { styling.overlay != "none" and styling.overlay != "" } render style: image image: { if styling.overlay == "" then "" else styling.overlay + "/overlay.png" }