mse version: 2.1.2 game: magic short name: NEO Basics full name: Kamigawa Full Art icon: card_sample.png position hint: 099 version: 2024-05-20 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: 744 card height: 1039 card dpi: 297 ### blanks by GenevensiS ### code by GenevensiS ############################################################## Extra scripts init script: typeline_disabled_1 := { styling.hide_type_text } typeline_offset_top_1 := { 274 } typeline_offset_width_1 := { 4 } typeline_offset_left_1 := { -2 } swap_fonts_type_default := [ name: {"Beleren Bold"}, size: {26.5}, color: { if styling.hide_type_text then rgba(0,0,0,0) else styling.text_color }, vertical: {0}, italic: {""} ] nameline_disabled_1 := { styling.hide_name_text } transform_symbol_disabled_1 := { true } card_symbol_disabled_1 := { true } nameline_offset_top_1 := { -9 } nameline_offset_width_1 := { 6 } nameline_offset_left_1 := { -3 } swap_fonts_name_default := [ name: {"Beleren Bold"}, size: {30.0}, color: { if styling.hide_name_text then rgba(0,0,0,0) else styling.text_color }, vertical: {0}, italic: {""} ] template_prefix := [ card: "card/" ] template_suffix := [ card: "card.png" ] template := { template_prefix[type] + input + template_suffix[type] } land_template := { template_prefix[type] + (if input == "a" then "c" else input) + template_suffix[type] } land_types := [["plains"], ["island"], ["swamp"], ["mountain"], ["forest"], ["wastes"]] land_type_of := { result := "none" option := if input == 2 then styling.second_land_type else styling.land_type if option == "auto" then ( ar := break_text(card.sub_type, match:"[^<]+") given := if length(ar) >= input then to_lower(remove_tags(ar[input-1])) else "none" if input == 1 and position(of:[to_lower(card.name)], in:land_types) >= 0 then result := to_lower(card.name) else if include_types and position(of:[given], in:land_types) >= 0 then result := given ) else result := option result }@(include_types:true) land_type_1 := { land_type_of(1, include_types:include_types) }@(include_types:true) land_type_2 := { land_type_of(2, include_types:include_types) }@(include_types:true) land_type_count := { count := 0 lt1 := land_type_1() lt2 := land_type_2() if lt1 != "none" then count := count + 1 if lt2 != "none" and lt2 != lt1 then count := count + 1 count } no_types := { land_type_count() == 0 } two_types := { land_type_count() == 2 } modified_color := { t1 := land_type_1() t2 := land_type_2() t3 := if t1 == "none" then t2 else t1 if t3 == "none" then card.card_color ## double none, revert to real card color else if t1 == "none" or t2 == "none" then type_to_word_map[t3] ## single none, use that else ( c1 := type_to_word_map[t1] c2 := type_to_word_map[t2] c3 := if c1 == "colorless" then c2 else c1 if c3 == "colorless" then "colorless" ## double colorless, use that else if c1 == "colorless" or c2 == "colorless" or c1 == c2 then c3 ## color + colorless or double color, use the color else ( ## combine colors, multi, reverse if needed normal_order := normal_order_map["{c1},{c2}"] or else false "{c1}, {c2}, multicolor, horizontal" + (if not normal_order then ", reversed" else "") ) ) } normal_order_map := [ "white,blue": true, "white,black": true, "blue,black": true, "blue,red": true, "black,red": true, "black,green": true, "red,green": true, "red,white": true, "green,white": true, "green,blue": true ] super_type_filter_default := { if two_types() then "Land" else "Basic Land" } sub_type_filter_default := { t1 := land_type_1(include_types:false) t2 := land_type_2(include_types:false) if t1 == "wastes" or t1 == "none" then t1 := "" if t2 == "wastes" or t2 == "none" then t2 := "" c1 := type_to_word_map[t1] c2 := type_to_word_map[t2] normal_order := normal_order_map["{c1},{c2}"] or else false lower_type := if normal_order then t1 + (if t1 != "" then " " else "") + t2 else t2 + (if t2 != "" then " " else "") + t1 to_title(lower_type) } type_to_letter_map := [ plains: "w", island: "u", swamp: "b", mountain: "r", forest: "g", wastes: "c", none: "none" ] type_to_word_map := [ plains: "white", island: "blue", swamp: "black", mountain: "red", forest: "green", wastes: "colorless", none: "", "": "" ] card_background := { t1 := land_type_1() t2 := land_type_2() t3 := if t1 == "none" then t2 else t1 if two_types() then ( linear_blend( image1: "card/{type_to_letter_map[t1]}card.png", image2: "card/{type_to_letter_map[t2]}card.png", x1: 0.3, y1: 0, x2: 0.7, y2: 0 ) ) else if t3 == "none" then "card/ccard.png" else "card/{type_to_letter_map[t3]}card.png" } is_promo := { styling.promo } is_unsorted := { styling.remove_from_autocount } popout_left := { split := split_comma(styling.popout_art_coordinates); if length(split) > 3 and split.0 != "" then clamp(split.0, minimum: -500, maximum: 800) else 0 } popout_top := { split := split_comma(styling.popout_art_coordinates); if length(split) > 3 and split.1 != "" then clamp(split.1, minimum: -500, maximum: 1100) 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: 1500) 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: 2000) else 0 } name_mask := { "mask_name" + (if two_types() then "_dual" else "") + (if land_type_1() == "plains" or land_type_1() == "wastes" or land_type_2() == "plains" or land_type_2() == "wastes" then "_plains" else "") + ".png" } plains_symbol_offset := { if land_type_1() == "plains" or land_type_1() == "wastes" or land_type_2() == "plains" or land_type_2() == "wastes" then 150 else 0 } symbol_offset := { if two_types() then 180 else 0 } two_two := { (land_type_1() == "plains" or land_type_1() == "wastes") and (land_type_2() == "plains" or land_type_2() == "wastes") } ############################################################## Extra style options styling field: type: choice name: land type description: What type is this card? choice: name: auto line below: true choice: plains choice: island choice: swamp choice: mountain choice: forest choice: wastes choice: none initial: auto styling field: type: choice name: second land type description: What type is this card? choice: name: auto line below: true choice: plains choice: island choice: swamp choice: mountain choice: forest choice: wastes choice: none initial: auto 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: boolean name: hide name text description: Make the nameline visible to edit it, then turn it back invisible. initial: yes styling field: type: boolean name: hide type text description: Make the typeline visible to edit it, then turn it back invisible. initial: yes styling field: type: color name: text color description: Color used for the text. choice: name: black color: rgb(0,0,0) choice: name: white color: rgb(255,255,255) initial: white styling field: type: color name: textbox color description: Color used for the textbox background. choice: name: use card color color: rgb(255,255,254) initial: rgb(255,255,254) 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: border description: Use a border? choice: yes choice: only copyright choice: no initial: yes include file: /magic-modules.mse-include/information/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/namelines/card_fields include file: /magic-modules.mse-include/typelines/card_fields card style: ############################# Background stuff border color: left: 0 top: 0 width: { stylesheet.card_width } height: { stylesheet.card_height } z index: 100 visible: { styling.border != "no" } mask: { if styling.border == "yes" then "mask_background_border.png" else "mask_background_borderless_border.png" } ############################# Image image: left: { if styling.stretch_art_to_whole_card then 0 else if styling.border != "yes" then 0 else 30 } top: { if styling.stretch_art_to_whole_card then 0 else if styling.border != "yes" then 0 else 30 } width: { if styling.stretch_art_to_whole_card then stylesheet.card_width else if styling.border != "yes" then stylesheet.card_width else 684 } bottom: { if styling.stretch_art_to_whole_card then stylesheet.card_height + 1 else if styling.border != "no" then 954 else stylesheet.card_height + 1 } z index: 0 mainframe image: left: { popout_left() } top: { popout_top() } width: { popout_width() } height: { popout_height() } z index: 1010 ############################################################## Extra card fields extra card field: type: color name: card stamp border script: card.border_color editable: false save value: false show statistics: false extra card field: type: choice name: card color editable: false save value: false show statistics: false script: styling.land_type styling.second_land_type modified_color() extra card field: type: choice name: first type editable: false save value: false show statistics: false choice: first type extra card field: type: choice name: second type editable: false save value: false show statistics: false choice: second type extra card field: type: choice name: type separator editable: false save value: false show statistics: false choice: type separator extra card field: type: choice name: first symbol editable: false save value: false show statistics: false choice: first symbol extra card field: type: choice name: second symbol editable: false save value: false show statistics: false choice: second symbol extra card field: type: choice name: foil layer editable: false save value: false show statistics: false choice: foil layer extra card style: card stamp border: left: 0 top: 0 width: { stylesheet.card_width } height: { stylesheet.card_height } 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 color: left: 58 top: 55 width: 194 height: 855 z index: 200 popup style: in place render style: image image: { if styling.textbox_color == rgb(255,255,254) then card_background() else recolor_image("name_color.png", color: styling.textbox_color) } mask: { name_mask() } first type: left: { if two_two() then 91 else 76 } top: 94 width: { if two_two() then 130 else 160 } height: { if two_two() then 225 else 295 } z index: 3000 render style: image visible: { land_type_1() != "none" } image: { recolor_image("type_" + land_type_1() + ".png", color: styling.text_color) } second type: left: { if two_two() then 91 else 76 } top: { 272 + (if styling.land_type == "plains" or styling.land_type == "wastes" then 140 else 0) - (if two_two() then 70 else 0) } width: { if two_two() then 130 else 160 } height: { if two_two() then 225 else 295 } z index: 3000 visible: { land_type_2() != "none" } render style: image image: { recolor_image("type_" + land_type_2() + ".png", color: styling.text_color) } type separator: left: 76 top: { 240 + (if land_type_1() == "plains" or land_type_1() == "wastes" then 136 else 0) - (if two_two() then 68 else 0) } width: 160 height: 30 z index: 3000 visible: { two_types() } render style: image image: { recolor_image("type_sep.png", color: styling.text_color) } first symbol: left: 76 top: { 253 + plains_symbol_offset() + symbol_offset() } width: 160 height: 164 z index: 3000 render style: image visible: { land_type_1() != "none" } image: { recolor_image("symbol_" + land_type_1() + ".png", color: styling.text_color) } second symbol: left: 76 top: { 401 + plains_symbol_offset() + symbol_offset() } width: 160 height: 164 z index: 3000 visible: { land_type_2() != "none" } render style: image image: { recolor_image("symbol_" + land_type_2() + ".png", color: styling.text_color) } 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" }