diff --git a/changelog.txt b/changelog.txt index 6d10a1836..a30362200 100644 --- a/changelog.txt +++ b/changelog.txt @@ -13,7 +13,7 @@ __More New Templates__ Thanks to GenevensiS for their continued work on keeping up with the Showcases! • Add the Aetherdrift First Place, First Place Planeswalker, and First Place Full Art land frames. Without access to the Space Cadet font, we don't plan to make the Rude Riders variant. • Added the MKM Magnified Showcase frame -• Added the ONE and LCI Full Art land frames +• Added the UNF, ONE, LCI Full Art land frames. Those and NEO have code to detect or manually select up to two basic types. • Added the Mechanic Reminder frame, for things like Start your engines! __Template Code Updates__ @@ -21,4 +21,5 @@ __Template Code Updates__ __Bug Fixes__ • Fixed a bug where hybrid Adventure pages were blending incorrectly. -• Fixed a bug where the Set tab Inverted Common Symbol wasn't working on most frames. \ No newline at end of file +• Fixed a bug where the Set tab Inverted Common Symbol wasn't working on most frames. +• Fixed a bug in Full Art Lands w/Basic Land Symbol where the textbox effect wasn't displaying. \ No newline at end of file diff --git a/data/magic-m15-full-art-basic-land-symbol.mse-style/style b/data/magic-m15-full-art-basic-land-symbol.mse-style/style index f247e4d27..9a58811ff 100644 --- a/data/magic-m15-full-art-basic-land-symbol.mse-style/style +++ b/data/magic-m15-full-art-basic-land-symbol.mse-style/style @@ -801,7 +801,7 @@ extra card style: top: 0 width: { textbox_width() } height: { textbox_height() } - z index: 50 + z index: 105 render style: image image: { textbox_image() } mask: { textbox_mask() } diff --git a/data/magic-m15-ixalan-full-art-basics.mse-style/style b/data/magic-m15-ixalan-full-art-basics.mse-style/style index 0d0d2e7d1..415b2370e 100644 --- a/data/magic-m15-ixalan-full-art-basics.mse-style/style +++ b/data/magic-m15-ixalan-full-art-basics.mse-style/style @@ -54,83 +54,85 @@ init script: italic: {""} ] - two_types := { styling.second_land_type != "none" } - - card_symbol := - { - first := "symbol/" + type_to_letter_map[styling.land_type] + ".png" - if not two_types() then first else ( - second := "symbol/" + type_to_letter_map[styling.second_land_type] + ".png" - linear_blend( - image1: first, - image2: second, - x1: 0.49, y1: 0, - x2: 0.51, y2: 0 - )) + 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 } - card_full_name := { value } - card_full_name_default := { type_to_name_map[styling.land_type + "," + styling.second_land_type] } - name_default := { type_to_name_map[styling.land_type + "," + styling.second_land_type] } - - super_type_filter_default := { (if two_types() then "" else "Basic ") + "Land" } + 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 := { - base := to_title(styling.land_type) + (if two_types() then " " + to_title(styling.second_land_type) else "") - if base == "Wastes" then "" else base + 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_name_map := - [ - "plains,none": "Plains", - "island,none": "Island", - "swamp,none": "Swamp", - "mountain,none": "Mountain", - "forest,none": "Forest", - "wastes,none": "Wastes", - - "plains,wastes": "Wasted Plains", - "island,wastes": "Wasted Island", - "swamp,wastes": "Wasted Swamp", - "mountain,wastes": "Wasted Mountain", - "forest,wastes": "Wasted Forest", - "wastes,wastes": "Wastes", - - "plains,plains": "Plains", - "island,plains": "Tundra", - "swamp,plains": "Scrubland", - "mountain,plains": "Plateau", - "forest,plains": "Savannah", - "wastes,plains": "Wasted Plains", - - "plains,island": "Tundra", - "island,island": "Island", - "swamp,island": "Underground Sea", - "mountain,island": "Volcanic Island", - "forest,island": "Tropical Island", - "wastes,island": "Wasted Island", - - "plains,swamp": "Scrubland", - "island,swamp": "Underground Sea", - "swamp,swamp": "Swamp", - "mountain,swamp": "Badlands", - "forest,swamp": "Bayou", - "wastes,swamp": "Wasted Swamp", - - "plains,mountain": "Plateau", - "island,mountain": "Volcanic Island", - "swamp,mountain": "Badlands", - "mountain,mountain": "Mountain", - "forest,mountain": "Taiga", - "wastes,mountain": "Wasted Mountain", - - "plains,forest": "Savannah", - "island,forest": "Tropical Island", - "swamp,forest": "Bayou", - "mountain,forest": "Taiga", - "forest,forest": "Forest", - "wastes,forest": "Wasted Forest" - ] type_to_letter_map := [ plains: "w", @@ -141,16 +143,30 @@ init script: wastes: "c", none: "none" ] - type_to_color_map := - [ - plains: ", white", - island: ", blue", - swamp: ", black", - mountain: ", red", - forest: ", green", - wastes: "", - none: ", none" + type_to_word_map := [ + plains: "white", + island: "blue", + swamp: "black", + mountain: "red", + forest: "green", + wastes: "colorless", + none: "", + "": "" ] + card_symbol := + { + t1 := land_type_1() + t2 := land_type_2() + t3 := if t1 == "none" then t2 else t1 + if t1 != "none" and t2 != "none" then linear_blend( + image1: "symbol/" + type_to_letter_map[t1] + ".png", + image2: "symbol/" + type_to_letter_map[t2] + ".png", + x1: 0.49, y1: 0, + x2: 0.51, y2: 0 + ) + else "symbol/" + type_to_letter_map[t3] + ".png" + } + is_promo := { styling.promo } @@ -161,7 +177,7 @@ init script: 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 } - mountain_symbol_offset := { if styling.second_land_type == "mountain" or styling.land_type == "mountain" then -76 else 0 } + mountain_symbol_offset := { if land_type_1() == "mountain" or land_type_2() == "mountain" then -76 else 0 } ############################################################## Extra style options @@ -169,19 +185,8 @@ styling field: type: choice name: land type description: What type is this card? - choice: plains - choice: island - choice: swamp - choice: mountain - choice: forest - choice: wastes - initial: plains -styling field: - type: choice - name: second land type - description: What type is this card? choice: - name: none + name: auto line below: true choice: plains choice: island @@ -189,7 +194,23 @@ styling field: choice: mountain choice: forest choice: wastes - initial: none + 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 @@ -329,16 +350,17 @@ extra card style: height: 49 z index: 3000 render style: image - image: { "type/" + type_to_letter_map[styling.land_type] + ".png" } + visible: { land_type_1() != "none" } + image: { "type/" + type_to_letter_map[land_type_1()] + ".png" } second type: left: 244 top: 857 width: 420 height: 49 z index: 3000 - visible: { two_types() } + visible: { land_type_2() != "none" } render style: image - image: { "type/" + type_to_letter_map[styling.second_land_type] + ".png" } + image: { "type/" + type_to_letter_map[land_type_2()] + ".png" } symbol: left: { 156 + mountain_symbol_offset() } top: 779 @@ -355,7 +377,7 @@ extra card style: z index: 3000 visible: { not two_types() and not styling.hide_basic_land_text } render style: image - image: { "basic_land/" + type_to_letter_map[styling.land_type] + ".png" } + image: { "basic_land/" + type_to_letter_map[land_type_1()] + ".png" } foil layer: left: 0 top: 0 diff --git a/data/magic-m15-kamigawa-full-art-basics.mse-style/style b/data/magic-m15-kamigawa-full-art-basics.mse-style/style index 6042aab61..8f5dc77ec 100644 --- a/data/magic-m15-kamigawa-full-art-basics.mse-style/style +++ b/data/magic-m15-kamigawa-full-art-basics.mse-style/style @@ -77,93 +77,85 @@ init script: template_prefix[type] + (if input == "a" then "c" else input) + template_suffix[type] } - two_types := { styling.second_land_type != "none" } - - card_background := - { - first_color := "card/" + type_to_letter_map[styling.land_type] + "card.png" - if not two_types() then first_color else ( - second_color := "card/" + type_to_letter_map[styling.second_land_type] + "card.png" - linear_blend( - image1: first_color, - image2: second_color, - x1: 0.3, y1: 0, - x2: 0.7, y2: 0 - )) - } - card_color := - { - if not two_types() then substring(type_to_color_map[styling.land_type] + ", land", begin: 2) - else substring(type_to_color_map[styling.land_type] + type_to_color_map[styling.second_land_type] + ", land, horizontal", begin: 2) - } - card_color_filter := - { - if not two_types() then substring(type_to_color_map[styling.land_type] + ", land", begin: 2) - else substring(type_to_color_map[styling.land_type] + type_to_color_map[styling.second_land_type] + ", land, horizontal", begin: 2) + 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 } - card_full_name := { value } - card_full_name_default := { type_to_name_map[styling.land_type + "," + styling.second_land_type] } - name_default := { type_to_name_map[styling.land_type + "," + styling.second_land_type] } - - super_type_filter_default := { (if two_types() then "" else "Basic ") + "Land" } + 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 := { - base := to_title(styling.land_type) + (if two_types() then " " + to_title(styling.second_land_type) else "") - if base == "Wastes" then "" else base + 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_name_map := - [ - "plains,none": "Plains", - "island,none": "Island", - "swamp,none": "Swamp", - "mountain,none": "Mountain", - "forest,none": "Forest", - "wastes,none": "Wastes", - - "plains,wastes": "Wasted Plains", - "island,wastes": "Wasted Island", - "swamp,wastes": "Wasted Swamp", - "mountain,wastes": "Wasted Mountain", - "forest,wastes": "Wasted Forest", - "wastes,wastes": "Wastes", - - "plains,plains": "Plains", - "island,plains": "Tundra", - "swamp,plains": "Scrubland", - "mountain,plains": "Plateau", - "forest,plains": "Savannah", - "wastes,plains": "Wasted Plains", - - "plains,island": "Tundra", - "island,island": "Island", - "swamp,island": "Underground Sea", - "mountain,island": "Volcanic Island", - "forest,island": "Tropical Island", - "wastes,island": "Wasted Island", - - "plains,swamp": "Scrubland", - "island,swamp": "Underground Sea", - "swamp,swamp": "Swamp", - "mountain,swamp": "Badlands", - "forest,swamp": "Bayou", - "wastes,swamp": "Wasted Swamp", - - "plains,mountain": "Plateau", - "island,mountain": "Volcanic Island", - "swamp,mountain": "Badlands", - "mountain,mountain": "Mountain", - "forest,mountain": "Taiga", - "wastes,mountain": "Wasted Mountain", - - "plains,forest": "Savannah", - "island,forest": "Tropical Island", - "swamp,forest": "Bayou", - "mountain,forest": "Taiga", - "forest,forest": "Forest", - "wastes,forest": "Wasted Forest" - ] type_to_letter_map := [ plains: "w", @@ -174,17 +166,34 @@ init script: wastes: "c", none: "none" ] - type_to_color_map := - [ - plains: ", white", - island: ", blue", - swamp: ", black", - mountain: ", red", - forest: ", green", - wastes: "", - 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 } @@ -198,15 +207,15 @@ init script: { "mask_name" + (if two_types() then "_dual" else "") + - (if styling.second_land_type == "plains" or styling.second_land_type == "wastes" or styling.land_type == "plains" or styling.land_type == "wastes" then "_plains" 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 styling.second_land_type == "plains" or styling.second_land_type == "wastes" or styling.land_type == "plains" or styling.land_type == "wastes" then 150 else 0 } + 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 := { - (styling.second_land_type == "plains" or styling.second_land_type == "wastes") and (styling.land_type == "plains" or styling.land_type == "wastes") + (land_type_1() == "plains" or land_type_1() == "wastes") and (land_type_2() == "plains" or land_type_2() == "wastes") } ############################################################## Extra style options @@ -215,19 +224,8 @@ styling field: type: choice name: land type description: What type is this card? - choice: plains - choice: island - choice: swamp - choice: mountain - choice: forest - choice: wastes - initial: plains -styling field: - type: choice - name: second land type - description: What type is this card? choice: - name: none + name: auto line below: true choice: plains choice: island @@ -235,7 +233,23 @@ styling field: choice: mountain choice: forest choice: wastes - initial: none + 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 @@ -346,7 +360,7 @@ extra card field: script: styling.land_type styling.second_land_type - card_color() + modified_color() extra card field: type: choice name: first type @@ -416,19 +430,20 @@ extra card style: height: { if two_two() then 225 else 295 } z index: 3000 render style: image - image: { recolor_image("type_" + styling.land_type + ".png", color: styling.text_color) } + 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: { two_types() } + visible: { land_type_2() != "none" } render style: image - image: { recolor_image("type_" + styling.second_land_type + ".png", color: styling.text_color) } + image: { recolor_image("type_" + land_type_2() + ".png", color: styling.text_color) } type separator: left: 76 - top: { 240 + (if styling.land_type == "plains" or styling.land_type == "wastes" then 136 else 0) - (if two_two() then 68 else 0) } + 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 @@ -442,16 +457,17 @@ extra card style: height: 164 z index: 3000 render style: image - image: { recolor_image("symbol_" + styling.land_type + ".png", color: styling.text_color) } + 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: { two_types() } + visible: { land_type_2() != "none" } render style: image - image: { recolor_image("symbol_" + styling.second_land_type + ".png", color: styling.text_color) } + image: { recolor_image("symbol_" + land_type_2() + ".png", color: styling.text_color) } foil layer: left: 0 top: 0 diff --git a/data/magic-m15-phyrexia-full-art-basics.mse-style/style b/data/magic-m15-phyrexia-full-art-basics.mse-style/style index bbbdfee7f..b8a7e6a94 100644 --- a/data/magic-m15-phyrexia-full-art-basics.mse-style/style +++ b/data/magic-m15-phyrexia-full-art-basics.mse-style/style @@ -54,83 +54,85 @@ init script: italic: {""} ] - two_types := { styling.second_land_type != "none" } - - card_symbol := - { - first := "symbol/" + type_to_letter_map[styling.land_type] + ".png" - if not two_types() then first else ( - second := "symbol/" + type_to_letter_map[styling.second_land_type] + ".png" - linear_blend( - image1: first, - image2: second, - x1: 0.49, y1: 0, - x2: 0.51, y2: 0 - )) + 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 } - card_full_name := { value } - card_full_name_default := { type_to_name_map[styling.land_type + "," + styling.second_land_type] } - name_default := { type_to_name_map[styling.land_type + "," + styling.second_land_type] } - - super_type_filter_default := { (if two_types() then "" else "Basic ") + "Land" } + 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 := { - base := to_title(styling.land_type) + (if two_types() then " " + to_title(styling.second_land_type) else "") - if base == "Wastes" then "" else base + 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_name_map := - [ - "plains,none": "Plains", - "island,none": "Island", - "swamp,none": "Swamp", - "mountain,none": "Mountain", - "forest,none": "Forest", - "wastes,none": "Wastes", - - "plains,wastes": "Wasted Plains", - "island,wastes": "Wasted Island", - "swamp,wastes": "Wasted Swamp", - "mountain,wastes": "Wasted Mountain", - "forest,wastes": "Wasted Forest", - "wastes,wastes": "Wastes", - - "plains,plains": "Plains", - "island,plains": "Tundra", - "swamp,plains": "Scrubland", - "mountain,plains": "Plateau", - "forest,plains": "Savannah", - "wastes,plains": "Wasted Plains", - - "plains,island": "Tundra", - "island,island": "Island", - "swamp,island": "Underground Sea", - "mountain,island": "Volcanic Island", - "forest,island": "Tropical Island", - "wastes,island": "Wasted Island", - - "plains,swamp": "Scrubland", - "island,swamp": "Underground Sea", - "swamp,swamp": "Swamp", - "mountain,swamp": "Badlands", - "forest,swamp": "Bayou", - "wastes,swamp": "Wasted Swamp", - - "plains,mountain": "Plateau", - "island,mountain": "Volcanic Island", - "swamp,mountain": "Badlands", - "mountain,mountain": "Mountain", - "forest,mountain": "Taiga", - "wastes,mountain": "Wasted Mountain", - - "plains,forest": "Savannah", - "island,forest": "Tropical Island", - "swamp,forest": "Bayou", - "mountain,forest": "Taiga", - "forest,forest": "Forest", - "wastes,forest": "Wasted Forest" - ] type_to_letter_map := [ plains: "w", @@ -141,16 +143,31 @@ init script: wastes: "c", none: "none" ] - type_to_color_map := - [ - plains: ", white", - island: ", blue", - swamp: ", black", - mountain: ", red", - forest: ", green", - wastes: "", - none: ", none" + type_to_word_map := [ + plains: "white", + island: "blue", + swamp: "black", + mountain: "red", + forest: "green", + wastes: "colorless", + none: "", + "": "" ] + card_symbol := + { + t1 := land_type_1() + t2 := land_type_2() + t3 := if t1 == "none" then t2 else t1 + if t1 != "none" and t2 != "none" then linear_blend( + image1: "symbol/" + type_to_letter_map[t1] + ".png", + image2: "symbol/" + type_to_letter_map[t2] + ".png", + x1: 0.49, y1: 0, + x2: 0.51, y2: 0 + ) + else if t3 == "none" then "" + else "symbol/" + type_to_letter_map[t3] + ".png" + } + is_promo := { styling.promo } @@ -169,19 +186,8 @@ styling field: type: choice name: land type description: What type is this card? - choice: plains - choice: island - choice: swamp - choice: mountain - choice: forest - choice: wastes - initial: plains -styling field: - type: choice - name: second land type - description: What type is this card? choice: - name: none + name: auto line below: true choice: plains choice: island @@ -189,7 +195,23 @@ styling field: choice: mountain choice: forest choice: wastes - initial: none + 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 @@ -312,21 +334,22 @@ extra card style: mask: { if card.card_stamp == "universes beyond" then "mask_stamp_background_border_triangle.png" else "mask_stamp_background_border.png" } first type: left: 101 - top: { if two_types() and styling.second_land_type != "wastes" then 735 else 840 } + top: { if two_types() and land_type_2() != "wastes" then 735 else 840 } width: 543 height: 100 z index: 3000 render style: image - image: { "type/" + type_to_letter_map[styling.land_type] + ".png" } + visible: { land_type_1() != "none" } + image: { "type/" + type_to_letter_map[land_type_1()] + ".png" } second type: left: 101 top: 840 width: 543 height: 100 z index: 3000 - visible: { two_types() } + visible: { land_type_2() != "none" } render style: image - image: { "type/" + type_to_letter_map[styling.second_land_type] + ".png" } + image: { "type/" + type_to_letter_map[land_type_2()] + ".png" } symbol: left: 175 top: 255 diff --git a/data/magic-m15-unfinity-full-art-basics.mse-style/border_mask.png b/data/magic-m15-unfinity-full-art-basics.mse-style/border_mask.png new file mode 100644 index 000000000..c2ed55b74 Binary files /dev/null and b/data/magic-m15-unfinity-full-art-basics.mse-style/border_mask.png differ diff --git a/data/magic-m15-unfinity-full-art-basics.mse-style/border_mask_namebox.png b/data/magic-m15-unfinity-full-art-basics.mse-style/border_mask_namebox.png new file mode 100644 index 000000000..08aa1f315 Binary files /dev/null and b/data/magic-m15-unfinity-full-art-basics.mse-style/border_mask_namebox.png differ diff --git a/data/magic-m15-unfinity-full-art-basics.mse-style/border_mask_stamp.png b/data/magic-m15-unfinity-full-art-basics.mse-style/border_mask_stamp.png new file mode 100644 index 000000000..c50356f9e Binary files /dev/null and b/data/magic-m15-unfinity-full-art-basics.mse-style/border_mask_stamp.png differ diff --git a/data/magic-m15-unfinity-full-art-basics.mse-style/card/a.png b/data/magic-m15-unfinity-full-art-basics.mse-style/card/a.png new file mode 100644 index 000000000..4adf4a3dc Binary files /dev/null and b/data/magic-m15-unfinity-full-art-basics.mse-style/card/a.png differ diff --git a/data/magic-m15-unfinity-full-art-basics.mse-style/card/b.png b/data/magic-m15-unfinity-full-art-basics.mse-style/card/b.png new file mode 100644 index 000000000..5e2745958 Binary files /dev/null and b/data/magic-m15-unfinity-full-art-basics.mse-style/card/b.png differ diff --git a/data/magic-m15-unfinity-full-art-basics.mse-style/card/c.png b/data/magic-m15-unfinity-full-art-basics.mse-style/card/c.png new file mode 100644 index 000000000..d6051476e Binary files /dev/null and b/data/magic-m15-unfinity-full-art-basics.mse-style/card/c.png differ diff --git a/data/magic-m15-unfinity-full-art-basics.mse-style/card/g.png b/data/magic-m15-unfinity-full-art-basics.mse-style/card/g.png new file mode 100644 index 000000000..eedaae1ba Binary files /dev/null and b/data/magic-m15-unfinity-full-art-basics.mse-style/card/g.png differ diff --git a/data/magic-m15-unfinity-full-art-basics.mse-style/card/m.png b/data/magic-m15-unfinity-full-art-basics.mse-style/card/m.png new file mode 100644 index 000000000..cb831cd9e Binary files /dev/null and b/data/magic-m15-unfinity-full-art-basics.mse-style/card/m.png differ diff --git a/data/magic-m15-unfinity-full-art-basics.mse-style/card/r.png b/data/magic-m15-unfinity-full-art-basics.mse-style/card/r.png new file mode 100644 index 000000000..ff8e025df Binary files /dev/null and b/data/magic-m15-unfinity-full-art-basics.mse-style/card/r.png differ diff --git a/data/magic-m15-unfinity-full-art-basics.mse-style/card/u.png b/data/magic-m15-unfinity-full-art-basics.mse-style/card/u.png new file mode 100644 index 000000000..31fcd2d86 Binary files /dev/null and b/data/magic-m15-unfinity-full-art-basics.mse-style/card/u.png differ diff --git a/data/magic-m15-unfinity-full-art-basics.mse-style/card/w.png b/data/magic-m15-unfinity-full-art-basics.mse-style/card/w.png new file mode 100644 index 000000000..b0349914c Binary files /dev/null and b/data/magic-m15-unfinity-full-art-basics.mse-style/card/w.png differ diff --git a/data/magic-m15-unfinity-full-art-basics.mse-style/card_mask.png b/data/magic-m15-unfinity-full-art-basics.mse-style/card_mask.png new file mode 100644 index 000000000..0086821e7 Binary files /dev/null and b/data/magic-m15-unfinity-full-art-basics.mse-style/card_mask.png differ diff --git a/data/magic-m15-unfinity-full-art-basics.mse-style/card_sample.png b/data/magic-m15-unfinity-full-art-basics.mse-style/card_sample.png new file mode 100644 index 000000000..0590700f2 Binary files /dev/null and b/data/magic-m15-unfinity-full-art-basics.mse-style/card_sample.png differ diff --git a/data/magic-m15-unfinity-full-art-basics.mse-style/image_mask.png b/data/magic-m15-unfinity-full-art-basics.mse-style/image_mask.png new file mode 100644 index 000000000..8336d4b34 Binary files /dev/null and b/data/magic-m15-unfinity-full-art-basics.mse-style/image_mask.png differ diff --git a/data/magic-m15-unfinity-full-art-basics.mse-style/image_mask_symbol.png b/data/magic-m15-unfinity-full-art-basics.mse-style/image_mask_symbol.png new file mode 100644 index 000000000..4c7fcfe62 Binary files /dev/null and b/data/magic-m15-unfinity-full-art-basics.mse-style/image_mask_symbol.png differ diff --git a/data/magic-m15-unfinity-full-art-basics.mse-style/namebox_background.png b/data/magic-m15-unfinity-full-art-basics.mse-style/namebox_background.png new file mode 100644 index 000000000..f4f68b49f Binary files /dev/null and b/data/magic-m15-unfinity-full-art-basics.mse-style/namebox_background.png differ diff --git a/data/magic-m15-unfinity-full-art-basics.mse-style/namebox_shadow.png b/data/magic-m15-unfinity-full-art-basics.mse-style/namebox_shadow.png new file mode 100644 index 000000000..3a3c20a3f Binary files /dev/null and b/data/magic-m15-unfinity-full-art-basics.mse-style/namebox_shadow.png differ diff --git a/data/magic-m15-unfinity-full-art-basics.mse-style/stamp/a.png b/data/magic-m15-unfinity-full-art-basics.mse-style/stamp/a.png new file mode 100644 index 000000000..282d46ca9 Binary files /dev/null and b/data/magic-m15-unfinity-full-art-basics.mse-style/stamp/a.png differ diff --git a/data/magic-m15-unfinity-full-art-basics.mse-style/stamp/b.png b/data/magic-m15-unfinity-full-art-basics.mse-style/stamp/b.png new file mode 100644 index 000000000..3bf219d83 Binary files /dev/null and b/data/magic-m15-unfinity-full-art-basics.mse-style/stamp/b.png differ diff --git a/data/magic-m15-unfinity-full-art-basics.mse-style/stamp/c.png b/data/magic-m15-unfinity-full-art-basics.mse-style/stamp/c.png new file mode 100644 index 000000000..b3760edfc Binary files /dev/null and b/data/magic-m15-unfinity-full-art-basics.mse-style/stamp/c.png differ diff --git a/data/magic-m15-unfinity-full-art-basics.mse-style/stamp/g.png b/data/magic-m15-unfinity-full-art-basics.mse-style/stamp/g.png new file mode 100644 index 000000000..34b95b003 Binary files /dev/null and b/data/magic-m15-unfinity-full-art-basics.mse-style/stamp/g.png differ diff --git a/data/magic-m15-unfinity-full-art-basics.mse-style/stamp/m.png b/data/magic-m15-unfinity-full-art-basics.mse-style/stamp/m.png new file mode 100644 index 000000000..0f010e255 Binary files /dev/null and b/data/magic-m15-unfinity-full-art-basics.mse-style/stamp/m.png differ diff --git a/data/magic-m15-unfinity-full-art-basics.mse-style/stamp/r.png b/data/magic-m15-unfinity-full-art-basics.mse-style/stamp/r.png new file mode 100644 index 000000000..d5d2af2f7 Binary files /dev/null and b/data/magic-m15-unfinity-full-art-basics.mse-style/stamp/r.png differ diff --git a/data/magic-m15-unfinity-full-art-basics.mse-style/stamp/u.png b/data/magic-m15-unfinity-full-art-basics.mse-style/stamp/u.png new file mode 100644 index 000000000..bff74ee4f Binary files /dev/null and b/data/magic-m15-unfinity-full-art-basics.mse-style/stamp/u.png differ diff --git a/data/magic-m15-unfinity-full-art-basics.mse-style/stamp/w.png b/data/magic-m15-unfinity-full-art-basics.mse-style/stamp/w.png new file mode 100644 index 000000000..84949bbed Binary files /dev/null and b/data/magic-m15-unfinity-full-art-basics.mse-style/stamp/w.png differ diff --git a/data/magic-m15-unfinity-full-art-basics.mse-style/style b/data/magic-m15-unfinity-full-art-basics.mse-style/style new file mode 100644 index 000000000..0b2ec6fd0 --- /dev/null +++ b/data/magic-m15-unfinity-full-art-basics.mse-style/style @@ -0,0 +1,418 @@ +mse version: 2.1.2 +game: magic +short name: UNF Basics +full name: Unfinity 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 } + swap_fonts_type_default := + [ + name: {"Beleren Bold"}, + size: {26.5}, + color: { if styling.hide_type_text then rgba(0,0,0,0) else rgb(0,0,0) }, + vertical: {0}, + italic: {""} + ] + + nameline_offset_top_1 := { 1 } + casting_cost_offset_top_1 := { 1 } + transform_symbol_disabled_1 := { true } + card_symbol_disabled_1 := { true } + swap_fonts_name_default := + [ + name: {"Beleren Bold"}, + size: {30.0}, + color: {"white"}, + vertical: {0}, + italic: {""} + ] + + 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 + ] + + template := { type + "/" + input + ".png" } + land_template := { type + "/" + (if input == "a" then "c" else input) + ".png" } + + card_background := { color_background(input: modified_color(), type: "card", base_hybrid: card_hybrid, multicolor_blend: "white", hybrid_blend: "white", artifact_blend: "white") } + card_stamp := { color_background(input: modified_color(), type: "stamp", base_hybrid: card_hybrid, multicolor_blend: "white", hybrid_blend: "white", artifact_blend: "white") } + card_symbol := + { + t1 := land_type_1() + t2 := land_type_2() + t3 := if t1 == "none" then t2 else t1 + if t1 != "none" and t2 != "none" then linear_blend( + image1: "symbol/" + type_to_letter_map[t1] + ".png", + image2: "symbol/" + type_to_letter_map[t2] + ".png", + x1: 0.50, y1: 0, + x2: 0.51, y2: 0 + ) + else "symbol/" + type_to_letter_map[t3] + ".png" + } + + 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: "", + "": "" + ] + + 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 } + + art_left := { 0 } + art_top := { 0 } + art_width := { stylesheet.card_width } + art_height := { if styling.stretch_art_to_whole_card then stylesheet.card_height + 1 else 955 } + + art_mask := + { + t1 := land_type_1() + t2 := land_type_2() + base := if t1 == "none" and t2 == "none" then "image_mask.png" else "image_mask_symbol.png" + crop(base, offset_x: art_left(), offset_y: art_top(), width: art_width(), height: art_height()) + } + +############################################################## 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: text + name: namebox opacity percentage + description: Set the opacity percentage for the namebox. Opaque is 100, transparent is 0, default is 80. +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: 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 + +############################################################## 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 + mask: border_mask.png + card color: + left: 0 + top: 0 + width: { stylesheet.card_width } + height: { stylesheet.card_height } + z index: 210 + popup style: in place + render style: image + image: { card_background() } + mask: card_mask.png + ############################# Image + image: + left: { art_left() } + top: { art_top() } + width: { art_width() } + bottom: { art_height() } + z index: 0 + mask: { art_mask() } + mainframe image: + left: { popout_left() } + top: { popout_top() } + width: { popout_width() } + height: { popout_height() } + z index: 1010 + +############################################################## Extra card fields + +extra card field: + type: choice + name: card stamp rim + editable: false + save value: false + show statistics: false + choice: card stamp rim +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: color + name: namebox border + script: card.border_color + editable: false + save value: false + show statistics: false +extra card field: + type: choice + name: namebox background + editable: false + save value: false + show statistics: false + choice: namebox background +extra card field: + type: choice + name: namebox shadow + editable: false + save value: false + show statistics: false + choice: namebox shadow +extra card field: + type: choice + name: symbol + editable: false + save value: false + show statistics: false + choice: 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 rim: + left: 0 + top: 0 + width: { stylesheet.card_width } + height: { stylesheet.card_height } + z index: 230 + visible: { is_stamped() } + render style: image + image: { card_stamp() } + card stamp border: + left: 0 + top: 0 + width: { stylesheet.card_width } + height: { stylesheet.card_height } + z index: 220 + visible: { is_stamped() } + mask: border_mask_stamp.png + namebox border: + left: 0 + top: 0 + width: { stylesheet.card_width } + height: { stylesheet.card_height } + z index: 220 + mask: border_mask_namebox.png + namebox background: + left: 0 + top: 0 + width: { stylesheet.card_width } + height: { stylesheet.card_height } + z index: 110 + popup style: in place + render style: image + image: { set_alpha("namebox_background.png", alpha: get_alpha_percentage(styling.namebox_opacity_percentage, default: 80)) } + namebox shadow: + left: 0 + top: 0 + width: { stylesheet.card_width } + height: { stylesheet.card_height } + z index: 100 + popup style: in place + render style: image + image: namebox_shadow.png + symbol: + left: 129 + top: 732 + width: 486 + height: 186 + z index: 3000 + visible: { not no_types() } + render style: image + image: { card_symbol() } + 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" } diff --git a/data/magic-m15-unfinity-full-art-basics.mse-style/symbol/b.png b/data/magic-m15-unfinity-full-art-basics.mse-style/symbol/b.png new file mode 100644 index 000000000..ac54874ee Binary files /dev/null and b/data/magic-m15-unfinity-full-art-basics.mse-style/symbol/b.png differ diff --git a/data/magic-m15-unfinity-full-art-basics.mse-style/symbol/c.png b/data/magic-m15-unfinity-full-art-basics.mse-style/symbol/c.png new file mode 100644 index 000000000..991aa249e Binary files /dev/null and b/data/magic-m15-unfinity-full-art-basics.mse-style/symbol/c.png differ diff --git a/data/magic-m15-unfinity-full-art-basics.mse-style/symbol/g.png b/data/magic-m15-unfinity-full-art-basics.mse-style/symbol/g.png new file mode 100644 index 000000000..1b993ed98 Binary files /dev/null and b/data/magic-m15-unfinity-full-art-basics.mse-style/symbol/g.png differ diff --git a/data/magic-m15-unfinity-full-art-basics.mse-style/symbol/r.png b/data/magic-m15-unfinity-full-art-basics.mse-style/symbol/r.png new file mode 100644 index 000000000..48ae55f4e Binary files /dev/null and b/data/magic-m15-unfinity-full-art-basics.mse-style/symbol/r.png differ diff --git a/data/magic-m15-unfinity-full-art-basics.mse-style/symbol/u.png b/data/magic-m15-unfinity-full-art-basics.mse-style/symbol/u.png new file mode 100644 index 000000000..ff722431f Binary files /dev/null and b/data/magic-m15-unfinity-full-art-basics.mse-style/symbol/u.png differ diff --git a/data/magic-m15-unfinity-full-art-basics.mse-style/symbol/w.png b/data/magic-m15-unfinity-full-art-basics.mse-style/symbol/w.png new file mode 100644 index 000000000..ded1ac408 Binary files /dev/null and b/data/magic-m15-unfinity-full-art-basics.mse-style/symbol/w.png differ diff --git a/data/magic.mse-game/script b/data/magic.mse-game/script index f061e7c05..041942e7c 100644 --- a/data/magic.mse-game/script +++ b/data/magic.mse-game/script @@ -33,7 +33,7 @@ include file: language include file: statistics_script include file: /magic-blends.mse-include/new-blends ############################################################## Versioning -version_date := {"2025-02-01 Template Pack 3.1.a: Mainframe Battles"} +version_date := {"2025-02-01 Template Pack 3.1.b: Mainframe Battles - Full Art Basics"} version := version_date ############################################################## Common filters ############################################################## Utility