diff --git a/data/magic-jumpstart-front.mse-style/artist_arrow.png b/data/magic-jumpstart-front.mse-style/artist_arrow.png index 083a57c3a..ea39aa438 100644 Binary files a/data/magic-jumpstart-front.mse-style/artist_arrow.png and b/data/magic-jumpstart-front.mse-style/artist_arrow.png differ diff --git a/data/magic-jumpstart-front.mse-style/style b/data/magic-jumpstart-front.mse-style/style index ed1ea99cb..0a98e53a8 100644 --- a/data/magic-jumpstart-front.mse-style/style +++ b/data/magic-jumpstart-front.mse-style/style @@ -4,7 +4,7 @@ short name: Jumpstart Front Card full name: Jumpstart Front Card icon: card-sample.png installer group: magic/m15 style/Emblems -position hint: 090 +position hint: 999 version: 2018-02-22 depends on: @@ -20,6 +20,8 @@ depends on: card width: 375 card height: 523 card dpi: 150 +########################### template by silverback_ape +########################### updated by cajun ############################################################## Extra scripts init script: @@ -140,12 +142,12 @@ card style: padding top: 0 ############################# Image image: - left: -10 - top: -5 - width: 375 - height: 523 + left: 15 + top: 15 + width: 345 + height: 490 z index: -1 - ################H############ Card type + ############################# Card type ############################# Card sorting / numbering set code: left: 24 @@ -157,7 +159,17 @@ card style: name: Relay-Medium size: 7 color: white - weight: bold + weight: bold + illustrator: + left: { 44 + card_style.set_code.content_width } + top: 497.5 + width: 200 + height: 10 + z index: 3 + font: + name: Beleren Small Caps Bold + size: 7.25 + color: white ############################# Copyright stuff copyright: right: 339 @@ -217,8 +229,7 @@ extra card style: top: 500 width: 12 height: 7 - z index: 1 - z index: 1 + z index: 3 render style: image image: artist_arrow.png frame: diff --git a/data/magic-m15-altered.mse-symbol/style b/data/magic-m15-altered.mse-symbol/style new file mode 100644 index 000000000..037b2da41 --- /dev/null +++ b/data/magic-m15-altered.mse-symbol/style @@ -0,0 +1,1899 @@ +mse version: 2.0.0 +game: magic +short name: M15 Mainframe +full name: M15 w/Text altering +icon: card-sample.png +installer group: magic/m15 style/normal cards +position hint: 001 + +version: 2020-09-04 +depends on: + package: magic.mse-game + version: 2020-04-25 +depends on: + package: magic-default-image.mse-include + version: 2007-09-23 +depends on: + package: magic-watermarks.mse-include + version: 2007-09-23 +depends on: + package: magic-identity-new.mse-include + version: 2012-01-22 +depends on: + package: magic-mana-large.mse-symbol-font + version: 2007-09-23 +depends on: + package: magic-mana-small.mse-symbol-font + version: 2007-09-23 +depends on: + package: magic-mainframe-extras.mse-include + version: 2018-01-01 +depends on: + package: magic-pride.mse-include + version: 2021-05-26 + +card width: 375 +card height: 523 +card dpi: 150 +##### Flavor bar image by SirnightNano +##### Ancestral generic mana by ancestral +##### Nyx crowns by Angelus +##### Companion crowns, nyx extensions, DOM FNM frame, THB fullart lands, snow frames by silverback_ape +##### Updated PUMA by Cardists +##### Inverted by VerumCH +############################################################## Extra scripts +init script: + # Load scripts for image box + include file: /magic-default-image.mse-include/scripts + include file: /magic-pride.mse-include/scripts + + # Should hybrids have a grey name? + mask_hybrid_with_land := { styling.hybrid_name == "grey" } + mask_hybrid_with_gold := { styling.hybrid_name == "gold" } + + #Should multicolor lands with basic land types have a colored name? + mask_multi_land_with_color := { styling.colored_multicolor_land_name } + base_template_prefix := [card: "" alias: "alias/" snow:"snow/" snowtexture:"snow/" devoid:"devoid/" nyx: "nyx/" miracle: "miracles/" node:"nodes/" promo: "promo/" crown: "legend/" cons:"conspiracy/" curtain: "curtains/" fnm: "fnm/", fnmpt: "paradox/", inverted: "inverted/", invertedpt: "inverted/", map: "maps/" energy: "energies/", mappt: "maps/" pt: "", slide: "masks/", slide2: "masks/", slide3: "masks/", arrow: "arrows/", arrow2: "arrows/", arrow3: "arrows/", season: "season/" stamp: "" identity: "/magic-identity-new.mse-include/", puma: "puma/"] + shifted_template_prefix := [card: "shifted/" alias: "shifted/" snow:"snow/" snowtexture:"snow/" devoid:"devoid/" nyx: "nyx/" miracle: "shifted/" node:"shifted/" promo: "promo/" crown: "shifted/" cons:"conspiracy/" curtain: "curtains/" fnm:"fnm/", fnmpt: "paradox/", inverted: "inverted/", invertedpt: "inverted/", map: "maps/" energy: "energies/", mappt: "maps/" pt: "shifted/", slide: "shifted/", slide2: "shifted/", slide3: "shifted/", arrow: "arrows/", arrow2: "arrows/", arrow3: "arrows/", season: "season/" stamp: "shifted/" identity: "/magic-identity-new.mse-include/", puma: "puma/shifted/"] + template_prefix := { if type == "miracle" and pure_snow() then [miracle:"snow/"] else if is_shifted() then shifted_template_prefix else base_template_prefix } + template_suffix := [card: "card.jpg" node:"node.png" alias:"alias.png" devoid:"card.png" snow:"card.jpg" snowtexture:"snow.png" nyx: "nyx.png" miracle: "miracle.png" promo: "card.jpg" crown: "crown.png" cons:"cons.png" curtain: "card.png" fnm:"card.png", fnmpt: "pt.png", inverted: "card.png", invertedpt: "pt.png", map: "card.png", energy: "card.png", mappt: "pt.png" pt: "pt.png", slide: "slide.png", slide2: "slide2.png", slide3: "slide3.png", stamp: "stamp.jpg", arrow: "arrow.png", arrow2: "arrow2.png", arrow3: "arrow3.png", season: "flag.png" identity: "identity.png", puma: "puma.png"] + template := { crown_lead(type) + template_prefix()[type] + input + crown_follow(type) + template_suffix[type] } + land_template := { crown_lead(type) + template_prefix()[type] + (if input == "a" then "c" else input) + (if landless(type) then "" else "l") + crown_follow(type) + template_suffix[type] } + # Use land templates for previews because they show more contrast + hybrid_previews := "land,hybrid" + + landless := {if input == "nyx" or input == "node" or input == "miracle" or input == "alias" or input == "devoid" or input == "energy" or input == "season" or input == "cons" or input == "arrow" or input == "crown" or input == "nyxcrown" then true else false} + + crown_lead := { + if input != "crown" then "" + else if (styling.legend_crown == "custom" and styling.custom_crown_location != "") + then "/magic-mainframe-extras.mse-include/" + styling.custom_crown_location + else "" + } + crown_follow := { + if input != "crown" then "" + else if styling.legend_crown == "nyx" or (is_nyx() and chosen(styling.other_options, choice:"auto nyx crowns")) + then "nyx" + else if styling.legend_crown == "companion" + then "com" + else "" + } + transfer_levels := {if is_mutate() then false else true} + node_background := { color_background(type:"node", base_hybrid:card_hybrid) } + nyx_background := { color_background(type:"nyx", base_hybrid:card_hybrid) } + devoid_background := { color_background(type:"devoid", base_hybrid:card_hybrid) } + snow_background := { color_background(type:"snow", base_hybrid:card_hybrid) } + snow_texture := { color_background(type:"snowtexture", base_hybrid:card_hybrid) } + puma_bar := { color_background(type:"puma", base_hybrid:card_hybrid) } + fnm_background := { color_background(type:"fnm", base_hybrid:card_hybrid) } + inverted_background := { color_background(type:"inverted", base_hybrid:card_hybrid) } + alias_bar := { color_background(type:"alias", base_hybrid:card_hybrid) } + miracle_background := { color_background(type:"miracle", base_hybrid:card_hybrid) } + map_background := { color_background(type:"map", base_hybrid:card_hybrid) } + energy_background := { color_background(type:"energy", base_hybrid:card_hybrid) } + promo_background := { color_background(type:"promo", base_hybrid:card_hybrid) } + fnm_ptbox := { color_background(type:"fnmpt", base_hybrid:pt_hybrid) } + inverted_ptbox := { color_background(type:"invertedpt", base_hybrid:pt_hybrid) } + mappt_background := { color_background(type:"mappt", base_hybrid:pt_hybrid) } + arrow_background := { color_background(type:"arrow", base_hybrid:pt_hybrid) } + arrow_background_2 := { color_background(type:"arrow2", base_hybrid:pt_hybrid) } + arrow_background_3 := { color_background(type:"arrow3", base_hybrid:pt_hybrid) } + crown_background := { color_background(type:"crown", base_hybrid: card_hybrid)} + curtain_background := { color_background(type:"curtain", base_hybrid: card_hybrid)} + cons_background := { color_background(type:"cons", base_hybrid: card_hybrid)} + background_slide := { color_background(type:"slide", base_hybrid: card_hybrid)} + background_slide_2 := { color_background(type:"slide2", base_hybrid: card_hybrid)} + background_slide_3 := { color_background(type:"slide3", base_hybrid: card_hybrid)} + season_background := { color_background(type:"season", base_hybrid:card_hybrid) } + # Use the normal tap symbol + mana_t := { + if styling.tap_symbol == "old" then "old" + else if styling.tap_symbol == "diagonal T" then "older" + else "new" + } + loyalty_image := { + if contains(input, match: "+") then "loyaltyup.png" + else if contains(input, match: "-") then "loyaltydown.png" + else "loyaltynaught.png" + } + + # Use guild mana symbols? + guild_mana := { styling.use_guild_mana_symbols } + # Is the card a promo card? + is_promo := { styling.promo } + is_stamped := {styling.use_holofoil_stamps and (card.rarity == "rare" or card.rarity == "mythic rare")} + has_identity := { styling.color_indicator_dot } + shrink_type := {if styling.shrink_typeline_text != "" then to_int(styling.shrink_typeline_text) 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_text != "" then to_int(styling.shrink_name_text) else 0 } + is_unsorted := {styling.remove_from_autocount} + is_devoid := { chosen(styling.frames, choice: "devoid") and not is_map()} + is_clear := { (chosen(styling.frames, choice: "clear") or is_devoid()) and not is_map()} + is_puma := { chosen(styling.frames, choice: "puma") and not is_map() and not is_clear() and not contains(styling.frames, match:"less art") and not is_full_art() } + is_mutate := { not is_expanded_art() and not is_full_art() and chosen(styling.frames, choice: "mutate") and not is_map()} + is_miracle := { chosen(styling.frames, choice: "miracle") and not is_map() and not is_expanded_art() and not is_cons() and not is_fnm() and not is_inverted()} + is_nyx := { chosen(styling.frames, choice: "nyx") and not is_map() } + is_vehicle := { (chosen(styling.frames, choice: "vehicle") or (chosen(styling.other_options, choice:"auto vehicles") and match_vehicle(card.sub_type))) and not is_map()} + is_snow := { (chosen(styling.frames, choice: "snow") or (chosen(styling.other_options, choice:"auto snow") and match_snow(card.super_type))) and not is_map()} + is_cons := { chosen(styling.frames, choice: "draft matters") or chosen(styling.frames, choice: "conspiracy") and not is_map() } + is_scrolls := { chosen(styling.frames, choice: "conspiracy") and not is_map()} + is_shifted := { chosen(styling.frames, choice: "planeshifted") and not is_map() and not is_full_art() and not is_fnm()} + is_fnm := {chosen(styling.frames, choice:"fnm promo") and not is_clear() and not is_full_art() and not is_map()} + is_inverted := {chosen(styling.frames, choice:"inverted") and not is_clear() and not is_full_art() and not is_fnm() and not is_map()} + is_map := { chosen(styling.frames, choice: "map") } + use_node := { chosen(styling.frames, choice: "lesson") } + is_season := { chosen(styling.frames, choice: "season") and not is_map() } + is_legend := {not is_map() and (chosen(styling.frames, choice: "legend") or (set.auto_legends and contains(card.super_type, match:"Legendary"))) } + is_full_art := {chosen(styling.frames, choice:"fullart") and not is_map() and not is_clear()} + is_expanded_art := {not is_map() and not is_clear() and contains(styling.frames, match:"less art")} + is_borderless := {not is_map() and not is_clear() and chosen(styling.frames, choice:"borderless art")} + is_thbland := {chosen(styling.frames, choice:"frameless art") and not is_leveler() and remove_tags(card.text) == "\n"} + expanded_mask := { "bigimagemasks/" + (if is_full_art() then "dka_" else "") + (if is_borderless() then (if is_stamped() then "rare_" else "") + "borderless_" else "") + "frameless.png"} + is_curtains := {contains(card.notes, match:"!curtain")} + is_pinned := {chosen(styling.other_options, choice:"pride pinlines")} + use_main_rarity := { contains(set.mainframe_rarity_name, match: ".png")} + un_png := replace@(match:".png", replace: "") + ancestral_mana := { chosen(styling.other_options, choice:"ancestral generic mana")} + override_clear := replace@(match:"()?", replace: "")+ + replace@(match:"()?", replace: "") + override_filter := replace@(match:"\\[([^\\]]+)]", replace: "[\\1]") + is_d20 := {styling.d20_dividers != "off" and not is_leveler()} + is_all_break := {contains(styling.d20_dividers, match:"all breaks")} + d20string := "^()?((()?[-0-9 ,+>\<]()?)+|[Ee]lse|[Oo]ther) ?()?[|]" + d20_array := + filter_text@(match:"(\n|"+d20string+")") + +split_text@(match:d20string) + number_of_rolls := {if is_all_break() then 1+length(filter_text(card.rule_text, match:"\n"))-rolls_start(card.text) else length(d20_array(input))-1} + rolls_start := { + if styling.d20_dividers == "all breaks +3" then 4 + else if styling.d20_dividers == "all breaks +2" then 3 + else if styling.d20_dividers == "all breaks +1" then 2 + else if styling.d20_dividers == "all breaks" then 0 + else if is_d20() then length(d20_array(input).0) + else 0 + } + d20_filter := replace@(match:"^([Ee]lse ?|[Oo]ther ?|(()?[-0-9 ,+>\<]()?)+)[|]", replace:"\\1|") + top_of_para := { + input := input + no_roll(card.text) + if card_style.text.layout.paragraphs[input].top or else 0 > 0 then + card_style.text.top + card_style.text.layout.paragraphs[input].top - 0.5*(card_style.text.layout.paragraphs[input].top-card_style.text.layout.paragraphs[input-1].bottom) + else 0 + } + height_of_para := { + input := input + no_roll(card.text) + if card_style.text.layout.paragraphs[input].bottom or else 0 > 0 then + card_style.text.layout.paragraphs[input].bottom + 1.3*(card_style.text.layout.paragraphs[input].top-card_style.text.layout.paragraphs[input-1].bottom) - card_style.text.layout.paragraphs[input].top + else 0 + } + no_roll := {if styling.d20_dividers == "all breaks" then 1 else if rolls_start(input) == 0 then 1 else 0} + + text_filter := text_filter + override_clear + d20_filter + {if chosen(styling.other_options, choice:"override-style text") then override_filter(input) else input} + + center_map := {is_map() and (card.casting_cost == "" or chosen(styling.other_options, choice:"always center map names"))} + use_evobar := {chosen(styling.other_options, choice:"pokemon evobar")} + alt_rarity := {styling.alt_rarity_color != ""} + alt_rarity_color := { + string := "83,67,53:177,150,131:0,0,0:0,0,0:0.07:" + if match(styling.alt_rarity_color, match:":$") then string := styling.alt_rarity_color + colons := length(filter_text(string, match:":")) + output := split_text(string, match:",|:") + splits := split_text(string, match:":") + if colons == 4 + then output := split_text(string+"0.07:", match:",|:") + if colons == 3 + then output := split_text(string+splits[2]+"0.07:", match:",|:") + else if colons == 2 + then output := split_text(string+"0,0,0:0,0,0:0.07:", match:",|:") + else if colons == 1 + then output := split_text(string+splits[0]+":0,0,0:0,0,0:0.07:", match:",|:") + + output + } + alt_symbol := {symbol_variation(symbol:set.symbol, border_radius: alt_rarity_color().12, fill_type: "linear gradient", fill_color_1: rgb(alt_rarity_color().0, alt_rarity_color().1, alt_rarity_color().2), fill_color_2: rgb(alt_rarity_color().3, alt_rarity_color().4, alt_rarity_color().5), border_color_1: rgb(alt_rarity_color().6, alt_rarity_color().7, alt_rarity_color().8), border_color_2: rgb(alt_rarity_color().9, alt_rarity_color().10, alt_rarity_color().11), center_x:0.5, center_y:0.5, end_x:1, end_y:1)} + is_skinned := {chosen(styling.other_options, choice:"godzilla style alias")} + use_vorthos := {((not is_leveler() or lone_pt()) and card.pt != "") or chosen(styling.other_options, choice:"vorthos box")} + clear_tops := {chosen(styling.other_options, choice:"clear tops") and not is_puma()} + is_tarot := {chosen(styling.other_options, choice:"text watermarks")} + pure_snow := {is_snow() and not is_fnm() and not is_inverted() and not is_full_art() and not is_leveler() and not is_shifted()} + chop_top := {if styling.chop_top == "" then 0 else if comma_count(styling.chop_top) == "," or comma_count(styling.chop_top) == ",," then split_text(match:",", styling.chop_top).0 else styling.chop_top} + chop_bot := {if comma_count(styling.chop_top) == ",," then split_text(match:",", styling.chop_top).1 else if styling.chop_bottom == "" then 0 else styling.chop_bottom} + top_of_textbox := {(if is_map() then 340 else if is_full_art() then 359 else if is_mutate() then 395 else 327) - (-chop_top()) } + bottom_of_textbox := {(if is_map() then 475 else 481) - chop_bot() } + + is_leveler := {chosen(styling.frames, choice:"leveler")} + box_leveler := {styling.level_containers == "pt boxes"} + loy_leveler := {styling.level_containers == "loyalty boxes"} + aug_leveler := {box_leveler() and center_label(input)} + level_label := {if styling.level_label == "" then "level" else pull_comma_array(styling.level_label, end:false, cell:input, default:styling.level_label)} + center_label := {loy_leveler() or level_label(input) == " "} + lv_1_height := {lv_2_coordinate()} + lv_2_coordinate := {max(min(52 + to_number(pull_comma_array(styling.level_offset, cell:0))+(if is_full_art() then 20 else if is_mutate() then 12 else nil),152), 0)} + lv_3_coordinate := {max(min(101 + to_number(pull_comma_array(styling.level_offset, cell:1)+(if is_full_art() then 10 else if is_mutate() then 12 else nil)),152), lv_2_coordinate())} + lv_4_coordinate := {max(min(152 + to_number(pull_comma_array(styling.level_offset, cell:2)+(if is_full_art() then 10 else if is_mutate() then 12 else nil)),152), lv_3_coordinate())} + lv_2_height := {lv_3_coordinate() - lv_2_coordinate()} + lv_3_height := {lv_4_coordinate()-lv_3_coordinate()} + lv_4_height := {152-lv_4_coordinate()} + l1_center := {327 + (if is_full_art() then 16 else 0) + 0.5*lv_1_height()} + l2_center := {327 + lv_2_coordinate() + 0.5*lv_2_height()} + l3_center := {327 + lv_3_coordinate() + 0.5*lv_3_height()} + l4_center := {327 + lv_4_coordinate() + 0.5*lv_4_height()} + overlay1 := {if is_d20() then "d20slice.png" else slice_crop(background_slide(), height: lv_2_height(), width:314, distance:(152-lv_2_coordinate()))} + overlay2 := {if is_d20() then "d20slice.png" else slice_crop(background_slide_2(), height: lv_3_height(), width:314, distance:lv_3_height())} + overlay3 := {if is_d20() then "d20slice.png" else slice_crop(background_slide_3(), height: lv_4_height(), width:314, distance:lv_4_height())} + mask_height := {if input == "one" then lv_1_height() else if input == "two" then lv_2_height() else if input == "three" then lv_3_height() else if input == "four" then lv_4_height() else 0} + lone_pt := {chosen(styling.other_options, choice:"regular pt on levelers") and not starting_loyalty()} + starting_loyalty := {chosen(styling.other_options, choice:"use starting loyalty")} + choose_ptbox := {if is_fnm() then fnm_ptbox() else if is_inverted() then inverted_ptbox() else card_ptbox()} + lv_2_ptbox := { if is_vehicle() then "vpt.png" else if is_clear() then "cpt.png" else if is_fnm() then fnm_ptbox() else if is_inverted() then inverted_ptbox() else leveler_ptbox2() } + lv_3_ptbox := { if is_vehicle() then "vpt.png" else if is_clear() then "cpt.png" else if is_fnm() then fnm_ptbox() else if is_inverted() then inverted_ptbox() else leveler_ptbox3() } + lv_4_ptbox := { if is_vehicle() then "vpt.png" else if is_clear() then "cpt.png" else if is_fnm() then fnm_ptbox() else if is_inverted() then inverted_ptbox() else color_background(type:"pt", base_hybrid:leveler_pt_hybrid3) } + arrow_left := {if box_leveler() then -3 else if loy_leveler() then 10 else 18} + arrow_width := {if box_leveler() then 84 else if loy_leveler() then 42 else 56} + arrow_height := {if aug_leveler(input) then 42 else if box_leveler() then 50 else if loy_leveler() then 40 else 40} + arrow_offset := { + to_number(pull_comma_array(styling.arrow_or_bullet_offsets, cell:input, end: 0)) + + (if box_leveler() then -5 else 0) + + (if aug_leveler(input) then 4 else 0) + } + custom_watermark_a := {if styling.card_watermark == "" or not contains(styling.card_watermark, match:".png") then "/magic-watermarks.mse-include/planeswalker.png" else "/magic-watermarks.mse-include/" + styling.card_watermark} + special_text := {if is_leveler() then ((if card.level_0 != "" then "[" + level_label(0) + " " + card.level_0 + "] " else "") + card.level_1_text + (if card.pt != "" then " [" + card.pt + "]" else "") + "\n" + + (if card.level_1 != "" then "[" + level_label(1) + " " + card.level_1 + "] " else "") + card.level_2_text + (if card.pt_2 != "" then " [" + card.pt_2 + "]" else "") + "\n" + + (if card.level_2 != "" then "[" + level_label(2) + " " + card.level_2 + "] " else "") + card.level_3_text + (if card.pt_3 != "" then " [" + card.pt_3 + "]" else "") + (if card.level_4_text != "" then "\n" else "") + + (if card.level_3 != "" then "[" + level_label(3) + " " + card.level_3 + "] " else "") + card.level_4_text + (if card.pt_7 != "" then " [" + card.pt_7 + "]" else "") + ) else if is_mutate() then + card.level_1_text + "\n" + card.rule_text + else "" + } + shown_cr := {if set.automatic_copyright then set.copyright != "" else card.copyright != ""} + card_shape := {if is_leveler() then "leveler" else "normal"} + + white_text := {is_full_art() or is_fnm() or is_inverted()} + + use_flash_dot := {false} +############################################################## Set info fields +set info style: + symbol: + variation: + name: invertedcommon + border radius: 0.10 + fill type: solid + fill color: rgb(255,255,255) + border color: rgb(0,0,0) +set info style: + symbol: + variation: + name: special + border radius: 0.10 + fill type: solid + fill color: rgb(155,155,155) + border color: rgb(0,0,0) +############################################################## Extra style options +styling field: + type: text + name: chop top + description: Shrinks the textbox X pixels from the top OR shrinks "top,bottom," +styling field: + type: text + name: chop bottom + description: Shrinks the textbox X pixels from the bottom. +styling field: + type: text + name: shrink name text + description: Reduces the name text N points. +styling field: + type: text + name: shrink typeline text + description: Reduces the typeline text N points. +styling field: + type: multiple choice + name: frames + description: Use these frames. Higher level frames may override lower levels. + choice: lesson + choice: map + choice: devoid + choice: clear + choice: borderless art + choice: frameless art + choice: fullart + choice: puma + choice: mutate + choice: fnm promo + choice: inverted + choice: planeshifted + choice: legend + choice: season + choice: conspiracy + choice: draft matters + choice: miracle + choice: vehicle + choice: nyx + choice: leveler + choice: snow +styling field: + type: text + name: popout image style + description: The styling instructions for the popout image field, formatted as "left,top,width,height,". The text MUST end with a comma. +styling field: + type: text + name: custom symbol + description: Uses a custom Lesson symbol from data/magic-mainframe-extras.mse-include +styling field: + type: choice + name: legend crown + choice: standard + choice: nyx + choice: companion + choice: custom + description: The type of legend crown to use for this card. +styling field: + type: text + name: custom crown location + description: location of custom legend crown images in magic-mainframe-extras +styling field: + type: multiple choice + name: other options + description: Other frame options + choice: prerelease stamp + choice: brown legendary vehicle pt + choice: godzilla style alias + choice: pokemon evobar + choice: ancestral generic mana + choice: override-style text + choice: always center map names + choice: use starting loyalty + choice: regular pt on levelers + choice: auto vehicles + choice: auto snow + choice: auto nyx crowns + choice: text watermarks + choice: clear tops + choice: vorthos box + choice: pride pinlines + initial: auto nyx crowns, auto vehicles, auto snow +styling field: + type: text + name: font cap + description: Caps the font size of all text boxes to allow consistent sizes. Default is 14. +styling field: + type: choice + name: d20 dividers + choice: d20 mode + choice: off + choice: all breaks + choice: all breaks +1 + choice: all breaks +2 + choice: all breaks +3 + description: Do dice levels normally, off, on all linebreaks, on all but the first linebreak, etc. +styling field: + type: text + name: arrow or bullet offsets + description: Formatted as 1,2,3,. Move the level arrow down X pixels. Use negative to move up. +styling field: + type: text + name: level offset + description: Formatted as 1,2,3,. Move the level boxes down X pixels. Use negative to move up. For 4 equal levels, use -14,-25,-38, +styling field: + type: text + name: level label + description: Change the level label. default is "LEVEL". Secondary lables can be added after a comma, "1,2,3," +styling field: + type: choice + name: level containers + choice: arrows + choice: pt boxes + choice: loyalty boxes +styling field: + type: boolean + name: use holofoil stamps + description: Change to no to disable rare holofoil stamps +styling field: + type: boolean + name: color indicator dot + description: Use the color indicator dot + initial: no +styling field: + type: boolean + name: remove from autocount + description: Removes the automatic card number for specific cards, to allow for overcounted cards like in Planeswalker Decks. + 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:..." 1 and 2 are fill color, 3 and 4 border color +styling field: + type: text + name: card watermark + description: Filename in magic-watermarks to use for standalone card watermark +styling field: + type: choice + name: hybrid name + choice: grey + choice: gold + choice: hybrid + description: Use a grey background for the name and type line on hybrid cards like real cards, or gold or hybrid instead. +styling field: + type: boolean + name: colored multicolor land name + description: Use a colored background for the name and type on multicolor land cards with a basic land type. This is done on real cards. +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. + initial: no +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: package choice + name: text box mana symbols + match: magic-mana-*.mse-symbol-font + initial: magic-mana-small.mse-symbol-font +styling field: + type: package choice + name: level mana symbols + match: magic-mana-*.mse-symbol-font + initial: magic-mana-large.mse-symbol-font +styling field: + type: choice + name: center text + description: When to center text (short text only means only on one-line cards with no flavor text) + choice: always + choice: short text only + choice: never + initial: never +styling field: + type: boolean + name: promo + description: Is this card a promo card, with the "P" rarity? + initial: no +styling field: + type: boolean + name: inverted common symbol + description: Should the common rarity symbol be inverted, like in Coldsnap? + initial: no +styling field: + type: package choice + name: overlay + description: Should there be an overlay applied, such as foil? + match: magic-overlay-*.mse-include + required: false +styling style: + use guild mana symbols: + choice images: + yes: /magic-mana-small.mse-symbol-font/mana_guild_rg.png + no: /magic-mana-small.mse-symbol-font/mana_rg.png + tap symbol: + render style: both + choice images: + modern: /magic-mana-large.mse-symbol-font/mana_t.png + old: /magic-mana-large.mse-symbol-font/mana_t_old.png + diagonal T: /magic-mana-large.mse-symbol-font/mana_t_older.png + center text: + render style: both + choice images: + always: /magic.mse-game/icons/center-all-text.png + short text only: /magic.mse-game/icons/center-short-text.png + never: /magic.mse-game/icons/center-no-text.png + inverted common symbol: + choice images: + no: { symbol_variation(symbol: set.symbol, variation: "common") } + yes: { symbol_variation(symbol: set.symbol, variation: "invertedcommon") } + frames: + render style: checklist + direction: vertical + other options: + render style: checklist + direction: vertical +############################################################## Card fields +card style: + ############################# Background stuff + border color: + left: 0 + top : 0 + width: {if is_borderless() then 0 else 375} + height: 523 + radius: 18 + left width: 17 + right width: 17 + top width: 17 + bottom width: 18 + z index: 4 + mask: { (if is_puma() then "puma_" else "") + (if is_legend() then "crown_border" else "border_mask") + (if card.border_color == rgb(200,200,200) then "_silver" else "") + ".png" } + card color: + left: 0 + top: 0 + width: 375 + height: 523 + z index: 0 + render style: image + popup style: in place + image: { if is_clear() or clear_tops() then "" else if is_fnm() then fnm_background() else if is_inverted() then inverted_background() else if is_full_art() then promo_background() else if pure_snow() then snow_background() else card_background() } + ############################# Name line + name: + left: { if center_map() then 55 else if is_map() then (if use_node() then 65 else 60) else if use_node() then 58 else if card.card_symbol=="none" then 32 else 50 } + top: { if is_map() then 27 else if is_devoid() then 30 else if is_clear() or clear_tops() then 31 else 30 } + right: { if center_map() then 320 else (if is_map() then 320 else 341) - card_style.casting_cost.content_width } + height: { 23 - (0.5 * shrink_name()) } + alignment: {if center_map() then "center bottom shrink-overflow" else "left bottom shrink-overflow" } + padding bottom: 0 + z index: 2 + font: + name: { if is_map() then "Beleren Small Caps" else "Beleren Bold" } + size: { (if is_map() then 14.8 else 16) - shrink_name() } + color: {if is_shifted() or is_fnm() or is_inverted() then "white" else "black"} + shadow color: {if is_shifted() or is_fnm() then rgb(0,0,0) else rgba(0,0,0,0)} + shadow displacement x: -1 + shadow displacement y: 1 + alias: + left: {if is_skinned() then 45 else if is_map() then 15 else 33} + top: {if is_map() then 58 else 53} + width: {if is_skinned() then 285 else if use_evobar() then max(100, card_style.alias.content_width) else 0} + height: 20 + alignment: { (if is_skinned() then "center" else "") + "bottom shrink-overflow"} + padding bottom: 0 + z index: 3 + font: + name: {if use_evobar() then "Matrix" else "MPlantin-Italic"} + size: {if use_evobar() then 10 else 9} + style: {if use_evobar() then "italic" else "bold"} + weight: {if use_evobar() then "italic" else "bold"} + color: {if use_evobar() then "black" else "white"} + casting cost: + right: { if is_map() then 327 else 346} + top: { if is_map() then 27 else 29} + width: { max(30, card_style.casting_cost.content_width) + 5 } + height: 23 + alignment: middle right + font: + name: MPlantin + size: { if is_map() then 14 else 15} + symbol font: + name: magic-mana-large + size: { if is_map() then 14 else 15} + alignment: middle right + always symbol: true + z index: 2 + padding top: 0 + card symbol: + left: {if card.card_symbol=="none" then 20 else 30} + top: 29 + height: 20 + width: 14 + z index: 1 + render style: image + choice images: + tombstone: tombstone.png + ############################# Image + image: + left: { if is_clear() or is_map() or is_expanded_art() or is_puma() then 0 else if is_full_art() then 23 else if clear_tops() then 15 else if is_mutate() then 22 else 29} + top: {if is_map() then 57 else if is_clear() or is_expanded_art() or clear_tops() then 0 else 59} + width: {if is_clear() or is_map() or is_expanded_art() or is_puma() then 375 else if is_full_art() then 328 else if clear_tops() then 345 else if is_mutate() then 330 else 316} + height: {if is_clear() or is_expanded_art() then 523 else if is_map() then 241 else if is_puma() then (if is_mutate() then 334 else 265) else if is_full_art() then 423 else if clear_tops() then 291 else if is_mutate() then 334 else 231} + z index: 1 + default: {default_image(card.card_color)} + mask: { if is_devoid() then "image_mask_devoid.png" else if is_clear() then "image_mask.png" else if is_thbland() then "cornermask.png" else if is_puma() then "puma_mask" + (if is_mutate() then "_mutate.png" else "3.png") else if is_expanded_art() then expanded_mask() else if is_full_art() then "promo/image_mask" + (if is_rare() and styling.use_holofoil_stamps then "_rare") + ".png" else if is_mutate() and not clear_tops() then "mutate_mask.png" else ""} + mainframe image: + left: {if comma_count(styling.popout_image_style) == ",,,," then split_text(match:",", styling.popout_image_style).0 else "0"} + top: {if comma_count(styling.popout_image_style) == ",,,," then split_text(match:",", styling.popout_image_style).1 else "0"} + width: {if comma_count(styling.popout_image_style) == ",,,," then split_text(match:",", styling.popout_image_style).2 else "0"} + height: {if comma_count(styling.popout_image_style) == ",,,," then split_text(match:",", styling.popout_image_style).3 else "0"} + z index: 8 + ############################# Card type + indicator: + left: { (if is_map() then 18 else if is_season() then 43 else 31) + (if is_clear() then 2 else 0) + (if use_flash_dot() then 3 else 0)} + top: { if is_clear() or is_map() then 298 else if is_thbland() then 449 else if is_full_art() then 332 else 300 } + width: 17 + height: 17 + z index: 2 + render style: image + visible: { styling.color_indicator_dot } + image: { card_identity() } + type: + left: { if is_map() then 85 else (if use_flash_dot() then 3 else 0) + if is_season() then (if styling.color_indicator_dot then 64 else 44)+(if is_clear() then 4 else 0) else (if styling.color_indicator_dot then 52 else 32) + (if is_clear() then 4 else 0) } + top: { (if is_map() then 297.5 else if is_clear() then 294 else if is_thbland() then 444 else if is_full_art() then 329 else 296) + shrink_type() } + width: { if is_map() then 205 else (if styling.color_indicator_dot then "290" else "310") - (if card_style.rarity.width == 0 then 0 else max(22,card_style.rarity.content_width)) - (if is_season() then 12 else 0) } + height: { (if is_map() then 18 else 20) - shrink_type() } + alignment: { if is_map() then "center top shrink-overflow" else "top shrink-overflow"} + z index: 5 + padding top: 2 + font: + name: Beleren Bold + size: { (if is_map() then 12 else 13) - shrink_type() } + color: { if is_full_art() or is_puma() or is_shifted() or is_fnm() or is_inverted() then "white" else "black"} + shadow color: {if is_full_art() or is_puma() or is_shifted() or is_fnm() then "black" else rgba(0,0,0,0)} + shadow displacement x: -1 + shadow displacement y: 1 + separator color: red + rarity: + right: { if is_map() then 199 else if is_scrolls() then 334 else 344} + top: { if is_map() then 53 else if is_clear() then 295 else if is_thbland() then 445 else if is_full_art() then 329 else 297 } + width: {if set.shorten_types_for_rarity then 44 else 0} + height: 22 + z index: 5 + render style: image + alignment: middle right + choice images: + # Images based on the set symbol + basic land: + script: + if use_main_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") + common: + script: + if use_main_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 use_main_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 use_main_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 use_main_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") + special: + script: + if use_main_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: "special") + masterpiece: + script: + if use_main_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "mp.png" + else symbol_variation(symbol: set.masterpiece_symbol, variation: "mythic rare") + ############################# Text boxs + text: + left: { if (card.level_0 != "" or card.level_1 != "" or card.level_2 != "") then 75 else if is_map() then 40 else 29} + top: { top_of_textbox() } + width: { if is_leveler() then 0 else (if(card.level_0 != "" or card.level_1 != "" or card.level_2 != "") then -46 else 0) + if is_map() then 287 else 314 } + bottom: { bottom_of_textbox() } + font: + name: MPlantin + italic name: MPlantin-Italic + size: {if styling.font_cap != "" then to_number(styling.font_cap) else (if is_mutate() then 12 else 14)} + scale down to: 6 + color: { if is_full_art() or is_fnm() or is_inverted() then "white" else "black"} + shadow color: {if is_full_art() or is_fnm() then "black" else rgba(0,0,0,0)} + shadow displacement x: -1 + shadow displacement y: 1 + symbol font: + name: { styling.text_box_mana_symbols } + size: {if styling.font_cap != "" then to_number(styling.font_cap) else (if is_mutate() then 12 else 14)} + scale down to: 6 + alignment: + script: + if (styling.center_text == "short text only" and + not contains(match:"\n", card.rule_text) and + card.flavor_text == "" and + card_style.text.content_lines <= 2) or + styling.center_text == "always" + then "middle center" + else "middle left" + z index: 4 + padding left: 6 + padding right: 4 + line height hard: {if is_modal(card.rule_text) then 0.9 else 1.2 } + line height line: 1.5 + line height soft: 0.9 + line height hard max: {if is_modal(card.rule_text) then 1.0 else 1.3 } + line height line max: 1.6 + ############################# leveler + level 1 text: + left: { if is_leveler() and card.level_0 != "" then (if loy_leveler() then 57 else if box_leveler() then 78 else 75) else if is_map() then 40 else 29} + top: {if is_mutate() then 329 else top_of_textbox()} + right: { if is_leveler() then (if lone_pt() or card.pt == "" then 342 else 277) else if is_mutate() then 342 else if is_map() then 40 else 29} + bottom: { if is_mutate() then 392 else if is_leveler() then (327+lv_1_height()) else bottom_of_textbox() } + font: + name: MPlantin + italic name: MPlantin-Italic + size: {if styling.font_cap != "" then to_number(styling.font_cap) else 14} + scale down to: 6 + color: { if is_full_art() or is_fnm() or is_inverted() then "white" else "black"} + shadow color: {if is_full_art() or is_fnm() then "black" else rgba(0,0,0,0)} + shadow displacement x: -1 + shadow displacement y: 1 + symbol font: + name: { styling.text_box_mana_symbols } + size: {if styling.font_cap != "" then to_number(styling.font_cap) else 14} + scale down to: 6 + alignment: + script: + if (styling.center_text == "short text only" and + not contains(match:"\n", card.rule_text) and + card.flavor_text == "" and + card_style.text.content_lines <= 2) or + styling.center_text == "always" + then "middle center" + else "middle left" + z index: 3 + padding left: 6 + padding right: 4 + line height hard: {if is_modal(card.level_1_text) then 0.9 else 1.2 } + line height line: 1.5 + line height soft: 0.9 + line height hard max: {if is_modal(card.level_1_text) then 1.0 else 1.3 } + line height line max: 1.6 + level 2 text: + left: { if is_leveler() then (if card.level_1 != "" then (if loy_leveler() then 57 else if box_leveler() then 78 else 75) else if is_map() then 40 else 29) else 0} + top: { if is_leveler() then (329 + lv_2_coordinate()) else 0 } + right: { if is_leveler() then (if card.pt_2 != "" then 277 else 342) else 0 } + bottom: { if is_leveler() then (329 + lv_2_coordinate()) + lv_2_height()-2 else 0 } + font: + name: MPlantin + italic name: MPlantin-Italic + size: {if styling.font_cap != "" then to_number(styling.font_cap) else 14} + scale down to: 6 + color: { if is_full_art() or is_fnm() or is_inverted() then "white" else "black"} + shadow color: {if is_full_art() or is_fnm() then "black" else rgba(0,0,0,0)} + shadow displacement x: -1 + shadow displacement y: 1 + symbol font: + name: { styling.text_box_mana_symbols } + size: {if styling.font_cap != "" then to_number(styling.font_cap) else 14} + scale down to: 6 + alignment: + script: + if (styling.center_text == "short text only" and + not contains(match:"\n", card.rule_text) and + card.flavor_text == "" and + card_style.text.content_lines <= 2) or + styling.center_text == "always" + then "middle center" + else "middle left" + z index: 3 + padding left: 6 + padding right: 4 + line height hard: {if is_modal(card.level_2_text) then 0.9 else 1.2 } + line height line: 1.5 + line height soft: 0.9 + line height hard max: {if is_modal(card.level_2_text) then 1.0 else 1.3 } + line height line max: 1.6 + level 3 text: + left: {if card.level_2 != "" then (if loy_leveler() then 57 else if box_leveler() then 78 else 75) else if is_map() then 40 else 29} + top: {331 + lv_3_coordinate()} + right: {if card.pt_3 != "" then 277 else 342} + height: {if not is_leveler()then 0 else lv_3_height()-2} + font: + name: MPlantin + italic name: MPlantin-Italic + size: {if styling.font_cap != "" then to_number(styling.font_cap) else 14} + scale down to: 6 + color: { if is_full_art() or is_fnm() or is_inverted() then "white" else "black"} + shadow color: {if is_full_art() or is_fnm() then "black" else rgba(0,0,0,0)} + shadow displacement x: -1 + shadow displacement y: 1 + symbol font: + name: { styling.text_box_mana_symbols } + size: {if styling.font_cap != "" then to_number(styling.font_cap) else 14} + scale down to: 6 + alignment: + script: + if (styling.center_text == "short text only" and + not contains(match:"\n", card.rule_text) and + card.flavor_text == "" and + card_style.text.content_lines <= 2) or + styling.center_text == "always" + then "middle center" + else "middle left" + z index: 3 + padding left: 6 + padding right: 4 + line height hard: {if is_modal(card.level_3_text) then 0.9 else 1.2 } + line height line: 1.5 + line height soft: 0.9 + line height hard max: {if is_modal(card.level_3_text) then 1.0 else 1.3 } + line height line max: 1.6 + level 4 text: + left: {if card.level_3 != "" then (if loy_leveler() then 57 else if box_leveler() then 78 else 75) else if is_map() then 40 else 29} + top: {331 + lv_4_coordinate()} + right: {if card.pt_7 != "" then 277 else 342} + height: {if not is_leveler() then 0 else lv_4_height()-2} + font: + name: MPlantin + italic name: MPlantin-Italic + size: {if styling.font_cap != "" then to_number(styling.font_cap) else 14} + scale down to: 6 + color: { if is_full_art() or is_fnm() then "white" else "black"} + shadow color: {if is_full_art() or is_fnm() then "black" else rgba(0,0,0,0)} + shadow displacement x: -1 + shadow displacement y: 1 + symbol font: + name: { styling.text_box_mana_symbols } + size: {if styling.font_cap != "" then to_number(styling.font_cap) else 14} + scale down to: 6 + alignment: + script: + if (styling.center_text == "short text only" and + not contains(match:"\n", card.rule_text) and + card.flavor_text == "" and + card_style.text.content_lines <= 2) or + styling.center_text == "always" + then "middle center" + else "middle left" + z index: 3 + padding left: 6 + padding right: 4 + line height hard: {if is_modal(card.level_4_text) then 0.9 else 1.2 } + line height line: 1.5 + line height soft: 0.9 + line height hard max: {if is_modal(card.level_4_text) then 1.0 else 1.3 } + line height line max: 1.6 + watermark: + left: { if is_map() then 40 else 19 } + top: { if is_full_art() then 359 else 330 } + width: { if is_tarot() then 0 else if is_map() then 287 else 334 } + height: { if is_map() then 154 else if is_full_art() then 120 else 152 } + z index: 2 + render style: image + popup style: in place + alignment: middle center + include file: /magic-watermarks.mse-include/watermarks + ############################# Levels + level 0: + z index: 7 + left: {if box_leveler() then 8 else if loy_leveler() then 14 else 21} + top: {l1_center() - (if aug_leveler(0) then 4 else 2) - (if center_label(0) then 6 else 0) + arrow_offset(0)} + width: {if is_leveler() or card.level_0 != "" then (34 + (if box_leveler() then 30 else 0)) else 0} + height: 22 + alignment: center middle shrink-overflow + font: + name: Beleren Bold + size: {if loy_leveler() then 11 else 12 + if center_label(0) then 2 else 0} + weight: bold + color: {if loy_leveler() then "white" else "black"} + shadow color: { if loy_leveler() then rgba(0,0,0,0) else "white"} + shadow blur: 2 + symbol font: + name: { styling.level_mana_symbols } + size: {12 + if center_label(0) then 0.5 else 0} + level 1: + z index: 7 + left: {if box_leveler() then 8 else if loy_leveler() then 14 else 21} + top: {l2_center() - (if aug_leveler(1) then 4 else 2) - (if center_label(1) then 6 else 0) + arrow_offset(1)} + height: 22 + width: {if is_leveler() or card.level_1 != "" then (34 + (if box_leveler() then 30 else 0)) else 0} + alignment: center middle shrink-overflow + font: + name: Beleren Bold + size: {if loy_leveler() then 11 else 12 + if center_label(0) then 2 else 0} + weight: bold + color: {if loy_leveler() then "white" else "black"} + shadow color: { if loy_leveler() then rgba(0,0,0,0) else "white"} + shadow blur: 2 + symbol font: + name: { styling.level_mana_symbols } + size: {12 + if center_label(0) then 0.5 else 0} + level 2: + z index: 7 + left: {if box_leveler() then 8 else if loy_leveler() then 14 else 21} + top: {l3_center() - (if aug_leveler(2) then 4 else 2) - (if center_label(2) then 6 else 0) + arrow_offset(2)} + width: {if is_leveler() or card.level_2 != "" then (34 + (if box_leveler() then 30 else 0)) else 0} + height: 22 + alignment: center middle shrink-overflow + font: + name: Beleren Bold + size: {if loy_leveler() then 11 else 12 + if center_label(0) then 2 else 0} + weight: bold + color: {if loy_leveler() then "white" else "black"} + shadow color: { if loy_leveler() then rgba(0,0,0,0) else "white"} + shadow blur: 2 + symbol font: + name: { styling.level_mana_symbols } + size: {12 + if center_label(0) then 0.5 else 0} + level 3: + z index: 7 + left: {if box_leveler() then 8 else if loy_leveler() then 14 else 21} + top: {l4_center() - (if aug_leveler(3) then 4 else 2) - (if center_label(3) then 6 else 0) + arrow_offset(3)} + width: {if is_leveler() or card.level_2 != "" then (34 + (if box_leveler() then 30 else 0)) else 0} + height: { if card_style.level_4_text.height < 10 and card.level_3 == "" then 0 else 22} + alignment: center middle shrink-overflow + font: + name: Beleren Bold + size: {if loy_leveler() then 11 else 12 + if center_label(0) then 2 else 0} + weight: bold + color: {if loy_leveler() then "white" else "black"} + shadow color: { if loy_leveler() then rgba(0,0,0,0) else "white"} + shadow blur: 2 + symbol font: + name: { styling.level_mana_symbols } + size: {12 + if center_label(0) then 0.5 else 0} + ############################# PT + pt: + z index: 4 + left: {if is_leveler() and not lone_pt() then 291 else 286} + top: { if is_leveler() and not lone_pt() then (l1_center() - 14) else if is_map() then 467 else 469} + width: {if starting_loyalty() and not is_leveler() then 0 else 60} + height: 28 + alignment: center middle shrink-overflow + font: + name: Beleren Bold + size: {if is_map() then 14 else 16} + color: {if is_shifted() or is_fnm() or is_inverted() then "white" else if is_vehicle() and (not is_legend() or chosen(styling.other_options, choice:"brown legendary vehicle pt")) then "white" else "black"} + separator color: red + shadow color: {if is_shifted() or is_fnm() then rgb(0,0,0) else rgba(0,0,0,0)} + shadow displacement x: -1 + shadow displacement y: 1 + + pt 2: + z index: 4 + left: 291 + top: {(l2_center() - 12)} + width: {if is_leveler() and not lone_pt() or card.pt_2 != "" then 60 else 0} + height: 28 + alignment: center middle shrink-overflow + font: + name: Beleren Bold + size: {if is_map() then 14 else 16} + color: {if is_shifted() or is_fnm() or is_inverted() then "white" else if is_vehicle() and (not is_legend() or chosen(styling.other_options, choice:"brown legendary vehicle pt")) then "white" else "black"} + separator color: red + shadow color: {if is_shifted() or is_fnm() then rgb(0,0,0) else rgba(0,0,0,0)} + shadow displacement x: -1 + shadow displacement y: 1 + pt 3: + z index: 4 + left: 291 + top: {(l3_center() - 12)} + width: {if is_leveler() and not lone_pt() or card.pt_3 != "" then 60 else 0} + height: 28 + alignment: center middle shrink-overflow + font: + name: Beleren Bold + size: {if is_map() then 14 else 16} + color: {if is_shifted() or is_fnm() or is_inverted() then "white" else if is_vehicle() and (not is_legend() or chosen(styling.other_options, choice:"brown legendary vehicle pt")) then "white" else "black"} + separator color: red + shadow color: {if is_shifted() or is_fnm() then rgb(0,0,0) else rgba(0,0,0,0)} + shadow displacement x: -1 + shadow displacement y: 1 + pt 7: + z index: 4 + left: 291 + top: {(l4_center() - 12)} + width: {if is_leveler() and not lone_pt() or card.pt_7 != "" then 60 else 0} + height: {if card_style.level_4_text.height < 10 and card.pt_7 == "" then 0 else 28} + alignment: center middle shrink-overflow + font: + name: Beleren Bold + size: {if is_map() then 14 else 16} + color: {if is_shifted() or is_fnm() then "white" else if is_vehicle() and (not is_legend() or chosen(styling.other_options, choice:"brown legendary vehicle pt")) then "white" else "black"} + separator color: red + shadow color: {if is_shifted() or is_fnm() then rgb(0,0,0) else rgba(0,0,0,0)} + shadow displacement x: -1 + shadow displacement y: 1 + loyalty: + z index: 7 + left: 326 + top: 468 + width: {if starting_loyalty() then 13.16 else 0} + height: 34.63 + alignment: center middle + font: + name: Beleren Bold + size: 14 + color: white + ############################# Card sorting / numbering + set code: + left: 24 + top: 498 + width: 40 + height: 10 + z index: 3 + font: + name: Relay-Medium + size: 7 + color: white + weight: bold + ############################# Copyright stuff + illustrator: + left: { 44 + card_style.set_code.content_width } + top: 497.5 + width: 200 + height: 10 + z index: 3 + font: + name: Beleren Small Caps Bold + size: 7.25 + color: white + copyright: + right: 350 + top: + { + if is_leveler() and not lone_pt() + then 488 + else if (starting_loyalty() and card.loyalty != "") or (card.pt != "" and not starting_loyalty()) + then 500 + else 488 + } + width: {if set.automatic_copyright then 0 else 140} + height: 10 + z index: 4 + alignment: middle right + font: + name: MPlantin + size: 6.5 + color: white + weight: bold +############################################################## Extra card fields +extra card field: + type: text + name: card code + save value: false + script: + if set.automatic_card_numbers and not styling.remove_from_autocount then + forward_editor(prefix: card_number_m15() + "/" + card_count_m15() + " " + rarity_code() + " ", field: card.card_code_text) + else + combined_editor(field1: card.custom_card_number, separator: " " + rarity_code() + " ", field2: card.card_code_text) +extra card field: + type: choice + name: artist arrow + editable: false + save value: false + choice: white +extra card field: + type: choice + name: pt box + script: card.card_color + editable: false + save value: false +extra card field: + type: choice + name: pt box 2 + script: card.card_color + editable: false + save value: false +extra card field: + type: choice + name: pt box 3 + script: card.card_color + editable: false + save value: false +extra card field: + type: choice + name: pt box 4 + script: card.card_color + editable: false + save value: false +extra card field: + type: choice + name: stamp + script: card.card_color + editable: false + save value: false +extra card field: + type: choice + name: foil stamp + choice: stamp + save value: false + editable: false +extra card field: + type: choice + name: clear frame + script: card.card_color + save value: false + editable: false +extra card field: + type: choice + name: mirror frame + script: card.card_color + save value: false + editable: false +extra card field: + type: choice + name: foil layer + choice: foil + save value: false + editable: false +extra card field: + type: text + name: auto copyright + script: set.copyright + save value: false + editable: false + show statistics: false +extra card field: + type: choice + name: mainframe rarity + choice: rarity + save value: false + editable: false +extra card field: + type: choice + name: vehicle overlay + choice: car door + save value: false + editable: false +extra card field: + type: choice + name: snow overlay + choice: snow + save value: false + editable: false + script: card.card_color +extra card field: + type: choice + name: nyx overlay + choice: nyx + save value: false + editable: false + script: card.card_color +extra card field: + type: choice + name: miracle overlay + choice: miracle + save value: false + editable: false + script: card.card_color +extra card field: + type: choice + name: map frame + script: card.card_color + save value: false + editable: false +extra card field: + type: choice + name: flavor bar + choice: bar + editable: false + save value: false + show statistics: false +extra card field: + type: text + name: tarot watermark +extra card field: + type: choice + name: curtain + script: card.card_color + editable: false + save value: false + show statistics: false +extra card field: + type: choice + name: scrolls + script: card.card_color + editable: false + save value: false + show statistics: false +extra card field: + type: choice + name: crown + script: card.card_color + editable: false + save value: false + show statistics: false +extra card field: + type: text + name: promo label + save value: true + description: The golden promo label. +extra card field: + type: choice + name: evobar + choice: evo + save value: false + editable: false +extra card field: + type: choice + name: evobar tip + choice: evo + save value: false + editable: false +extra card field: + type: choice + name: evobar start + choice: evo + save value: false + editable: false +extra card field: + type: choice + name: alias bar + script: card.card_color + save value: false + editable: false +# Add the word "LEVEL" to the top arrow. +extra card field: + type: text + name: lvl label 0 + editable: false + save value: false + script: if loy_leveler() then ":" else level_label(0) +# Add the word "LEVEL" to the second arrow. +extra card field: + type: text + name: lvl label 1 + editable: false + save value: false + script: if loy_leveler() then ":" else level_label(1) +# Add the word "LEVEL" to the third arrow. +extra card field: + type: text + name: lvl label 2 + editable: false + save value: false + script: if loy_leveler() then ":" else level_label(2) +# Add the word "LEVEL" to the fourth arrow. +extra card field: + type: text + name: lvl label 3 + editable: false + save value: false + script: if loy_leveler() then ":" else level_label(2) +extra card field: + type: choice + name: level 2 overlay + script: card.card_color + choice: mask + editable: false + show statistics: false +extra card field: + type: choice + name: level 3 overlay + script: card.card_color + choice: mask + editable: false + show statistics: false +extra card field: + type: choice + name: level 4 overlay + script: card.card_color + choice: mask + editable: false + show statistics: false +extra card field: + type: choice + name: arrow 1 + script: card.card_color + editable: false + save value: false + show statistics: false +extra card field: + type: choice + name: arrow 2 + script: card.card_color + editable: false + save value: false + show statistics: false +extra card field: + type: choice + name: arrow 3 + script: card.card_color + editable: false + save value: false + show statistics: false +extra card field: + type: choice + name: arrow 4 + script: card.card_color + editable: false + save value: false + show statistics: false +extra card field: + type: choice + name: mutbar + choice: bar + editable: false + save value: false + show statistics: false +extra card field: + type: color + name: silver patch + script: rgb(0,0,0) +extra card field: + type: text + name: ascend + script: text_filter(value, card_name:card.name, margin_code:"unknown") +extra card field: + type: choice + name: season flag + script: card.card_color + save value: false + editable: false +extra card field: + type: choice + name: loyalty box + editable: false + choice: loyalty + save value: false +extra card field: + type: choice + name: stripe + choice: stripe + editable: false + save value: false + show statistics: false +extra card field: + type: choice + name: stripe 2 + choice: stripe + editable: false + save value: false + show statistics: false +extra card field: + type: choice + name: node + script: card.card_color + editable: false + save value: false + show statistics: false +extra card field: + type: choice + name: corner + choice: none + choice: lesson + choice: custom + choice: day + choice: night + choice: moon + choice: eldrazi + choice: compass + choice: artifact + choice: creature + choice: enchantment + choice: instant + choice: land + choice: multitype + choice: sorcery + choice: planeswalker + choice: structure + choice: aetherprint + choice: modal + choice: + name: sparker colors + choice: white + choice: blue + choice: black + choice: red + choice: green + choice: multicolor + choice: colorless + default: "lesson" + save value: true + editable: true +extra card field: + type: multiple choice + name: pride pin + include file: /magic-pride.mse-include/pins + save value: true + editable: true +extra card field: + type: text + name: vorthos box + save value: true + editable: true + description: Where they put mtgstory.com on story spotlights. +extra card field: + type: choice + name: flash indicator + choice: dot + save value: false + editable: false + +extra card style: + promo label: + left: 40 + top: { if is_full_art() then 295 else 262 } + width: {if chosen(styling.other_options, choice:"prerelease stamp") then 295 else 0} + height: 29 + alignment: middle right + z index: 4 + font: + name: ModMatrix + size: 14 + color: rgb(223,169,41) + card code: + left: 24 + top: 488 + width: 120 + height: 10 + z index: 3 + font: + name: Relay-Medium + size: 7 + color: white + weight: bold + artist arrow: + left: { 28 + card_style.set_code.content_width } + top: 500 + width: 12 + height: 7 + z index: 3 + render style: image + image: artist_arrow.png + pt box: + left: { if is_leveler() and not lone_pt() then 278 else if is_map() then 270 else 273} + top: { if is_leveler() and not lone_pt() then (l1_center() - (if is_map() then 26 else 18)) else if is_map() then 453 else 466} + width: { if starting_loyalty() and not is_leveler() then 0 else if is_map() then 90 else 81} + height: { if is_map() then 54 else 42} + z index: 3 + visible: { card.pt != "" } + render style: image + image: { if is_map() then mappt_background() else if is_vehicle() and (not is_legend() or chosen(styling.other_options, choice:"brown legendary vehicle pt")) then "vpt.png" else if is_clear() then "cpt.png" else choose_ptbox() } + pt box 2: + left: 278 + top: { l2_center() - (if is_map() then 26 else 15)} + width: { if (is_leveler() and not lone_pt()) or card.pt_2 != "" then (if is_map() then 90 else 81) else 0} + height: { if (is_leveler() and not lone_pt()) or card.pt_2 != "" then (if is_map() then 54 else 42) else 0} + z index: 3 + visible: { card.pt_2 != "" } + render style: image + image: {if is_map() then mappt_background() else combine_blend(image1: lv_2_ptbox(), image2: "ptbox_multiply_1.png", combine: "multiply")} + pt box 3: + left: 278 + top: { l3_center() - (if is_map() then 26 else 15)} + width: { if (is_leveler() and not lone_pt()) or card.pt_3 != "" then (if is_map() then 90 else 81) else 0} + height: { if (is_leveler() and not lone_pt()) or card.pt_3 != "" then (if is_map() then 54 else 42) else 0} + z index: 3 + visible: { card.pt_3 != "" } + render style: image + image: {if is_map() then mappt_background() else combine_blend(image1: lv_3_ptbox(), image2: "ptbox_multiply_2.png", combine: "multiply")} + pt box 4: + left: 278 + top: { l4_center() - (if is_map() then 26 else 15)} + width: { if (is_leveler() and not lone_pt()) or card.pt_3 != "" then (if is_map() then 90 else 81) else 0} + height: { if (is_leveler() and not lone_pt()) or card.pt_3 != "" then (if is_map() then 54 else 42) else 0} + z index: 3 + visible: { card.pt_7 != "" } + render style: image + image: {if is_map() then mappt_background() else combine_blend(image1: lv_4_ptbox(), image2: "ptbox_multiply_3.png", combine: "multiply")} + loyalty box: + right: 362 + top: 466 + width: 60 + height: 38 + z index: 6 + render style: image + visible: { starting_loyalty() and card.loyalty != "" } + choice images: + loyalty: loyalty.png + stamp: + left: 165 + top: 472 + width: 46 + height: 26 + z index: 2 + visible: { is_rare() and styling.use_holofoil_stamps and (is_devoid() or not is_clear()) } + render style: image + image: { if is_map() then "maps/holo_stamp.png" else if is_devoid() then "devoid/stamp.png" else card_stamp() } + mask: {"stamp_mask.png"} + foil stamp: + left: 165 + top: 472 + width: 46 + height: 26 + z index: 3 + visible: { is_rare() and styling.use_holofoil_stamps and (is_devoid() or not is_clear()) } + render style: image + image: foil_stamp.png + foil layer: + left: 0 + top : 0 + width: 375 + height: 523 + z index: 3 + render style: image + image: {if styling.overlay == "" then nil else styling.overlay + "/overlay.png"} + mask: { "foil_mask" + (if card.pt != "" then "_pt") + (if is_rare() and styling.use_holofoil_stamps then "_rare") + ".png" } + auto copyright: + right: 350 + top: + { + if is_leveler() and not lone_pt() + then 488 + else if (starting_loyalty() and card.loyalty != "") or (card.pt != "" and not starting_loyalty()) + then 500 + else 488 + } + width: {if set.automatic_copyright then 140 else 0} + height: 10 + z index: 4 + alignment: middle right + font: + name: MPlantin + size: 6.5 + color: white + weight: bold + nyx overlay: + left: 0 + top: 0 + width: 375 + height: 523 + render style: image + image: {nyx_background()} + z index: 0 + visible: {is_nyx()} + mask: {"nyx/" + (if is_vehicle() then "v_" else "") + (if is_full_art() then "full" else "") + "mask.png"} +### FNM has a teeny mask because of a few pixel disagreements between it and normal frames + crown: + left: 0 + top: {if is_devoid() then 1 else 0} + width: 375 + height: 523 + render style: image + image: {if (is_clear() or clear_tops()) and not is_devoid() then "legend/xcrown.png" else if is_fnm() then set_mask(image:crown_background(), mask:"legend/fnm_mask.png") else crown_background()} + z index: 5 + visible: {is_legend() and not is_map()} + mask: {if is_legend() and styling.legend_crown != "custom" and (is_curtains() or is_expanded_art() or is_puma() or is_devoid()) then "curtainmask.png" else if is_season() then "crown_season_mask.png" else ""} + curtain: + left: 0 + top: 0 + width: 375 + height: 523 + render style: image + image: {if is_cons() then cons_background() else curtain_background()} + z index: 0 + visible: {is_cons() or is_curtains()} + mask: {if is_legend() and is_curtains() then "lcurtainmask.png"} + scrolls: + left: 0 + top: 0 + width: 375 + height: 523 + render style: image + image: {if is_puma() then "puma.png" else (if is_full_art() then "full_" else "") + "consscrolls.png"} + mask: {if is_puma() then "puma_mask3.png" else ""} + z index: 1 + visible: {is_scrolls() or is_puma()} + miracle overlay: + left: 0 + top: 0 + width: 375 + height: 523 + render style: image + image: {if (is_clear() or clear_tops()) and not is_devoid() then "miracles/xmiracle.png" else miracle_background()} + z index: 1 + visible: {is_miracle()} + snow overlay: + left: 0 + top: 0 + width: 375 + height: 523 + render style: image + image: {snow_texture()} + z index: 1 + mask: {"snow/snow_" + (if is_full_art() then "promo" else "fnm") + "_mask.png"} + visible: {is_snow() and not pure_snow() and not is_expanded_art()} + vehicle overlay: + left: 0 + top: 0 + width: 375 + height: 523 + render style: image + image: {"voverlay" + (if is_full_art() then "_full" else "") + ".png" } + z index: 0 + visible: {is_vehicle()} + clear frame: + left: 0 + top: 0 + width: 375 + height: 523 + z index: 1 + render style: image + image: { if is_devoid() then devoid_background() else if is_rare() and styling.use_holofoil_stamps then "clear_rare.png" else "clear.png"} + visible: { is_clear() or is_devoid() or clear_tops()} + mirror frame: + left: 0 + top: 0 + width: {if clear_tops() then 375 else 0} + height: 523 + z index: 1 + render style: image + popup style: in place + image: { if not clear_tops() then "" else if is_fnm() then fnm_background() else if is_inverted() then inverted_background() else if is_full_art() then promo_background() else card_background() } + mask: {if clear_tops() then "clear_tops_mask.png" else ""} + map frame: + left: 0 + top: 0 + width: 375 + height: 523 + z index: 1 + render style: image + image: { if is_map() then map_background() else energy_background() } + visible: { is_map() or is_thbland() } + evobar: + left: {if is_map() then 15 else 27} + top: {if is_map() then 62 else 57} + width: {card_style.alias.content_width} + height: 27 + z index: 2 + render style: image + image: evobar.png + visible: {use_evobar()} + evobar tip: + left: {(if is_map() then 14.6 else 26.6) + card_style.alias.content_width} + top: {if is_map() then 62 else 57} + width: 36 + height: 27 + z index: 2 + render style: image + image: evobar_tip.png + visible: {use_evobar()} + flavor bar: + left: 0 + top: { bar_equation() } + width: 375 + height: 1 + z index: 1 + render style: image + image: bar.png + visible: { card.rule_text != "" and remove_tags(card.flavor_text) != "" and set.use_flavor_bar } + tarot watermark: + left: { if is_map() then 40 else 19 } + top: { if is_full_art() then 359 else 330 } + width: { if not is_tarot() then 0 else if is_map() then 287 else 334 } + height: { if is_map() then 154 else if is_full_art() then 120 else 152 } + z index: 2 + alignment: middle center + font: + name: MPlantin + size: 90 + color: {rgba(0,0,0,40)} + lvl label 0: + left: {if box_leveler() then 8 else if loy_leveler() then 48 else 21} + top: {l1_center() - (if loy_leveler() then 2 else 10) + arrow_offset(0)} + width: {if is_leveler() or card.level_0 != "" then (if loy_leveler() then 10 else 34 + (if box_leveler() then 30 else 0)) else 0} + height: {if loy_leveler() then 10 else if center_label(0) then 0 else 10} + z index: 6 + alignment: middle center + font: + name: {if loy_leveler() then "MPlantin" else "Beleren Small Caps"} + size: {if loy_leveler() then 15 else if length(level_label(0)) < 8 or box_leveler() then 7 else 6} + color: black + weight: {if loy_leveler() then "" else "bold"} + visible: {card.level_0 != ""} + lvl label 1: + left: {if box_leveler() then 8 else if loy_leveler() then 48 else 21} + top: {l2_center() - (if loy_leveler() then 2 else 10) + arrow_offset(1)} + width: {if is_leveler() or card.level_1 != "" then (if loy_leveler() then 10 else 34 + (if box_leveler() then 30 else 0)) else 0} + height: {if loy_leveler() then 10 else if center_label(1) then 0 else 10} + z index: 6 + alignment: middle center + font: + name: {if loy_leveler() then "MPlantin" else "Beleren Small Caps"} + size: {if loy_leveler() then 15 else if length(level_label(1)) < 8 or box_leveler() then 7 else 6} + color: black + weight: {if loy_leveler() then "" else "bold"} + visible: {card.level_1 != ""} + lvl label 2: + left: {if box_leveler() then 8 else if loy_leveler() then 48 else 21} + top: {l3_center() - (if loy_leveler() then 2 else 10) + arrow_offset(2)} + width: {if is_leveler() or card.level_2 != "" then (if loy_leveler() then 10 else 34 + (if box_leveler() then 30 else 0)) else 0} + height: {if loy_leveler() then 10 else if center_label(2) then 0 else 10} + z index: 6 + alignment: middle center + font: + name: {if loy_leveler() then "MPlantin" else "Beleren Small Caps"} + size: {if loy_leveler() then 15 else if length(level_label(2)) < 8 or box_leveler() then 7 else 6} + color: black + weight: {if loy_leveler() then "" else "bold"} + visible: {card.level_2 != ""} + lvl label 3: + left: {if box_leveler() then 8 else if loy_leveler() then 48 else 21} + top: {l4_center() - (if loy_leveler() then 2 else 10) + arrow_offset(3)} + width: {if is_leveler() or card.level_3 != "" then (if loy_leveler() then 10 else 34 + (if box_leveler() then 30 else 0)) else 0} + height: {if loy_leveler() then 10 else if center_label(3) then 0 else 10} + z index: 6 + alignment: middle center + font: + name: {if loy_leveler() then "MPlantin" else "Beleren Small Caps"} + size: {if loy_leveler() then 15 else if length(level_label(2)) < 8 or box_leveler() then 7 else 6} + color: black + weight: {if loy_leveler() then "" else "bold"} + visible: {card.level_3 != ""} + level 2 overlay: + left: 29 + top: { if is_d20() then top_of_para(rolls_start(card.text)) else 329 + lv_2_coordinate()} + height: { if is_d20() then height_of_para(rolls_start(card.text)) else lv_2_height()} + width: 314 + z index: 1 + render style: image + image: {overlay1()} + visible: {(is_d20() and number_of_rolls(card.text) > 0) or (is_leveler() and not is_full_art() and not is_map() and not is_fnm() and not is_inverted())} + level 3 overlay: + left: 29 + top: { if is_d20() then top_of_para(rolls_start(card.text)+2) else 329 + lv_3_coordinate()} + height: { if is_d20() then height_of_para(rolls_start(card.text)+2) else lv_3_height()} + width: 314 + z index: 1 + render style: image + image: {overlay2()} + visible: {(is_d20() and number_of_rolls(card.text)-no_roll(card.text) > 2) or (is_leveler() and not is_full_art() and not is_map() and not is_fnm() and not is_inverted())} + level 4 overlay: + left: 29 + top: { if is_d20() then top_of_para(rolls_start(card.text)+4) else 329 + lv_4_coordinate()} + height: { if is_d20() then height_of_para(rolls_start(card.text)+4) else lv_4_height()} + width: 314 + z index: 1 + render style: image + image: {overlay3()} + visible: {(is_d20() and number_of_rolls(card.text)-no_roll(card.text) > 4) or (is_leveler() and not is_full_art() and not is_map() and not is_fnm() and not is_inverted())} + arrow 1: + z index: 5 + left: {arrow_left()} + top: {l1_center() - 16 + arrow_offset(0)} + width: {if card.level_0 != "" then arrow_width() else 0} + height: {arrow_height(0)} + render style: image + image: {if loy_leveler() then loyalty_image(card.level_0) else if box_leveler() then choose_ptbox() else arrow_background()} + arrow 2: + z index: 5 + left: {arrow_left()} + top: {l2_center() - 16 + arrow_offset(1)} + width: {if card.level_1 != "" then arrow_width() else 0} + height: {arrow_height(1)} + render style: image + image: {if loy_leveler() then loyalty_image(card.level_1) else if box_leveler() then choose_ptbox() else arrow_background()} + arrow 3: + z index: 5 + left: {arrow_left()} + top: {l3_center() - 16 + arrow_offset(2)} + width: {if card.level_2 != "" then arrow_width() else 0} + height: {arrow_height(2)} + render style: image + image: {if loy_leveler() then loyalty_image(card.level_2) else if box_leveler() then choose_ptbox() else arrow_background()} + arrow 4: + z index: 5 + left: {arrow_left()} + top: {l4_center() - 16 + arrow_offset(3)} + width: {if card.level_3 != "" then arrow_width() else 0} + height: {arrow_height(3)} + render style: image + image: {if loy_leveler() then loyalty_image(card.level_3) else if box_leveler() then choose_ptbox() else arrow_background()} + mutbar: + z index: 2 + left: 28 + top: 393 + height: 2 + width: 317 + render style: image + image: mutbar.png + visible: {is_mutate()} + silver patch: + left: 10 + top: 10 + width: 355 + height: 15 + z index: 2 + visible: {is_legend() and card.border_color == rgb(200,200,200)} + season flag: + left: 0 + top: 0 + width: 375 + height: 523 + z index: 1 + render style: image + image: { season_background() } + visible: { is_season() } + mask: {if is_expanded_art() then "season/full_mask.png" else ""} + ascend: + left: 37 + top: 59 + width: {if is_season() then 300 else 0} + height: 20 + angle: 270 + z index: 6 + alignment: justify-all force + always symbol: true + font: + name: MPlantin + italic name: MPlantin-Italic + size: {if styling.font_cap != "" then to_number(styling.font_cap) else 14} + scale down to: 6 + color: black + symbol font: + name: { styling.text_box_mana_symbols } + size: {if styling.font_cap != "" then to_number(styling.font_cap) else 14} + scale down to: 6 + alias bar: + left: 38 + top: {if is_clear() or clear_tops() then 59 else 57} + width: 298 + height: 21 + z index: 2 + render style: image + image: {if is_devoid() then (if is_legend() then alias_bar() else "alias/devoidalias.png") else if is_clear() or clear_tops() then "alias/xalias.png" else alias_bar()} + visible: {is_skinned() and not use_evobar()} + node: + left: 0 + top: 0 + height: 63 + width: 375 + z index: 6 + render style: image + image: {node_background()} + visible: {not is_map() and not is_clear() and use_node()} + corner: + left: { if is_map() then 22 else 19} + top: 25 + height: 31 + width: {if use_node() then 31 else 0} + z index: 7 + render style: image + visible: {use_node()} + choice images: + lesson: corners/lesson.png + day: corners/sun_circle.png + night: corners/night_circle.png + eldrazi: corners/eldrazi.png + moon: corners/moon.png + compass: corners/compass.png + artifact: corners/artifact.png + creature: corners/creature.png + enchantment: corners/enchantment.png + instant: corners/instant.png + land: corners/land.png + multitype: corners/multitype.png + sorcery: corners/sorcery.png + planeswalker: corners/planeswalker.png + structure: corners/structure.png + compass: corners/compass.png + aetherprint: corners/aetherprint.png + sparker colors white: corners/wcorner.png + sparker colors blue: corners/ucorner.png + sparker colors black: corners/bcorner.png + sparker colors red: corners/rcorner.png + sparker colors green: corners/gcorner.png + sparker colors multicolor: corners/mcorner.png + sparker colors colorless: corners/ccorner.png + custom: { if contains(styling.custom_symbol, match:".png") then "/magic-mainframe-extras.mse-include/" + styling.custom_symbol else "" } + pride pin: + left: {if is_legend() then 18 else 24} + top: 58 + width: {if not is_pinned() then 0 else if is_legend() then 338 else 325} + height: {if not is_pinned() then 0 else 234} + z index: 7 + render style: image + popup style: in place + mask: {"/magic-pride.mse-include/masks/m15" + if is_legend() then " legend.png" else ".png"} + image: {pin_image()} + vorthos box: + right: { if is_leveler() and not lone_pt() then 350 else if (starting_loyalty() and card.loyalty != "") then 300 else if (card.pt != "" and not starting_loyalty()) then 275 else 350 } + top: {if card.pt == "" and shown_cr() then 500 else 488} + width: { if is_leveler() and not lone_pt() then 140 else if (starting_loyalty() and card.loyalty != "") then 90 else if (card.pt != "" and not starting_loyalty()) then 65 else 140 } + height: {if use_vorthos() then 10 else 0} + z index: 3 + alignment: middle right + font: + name: Relay-Medium + size: 7 + color: white + weight: bold + flash indicator: + left: 0 + top: 0 + width: 375 + height: 523 + z index: 5 + render style: image + image: flashdot.png + visible: { use_flash_dot() } \ No newline at end of file diff --git a/data/magic-mana-large.mse-symbol-font/mana__.png b/data/magic-mana-large.mse-symbol-font/mana__.png new file mode 100644 index 000000000..95d0d99d0 Binary files /dev/null and b/data/magic-mana-large.mse-symbol-font/mana__.png differ diff --git a/data/magic-mana-large.mse-symbol-font/mana_phybg.png b/data/magic-mana-large.mse-symbol-font/mana_phybg.png new file mode 100644 index 000000000..9a454946a Binary files /dev/null and b/data/magic-mana-large.mse-symbol-font/mana_phybg.png differ diff --git a/data/magic-mana-large.mse-symbol-font/mana_phybr.png b/data/magic-mana-large.mse-symbol-font/mana_phybr.png new file mode 100644 index 000000000..7b1d42a49 Binary files /dev/null and b/data/magic-mana-large.mse-symbol-font/mana_phybr.png differ diff --git a/data/magic-mana-large.mse-symbol-font/mana_phygu.png b/data/magic-mana-large.mse-symbol-font/mana_phygu.png new file mode 100644 index 000000000..7c71707e6 Binary files /dev/null and b/data/magic-mana-large.mse-symbol-font/mana_phygu.png differ diff --git a/data/magic-mana-large.mse-symbol-font/mana_phygw.png b/data/magic-mana-large.mse-symbol-font/mana_phygw.png new file mode 100644 index 000000000..674f80bc3 Binary files /dev/null and b/data/magic-mana-large.mse-symbol-font/mana_phygw.png differ diff --git a/data/magic-mana-large.mse-symbol-font/mana_phyrg.png b/data/magic-mana-large.mse-symbol-font/mana_phyrg.png new file mode 100644 index 000000000..b1d775a8b Binary files /dev/null and b/data/magic-mana-large.mse-symbol-font/mana_phyrg.png differ diff --git a/data/magic-mana-large.mse-symbol-font/mana_phyrw.png b/data/magic-mana-large.mse-symbol-font/mana_phyrw.png new file mode 100644 index 000000000..ccfc26646 Binary files /dev/null and b/data/magic-mana-large.mse-symbol-font/mana_phyrw.png differ diff --git a/data/magic-mana-large.mse-symbol-font/mana_phyub.png b/data/magic-mana-large.mse-symbol-font/mana_phyub.png new file mode 100644 index 000000000..c9a2838fe Binary files /dev/null and b/data/magic-mana-large.mse-symbol-font/mana_phyub.png differ diff --git a/data/magic-mana-large.mse-symbol-font/mana_phyur.png b/data/magic-mana-large.mse-symbol-font/mana_phyur.png new file mode 100644 index 000000000..374831897 Binary files /dev/null and b/data/magic-mana-large.mse-symbol-font/mana_phyur.png differ diff --git a/data/magic-mana-large.mse-symbol-font/mana_phywb.png b/data/magic-mana-large.mse-symbol-font/mana_phywb.png new file mode 100644 index 000000000..7211fdcb0 Binary files /dev/null and b/data/magic-mana-large.mse-symbol-font/mana_phywb.png differ diff --git a/data/magic-mana-large.mse-symbol-font/mana_phywu.png b/data/magic-mana-large.mse-symbol-font/mana_phywu.png new file mode 100644 index 000000000..d73e50dc5 Binary files /dev/null and b/data/magic-mana-large.mse-symbol-font/mana_phywu.png differ diff --git a/data/magic-mana-large.mse-symbol-font/symbol-font b/data/magic-mana-large.mse-symbol-font/symbol-font index b794e1229..ef8fb7530 100644 --- a/data/magic-mana-large.mse-symbol-font/symbol-font +++ b/data/magic-mana-large.mse-symbol-font/symbol-font @@ -101,6 +101,48 @@ symbol: code: chaos image: mana_chaos.png image font size: 151.69 +###################################################################################### Phy Hybrid +symbol: + code: H/W/U + image: mana_phywu.png + image font size: 75 +symbol: + code: H/W/B + image: mana_phywb.png + image font size: 75 +symbol: + code: H/U/B + image: mana_phyub.png + image font size: 75 +symbol: + code: H/U/R + image: mana_phyur.png + image font size: 75 +symbol: + code: H/B/R + image: mana_phybr.png + image font size: 75 +symbol: + code: H/B/G + image: mana_phybg.png + image font size: 75 +symbol: + code: H/R/G + image: mana_phyrg.png + image font size: 75 +symbol: + code: H/R/W + image: mana_phyrw.png + image font size: 75 +symbol: + code: H/G/W + image: mana_phygw.png + image font size: 75 +symbol: + code: H/G/U + image: mana_phygu.png + image font size: 75 + ###################################################################################### Prismatic Symbols symbol: code: W/U/B/R/G @@ -370,27 +412,6 @@ symbol: code: H image: mana_phyc.png image font size: 120 -symbol: - code: W - image: mana_w.png -symbol: - code: U - image: mana_u.png -symbol: - code: B - image: mana_b.png -symbol: - code: R - image: mana_r.png -symbol: - code: G - image: mana_g.png -symbol: - code: C - image: mana_c.png -symbol: - code: S - image: mana_s.png symbol: code: 2/W image: 2W.png @@ -537,70 +558,92 @@ symbol: code: 100 image: 100.png symbol: - code: 99 + code: 99(?!/) + regex: yes image: 99.png symbol: - code: 30 + code: 30(?!/) + regex: yes image: 30.png symbol: - code: 29 + code: 29(?!/) + regex: yes image: 29.png symbol: - code: 28 + code: 28(?!/) + regex: yes image: 28.png symbol: - code: 27 + code: 27(?!/) + regex: yes image: 27.png symbol: - code: 26 + code: 26(?!/) + regex: yes image: 26.png symbol: - code: 25 + code: 25(?!/) + regex: yes image: 25.png symbol: - code: 24 + code: 24(?!/) + regex: yes image: 24.png symbol: - code: 23 + code: 23(?!/) + regex: yes image: 23.png symbol: - code: 22 + code: 22(?!/) + regex: yes image: 22.png symbol: - code: 21 + code: 21(?!/) + regex: yes image: 21.png symbol: - code: 20 + code: 20(?!/) + regex: yes image: 20.png symbol: - code: 19 + code: 19(?!/) + regex: yes image: 19.png symbol: - code: 18 + code: 18(?!/) + regex: yes image: 18.png symbol: - code: 15 + code: 15(?!/) + regex: yes image: 15.png symbol: - code: 16 + code: 16(?!/) + regex: yes image: 16.png symbol: - code: 15 + code: 15(?!/) + regex: yes image: 15.png symbol: - code: 14 + code: 14(?!/) + regex: yes image: 14.png symbol: - code: 13 + code: 13(?!/) + regex: yes image: 13.png symbol: - code: 12 + code: 12(?!/) + regex: yes image: 12.png symbol: - code: 11 + code: 11(?!/) + regex: yes image: 11.png symbol: - code: 10 + code: 10(?!/) + regex: yes image: 10.png symbol: code: 9 @@ -642,13 +685,35 @@ symbol: code: 0 image: 0.png enabled: {ancestral_mana()} +symbol: + code: W + image: mana_w.png +symbol: + code: U + image: mana_u.png +symbol: + code: B + image: mana_b.png +symbol: + code: R + image: mana_r.png +symbol: + code: G + image: mana_g.png +symbol: + code: C + image: mana_c.png +symbol: + code: S + image: mana_s.png + symbol: image: mana_circle.png text margin left: .23 text margin right: .21 text margin top: -.15 text margin bottom: -.06 - code: [0-9]+(?!/[WUBRGCSTQ2])|. + code: [0-9](?!/[WUBRGCSTQ2])|. regex: yes draw text: 0 text font: diff --git a/data/magic-mana-small.mse-symbol-font/15.png b/data/magic-mana-small.mse-symbol-font/15.png index ed372e7ec..0672dea13 100644 Binary files a/data/magic-mana-small.mse-symbol-font/15.png and b/data/magic-mana-small.mse-symbol-font/15.png differ diff --git a/data/magic-mana-small.mse-symbol-font/16.png b/data/magic-mana-small.mse-symbol-font/16.png index 21796c69a..b7236c87f 100644 Binary files a/data/magic-mana-small.mse-symbol-font/16.png and b/data/magic-mana-small.mse-symbol-font/16.png differ diff --git a/data/magic-mana-small.mse-symbol-font/empty_loyaltydown_w.png b/data/magic-mana-small.mse-symbol-font/empty_loyaltydown_w.png new file mode 100644 index 000000000..229272927 Binary files /dev/null and b/data/magic-mana-small.mse-symbol-font/empty_loyaltydown_w.png differ diff --git a/data/magic-mana-small.mse-symbol-font/empty_loyaltynaught_w.png b/data/magic-mana-small.mse-symbol-font/empty_loyaltynaught_w.png new file mode 100644 index 000000000..23888adb8 Binary files /dev/null and b/data/magic-mana-small.mse-symbol-font/empty_loyaltynaught_w.png differ diff --git a/data/magic-mana-small.mse-symbol-font/empty_loyaltyup_w.png b/data/magic-mana-small.mse-symbol-font/empty_loyaltyup_w.png new file mode 100644 index 000000000..ab60f608c Binary files /dev/null and b/data/magic-mana-small.mse-symbol-font/empty_loyaltyup_w.png differ diff --git a/data/magic-mana-small.mse-symbol-font/mana_phybg.png b/data/magic-mana-small.mse-symbol-font/mana_phybg.png new file mode 100644 index 000000000..b1f453914 Binary files /dev/null and b/data/magic-mana-small.mse-symbol-font/mana_phybg.png differ diff --git a/data/magic-mana-small.mse-symbol-font/mana_phybr.png b/data/magic-mana-small.mse-symbol-font/mana_phybr.png new file mode 100644 index 000000000..d11e878b7 Binary files /dev/null and b/data/magic-mana-small.mse-symbol-font/mana_phybr.png differ diff --git a/data/magic-mana-small.mse-symbol-font/mana_phygu.png b/data/magic-mana-small.mse-symbol-font/mana_phygu.png new file mode 100644 index 000000000..429ae6c64 Binary files /dev/null and b/data/magic-mana-small.mse-symbol-font/mana_phygu.png differ diff --git a/data/magic-mana-small.mse-symbol-font/mana_phygw.png b/data/magic-mana-small.mse-symbol-font/mana_phygw.png new file mode 100644 index 000000000..7b9eac973 Binary files /dev/null and b/data/magic-mana-small.mse-symbol-font/mana_phygw.png differ diff --git a/data/magic-mana-small.mse-symbol-font/mana_phyrg.png b/data/magic-mana-small.mse-symbol-font/mana_phyrg.png new file mode 100644 index 000000000..c112e8557 Binary files /dev/null and b/data/magic-mana-small.mse-symbol-font/mana_phyrg.png differ diff --git a/data/magic-mana-small.mse-symbol-font/mana_phyrw.png b/data/magic-mana-small.mse-symbol-font/mana_phyrw.png new file mode 100644 index 000000000..f8f8e0a8a Binary files /dev/null and b/data/magic-mana-small.mse-symbol-font/mana_phyrw.png differ diff --git a/data/magic-mana-small.mse-symbol-font/mana_phyub.png b/data/magic-mana-small.mse-symbol-font/mana_phyub.png new file mode 100644 index 000000000..5f6b56ab5 Binary files /dev/null and b/data/magic-mana-small.mse-symbol-font/mana_phyub.png differ diff --git a/data/magic-mana-small.mse-symbol-font/mana_phyur.png b/data/magic-mana-small.mse-symbol-font/mana_phyur.png new file mode 100644 index 000000000..b11e72989 Binary files /dev/null and b/data/magic-mana-small.mse-symbol-font/mana_phyur.png differ diff --git a/data/magic-mana-small.mse-symbol-font/mana_phywb.png b/data/magic-mana-small.mse-symbol-font/mana_phywb.png new file mode 100644 index 000000000..c226b9204 Binary files /dev/null and b/data/magic-mana-small.mse-symbol-font/mana_phywb.png differ diff --git a/data/magic-mana-small.mse-symbol-font/mana_phywu.png b/data/magic-mana-small.mse-symbol-font/mana_phywu.png new file mode 100644 index 000000000..81a95b5cb Binary files /dev/null and b/data/magic-mana-small.mse-symbol-font/mana_phywu.png differ diff --git a/data/magic-mana-small.mse-symbol-font/symbol-font b/data/magic-mana-small.mse-symbol-font/symbol-font index fb812e4e3..3ae22d725 100644 --- a/data/magic-mana-small.mse-symbol-font/symbol-font +++ b/data/magic-mana-small.mse-symbol-font/symbol-font @@ -78,8 +78,98 @@ symbol: image: {"/magic-mainframe-extras.mse-include/" + v_mana_loc() + "small/" + v_mana_name() + ".png"} image font size: 120 enabled: {use_small_v_mana()} +###################################################################################### Phy Hybrid +###################################################################################### Phy Hybrid +symbol: + code: H/W/U + image: mana_phywu.png + image font size: 75 +symbol: + code: H/W/B + image: mana_phywb.png + image font size: 75 +symbol: + code: H/U/B + image: mana_phyub.png + image font size: 75 +symbol: + code: H/U/R + image: mana_phyur.png + image font size: 75 +symbol: + code: H/B/R + image: mana_phybr.png + image font size: 75 +symbol: + code: H/B/G + image: mana_phybg.png + image font size: 75 +symbol: + code: H/R/G + image: mana_phyrg.png + image font size: 75 +symbol: + code: H/R/W + image: mana_phyrw.png + image font size: 75 +symbol: + code: H/G/W + image: mana_phygw.png + image font size: 75 +symbol: + code: H/G/U + image: mana_phygu.png + image font size: 75 ###################################################################################### Loyalty Symbols +symbol: + image: empty_loyaltyup_w.png + code: ([+][XYZ1-9]) + regex: yes + draw text: 1 + text margin left: -.10 + text margin right: 0 + text margin top: .21 + text margin bottom: .05 + text font: + name: Beleren Bold + size: .70 + color: white + max stretch: 0.5 + image font size: 100 + enabled: {white_text()} +symbol: + image: empty_loyaltydown_w.png + code: ([-][XYZ1-9]) + regex: yes + draw text: 1 + text margin left: -.10 + text margin right: 0 + text margin top: 0.1 + text margin bottom: .15 + text font: + name: Beleren Bold + size: .70 + color: white + max stretch: 0.5 + image font size: 100 + enabled: {white_text()} +symbol: + image: empty_loyaltynaught_w.png + code: [+=]([0-9XYZ]) + regex: yes + draw text: 1 + text margin left: -.10 + text margin right: 0 + text margin top: .15 + text margin bottom: .1 + text font: + name: Beleren Bold + size: .70 + color: white + max stretch: 0.5 + image font size: 100 + enabled: {white_text()} symbol: image: empty_loyaltyup.png code: ([+][XYZ1-9]) @@ -112,7 +202,7 @@ symbol: image font size: 100 symbol: image: empty_loyaltynaught.png - code: ([+]0|=[0-9XYZ]) + code: [+=]([0-9XYZ]) regex: yes draw text: 1 text margin left: -.10 @@ -482,25 +572,6 @@ symbol: code: L/G image: mana_loyal_g.png image font size: 120 -###################################################################################### Regular Mana Symbols -symbol: - code: W - image: mana_w.png -symbol: - code: U - image: mana_u.png -symbol: - code: B - image: mana_b.png -symbol: - code: R - image: mana_r.png -symbol: - code: G - image: mana_g.png -symbol: - code: C - image: mana_c.png ###################################################################################### #/C Hybrid Symbols symbol: code: 2/W @@ -679,70 +750,92 @@ symbol: code: 100 image: 100.png symbol: - code: 99 + code: 99(?!/) + regex: yes image: 99.png symbol: - code: 30 + code: 30(?!/) + regex: yes image: 30.png symbol: - code: 29 + code: 29(?!/) + regex: yes image: 29.png symbol: - code: 28 + code: 28(?!/) + regex: yes image: 28.png symbol: - code: 27 + code: 27(?!/) + regex: yes image: 27.png symbol: - code: 26 + code: 26(?!/) + regex: yes image: 26.png symbol: - code: 25 + code: 25(?!/) + regex: yes image: 25.png symbol: - code: 24 + code: 24(?!/) + regex: yes image: 24.png symbol: - code: 23 + code: 23(?!/) + regex: yes image: 23.png symbol: - code: 22 + code: 22(?!/) + regex: yes image: 22.png symbol: - code: 21 + code: 21(?!/) + regex: yes image: 21.png symbol: - code: 20 + code: 20(?!/) + regex: yes image: 20.png symbol: - code: 19 + code: 19(?!/) + regex: yes image: 19.png symbol: - code: 18 + code: 18(?!/) + regex: yes image: 18.png symbol: - code: 15 - image: 15.png + code: 17(?!/) + regex: yes + image: 17.png symbol: - code: 16 + code: 16(?!/) + regex: yes image: 16.png symbol: - code: 15 + code: 15(?!/) + regex: yes image: 15.png symbol: - code: 14 + code: 14(?!/) + regex: yes image: 14.png symbol: - code: 13 + code: 13(?!/) + regex: yes image: 13.png symbol: - code: 12 + code: 12(?!/) + regex: yes image: 12.png symbol: - code: 11 + code: 11(?!/) + regex: yes image: 11.png symbol: - code: 10 + code: 10(?!/) + regex: yes image: 10.png symbol: code: 9 @@ -784,6 +877,25 @@ symbol: code: 0 image: 0.png enabled: {ancestral_mana()} +###################################################################################### Regular Mana Symbols +symbol: + code: W + image: mana_w.png +symbol: + code: U + image: mana_u.png +symbol: + code: B + image: mana_b.png +symbol: + code: R + image: mana_r.png +symbol: + code: G + image: mana_g.png +symbol: + code: C + image: mana_c.png symbol: image: mana_circle.png code: [0-9]+(?!/[WUBRGSTQ2])|. diff --git a/data/magic.mse-game/keywords b/data/magic.mse-game/keywords index 056315fba..f4172517f 100644 --- a/data/magic.mse-game/keywords +++ b/data/magic.mse-game/keywords @@ -478,7 +478,7 @@ keyword: keyword: Dredge match: Dredge number mode: expert - reminder: If you would draw a card, instead you mill {english_number(param1)} card(s) instead. If you do, return this card from your graveyard to your hand. Otherwise, draw a card. + reminder: If you would draw a card, you mill {english_number(param1)} card(s) instead. If you do, return this card from your graveyard to your hand. Otherwise, draw a card. keyword: keyword: Radiance match: Radiance @@ -1489,6 +1489,12 @@ keyword: match: Pack tactics mode: pseudo rules: Pack tactics — Whenever CARDNAME attacks, if you attacked with creatures with total power 6 or greater this combat, [effect]. +# Commander 2021 +keyword: + keyword: Demonstrate + match: Demonstrate + mode: expert + reminder: When you cast this spell, you may copy it. If you do, choose an opponent to also copy it. # Midnight Hunt keyword: keyword: Daybound @@ -1514,4 +1520,36 @@ keyword: keyword: Coven match: Coven mode: pseudo - rules: Coven — if you control three or more creatures with different powers, [effect]. \ No newline at end of file + rules: Coven — if you control three or more creatures with different powers, [effect]. +# Crimson Vow +keyword: + keyword: Cleave + match: Cleave cost + mode: expert + reminder: You may cast this spell for its cleave cost. If you do, remove the words in square brackets. +keyword: + keyword: Training + match: Training + mode: expert + reminder: Whenever this creature attacks with another creature with greater power, put a +1/+1 counter on this creature. +keyword: + keyword: Blood token + match: Blood toke*s + mode: expert + reminder: {if param1.value == "ns" then "They’re artifacts" else "It’s an artifact"} with "1, T, Discard a card, Sacrifice this artifact: Draw a card." +# Kamigawa Neon Dynasty +keyword: + keyword: Reconfigure + match: Reconfigure cost + mode: expert + reminder: {param1}: Attach to target creature you control; or unattach from a creature. Reconfigure only as a sorcery. While attached, this isn't a creature. +keyword: + keyword: modified + match: modified + mode: action + reminder: Equipment, Auras you control, and counters are modifications. +keyword: + keyword: Compleated + match: Compleated + mode: expert + reminder: {phy_reminder(card.casting_cost)} If life was paid, this planeswalker enters with two fewer loyalty counters. \ No newline at end of file diff --git a/data/magic.mse-game/script b/data/magic.mse-game/script index 88e386286..da0544dc7 100644 --- a/data/magic.mse-game/script +++ b/data/magic.mse-game/script @@ -4,6 +4,8 @@ include file: language # needed by all style files anyway include file: /magic-blends.mse-include/new-blends +############################################################## version check +version_date := {"2022-01-30"} ############################################################## Sorting mana symbols # correctly sort a mana symbol (no guild mana) @@ -1811,4 +1813,18 @@ if_scripts := { ) field := expand_facecodes[field] or else field if face_scripts[func](face, field:field, query:query) or else false then t else f -} \ No newline at end of file +} + +white_text := {false} +phy_reminder := { + phy_match := filter_text(input, match:"(/[WUBRG])+", in_context:"H") + letters := split_text(phy_match, match:"/") + reminder_text := "" + if length(letters) == 2 then + reminder_text := "[H/" + letters[1] + "] can be paid with [" + letters[1] + "] or 2 life." + else if length(letters) > 2 then + reminder_text := "[H/" + letters[1] + "/" + letters[2] + "] can be paid with [" + letters[1] + "], " + "[" + letters[2] + "], or 2 life." + else + reminder_text := "" + reminder_text +}