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() }