mse version: 2.1.2 game: magic short name: The Gatewatch full name: Secret Lair icon: card_sample.png position hint: 096 version: 2024-10-01 depends on: package: magic.mse-game version: 2014-06-25 depends on: package: magic-modules.mse-include version: 2024-10-01 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-mana-secret-lair-gatewatch.mse-symbol-font version: 2023-09-19 depends on: package: magic-mana-circleless-colorable.mse-symbol-font version: 2023-09-19 depends on: package: magic-mana-circleless-colorable-baloo.mse-symbol-font version: 2023-09-19 depends on: package: magic-mainframe-extras.mse-include version: 2007-09-23 card width: 1489 card height: 1039 card dpi: 297 ### blanks by GenevensiS ### code by GenevensiS ############################################################## Extra scripts init script: card_shape := { "double faced planeswalker" } faces_coordinates := { [ [ left: 0, top: 0, width: 744, height: 1039 ], [ left: 745, top: 0, width: 744, height: 1039 ], ] } swap_fonts_pt_default := [ name: {"Baloo Regular"}, size: { if styling.stats_type == "PT" then 58.0 else 66.0 }, color: { rgba(0,0,0,200) }, vertical: {0}, italic: {""} ] swap_fonts_pt2_default := [ name: {"Baloo Regular"}, size: { if styling.stats_type == "PT" then 35.0 else 38.0 }, color: { rgba(195,148,120,160) }, vertical: {0}, italic: {""} ] swap_fonts_body_default := [ name: {"Futura Medium BT"}, size: {26.0}, color: {rgb(17,47,49)}, vertical: {0}, italic: {"Futura Medium Italic BT"} ] swap_fonts_body2_src := { styling.custom_position_font or else "" } swap_fonts_body2_default := [ name: {"Baloo Regular"}, size: { if contains(card.level_12_text, match: "\n") then 17 else 22 }, color: {rgba(0,0,0,210)}, vertical: {0}, italic: {""} ] typeline_face_1 := { 2 } indicator_offset_top_1 := { 268 } indicator_offset_size_1 := { 6 } swap_fonts_type_default := [ name: {"the#V$NT"}, size: {42.5}, color: { rgba(195,148,120,160) }, vertical: {0}, italic: {""} ] swap_fonts_name_default := [ name: {"DharmaGothicModified-Heavy"}, size: {50.0}, color: {"white"}, vertical: {0}, italic: {""} ] swap_fonts_name2_default := [ name: {"DharmaGothicModified-Heavy"}, size: {48.0}, color: { rgba(195,148,120,160) }, vertical: {0}, italic: {""} ] card_full_name_default := { card.name } card_full_name := { card.name } information_secondary_shift_with_pt_1 := { false } information_secondary_shift_with_pt_2 := { false } card_stamp_offset_top_1 := { 2 } template_prefix := [ card: "card/", stamprim: "stamprim/", identity: "/magic-modules.mse-include/indicators/", loyalty: "loyalty/", logo: "logo/" ] template_suffix := [ card: "card.png", stamprim: "stamprim.png", identity: "identity.png", loyalty: "loyalty.png", logo: "logo.png" ] template := { if type == "loyalty" then crop_safe("loyalty/" + input + "loyalty.png", offset_x: 0, offset_y: 300-move_baseball(), width: 744, height: 1039, max_x: 744, max_y: 1839) else template_prefix[type] + input + template_suffix[type] } #Don't do land_template := template or MSE will crash (probably because of new_blends line 839) land_template := { if type == "loyalty" then crop_safe("loyalty/" + input + "loyalty.png", offset_x: 0, offset_y: 300-move_baseball(), width: 744, height: 1039, max_x: 744, max_y: 1839) else template_prefix[type] + input + template_suffix[type] } card_background := { color_background(input: card.card_color, type: "card", base_hybrid: card_hybrid, hybrid_blend: "white", artifact_blend: "white", multicolor_blend: "black") } card_loyaltybox := { color_background(input: card.card_color, type: "loyalty", base_hybrid: card_hybrid, hybrid_blend: "white", artifact_blend: "white", multicolor_blend: "black") } card_stamprim := { color_background(input: card.card_color, type: "stamprim", base_hybrid: card_hybrid, hybrid_blend: "white", artifact_blend: "white", multicolor_blend: "black") } card_logo := { color_background(input: card.card_color, type: "logo", base_hybrid: card_hybrid, hybrid_blend: "white", artifact_blend: "white", multicolor_blend: "black") } is_promo := { styling.promo } is_unsorted := { styling.remove_from_autocount } is_crowned := { styling.gatewatch_logo == "yes" or (styling.gatewatch_logo == "if legendary" and lang_setting("is_legendary")(card.super_type)) } mainframe_walker := { true } mainframe_walker_text_script := { count := abilities_count() if count == 6 then combined_editor(field1: card.level_1_text, separator1: "\n", field2: card.level_2_text, separator2: "\n", field3: card.level_3_text, separator3: "\n", field4: card.level_4_text, separator4: "\n", field5: card.level_5_text, separator5: "\n", field6: card.level_6_text) else if count == 5 then combined_editor(field1: card.level_1_text, separator1: "\n", field2: card.level_2_text, separator2: "\n", field3: card.level_3_text, separator3: "\n", field4: card.level_4_text, separator4: "\n", field5: card.level_5_text) else if count == 4 then combined_editor(field1: card.level_1_text, separator1: "\n", field2: card.level_2_text, separator2: "\n", field3: card.level_3_text, separator3: "\n", field4: card.level_4_text) else if count == 3 then combined_editor(field1: card.level_1_text, separator1: "\n", field2: card.level_2_text, separator2: "\n", field3: card.level_3_text) else if count == 2 then combined_editor(field1: card.level_1_text, separator1: "\n", field2: card.level_2_text) else forward_editor(field: card.level_1_text) } margin_left := { if input == "lv1" then (if card.loyalty_cost_1 == "" then 0 else 600) else if input == "lv2" then (if card.loyalty_cost_2 == "" then 0 else 600) else if input == "lv3" then (if card.loyalty_cost_3 == "" then 0 else 600) else if input == "lv4" then (if card.loyalty_cost_4 == "" then 0 else 600) else if input == "lv5" then (if card.loyalty_cost_5 == "" then 0 else 600) else if input == "lv6" then (if card.loyalty_cost_6 == "" then 0 else 600) else 0 } text_filter := text_filter + {apply_margins(input, name:margin_code)} + {add_spacers(input, name:margin_code)} add_spacers := { #The 'then ""' has a zero-width space inside if input == "" and level_is_active(name) then "​" else input } level_is_active := { if input == "lv6" then abilities_count() >= 6 else if input == "lv5" then abilities_count() >= 5 else if input == "lv4" then abilities_count() >= 4 else if input == "lv3" then abilities_count() >= 3 else if input == "lv2" then abilities_count() >= 2 else true } ability_top := { if card_style.text.layout.blocks[input].bottom or else 0 > 0 then to_int(card_style.text.top) + to_int(card_style.text.layout.blocks[input].top) else stylesheet.card_height * 1.2 } ability_center := { if card_style.text.layout.blocks[input].bottom or else 0 > 0 then to_int(card_style.text.top) + to_int(card_style.text.layout.blocks[input].middle) else stylesheet.card_height * 1.2 } ability_bottom := { if card_style.text.layout.blocks[input].bottom or else 0 > 0 then to_int(card_style.text.top) + to_int(card_style.text.layout.blocks[input].bottom) else stylesheet.card_height * 1.2 } abilities_count := { to_int(styling.number_of_textboxes) or else digital_map[styling.number_of_textboxes] or else 6 } loyal_move := { split := split_comma(styling.move_loyalty_costs); if length(split) > input-1 and split[input-1] != "" and split[input-1] != "-" then clamp(split[input-1], maximum:700, minimum:-700) else 0 } separator_move := { split := split_comma(styling.move_separators); if length(split) > input-1 and split[input-1] != "" and split[input-1] != "-" then clamp(split[input-1], maximum:500, minimum:-500) else 0 } stripe_top := { -to_int(( -ability_bottom(input-1) - ability_top(input) )/2) - 6 - ( -separator_move(input)) } rarity_right := { split := split_comma(styling.rarity_offsets); (if length(split) > 0 and split.0 != "" then clamp(split.0, minimum: -500, maximum: 500) else 0) + 1428 } rarity_top := { split := split_comma(styling.rarity_offsets); (if length(split) > 1 and split.1 != "" then clamp(split.1, minimum: -500, maximum: 500) else 0) + 860 } rarity_size := { split := split_comma(styling.rarity_offsets); (if length(split) > 2 and split.2 != "" then clamp(split.2, minimum: -52, maximum: 100) else 0) + 52 } rarity_left := { rarity_right() - rarity_size() } popout_left := { split := split_comma(styling.popout_image_coordinates); if length(split) > 3 and split.0 != "" then clamp(split.0, minimum: -500, maximum: 1500) else 0 } popout_top := { split := split_comma(styling.popout_image_coordinates); if length(split) > 3 and split.1 != "" then clamp(split.1, minimum: -500, maximum: 1100) else 0 } popout_width := { split := split_comma(styling.popout_image_coordinates); if length(split) > 3 and split.2 != "" then clamp(split.2, minimum: 0, maximum: 2000) else 0 } popout_height := { split := split_comma(styling.popout_image_coordinates); if length(split) > 3 and split.3 != "" then clamp(split.3, minimum: 0, maximum: 1500) else 0 } move_baseball := { clamp((to_int(styling.move_baseball) or else 0), minimum: -500, maximum: 300) } back_text_font_size := { if styling.back_text_font_size_cap == "" then 26 else clamp(styling.back_text_font_size_cap or else 26, minimum: 2, maximum: 50) } symbol_font_color := { rgba(17,47,49,255) } symbol_font_alpha := { 1.0 } symbol_font_baloo_color := { rgba(195,148,120,160) } symbol_font_baloo_alpha := { 0.63 } ############################################################## Extra style options styling field: type: text name: popout image coordinates description: The coordinates for the popout image field, formatted as "left,top,width,height". Used to make the illustration jump in front of the frame. styling field: type: boolean name: stretch image to whole card description: Make the image span the whole card instead of just the visible part. Use this to help make popout effects. initial: no styling field: type: choice name: stats type description: Should there be loyalty or power/toughness? choice: Loyalty choice: PT choice: None initial: Loyalty styling field: type: boolean name: back image filter description: Desaturate the back image and tint it blue-ish? initial: no styling field: type: choice name: number of textboxes description: Number of textboxes for abilities and passives. Modify content of textboxes if this has trouble updating after being changed. choice: 1 choice: 2 choice: 3 choice: 4 choice: 5 choice: 6 initial: 3 styling field: type: choice name: center text description: When to center text (short text means only on one-line cards with no flavor text) choice: always choice: short text only choice: never initial: never styling field: type: text name: move separators description: Moves the limits between abilities down by this many pixels. Use negatives to move up. Formatted as "1,2,3,4,5" styling field: type: text name: move loyalty costs description: Moves loyalty costs down by this many pixels. Use negatives to move up. Formatted as "1,2,3,4,5,6" styling field: type: text name: move baseball description: Move the baseball down this many pixels. Use negatives to move up. styling field: type: choice name: gatewatch logo description: Use the gatewatch logo? choice: yes choice: if legendary choice: no initial: yes styling field: type: boolean name: trophy description: Use the trophy for the position? initial: no styling field: type: boolean name: rarity description: Should the rarity symbol be visible in the typeline? initial: no include file: /magic-modules.mse-include/rarities/styling_fields include file: /magic-modules.mse-include/watermarks/styling_fields 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 field: type: boolean name: colored border description: Tint the border with the card's color? initial: yes include file: /magic-modules.mse-include/information/styling_fields styling field: type: boolean name: use ancestral mana symbols description: Enables ancestral's modified generic mana. initial: no styling field: type: boolean name: use guild mana symbols description: Use the Ravnica guild symbols instead of the official half/half circles for hybrid mana. initial: yes styling field: type: choice name: tap symbol description: What tap and untap symbols should be used on cards? choice: modern choice: old choice: diagonal T initial: modern styling field: type: package choice name: casting cost front mana symbols description: Symbols used in the casting cost. match: magic-mana-*.mse-symbol-font initial: magic-mana-secret-lair-gatewatch.mse-symbol-font styling field: type: package choice name: casting cost back mana symbols description: Symbols used in the casting cost. match: magic-mana-*.mse-symbol-font initial: magic-mana-circleless-colorable-baloo.mse-symbol-font styling field: type: package choice name: text box mana symbols description: Symbols used in the rule text and flavor text. match: magic-mana-*.mse-symbol-font initial: magic-mana-circleless-colorable.mse-symbol-font styling field: type: boolean name: apply custom fonts description: Enable to attempt to use custom fonts given below initial: no styling field: type: text name: custom name font description: Font used for the name on the front of the card. Formatted as "font name;font size;font color;vertical offset;italic font name" last 4 are optional. color can be a name or R,G,B,A numbers. styling field: type: text name: custom name 2 font description: Font used for the name on the back of the card. Formatted as "font name;font size;font color;vertical offset;italic font name" last 4 are optional. color can be a name or R,G,B,A numbers. styling field: type: text name: custom type font description: Font used for the type on the back of the card. Formatted as "font name;font size;font color;vertical offset;italic font name" last 4 are optional. color can be a name or R,G,B,A numbers. styling field: type: text name: custom body font description: Font used for the rule text. Formatted as "font name;font size;font color;vertical offset;italic font name" last 4 are optional. color can be a name or R,G,B,A numbers. styling field: type: text name: custom pt font description: Font used for the pt or loyalty in the baseball. Formatted as "font name;font size;font color;vertical offset;italic font name" last 4 are optional. color can be a name or R,G,B,A numbers. styling field: type: text name: custom pt 2 font description: Font used for the pt or loyalty on the back of the card. Formatted as "font name;font size;font color;vertical offset;italic font name" last 4 are optional. color can be a name or R,G,B,A numbers. styling field: type: text name: custom position font description: Font used for the position on the front of the card. Formatted as "font name;font size;font color;vertical offset;italic font name" last 4 are optional. color can be a name or R,G,B,A numbers. styling style: use ancestral mana symbols: choice images: yes: /magic-modules.mse-include/symbol-fonts/generic_ancestral.png no: /magic-modules.mse-include/symbol-fonts/generic_normal.png use guild mana symbols: choice images: yes: /magic-modules.mse-include/symbol-fonts/hybrid_guild.png no: /magic-modules.mse-include/symbol-fonts/hybrid_normal.png tap symbol: render style: both choice images: modern: /magic-modules.mse-include/symbol-fonts/tap_new.png old: /magic-modules.mse-include/symbol-fonts/tap_old.png diagonal T: /magic-modules.mse-include/symbol-fonts/tap_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 ############################################################## Card fields include file: /magic-modules.mse-include/information/card_fields_dfc include file: /magic-modules.mse-include/stamps/card_fields include file: /magic-modules.mse-include/corners/card_fields_dfc include file: /magic-modules.mse-include/watermarks/card_fields card style: ############################# Background stuff border color: left: { face_coordinates_map(1).left } top: { face_coordinates_map(1).top } width: { face_coordinates_map(1).width } height: { face_coordinates_map(1).height } z index: 210 visible: { not styling.colored_border } mask: border_mask.png card color: left: { face_coordinates_map(1).left } top: { face_coordinates_map(1).top } width: { face_coordinates_map(1).width } height: { face_coordinates_map(1).height } z index: 200 popup style: in place render style: image image: { card_background() } mask: card_mask.png ############################# Name line name: left: 24 top: { 863 + name_font_vertical() } right: 720 height: 95 z index: 1000 alignment: center middle shrink-overflow font: name: { name_font() } italic name: { name_font_italic() } size: { name_font_size() } scale down to: 6 color: { name_font_color() } name 2: left: { 809 + to_int(card_style.casting_cost_2.content_width) } top: { 429 + name2_font_vertical() } right: { if styling.stats_type == "None" then 1420 else 1332 } height: 101 z index: 1000 alignment: { if styling.stats_type == "None" then "right middle shrink-overflow" else "center middle shrink-overflow" } font: name: { name2_font() } italic name: { name2_font_italic() } size: { name2_font_size() } scale down to: 6 color: { name2_font_color() } casting cost: left: 643 top: 121 width: 110 height: 600 z index: 1010 alignment: top left direction: vertical #mask: casting_cost_mask.png always symbol: true font: name: MPlantin size: 60 scale down to: 60 color: black symbol font: name: { styling.casting_cost_front_mana_symbols } size: 60 scale down to: 60 casting cost 2: left: 800 top: 446 width: { max(60, card_style.casting_cost_2.content_width) + 10 } height: 61 z index: 1010 alignment: left middle always symbol: true font: name: MPlantin size: 40 scale down to: 30 color: black symbol font: name: { styling.casting_cost_back_mana_symbols } size: 40 scale down to: 30 ############################# Image image: left: { if styling.stretch_image_to_whole_card then 0 else 58 } top: { if styling.stretch_image_to_whole_card then 0 else 86 } width: { if styling.stretch_image_to_whole_card then stylesheet.card_width else 628 } height: { if styling.stretch_image_to_whole_card then stylesheet.card_height else 751 } z index: 0 image 2: left: 1134 top: 48 width: 299 height: 377 z index: 0 mask: back_image_mask.png mainframe image: left: { popout_left() } top: { popout_top() } width: { popout_width() } height: { popout_height() } z index: 2000 ############################# Card type indicator: left: { indicator_left_1() + typeline_offset_left_1() } top: { indicator_top_1() + typeline_offset_top_1() } width: { indicator_size_1() + typeline_offset_height_1() } height: { indicator_size_1() + typeline_offset_height_1() } z index: 1000 render style: image visible: { (not typeline_disabled_1()) and (not indicator_disabled_1()) and has_identity() } image: { module_identity(card.indicator) } type: left: { if styling.rarity then (if has_identity() then 854 else 809) else 862 } top: { 861 + type_font_vertical() } right: { if styling.rarity then (if set.shorten_types_for_rarity then max(1100,min(1425, rarity_left()-3)) else 1425) else 1372 } height: 53 z index: 1010 alignment: middle left shrink-overflow font: name: { type_font() } italic name: { type_font_italic() } size: { type_font_size() } scale down to: 6 color: { type_font_color() } separator color: red rarity: right: { rarity_right() } top: { rarity_top() } width: { rarity_size() } height: { rarity_size() } z index: 1000 visible: { styling.rarity } alignment: middle right render style: image include file: /magic-modules.mse-include/rarities/choice_images ############################# Text box text: left: 807 top: { 530 + body_font_vertical() } width: 620 height: 308 z index: 1000 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: 2.2 alignment: script: if (styling.center_text == "short text only" and card_style.text.content_lines <= 2) or styling.center_text == "always" then "middle center" else "middle left" font: name: { body_font() } italic name: { body_font_italic() } size: { body_font_size() } scale down to: 12 color: { body_font_color() } symbol font: name: { styling.text_box_mana_symbols } size: { body_font_size() } scale down to: 12 flavor_text: left: 806 top: { 262 + body_font_vertical() } width: 312 height: 158 z index: 1000 line height hard: 1.3 line height line: 1.6 line height soft: 1.1 line height hard max: 1.5 line height line max: 2 alignment: left middle shrink-overflow font: name: { body_font() } italic name: { body_font_italic() } size: { body_font_size() } scale down to: 12 color: { body_font_color() } symbol font: name: { styling.text_box_mana_symbols } size: { body_font_size() } scale down to: 12 level_11_text: left: 806 top: { 53 + body_font_vertical() } width: 345 height: 188 z index: 1000 mask: text_mask.png line height hard: 1.3 line height line: 1.5 line height soft: 1.1 line height hard max: 1.5 line height line max: 1.6 alignment: middle left shrink-overflow font: name: { body_font() } italic name: { body_font_italic() } size: { body_font_size() } scale down to: 12 color: { body_font_color() } symbol font: name: { styling.text_box_mana_symbols } size: { body_font_size() } scale down to: 12 level_12_text: left: { if styling.trophy then 36 else 66 } top: { (if styling.trophy then 807 else 806) + body_font_vertical() } width: { if styling.trophy then 117 else 128 } height: { if styling.trophy then 47 else 45 } z index: 1000 line height hard: 1 line height line: 1.5 line height soft: 0.6 line height hard max: 1.3 line height line max: 1.6 alignment: center middle shrink-overflow font: name: { body2_font() } italic name: { body2_font_italic() } size: { body2_font_size() } scale down to: 12 color: { body2_font_color() } symbol font: name: { styling.text_box_mana_symbols } size: { body2_font_size() } scale down to: 12 loyalty cost 1: left: 804 top: { ability_center(0) - 21 - ( -loyal_move(1)) + body_font_vertical() } width: { if abilities_count() >= 1 then 46 else 0 } height: 44 z index: 1010 alignment: center middle shrink-overflow font: name: { body_font() } italic name: { body_font_italic() } size: 26 scale down to: 12 color: { body_font_color() } loyalty cost 2: left: 804 top: { ability_center(1) - 21 - ( -loyal_move(2)) + body_font_vertical() } width: { if abilities_count() >= 2 then 46 else 0 } height: 44 z index: 1010 alignment: center middle shrink-overflow font: name: { body_font() } italic name: { body_font_italic() } size: 26 scale down to: 12 color: { body_font_color() } loyalty cost 3: left: 804 top: { ability_center(2) - 21 - ( -loyal_move(3)) + body_font_vertical() } width: { if abilities_count() >= 3 then 46 else 0 } height: 44 z index: 1010 alignment: center middle shrink-overflow font: name: { body_font() } italic name: { body_font_italic() } size: 26 scale down to: 12 color: { body_font_color() } loyalty cost 4: left: 804 top: { ability_center(3) - 21 - ( -loyal_move(4)) + body_font_vertical() } width: { if abilities_count() >= 4 then 46 else 0 } height: 44 z index: 1010 alignment: center middle shrink-overflow font: name: { body_font() } italic name: { body_font_italic() } size: 26 scale down to: 12 color: { body_font_color() } loyalty cost 5: left: 804 top: { ability_center(4) - 21 - ( -loyal_move(5)) + body_font_vertical() } width: { if abilities_count() >= 5 then 46 else 0 } height: 44 z index: 1010 alignment: center middle shrink-overflow font: name: { body_font() } italic name: { body_font_italic() } size: 26 scale down to: 12 color: { body_font_color() } loyalty cost 6: left: 804 top: { ability_center(5) - 21 - ( -loyal_move(6)) + body_font_vertical() } width: { if abilities_count() >= 6 then 46 else 0 } height: 44 z index: 1010 alignment: center middle shrink-overflow font: name: { body_font() } italic name: { body_font_italic() } size: 26 scale down to: 12 color: { body_font_color() } ############################# PT pt: left: 1353 top: { 435 + pt2_font_vertical() } width: { if styling.stats_type == "PT" then 66 else 0 } height: 84 z index: 1020 alignment: center middle shrink-overflow font: name: { pt2_font() } italic name: { pt2_font_italic() } size: { pt2_font_size() } scale down to: 12 color: { pt2_font_color() } separator color: red loyalty: left: 1353 top: { 437 + pt2_font_vertical() } width: { if styling.stats_type == "Loyalty" then 66 else 0 } height: 84 z index: 1020 alignment: center middle shrink-overflow font: name: { pt2_font() } italic name: { pt2_font_italic() } size: { pt2_font_size() } scale down to: 12 color: { pt2_font_color() } ############################################################## Extra card fields extra card field: type: choice name: position editable: false save value: false show statistics: false choice: position extra card field: type: choice name: back editable: false save value: false show statistics: false choice: back extra card field: type: choice name: back stats editable: false save value: false show statistics: false choice: back stats extra card field: type: choice name: back star left editable: false save value: false show statistics: false choice: back star left extra card field: type: choice name: back star right editable: false save value: false show statistics: false choice: back star right extra card field: type: choice name: crown script: card.card_color editable: false save value: false show statistics: false extra card field: type: choice name: loyalty box editable: false save value: false show statistics: false choice: loyalty box extra card field: type: choice name: card stamp background editable: false save value: false show statistics: false choice: card stamp background extra card field: type: color name: card stamp background border script: card.border_color editable: false save value: false show statistics: false extra card field: type: choice name: foil layer editable: false save value: false show statistics: false choice: foil layer extra card field: type: text name: colon 1 editable: false save value: false script: ":" extra card field: type: text name: colon 2 editable: false save value: false script: ":" extra card field: type: text name: colon 3 editable: false save value: false script: ":" extra card field: type: text name: colon 4 editable: false save value: false script: ":" extra card field: type: text name: colon 5 editable: false save value: false script: ":" extra card field: type: text name: colon 6 editable: false save value: false script: ":" extra card field: type: choice name: textbox stripe separator 1 editable: false save value: false choice: textbox stripe separator 1 extra card field: type: choice name: textbox stripe separator 2 editable: false save value: false choice: textbox stripe separator 2 extra card field: type: choice name: textbox stripe separator 3 editable: false save value: false choice: textbox stripe separator 3 extra card field: type: choice name: textbox stripe separator 4 editable: false save value: false choice: textbox stripe separator 4 extra card field: type: choice name: textbox stripe separator 5 editable: false save value: false choice: textbox stripe separator 5 extra card field: type: choice name: textbox stripe 1 editable: false save value: false show statistics: false choice: textbox stripe 1 extra card field: type: choice name: textbox stripe 2 editable: false save value: false show statistics: false choice: textbox stripe 2 extra card field: type: choice name: textbox stripe 3 editable: false save value: false show statistics: false choice: textbox stripe 3 extra card field: type: choice name: filtered image 2 editable: false save value: false show statistics: false choice: filtered image 2 extra card field: type: text name: mirror stat editable: true save value: true default: if styling.stats_type == "PT" then card.pt else card.loyalty extra card style: position: left: { face_coordinates_map(1).left } top: { face_coordinates_map(1).top } width: { face_coordinates_map(1).width } height: { face_coordinates_map(1).height } z index: 310 ### There is a zero width space in the second "" visible: { card.level_12_text != "" and card.level_12_text != "​" } render style: image image: { if styling.trophy then "trophy.png" else "position.png" } back: left: { face_coordinates_map(2).left } top: { face_coordinates_map(2).top } width: { face_coordinates_map(2).width } height: { face_coordinates_map(2).height } z index: 200 render style: image image: back.png back stats: left: { face_coordinates_map(2).left } top: { face_coordinates_map(2).top } width: { face_coordinates_map(2).width } height: { face_coordinates_map(2).height } z index: 210 render style: image image: { if styling.stats_type == "None" then "" else "back_" + styling.stats_type + ".png" } back star left: left: { face_coordinates_map(2).left } top: { face_coordinates_map(2).top } width: { face_coordinates_map(2).width } height: { face_coordinates_map(2).height } z index: 210 render style: image image: { if styling.rarity or has_identity() then "" else "back_star_left.png" } back star right: left: { face_coordinates_map(2).left } top: { face_coordinates_map(2).top } width: { face_coordinates_map(2).width } height: { face_coordinates_map(2).height } z index: 210 render style: image image: { if styling.rarity then "" else "back_star_right.png" } crown: left: { face_coordinates_map(1).left } top: { face_coordinates_map(1).top } width: { face_coordinates_map(1).width } height: { face_coordinates_map(1).height } z index: 310 visible: { is_crowned() } render style: image image: { card_logo() } loyalty box: left: { face_coordinates_map(1).left } top: { face_coordinates_map(1).top } width: { face_coordinates_map(1).width } height: { face_coordinates_map(1).height } z index: 810 visible: { (styling.stats_type == "PT" or styling.stats_type == "Loyalty") and extra_card.mirror_stat != "" } render style: image image: { card_loyaltybox() } card stamp background: left: { face_coordinates_map(1).left } top: { face_coordinates_map(1).top } width: { face_coordinates_map(1).width } height: { face_coordinates_map(1).height } z index: 700 visible: { is_stamped() } render style: image image: { card_stamprim() } card stamp background border: left: { face_coordinates_map(1).left } top: { face_coordinates_map(1).top } width: { face_coordinates_map(1).width } height: { face_coordinates_map(1).height } z index: 710 visible: { is_stamped() and not styling.colored_border } mask: border_stamp_mask.png foil layer: left: { face_coordinates_map(1).left } top: { face_coordinates_map(1).top } width: { face_coordinates_map(1).width } height: { face_coordinates_map(1).height } z index: 3000 visible: { styling.overlay != "none" and styling.overlay != "" } render style: image image: { if styling.overlay == "" then "" else styling.overlay + "/overlay.png" } colon 1: left: 852 top: { ability_center(0) - 23 - ( -loyal_move(1)) } width: 11 height: 44 z index: 1010 visible: { card.loyalty_cost_1 != "" } font: name: Futura Medium BT size: 28 color: { rgb(17,47,49) } alignment: center middle colon 2: left: 852 top: { ability_center(1) - 23 - ( -loyal_move(2)) } width: 11 height: 44 z index: 1010 visible: { card.loyalty_cost_2 != "" and abilities_count() >= 2 } font: name: Futura Medium BT size: 28 color: { rgb(17,47,49) } alignment: center middle colon 3: left: 852 top: { ability_center(2) - 23 - ( -loyal_move(3)) } width: 11 height: 44 z index: 1010 visible: { card.loyalty_cost_3 != "" and abilities_count() >= 3 } font: name: Futura Medium BT size: 28 color: { rgb(17,47,49) } alignment: center middle colon 4: left: 852 top: { ability_center(3) - 23 - ( -loyal_move(4)) } width: 11 height: 44 z index: 1010 visible: { card.loyalty_cost_4 != "" and abilities_count() >= 4 } font: name: Futura Medium BT size: 28 color: { rgb(17,47,49) } alignment: center middle colon 5: left: 852 top: { ability_center(4) - 23 - ( -loyal_move(5)) } width: 11 height: 44 z index: 1010 visible: { card.loyalty_cost_5 != "" and abilities_count() >= 5 } font: name: Futura Medium BT size: 28 color: { rgb(17,47,49) } alignment: center middle colon 6: left: 852 top: { ability_center(5) - 23 - ( -loyal_move(6)) } width: 11 height: 44 z index: 1010 visible: { card.loyalty_cost_6 != "" and abilities_count() >= 6 } font: name: Futura Medium BT size: 28 color: { rgb(17,47,49) } alignment: center middle textbox stripe separator 1: left: { face_coordinates_map(2).left } width: { face_coordinates_map(2).width } top: { stripe_top(1) } height: 14 z index: 220 visible: { abilities_count() >= 2 } render style: image image: back_separator.png textbox stripe separator 2: left: { face_coordinates_map(2).left } width: { face_coordinates_map(2).width } top: { stripe_top(2) } height: 14 z index: 220 visible: { abilities_count() >= 3 } render style: image image: back_separator.png textbox stripe separator 3: left: { face_coordinates_map(2).left } width: { face_coordinates_map(2).width } top: { stripe_top(3) } height: 14 z index: 220 visible: { abilities_count() >= 4 } render style: image image: back_separator.png textbox stripe separator 4: left: { face_coordinates_map(2).left } width: { face_coordinates_map(2).width } top: { stripe_top(4) } height: 14 z index: 220 visible: { abilities_count() >= 5 } render style: image image: back_separator.png textbox stripe separator 5: left: { face_coordinates_map(2).left } width: { face_coordinates_map(2).width } top: { stripe_top(5) } height: 14 z index: 220 visible: { abilities_count() >= 6 } render style: image image: back_separator.png textbox stripe 1: left: { face_coordinates_map(2).left } width: { face_coordinates_map(2).width } top: { stripe_top(1)+3 } bottom: { stripe_top(2)+3 } z index: 210 visible: { abilities_count() >= 2 } render style: image image: { crop_safe("back_stripe.png", offset_x: 0, offset_y: stripe_top(1)+3, width: 744, height: stripe_top(2) - stripe_top(1), max_x: 744, max_y: 1839) } textbox stripe 2: left: { face_coordinates_map(2).left } width: { face_coordinates_map(2).width } top: { stripe_top(3)+3 } bottom: { stripe_top(4)+3 } z index: 210 visible: { abilities_count() >= 4 } render style: image image: { crop_safe("back_stripe.png", offset_x: 0, offset_y: stripe_top(3)+3, width: 744, height: stripe_top(4) - stripe_top(3), max_x: 744, max_y: 1839) } textbox stripe 3: left: { face_coordinates_map(2).left } width: { face_coordinates_map(2).width } top: { stripe_top(5)+3 } bottom: 844 z index: 210 visible: { abilities_count() >= 6 } render style: image image: { crop_safe("back_stripe.png", offset_x: 0, offset_y: stripe_top(5)+3, width: 744, height: 844 - (stripe_top(5)+3), max_x: 744, max_y: 1839) } filtered image 2: left: 1134 top: 48 width: 299 height: 377 z index: 1 visible: { styling.back_image_filter } render style: image image: { combine_blend(image1: saturate(card.image_2, amount: -1), image2: "tint.png", combine: "add") } mirror stat: left: 563 top: { 696 + move_baseball() + pt_font_vertical() } height: 142 z index: 1020 alignment: center middle shrink-overflow font: name: { pt_font() } italic name: { pt_font_italic() } size: { pt_font_size() } scale down to: 12 color: { pt_font_color() }