mse version: 2.1.2 game: magic short name: Gen Walker full name: Hi-Res icon: card_sample.png position hint: 077 version: 2022-02-22 depends on: package: magic.mse-game version: 2020-04-25 depends on: package: magic-mainframe-extras.mse-include version: 2001-01-01 depends on: package: magic-modules.mse-include version: 2024-10-01 depends on: package: magic-mana-large.mse-symbol-font version: 2001-01-01 depends on: package: magic-mana-small.mse-symbol-font version: 2001-01-01 depends on: package: magic-mana-genevensis-large.mse-symbol-font version: 2022-02-22 depends on: package: magic-mana-genevensis-small.mse-symbol-font version: 2022-02-22 depends on: package: magic-genevensis-00-main.mse-style version: 2022-02-22 depends on: package: magic-genevensis-70-token.mse-style version: 2022-02-22 card width: 750 card height: 1046 card dpi: 300 ############################################################## Extra scripts init script: card_shape := { "planeswalker" } corners_default := { "diagonal" } swap_font := { true } swap_fonts_name_src := { styling.name_font } swap_fonts_name_default := [ name: {"Beleren Bold"}, size: {32}, color: {"black"}, vertical: {0}, italic: {""} ] swap_fonts_type_src := { styling.type_font } swap_fonts_type_default := [ name: {"Beleren Bold"}, size: {25}, color: {"black"}, vertical: {0}, italic: {""} ] swap_fonts_body_src := { styling.text_font } swap_fonts_body_default := [ name: {"MPlantin"}, size: {font_size()}, color: {"black"}, vertical: {0}, italic: {"MPlantin-Italic"} ] swap_fonts_pt_src := { styling.PT_font } swap_fonts_pt_default := [ name: {"Beleren Bold"}, size: {32}, color: {"black"}, vertical: {0}, italic: {""} ] swap_fonts_pt2_src := { styling.loyalty_font } swap_fonts_pt2_default := [ name: {"Beleren Bold"}, size: {32}, color: {"black"}, vertical: {0}, italic: {""} ] swap_fonts_name2_src := { styling.alias_font } swap_fonts_name2_default := [ name: {"Beleren Bold"}, size: {18}, color: {"black"}, vertical: {0}, italic: {""} ] swap_fonts_name3_src := { styling.auxiliary_font } swap_fonts_name3_default := [ name: {"Beleren Bold"}, size: {30}, color: {"black"}, vertical: {0}, italic: {""} ] mana_sort := sort_text@(order: "\\?XYZI[0123456789]VLHFDSCAIEP(WUBRG)") mana_sort_wedge := sort_text@(order: "\\?XYZI[0123456789]VLHFDSCAIEP(WBGUR)") mana_unsort := sort_text@(order: "[/\\?XYZI0123456789VLHFDSCAIEPWUBRG]") mana_sort_guild := sort_text@(order: "[\\?XYZI01234567890VLHFDSCAIEPWUBRG/|]") + replace@( match: "./.|././.|./././.|.[|]", in_context: "(^|[^/])($|[^/])", replace: {sort_text(order:"in_place(P(WUBRG))")} ) is_unsorted := { styling.remove_from_autocount } shrink_reminder := { if styling.shrink_transformation_reminder_text == "-" then 0 else clamp(to_int(styling.shrink_transformation_reminder_text), minimum: -40, maximum: 25) or else 0 } has_extended_art := { chosen(styling.extended_art, choice: "yes") or ( chosen(styling.extended_art, choice: "if land") and (lang_setting("is_land")(card.super_type) or lang_setting("is_plane")(card.super_type)) ) } has_crown := { chosen(styling.legend_crown, choice: "normal") or ( chosen(styling.legend_crown, choice: "normal if legendary") and lang_setting("is_legendary")(card.super_type) ) } has_special_crown := { chosen(styling.legend_crown, choice: "special") or ( chosen(styling.legend_crown, choice: "special if legendary") and lang_setting("is_legendary")(card.super_type) ) } has_leaf := { if has_special_crown() then false else if chosen(styling.land_leaf, choice: "yes") then true else if ( chosen(styling.land_leaf , choice: "if land") and (lang_setting("is_land")(card.super_type) or lang_setting("is_plane")(card.super_type)) ) then true else false } has_symbol := { not (styling.symbol == "none") } has_custom_rarity := { contains(set.mainframe_rarity_name, match: ".png") } un_png := replace@(match:".png", replace: "") proper_order := { if input == "gr" then "rg" else if input == "bu" then "ub" else if input == "uw" then "wu" else if input == "ru" then "ur" else if input == "gb" then "bg" else if input == "rb" then "br" else if input == "ug" then "gu" else if input == "wg" then "gw" else if input == "bw" then "wb" else if input == "wr" then "rw" else input } color_to_base_prefix := { initial_prefix := (if contains(card.casting_cost, match: "P") then "s" else "") + (if chosen(choice: "white", card.card_color) or contains(card.casting_cost, match: "W") then "w" else "") + (if chosen(choice: "blue", card.card_color) or contains(card.casting_cost, match: "U") then "u" else "") + (if chosen(choice: "black", card.card_color) or contains(card.casting_cost, match: "B") then "b" else "") + (if chosen(choice: "red", card.card_color) or contains(card.casting_cost, match: "R") then "r" else "") + (if chosen(choice: "green", card.card_color) or contains(card.casting_cost, match: "G") then "g" else "") ordered_prefix := proper_order(initial_prefix) if chosen(choice: "reversed", card.card_color) then reverse(ordered_prefix) else ordered_prefix } color_to_unforced_prefix := { prefix := color_to_base_prefix() if chosen(choice: "artifact", card.card_color) then "a" else if length(prefix) > 2 then "m" else if chosen(choice: "multicolor", card.card_color) and not styling.force_hybrid_frame then "m" else if length(prefix) == 0 then (if chosen(choice: "multicolor", card.card_color) then "m" else "c" ) else prefix } left_forced_prefix := { if chosen(choice: "white", styling.force_left_color) then "w" else if chosen(choice: "blue", styling.force_left_color) then "u" else if chosen(choice: "black", styling.force_left_color) then "b" else if chosen(choice: "red", styling.force_left_color) then "r" else if chosen(choice: "green", styling.force_left_color) then "g" else if chosen(choice: "artifact", styling.force_left_color) then "a" else if chosen(choice: "gold", styling.force_left_color) then "m" else if chosen(choice: "colorless", styling.force_left_color) then "c" else if chosen(choice: "purple", styling.force_left_color) then "s" else "" } right_forced_prefix := { if chosen(choice: "white", styling.force_right_color) then "w" else if chosen(choice: "blue", styling.force_right_color) then "u" else if chosen(choice: "black", styling.force_right_color) then "b" else if chosen(choice: "red", styling.force_right_color) then "r" else if chosen(choice: "green", styling.force_right_color) then "g" else if chosen(choice: "artifact", styling.force_right_color) then "a" else if chosen(choice: "gold", styling.force_right_color) then "m" else if chosen(choice: "colorless", styling.force_right_color) then "c" else if chosen(choice: "purple", styling.force_right_color) then "s" else "" } color_to_prefix := { unforced_prefix := color_to_unforced_prefix() left_forced := left_forced_prefix() right_forced := right_forced_prefix() left_prefix := if length(left_forced) == 0 then unforced_prefix.0 else left_forced right_prefix := if length(right_forced) == 0 then reverse(unforced_prefix).0 else right_forced if left_prefix == right_prefix then left_prefix else left_prefix + right_prefix } copyright_color := { right_color := reverse(color_to_prefix()).0 if right_color == "w" then rgb(236,211,123) else if right_color == "u" then rgb(055,119,186) else if right_color == "b" then rgb(120,120,120) else if right_color == "r" then rgb(161,037,030) else if right_color == "g" then rgb(049,108,043) else if right_color == "a" then rgb(116,153,169) else if right_color == "m" then rgb(191,128,000) else if right_color == "c" then rgb(131,114,103) else if right_color == "s" then rgb(150,103,192) else rgb(255,255,255) } border := { "/magic-genevensis-00-main.mse-style/borders/" + input + "_border.png" } image := { "/magic-genevensis-00-main.mse-style/elements/" + input + "/" + ( if side == "left" then color_to_prefix().0 else if side == "right" then reverse(color_to_prefix()).0 else color_to_prefix() ) + input + ".png" } frame_image := { image(( if has_extended_art() then "puma" else "" ) + "walker" + styling.taller_textboxes, side: "both") } color_indicator_dot_image := { prefix := color_to_base_prefix() count := length(prefix) if count == 0 then "/magic-genevensis-00-main.mse-style/elements/identity/cidentity.png" else if count == 1 then "/magic-genevensis-00-main.mse-style/elements/identity/" + prefix.0 + "identity.png" else if count == 2 then masked_blend( light: "/magic-genevensis-00-main.mse-style/elements/identity/" + prefix.0 + "identity.png", dark: "/magic-genevensis-00-main.mse-style/elements/identity/" + prefix.1 + "identity.png", mask: "/magic-genevensis-00-main.mse-style/imask_21.png") else if count == 3 then masked_blend( light: masked_blend( light: "/magic-genevensis-00-main.mse-style/elements/identity/" + prefix.0 + "identity.png", dark: "/magic-genevensis-00-main.mse-style/elements/identity/" + prefix.1 + "identity.png", mask: "/magic-genevensis-00-main.mse-style/imask_31.png"), dark: "/magic-genevensis-00-main.mse-style/elements/identity/" + prefix.2 + "identity.png", mask: "/magic-genevensis-00-main.mse-style/imask_32.png") else if count == 4 then masked_blend( light: masked_blend( light: masked_blend( light: "/magic-genevensis-00-main.mse-style/elements/identity/" + prefix.0 + "identity.png", dark: "/magic-genevensis-00-main.mse-style/elements/identity/" + prefix.1 + "identity.png", mask: "/magic-genevensis-00-main.mse-style/imask_41.png"), dark: "/magic-genevensis-00-main.mse-style/elements/identity/" + prefix.2 + "identity.png", mask: "/magic-genevensis-00-main.mse-style/imask_42.png"), dark: "/magic-genevensis-00-main.mse-style/elements/identity/" + prefix.3 + "identity.png", mask: "/magic-genevensis-00-main.mse-style/imask_43.png") else masked_blend( light: masked_blend( light: masked_blend( light: masked_blend( light: "/magic-genevensis-00-main.mse-style/elements/identity/" + prefix.0 + "identity.png", dark: "/magic-genevensis-00-main.mse-style/elements/identity/" + prefix.1 + "identity.png", mask: "/magic-genevensis-00-main.mse-style/imask_51.png"), dark: "/magic-genevensis-00-main.mse-style/elements/identity/" + prefix.2 + "identity.png", mask: "/magic-genevensis-00-main.mse-style/imask_52.png"), dark: "/magic-genevensis-00-main.mse-style/elements/identity/" + prefix.3 + "identity.png", mask: "/magic-genevensis-00-main.mse-style/imask_53.png"), dark: "/magic-genevensis-00-main.mse-style/elements/identity/" + prefix.4 + "identity.png", mask: "/magic-genevensis-00-main.mse-style/imask_54.png") } symbol_map := [ "1 triangle" : "symbol1triangle" "1 triangle flipped" : "symbol1triangleflipped" "2 triangles" : "symbol2triangle" "compass" : "symbolcompass" "land" : "symbolland" "rising" : "symbolrising" "risen" : "symbolrisen" "closed fan" : "symbolclosedfan" "open fan" : "symbolopenfan" "sun / day" : "symbolsun" "moon / night" : "symbolmoon" "eldrazi" : "symboleldrazi" "brother's war" : "symbolbrowar" "arena" : "symbolarena" "acorn" : "symbolacorn" "swap" : "symbolswap" "tombstone" : "symboltomb" "multitype" : "symbolmultitype" "structure" : "symbolstructure" "creature" : "symbolcreature" "planeswalker" : "symbolplaneswalker" "instant" : "symbolinstant" "sorcery" : "symbolsorcery" "artifact" : "symbolartifact" "enchantment" : "symbolenchantment" "lesson" : "symbollesson" "custom" : "symbolcustom" ] symbol_image := { name := symbol_map[styling.symbol] or else "" image(name, side: "left") } reminder_image := { if styling.transformation_reminder == "notch" then image("remindernotchright" + (if card.pt == "" and card.loyalty == "" then "low" else "") + "transparent", side: "right") else image("reminderwalker" + styling.transformation_reminder, side: "both") } pt_image := { image("walkerpt", side: "right") } opacity_watermark_image := { image := if styling.watermark == "setsymbol" or styling.watermark == "’setsymbol’" or styling.watermark == "'setsymbol'" then set_symbol_image() else if contains(match: ".png", styling.watermark) then ("/magic-mainframe-extras.mse-include/" + styling.watermark) else "" if styling.watermark_opacity_percentage == "" then image else set_alpha(image, alpha: get_alpha(styling.watermark_opacity_percentage, default: 100)) } watermark_left := { 219 - type_shift()/2 } watermark_top := { 653 - type_shift() } watermark_size := { 312 + type_shift() } set_symbol_image := { image := symbol_variation(symbol: set.symbol, variation: "watermark") enlarged_image := enlarge(border_size: 0.03, image) shadow_image := drop_shadow(offset_x: -0.01, offset_y: 0.03, blur_radius: 0.02, alpha: 1, color: rgb(0,0,0), enlarged_image) set_combine(combine:"shadow", shadow_image) } crown_image := { name := "crown" + (if has_special_crown() then "special" else "") image(name, side: "both") } leaf_image := { name := "leafwalker" image(name, side: "both") } leaf_bottom_image := { name := "leafwalkerbottom" image(name, side: "both") } legend_leaf_image := { name := "legendleaf" image(name, side: "both") } insignia_image := { name := "insignia" + styling.insignia image(name, side: "both") } illustrator_brush_image := { recolor_image("/magic-genevensis-00-main.mse-style/illustrator_brush_" + input + ".png", color: if styling.illustrator_text_color == rgb(255,254,255) then copyright_color() else styling.illustrator_text_color ) } opacity_textbox_image := { base_image := if styling.textbox_color == rgb(255,254,255) then crop_safe(image("walkertextbox" + styling.taller_textboxes, side: "both"), left: 0, top: textbox_top(), width: 750, height: textbox_height()) else if styling.textbox_color == rgb(255,255,254) then crop_safe(image("walkertextbox" + styling.taller_textboxes + "light", side: "both"), left: 0, top: textbox_top(), width: 750, height: textbox_height()) else recolor_image("textbox_background.png", color: styling.textbox_color) set_alpha(base_image, alpha: get_alpha(styling.textbox_opacity_percentage, default: 70)) } opacity_namebox_image := { set_alpha(image("name", side: "both"), alpha: get_alpha(styling.namebox_opacity_percentage, default: 100)) } opacity_typebox_image := { set_alpha(image("type", side: "both"), alpha: get_alpha(styling.typebox_opacity_percentage, default: 100)) } 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 } mainframe_walker := { true } mainframe_walker_text_script := { count := abilities_count() if count == 6 then combined_editor(field1: card.level_1_text, separator1: "\n", field2: card.level_2_text, separator2: "\n", field3: card.level_3_text, separator3: "\n", field4: card.level_4_text, separator4: "\n", field5: card.level_5_text, separator5: "\n", field6: card.level_6_text) else if count == 5 then combined_editor(field1: card.level_1_text, separator1: "\n", field2: card.level_2_text, separator2: "\n", field3: card.level_3_text, separator3: "\n", field4: card.level_4_text, separator4: "\n", field5: card.level_5_text) else if count == 4 then combined_editor(field1: card.level_1_text, separator1: "\n", field2: card.level_2_text, separator2: "\n", field3: card.level_3_text, separator3: "\n", field4: card.level_4_text) else if count == 3 then combined_editor(field1: card.level_1_text, separator1: "\n", field2: card.level_2_text, separator2: "\n", field3: card.level_3_text) else if count == 2 then combined_editor(field1: card.level_1_text, separator1: "\n", field2: card.level_2_text) else forward_editor(field: card.level_1_text) } margin_left := { if input == "lv1" then (if card.loyalty_cost_1 == "" then 0 else 400) else if input == "lv2" then (if card.loyalty_cost_2 == "" then 0 else 400) else if input == "lv3" then (if card.loyalty_cost_3 == "" then 0 else 400) else if input == "lv4" then (if card.loyalty_cost_4 == "" then 0 else 400) else if input == "lv5" then (if card.loyalty_cost_5 == "" then 0 else 400) else if input == "lv6" then (if card.loyalty_cost_6 == "" then 0 else 400) else 0 } text_filter := text_filter + {apply_margins(input, name:margin_code)} + {add_spacers(input, name:margin_code)} add_spacers := { #The 'then ""' has a zero-width space inside if input == "" and level_is_active(name) then "​" else input } level_is_active := { if input == "lv6" then abilities_count() >= 6 else if input == "lv5" then abilities_count() >= 5 else if input == "lv4" then abilities_count() >= 4 else if input == "lv3" then abilities_count() >= 3 else if input == "lv2" then abilities_count() >= 2 else true } ability_top := { if card_style.text.layout.blocks[input].bottom or else 0 > 0 then to_int(card_style.text.top) + to_int(card_style.text.layout.blocks[input].top) else 1200 } ability_center := { if card_style.text.layout.blocks[input].bottom or else 0 > 0 then to_int(card_style.text.top) + to_int(card_style.text.layout.blocks[input].middle) else 1200 } ability_bottom := { if card_style.text.layout.blocks[input].bottom or else 0 > 0 then to_int(card_style.text.top) + to_int(card_style.text.layout.blocks[input].bottom) else 1200 } abilities_count := { if styling.number_of_textboxes == "three" then 3 else if styling.number_of_textboxes == "four" then 4 else if styling.number_of_textboxes == "two" then 2 else if styling.number_of_textboxes == "five" then 5 else if styling.number_of_textboxes == "one" then 1 else 6 } is_ult := { value := to_int(card["loyalty_cost_" + input]) or else 0 if (to_int(card.loyalty_cost_6) or else 0) < value then false else if (to_int(card.loyalty_cost_5) or else 0) < value then false else if (to_int(card.loyalty_cost_4) or else 0) < value then false else if (to_int(card.loyalty_cost_3) or else 0) < value then false else if (to_int(card.loyalty_cost_2) or else 0) < value then false else if (to_int(card.loyalty_cost_1) or else 0) < value then false else true } loyal_move := { clamp((to_int(pull_comma_array(styling.move_loyalty_costs, cell:input-1, end:0, default:0)) or else 0), minimum: -700, maximum: 700) } separator_move := { clamp((to_int(pull_comma_array(styling.move_separators, cell:input-1, end:0, default:0)) or else 0), minimum: -500, maximum: 500) } chop_top := { clamp((to_int(pull_comma_array(styling.chop_textbox, cell:0, end:0, default:0)) or else 0), minimum: -500, maximum: 500) } chop_bot := { clamp((to_int(pull_comma_array(styling.chop_textbox, cell:1, end:0, default:0)) or else 0), minimum: -500, maximum: 500) } chop_right := { clamp((to_int(pull_comma_array(styling.chop_textbox, cell:2, end:0, default:0)) or else 0), minimum: -500, maximum: 500) } chop_rarity_top := { clamp((to_int(pull_comma_array(styling.shrink_rarity_symbol, cell:0, end:0, default:0)) or else 0), minimum: -500, maximum: 500) } chop_rarity_bot := { clamp((to_int(pull_comma_array(styling.shrink_rarity_symbol, cell:1, end:0, default:0)) or else 0), minimum: -500, maximum: 500) } chop_rarity_left := { clamp((to_int(pull_comma_array(styling.shrink_rarity_symbol, cell:2, end:0, default:0)) or else 0), minimum: -500, maximum: 500) } chop_rarity_right := { clamp((to_int(pull_comma_array(styling.shrink_rarity_symbol, cell:3, end:0, default:0)) or else 0), minimum: -500, maximum: 500) } textbox_top := { 653 - type_shift() } textbox_height := { 393 + type_shift() } stripe_top := { -to_int(( -ability_bottom(input-1) - ability_top(input) )/2) - 6 - ( -separator_move(input)) } image_left := { if has_extended_art() or styling.stretch_image_to_whole_card then 0 else if get_alpha(styling.namebox_opacity_percentage, default: 100) < 1.0 then 45 else 54 } image_right := { if has_extended_art() or styling.stretch_image_to_whole_card then 750 else if styling.transformation_reminder == "notch" then (if card.pt == "" and card.loyalty == "" then 709 else 711) else if get_alpha(styling.namebox_opacity_percentage, default: 100) < 1.0 then 705 else 696 } image_width := { image_right() - image_left() } image_top := { if styling.stretch_image_to_whole_card then 0 else if get_alpha(styling.namebox_opacity_percentage, default: 100) < 1.0 then 50 else 114 } image_bottom := { if styling.stretch_image_to_whole_card then 1046 else if get_alpha(styling.textbox_opacity_percentage, default: 70) < 1.0 then 972 else if get_alpha(styling.typebox_opacity_percentage, default: 100) < 1.0 then 652 else 583 } image_height := { image_bottom() - image_top() } current_mask := { frame := if has_extended_art() then "extended_" else "bordered_" notch := if styling.transformation_reminder != "notch" then "none_" else if card.pt == "" and card.loyalty == "" then "low_" else if card.pt != "" and card.loyalty != "" then "high_" else "mid_" type := styling.taller_textboxes "mask/" + frame + notch + type + ".png" } alt_rarity := { styling.alt_rarity_color != "" } alt_symbol := { string := if match(styling.alt_rarity_color, match:":$") then styling.alt_rarity_color else "83,67,53:177,150,131:0,0,0:0,0,0:0.07:" colons := length(filter_text(string, match:":")) color := split_text(string, match:",|:") splits := split_text(string, match:":") if colons == 4 then color := split_text(string+"0.07:", match:",|:") else if colons == 3 then color := split_text(string+splits[2]+"0.07:", match:",|:") else if colons == 2 then color := split_text(string+"0,0,0:0,0,0:0.07:", match:",|:") else if colons == 1 then color := split_text(string+splits[0]+":0,0,0:0,0,0:0.07:", match:",|:") symbol_variation(symbol:set.symbol, border_radius: color.12, fill_type: "linear gradient", fill_color_1: rgb(color.0, color.1, color.2), fill_color_2: rgb(color.3, color.4, color.5), border_color_1: rgb(color.6, color.7, color.8), border_color_2: rgb(color.9, color.10, color.11), center_x:0.5, center_y:0.5, end_x:1, end_y:1) } popout_left := { split := split_comma(styling.popout_image_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_image_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_image_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_image_coordinates); if length(split) > 3 and split.3 != "" then clamp(split.3, minimum: 0, maximum: 2000) else 0 } split_comma := split_text@(match: " *, *") nameline_left_margin := { if has_symbol() then 51 else 0 } nameline_right_margin := { if card.casting_cost != "" then (card_style.casting_cost.content_width + 8) else 0 } name_margin := { name_left_margin := nameline_left_margin() name_right_margin := nameline_right_margin() if name_left_margin > name_right_margin then name_left_margin else name_right_margin } typeline_left_margin := { if has_identity() then 39 else 0 } typeline_right_margin := { if set.shorten_types_for_rarity then (60 - chop_rarity_left()) else 0 } type_margin := { type_left_margin := typeline_left_margin() type_right_margin := typeline_right_margin() if type_left_margin > type_right_margin then type_left_margin else type_right_margin } type_shift := { if styling.taller_textboxes == "tallest" then 90 else if styling.taller_textboxes == "taller" then 60 else if styling.taller_textboxes == "tall" then 30 else 0 } font_size := { count := abilities_count() if count == 6 then 22 else if count == 5 then 23 else if count == 4 then 24 else if count == 3 then 26 else 28 } vorthos_default := { actual_set_code := if is_masterpiece() then set.masterpiece_set_code else set.set_code set.set_language + (if actual_set_code != "" and set.set_language != "" then " • " else "") + actual_set_code } fuse_image := { other_prefix := ( if contains(styling.fuse, match: "white") then "w" else if contains(styling.fuse, match: "blue") then "u" else if contains(styling.fuse, match: "black") then "b" else if contains(styling.fuse, match: "red") then "r" else if contains(styling.fuse, match: "green") then "g" else if contains(styling.fuse, match: "artifact") then "a" else if contains(styling.fuse, match: "gold") then "m" else if contains(styling.fuse, match: "colorless") then "c" else "s" ) own_prefix := if contains(styling.fuse, match: "right") then reverse(color_to_prefix()).0 else color_to_prefix().0 prefix := if own_prefix == other_prefix then own_prefix else if contains(styling.fuse, match: "right") then (own_prefix + other_prefix) else (other_prefix + own_prefix) size := fuse_image_size() "/magic-genevensis-00-main.mse-style/elements/fuse" + size + "/" + prefix + "fuse" + size + ".png" } fuse_image_size := { text_size := length(remove_tags(card.rule_text_3)) if text_size > 9 then "long" else if text_size < 7 then "short" else "medium" } crop_safe := { if left < 0 or top < 0 or width <= 0 or height <= 0 or left + width > 750 or top + height > 1046 then "" else crop(input, offset_x: left, offset_y: top, width: width, height: height) } clamp := { if input < minimum then minimum else if input > maximum then maximum else input } ############################################################## Set info fields set info style: symbol: variation: name: basic land border radius: 0.07 fill type: linear gradient fill color 1: rgb(116,186,112) fill color 2: rgb(38,90,30) border color 1: rgb(0, 0, 0) border color 2: rgb(0, 0, 0) #fill color 1: rgb(183, 151, 213) #fill color 2: rgb(121, 80, 163) #border color 1: rgb(0, 0, 0) #border color 2: rgb(0, 0, 0) set info style: symbol: variation: name: common border radius: 0.07 fill type: solid fill color: rgb(0,0,0) border color: rgb(255,255,255) set info style: symbol: variation: name: invertedcommon border radius: 0.07 fill type: linear gradient fill color 1: rgb(255, 255, 255) fill color 2: rgb(215, 215, 215) border color 1: rgb(0, 0, 0) border color 2: rgb(0, 0, 0) set info style: symbol: variation: name: uncommon border radius: 0.07 fill type: linear gradient fill color 1: rgb(224, 224, 224) fill color 2: rgb(84, 84, 84) border color 1: rgb(0, 0, 0) border color 2: rgb(0, 0, 0) set info style: symbol: variation: name: rare border radius: 0.07 fill type: linear gradient fill color 1: rgb(214, 196, 94) fill color 2: rgb(95, 84, 40) border color 1: rgb(0, 0, 0) border color 2: rgb(0, 0, 0) set info style: symbol: variation: name: mythic rare border radius: 0.07 fill type: linear gradient fill color 1: rgb(245, 148, 31) fill color 2: rgb(186, 45, 38) border color 1: rgb(0, 0, 0) border color 2: rgb(0, 0, 0) set info style: symbol: variation: name: masterpiece border radius: 0.07 fill type: linear gradient fill color 1: rgb(194, 22, 3) fill color 2: rgb(139, 0, 0) border color 1: rgb(0, 0, 0) border color 2: rgb(0, 0, 0) set info style: symbol: variation: name: purple border radius: 0.07 fill type: linear gradient fill color 1: rgb(180,0,245) fill color 2: rgb(100, 0, 165) border color 1: rgb(0, 0, 0) border color 2: rgb(0, 0, 0) ############################################################## Extra style options styling field: type: boolean name: center name description: Center the name text on the card? # localized caption: # fr: Centrer le nom # localized description: # fr: Aligner le nom au milieu de la carte? initial: no styling field: type: text name: namebox opacity percentage description: Set the opacity percentage for the nameline box. Opaque is 100, transparent is 0, default is 100. # localized caption: # fr: Pourcentage d'opacité du nom # localized description: # fr: Complètement opaque: 100. Complètement transparent: 0. Valeur par défaut: 100. styling field: type: boolean name: center type description: Center the type text on the card? # localized caption: # fr: Centrer le type # localized description: # fr: Aligner le type au milieu de la carte? initial: no styling field: type: text name: typebox opacity percentage description: Set the opacity percentage for the typeline box. Opaque is 100, transparent is 0, default is 100. # localized caption: # fr: Pourcentage d'opacité du type # localized description: # fr: Complètement opaque: 100. Complètement transparent: 0. Valeur par défaut: 100. styling field: type: choice name: number of textboxes description: Number of textboxes for abilities and passives. Modify content of textboxes if this has trouble updating after being changed. # localized caption: # fr: Nombre d'abilités # localized description: # fr: Combien d'abilités et/ou de passifs sont sur la carte? (Modifiez le contenu des boites de texte si elles ne se mettent pas à jour de suite.) choice: one choice: two choice: three choice: four choice: five choice: six initial: three styling field: type: choice name: taller textboxes description: Increase the height of the textbox. # localized caption: # fr: Taille de la boite de text # localized description: # fr: Augmenter la taille de la boite du text de règles. choice: normal choice: tall choice: taller choice: tallest initial: normal styling field: type: choice name: stripes description: Should there be gray lines separating abilities? # localized caption: # fr: Rayures # localized description: # fr: Utiliser des rayures grises pour séparer les abilités? choice: normal choice: line choice: none initial: normal 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" # localized caption: # fr: Déplacer les séparations # localized description: # fr: Déplacer les limites entre les abilités vers le bas de N pixels. Utilisez des négatifs pour déplacer vers le haut. Format: "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" # localized caption: # fr: Déplacer les coûts de loyauté # localized description: # fr: Déplacer les coûts de loyauté vers le bas de N pixels. Utilisez des négatifs pour déplacer vers le haut. Format: "1,2,3,4,5,6" styling field: type: text name: chop textbox description: Chops the top, bottom, and right edges of the rule textbox by this many pixels. Formatted as "1,2,3" # localized caption: # fr: Tronquer le texte de règles # localized description: # fr: Réduire la taille du haut, du bas, et de la droite de la zone du texte de règles de N pixels. Format: "1,2,3" styling field: type: text name: textbox opacity percentage description: Set the opacity percentage for textboxes and stripes. Opaque is 100, transparent is 0, default is 70. # localized caption: # fr: Pourcentage d'opacité de l'arrière-plan du texte # localized description: # fr: Complètement opaque: 100. Complètement transparent: 0. Valeur par défaut: 70. styling field: type: color name: textbox color description: Use the specified color for the textbox background. # localized caption: # fr: Couleur de l'arrière-plan du texte # localized description: # fr: Utiliser la couleur spécifiée pour l'arrière-plan du texte. choice: name: black color: rgb(0,0,0) choice: name: white color: rgb(255,255,255) choice: name: use card color (light) color: rgb(255,255,254) choice: name: use card color (dark) color: rgb(255,254,255) initial: white styling field: type: choice name: extended art description: Should the illustration extend to the edge of the card? Disables the insignia. # localized caption: # fr: Illustration étendue # localized description: # fr: Étirer l'illustration jusqu'aux bords de la carte? Désactive l'insigne. choice: yes choice: if land choice: no initial: no 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. # localized caption: # en: popout art coordinates # fr: Coordonée de l'image superposée # localized description: # fr: Rajoute un champ d'illustration supplémentaire aux coordonées spécifiées. Formatté ainsi: "gauche,droite,largeur,longueur". Permet à l'illustration de passer devant le cadre de la carte. styling field: type: boolean name: stretch image to whole card description: Enable to make the illustration cover the entire card. Helps make extended popout art. # localized caption: # en: Stretch art to whole card # fr: Illustration non confinée # localized description: # fr: Si activé, l'illustration s'étend sur toute la carte. Combiné à un masque personnalisé, cela permet à l'illustration de passer devant le cadre de la carte. initial: no styling field: type: text name: custom mask description: The file name of a '.png' image inside /magic-mainframe-extras.mse-include/ used as a custom mask for illustration popout effects. (Alternative to popout image coordinates.) # localized caption: # fr: Masque personnalisé # localized description: # fr: Le chemin d'une image '.png' à utiliser comme masque de l'illustration. styling field: type: text name: watermark description: The name of a '.png' image inside the /magic-mainframe-extras.mse-include/ folder. Dimensions can be anything, but native is 312x312. Alternatively, write 'setsymbol' to use the set symbol instead. # localized caption: # fr: Filigrane # localized description: # fr: Le chemin d'une image '.png' située dans le dossier /magic-mainframe-extras.mse-include/. Alternativement, écrivez 'setsymbol' pour utiliser le symbole du Set comme filigrane. styling field: type: text name: watermark opacity percentage description: Set the opacity percentage for watermark. Opaque is 100, transparent is 0. Leave blank to use image opacity. # localized caption: # fr: Pourcentage d'opacité du filigrane # localized description: # fr: Complètement opaque: 100. Complètement transparent: 0. Laissez vide pour utiliser l'opacité native du filigrane. styling field: type: choice name: legend crown description: Is the legend crown visible? Special crown disables the land leaf and the insignia. # localized caption: # fr: Couronne légendaire # localized description: # fr: La couronne légendaire est-elle visible? La couronne spéciale désactive l'insigne. choice: special choice: special if legendary choice: normal choice: normal if legendary choice: none initial: normal if legendary styling field: type: choice name: land leaf description: Is the land leaf visible? Disabled by the special crown. # localized caption: # fr: Feuille de terrain # localized description: # fr: La feuille de terrain est-elle visible? choice: yes choice: if land choice: no initial: if land styling field: type: choice name: insignia description: Is an insignia visible? Disabled by extended art and special crown. # localized caption: # fr: Insigne # localized description: # fr: L'insigne est-elle visible? Désactivé par l'illustration étendue et la couronne spéciale. choice: none choice: lieutenant choice: commander initial: none styling field: type: choice name: symbol description: Use a symbol next to the card's name? # localized caption: # fr: Symbole # localized description: # fr: Utiliser un symbole à côté du nom de la carte? choice: none choice: 1 triangle choice: 1 triangle flipped choice: 2 triangles choice: compass choice: land choice: rising choice: risen choice: closed fan choice: open fan choice: sun / day choice: moon / night choice: eldrazi choice: brother's war choice: arena choice: acorn choice: swap choice: tombstone choice: lesson choice: multitype choice: structure choice: creature choice: planeswalker choice: instant choice: sorcery choice: artifact choice: enchantment choice: custom initial: none styling field: type: choice name: transformation reminder description: Use a text field to remind some info of the other side? # localized caption: # fr: Rappel de transformation # localized description: # fr: Utiliser un champ de texte pour rappeler certaines informations du dos de la carte? choice: none choice: short choice: medium choice: long choice: notch initial: none styling field: type: text name: shrink transformation reminder text description: Reduces the reminder text's font size by this many points. # localized caption: # fr: Rapetisser le text de rappel # localized description: # fr: Réduire la taille du text de rappel de N points. styling field: type: choice name: fuse description: Use a textbox overlapping two cards? Choose the color of the other card. Write the entire text on both cards. # localized caption: # fr: Fusion # localized description: # fr: Utiliser un champ de texte commun à deux cartes? Choisissez la couleur de l'autre carte. Écrivez l'entièreté du texte sur chaque carte. choice: none choice: left, mixed with white choice: left, mixed with blue choice: left, mixed with black choice: left, mixed with red choice: left, mixed with green choice: left, mixed with artifact choice: left, mixed with gold choice: left, mixed with colorless choice: left, mixed with purple choice: right, mixed with white choice: right, mixed with blue choice: right, mixed with black choice: right, mixed with red choice: right, mixed with green choice: right, mixed with artifact choice: right, mixed with gold choice: right, mixed with colorless choice: right, mixed with purple initial: none styling field: type: boolean name: banner description: Use a text field to write info on the left of the card? # localized caption: # fr: Bannière # localized description: # fr: Utiliser un champ de texte sur la gauche de la carte? 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:R3,G3,B3:R4,G4,B4:br:". 1 and 2 are fill colors, 3 and 4 border colors, br is the border radius. Must end with : # localized caption: # fr: Couleur de rareté # localized description: # fr: Utiliser une couleur personnalisée pour le symbole de rareté? Format: "R1,G1,B1:R2,G2,B2:R3,G3,B3:R4,G4,B4:br:". 1 et 2 sont les couleurs de remplissage, 3 et 4 sont les couleur de bordure, br est la taille de bordure. Doit finir par : styling field: type: boolean name: inverted common symbol description: Use the color inverted common rarity symbol, like in Coldsnap? # localized caption: # fr: Couleur des courantes inversée # localized description: # fr: Utiliser des couleurs inversées pour le symbole de rareté des cartes courantes, comme dans l'extension 'Coldsnap'? initial: no styling field: type: text name: shrink rarity symbol description: Shrinks the top, bottom, left, and right edges of the rarity symbol by this many pixels. Use negatives to enlarge. Formatted as "1,2,3,4" # localized caption: # fr: Rapetisser la rareté # localized description: # fr: Réduire la taille du haut, du bas, de la gauche, et de la droite du symbole de rareté. Utilisez des négatifs pour agrandir. Format: "1,2,3,4" styling field: type: choice name: force left color description: Use a specified color for the left half of the frame. # localized caption: # fr: Forcer la couleur gauche # localized description: # fr: Utiliser la couleur spécifiée pour la moitié gauche de la carte. choice: none choice: white choice: blue choice: black choice: red choice: green choice: artifact choice: gold choice: colorless choice: purple initial: none styling field: type: choice name: force right color description: Use a specified color for the right half of the frame. # localized caption: # fr: Forcer la couleur droite # localized description: # fr: Utiliser la couleur spécifiée pour la moitié droite de la carte. choice: none choice: white choice: blue choice: black choice: red choice: green choice: artifact choice: gold choice: colorless choice: purple initial: none styling field: type: boolean name: force hybrid frame description: Use a hybrid 2-color frame instead of a gold frame even if the casting cost has no hybrid mana? # localized caption: # fr: Forcer les couleurs hybrides # localized description: # fr: Utiliser un cadre hybride à deux couleurs au lieu d'un cadre doré, même si la carte n'a pas de mana hybride dans son coût de lancement? initial: yes styling field: type: color name: illustrator text color description: Use the specified color for the illustrator, copyright, and vorthos text. # localized caption: # fr: Couleur du copyright # localized description: # fr: Utiliser la couleur spécifiée pour le nom de l'artiste et les lignes de copyright. choice: name: black color: rgb(0,0,0) choice: name: white color: rgb(255,255,255) choice: name: use card color color: rgb(255,254,255) initial: white styling field: type: boolean name: remove from autocount description: Remove this card from the automatic card count, to allow for overcounted cards, like in Planeswalker Decks? # localized caption: # fr: Retirer du compte # localized description: # fr: Ne pas compter cette carte dans la numérotation du Set? 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? # localized caption: # fr: Mana de guilde # localized description: # fr: Utiliser les symboles de guildes au lieu des symboles moitié/moitié pour le mana hybride? initial: no styling field: type: package choice name: casting cost mana symbols description: Mana symbols used for casting cost, name, banner, fuse and transformation reminder. # localized caption: # fr: Symboles des coûts # localized description: # fr: Les symboles à utiliser dans le coût de lancement, le nom, la bannière, la fusion, et le rappel de transformation. match: magic-mana-*.mse-symbol-font initial: magic-mana-genevensis-large.mse-symbol-font styling field: type: package choice name: text box mana symbols description: Mana symbols used for rule text. # localized caption: # fr: Symboles des textes # localized description: # fr: Les symboles à utiliser dans le texte de règles. match: magic-mana-*.mse-symbol-font initial: magic-mana-genevensis-small.mse-symbol-font styling field: type: choice name: tap symbol description: What tap and untap symbols should be used on cards? initial: modern choice: modern choice: old choice: diagonal T styling field: type: text name: name 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. Hover your mouse over the font file to see it's details, it's Title is it's name. # localized caption: # fr: Police du nom # localized description: # fr: Format: "nom de la police;taille;couleur;décalage vertical;nom de la police italique". Les 4 derniers sont optionnels. Format couleur: "R,G,B,A". Survolez le fichier de police avec la souris pour voir son titre, qui est son nom. styling field: type: text name: type 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. Hover your mouse over the font file to see it's details, and write it's Title here. # localized caption: # fr: Police du type # localized description: # fr: Format: "nom de la police;taille;couleur;décalage vertical;nom de la police italique". Les 4 derniers sont optionnels. Format couleur: "R,G,B,A". Survolez le fichier de police avec la souris pour voir son titre, qui est son nom. styling field: type: text name: text 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. Hover your mouse over the font file to see it's details, and write it's Title here. # localized caption: # fr: Police du texte des règles # localized description: # fr: Format: "nom de la police;taille;couleur;décalage vertical;nom de la police italique". Les 4 derniers sont optionnels. Format couleur: "R,G,B,A". Survolez le fichier de police avec la souris pour voir son titre, qui est son nom. styling field: type: text name: loyalty 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. Hover your mouse over the font file to see it's details, and write it's Title here. # localized caption: # fr: Police de loyauté # localized description: # fr: Format: "nom de la police;taille;couleur;décalage vertical;nom de la police italique". Les 4 derniers sont optionnels. Format couleur: "R,G,B,A". Survolez le fichier de police avec la souris pour voir son titre, qui est son nom. styling field: type: text name: PT 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. Hover your mouse over the font file to see it's details, and write it's Title here. # localized caption: # fr: Police de force et endurance # localized description: # fr: Format: "nom de la police;taille;couleur;décalage vertical;nom de la police italique". Les 4 derniers sont optionnels. Format couleur: "R,G,B,A". Survolez le fichier de police avec la souris pour voir son titre, qui est son nom. styling field: type: text name: 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. Hover your mouse over the font file to see it's details, and write it's Title here. # localized caption: # fr: Police de l'alias # localized description: # fr: Format: "nom de la police;taille;couleur;décalage vertical;nom de la police italique". Les 4 derniers sont optionnels. Format couleur: "R,G,B,A". Survolez le fichier de police avec la souris pour voir son titre, qui est son nom. styling field: type: text name: auxiliary font description: Font used for the transformation reminder, fuse, choice bar and banner. 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. # localized caption: # fr: Police auxiliaire # localized description: # fr: Police utilisée pour la bannière, la fusion, la barre de choix et le rappel de transformation. Format: "nom de la police;taille;couleur;décalage vertical;nom de la police italique". Les 4 derniers sont optionnels. Format couleur: "R,G,B,A". styling style: use guild mana symbols: render style: both choice images: yes: /magic-mana-genevensis-large.mse-symbol-font/mana_guild_wu.png no: /magic-mana-genevensis-large.mse-symbol-font/mana_bi_wu.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 card style: ############################# Background card color: left: 0 top: 0 width: 750 height: 1046 z index: -20 render style: image popup style: in place image: { frame_image() } #mask: { (if has_extended_art() then "puma_" else "") + styling.taller_textboxes + "_mask.png" } ############################# Name line name: left: { 64 + (if styling.center_name then name_margin() else nameline_left_margin()) } top: { 55 + name_font_vertical() } right: { 686 - (if styling.center_name then name_margin() else nameline_right_margin()) } height: 48 alignment: { if styling.center_name then "center middle shrink-overflow" else "left middle shrink-overflow" } z index: 42 font: name: { name_font() } italic name: { name_font_italic() } size: { name_font_size() } color: { name_font_color() } symbol font: name: { styling.casting_cost_mana_symbols } size: { name_font_size() } casting cost: right: 687 top: 55 width: { max(60, card_style.casting_cost.content_width) + 10 } height: 48 alignment: middle right font: name: { body_font() } size: 32 symbol font: name: { styling.casting_cost_mana_symbols } size: 32 always symbol: true z index: 42 alias: left: 149 top: { 117 + name2_font_vertical() } width: 452 height: 24 alignment: center middle shrink-overflow z index: 42 font: name: { name2_font() } italic name: { name2_font_italic() } size: { name2_font_size() } color: { name2_font_color() } ############################# Image image: left: { image_left() } top: { image_top() } width: { image_width() } height: { image_height() } z index: -10 mask: { crop_safe(current_mask(), width: image_width(), height: image_height(), left: image_left(), top: image_top()) } mainframe image: left: { popout_left() } top: { popout_top() } width: { popout_width() } height: { popout_height() } z index: 2000 ############################# Card type type: left: { 73 + (if styling.center_type then type_margin() else (typeline_left_margin() - (if (styling.taller_textboxes == "taller" or styling.taller_textboxes == "tallest") and styling.banner then -10 else 0))) } top: { 596 - type_shift() + type_font_vertical() } right: { 677 - (if styling.center_type then type_margin() else typeline_right_margin()) } height: 44 alignment: { if styling.center_type then "center middle shrink-overflow" else "left middle shrink-overflow" } z index: 42 font: name: { type_font() } italic name: { type_font_italic() } size: { type_font_size() } color: { type_font_color() } separator color: red rarity: left: { 620 - (-chop_rarity_left()) } width: { 60 - chop_rarity_right() - chop_rarity_left() } top: { 588 - (-chop_rarity_top()) - type_shift() } bottom: { 648 - chop_rarity_bot() - type_shift() } z index: 40 render style: image choice images: basic land: script: if has_custom_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "c.png" else if alt_rarity() then alt_symbol() else symbol_variation(symbol: set.symbol, variation: "basic land") common: script: if has_custom_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "c.png" else if alt_rarity() then alt_symbol() else if styling.inverted_common_symbol then symbol_variation(symbol: set.symbol, variation: "invertedcommon") else symbol_variation(symbol: set.symbol, variation: "common") uncommon: script: if has_custom_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "u.png" else if alt_rarity() then alt_symbol() else symbol_variation(symbol: set.symbol, variation: "uncommon") rare: script: if has_custom_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "r.png" else if alt_rarity() then alt_symbol() else symbol_variation(symbol: set.symbol, variation: "rare") mythic rare: script: if has_custom_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "m.png" else if alt_rarity() then alt_symbol() else symbol_variation(symbol: set.symbol, variation: "mythic rare") masterpiece: script: if has_custom_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "mp.png" else if alt_rarity() then alt_symbol() else symbol_variation(symbol: set.symbol, variation: "masterpiece") special: script: if has_custom_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "s.png" else if alt_rarity() then alt_symbol() else symbol_variation(symbol: set.symbol, variation: "purple") ############################# Text boxes text: left: 73 top: { 661 - (-chop_top()) - type_shift() + body_font_vertical() } width: { 604 - chop_right() } bottom: { 953 - chop_bot() - ( if styling.transformation_reminder != "none" and styling.transformation_reminder != "notch" then 15 else 0 ) } font: name: { body_font() } italic name: { body_font_italic() } size: { body_font_size() } color: { body_font_color() } scale down to: 12 symbol font: name: { styling.text_box_mana_symbols } size: { body_font_size() } scale down to: 12 alignment: middle left mask: { if card.loyalty != "" then ( if card.pt != "" then "text_mask_both.png" else "text_mask.png" ) else ( if card.pt != "" then "text_mask.png" else "" ) } z index: 44 line height hard: 1.2 line height line: 1.5 line height soft: { if abilities_count() == 4 then 0.87 else 0.9 } line height hard max: 1.4 line height line max: 2.2 rule text 3: left: { (if contains(styling.fuse, match: "right") then 750 else 0) - (if length(remove_tags(card.rule_text_3)) > 9 then 22 else 0) - 128 + 36 } top: { 521 + name3_font_vertical() } width: { if styling.fuse != "none" then (if length(remove_tags(card.rule_text_3)) > 9 then 228 else 184) else 0 } height: 54 z index: 160 alignment: center middle shrink-overflow font: name: { name3_font() } italic name: { name3_font_italic() } size: { name3_font_size() } color: { name3_font_color() } scale down to: 12 symbol font: name: { styling.text_box_mana_symbols } size: { name3_font_size() } scale down to: 12 ############################# Loyalty loyalty: z index: 46 left: { if card.pt == "" then 625 else 661 } top: { (if card.pt == "" then 942 else 886) + pt2_font_vertical() } width: 34 height: 68 alignment: center middle shrink-overflow font: name: { pt2_font() } italic name: { pt2_font_italic() } size: { pt2_font_size() } color: { pt2_font_color() } loyalty cost 1: z index: 46 left: 36 top: { ability_center(0) - 18 - ( -loyal_move(1)) + pt2_font_vertical() * 22/32 } width: 35 height: 37 alignment: center middle shrink-overflow font: name: { pt2_font() } italic name: { pt2_font_italic() } size: { pt2_font_size() * 22/32 } color: { pt2_font_color() } loyalty cost 2: z index: 46 left: 36 top: { ability_center(1) - 18 - ( -loyal_move(2)) + pt2_font_vertical() * 22/32 } width: { if abilities_count() >= 2 then 35 else 0 } height: 37 alignment: center middle shrink-overflow font: name: { pt2_font() } italic name: { pt2_font_italic() } size: { pt2_font_size() * 22/32 } color: { pt2_font_color() } loyalty cost 3: z index: 46 left: 36 top: { ability_center(2) - 18 - ( -loyal_move(3)) + pt2_font_vertical() * 22/32 } width: { if abilities_count() >= 3 then 35 else 0 } height: 37 alignment: center middle shrink-overflow font: name: { pt2_font() } italic name: { pt2_font_italic() } size: { pt2_font_size() * 22/32 } color: { pt2_font_color() } loyalty cost 4: z index: 46 left: 36 top: { ability_center(3) - 18 - ( -loyal_move(4)) + pt2_font_vertical() * 22/32 } width: { if abilities_count() >= 4 then 35 else 0 } height: 37 alignment: center middle shrink-overflow font: name: { pt2_font() } italic name: { pt2_font_italic() } size: { pt2_font_size() * 22/32 } color: { pt2_font_color() } loyalty cost 5: z index: 46 left: 36 top: { ability_center(4) - 18 - ( -loyal_move(5)) + pt2_font_vertical() * 22/32 } width: { if abilities_count() >= 5 then 35 else 0 } height: 37 alignment: center middle shrink-overflow font: name: { pt2_font() } italic name: { pt2_font_italic() } size: { pt2_font_size() * 22/32 } color: { pt2_font_color() } loyalty cost 6: z index: 46 left: 36 top: { ability_center(5) - 18 - ( -loyal_move(6)) + pt2_font_vertical() * 22/32 } width: { if abilities_count() >= 6 then 35 else 0 } height: 37 alignment: center middle shrink-overflow font: name: { pt2_font() } italic name: { pt2_font_italic() } size: { pt2_font_size() * 22/32 } color: { pt2_font_color() } ############################# PT pt: z index: 46 left: 552 top: { (if card.pt == "" then 890 else 950) + pt_font_vertical() } width: 120 height: 56 alignment: center middle shrink-overflow font: name: { pt_font() } italic name: { pt_font_italic() } size: { pt_font_size() } color: { pt_font_color() } scale down to: 12 separator color: red ############################# Copyright stuff illustrator: left: 225 top: 1013 width: 300 height: 20 z index: 110 alignment: top center font: name: Beleren Small Caps Bold size: 17 color: { if styling.illustrator_text_color == rgb(255,254,255) then copyright_color() else styling.illustrator_text_color } ############################################################## Extra card fields extra card field: type: text name: card code save value: false script: card_number := if set.automatic_card_numbers and not styling.remove_from_autocount then (card_number_m15() + " ") else "" if length(card_number) == 4 then card_number := "0" + card_number if set.automatic_copyright then combined_editor(prefix: card_number, field1: card.copyright, separator1: if card.copyright == "" then "" else " ", field2: card.card_code_text) else forward_editor(prefix: card_number, field: card.card_code_text) description: Card number and copyright, the default value can be changed on the 'set info' tab extra card field: type: choice name: image copy editable: false save value: false choice: image copy extra card field: type: choice name: transformation symbol editable: false save value: false choice: transformation symbol extra card field: type: choice name: transformation reminder editable: false save value: false choice: transformation reminder extra card field: type: text name: transformation reminder text save value: true extra card field: type: choice name: transformation reminder pt paste editable: false save value: false choice: transformation reminder pt paste extra card field: type: choice name: alias box editable: false save value: false choice: alias box extra card field: type: text name: ascend save value: true script: replace(value, match: " ", replace: "​") extra card field: type: choice name: ascend box editable: false save value: false choice: ascend box extra card field: type: choice name: color indicator dot editable: false save value: false choice: color indicator dot extra card field: type: choice name: illustrator brush editable: false save value: false choice: illustrator brush extra card field: type: choice name: illustrator brush 2 editable: false save value: false choice: illustrator brush 2 extra card field: type: text name: vorthos box save value: true default: vorthos_default() description: Vorthos box of this card, set code and set language, the default value can be changed on the 'set info' tab extra card field: type: choice name: loyalty box editable: false save value: false choice: loyalty extra card field: type: choice name: loyalty cost box 1 editable: false save value: false choice: loyalty cost box 1 extra card field: type: choice name: loyalty cost box 2 editable: false save value: false choice: loyalty cost box 2 extra card field: type: choice name: loyalty cost box 3 editable: false save value: false choice: loyalty cost box 3 extra card field: type: choice name: loyalty cost box 4 editable: false save value: false choice: loyalty cost box 4 extra card field: type: choice name: loyalty cost box 5 editable: false save value: false choice: loyalty cost box 5 extra card field: type: choice name: loyalty cost box 6 editable: false save value: false choice: loyalty cost box 6 extra card field: type: text name: colon 1 editable: false save value: false script: ":" extra card field: type: text name: colon 2 editable: false save value: false script: ":" extra card field: type: text name: colon 3 editable: false save value: false script: ":" extra card field: type: text name: colon 4 editable: false save value: false script: ":" extra card field: type: text name: colon 5 editable: false save value: false script: ":" extra card field: type: text name: colon 6 editable: false save value: false script: ":" extra card field: type: choice name: pt box editable: false save value: false choice: pt box extra card field: type: choice name: watermark image editable: false save value: false show statistics: false choice: watermark image extra card field: type: choice name: textbox stripe separator 1 editable: false save value: false choice: textbox stripe separator 1 extra card field: type: choice name: textbox stripe separator 2 editable: false save value: false choice: textbox stripe separator 2 extra card field: type: choice name: textbox stripe separator 3 editable: false save value: false choice: textbox stripe separator 3 extra card field: type: choice name: textbox stripe separator 4 editable: false save value: false choice: textbox stripe separator 4 extra card field: type: choice name: textbox stripe separator 5 editable: false save value: false choice: textbox stripe separator 5 extra card field: type: choice name: textbox background editable: false save value: false show statistics: false choice: textbox background extra card field: type: choice name: textbox stripe 1 editable: false save value: false show statistics: false choice: textbox stripe 1 extra card field: type: choice name: textbox stripe 2 editable: false save value: false show statistics: false choice: textbox stripe 2 extra card field: type: choice name: textbox stripe 3 editable: false save value: false show statistics: false choice: textbox stripe 3 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: typebox background editable: false save value: false show statistics: false choice: typebox background extra card field: type: choice name: crown editable: false save value: false show statistics: false choice: crown extra card field: type: choice name: leaf editable: false save value: false show statistics: false choice: leaf extra card field: type: choice name: leaf bottom editable: false save value: false show statistics: false choice: leaf bottom extra card field: type: choice name: legend leaf editable: false save value: false show statistics: false choice: legend leaf extra card field: type: choice name: insignia editable: false save value: false show statistics: false choice: insignia extra card field: type: choice name: fuse box editable: false save value: false show statistics: false choice: fuse box extra card field: type: color name: card color border editable: false save value: false show statistics: false script: set.border_color extra card field: type: color name: crown border editable: false save value: false show statistics: false script: set.border_color extra card field: type: color name: leaf border editable: false save value: false show statistics: false script: set.border_color extra card field: type: color name: leaf bottom border editable: false save value: false show statistics: false script: set.border_color extra card field: type: color name: legend leaf border editable: false save value: false show statistics: false script: set.border_color extra card field: type: color name: insignia border editable: false save value: false show statistics: false script: set.border_color extra card field: type: color name: symbol border editable: false save value: false show statistics: false script: set.border_color extra card field: type: color name: color indicator dot border editable: false save value: false show statistics: false script: set.border_color extra card field: type: color name: transformation reminder border editable: false save value: false show statistics: false script: set.border_color extra card field: type: color name: transformation reminder pt paste border editable: false save value: false show statistics: false script: set.border_color extra card field: type: color name: alias box border editable: false save value: false show statistics: false script: set.border_color extra card field: type: color name: ascend box border editable: false save value: false show statistics: false script: set.border_color extra card field: type: color name: loyalty border editable: false save value: false show statistics: false script: set.border_color extra card field: type: color name: loyalty cost 1 border editable: false save value: false show statistics: false script: set.border_color extra card field: type: color name: loyalty cost 2 border editable: false save value: false show statistics: false script: set.border_color extra card field: type: color name: loyalty cost 3 border editable: false save value: false show statistics: false script: set.border_color extra card field: type: color name: loyalty cost 4 border editable: false save value: false show statistics: false script: set.border_color extra card field: type: color name: loyalty cost 5 border editable: false save value: false show statistics: false script: set.border_color extra card field: type: color name: loyalty cost 6 border editable: false save value: false show statistics: false script: set.border_color extra card field: type: color name: pt border editable: false save value: false show statistics: false script: set.border_color extra card field: type: color name: fuse box border editable: false save value: false show statistics: false script: set.border_color extra card field: type: choice name: pride pin choice: none choice: lesbian choice: gay choice: bi choice: trans choice: pan choice: ace choice: aro choice: nonbinary choice: agender choice: genderfluid choice: cis choice: straight choice: rainbow initial: none save value: true editable: true extra card style: card code: left: 58 top: 1016 right: { 328 - ( card_style.illustrator.content_width / 2 ) } height: 20 z index: 110 alignment: top left shrink-overflow font: name: Beleren Small Caps Bold size: 15 color: { if styling.illustrator_text_color == rgb(255,254,255) then copyright_color() else styling.illustrator_text_color } image copy: left: { if has_extended_art() or styling.stretch_image_to_whole_card then 0 else 54 } top: { if styling.stretch_image_to_whole_card then 0 else 114 } width: { if has_extended_art() or styling.stretch_image_to_whole_card then 750 else 642 } height: { if styling.stretch_image_to_whole_card then 1046 else 858 } z index: 1000 visible: { contains(styling.custom_mask, match: ".png") } render style: image image: { card.image } mask: { "/magic-mainframe-extras.mse-include/" + styling.custom_mask } transformation symbol: left: 35 top: 45 height: 78 width: 73 z index: 8 visible: { has_symbol() } render style: image image: { symbol_image() } transformation reminder: left: { if styling.transformation_reminder == "notch" then 687 else 0 } top: { if styling.transformation_reminder == "notch" then (if card.loyalty == "" then (if card.pt == "" then 900 else 875) else (if card.pt == "" then 875 else 815)) else if styling.transformation_reminder == "short" then 926 else 911 } height: { if styling.transformation_reminder == "notch" then 56 else if styling.transformation_reminder == "short" then 91 else 103 } width: { if styling.transformation_reminder == "notch" then 53 else if styling.transformation_reminder == "short" then 258 else if styling.transformation_reminder == "medium" then 376 else 494 } z index: 40 visible: { styling.transformation_reminder != "none" } render style: image image: { reminder_image() } transformation reminder text: left: { if styling.transformation_reminder == "notch" then 619 else if styling.transformation_reminder == "short" then 4 else 22 } top: { (if styling.transformation_reminder == "notch" then (if card.loyalty == "" then (if card.pt == "" then 906 else 888) else (if card.pt == "" then 888 else 828)) else 947) + name3_font_vertical() } height: { if styling.transformation_reminder == "notch" then 30 else 60 } width: { if styling.transformation_reminder == "notch" then 75 else if styling.transformation_reminder == "short" then 191 else if styling.transformation_reminder == "medium" then 294 else if styling.transformation_reminder == "long" then 404 else 0 } z index: 50 font: name: { if styling.auxiliary_font == "" then (if styling.transformation_reminder == "notch" then "ModMatrix" else "Beleren Bold") else name3_font() } italic name: { if styling.auxiliary_font == "" then (if styling.transformation_reminder == "notch" then "ModMatrix" else "Beleren Bold") else name3_font_italic() } size: { name3_font_size() - (if styling.transformation_reminder == "notch" then 3 else 0) - shrink_reminder() } color: { name3_font_color() } symbol font: name: { styling.casting_cost_mana_symbols } size: { name3_font_size() - (if styling.transformation_reminder == "notch" then 3 else 0) - shrink_reminder() } alignment: { if styling.transformation_reminder == "notch" then "right middle" else "center middle shrink-overflow" } transformation reminder pt paste: left: 456 top: 945 height: 58 width: 76 z index: 42 visible: { styling.transformation_reminder == "long" and card.pt != ""} render style: image image: { image("reminderwalkerlongptpaste", side: "right") } alias box: left: 110 top: 112 height: 47 width: 530 z index: 4 visible: { card.alias != ""} render style: image image: { image("alias", side: "both") } ascend: left: 18 top: { 147 + name3_font_vertical() } width: { if styling.banner then 50 else 0 } height: 424 direction: vertical z index: 12 alignment: center middle font: name: { name3_font() } italic name: { name3_font_italic() } size: { name3_font_size() - 12 } color: { name3_font_color() } scale down to: 12 symbol font: name: { styling.casting_cost_mana_symbols } size: { name3_font_size() - 12 } scale down to: 12 ascend box: left: 9 top: 117 height: 462 width: 68 z index: 10 visible: { styling.banner } render style: image image: { image("ascend", side: "left") } color indicator dot: left: { 66 - (if (styling.taller_textboxes == "taller" or styling.taller_textboxes == "tallest") and styling.banner then -10 else 0) } top: { 597 - type_shift() } width: 42 height: 42 z index: 40 visible: { has_identity() } render style: image image: { color_indicator_dot_image() } illustrator brush: left: { 334 - ( card_style.illustrator.content_width / 2 ) } top: 1017 width: 36 height: 18 z index: 110 render style: image image: { illustrator_brush_image("1") } illustrator brush 2: left: { 380 - ( -card_style.illustrator.content_width / 2 ) } top: 1017 width: 36 height: 18 z index: 110 render style: image image: { illustrator_brush_image("2") } vorthos box: left: { 422 - ( -card_style.illustrator.content_width / 2 ) } right: 692 top: 1016 height: 20 z index: 110 alignment: top right shrink-overflow font: name: Beleren Small Caps Bold size: 15 color: { if styling.illustrator_text_color == rgb(255,254,255) then copyright_color() else styling.illustrator_text_color } loyalty box: right: 750 top: { if card.pt == "" then 934 else 868 } width: { if card.pt == "" then 193 else 124 } height: { if card.pt == "" then 89 else 112 } z index: 32 visible: { card.loyalty != "" } render style: image image: { image("loy" + ( if card.pt == "" then "" else "top" ), side: "right") } loyalty cost box 1: left: 0 top: { ability_center(0) - 40 - ( -loyal_move(1)) } width: 90 height: 126 z index: 26 visible: { card.loyalty_cost_1 != "" } render style: image image: { image( (if contains(card.loyalty_cost_1, match: "+") then "loyup" else if contains(card.loyalty_cost_1, match: "-") then (if is_ult(1) then "loydown2" else "loydown1") else "loynaught"), side: "left") } loyalty cost box 2: left: 0 top: { ability_center(1) - 40 - ( -loyal_move(2)) } width: 90 height: 126 z index: 28 visible: { card.loyalty_cost_2 != "" and abilities_count() >= 2 } render style: image image: { image( (if contains(card.loyalty_cost_2, match: "+") then "loyup" else if contains(card.loyalty_cost_2, match: "-") then (if is_ult(2) then "loydown2" else "loydown1") else "loynaught"), side: "left") } loyalty cost box 3: left: 0 top: { ability_center(2) - 40 - ( -loyal_move(3)) } width: 90 height: 126 z index: 30 visible: { card.loyalty_cost_3 != "" and abilities_count() >= 3 } render style: image image: { image( (if contains(card.loyalty_cost_3, match: "+") then "loyup" else if contains(card.loyalty_cost_3, match: "-") then (if is_ult(3) then "loydown2" else "loydown1") else "loynaught"), side: "left") } loyalty cost box 4: left: 0 top: { ability_center(3) - 40 - ( -loyal_move(4)) } width: 90 height: 126 z index: 32 visible: { card.loyalty_cost_4 != "" and abilities_count() >= 4 } render style: image image: { image( (if contains(card.loyalty_cost_4, match: "+") then "loyup" else if contains(card.loyalty_cost_4, match: "-") then (if is_ult(4) then "loydown2" else "loydown1") else "loynaught"), side: "left") } loyalty cost box 5: left: 0 top: { ability_center(4) - 40 - ( -loyal_move(5)) } width: 90 height: 126 z index: 34 visible: { card.loyalty_cost_5 != "" and abilities_count() >= 5 } render style: image image: { image( (if contains(card.loyalty_cost_5, match: "+") then "loyup" else if contains(card.loyalty_cost_5, match: "-") then (if is_ult(5) then "loydown2" else "loydown1") else "loynaught"), side: "left") } loyalty cost box 6: left: 0 top: { ability_center(5) - 40 - ( -loyal_move(6)) } width: 90 height: 126 z index: 36 visible: { card.loyalty_cost_6 != "" and abilities_count() >= 6 } render style: image image: { image( (if contains(card.loyalty_cost_6, match: "+") then "loyup" else if contains(card.loyalty_cost_6, match: "-") then (if is_ult(6) then "loydown2" else "loydown1") else "loynaught"), side: "left") } colon 1: left: 92 top: { ability_center(0) - 38 - ( -loyal_move(1)) } width: 17 height: 70 z index: 32 visible: { card.loyalty_cost_1 != "" } font: name: { if styling.name_font == "" then "Beleren Bold" else styling.name_font } size: 25 color: black alignment: center middle colon 2: left: 92 top: { ability_center(1) - 38 - ( -loyal_move(2)) } width: 17 height: 70 z index: 32 visible: { card.loyalty_cost_2 != "" and abilities_count() >= 2 } font: name: { if styling.name_font == "" then "Beleren Bold" else styling.name_font } size: 25 color: black alignment: center middle colon 3: left: 92 top: { ability_center(2) - 38 - ( -loyal_move(3)) } width: 17 height: 70 z index: 32 visible: { card.loyalty_cost_3 != "" and abilities_count() >= 3 } font: name: { if styling.name_font == "" then "Beleren Bold" else styling.name_font } size: 25 color: black alignment: center middle colon 4: left: 92 top: { ability_center(3) - 38 - ( -loyal_move(4)) } width: 17 height: 70 z index: 32 visible: { card.loyalty_cost_4 != "" and abilities_count() >= 4 } font: name: { if styling.name_font == "" then "Beleren Bold" else styling.name_font } size: 25 color: black alignment: center middle colon 5: left: 92 top: { ability_center(4) - 38 - ( -loyal_move(5)) } width: 17 height: 70 z index: 32 visible: { card.loyalty_cost_5 != "" and abilities_count() >= 5 } font: name: { if styling.name_font == "" then "Beleren Bold" else styling.name_font } size: 25 color: black alignment: center middle colon 6: left: 92 top: { ability_center(5) - 38 - ( -loyal_move(6)) } width: 17 height: 70 z index: 32 visible: { card.loyalty_cost_6 != "" and abilities_count() >= 6 } font: name: { if styling.name_font == "" then "Beleren Bold" else styling.name_font } size: 25 color: black alignment: center middle pt box: left: 492 top: 939 width: 221 height: 76 z index: 30 visible: { card.pt != "" } render style: image image: { pt_image() } watermark image: left: { watermark_left() } top: { watermark_top() } width: { watermark_size() } height: { watermark_size() } z index: 24 render style: image image: { opacity_watermark_image() } mask: { size := watermark_size(); crop_safe(current_mask(), width: size, height: size, left: watermark_left(), top: watermark_top()) } namebox background: left: 45 width: 660 top: 50 height: 63 z index: 0 render style: image image: { opacity_namebox_image() } mask: name_mask.png typebox background: left: 55 width: 640 top: { 584 - type_shift() } height: 68 z index: 8 render style: image image: { opacity_typebox_image() } mask: type_mask.png textbox background: left: 0 width: 750 top: { textbox_top() } height: { textbox_height() } z index: -5 render style: image image: { opacity_textbox_image() } mask: { crop_safe(current_mask(), left: 0, top: textbox_top(), width: 750, height: textbox_height()) } textbox stripe separator 1: left: 0 width: 750 top: { stripe_top(1) } height: 16 z index: -4 visible: { styling.stripes != "none" and abilities_count() >= 2 } render style: image image: { set_alpha(recolor_image("stripe_" + styling.stripes + "_bot.png", color: styling.textbox_color), alpha: 0.35) } mask: { crop_safe(current_mask(), left: 0, top: stripe_top(1), width: 750, height: 16) } textbox stripe separator 2: left: 0 width: 750 top: { stripe_top(2) } height: 16 z index: -4 visible: { styling.stripes != "none" and abilities_count() >= 3 } render style: image image: { set_alpha(recolor_image("stripe_" + styling.stripes + "_top.png", color: styling.textbox_color), alpha: 0.35) } mask: { crop_safe(current_mask(), left: 0, top: stripe_top(2), width: 750, height: 16) } textbox stripe separator 3: left: 0 width: 750 top: { stripe_top(3) } height: 16 z index: -4 visible: { styling.stripes != "none" and abilities_count() >= 4 } render style: image image: { set_alpha(recolor_image("stripe_" + styling.stripes + "_bot.png", color: styling.textbox_color), alpha: 0.35) } mask: { crop_safe(current_mask(), left: 0, top: stripe_top(3), width: 750, height: 16) } textbox stripe separator 4: left: 0 width: 750 top: { stripe_top(4) } height: 16 z index: -4 visible: { styling.stripes != "none" and abilities_count() >= 5 } render style: image image: { set_alpha(recolor_image("stripe_" + styling.stripes + "_top.png", color: styling.textbox_color), alpha: 0.35) } mask: { crop_safe(current_mask(), left: 0, top: stripe_top(4), width: 750, height: 16) } textbox stripe separator 5: left: 0 width: 750 top: { stripe_top(5) } height: 16 z index: -4 visible: { styling.stripes != "none" and abilities_count() >= 6 } render style: image image: { set_alpha(recolor_image("stripe_" + styling.stripes + "_bot.png", color: styling.textbox_color), alpha: 0.35) } mask: { crop_safe(current_mask(), left: 0, top: stripe_top(5), width: 750, height: 16) } textbox stripe 1: left: 0 width: 750 top: { 653 - type_shift() } bottom: { stripe_top(1) } z index: -4 visible: { styling.stripes != "none" and abilities_count() >= 2 } render style: image image: { set_alpha(recolor_image("textbox_background.png", color: styling.textbox_color), alpha: 0.35) } mask: { top := 653 - type_shift(); crop_safe(current_mask(), left: 0, top: top, width: 750, height: stripe_top(1) - top) } textbox stripe 2: left: 0 width: 750 top: { stripe_top(2) + 16 } bottom: { if abilities_count() >= 4 then stripe_top(3) else 1046 } z index: -4 visible: { styling.stripes != "none" and abilities_count() >= 3 } render style: image image: { set_alpha(recolor_image("textbox_background.png", color: styling.textbox_color), alpha: 0.35) } mask: { top := stripe_top(2) + 16; crop_safe(current_mask(), left: 0, top: top, width: 750, height: (if abilities_count() >= 4 then stripe_top(3) else 1046) - top) } textbox stripe 3: left: 0 width: 750 top: { stripe_top(4) + 16 } bottom: { if abilities_count() >= 6 then stripe_top(5) else 1046 } z index: -4 visible: { styling.stripes != "none" and abilities_count() >= 5 } render style: image image: { set_alpha(recolor_image("textbox_background.png", color: styling.textbox_color), alpha: 0.35) } mask: { top := stripe_top(4) + 16; crop_safe(current_mask(), left: 0, top: top, width: 750, height: (if abilities_count() >= 6 then stripe_top(5) else 1046) - top) } crown: left: 0 top: 0 width: 750 height: 1046 z index: 2 visible: { has_crown() or has_special_crown() } render style: image image: { crown_image() } mask: { if has_extended_art() and has_special_crown() then "special_crown_mask.png" else "" } leaf: left: 0 top: 0 width: 750 height: 1046 z index: 4 visible: { has_leaf() } render style: image image: { leaf_image() } leaf bottom: left: 0 top: { 563 - type_shift() } width: 750 height: 110 z index: 4 visible: { has_leaf() } render style: image image: { leaf_bottom_image() } legend leaf: left: 0 top: 0 width: 750 height: 1046 z index: 6 visible: { has_crown() and has_leaf() } render style: image image: { legend_leaf_image() } insignia: left: 0 top: 181 width: 750 height: 66 z index: 8 visible: { not has_extended_art() and not has_special_crown() and styling.insignia != "none" } render style: image image: { insignia_image() } fuse box: left: { stylesheet.card_style.rule_text_3.left - 36 } top: 501 height: 94 width: { stylesheet.card_style.rule_text_3.width + 72 } z index: 150 visible: { styling.fuse != "none" } render style: image image: { fuse_image() } card color border: visible: { set.border_color != rgb(0,0,0) } left: 0 top: 0 width: 750 height: 1046 z index: -19 mask: { border(( if has_extended_art() then "puma" else "" ) + "walker" + styling.taller_textboxes) } crown border: visible: { set.border_color != rgb(0,0,0) and (has_crown() or has_special_crown()) } left: 0 top: 0 width: 750 height: 1046 z index: 3 mask: { base := border("crown" + (if has_special_crown() then "special" else "")); if has_extended_art() and has_special_crown() then combine_blend(image1: "special_crown_mask.png", image2: base, combine: "multiply") else base } leaf border: visible: { set.border_color != rgb(0,0,0) and has_leaf() } left: 0 top: 0 width: 750 height: 1046 z index: 5 mask: { border("leafwalker") } leaf bottom border: visible: { set.border_color != rgb(0,0,0) and has_leaf() } left: 0 top: { 563 - type_shift() } width: 750 height: 110 z index: 5 mask: { border("leafwalkerbottom") } legend leaf border: visible: { set.border_color != rgb(0,0,0) and has_crown() and has_leaf() } left: 0 top: 0 width: 750 height: 1046 z index: 7 mask: { border("legendleaf") } insignia border: visible: { set.border_color != rgb(0,0,0) and not has_extended_art() and not has_special_crown() and styling.insignia != "none" } left: 0 top: 181 width: 750 height: 66 z index: 9 mask: { border("insignia" + styling.insignia) } symbol border: visible: { set.border_color != rgb(0,0,0) and has_symbol() } left: 35 top: 45 height: 78 width: 73 z index: 9 mask: { border("symboltomb") } color indicator dot border: visible: { set.border_color != rgb(0,0,0) and has_identity() } left: { 66 - (if (styling.taller_textboxes == "taller" or styling.taller_textboxes == "tallest") and styling.banner then -10 else 0) } top: { 597 - type_shift() } width: 42 height: 42 z index: 41 mask: { border("identity") } transformation reminder border: visible: { set.border_color != rgb(0,0,0) and styling.transformation_reminder != "none" } left: { if styling.transformation_reminder == "notch" then 687 else 0 } top: { if styling.transformation_reminder == "notch" then (if card.loyalty == "" then (if card.pt == "" then 900 else 875) else (if card.pt == "" then 875 else 815)) else if styling.transformation_reminder == "short" then 926 else 911 } height: { if styling.transformation_reminder == "notch" then 56 else if styling.transformation_reminder == "short" then 91 else 103 } width: { if styling.transformation_reminder == "notch" then 53 else if styling.transformation_reminder == "short" then 258 else if styling.transformation_reminder == "medium" then 376 else 494 } z index: 41 mask: { if styling.transformation_reminder == "notch" then border("remindernotchright" + (if card.pt == "" and card.loyalty == "" then "low" else "")) else border("reminderwalker" + styling.transformation_reminder) } transformation reminder pt paste border: visible: { set.border_color != rgb(0,0,0) and styling.transformation_reminder == "long" and card.pt != "" } left: 456 top: 945 height: 58 width: 76 z index: 43 mask: { border("reminderwalkerlongptpaste") } alias box border: visible: { set.border_color != rgb(0,0,0) and card.alias != "" } left: 110 top: 112 height: 47 width: 530 z index: 5 mask: { border("alias") } ascend box border: visible: { set.border_color != rgb(0,0,0) and styling.banner } left: 9 top: 117 height: 462 width: 68 z index: 11 mask: { border("ascend") } loyalty border: visible: { set.border_color != rgb(0,0,0) and card.loyalty != "" } right: 750 top: { if card.pt == "" then 934 else 868 } width: { if card.pt == "" then 193 else 124 } height: { if card.pt == "" then 89 else 112 } z index: 33 mask: { border("loy" + ( if card.pt == "" then "" else "top" )) } loyalty cost 1 border: visible: { set.border_color != rgb(0,0,0) and card.loyalty_cost_1 != "" } left: 0 top: { ability_center(0) - 40 - ( -loyal_move(1)) } width: 90 height: 126 z index: 27 mask: { border(if contains(card.loyalty_cost_1, match: "+") then "loyup" else if contains(card.loyalty_cost_1, match: "-") then (if is_ult(1) then "loydown2" else "loydown1") else "loynaught") } loyalty cost 2 border: visible: { set.border_color != rgb(0,0,0) and card.loyalty_cost_2 != "" and abilities_count() >= 2 } left: 0 top: { ability_center(1) - 40 - ( -loyal_move(2)) } width: 90 height: 126 z index: 29 mask: { border(if contains(card.loyalty_cost_2, match: "+") then "loyup" else if contains(card.loyalty_cost_2, match: "-") then (if is_ult(2) then "loydown2" else "loydown1") else "loynaught") } loyalty cost 3 border: visible: { set.border_color != rgb(0,0,0) and card.loyalty_cost_3 != "" and abilities_count() >= 3 } left: 0 top: { ability_center(2) - 40 - ( -loyal_move(3)) } width: 90 height: 126 z index: 31 mask: { border(if contains(card.loyalty_cost_3, match: "+") then "loyup" else if contains(card.loyalty_cost_3, match: "-") then (if is_ult(3) then "loydown2" else "loydown1") else "loynaught") } loyalty cost 4 border: visible: { set.border_color != rgb(0,0,0) and card.loyalty_cost_4 != "" and abilities_count() >= 4 } left: 0 top: { ability_center(3) - 40 - ( -loyal_move(4)) } width: 90 height: 126 z index: 33 mask: { border(if contains(card.loyalty_cost_4, match: "+") then "loyup" else if contains(card.loyalty_cost_4, match: "-") then (if is_ult(4) then "loydown2" else "loydown1") else "loynaught") } loyalty cost 5 border: visible: { set.border_color != rgb(0,0,0) and card.loyalty_cost_5 != "" and abilities_count() >= 5 } left: 0 top: { ability_center(4) - 40 - ( -loyal_move(5)) } width: 90 height: 126 z index: 35 mask: { border(if contains(card.loyalty_cost_5, match: "+") then "loyup" else if contains(card.loyalty_cost_5, match: "-") then (if is_ult(5) then "loydown2" else "loydown1") else "loynaught") } loyalty cost 6 border: visible: { set.border_color != rgb(0,0,0) and card.loyalty_cost_6 != "" and abilities_count() >= 6 } left: 0 top: { ability_center(5) - 40 - ( -loyal_move(6)) } width: 90 height: 126 z index: 37 mask: { border(if contains(card.loyalty_cost_6, match: "+") then "loyup" else if contains(card.loyalty_cost_6, match: "-") then (if is_ult(6) then "loydown2" else "loydown1") else "loynaught") } pt border: visible: { set.border_color != rgb(0,0,0) and card.pt != "" } left: 492 top: 939 width: 221 height: 76 z index: 31 mask: { border("walkerpt") } fuse box border: visible: { set.border_color != rgb(0,0,0) and styling.fuse != "none" } left: { stylesheet.card_style.rule_text_3.left - 36 } top: 501 height: 94 width: { stylesheet.card_style.rule_text_3.width + 72 } z index: 151 mask: { border("fuse" + fuse_image_size()) } pride pin: left: 664 top: 50 width: 41 height: 63 z index: 8 render style: image popup style: in place image: { if input == "none" then "" else "/magic-genevensis-00-main.mse-style/pride/" + input + ".png" } mask: /magic-genevensis-00-main.mse-style/pride_mask.png