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-05-10 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 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 by silverback_ape ##### PUMA by kebelqwa and cajun ############################################################## Extra scripts init script: # Load scripts for image box include file: /magic-default-image.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: "" nyx: "nyx/" miracle: "miracles/" promo: "promo/" crown: "legend/" cons:"conspiracy/" curtain: "curtains/" fnm: "fnm/", fnmpt: "paradox/", map: "maps/" energy: "energies/", mappt: "maps/" pt: "", slide: "masks/", slide2: "masks/", arrow: "arrows/", arrow2: "arrows/", arrow3: "arrows/", season: "season/" stamp: "" identity: "/magic-identity-new.mse-include/"] shifted_template_prefix := [card: "shifted/" nyx: "nyx/" miracle: "shifted/" promo: "promo/" crown: "shifted/" cons:"conspiracy/" curtain: "curtains/" fnm:"fnm/", fnmpt: "paradox/", map: "maps/" energy: "energies/", mappt: "maps/" pt: "shifted/", slide: "shifted/", slide2: "shifted/", arrow: "arrows/", arrow2: "arrows/", arrow3: "arrows/", season: "season/" stamp: "shifted/" identity: "/magic-identity-new.mse-include/"] template_prefix := { if is_shifted() then shifted_template_prefix else base_template_prefix } template_suffix := [card: "card.jpg" nyx: "nyx.png" miracle: "miracle.png" promo: "card.jpg" crown: "crown.png" cons:"cons.png" curtain: "card.png" fnm:"card.png", fnmpt: "pt.png", map: "card.png", energy: "card.png", mappt: "pt.png" pt: "pt.png", slide: "slide.png", slide2: "slide2.png", stamp: "stamp.jpg", arrow: "arrow.png", arrow2: "arrow2.png", arrow3: "arrow3.png", season: "flag.png" identity: "identity.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 == "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} nyx_background := { color_background(type:"nyx", base_hybrid:card_hybrid) } fnm_background := { color_background(type:"fnm", 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) } 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)} 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")} 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_clear := { chosen(styling.frames, choice: "clear") and not is_map()} is_puma := { not is_expanded_art() and not is_full_art() and chosen(styling.frames, choice: "puma") and not is_map()} 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()} is_nyx := { chosen(styling.frames, choice: "nyx") and not is_map() } is_vehicle := { chosen(styling.frames, choice: "vehicle") and not is_map()} is_cons := { chosen(styling.frames, choice: "conspiracy") or chosen(styling.frames, choice: "draft matters") and not is_map()} is_conspiracy := { 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_map := { chosen(styling.frames, choice: "map") } 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")} 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]") text_filter := text_filter + override_clear + {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")} is_skinned := {chosen(styling.other_options, choice:"godzilla style alias")} is_tarot := {chosen(styling.other_options, choice:"text watermarks")} 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_modal() then (359 + to_number(pull_comma_array(styling.level_offset, cell:0, end:false))) else if is_map() then 475 else 481) - chop_bot() } bar_offset := {if styling_offset() == "-" then 0 else if styling_offset() != "" then -styling_offset() else 0} styling_offset := { replace(styling.flavor_bar_offset, match:"(u|d)+", replace: "") } offset_lines := {offset_counter(styling.flavor_bar_offset)} #bar_equation := {if card_style.text.layout.blocks[0].bottom or else 0 > 0 then card_style.text.top + 0.5*(card_style.text.layout.blocks[0].bottom+card_style.text.layout.blocks[1].top) else 0} tweaked_bar_eq := {if modal_flavor() and modal_rules() then level_34_position()-1+bar_offset() else if modal_flavor() then bottom_of_modes()+2+bar_offset() else bar_equation()} is_modal := {not is_leveler() and not is_mutate() and chosen(styling.frames, choice:"modal")} breakers := {split_text(remove_tags(card.modal_rule_text), match:"\n")} mod_font_size := {if styling.font_cap != "" then to_number(styling.font_cap) else round_near(card_style.modal_rule_text.content_height / card_style.modal_rule_text.content_lines) - 5} font_size_offset := {0.5 * (14 - mod_font_size())} mod_char_per_line := {min(52,round_up(card_style.modal_rule_text.content_width / mod_char_width()))} mod_char_width := {7.35 * min(14, mod_font_size()+0.95) / 14} modal_height := { card_style.modal_rule_text.content_height / card_style.modal_rule_text.content_lines} modal_lines := {calc_lines(word_split(input), char:mod_char_per_line())} box_offset := {0.5*(card_style.modal_rule_text.height-card_style.modal_rule_text.content_height)} bullet1offset := {-1 + box_offset() - font_size_offset() + to_number(pull_comma_array(styling.arrow_or_bullet_offsets, cell:0, end: 0))} bullet2offset := {-2 + if length(breakers()) < 1 then 600 else modal_height()*modal_lines(breakers().0) + box_offset() - font_size_offset() + to_number(pull_comma_array(styling.arrow_or_bullet_offsets, cell:1, end: 0))} bullet3offset := {-3 + if length(breakers()) < 2 then 600 else modal_height()*(modal_lines(breakers().1) + modal_lines(breakers().0)) + box_offset() - font_size_offset() + to_number(pull_comma_array(styling.arrow_or_bullet_offsets, cell:2, end: 0))} bullet4offset := {-3 + if length(breakers()) < 3 then 600 else modal_height()*(modal_lines(breakers().2) + modal_lines(breakers().1) + modal_lines(breakers().0)) + box_offset() - font_size_offset() + to_number(pull_comma_array(styling.arrow_or_bullet_offsets, cell:3, end: 0))} bullet5offset := {-4 + if length(breakers()) < 4 then 600 else modal_height()*(modal_lines(breakers().3) + modal_lines(breakers().2) + modal_lines(breakers().1) + modal_lines(breakers().0)) + box_offset() - font_size_offset() + to_number(pull_comma_array(styling.arrow_or_bullet_offsets, cell:4, end: 0))} bottom_of_modes := {min(479,475+to_number(pull_comma_array(styling.level_offset, cell:1, end:false))-(if modal_flavor() then 15 else 0)-(if modal_rules() then 15 else 0))} ##TODO Plus level_34_position := {476-(if modal_rules() and modal_flavor() then 13 else 0)+to_number(pull_comma_array(styling.level_offset, cell:2, end:false))} modal_flavor := {is_modal() and remove_tags(card.modal_flavor_text) != ""} modal_rules := {is_modal() and card.level_2_text != ""} 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_2_height := {lv_3_coordinate() - lv_2_coordinate()} lv_3_height := {152-lv_3_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()} overlay1 := {slice_crop(background_slide(), height: lv_2_height(), width:314, distance:(152-lv_2_coordinate()))} overlay2 := {slice_crop(background_slide_2(), height: lv_3_height(), width:314, distance:lv_3_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 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 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 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 leveler_ptbox3() } 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) } 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 "") ) else if is_modal() then card.level_1_text + "\n" + "• " + replace(card.modal_rule_text, match:"\n", replace:"\n• ") + (if modal_rules() then "\n" + card.level_2_text else "") + (if modal_flavor() then "\n" + card.modal_flavor_text else "") else if is_mutate() then card.level_1_text + "\n" + card.text else "" } card_shape := {if is_leveler() then "leveler" else "normal"} ############################################################## 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: map choice: clear choice: borderless art choice: frameless art choice: fullart choice: puma choice: mutate choice: fnm promo choice: planeshifted choice: legend choice: season choice: conspiracy choice: draft matters choice: miracle choice: vehicle choice: nyx choice: leveler choice: modal styling field: type: text name: flavor bar offset description: Move the flavor bar up X pixels. Use negative to move down. 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: 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 nyx crowns choice: text watermarks initial: auto nyx crowns 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: text name: arrow or bullet offsets description: Formatted as 1,2,3,. Move the level arrow/modal bullets down X pixels. Use negative to move up. styling field: type: text name: level offset description: Formatted as 1,2,3,. Move the level/modal boxes down X pixels. Use negative to move up. 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: 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: 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() then "" else if is_fnm() then fnm_background() else if is_full_art() then promo_background() else card_background() } ############################# Name line name: left: { if center_map() then 55 else if is_map() then 60 else if card.card_symbol=="none" then 32 else 50 } top: { if is_map() then 27 else if is_clear() 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() 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: Matrix size: 10 style: italic color: black 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 is_mutate() then 22 else 29} top: {if is_map() then 57 else if is_clear() or is_expanded_art() 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 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 265 else if is_full_art() then 423 else if is_mutate() then 334 else 231} z index: 1 default: {default_image(card.card_color)} mask: { if is_clear() then "image_mask.png" else if is_thbland() then "cornermask.png" else if is_puma() then "puma_mask.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() 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} top: { if is_clear() or is_map() then 298 else if is_full_art() then 332 else 300 } width: 17 height: 17 z index: 2 render style: image visible: { has_identity() } image: { card_identity() } type: left: { if is_map() then 85 else if is_season() then (if has_identity() then "64" else "44") else if has_identity() then "52" else "32" } 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 has_identity() then "290" else "310") - 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() 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 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: 44 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 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 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 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 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 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 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_modal() or 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() 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: 4 padding left: 6 padding right: 4 line height hard: 1.2 line height line: 1.5 line height soft: 0.9 line height hard max: 1.3 line height line max: 1.6 ############################# leveler and modal 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 not is_modal() then (if is_mutate() then 342 else if is_map() then 40 else 29) else if is_map() then 327 else 343 } bottom: { if is_mutate() then 392 else if is_leveler() then (327+lv_1_height()) else bottom_of_textbox()+box_offset() } 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 (if is_modal() then "bottom center" else "middle center") else if is_modal() then "bottom left" else "middle left" z index: 3 padding left: 6 padding right: 4 line height hard: 1.2 line height line: 1.5 line height soft: 0.9 line height hard max: 1.3 line height line max: 1.6 ############################# modal modal rule text: left: { 12+ if is_map() then 40 else 29} top: { bottom_of_textbox()+box_offset() } width: { if not is_modal() then 0 else -12 + if is_map() then 287 else 314 } bottom: { bottom_of_modes() } 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: top left z index: 3 padding left: 6 padding right: 4 line height hard: 1.2 line height line: 1.5 line height soft: 0.9 line height hard max: 1.3 line height line max: 1.6 ############################# leveler and modal 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 if not is_modal() then 0 else (if not modal_rules() then -8 else 0) + if is_map() then 40 else 29} top: { if is_leveler() then (329 + lv_2_coordinate()) else bottom_of_modes() } right: { if is_leveler() then (if card.pt_2 != "" then 277 else 342) else if not is_modal() then 0 else (if not modal_rules() then -8 else 0) + if is_map() then 40 else 29 + (if not modal_flavor() and not modal_rules() then 0.5 else 1) * (if is_map() then 287 else 314) } bottom: { if is_leveler() then (329 + lv_2_coordinate()) + lv_2_height()-2 else (if modal_flavor() then level_34_position() else 481 - chop_bot()) } 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: 1.2 line height line: 1.5 line height soft: 0.9 line height hard max: 1.3 line height line max: 1.6 ############################# modal modal flavor text: left: { if not is_modal() then 0 else (if not modal_flavor() then 157) + if is_map() then 40 else 29} top: { if modal_rules() then level_34_position() else bottom_of_modes() } width: { if not is_modal() then 0 else (if not modal_rules() and not modal_flavor() then 0.5 else 1) * (if is_map() then 287 else 314) } bottom: { 480-chop_bot() } 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: 4 padding left: 6 padding right: 4 line height hard: 1.2 line height line: 1.5 line height soft: 0.9 line height hard max: 1.3 line height line max: 1.6 ############################# leveler 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() 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: 1.2 line height line: 1.5 line height soft: 0.9 line height hard max: 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} ############################# 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() 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() 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() 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 shrink-overflow font: name: Matrix size: 7 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: 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 choice: frame 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: 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 choice: scroll 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: flash indicator choice: dot save value: false editable: false extra card field: type: text name: bullet 1 save value: false editable: false script: "•" extra card field: type: text name: bullet 2 save value: false script: "•" editable: false extra card field: type: text name: bullet 3 save value: false script: "•" editable: false extra card field: type: text name: bullet 4 save value: false script: "•" editable: false extra card field: type: text name: bullet 5 save value: false script: "•" 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 first 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 second arrow. extra card field: type: text name: lvl label 2 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: 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: 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) 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 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")} 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 not is_clear() } render style: image image: { if is_map() then "maps/holo_stamp.png" else card_stamp() } mask: { if is_full_art() or (is_borderless() and is_leveler()) then "med_full_stamp_mask.png" else if is_borderless() then "med_stamp_mask.png" else if is_leveler() then "stamp_mask.png" else ""} foil stamp: left: 165 top: 472 width: 46 height: 26 z index: 3 visible: { is_rare() and styling.use_holofoil_stamps and 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 shrink-overflow font: name: Matrix size: 7 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: 0 width: 375 height: 523 render style: image image: {if is_clear() 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 (is_curtains() or is_expanded_art() or is_puma()) 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_full_art() then "full_" else "") + "consscrolls.png"} z index: 1 visible: {chosen(styling.frames, choice:"conspiracy")} miracle overlay: left: 0 top: 0 width: 375 height: 523 render style: image image: {if is_clear() then "miracles/xmiracle.png" else miracle_background()} z index: 1 visible: {is_miracle()} 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_rare() and styling.use_holofoil_stamps then "clear_rare.png" else "clear.png"} visible: { is_clear() } 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_skinned() then 75 else if is_map() then 15 else 27} top: {if is_map() then 62 else 57} width: {if is_skinned() then 225 else card_style.alias.content_width} height: 27 z index: 2 render style: image image: evobar.png visible: {is_skinned() or use_evobar()} evobar tip: left: {if is_skinned() then 299.6 else (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: {is_skinned() or use_evobar()} evobar start: left: 39.4 top: {if is_map() then 62 else 57} width: 36 height: 27 z index: 2 render style: image image: evobar_flip.png visible: {is_skinned()} flavor bar: left: 0 top: { tweaked_bar_eq() } width: 375 height: 1 z index: 1 render style: image image: bar.png visible: { ((is_modal() and modal_flavor()) or (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)} bullet 1: left: { if is_map() then 40 else 28} top: { bottom_of_textbox() + bullet1offset()} width: 20 height: 26 font: name: MPlantin italic name: MPlantin-Italic size: {mod_font_size()} scale down to: 6 color: { if is_full_art() then "white" else "black"} shadow color: {if is_full_art() then "black" else rgba(0,0,0,0)} shadow displacement x: -1 shadow displacement y: 1 alignment: "middle center" z index: 4 padding left: 6 padding right: 4 visible: {is_modal()} bullet 2: left: { if is_map() then 40 else 28} top: { bottom_of_textbox() + bullet2offset()} width: 20 height: 26 font: name: MPlantin italic name: MPlantin-Italic size: {mod_font_size()} scale down to: 6 color: { if is_full_art() then "white" else "black"} shadow color: {if is_full_art() then "black" else rgba(0,0,0,0)} shadow displacement x: -1 shadow displacement y: 1 alignment: "middle center" z index: 4 padding left: 6 padding right: 4 visible: {length(breakers()) > 1} bullet 3: left: { if is_map() then 40 else 28} top: { bottom_of_textbox() + bullet3offset()} width: 20 height: 26 font: name: MPlantin italic name: MPlantin-Italic size: {mod_font_size()} scale down to: 6 color: { if is_full_art() then "white" else "black"} shadow color: {if is_full_art() then "black" else rgba(0,0,0,0)} shadow displacement x: -1 shadow displacement y: 1 alignment: "middle center" z index: 4 padding left: 6 padding right: 4 visible: {length(breakers()) > 2} bullet 4: left: { if is_map() then 40 else 28} top: { bottom_of_textbox() + bullet4offset()} width: 20 height: 26 font: name: MPlantin italic name: MPlantin-Italic size: {mod_font_size()} scale down to: 6 color: { if is_full_art() then "white" else "black"} shadow color: {if is_full_art() then "black" else rgba(0,0,0,0)} shadow displacement x: -1 shadow displacement y: 1 alignment: "middle center" z index: 4 padding left: 6 padding right: 4 visible: {length(breakers()) > 3} bullet 5: left: { if is_map() then 40 else 28} top: { bottom_of_textbox() + bullet5offset()} width: 20 height: 26 font: name: MPlantin italic name: MPlantin-Italic size: {mod_font_size()} scale down to: 6 color: { if is_full_art() then "white" else "black"} shadow color: {if is_full_art() then "black" else rgba(0,0,0,0)} shadow displacement x: -1 shadow displacement y: 1 alignment: "middle center" z index: 4 padding left: 6 padding right: 4 visible: {length(breakers()) > 4} 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 != ""} level 2 overlay: left: 29 top: { 329 + lv_2_coordinate()} height: { lv_2_height()} width: 314 z index: 0 render style: image image: {overlay1()} visible: {is_leveler() and not is_full_art() and not is_map() and not is_fnm()} level 3 overlay: left: 29 top: { 329 + lv_3_coordinate()} height: { lv_3_height()} width: 314 z index: 0 render style: image image: {overlay2()} visible: {is_leveler() and not is_full_art() and not is_map() and not is_fnm()} 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()} 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