Files
magic-set-editor-fork/data/magic-genevensis-10-saga.mse-style/style
cajun 8f8d9c637a Indicator update (#76)
* update indicator script and remove color indicator dot styling options

---------

Co-authored-by: cajun <12363371+CajunAvenger@users.noreply.github.com>
2024-09-24 13:44:27 -05:00

2567 lines
85 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
mse version: 2.1.2
game: magic
short name: Gen Saga
full name: Hi-Res
icon: card_sample.png
position hint: 077
version: 2022-02-22
depends on:
package: magic.mse-game
version: 2020-04-25
depends on:
package: magic-mainframe-extras.mse-include
version: 2001-01-01
depends on:
package: magic-watermarks.mse-include
version: 2001-01-01
depends on:
package: magic-modules.mse-include
version: 2024-05-20
depends on:
package: magic-mana-large.mse-symbol-font
version: 2001-01-01
depends on:
package: magic-mana-small.mse-symbol-font
version: 2001-01-01
depends on:
package: magic-mana-genevensis-large.mse-symbol-font
version: 2022-02-22
depends on:
package: magic-mana-genevensis-small.mse-symbol-font
version: 2022-02-22
depends on:
package: magic-genevensis-00-main.mse-style
version: 2022-02-22
card width: 750
card height: 1046
card dpi: 300
############################################################## Extra scripts
init script:
card_shape := { "saga" }
corners_default := { "diagonal" }
swap_font := { true }
swap_fonts_name_src := { styling.name_font }
swap_fonts_name_default :=
[
name: {"Beleren Bold"},
size: {32},
color: {"black"},
vertical: {0},
italic: {""}
]
swap_fonts_type_src := { styling.type_font }
swap_fonts_type_default :=
[
name: {"Beleren Bold"},
size: {25},
color: {"black"},
vertical: {0},
italic: {""}
]
swap_fonts_body_src := { styling.text_font }
swap_fonts_body_default :=
[
name: {"MPlantin"},
size: {if styling.font_size == "" then 26 else to_number_lax(styling.font_size) or else 26},
color: {"black"},
vertical: {0},
italic: {"MPlantin-Italic"}
]
swap_fonts_pt_src := { styling.PT_font }
swap_fonts_pt_default :=
[
name: {"Beleren Bold"},
size: {32},
color: {"black"},
vertical: {0},
italic: {""}
]
swap_fonts_name2_src := { styling.alias_font }
swap_fonts_name2_default :=
[
name: {"Beleren Bold"},
size: {18},
color: {"black"},
vertical: {0},
italic: {""}
]
swap_fonts_name3_src := { styling.auxiliary_font }
swap_fonts_name3_default :=
[
name: {"Beleren Bold"},
size: {30},
color: {"black"},
vertical: {0},
italic: {""}
]
mana_sort := sort_text@(order: "\\?XYZI[0123456789]VLHFDSCAIEP(WUBRG)")
mana_sort_wedge := sort_text@(order: "\\?XYZI[0123456789]VLHFDSCAIEP(WBGUR)")
mana_unsort := sort_text@(order: "[/\\?XYZI0123456789VLHFDSCAIEPWUBRG]")
mana_sort_guild := sort_text@(order: "[\\?XYZI01234567890VLHFDSCAIEPWUBRG/|]") +
replace@(
match: "./.|././.|./././.|.[|]",
in_context: "(^|[^/])<match>($|[^/])",
replace: {sort_text(order:"in_place(P(WUBRG))")}
)
is_unsorted :=
{
styling.remove_from_autocount
}
shrink_reminder :=
{
if styling.shrink_transformation_reminder_text == "-" then 0
else clamp(to_int(styling.shrink_transformation_reminder_text), minimum: -40, maximum: 25) or else 0
}
has_extended_art :=
{
chosen(styling.extended_art, choice: "yes")
or
(
chosen(styling.extended_art, choice: "if land")
and (lang_setting("is_land")(card.super_type) or lang_setting("is_plane")(card.super_type))
)
}
has_crown :=
{
chosen(styling.legend_crown, choice: "normal")
or
(
chosen(styling.legend_crown, choice: "normal if legendary")
and lang_setting("is_legendary")(card.super_type)
)
}
has_special_crown :=
{
chosen(styling.legend_crown, choice: "special")
or
(
chosen(styling.legend_crown, choice: "special if legendary")
and lang_setting("is_legendary")(card.super_type)
)
}
has_leaf :=
{
if has_special_crown() then false
else if chosen(styling.land_leaf, choice: "yes") then true
else if (
chosen(styling.land_leaf , choice: "if land")
and (lang_setting("is_land")(card.super_type) or lang_setting("is_plane")(card.super_type))
) then true
else false
}
has_symbol :=
{
not (styling.symbol == "none")
}
has_custom_rarity :=
{
contains(set.mainframe_rarity_name, match: ".png")
}
un_png := replace@(match:".png", replace: "")
proper_order :=
{
if input == "gr" then "rg"
else if input == "bu" then "ub"
else if input == "uw" then "wu"
else if input == "ru" then "ur"
else if input == "gb" then "bg"
else if input == "rb" then "br"
else if input == "ug" then "gu"
else if input == "wg" then "gw"
else if input == "bw" then "wb"
else if input == "wr" then "rw"
else input
}
color_to_base_prefix :=
{
initial_prefix :=
(if contains(card.casting_cost, match: "P") then "s" else "") +
(if chosen(choice: "white", card.card_color) or contains(card.casting_cost, match: "W") then "w" else "") +
(if chosen(choice: "blue", card.card_color) or contains(card.casting_cost, match: "U") then "u" else "") +
(if chosen(choice: "black", card.card_color) or contains(card.casting_cost, match: "B") then "b" else "") +
(if chosen(choice: "red", card.card_color) or contains(card.casting_cost, match: "R") then "r" else "") +
(if chosen(choice: "green", card.card_color) or contains(card.casting_cost, match: "G") then "g" else "")
ordered_prefix := proper_order(initial_prefix)
if chosen(choice: "reversed", card.card_color) then reverse(ordered_prefix)
else ordered_prefix
}
color_to_unforced_prefix :=
{
prefix := color_to_base_prefix()
if chosen(choice: "artifact", card.card_color) then "a"
else if length(prefix) > 2 then "m"
else if chosen(choice: "multicolor", card.card_color) and not styling.force_hybrid_frame then "m"
else if length(prefix) == 0 then (if chosen(choice: "multicolor", card.card_color) then "m" else "c" )
else prefix
}
left_forced_prefix :=
{
if chosen(choice: "white", styling.force_left_color) then "w"
else if chosen(choice: "blue", styling.force_left_color) then "u"
else if chosen(choice: "black", styling.force_left_color) then "b"
else if chosen(choice: "red", styling.force_left_color) then "r"
else if chosen(choice: "green", styling.force_left_color) then "g"
else if chosen(choice: "artifact", styling.force_left_color) then "a"
else if chosen(choice: "gold", styling.force_left_color) then "m"
else if chosen(choice: "colorless", styling.force_left_color) then "c"
else if chosen(choice: "purple", styling.force_left_color) then "s"
else ""
}
right_forced_prefix :=
{
if chosen(choice: "white", styling.force_right_color) then "w"
else if chosen(choice: "blue", styling.force_right_color) then "u"
else if chosen(choice: "black", styling.force_right_color) then "b"
else if chosen(choice: "red", styling.force_right_color) then "r"
else if chosen(choice: "green", styling.force_right_color) then "g"
else if chosen(choice: "artifact", styling.force_right_color) then "a"
else if chosen(choice: "gold", styling.force_right_color) then "m"
else if chosen(choice: "colorless", styling.force_right_color) then "c"
else if chosen(choice: "purple", styling.force_right_color) then "s"
else ""
}
color_to_prefix :=
{
unforced_prefix := color_to_unforced_prefix()
left_forced := left_forced_prefix()
right_forced := right_forced_prefix()
left_prefix := if length(left_forced) == 0 then unforced_prefix.0 else left_forced
right_prefix := if length(right_forced) == 0 then reverse(unforced_prefix).0 else right_forced
if left_prefix == right_prefix then left_prefix else left_prefix + right_prefix
}
copyright_color :=
{
right_color := reverse(color_to_prefix()).0
if right_color == "w" then rgb(236,211,123)
else if right_color == "u" then rgb(055,119,186)
else if right_color == "b" then rgb(120,120,120)
else if right_color == "r" then rgb(161,037,030)
else if right_color == "g" then rgb(049,108,043)
else if right_color == "a" then rgb(116,153,169)
else if right_color == "m" then rgb(191,128,000)
else if right_color == "c" then rgb(131,114,103)
else if right_color == "s" then rgb(150,103,192)
else rgb(255,255,255)
}
border :=
{
"/magic-genevensis-00-main.mse-style/borders/" +
input + "_border.png"
}
image :=
{
"/magic-genevensis-00-main.mse-style/elements/" +
input + "/" +
( if side == "left" then color_to_prefix().0 else if side == "right" then reverse(color_to_prefix()).0 else color_to_prefix() ) +
input + ".png"
}
frame_image :=
{
name := ( if has_extended_art() then "puma" else "" ) + "saga"
image(name, side: "both")
}
color_indicator_dot_image :=
{
prefix := color_to_base_prefix()
count := length(prefix)
if count == 0 then "/magic-genevensis-00-main.mse-style/elements/identity/cidentity.png"
else if count == 1 then "/magic-genevensis-00-main.mse-style/elements/identity/" + prefix.0 + "identity.png"
else if count == 2 then masked_blend(
light: "/magic-genevensis-00-main.mse-style/elements/identity/" + prefix.0 + "identity.png",
dark: "/magic-genevensis-00-main.mse-style/elements/identity/" + prefix.1 + "identity.png",
mask: "/magic-genevensis-00-main.mse-style/imask_21.png")
else if count == 3 then masked_blend(
light: masked_blend(
light: "/magic-genevensis-00-main.mse-style/elements/identity/" + prefix.0 + "identity.png",
dark: "/magic-genevensis-00-main.mse-style/elements/identity/" + prefix.1 + "identity.png",
mask: "/magic-genevensis-00-main.mse-style/imask_31.png"),
dark: "/magic-genevensis-00-main.mse-style/elements/identity/" + prefix.2 + "identity.png",
mask: "/magic-genevensis-00-main.mse-style/imask_32.png")
else if count == 4 then masked_blend(
light: masked_blend(
light: masked_blend(
light: "/magic-genevensis-00-main.mse-style/elements/identity/" + prefix.0 + "identity.png",
dark: "/magic-genevensis-00-main.mse-style/elements/identity/" + prefix.1 + "identity.png",
mask: "/magic-genevensis-00-main.mse-style/imask_41.png"),
dark: "/magic-genevensis-00-main.mse-style/elements/identity/" + prefix.2 + "identity.png",
mask: "/magic-genevensis-00-main.mse-style/imask_42.png"),
dark: "/magic-genevensis-00-main.mse-style/elements/identity/" + prefix.3 + "identity.png",
mask: "/magic-genevensis-00-main.mse-style/imask_43.png")
else masked_blend(
light: masked_blend(
light: masked_blend(
light: masked_blend(
light: "/magic-genevensis-00-main.mse-style/elements/identity/" + prefix.0 + "identity.png",
dark: "/magic-genevensis-00-main.mse-style/elements/identity/" + prefix.1 + "identity.png",
mask: "/magic-genevensis-00-main.mse-style/imask_51.png"),
dark: "/magic-genevensis-00-main.mse-style/elements/identity/" + prefix.2 + "identity.png",
mask: "/magic-genevensis-00-main.mse-style/imask_52.png"),
dark: "/magic-genevensis-00-main.mse-style/elements/identity/" + prefix.3 + "identity.png",
mask: "/magic-genevensis-00-main.mse-style/imask_53.png"),
dark: "/magic-genevensis-00-main.mse-style/elements/identity/" + prefix.4 + "identity.png",
mask: "/magic-genevensis-00-main.mse-style/imask_54.png")
}
symbol_map :=
[
"1 triangle" : "symbol1triangle"
"1 triangle flipped" : "symbol1triangleflipped"
"2 triangles" : "symbol2triangle"
"compass" : "symbolcompass"
"land" : "symbolland"
"rising" : "symbolrising"
"risen" : "symbolrisen"
"closed fan" : "symbolclosedfan"
"open fan" : "symbolopenfan"
"sun / day" : "symbolsun"
"moon / night" : "symbolmoon"
"eldrazi" : "symboleldrazi"
"brother's war" : "symbolbrowar"
"arena" : "symbolarena"
"acorn" : "symbolacorn"
"swap" : "symbolswap"
"tombstone" : "symboltomb"
"multitype" : "symbolmultitype"
"structure" : "symbolstructure"
"creature" : "symbolcreature"
"planeswalker" : "symbolplaneswalker"
"instant" : "symbolinstant"
"sorcery" : "symbolsorcery"
"artifact" : "symbolartifact"
"enchantment" : "symbolenchantment"
"lesson" : "symbollesson"
"custom" : "symbolcustom"
]
symbol_image :=
{
name := symbol_map[styling.symbol] or else ""
image(name, side: "left")
}
reminder_image :=
{
if styling.transformation_reminder == "notch" then image("remindernotchleft", side: "left")
else image("remindersaga" + ( if has_leaf() then "leaf" else "" ) + styling.transformation_reminder, side: "both")
}
pt_image :=
{
name := ( if has_extended_art() then "puma" else "" ) + "sagapt"
image(name, side: "right")
}
opacity_watermark_image :=
{
image := if styling.watermark == "setsymbol" or styling.watermark == "setsymbol" or styling.watermark == "'setsymbol'" then set_symbol_image()
else if contains(match: ".png", styling.watermark) then ("/magic-watermarks.mse-include/" + styling.watermark)
else ""
if styling.watermark_opacity_percentage == "" then image
else set_alpha(image, alpha: get_alpha(styling.watermark_opacity_percentage, default: 100))
}
set_symbol_image :=
{
image := symbol_variation(symbol: set.symbol, variation: "watermark")
enlarged_image := enlarge(border_size: 0.03, image)
shadow_image := drop_shadow(offset_x: -0.01, offset_y: 0.03, blur_radius: 0.02, alpha: 1, color: rgb(0,0,0), enlarged_image)
set_combine(combine:"shadow", shadow_image)
}
crown_image :=
{
name := "crown" + (if has_special_crown() then "special" else "")
image(name, side: "both")
}
leaf_image :=
{
name := "sagaleaf"
image(name, side: "both")
}
legend_leaf_image :=
{
name := "legendleaf"
image(name, side: "both")
}
insignia_image :=
{
name := "insignia" + styling.insignia
image(name, side: "both")
}
illustrator_brush_image :=
{
recolor_image("/magic-genevensis-00-main.mse-style/illustrator_brush_" + input + ".png", color: if styling.illustrator_text_color == rgb(255,254,255) then copyright_color() else styling.illustrator_text_color )
}
chapter_image :=
{
if contains(styling.custom_chapter_icons, match: ".png") then (un_png(styling.custom_chapter_icons) + "_" + input + ".png")
else image("chap" + input, side: "left")
}
get_alpha :=
{
alpha_value := if input == "" then default
else to_number(input) or else default
if alpha_value < 0 then 0.0
else if alpha_value <= 100 then alpha_value/100.0
else 1.0
}
seven_abilities := { styling.textboxes == "seven" }
six_abilities := { styling.textboxes == "six" }
five_abilities := { styling.textboxes == "five" }
four_abilities := { styling.textboxes == "four" }
three_abilities := { styling.textboxes == "three" }
two_abilities := { styling.textboxes == "two" }
active_abilities :=
{
if four_abilities() then 4
else if three_abilities() then 3
else if five_abilities() then 5
else if two_abilities() then 2
else if six_abilities() then 6
else if seven_abilities() then 7
else 1
}
chapter_move1 := { clamp((to_int(pull_comma_array(styling.move_chapter_icons, cell:0, end:0, default:0)) or else 0), minimum: -700, maximum: 700) }
chapter_move2 := { clamp((to_int(pull_comma_array(styling.move_chapter_icons, cell:1, end:0, default:0)) or else 0), minimum: -700, maximum: 700) }
chapter_move3 := { clamp((to_int(pull_comma_array(styling.move_chapter_icons, cell:2, end:0, default:0)) or else 0), minimum: -700, maximum: 700) }
chapter_move4 := { clamp((to_int(pull_comma_array(styling.move_chapter_icons, cell:3, end:0, default:0)) or else 0), minimum: -700, maximum: 700) }
chapter_move5 := { clamp((to_int(pull_comma_array(styling.move_chapter_icons, cell:4, end:0, default:0)) or else 0), minimum: -700, maximum: 700) }
chapter_move6 := { clamp((to_int(pull_comma_array(styling.move_chapter_icons, cell:5, end:0, default:0)) or else 0), minimum: -700, maximum: 700) }
chapter_move7 := { clamp((to_int(pull_comma_array(styling.move_chapter_icons, cell:6, end:0, default:0)) or else 0), minimum: -700, maximum: 700) }
chapter_move8 := { clamp((to_int(pull_comma_array(styling.move_chapter_icons, cell:7, end:0, default:0)) or else 0), minimum: -700, maximum: 700) }
chapter_move9 := { clamp((to_int(pull_comma_array(styling.move_chapter_icons, cell:8, end:0, default:0)) or else 0), minimum: -700, maximum: 700) }
chapter_move10 := { clamp((to_int(pull_comma_array(styling.move_chapter_icons, cell:9, end:0, default:0)) or else 0), minimum: -700, maximum: 700) }
separator_move1 := { clamp((to_int(pull_comma_array(styling.move_separators, cell:0, end:0, default:0)) or else 0), minimum: -500, maximum: 500) }
separator_move2 := { clamp((to_int(pull_comma_array(styling.move_separators, cell:1, end:0, default:0)) or else 0), minimum: -500, maximum: 500) }
separator_move3 := { clamp((to_int(pull_comma_array(styling.move_separators, cell:2, end:0, default:0)) or else 0), minimum: -500, maximum: 500) }
separator_move4 := { clamp((to_int(pull_comma_array(styling.move_separators, cell:3, end:0, default:0)) or else 0), minimum: -500, maximum: 500) }
separator_move5 := { clamp((to_int(pull_comma_array(styling.move_separators, cell:4, end:0, default:0)) or else 0), minimum: -500, maximum: 500) }
separator_move6 := { clamp((to_int(pull_comma_array(styling.move_separators, cell:5, end:0, default:0)) or else 0), minimum: -500, maximum: 500) }
textbox_move1 := { clamp((to_int(pull_comma_array(styling.move_textbox_bottoms, cell:0, end:0, default:0)) or else 0), minimum: -500, maximum: 500) }
textbox_move2 := { clamp((to_int(pull_comma_array(styling.move_textbox_bottoms, cell:1, end:0, default:0)) or else 0), minimum: -500, maximum: 500) }
textbox_move3 := { clamp((to_int(pull_comma_array(styling.move_textbox_bottoms, cell:2, end:0, default:0)) or else 0), minimum: -500, maximum: 500) }
textbox_move4 := { clamp((to_int(pull_comma_array(styling.move_textbox_bottoms, cell:3, end:0, default:0)) or else 0), minimum: -500, maximum: 500) }
textbox_move5 := { clamp((to_int(pull_comma_array(styling.move_textbox_bottoms, cell:4, end:0, default:0)) or else 0), minimum: -500, maximum: 500) }
textbox_move6 := { clamp((to_int(pull_comma_array(styling.move_textbox_bottoms, cell:5, end:0, default:0)) or else 0), minimum: -500, maximum: 500) }
textbox_move7 := { clamp((to_int(pull_comma_array(styling.move_textbox_bottoms, cell:6, end:0, default:0)) or else 0), minimum: -500, maximum: 500) }
chop_rarity_top := { clamp((to_int(pull_comma_array(styling.shrink_rarity_symbol, cell:0, end:0, default:0)) or else 0), minimum: -500, maximum: 500) }
chop_rarity_bot := { clamp((to_int(pull_comma_array(styling.shrink_rarity_symbol, cell:1, end:0, default:0)) or else 0), minimum: -500, maximum: 500) }
chop_rarity_left := { clamp((to_int(pull_comma_array(styling.shrink_rarity_symbol, cell:2, end:0, default:0)) or else 0), minimum: -500, maximum: 500) }
chop_rarity_right := { clamp((to_int(pull_comma_array(styling.shrink_rarity_symbol, cell:3, end:0, default:0)) or else 0), minimum: -500, maximum: 500) }
watermark_height :=
{
desired_height := 323 + (to_int(styling.increase_watermark_height) or else 0)
clamp(desired_height, minimum: 0, maximum: 800)
}
alt_rarity :=
{
styling.alt_rarity_color != ""
}
alt_symbol :=
{
string := if match(styling.alt_rarity_color, match:":$") then styling.alt_rarity_color else "83,67,53:177,150,131:0,0,0:0,0,0:0.07:"
colons := length(filter_text(string, match:":"))
color := split_text(string, match:",|:")
splits := split_text(string, match:":")
if colons == 4 then color := split_text(string+"0.07:", match:",|:")
else if colons == 3 then color := split_text(string+splits[2]+"0.07:", match:",|:")
else if colons == 2 then color := split_text(string+"0,0,0:0,0,0:0.07:", match:",|:")
else if colons == 1 then color := split_text(string+splits[0]+":0,0,0:0,0,0:0.07:", match:",|:")
symbol_variation(symbol:set.symbol, border_radius: color.12, fill_type: "linear gradient", fill_color_1: rgb(color.0, color.1, color.2), fill_color_2: rgb(color.3, color.4, color.5), border_color_1: rgb(color.6, color.7, color.8), border_color_2: rgb(color.9, color.10, color.11), center_x:0.5, center_y:0.5, end_x:1, end_y:1)
}
popout_left := { split := split_comma(styling.popout_art_coordinates); if length(split) > 3 and split.0 != "" then clamp(split.0, minimum: -500, maximum: 800) else 0 }
popout_top := { split := split_comma(styling.popout_art_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_art_coordinates); if length(split) > 3 and split.2 != "" then clamp(split.2, minimum: 0, maximum: 1500) else 0 }
popout_height := { split := split_comma(styling.popout_art_coordinates); if length(split) > 3 and split.3 != "" then clamp(split.3, minimum: 0, maximum: 2000) else 0 }
nameline_left_margin :=
{
if has_symbol() then 51 else 0
}
nameline_right_margin :=
{
if card.casting_cost != "" then (card_style.casting_cost.content_width + 8) else 0
}
name_margin :=
{
name_left_margin := nameline_left_margin()
name_right_margin := nameline_right_margin()
if name_left_margin > name_right_margin then name_left_margin else name_right_margin
}
typeline_left_margin :=
{
if has_identity() then 39 else 0
}
typeline_right_margin :=
{
if set.shorten_types_for_rarity then (60 - chop_rarity_left()) else 0
}
type_margin :=
{
type_left_margin := typeline_left_margin()
type_right_margin := typeline_right_margin()
if type_left_margin > type_right_margin then type_left_margin else type_right_margin
}
vorthos_default :=
{
actual_set_code := if is_masterpiece() then set.masterpiece_set_code else set.set_code
set.set_language + (if actual_set_code != "" and set.set_language != "" then " • " else "") + actual_set_code
}
fuse_image :=
{
other_prefix := ( if contains(styling.fuse, match: "white") then "w"
else if contains(styling.fuse, match: "blue") then "u"
else if contains(styling.fuse, match: "black") then "b"
else if contains(styling.fuse, match: "red") then "r"
else if contains(styling.fuse, match: "green") then "g"
else if contains(styling.fuse, match: "artifact") then "a"
else if contains(styling.fuse, match: "gold") then "m"
else if contains(styling.fuse, match: "colorless") then "c"
else "s" )
own_prefix := if contains(styling.fuse, match: "right") then reverse(color_to_prefix()).0 else color_to_prefix().0
prefix := if own_prefix == other_prefix then own_prefix
else if contains(styling.fuse, match: "right") then (own_prefix + other_prefix)
else (other_prefix + own_prefix)
size := fuse_image_size()
"/magic-genevensis-00-main.mse-style/elements/fuse" + size + "/" + prefix + "fuse" + size + ".png"
}
fuse_image_size :=
{
text_size := length(remove_tags(card.rule_text_3))
if text_size > 9 then "long" else if text_size < 7 then "short" else "medium"
}
split_comma := split_text@(match: " *, *")
#break_hard_line := break_text@(match: "\\n")
#break_soft_line := break_text@(match: "<soft-line>")
clamp :=
{
if input < minimum then minimum
else if input > maximum then maximum
else input
}
chapter_indexes :=
{
snaps := split_comma(styling.snap_chapter_to_box)
snaps_count := length(snaps)
for c from 0 to 9 do
(
if c >= snaps_count then [-1]
else
(
index := (to_int(snaps[c]) or else -1) - 1
if index > active_count or index < 0 then [-1]
else [index]
)
)
}
textbox_heights :=
{
hack_to_force_update := card_style.level_1_text.content_width
active_count := active_abilities() - 1
total_max_possible_height := (if styling.transformation_reminder == "notch" then 733 else if styling.transformation_reminder != "none" then 728 else 784) - (if card.alias != "" then 26 else 0)
chapter_icon_height := 62
chapter_icon_spacing := 10
chapter_icon_spacing_importance := (if styling.chapter_spacing_percentage == "" then 70 else clamp(to_number(styling.chapter_spacing_percentage) or else 70, minimum: 0, maximum: 100)) / 100
chapter_indexes := chapter_indexes(active_count: active_count)
chaptertrain_0_count := 0
chaptertrain_1_count := 0
chaptertrain_2_count := 0
chaptertrain_3_count := 0
chaptertrain_4_count := 0
chaptertrain_5_count := 0
chaptertrain_6_count := 0
for c from 0 to 9 do
(
if chapter_indexes[c] == -1 then (0)
else if chapter_indexes[c] == 0 then (chaptertrain_0_count := chaptertrain_0_count + 1)
else if chapter_indexes[c] == 1 then (chaptertrain_1_count := chaptertrain_1_count + 1)
else if chapter_indexes[c] == 2 then (chaptertrain_2_count := chaptertrain_2_count + 1)
else if chapter_indexes[c] == 3 then (chaptertrain_3_count := chaptertrain_3_count + 1)
else if chapter_indexes[c] == 4 then (chaptertrain_4_count := chaptertrain_4_count + 1)
else if chapter_indexes[c] == 5 then (chaptertrain_5_count := chaptertrain_5_count + 1)
else (chaptertrain_6_count := chaptertrain_6_count + 1)
)
chaptertrain_counts_per_textbox := [chaptertrain_0_count, chaptertrain_1_count, chaptertrain_2_count, chaptertrain_3_count, chaptertrain_4_count, chaptertrain_5_count, chaptertrain_6_count]
chaptertrain_desired_heights := for x from 0 to active_count do [chaptertrain_counts_per_textbox[x] * (chapter_icon_height + chapter_icon_spacing)]
line_height := 1.555 * font_size()
hard_line_height := line_height * card_style.level_1_text.line_height_hard
soft_line_height := line_height * card_style.level_1_text.line_height_soft
last_line_height := line_height * 1.222 / 1.555
content_line_counts := for x from 0 to active_count do [card_style["level_" + (x+1) + "_text"].content_lines]
hard_line_counts := for x from 0 to active_count do [length(card_style["level_" + (x+1) + "_text"].layout.paragraphs)-1]
#hard_line_counts := for x from 0 to active_count do (text := card["level_" + (x+1) + "_text"]; [length(break_hard_line(text)) - length(break_soft_line(text))])
soft_line_counts := for x from 0 to active_count do [content_line_counts[x] - hard_line_counts[x] - 1]
text_desired_heights := for x from 0 to active_count do [hard_line_counts[x] * hard_line_height + soft_line_counts[x] * soft_line_height + last_line_height]
textbox_desired_heights := for x from 0 to active_count do [max(text_desired_heights[x], chapter_icon_spacing_importance * chaptertrain_desired_heights[x])]
total_desired_height := for x from 0 to active_count do textbox_desired_heights[x]
missing := ( total_desired_height - total_max_possible_height ) / ( active_count + 1 )
factor := total_max_possible_height / total_desired_height
###when resizing, always make small textboxes as big as possible, to make a more balanced looking card
textbox_effective_heights := if missing <= 0 then (for x from 0 to active_count do [textbox_desired_heights[x] - missing]) #when increasing size, add equally to each textbox
else (for x from 0 to active_count do [textbox_desired_heights[x] * factor]) #when decreasing size, do it in percentage, taking away more from big textboxes
#trace("chapter_indexes " + (for c from 0 to 9 do chapter_indexes[c] + " "))
#trace("chaptertrain_counts_per_textbox " + (for x from 0 to 6 do chaptertrain_counts_per_textbox[x] + " "))
#trace("chaptertrain_desired_heights " + (for x from 0 to active_count do chaptertrain_desired_heights[x] + " "))
#trace("content_line_counts " + (for x from 0 to active_count do content_line_counts[x] + " "))
#trace("hard_line_counts " + (for x from 0 to active_count do hard_line_counts[x] + " "))
#trace("soft_line_counts " + (for x from 0 to active_count do soft_line_counts[x] + " "))
#trace("text_desired_heights " + (for x from 0 to active_count do text_desired_heights[x] + " "))
#trace("textbox_desired_heights " + (for x from 0 to active_count do textbox_desired_heights[x] + " "))
#trace("textbox_effective_heights " + (for x from 0 to active_count do textbox_effective_heights[x] + " "))
#trace("card_style.level_1_text.width " + card_style.level_1_text.width)
#trace("card_style.level_1_text.content_width " + card_style.level_1_text.content_width)
#trace("card_style.level_1_text.content_height " + card_style.level_1_text.content_height)
textbox_effective_heights
}
chapter_info :=
{
chapter_indexes := chapter_indexes(active_count: active_abilities() - 1);
index := chapter_indexes[input]
if index == -1 then [-1,-1,-1]
else
(
subindex := if input == 0 then 0
else (for c from 0 to (input-1) do (if chapter_indexes[c] == index then 1 else 0))
count := subindex + 1 + (for c from (input+1) to 9 do (if chapter_indexes[c] == index then 1 else 0))
[index, subindex, count]
)
}
chapter_top :=
{
hack_to_force_update := card_style.level_1_text.content_width
chapter_info := chapter_info(input)
if chapter_info[0] == -1 then 1200
else
(
index := chapter_info[0]
subindex := chapter_info[1]
count := chapter_info[2]
if count < 1 then trace("count < 1 wtf")
chapter_icon_height := 57
chapter_icon_spacing := 8
desired_chapter_height := count * chapter_icon_height ###how much total space do the chapter icons want
desired_spacing := (count-1) * chapter_icon_spacing ###how much total space do the gaps between chapters want
desired_height := desired_chapter_height + desired_spacing ###how much total space do the chapters and gaps between them want
textbox_height := card_style["level_" + (index+1) + "_text"].height ###how much space is does the textbox offer
missing_height := desired_height - textbox_height ###how much space is missing from the textbox
effective_spacing := desired_spacing - max(missing_height, 0) ###how much total space do the gaps between chapters actually have
effective_spacing := max(effective_spacing, (count-1) * (chapter_icon_spacing - chapter_icon_height)) ###chapters must always be at least chapter_icon_spacing pixels below the previous one
effective_spacing_per_chapter := effective_spacing / max(count-1,1) ###how much space does each gap have (can be negative, chapters will then overlap)
effective_height := desired_chapter_height + effective_spacing ###how much total space do the chapters and gaps between and around them want
offset := (textbox_height - effective_height)/2
top := card_style["level_" + (index+1) + "_text"].top + offset + subindex * (chapter_icon_height + effective_spacing_per_chapter)
#trace("desired_chapter_height " + desired_chapter_height)
#trace("desired_spacing " + desired_spacing)
#trace("desired_height " + desired_height)
#trace("textbox_height " + textbox_height)
#trace("missing_height " + missing_height)
#trace("effective_spacing " + effective_spacing)
#trace("effective_spacing_per_chapter " + effective_spacing_per_chapter)
#trace("effective_height " + effective_height)
#trace("offset " + offset)
#trace("top " + top)
top
)
}
############################################################## Set info fields
set info style:
symbol:
variation:
name: basic land
border radius: 0.07
fill type: linear gradient
fill color 1: rgb(116,186,112)
fill color 2: rgb(38,90,30)
border color 1: rgb(0, 0, 0)
border color 2: rgb(0, 0, 0)
#fill color 1: rgb(183, 151, 213)
#fill color 2: rgb(121, 80, 163)
#border color 1: rgb(0, 0, 0)
#border color 2: rgb(0, 0, 0)
set info style:
symbol:
variation:
name: common
border radius: 0.07
fill type: solid
fill color: rgb(0,0,0)
border color: rgb(255,255,255)
set info style:
symbol:
variation:
name: invertedcommon
border radius: 0.07
fill type: linear gradient
fill color 1: rgb(255, 255, 255)
fill color 2: rgb(215, 215, 215)
border color 1: rgb(0, 0, 0)
border color 2: rgb(0, 0, 0)
set info style:
symbol:
variation:
name: uncommon
border radius: 0.07
fill type: linear gradient
fill color 1: rgb(224, 224, 224)
fill color 2: rgb(84, 84, 84)
border color 1: rgb(0, 0, 0)
border color 2: rgb(0, 0, 0)
set info style:
symbol:
variation:
name: rare
border radius: 0.07
fill type: linear gradient
fill color 1: rgb(214, 196, 94)
fill color 2: rgb(95, 84, 40)
border color 1: rgb(0, 0, 0)
border color 2: rgb(0, 0, 0)
set info style:
symbol:
variation:
name: mythic rare
border radius: 0.07
fill type: linear gradient
fill color 1: rgb(245, 148, 31)
fill color 2: rgb(186, 45, 38)
border color 1: rgb(0, 0, 0)
border color 2: rgb(0, 0, 0)
set info style:
symbol:
variation:
name: masterpiece
border radius: 0.07
fill type: linear gradient
fill color 1: rgb(194, 22, 3)
fill color 2: rgb(139, 0, 0)
border color 1: rgb(0, 0, 0)
border color 2: rgb(0, 0, 0)
set info style:
symbol:
variation:
name: purple
border radius: 0.07
fill type: linear gradient
fill color 1: rgb(180,0,245)
fill color 2: rgb(100, 0, 165)
border color 1: rgb(0, 0, 0)
border color 2: rgb(0, 0, 0)
############################################################## Extra style options
styling field:
type: text
name: font size
description: Sets the font size of ability textboxes. MUST BE CHANGED MANUALLY IF THERE IS NOT ENOUGH ROOM ON THE CARD. Default is 26.
# localized caption:
# fr: Taille du texte
# localized description:
# fr: Fixer la taille de la police pour toutes les abilités. Doit être modifiée manuellement si il n'y a pas assez de place sur la carte. Valeur par défaut: 26.
styling field:
type: boolean
name: center name
description: Center the name text on the card?
# localized caption:
# fr: Centrer le nom
# localized description:
# fr: Aligner le nom au milieu de la carte?
initial: no
styling field:
type: boolean
name: center type
description: Center the type text on the card?
# localized caption:
# fr: Centrer le type
# localized description:
# fr: Aligner le type au milieu de la carte?
initial: no
styling field:
type: choice
name: textboxes
description: Number of textboxes for chapters and passives. Modify content of textboxes if this has trouble updating after being changed.
# localized caption:
# en: Number of textboxes
# fr: Nombre d'abilités
# localized description:
# fr: Combien d'abilités et/ou de passifs sont sur la carte? (Modifiez le contenu des boites de texte si elles ne se mettent pas à jour de suite.)
choice: one
choice: two
choice: three
choice: four
choice: five
choice: six
choice: seven
initial: four
styling field:
type: text
name: snap chapter to box
description: Sets the chapter icons to the given textbox, for example "1,1,2" puts chapters I and II on Ability 1, and chapter III on Ability 2.
# localized caption:
# fr: Emplacement des chapitres
# localized description:
# fr: Par exemple: "1,1,2" mettra les icones des chapitres I et II sur la première abilité, et l'icone du chapitre III sur la deuxième abilité.
styling field:
type: text
name: chapter spacing percentage
description: Determines the behavior of chapter icons when there is not enough space. 0 clumps them together. 100 spreads them apart as much as possible. Default is 70.
# localized caption:
# fr: Pourcentage d'espacement des chapitres
# localized description:
# fr: Espacer les icones des chapitres le plus possible: 100. Resserrer les icones des chapitres le plus possible: 0. Valeur par défaut: 70.
styling field:
type: text
name: move chapter icons
description: Moves chapter icons down by this many pixels. Use negatives to move up. Formatted as "1,2,3,4,5,6,7,8,9,10"
# localized caption:
# fr: Déplacer les chapitres
# localized description:
# fr: Déplacer les icones des chapitres vers le bas de N pixels. Utilisez des négatifs pour déplacer vers le haut. Format: "1,2,3,4,5,6,7,8,9,10"
styling field:
type: text
name: custom chapter icons
description: The file path of '.png' images used for chapter icons. Dimensions can be anything, but native is 62x62. Write /PATH/NAME.png here. Save images as /PATH/NAME_1.png, /PATH/NAME_2.png, etc...
# localized caption:
# fr: Icones de chapitres personnalisées
# localized description:
# fr: Le chemin d'images '.png' à utiliser comme icones des chapitres. Écrivez /CHEMIN/NOM.png ici. Sauver les images sous /CHEMIN/NOM_1.png, /CHEMIN/NOM_2.png, etc...
styling field:
type: text
name: move separators
description: Moves the gray lines separating abilities down by this many pixels. Use negatives to move up. Formatted as "1,2,3,4,5,6"
# localized caption:
# fr: Déplacer les séparations
# localized description:
# fr: Déplacer les lignes grises entre les abilités vers le bas de N pixels. Utilisez des négatifs pour déplacer vers le haut. Format: "1,2,3,4,5,6"
styling field:
type: text
name: move textbox bottoms
description: Moves the bottom of each textbox down by this many pixels. Use negatives to move up. Formatted as "1,2,3,4,5,6,7"
# localized caption:
# fr: Déplacer le bas des abilités
# localized description:
# fr: Déplacer la limite inférieur des abilités vers le bas de N pixels. Utilisez des négatifs pour déplacer vers le haut. Format: "1,2,3,4,5,6,7"
styling field:
type: choice
name: extended art
description: Should the illustration extend to the edge of the card? Disables the insignia.
# localized caption:
# fr: Illustration étendue
# localized description:
# fr: Étirer l'illustration jusqu'au bord de la carte? Désactive l'insigne.
choice: yes
choice: if land
choice: no
initial: no
styling field:
type: text
name: popout art 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.
# localized caption:
# fr: Coordonée de l'image superposée
# localized description:
# fr: Rajoute un champ d'illustration supplémentaire aux coordonées spécifiées. Formatté ainsi: "gauche,droite,largeur,longueur". Permet à l'illustration de passer devant le cadre de la carte.
styling field:
type: text
name: watermark
description: The name of a '.png' image inside the /magic-watermarks.mse-include/ folder. Dimensions can be anything, but native is 323x323. Alternatively, write 'setsymbol' to use the set symbol instead.
# localized caption:
# fr: Filigrane
# localized description:
# fr: Le chemin d'une image '.png' située dans le dossier /magic-watermarks.mse-include/. Alternativement, écrivez 'setsymbol' pour utiliser le symbole du Set comme filigrane.
styling field:
type: text
name: watermark opacity percentage
description: Set the opacity percentage for watermark. Opaque is 100, transparent is 0. Leave blank to use image opacity.
# localized caption:
# fr: Pourcentage d'opacité du filigrane
# localized description:
# fr: Complètement opaque: 100. Complètement transparent: 0. Laissez vide pour utiliser l'opacité native du filigrane.
styling field:
type: text
name: increase watermark height
description: Heighten the watermark by this many pixels. Use negatives to shrink.
# localized caption:
# fr: Augmenter la hauteur du filigrane
# localized description:
# fr: Augmenter la taille verticale du filigrane de N pixels. Utilisez des négatifs pour diminuer la taille.
styling field:
type: choice
name: legend crown
description: Is the legend crown visible? Special crown disables the land leaf and the insignia.
# localized caption:
# fr: Couronne légendaire
# localized description:
# fr: La couronne légendaire est-elle visible? La couronne spéciale désactive l'insigne.
choice: special
choice: special if legendary
choice: normal
choice: normal if legendary
choice: none
initial: normal if legendary
styling field:
type: choice
name: land leaf
description: Is the land leaf visible? Disabled by the special crown.
# localized caption:
# fr: Feuille de terrain
# localized description:
# fr: La feuille de terrain est-elle visible?
choice: yes
choice: if land
choice: no
initial: if land
styling field:
type: choice
name: insignia
description: Is an insignia visible? Disabled by extended art and special crown.
# localized caption:
# fr: Insigne
# localized description:
# fr: L'insigne est-elle visible? Désactivé par l'illustration étendue et la couronne spéciale.
choice: none
choice: lieutenant
choice: commander
initial: none
styling field:
type: choice
name: symbol
description: Use a symbol next to the card's name?
# localized caption:
# fr: Symbole
# localized description:
# fr: Utiliser un symbole à côté du nom de la carte?
choice: none
choice: 1 triangle
choice: 1 triangle flipped
choice: 2 triangles
choice: compass
choice: land
choice: rising
choice: risen
choice: closed fan
choice: open fan
choice: sun / day
choice: moon / night
choice: eldrazi
choice: brother's war
choice: arena
choice: acorn
choice: swap
choice: tombstone
choice: lesson
choice: multitype
choice: structure
choice: creature
choice: planeswalker
choice: instant
choice: sorcery
choice: artifact
choice: enchantment
choice: custom
initial: none
styling field:
type: choice
name: transformation reminder
description: Use a text field to remind some info of the other side?
# localized caption:
# fr: Rappel de transformation
# localized description:
# fr: Utiliser un champ de texte pour rappeler certaines informations du dos de la carte?
choice: none
choice: short
choice: medium
choice: long
choice: notch
initial: none
styling field:
type: text
name: shrink transformation reminder text
description: Reduces the reminder text's font size by this many points.
# localized caption:
# fr: Rapetisser le text de rappel
# localized description:
# fr: Réduire la taille du text de rappel de N points.
styling field:
type: choice
name: fuse
description: Use a textbox overlapping two cards? Choose the color of the other card. Write the entire text on both cards.
# localized caption:
# fr: Fusion
# localized description:
# fr: Utiliser un champ de texte commun à deux cartes? Choisissez la couleur de l'autre carte. Écrivez l'entièreté du texte sur chaque carte.
choice: none
choice: left, mixed with white
choice: left, mixed with blue
choice: left, mixed with black
choice: left, mixed with red
choice: left, mixed with green
choice: left, mixed with artifact
choice: left, mixed with gold
choice: left, mixed with colorless
choice: left, mixed with purple
choice: right, mixed with white
choice: right, mixed with blue
choice: right, mixed with black
choice: right, mixed with red
choice: right, mixed with green
choice: right, mixed with artifact
choice: right, mixed with gold
choice: right, mixed with colorless
choice: right, mixed with purple
initial: none
styling field:
type: boolean
name: banner
description: Use a text field to write info on the right of the card?
# localized caption:
# fr: Bannière
# localized description:
# fr: Utiliser un champ de texte sur la gauche de la carte?
initial: no
styling field:
type: text
name: alt rarity color
description: Use a custom color for the rarity symbol. Formatted as "R1,G1,B1:R2,G2,B2:R3,G3,B3:R4,G4,B4:br:". 1 and 2 are fill colors, 3 and 4 border colors, br is the border radius. Must end with :
# localized caption:
# fr: Couleur de rareté
# localized description:
# fr: Utiliser une couleur personnalisée pour le symbole de rareté? Format: "R1,G1,B1:R2,G2,B2:R3,G3,B3:R4,G4,B4:br:". 1 et 2 sont les couleurs de remplissage, 3 et 4 sont les couleur de bordure, br est la taille de bordure. Doit finir par :
styling field:
type: boolean
name: inverted common symbol
description: Use the color inverted common rarity symbol, like in Coldsnap?
# localized caption:
# fr: Couleur des courantes inversée
# localized description:
# fr: Utiliser des couleurs inversées pour le symbole de rareté des cartes courantes, comme dans l'extension 'Coldsnap'?
initial: no
styling field:
type: text
name: shrink rarity symbol
description: Shrinks the top, bottom, left, and right edges of the rarity symbol by this many pixels. Use negatives to enlarge. Formatted as "1,2,3,4"
# localized caption:
# fr: Rapetisser la rareté
# localized description:
# fr: Réduire la taille du haut, du bas, de la gauche, et de la droite du symbole de rareté. Utilisez des négatifs pour agrandir. Format: "1,2,3,4"
styling field:
type: choice
name: force left color
description: Use a specified color for the left half of the frame.
# localized caption:
# fr: Forcer la couleur gauche
# localized description:
# fr: Utiliser la couleur spécifiée pour la moitié gauche de la carte.
choice: none
choice: white
choice: blue
choice: black
choice: red
choice: green
choice: artifact
choice: gold
choice: colorless
choice: purple
initial: none
styling field:
type: choice
name: force right color
description: Use a specified color for the right half of the frame.
# localized caption:
# fr: Forcer la couleur droite
# localized description:
# fr: Utiliser la couleur spécifiée pour la moitié droite de la carte.
choice: none
choice: white
choice: blue
choice: black
choice: red
choice: green
choice: artifact
choice: gold
choice: colorless
choice: purple
initial: none
styling field:
type: boolean
name: force hybrid frame
description: Use a hybrid 2-color frame instead of a gold frame even if the casting cost has no hybrid mana?
# localized caption:
# fr: Forcer les couleurs hybrides
# localized description:
# fr: Utiliser un cadre hybride à deux couleurs au lieu d'un cadre doré, même si la carte n'a pas de mana hybride dans son coût de lancement?
initial: yes
styling field:
type: color
name: illustrator text color
description: Use the specified color for the illustrator, copyright, and vorthos text.
# localized caption:
# fr: Couleur du copyright
# localized description:
# fr: Utiliser la couleur spécifiée pour le nom de l'artiste et les lignes de copyright.
choice:
name: black
color: rgb(0,0,0)
choice:
name: white
color: rgb(255,255,255)
choice:
name: use card color
color: rgb(255,254,255)
initial: white
styling field:
type: boolean
name: remove from autocount
description: Remove this card from the automatic card count, to allow for overcounted cards, like in Planeswalker Decks?
# localized caption:
# fr: Retirer du compte
# localized description:
# fr: Ne pas compter cette carte dans la numérotation du Set?
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?
# localized caption:
# fr: Mana de guilde
# localized description:
# fr: Utiliser les symboles de guildes au lieu des symboles moitié/moitié pour le mana hybride?
initial: no
styling field:
type: package choice
name: casting cost mana symbols
description: Mana symbols used for casting cost, name, banner, fuse and transformation reminder.
# localized caption:
# fr: Symboles des coûts
# localized description:
# fr: Les symboles à utiliser dans le coût de lancement, le nom, la bannière, la fusion, et le rappel de transformation.
match: magic-mana-*.mse-symbol-font
initial: magic-mana-genevensis-large.mse-symbol-font
styling field:
type: package choice
name: text box mana symbols
description: Mana symbols used for rule text.
# localized caption:
# fr: Symboles des textes
# localized description:
# fr: Les symboles à utiliser dans le texte de règles.
match: magic-mana-*.mse-symbol-font
initial: magic-mana-genevensis-small.mse-symbol-font
styling field:
type: text
name: name font
description: 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. Hover your mouse over the font file to see it's details, it's Title is it's name.
# localized caption:
# fr: Police du nom
# localized description:
# fr: Format: "nom de la police;taille;couleur;décalage vertical;nom de la police italique". Les 4 derniers sont optionnels. Format couleur: "R,G,B,A". Survolez le fichier de police avec la souris pour voir son titre, qui est son nom.
styling field:
type: text
name: type font
description: 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. Hover your mouse over the font file to see it's details, and write it's Title here.
# localized caption:
# fr: Police du type
# localized description:
# fr: Format: "nom de la police;taille;couleur;décalage vertical;nom de la police italique". Les 4 derniers sont optionnels. Format couleur: "R,G,B,A". Survolez le fichier de police avec la souris pour voir son titre, qui est son nom.
styling field:
type: text
name: text font
description: 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. Hover your mouse over the font file to see it's details, and write it's Title here.
# localized caption:
# fr: Police du texte des règles
# localized description:
# fr: Format: "nom de la police;taille;couleur;décalage vertical;nom de la police italique". Les 4 derniers sont optionnels. Format couleur: "R,G,B,A". Survolez le fichier de police avec la souris pour voir son titre, qui est son nom.
styling field:
type: text
name: PT font
description: 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. Hover your mouse over the font file to see it's details, and write it's Title here.
# localized caption:
# fr: Police de force et endurance
# localized description:
# fr: Format: "nom de la police;taille;couleur;décalage vertical;nom de la police italique". Les 4 derniers sont optionnels. Format couleur: "R,G,B,A". Survolez le fichier de police avec la souris pour voir son titre, qui est son nom.
styling field:
type: text
name: alias font
description: 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. Hover your mouse over the font file to see it's details, and write it's Title here.
# localized caption:
# fr: Police de l'alias
# localized description:
# fr: Format: "nom de la police;taille;couleur;décalage vertical;nom de la police italique". Les 4 derniers sont optionnels. Format couleur: "R,G,B,A". Survolez le fichier de police avec la souris pour voir son titre, qui est son nom.
styling field:
type: text
name: auxiliary font
description: Font used for the transformation reminder, fuse, choice bar and banner. 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.
# localized caption:
# fr: Police auxiliaire
# localized description:
# fr: Police utilisée pour la bannière, la fusion, la barre de choix et le rappel de transformation. Format: "nom de la police;taille;couleur;décalage vertical;nom de la police italique". Les 4 derniers sont optionnels. Format couleur: "R,G,B,A".
styling style:
use guild mana symbols:
render style: both
choice images:
yes: /magic-mana-genevensis-large.mse-symbol-font/mana_guild_wu.png
no: /magic-mana-genevensis-large.mse-symbol-font/mana_bi_wu.png
inverted common symbol:
choice images:
no: { symbol_variation(symbol: set.symbol, variation: "common") }
yes: { symbol_variation(symbol: set.symbol, variation: "invertedcommon") }
############################################################## Card fields
include file: /magic-modules.mse-include/corners/card_fields
card style:
############################# Background
card color:
left: 0
top: 0
width: 750
height: 1046
z index: 0
render style: image
popup style: in place
image: { frame_image() }
############################# Name line
name:
left: { 64 + (if styling.center_name then name_margin() else nameline_left_margin()) }
top: { 55 + name_font_vertical() }
right: { 686 - (if styling.center_name then name_margin() else nameline_right_margin()) }
height: 48
alignment: { if styling.center_name then "center middle shrink-overflow" else "left middle shrink-overflow" }
z index: 42
font:
name: { name_font() }
italic name: { name_font_italic() }
size: { name_font_size() }
color: { name_font_color() }
symbol font:
name: { styling.casting_cost_mana_symbols }
size: { name_font_size() }
casting cost:
right: 687
top: 55
width: { max(60, card_style.casting_cost.content_width) + 10 }
height: 48
alignment: middle right
font:
name: { body_font() }
size: 32
symbol font:
name: { styling.casting_cost_mana_symbols }
size: 32
always symbol: true
z index: 42
alias:
left: 149
top: { 117 + name2_font_vertical() }
width: 452
height: 24
alignment: center middle shrink-overflow
z index: 46
font:
name: { name2_font() }
italic name: { name2_font_italic() }
size: { name2_font_size() }
color: { name2_font_color() }
############################# Image
image:
left: 372
top: 114
width: { if has_extended_art() then 378 else 323 }
height: 799
z index: 10
mask: { "image_" + ( if has_extended_art() then "extended_" else "" ) + ( if has_extended_art() and has_leaf() then "leaf_" else "" ) + "mask.png" }
mainframe image:
left: { popout_left() }
top: { popout_top() }
width: { popout_width() }
height: { popout_height() }
z index: 2000
############################# Card type
type:
left: { 73 + (if styling.center_type then type_margin() else typeline_left_margin()) }
top: { 926 + type_font_vertical() }
right: { 677 - (if styling.center_type then type_margin() else typeline_right_margin()) }
height: 44
alignment: { if styling.center_type then "center middle shrink-overflow" else "left middle shrink-overflow" }
z index: 42
font:
name: { type_font() }
italic name: { type_font_italic() }
size: { type_font_size() }
color: { type_font_color() }
separator color: red
rarity:
left: { 620 - (-chop_rarity_left()) }
width: { 60 - chop_rarity_right() - chop_rarity_left() }
top: { 918 - (-chop_rarity_top()) }
bottom: { 978 - chop_rarity_bot() }
z index: 40
render style: image
choice images:
basic land:
script:
if has_custom_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "c.png"
else if alt_rarity() then alt_symbol()
else symbol_variation(symbol: set.symbol, variation: "basic land")
common:
script:
if has_custom_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "c.png"
else if alt_rarity() then alt_symbol()
else if styling.inverted_common_symbol then symbol_variation(symbol: set.symbol, variation: "invertedcommon")
else symbol_variation(symbol: set.symbol, variation: "common")
uncommon:
script:
if has_custom_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "u.png"
else if alt_rarity() then alt_symbol()
else symbol_variation(symbol: set.symbol, variation: "uncommon")
rare:
script:
if has_custom_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "r.png"
else if alt_rarity() then alt_symbol()
else symbol_variation(symbol: set.symbol, variation: "rare")
mythic rare:
script:
if has_custom_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "m.png"
else if alt_rarity() then alt_symbol()
else symbol_variation(symbol: set.symbol, variation: "mythic rare")
masterpiece:
script:
if has_custom_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "mp.png"
else if alt_rarity() then alt_symbol()
else symbol_variation(symbol: set.symbol, variation: "masterpiece")
special:
script:
if has_custom_rarity() then "/magic-mainframe-extras.mse-include/" + un_png(set.mainframe_rarity_name) + "s.png"
else if alt_rarity() then alt_symbol()
else symbol_variation(symbol: set.symbol, variation: "purple")
############################# Text boxes
level 1 text:
left: 76
top: { (if card.alias != "" then 149 else 123) }
width: 287
height: { textbox_heights()[0] - (-textbox_move1()) }
font:
name: { body_font() }
italic name: { body_font_italic() }
size: { body_font_size() }
color: { body_font_color() }
#scale down to: 20
symbol font:
name: { styling.text_box_mana_symbols }
size: { body_font_size() }
#scale down to: 20
alignment: middle left
z index: 44
line height hard: 1.2
line height line: 1.5
line height soft: 0.9
line height hard max: 1.3
line height line max: 1.6
line height soft max: 0.9
level 2 text:
left: 76
top: { card_style.level_1_text.bottom }
width: 287
height: { if active_abilities() > 1 then textbox_heights()[1] - (-textbox_move2()) else 0 }
font:
name: { body_font() }
italic name: { body_font_italic() }
size: { body_font_size() }
color: { body_font_color() }
#scale down to: 20
symbol font:
name: { styling.text_box_mana_symbols }
size: { body_font_size() }
#scale down to: 20
alignment: middle left
z index: 44
line height hard: 1.2
line height line: 1.5
line height soft: 0.9
line height hard max: 1.3
line height line max: 1.6
line height soft max: 0.9
level 3 text:
left: 76
top: { card_style.level_2_text.bottom }
width: 287
height: { if active_abilities() > 2 then textbox_heights()[2] - (-textbox_move3()) else 0 }
font:
name: { body_font() }
italic name: { body_font_italic() }
size: { body_font_size() }
color: { body_font_color() }
#scale down to: 20
symbol font:
name: { styling.text_box_mana_symbols }
size: { body_font_size() }
#scale down to: 20
alignment: middle left
z index: 44
line height hard: 1.2
line height line: 1.5
line height soft: 0.9
line height hard max: 1.3
line height line max: 1.6
line height soft max: 0.9
level 4 text:
left: 76
top: { card_style.level_3_text.bottom }
width: 287
height: { if active_abilities() > 3 then textbox_heights()[3] - (-textbox_move4()) else 0 }
font:
name: { body_font() }
italic name: { body_font_italic() }
size: { body_font_size() }
color: { body_font_color() }
#scale down to: 20
symbol font:
name: { styling.text_box_mana_symbols }
size: { body_font_size() }
#scale down to: 20
alignment: middle left
z index: 44
line height hard: 1.2
line height line: 1.5
line height soft: 0.9
line height hard max: 1.3
line height line max: 1.6
line height soft max: 0.9
level 5 text:
left: 76
top: { card_style.level_4_text.bottom }
width: 287
height: { if active_abilities() > 4 then textbox_heights()[4] - (-textbox_move5()) else 0 }
font:
name: { body_font() }
italic name: { body_font_italic() }
size: { body_font_size() }
color: { body_font_color() }
#scale down to: 20
symbol font:
name: { styling.text_box_mana_symbols }
size: { body_font_size() }
#scale down to: 20
alignment: middle left
z index: 44
line height hard: 1.2
line height line: 1.5
line height soft: 0.9
line height hard max: 1.3
line height line max: 1.6
line height soft max: 0.9
level 6 text:
left: 76
top: { card_style.level_5_text.bottom }
width: 287
height: { if active_abilities() > 5 then textbox_heights()[5] - (-textbox_move6()) else 0 }
font:
name: { body_font() }
italic name: { body_font_italic() }
size: { body_font_size() }
color: { body_font_color() }
#scale down to: 20
symbol font:
name: { styling.text_box_mana_symbols }
size: { body_font_size() }
#scale down to: 20
alignment: middle left
z index: 44
line height hard: 1.2
line height line: 1.5
line height soft: 0.9
line height hard max: 1.3
line height line max: 1.6
line height soft max: 0.9
level 7 text:
left: 76
top: { card_style.level_6_text.bottom }
width: 287
height: { if active_abilities() > 6 then textbox_heights()[6] - (-textbox_move7()) else 0 }
font:
name: { body_font() }
italic name: { body_font_italic() }
size: { body_font_size() }
color: { body_font_color() }
#scale down to: 20
symbol font:
name: { styling.text_box_mana_symbols }
size: { body_font_size() }
#scale down to: 20
alignment: middle left
z index: 44
line height hard: 1.2
line height line: 1.5
line height soft: 0.9
line height hard max: 1.3
line height line max: 1.6
line height soft max: 0.9
rule text 3:
left: { (if contains(styling.fuse, match: "right") then 750 else 0) - (if length(remove_tags(card.rule_text_3)) > 9 then 22 else 0) - 128 + 36 }
top: { 521 + name3_font_vertical() }
width: { if styling.fuse != "none" then (if length(remove_tags(card.rule_text_3)) > 9 then 228 else 184) else 0 }
height: 54
z index: 160
alignment: center middle shrink-overflow
font:
name: { name3_font() }
italic name: { name3_font_italic() }
size: { name3_font_size() }
color: { name3_font_color() }
scale down to: 12
symbol font:
name: { styling.text_box_mana_symbols }
size: { name3_font_size() }
scale down to: 12
############################# PT
pt:
z index: 46
left: 549
top: { 861 + pt_font_vertical() }
width: 120
height: 56
alignment: center middle shrink-overflow
font:
name: { pt_font() }
italic name: { pt_font_italic() }
size: { pt_font_size() }
color: { pt_font_color() }
scale down to: 12
separator color: red
############################# Copyright stuff
illustrator:
left: 225
top: 1013
width: 300
height: 20
z index: 40
alignment: top center
font:
name: Beleren Small Caps Bold
size: 17
color: { if styling.illustrator_text_color == rgb(255,254,255) then copyright_color() else styling.illustrator_text_color }
############################################################## Extra card fields
extra card field:
type: text
name: card code
save value: false
script:
card_number := if set.automatic_card_numbers and not styling.remove_from_autocount then (card_number_m15() + " ") else ""
if length(card_number) == 4 then card_number := "0" + card_number
if set.automatic_copyright then combined_editor(prefix: card_number, field1: card.copyright, separator1: if card.copyright == "" then "" else " ", field2: card.card_code_text)
else forward_editor(prefix: card_number, field: card.card_code_text)
description: Card number and copyright, the default value can be changed on the 'set info' tab
extra card field:
type: choice
name: transformation symbol
editable: false
save value: false
choice: transformation symbol
extra card field:
type: choice
name: transformation reminder
editable: false
save value: false
choice: transformation reminder
extra card field:
type: text
name: transformation reminder text
save value: true
extra card field:
type: choice
name: transformation reminder pt paste
editable: false
save value: false
choice: transformation reminder pt paste
extra card field:
type: choice
name: alias box
editable: false
save value: false
choice: alias box
extra card field:
type: text
name: ascend
save value: true
script: replace(value, match: " ", replace: "")
extra card field:
type: choice
name: ascend box
editable: false
save value: false
choice: ascend box
extra card field:
type: choice
name: color indicator dot
editable: false
save value: false
choice: color indicator dot
extra card field:
type: choice
name: illustrator brush
editable: false
save value: false
choice: illustrator brush
extra card field:
type: choice
name: illustrator brush 2
editable: false
save value: false
choice: illustrator brush 2
extra card field:
type: text
name: vorthos box
save value: true
default: vorthos_default()
description: Vorthos box of this card, set code and set language, the default value can be changed on the 'set info' tab
extra card field:
type: choice
name: chapter icon 1
editable: false
save value: false
choice: chapter icon 1
extra card field:
type: choice
name: chapter icon 2
editable: false
save value: false
choice: chapter icon 2
extra card field:
type: choice
name: chapter icon 3
editable: false
save value: false
choice: chapter icon 3
extra card field:
type: choice
name: chapter icon 4
editable: false
save value: false
choice: chapter icon 4
extra card field:
type: choice
name: chapter icon 5
editable: false
save value: false
choice: chapter icon 5
extra card field:
type: choice
name: chapter icon 6
editable: false
save value: false
choice: chapter icon 6
extra card field:
type: choice
name: chapter icon 7
editable: false
save value: false
choice: chapter icon 7
extra card field:
type: choice
name: chapter icon 8
editable: false
save value: false
choice: chapter icon 8
extra card field:
type: choice
name: chapter icon 9
editable: false
save value: false
choice: chapter icon 9
extra card field:
type: choice
name: chapter icon 10
editable: false
save value: false
choice: chapter icon 10
extra card field:
type: choice
name: ability separator 1
editable: false
save value: false
choice: ability separator 1
extra card field:
type: choice
name: ability separator 2
editable: false
save value: false
choice: ability separator 2
extra card field:
type: choice
name: ability separator 3
editable: false
save value: false
choice: ability separator 3
extra card field:
type: choice
name: ability separator 4
editable: false
save value: false
choice: ability separator 4
extra card field:
type: choice
name: ability separator 5
editable: false
save value: false
choice: ability separator 5
extra card field:
type: choice
name: ability separator 6
editable: false
save value: false
choice: ability separator 6
extra card field:
type: choice
name: pt box
editable: false
save value: false
choice: pt box
extra card field:
type: choice
name: watermark image
editable: false
save value: false
show statistics: false
choice: watermark image
extra card field:
type: choice
name: crown
editable: false
save value: false
show statistics: false
choice: crown
extra card field:
type: choice
name: leaf
editable: false
save value: false
show statistics: false
choice: leaf
extra card field:
type: choice
name: legend leaf
editable: false
save value: false
show statistics: false
choice: legend leaf
extra card field:
type: choice
name: insignia
editable: false
save value: false
show statistics: false
choice: insignia
extra card field:
type: choice
name: fuse box
editable: false
save value: false
show statistics: false
choice: fuse box
extra card field:
type: color
name: separator
editable: false
save value: false
show statistics: false
script: set.border_color
extra card field:
type: color
name: card color border
editable: false
save value: false
show statistics: false
script: set.border_color
extra card field:
type: color
name: crown border
editable: false
save value: false
show statistics: false
script: set.border_color
extra card field:
type: color
name: leaf border
editable: false
save value: false
show statistics: false
script: set.border_color
extra card field:
type: color
name: legend leaf border
editable: false
save value: false
show statistics: false
script: set.border_color
extra card field:
type: color
name: insignia border
editable: false
save value: false
show statistics: false
script: set.border_color
extra card field:
type: color
name: symbol border
editable: false
save value: false
show statistics: false
script: set.border_color
extra card field:
type: color
name: color indicator dot border
editable: false
save value: false
show statistics: false
script: set.border_color
extra card field:
type: color
name: chapter 1 border
editable: false
save value: false
show statistics: false
script: set.border_color
extra card field:
type: color
name: chapter 2 border
editable: false
save value: false
show statistics: false
script: set.border_color
extra card field:
type: color
name: chapter 3 border
editable: false
save value: false
show statistics: false
script: set.border_color
extra card field:
type: color
name: chapter 4 border
editable: false
save value: false
show statistics: false
script: set.border_color
extra card field:
type: color
name: chapter 5 border
editable: false
save value: false
show statistics: false
script: set.border_color
extra card field:
type: color
name: chapter 6 border
editable: false
save value: false
show statistics: false
script: set.border_color
extra card field:
type: color
name: chapter 7 border
editable: false
save value: false
show statistics: false
script: set.border_color
extra card field:
type: color
name: chapter 8 border
editable: false
save value: false
show statistics: false
script: set.border_color
extra card field:
type: color
name: chapter 9 border
editable: false
save value: false
show statistics: false
script: set.border_color
extra card field:
type: color
name: chapter 10 border
editable: false
save value: false
show statistics: false
script: set.border_color
extra card field:
type: color
name: transformation reminder border
editable: false
save value: false
show statistics: false
script: set.border_color
extra card field:
type: color
name: transformation reminder pt paste border
editable: false
save value: false
show statistics: false
script: set.border_color
extra card field:
type: color
name: alias box border
editable: false
save value: false
show statistics: false
script: set.border_color
extra card field:
type: color
name: ascend box border
editable: false
save value: false
show statistics: false
script: set.border_color
extra card field:
type: color
name: pt border
editable: false
save value: false
show statistics: false
script: set.border_color
extra card field:
type: color
name: fuse box border
editable: false
save value: false
show statistics: false
script: set.border_color
extra card field:
type: choice
name: pride pin
choice: none
choice: lesbian
choice: gay
choice: bi
choice: trans
choice: pan
choice: ace
choice: aro
choice: nonbinary
choice: agender
choice: genderfluid
choice: cis
choice: straight
choice: rainbow
initial: none
save value: true
editable: true
extra card style:
card code:
left: 58
top: 1016
right: { 328 - ( card_style.illustrator.content_width / 2 ) }
height: 20
z index: 40
alignment: top left shrink-overflow
font:
name: Beleren Small Caps Bold
size: 15
color: { if styling.illustrator_text_color == rgb(255,254,255) then copyright_color() else styling.illustrator_text_color }
transformation symbol:
left: 35
top: 45
height: 78
width: 73
z index: 8
visible: { has_symbol() }
render style: image
image: { symbol_image() }
transformation reminder:
left: { if styling.transformation_reminder == "notch" then 10 else 0 }
top: { if styling.transformation_reminder == "notch" then 845 else 834 }
height: { if styling.transformation_reminder == "notch" then 56 else 101 }
width: { if styling.transformation_reminder == "notch" then 53 else if styling.transformation_reminder == "long" then 506 else 400 }
z index: 22
visible: { styling.transformation_reminder != "none" }
render style: image
image: { reminder_image() }
transformation reminder text:
left: { if styling.transformation_reminder == "notch" then 55 else 6 }
top: { (if styling.transformation_reminder == "notch" then 858 else 857) + name3_font_vertical() }
height: { if styling.transformation_reminder == "notch" then 30 else 60 }
width: { if styling.transformation_reminder == "notch" then 75 else if styling.transformation_reminder == "short" then 298 else if styling.transformation_reminder == "medium" then 356 else if styling.transformation_reminder == "long" then 462 else 0 }
z index: 46
font:
name: { if styling.auxiliary_font == "" then (if styling.transformation_reminder == "notch" then "ModMatrix" else "Beleren Bold") else name3_font() }
italic name: { if styling.auxiliary_font == "" then (if styling.transformation_reminder == "notch" then "ModMatrix" else "Beleren Bold") else name3_font_italic() }
size: { name3_font_size() - (if styling.transformation_reminder == "notch" then 3 else 0) - shrink_reminder() }
color: { name3_font_color() }
symbol font:
name: { styling.casting_cost_mana_symbols }
size: { name3_font_size() - (if styling.transformation_reminder == "notch" then 3 else 0) - shrink_reminder() }
alignment: { if styling.transformation_reminder == "notch" then "left middle" else "center middle shrink-overflow" }
transformation reminder pt paste:
left: 496
top: 867
height: 42
width: 38
z index: 26
visible: { styling.transformation_reminder == "long" and card.pt != ""}
render style: image
image: { image("remindersagalongptpaste", side: "right") }
alias box:
left: 110
top: 112
height: 47
width: 530
z index: 12
visible: { card.alias != "" }
render style: image
image: { image("alias", side: "both") }
ascend:
left: 682
top: { 147 + name3_font_vertical() }
width: { if styling.banner then 50 else 0 }
height: 754
direction: vertical
z index: 42
alignment: center middle
font:
name: { name3_font() }
italic name: { name3_font_italic() }
size: { name3_font_size() - 12 }
color: { name3_font_color() }
scale down to: 12
symbol font:
name: { styling.casting_cost_mana_symbols }
size: { name3_font_size() - 12 }
scale down to: 12
ascend box:
left: 673
top: 117
height: 792
width: 68
z index: 28
visible: { styling.banner }
render style: image
image: { flip_horizontal(image("ascendsaga", side: "right")) }
color indicator dot:
left: 66
top: 927
width: 42
height: 42
z index: 40
visible: { has_identity() }
render style: image
image: { color_indicator_dot_image() }
illustrator brush:
left: { 334 - ( card_style.illustrator.content_width / 2 ) }
top: 1017
width: 36
height: 18
z index: 40
render style: image
image: { illustrator_brush_image("1") }
illustrator brush 2:
left: { 380 - ( -card_style.illustrator.content_width / 2 ) }
top: 1017
width: 36
height: 18
z index: 40
render style: image
image: { illustrator_brush_image("2") }
vorthos box:
left: { 422 - ( -card_style.illustrator.content_width / 2 ) }
right: 692
top: 1016
height: 20
z index: 40
alignment: top right shrink-overflow
font:
name: Beleren Small Caps Bold
size: 15
color: { if styling.illustrator_text_color == rgb(255,254,255) then copyright_color() else styling.illustrator_text_color }
pt box:
left: 524
top: 852
width: 189
height: 75
z index: 24
visible: { card.pt != "" }
render style: image
image: { pt_image() }
chapter icon 1:
left: 8
top: { chapter_top(0) - (-chapter_move1()) }
width: 62
height: 62
z index: 24
render style: image
image: { chapter_image(1) }
chapter icon 2:
visible: { length(split_comma(styling.snap_chapter_to_box)) > 1 }
left: 8
top: { chapter_top(1) - (-chapter_move2()) }
width: 62
height: 62
z index: 26
render style: image
image: { chapter_image(2) }
chapter icon 3:
visible: { length(split_comma(styling.snap_chapter_to_box)) > 2 }
left: 8
top: { chapter_top(2) - (-chapter_move3()) }
width: 62
height: 62
z index: 28
render style: image
image: { chapter_image(3) }
chapter icon 4:
visible: { length(split_comma(styling.snap_chapter_to_box)) > 3 }
left: 8
top: { chapter_top(3) - (-chapter_move4()) }
width: 62
height: 62
z index: 30
render style: image
image: { chapter_image(4) }
chapter icon 5:
visible: { length(split_comma(styling.snap_chapter_to_box)) > 4 }
left: 8
top: { chapter_top(4) - (-chapter_move5()) }
width: 62
height: 62
z index: 32
render style: image
image: { chapter_image(5) }
chapter icon 6:
visible: { length(split_comma(styling.snap_chapter_to_box)) > 5 }
left: 8
top: { chapter_top(5) - (-chapter_move6()) }
width: 62
height: 62
z index: 34
render style: image
image: { chapter_image(6) }
chapter icon 7:
visible: { length(split_comma(styling.snap_chapter_to_box)) > 6 }
left: 8
top: { chapter_top(6) - (-chapter_move7()) }
width: 62
height: 62
z index: 36
render style: image
image: { chapter_image(7) }
chapter icon 8:
visible: { length(split_comma(styling.snap_chapter_to_box)) > 7 }
left: 8
top: { chapter_top(7) - (-chapter_move8()) }
width: 62
height: 62
z index: 38
render style: image
image: { chapter_image(8) }
chapter icon 9:
visible: { length(split_comma(styling.snap_chapter_to_box)) > 8 }
left: 8
top: { chapter_top(8) - (-chapter_move9()) }
width: 62
height: 62
z index: 40
render style: image
image: { chapter_image(9) }
chapter icon 10:
visible: { length(split_comma(styling.snap_chapter_to_box)) > 9 }
left: 8
top: { chapter_top(9) - (-chapter_move10()) }
width: 62
height: 62
z index: 42
render style: image
image: { chapter_image(10) }
ability separator 1:
left: 97
top: { hack_to_force_update := card_style.level_2_text.content_width; card_style.level_2_text.top - (-separator_move1()) }
width: 239
height: 2
z index: 22
visible: { active_abilities() > 1 }
render style: image
image: ability_separator.png
ability separator 2:
left: 97
top: { hack_to_force_update := card_style.level_3_text.content_width; card_style.level_3_text.top - (-separator_move2()) }
width: 239
height: 2
z index: 22
visible: { active_abilities() > 2 }
render style: image
image: ability_separator.png
ability separator 3:
left: 97
top: { hack_to_force_update := card_style.level_4_text.content_width; card_style.level_4_text.top - (-separator_move3()) }
width: 239
height: 2
z index: 22
visible: { active_abilities() > 3 }
render style: image
image: ability_separator.png
ability separator 4:
left: 97
top: { hack_to_force_update := card_style.level_5_text.content_width; card_style.level_5_text.top - (-separator_move4()) }
width: 239
height: 2
z index: 22
visible: { active_abilities() > 4 }
render style: image
image: ability_separator.png
ability separator 5:
left: 97
top: { hack_to_force_update := card_style.level_6_text.content_width; card_style.level_6_text.top - (-separator_move5()) }
width: 239
height: 2
z index: 22
visible: { active_abilities() > 5 }
render style: image
image: ability_separator.png
ability separator 6:
left: 97
top: { hack_to_force_update := card_style.level_7_text.content_width; card_style.level_7_text.top - (-separator_move6()) }
width: 239
height: 2
z index: 22
visible: { active_abilities() > 6 }
render style: image
image: ability_separator.png
watermark image:
left: 55
top: { 513 - to_int(watermark_height()/2) }
width: 323
height: { watermark_height() }
z index: 2
render style: image
image: { opacity_watermark_image() }
mask: { crop("watermark_mask.png", width: 323, height: watermark_height(), offset_x: 0, offset_y: 400 - to_int(watermark_height()/2)) }
crown:
left: 0
top: 0
width: 750
height: 1046
z index: 2
visible: { has_crown() or has_special_crown() }
render style: image
image: { crown_image() }
leaf:
left: 0
top: 0
width: 750
height: 1046
z index: 4
visible: { has_leaf() }
render style: image
image: { leaf_image() }
legend leaf:
left: 0
top: 0
width: 750
height: 1046
z index: 6
visible: { has_crown() and has_leaf() }
render style: image
image: { legend_leaf_image() }
insignia:
left: 0
top: 181
width: 750
height: 66
z index: 6
visible: { not has_extended_art() and not has_special_crown() and styling.insignia != "none" }
render style: image
image: { insignia_image() }
fuse box:
left: { stylesheet.card_style.rule_text_3.left - 36 }
top: 501
height: 94
width: { stylesheet.card_style.rule_text_3.width + 72 }
z index: 150
visible: { styling.fuse != "none" }
render style: image
image: { fuse_image() }
separator:
left: 370
top: 114
width: 10
height: 799
z index: 11
mask: separator_mask.png
card color border:
visible: { set.border_color != rgb(0,0,0) }
left: 0
top: 0
width: 750
height: 1046
z index: 1
mask: { border((if has_extended_art() then "puma" else "") + "saga") }
crown border:
visible: { set.border_color != rgb(0,0,0) and (has_crown() or has_special_crown()) }
left: 0
top: 0
width: 750
height: 1046
z index: 3
mask: { border("crown" + (if has_special_crown() then "special" else "")) }
leaf border:
visible: { set.border_color != rgb(0,0,0) and has_leaf() }
left: 0
top: 0
width: 750
height: 1046
z index: 5
mask: { border("sagaleaf") }
legend leaf border:
visible: { set.border_color != rgb(0,0,0) and has_crown() and has_leaf() }
left: 0
top: 0
width: 750
height: 1046
z index: 7
mask: { border("legendleaf") }
insignia border:
visible: { set.border_color != rgb(0,0,0) and styling.insignia != "none" and not has_extended_art() and not has_special_crown() }
left: 0
top: 181
width: 750
height: 66
z index: 7
mask: { border("insignia" + styling.insignia) }
symbol border:
visible: { set.border_color != rgb(0,0,0) and has_symbol() }
left: 35
top: 45
height: 78
width: 73
z index: 9
mask: { border("symboltomb") }
color indicator dot border:
visible: { set.border_color != rgb(0,0,0) and has_identity() }
left: 66
top: 927
width: 42
height: 42
z index: 41
mask: { border("identity") }
transformation reminder border:
visible: { set.border_color != rgb(0,0,0) and styling.transformation_reminder != "none" }
left: { if styling.transformation_reminder == "notch" then 10 else 0 }
top: { if styling.transformation_reminder == "notch" then 845 else 834 }
height: { if styling.transformation_reminder == "notch" then 56 else 101 }
width: { if styling.transformation_reminder == "notch" then 53 else if styling.transformation_reminder == "long" then 506 else 400 }
z index: 23
mask: { if styling.transformation_reminder == "notch" then border("remindernotchleft") else border("remindersaga" + ( if has_leaf() then "leaf" else "" ) + styling.transformation_reminder) }
transformation reminder pt paste border:
visible: { set.border_color != rgb(0,0,0) and styling.transformation_reminder == "long" and card.pt != "" }
left: 496
top: 867
height: 42
width: 38
z index: 27
mask: { border("remindersagalongptpaste") }
chapter 1 border:
visible: { set.border_color != rgb(0,0,0) and not contains(styling.custom_chapter_icons, match: ".png") }
left: 8
top: { chapter_top(0) - (-chapter_move1())}
width: 62
height: 62
z index: 25
mask: { border("chap1") }
chapter 2 border:
visible: { set.border_color != rgb(0,0,0) and length(split_comma(styling.snap_chapter_to_box)) > 1 and not contains(styling.custom_chapter_icons, match: ".png") }
left: 8
top: { chapter_top(1) - (-chapter_move2()) }
width: 62
height: 62
z index: 27
mask: { border("chap2") }
chapter 3 border:
visible: { set.border_color != rgb(0,0,0) and length(split_comma(styling.snap_chapter_to_box)) > 2 and not contains(styling.custom_chapter_icons, match: ".png") }
left: 8
top: { chapter_top(2) - (-chapter_move3()) }
width: 62
height: 62
z index: 29
mask: { border("chap3") }
chapter 4 border:
visible: { set.border_color != rgb(0,0,0) and length(split_comma(styling.snap_chapter_to_box)) > 3 and not contains(styling.custom_chapter_icons, match: ".png") }
left: 8
top: { chapter_top(3) - (-chapter_move4()) }
width: 62
height: 62
z index: 31
mask: { border("chap4") }
chapter 5 border:
visible: { set.border_color != rgb(0,0,0) and length(split_comma(styling.snap_chapter_to_box)) > 4 and not contains(styling.custom_chapter_icons, match: ".png") }
left: 8
top: { chapter_top(4) - (-chapter_move5()) }
width: 62
height: 62
z index: 33
mask: { border("chap5") }
chapter 6 border:
visible: { set.border_color != rgb(0,0,0) and length(split_comma(styling.snap_chapter_to_box)) > 5 and not contains(styling.custom_chapter_icons, match: ".png") }
left: 8
top: { chapter_top(5) - (-chapter_move6()) }
width: 62
height: 62
z index: 35
mask: { border("chap6") }
chapter 7 border:
visible: { set.border_color != rgb(0,0,0) and length(split_comma(styling.snap_chapter_to_box)) > 6 and not contains(styling.custom_chapter_icons, match: ".png") }
left: 8
top: { chapter_top(6) - (-chapter_move7()) }
width: 62
height: 62
z index: 37
mask: { border("chap7") }
chapter 8 border:
visible: { set.border_color != rgb(0,0,0) and length(split_comma(styling.snap_chapter_to_box)) > 7 and not contains(styling.custom_chapter_icons, match: ".png") }
left: 8
top: { chapter_top(7) - (-chapter_move8()) }
width: 62
height: 62
z index: 39
mask: { border("chap8") }
chapter 9 border:
visible: { set.border_color != rgb(0,0,0) and length(split_comma(styling.snap_chapter_to_box)) > 8 and not contains(styling.custom_chapter_icons, match: ".png") }
left: 8
top: { chapter_top(8) - (-chapter_move9()) }
width: 62
height: 62
z index: 41
mask: { border("chap9") }
chapter 10 border:
visible: { set.border_color != rgb(0,0,0) and length(split_comma(styling.snap_chapter_to_box)) > 9 and not contains(styling.custom_chapter_icons, match: ".png") }
left: 8
top: { chapter_top(9) - (-chapter_move10()) }
width: 62
height: 62
z index: 43
mask: { border("chap10") }
alias box border:
visible: { set.border_color != rgb(0,0,0) and card.alias != "" }
left: 110
top: 112
height: 47
width: 530
z index: 13
mask: { border("alias") }
ascend box border:
visible: { set.border_color != rgb(0,0,0) and styling.banner }
left: 673
top: 117
height: 792
width: 68
z index: 29
mask: { flip_horizontal(border("ascendsaga")) }
pt border:
visible: { set.border_color != rgb(0,0,0) and card.pt != "" }
left: 524
top: 852
width: 189
height: 75
z index: 25
mask: { border(( if has_extended_art() then "puma" else "" ) + "sagapt") }
fuse box border:
visible: { set.border_color != rgb(0,0,0) and styling.fuse != "none" }
left: { stylesheet.card_style.rule_text_3.left - 36 }
top: 501
height: 94
width: { stylesheet.card_style.rule_text_3.width + 72 }
z index: 151
mask: { border("fuse" + fuse_image_size()) }
pride pin:
left: 664
top: 50
width: 41
height: 63
z index: 8
render style: image
popup style: in place
image: { if input == "none" then "" else "/magic-genevensis-00-main.mse-style/pride/" + input + ".png" }
mask: /magic-genevensis-00-main.mse-style/pride_mask.png