mse version: 2.1.2 game: magic short name: Neon full name: Kamigawa Showcase icon: card_sample.png position hint: 095 version: 2024-09-19 depends on: package: magic.mse-game version: 2014-06-25 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-modules.mse-include version: 2024-10-01 depends on: package: magic-mainframe-extras.mse-include version: 2007-09-23 card width: 750 card height: 1046 card dpi: 300 ### blanks by CardConjurer ### code by cajun ############################################################## Extra scripts init script: swap_fonts_pt_default := [ name: {"Beleren Bold"}, size: {30.0}, color: {"white"}, vertical: {0}, italic: {"Beleren Bold"} ] swap_fonts_body_default := [ name: {"MPlantin"}, size: {28.0}, color: {if mainframe_walker() then "black" else "white"}, vertical: {0}, italic: {"MPlantin-Italic"} ] typeline_offset_width_1 := { -14 } typeline_offset_top_1 := { if is_short() then 143 else 3 } typeline_offset_left_1 := { 16 } indicator_offset_left_1 := { -8 } rarity_offset_top_1 := { 1 } swap_fonts_type_default := [ name: {"Beleren Bold"}, size: {26.0}, color: {"white"}, vertical: {0}, italic: {""} ] transform_symbol_disabled_1 := { true } card_symbol_offset_top_1 := { 1 } casting_cost_offset_top_1 := { 1 } nameline_offset_top_1 := { 4 } nameline_offset_width_1 := { 2 } nameline_offset_left_1 := { -1 } swap_fonts_name_default := [ name: {"Beleren Bold"}, size: {30.0}, color: {"white"}, vertical: {0}, italic: {""} ] card_stamp_offset_left_1 := { 1 } card_stamp_offset_top_1 := { if stamp_shape() == "triangle" then 10 else 0 } template_prefix := [ card: "card/", card2: "short/", pt: "pt/", crown: "crown/", stamp: "stamp/", identity: "/magic-modules.mse-include/indicators/" ] template_suffix := [ card: "card.png", card2: "card.png", pt: "pt.png", crown: "crown.png", stamp: "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) + template_suffix[type] } card_background := { color_background(input: card.card_color, type: "card", base_hybrid: card_hybrid) } card_crown := { color_background(input: card.card_color, type: "crown", base_hybrid: card_hybrid) } card_ptbox := { color_background(input: card.card_color, type: "pt", base_hybrid: card_hybrid) } card_stamp := { color_background(input: card.card_color, type: "stamp", base_hybrid: card_hybrid) } card_background2 := { color_background(input: card.card_color, type: "card2", base_hybrid: card_hybrid) } 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") ) } pt_colors := { if styling.PT_color_scheme == "canon" then pt_colors_canon() else styling.PT_color_scheme } pt_colors_canon := { if lang_setting("is_vehicle")(card.sub_type) then "vehicle" else if is_hybrid_cost() then "land" else "gold" } is_promo := { styling.promo } is_unsorted := { styling.remove_from_autocount } is_crowned := { styling.legend_crown == "yes" or (styling.legend_crown == "if legendary" and lang_setting("is_legendary")(card.super_type)) } is_short := { styling.short_frame } foil_mask_base_image := { if is_crowned() then "foil_mask_crown.png" else "foil_mask.png" } foil_mask_removed_sections := { [] }@(face:1) chop_top := { split := split_comma(styling.chop_text_box); if length(split) > 0 and split.0 != "" then clamp(split.0, maximum: 1500, minimum: -1500) else 0 } chop_bot := { split := split_comma(styling.chop_text_box); if length(split) > 1 and split.1 != "" then clamp(split.1, maximum: 1500, minimum: -1500) else 0 } popout_left := { split := split_comma(styling.popout_image_coordinates); if length(split) > 3 and split.0 != "" then clamp(split.0, maximum: 1500, minimum: -500) else 0 } popout_top := { split := split_comma(styling.popout_image_coordinates); if length(split) > 3 and split.1 != "" then clamp(split.1, maximum: 2000, minimum: -500) else 0 } popout_width := { split := split_comma(styling.popout_image_coordinates); if length(split) > 3 and split.2 != "" then clamp(split.2, maximum: 1500, minimum: 0) else 0 } popout_height := { split := split_comma(styling.popout_image_coordinates); if length(split) > 3 and split.3 != "" then clamp(split.3, maximum: 2000, minimum: 0) else 0 } include file: /magic-modules.mse-include/loyalty/init_script loyalty_abilities_count_real := loyalty_abilities_count loyalty_abilities_count := { if mainframe_walker() then loyalty_abilities_count_real(instance:instance, active:active) else 0 }@(active:false, instance:1) mainframe_walker := { lang_setting("is_planeswalker")(card.type) and not is_short() } loyalty_textbox_mask := {"walker_mask.png"} loyalty_textbox_background_image := { color := if instance <= 1 then (styling.textbox_color or else rgb(255,255,255)) else (styling["textbox_color_" + instance] or else rgb(255,255,255)) alpha := if instance <= 1 then (styling.textbox_opacity_percentage or else "50") else (styling["textbox_opacity_percentage_" + instance] or else "70") set_alpha( recolor_image( "/magic-modules.mse-include/loyalty/color.png", color: color ), alpha: get_alpha_percentage( alpha, default: 70 ) ) } vehicle_masking := { if lang_setting("is_vehicle")(card.type) then ( masked_blend( dark:input, light: (if is_short() then "short/" else "card/") + "vcard.png", mask: "multicolor_blend_card" + (if is_short() then "2.png" else ".png") ) ) else input } vehicle_masking2 := { if lang_setting("is_vehicle")(card.type) then ( mask := "multicolor_blend_card" + (if is_short() then "2.png" else ".png") mask := invert_image(mask) set_mask(image:input, mask:mask) ) else input } alias_offset_top_1 := {8} alias_colors := { [ w: rgb(237, 230, 190), u: rgb(11, 130, 150), b: rgb(109, 23, 132), r: rgb(171, 0, 65), g: rgb(6, 116, 2), a: rgb(152, 208, 218), m: rgb(254, 187, 4), c: rgb(191, 174, 163) ][input] } module_alias := { template := alias_custom_template land_template := alias_custom_land_template color_background( type: "alias", base_hybrid: card_hybrid, artifact_blend: "black", hybrid_blend: "white", multicolor_blend: "black" ) } ############################################################## Extra style options styling field: type: text name: popout image 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 image 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: boolean name: short frame description: Use the short frame initial: no styling field: type: choice name: number of textboxes description: Number of textboxes for abilities and passives. MODIFY CONTENTS OF TEXTBOXES IF THIS HAS TROUBLE UPDATING AFTER BEING CHANGED. choice: automatic choice: 1 choice: 2 choice: 3 choice: 4 choice: 5 choice: 6 choice: 7 choice: 8 initial: automatic styling field: type: text name: move separators description: Moves the limits between abilities down by this many pixels. Use negatives to move up. Formatted as "1,2,3,4,5" styling field: type: text name: move loyalty costs description: Moves loyalty costs down by this many pixels. Use negatives to move up. Formatted as "1,2,3,4,5,6" styling field: type: text name: textbox opacity percentage description: Set the opacity percentage for textboxes. Opaque is 100, transparent is 0, default is 50. 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: rgb(255,255,255) styling field: type: text name: stripes opacity percentage description: Set the opacity percentage for stripes separating abilities. Opaque is 100, transparent is 0, default is 40. styling field: type: color name: stripes 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: rgb(0,0,0) include file: /magic-modules.mse-include/texts/styling_fields styling field: type: choice name: PT color scheme description: Use the selected color scheme for the PT box on two color cards. Canon is "land" on hybrid cards, "gold" otherwise. choice: canon choice: gold choice: hybrid choice: colored choice: land choice: vehicle initial: canon styling field: type: choice name: legend crown description: Use the legend crown? choice: yes choice: if legendary choice: no initial: if legendary include file: /magic-modules.mse-include/stamps/styling_fields include file: /magic-modules.mse-include/rarities/styling_fields include file: /magic-modules.mse-include/watermarks/styling_fields styling field: type: package choice name: overlay description: Should there be an overlay applied, such as foil? match: magic-overlay-*.mse-include required: false include file: /magic-modules.mse-include/information/styling_fields include file: /magic-modules.mse-include/symbol-fonts/styling_fields include file: /magic-modules.mse-include/fonts/styling_fields ############################################################## Card fields include file: /magic-modules.mse-include/information/card_fields include file: /magic-modules.mse-include/stamps/card_fields include file: /magic-modules.mse-include/corners/card_fields include file: /magic-modules.mse-include/watermarks/card_fields include file: /magic-modules.mse-include/separators/card_fields include file: /magic-modules.mse-include/namelines/card_fields include file: /magic-modules.mse-include/typelines/card_fields include file: /magic-modules.mse-include/loyalty/card_fields include file: /magic-modules.mse-include/alias/card_fields_under card style: ############################# Background stuff border color: left: 0 top: 0 width: { stylesheet.card_width } height: { stylesheet.card_height } left width: 29 right width: 29 top width: 60 bottom width: 90 z index: 500 mask: { if is_crowned() then "border_crown.png" else "border_mask.png" } card color: left: 0 top: 0 width: { stylesheet.card_width } height: { stylesheet.card_height } z index: 200 render style: image popup style: in place image: { vehicle_masking(if is_short() then card_background2() else card_background()) } mask: { if is_short() then "short/frame_mask.png" else if mainframe_walker() then "card/frame_mask_walker.png" else "card/frame_mask.png" } ############################# Image image: left: { if styling.stretch_image_to_whole_card then 0 else 28 } top: { if styling.stretch_image_to_whole_card then 0 else 50 } width: { if styling.stretch_image_to_whole_card then stylesheet.card_width else 694 } height: { if styling.stretch_image_to_whole_card then stylesheet.card_height else 914 } z index: 100 mask: { "image_mask" + (if styling.stretch_image_to_whole_card then "_full" else "") + (if is_short() then "_short" else "") + ".png" } mainframe image: left: { popout_left() } top: { popout_top() } width: { popout_width() } height: { popout_height() } z index: 1010 ############################# Text box text: left: 59 top: { (if is_short() then 800 else 656) + chop_top() + body_font_vertical() } right: 692 bottom: { 950 - chop_bot() } 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 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" font: name: { body_font() } italic name: { body_font_italic() } size: { body_font_size() } scale down to: 12 color: { body_font_color() } symbol font: name: { styling.text_box_mana_symbols } size: { body_font_size() } scale down to: 12 ############################# PT pt: left: 587 top: { 932 + pt_font_vertical() } width: { if mainframe_walker() then 0 else 120 } height: 56 z index: 900 alignment: center middle shrink-overflow font: name: { pt_font() } size: { pt_font_size() } color: { pt_font_color() } separator color: red ############################################################## Extra card fields 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: crown 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 style: pt box: left: 0 top: 0 width: { stylesheet.card_width } height: { stylesheet.card_height } z index: 840 visible: { card.pt != "" and not mainframe_walker() } render style: image image: script: pure := pure_colors() count := length(pure) color := pt_colors() if color == "vehicle" then template("v", type: "pt") else if color == "gold" and count > 1 then template("m", type: "pt") else if color == "land" and count > 1 then template("c", type: "pt") else if color == "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() crown: left: 0 top: 0 width: { stylesheet.card_width } height: { stylesheet.card_height } z index: 840 visible: { is_crowned() } render style: image image: { card_crown() } foil layer: left: 0 top: 0 width: { stylesheet.card_width } height: { stylesheet.card_height } z index: 1050 visible: { styling.overlay != "none" and styling.overlay != "" } render style: image image: { if styling.overlay == "" then "" else styling.overlay + "/overlay.png" } mask: { foil_mask_blended_image() }