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-watermarks.mse-include version: 2001-01-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" } guild_mana := { styling.use_guild_mana_symbols } ancestral_mana := { false } mana_t := { "new" } 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_type := { if styling.shrink_type == "-" then 0 else if styling.shrink_type != "" then (clamp(to_int(styling.shrink_type), minimum: -40, maximum: 24) or else 0) else if length(remove_tags(card.type)) > 41 then 2 else if length(remove_tags(card.type)) > 38 then 1 else 0 } shrink_name := { if styling.shrink_name == "-" then 0 else clamp(to_int(styling.shrink_name), minimum: -40, maximum: 31) or else 0 } 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_identity := { styling.color_indicator_dot and length(color_to_base_prefix()) > 0 } 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-watermarks.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 := { if styling.rule_text_font_size_cap == "" then font_size_adapt() else to_number(styling.rule_text_font_size_cap) or else font_size_adapt() } font_size_adapt := { 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: text name: shrink name description: Reduces the name text's font size by this many points. # localized caption: # fr: Rapetisser le nom # localized description: # fr: Réduire la taille du nom de N points. 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: color name: name text color description: Use the specified color for the text in the nameline. # localized caption: # fr: Couleur du nom # localized description: # fr: Utiliser la couleur spécifiée pour le texte du nom. choice: name: black color: rgb(0,0,0) choice: name: white color: rgb(255,255,255) initial: black 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: text name: shrink type description: Reduces the type text's font size by this many points. # localized caption: # fr: Rapetisser le type # localized description: # fr: Réduire la taille du type de N points. 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: color name: type text color description: Use the specified color for the text in the typeline. # localized caption: # fr: Couleur du type # localized description: # fr: Utiliser la couleur spécifiée pour le texte du type. choice: name: black color: rgb(0,0,0) choice: name: white color: rgb(255,255,255) initial: black 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: rule text font size cap description: The font size of rule text can't become greater than this. Default is 22 for six abilities, 23 for five abilities, 24 for four abilities, 26 for three abilities, and 28 otherwise. # localized caption: # fr: Caper le texte de règles # localized description: # fr: Limiter la taille maximale de police du texte de règles. Valeur par défaut: 24 pour quatre abilités, 26 pour trois abilités, 28 sinon. styling field: type: color name: text color description: Use the specified color for the rule text. # localized caption: # fr: Couleur du texte # localized description: # fr: Utiliser la couleur spécifiée pour le texte de règles. choice: name: black color: rgb(0,0,0) choice: name: white color: rgb(255,255,255) initial: black styling field: type: text name: textbox opacity percentage description: Set the opacity percentage for 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-watermarks.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-watermarks.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: boolean name: color indicator dot description: Use the color indicator dot? # localized caption: # fr: Indicateur de couleur # localized description: # fr: Utiliser un indicateur de couleur, par exemple sur les cartes sans coût de lancement? 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: text name: name font description: Font used for the name, alias, type, pt, fuse, transformation reminder, and banner. Hover your mouse over the font file to see it's details, and write it's Title here. # localized caption: # fr: Police du nom # localized description: # fr: Police utilisée pour le nom, alias, type, et force/endurance. Survolez le fichier de police avec la souris pour voir ses informations, et écrivez son titre ici. styling field: type: text name: text font description: Font used for the rule text. 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: Police utilisée pour le texte des règles. Survolez le fichier de police avec la souris pour voir ses informations, et écrivez son titre ici. styling field: type: text name: text italic font description: Font used for the flavor text and reminder texts. Hover your mouse over the font file to see it's details, and write it's Title here. # localized caption: # fr: Police du texte d'ambiance # localized description: # fr: Police utilisée pour le text d'ambiance. Survolez le fichier de police avec la souris pour voir ses informations, et écrivez son titre ici. 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 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 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: { if styling.name_font == "" then "Beleren Bold" else styling.name_font } size: { 32 - shrink_name() } color: { styling.name_text_color } symbol font: name: { styling.casting_cost_mana_symbols } size: { 32 - shrink_name() } casting cost: right: 687 top: 55 width: { max(60, card_style.casting_cost.content_width) + 10 } height: 48 alignment: middle right font: name: { if styling.text_font == "" then "MPlantin" else styling.text_font } size: 32 symbol font: name: { styling.casting_cost_mana_symbols } size: 32 always symbol: true z index: 42 alias: left: 149 top: 117 width: 452 height: 24 alignment: center middle shrink-overflow z index: 42 font: name: { if styling.name_font == "" then "Beleren Bold" else styling.name_font } size: 18 color: black ############################# 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() } 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: { if styling.name_font == "" then "Beleren Bold" else styling.name_font } size: { 25 - shrink_type() } color: { styling.type_text_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() } width: { 604 - chop_right() } bottom: { 953 - chop_bot() - ( if styling.transformation_reminder != "none" and styling.transformation_reminder != "notch" then 15 else 0 ) } font: name: { if styling.text_font == "" then "MPlantin" else styling.text_font } italic name: { if styling.text_italic_font == "" then "MPlantin-Italic" else styling.text_italic_font } size: { font_size() } scale down to: 12 color: { styling.text_color } symbol font: name: { styling.text_box_mana_symbols } size: { font_size() } 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 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: { if styling.name_font == "" then "Beleren Bold" else styling.name_font } size: 30 scale down to: 12 color: black symbol font: name: { styling.casting_cost_mana_symbols } size: 30 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 } width: 34 height: 68 alignment: center middle shrink-overflow font: name: { if styling.name_font == "" then "Beleren Bold" else styling.name_font } size: 32 scale down to: 26 color: black loyalty cost 1: z index: 46 left: 36 top: { ability_center(0) - 18 - ( -loyal_move(1)) } width: 35 height: 37 alignment: center middle shrink-overflow font: name: { if styling.name_font == "" then "Beleren Bold" else styling.name_font } size: 22 scale down to: 18 color: black loyalty cost 2: z index: 46 left: 36 top: { ability_center(1) - 18 - ( -loyal_move(2)) } width: { if abilities_count() >= 2 then 35 else 0 } height: 37 alignment: center middle shrink-overflow font: name: { if styling.name_font == "" then "Beleren Bold" else styling.name_font } size: 22 scale down to: 18 color: black loyalty cost 3: z index: 46 left: 36 top: { ability_center(2) - 18 - ( -loyal_move(3)) } width: { if abilities_count() >= 3 then 35 else 0 } height: 37 alignment: center middle shrink-overflow font: name: { if styling.name_font == "" then "Beleren Bold" else styling.name_font } size: 22 scale down to: 18 color: black loyalty cost 4: z index: 46 left: 36 top: { ability_center(3) - 18 - ( -loyal_move(4)) } width: { if abilities_count() >= 4 then 35 else 0 } height: 37 alignment: center middle shrink-overflow font: name: { if styling.name_font == "" then "Beleren Bold" else styling.name_font } size: 22 scale down to: 18 color: black loyalty cost 5: z index: 46 left: 36 top: { ability_center(4) - 18 - ( -loyal_move(5)) } width: { if abilities_count() >= 5 then 35 else 0 } height: 37 alignment: center middle shrink-overflow font: name: { if styling.name_font == "" then "Beleren Bold" else styling.name_font } size: 22 scale down to: 18 color: black loyalty cost 6: z index: 46 left: 36 top: { ability_center(5) - 18 - ( -loyal_move(6)) } width: { if abilities_count() >= 6 then 35 else 0 } height: 37 alignment: center middle shrink-overflow font: name: { if styling.name_font == "" then "Beleren Bold" else styling.name_font } size: 22 scale down to: 18 color: black ############################# PT pt: z index: 46 left: 552 top: { if card.pt == "" then 890 else 950 } width: 120 height: 56 alignment: center middle shrink-overflow font: name: { if styling.name_font == "" then "Beleren Bold" else styling.name_font } size: 32 color: black 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 } 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.name_font == "" then (if styling.transformation_reminder == "notch" then "ModMatrix" else "Beleren Bold") else styling.name_font } size: { (if styling.transformation_reminder == "notch" then 27 else 30) - shrink_reminder() } color: black symbol font: name: { styling.casting_cost_mana_symbols } size: { (if styling.transformation_reminder == "notch" then 27 else 30) - 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 width: { if styling.banner then 50 else 0 } height: 424 direction: vertical z index: 12 alignment: center middle font: name: { if styling.name_font == "" then "Beleren Bold" else styling.name_font } size: 18 scale down to: 12 color: black symbol font: name: { styling.casting_cost_mana_symbols } size: 18 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