1232 lines
39 KiB
Plaintext
1232 lines
39 KiB
Plaintext
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: "<line>\n</line>", field2: card.level_2_text, separator2: "<line>\n</line>", field3: card.level_3_text, separator3: "<line>\n</line>", field4: card.level_4_text, separator4: "<line>\n</line>", field5: card.level_5_text, separator5: "<line>\n</line>", field6: card.level_6_text)
|
||
else if count == 5 then combined_editor(field1: card.level_1_text, separator1: "<line>\n</line>", field2: card.level_2_text, separator2: "<line>\n</line>", field3: card.level_3_text, separator3: "<line>\n</line>", field4: card.level_4_text, separator4: "<line>\n</line>", field5: card.level_5_text)
|
||
else if count == 4 then combined_editor(field1: card.level_1_text, separator1: "<line>\n</line>", field2: card.level_2_text, separator2: "<line>\n</line>", field3: card.level_3_text, separator3: "<line>\n</line>", field4: card.level_4_text)
|
||
else if count == 3 then combined_editor(field1: card.level_1_text, separator1: "<line>\n</line>", field2: card.level_2_text, separator2: "<line>\n</line>", field3: card.level_3_text)
|
||
else if count == 2 then combined_editor(field1: card.level_1_text, separator1: "<line>\n</line>", 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() }
|