Files
magic-set-editor-fork/data/magic-genevensis-00-main.mse-style/style

2649 lines
91 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 Main
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-modules.mse-include
version: 2024-10-01
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
card width: 750
card height: 1046
card dpi: 300
############################################################## Extra scripts
init script:
card_shape := { "normal" }
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: {28},
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: "")
chop_top := { clamp((to_int(pull_comma_array(styling.chop_rule_textbox, cell:0, end:0, default:0)) or else 0), minimum: -500, maximum: 500) }
chop_bottom := { clamp((to_int(pull_comma_array(styling.chop_rule_textbox, cell:1, end:0, default:0)) or else 0), minimum: -500, maximum: 500) }
chop_right := { clamp((to_int(pull_comma_array(styling.chop_rule_textbox, cell:2, end:0, default:0)) or else 0), minimum: -500, maximum: 500) }
chop_flavor_top := { clamp((to_int(pull_comma_array(styling.chop_flavor_textbox, cell:0, end:0, default:0)) or else 0), minimum: -500, maximum: 500) }
chop_flavor_bottom := { clamp((to_int(pull_comma_array(styling.chop_flavor_textbox, cell:1, end:0, default:0)) or else 0), minimum: -500, maximum: 500) }
chop_flavor_right := { clamp((to_int(pull_comma_array(styling.chop_flavor_textbox, cell:2, end:0, default:0)) or else 0), minimum: -500, maximum: 500) }
rule_text_width :=
{
604 -
chop_right()
}
rule_text_top :=
{
661 +
chop_top() +
(if styling.prototype then 94 else 0)
}
rule_text_bottom :=
{
953 -
chop_bottom() -
(if styling.choice_bar != "none" then 52 else if styling.transformation_reminder != "none" and styling.transformation_reminder != "notch" then 14 else 0) -
(if remove_tags(card.flavor_text) != "" then (12 + card_style.flavor_text.content_lines*37) else 0)
}
flavor_text_top :=
{
rule_text_bottom() +
chop_flavor_top()
}
flavor_text_width :=
{
604 -
chop_flavor_right() -
(if styling.choice_bar != "none" and card.pt != "" then 134 else 0)
}
flavor_text_bottom :=
{
970 -
chop_flavor_bottom() -
(if styling.choice_bar != "none" then 46 else 0)
}
flavor_text_padding_bottom :=
{
if styling.choice_bar != "none" then 16
else if card.pt != "" or (styling.transformation_reminder != "none" and styling.transformation_reminder != "notch") then 31
else 18
}
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) }
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 }
split_comma := split_text@(match: " *, *")
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
}
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
}
color_to_base_prefix_2 :=
{
initial_prefix :=
(if contains(card.casting_cost_2, match: "P") then "s" else "") +
(if chosen(choice: "white", card.card_color_2) or contains(card.casting_cost_2, match: "W") then "w" else "") +
(if chosen(choice: "blue", card.card_color_2) or contains(card.casting_cost_2, match: "U") then "u" else "") +
(if chosen(choice: "black", card.card_color_2) or contains(card.casting_cost_2, match: "B") then "b" else "") +
(if chosen(choice: "red", card.card_color_2) or contains(card.casting_cost_2, match: "R") then "r" else "") +
(if chosen(choice: "green", card.card_color_2) or contains(card.casting_cost_2, match: "G") then "g" else "")
ordered_prefix := proper_order(initial_prefix)
if chosen(choice: "reversed", card.card_color_2) then reverse(ordered_prefix)
else ordered_prefix
}
color_to_unforced_prefix_2 :=
{
prefix := color_to_base_prefix_2()
if chosen(choice: "artifact", card.card_color_2) then "a"
else if length(prefix) > 2 then "m"
else if chosen(choice: "multicolor", card.card_color_2) and not styling.force_prototype_hybrid_frame then "m"
else if length(prefix) == 0 then (if chosen(choice: "multicolor", card.card_color_2) then "m" else "c" )
else prefix
}
left_forced_prefix_2 :=
{
if chosen(choice: "white", styling.force_prototype_left_color) then "w"
else if chosen(choice: "blue", styling.force_prototype_left_color) then "u"
else if chosen(choice: "black", styling.force_prototype_left_color) then "b"
else if chosen(choice: "red", styling.force_prototype_left_color) then "r"
else if chosen(choice: "green", styling.force_prototype_left_color) then "g"
else if chosen(choice: "artifact", styling.force_prototype_left_color) then "a"
else if chosen(choice: "gold", styling.force_prototype_left_color) then "m"
else if chosen(choice: "colorless", styling.force_prototype_left_color) then "c"
else if chosen(choice: "purple", styling.force_prototype_left_color) then "s"
else ""
}
right_forced_prefix_2 :=
{
if chosen(choice: "white", styling.force_prototype_right_color) then "w"
else if chosen(choice: "blue", styling.force_prototype_right_color) then "u"
else if chosen(choice: "black", styling.force_prototype_right_color) then "b"
else if chosen(choice: "red", styling.force_prototype_right_color) then "r"
else if chosen(choice: "green", styling.force_prototype_right_color) then "g"
else if chosen(choice: "artifact", styling.force_prototype_right_color) then "a"
else if chosen(choice: "gold", styling.force_prototype_right_color) then "m"
else if chosen(choice: "colorless", styling.force_prototype_right_color) then "c"
else if chosen(choice: "purple", styling.force_prototype_right_color) then "s"
else ""
}
color_to_prefix_2 :=
{
unforced_prefix := color_to_unforced_prefix_2()
left_forced := left_forced_prefix_2()
right_forced := right_forced_prefix_2()
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"
}
image_2 :=
{
"/magic-genevensis-00-main.mse-style/elements/" +
input + "/" +
( if side == "left" then color_to_prefix_2().0 else if side == "right" then reverse(color_to_prefix_2()).0 else color_to_prefix_2() ) +
input + ".png"
}
frame_image :=
{
name := ( if has_extended_art() then "puma" else "" ) + "card"
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"
]
current_image_mask :=
{
"image mask/" + (if has_extended_art() then (if has_leaf() then "leaf" else "noleaf") else "bordered") + ".png"
}
current_textbox_mask :=
{
transformation := if styling.choice_bar != "none" then (if styling.transformation_reminder == "notch" then "choice_notch" else "choice_nonotch") else styling.transformation_reminder
pt := if card.pt != "" then "_pt_" else "_nopt_"
prototype := if styling.prototype then "prototype" else "noprototype"
"textbox mask/" + transformation + pt + prototype + ".png"
}
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
}
image_left := { if has_extended_art() then 0 else 55 }
image_width := { if has_extended_art() then 750 else 640 }
symbol_image :=
{
name := symbol_map[styling.symbol] or else ""
image(name, side: "left")
}
reminder_image :=
{
if styling.transformation_reminder == "notch" and card.pt == "" and styling.choice_bar == "none" then image("remindernotchrightlow", side: "right")
else if styling.transformation_reminder == "notch" then image("remindernotchright", side: "right")
else image("reminder" + styling.transformation_reminder, side: "both")
}
reminder_border :=
{
if styling.transformation_reminder == "notch" and card.pt == "" and styling.choice_bar == "none" then border("remindernotchrightlow")
else if styling.transformation_reminder == "notch" then border("remindernotchright")
else border("reminder" + styling.transformation_reminder)
}
pt_image :=
{
name := "pt" + if styling.choice_bar != "none" then "choice" else ""
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-mainframe-extras.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))
}
watermark_left := { 219 + (if styling.choice_bar != "none" then 28 else 0) + (if styling.prototype then 47 else 0) }
watermark_top := { if styling.prototype then 747 else 653 }
watermark_size := { 312 - (if styling.choice_bar != "none" then 56 else 0) - (if styling.prototype then 94 else 0) }
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 := "leaf"
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)
}
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"
}
choice_bar_image :=
{
name := "choicebar"
image(name, side: "both")
}
choice_bar_custom_images :=
{
custom_images := split_text(match: ",", styling.choice_bar_custom_images)
count := length(custom_images)-1
if count > 6 then count := 6
for x from 0 to count do
(
image := trim(custom_images[x])
if contains(match: ".png", image) then [image] else []
)
}
choice_bar_choice_count :=
{
if styling.choice_bar == "none" then 0
else if styling.choice_bar == "colors" then 5
else if styling.choice_bar == "colors (with colorless)" then 6
else if styling.choice_bar == "colors (with purple)" then 6
else if styling.choice_bar == "colors (with purple and colorless)" then 7
else if contains(match: "custom", styling.choice_bar) then length(choice_bar_custom_images())
else 0
}
split_hard_line := replace@(match: "<soft-line>.*?</soft-line>" replace: "") + split_text@(match: "\\n")
dice_match := match@(match: "^(<b>)?([0-9]+ ?([—–-] ?[0-9]+)?|[0-9]+ ?\\+|[Ee]lse|[Oo]ther) ?(</b>)? ?[|]")
highlight_paragraphs :=
{
desired := split_text(styling.paragraph_highlights, match: ",")
desired_count := length(desired) - 1
desired_numbers := for y from 0 to desired_count do [(to_int(desired[y]) or else 0) - 1]
paragraphs := split_hard_line(card.rule_text)
count := length(paragraphs) - 1
for x from 0 to count do (
highlighted := false
for y from 0 to desired_count do (if desired_numbers[y] == x then highlighted := true)
[if highlighted then 1 else 0])
}
dice_paragraphs :=
{
paragraphs := split_hard_line(card.rule_text)
count := length(paragraphs) - 1
all := for x from 0 to count do [if dice_match(paragraphs[x]) then 1 else 0]
previous := all[0]
alternate := [all[0]] + (for x from 1 to count do [if previous == 0 and all[x] == 1 then previous := 1 else previous := 0])
alternate
}
highlight_paragraph_index :=
{
paragraphs := if styling.paragraph_highlights == "" then dice_paragraphs() else highlight_paragraphs()
count := if paragraphs == nil then -1 else length(paragraphs) - 1
index := -1
accumulator := 0
for x from 0 to count do (
accumulator := accumulator + paragraphs[x]
if accumulator == input and index == -1 then index := x
accumulator )
index
}
highlight_top :=
{
if input == 0 then 653 else (
count := length(card_style.rule_text.layout.paragraphs) - 1
if input > count and remove_tags(card.flavor_text) == "" then 972 else (
previous := card_style.rule_text.layout.paragraphs[input-1] or else nil
current := card_style.rule_text.layout.paragraphs[input] or else nil
bottom := if previous == nil then 0 else to_int(previous.bottom)
top := if current == nil then rule_text_bottom()-rule_text_top() else to_int(current.top)
sum := bottom + top
if sum mod 2 == 1 then sum := sum - 1
to_int(card_style.rule_text.top) + (sum)/2
))
}
highlight_height :=
{
top := highlight_top(input)
bottom := highlight_top(input+1)
height := bottom - top
if input == length(card_style.rule_text.layout.paragraphs) - 1 then height := height + 4
if height < 0 then 0 else if height > 400 then 400 else height
}
prototype_width_increase :=
{
content_width := max(card_style.casting_cost_2.content_width, card_style.pt_2.content_width) - 6
clamp(content_width, minimum:65, maximum: 165)
}
crop_safe :=
{
if left < 0
or top < 0
or width <= 0
or height <= 0
or left + width > 750
or top + height > 1046
then ""
else crop(input, offset_x: left, offset_y: top, width: width, height: height)
}
clamp :=
{
if input < minimum then minimum
else if input > maximum then maximum
else input
}
############################################################## 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: 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: center rule text
description: When should rule text be centered?
# localized caption:
# fr: Centrer le texte de règles
# localized description:
# fr: Aligner le texte de règles au milieu de la carte?
choice: always
choice: three lines or less
choice: two lines or less
choice: one line
choice: never
initial: two lines or less
styling field:
type: text
name: chop rule textbox
description: Chops the top, bottom, and right edges of the rule textbox by this many pixels. Formatted as "1,2,3"
# localized caption:
# fr: Tronquer le texte de règles
# localized description:
# fr: Réduire la taille du haut, du bas, et de la droite de la zone du texte de règles de N pixels. Format: "1,2,3"
styling field:
type: text
name: paragraph highlights
description: Which paragraphs should be highlighted? For example, write "1,4" to highlight the first and fourth paragraphs. Write "0" to highlight nothing. Leave blank to highlight dice rolls.
# localized caption:
# fr: Surligner les paragraphes
# localized description:
# fr: Quels paragraphes surligner? Par exemple, écrivez "1,4" pour surligner le premier et le quatrième paragraphes. Ecrivez "0" pour ne rien surligner. Laissez vide pour surligner les jets de dés.
styling field:
type: text
name: chop flavor textbox
description: Chops the top, bottom, and right edges of the flavor textbox by this many pixels. Formatted as "1,2,3"
# localized caption:
# fr: Tronquer le texte d'ambiance
# localized description:
# fr: Réduire la taille du haut, du bas, et de la droite de la zone du texte d'ambiance de N pixels. Format: "1,2,3"
styling field:
type: choice
name: center flavor text
description: When should flavor text be centered?
# localized caption:
# fr: Centrer le texte d'ambiance
# localized description:
# fr: Aligner le texte d'ambiance au milieu de la carte?
choice: always
choice: one line
choice: never
initial: always
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'aux bords 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-mainframe-extras.mse-include/ folder. Dimensions can be anything, but native is 312x312. 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-mainframe-extras.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: 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 left of the card?
# localized caption:
# fr: Bannière
# localized description:
# fr: Utiliser un champ de texte vertical sur la gauche de la carte?
initial: no
styling field:
type: boolean
name: prototype
description: Use the prototype subframe?
# localized caption:
# fr: Prototype
# localized description:
# fr: Utiliser un champ pour l'abilité Prototype?
initial: no
styling field:
type: choice
name: force prototype left color
description: Use a specified color for the left half of the prototype subframe?
# localized caption:
# fr: Forcer la couleur gauche du prototype
# localized description:
# fr: Utiliser la couleur spécifiée pour la moitié gauche du prototype.
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 prototype right color
description: Use a specified color for the right half of the prototype subframe?
# localized caption:
# fr: Forcer la couleur droite du prototype
# localized description:
# fr: Utiliser la couleur spécifiée pour la moitié droite du prototype.
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 prototype hybrid frame
description: Use a hybrid 2-color prototype subframe instead of a gold subframe even if the casting cost has no hybrid mana?
# localized caption:
# fr: Forcer les couleurs hybrides sur le prototype
# localized description:
# fr: Utiliser un cadre hybride à deux couleurs au lieu d'un cadre doré, même si le prototype n'a pas de mana hybride dans son coût de lancement?
initial: yes
styling field:
type: choice
name: choice bar
description: Use a box with choices at the bottom, like on the card Cryptic Spires?
# localized caption:
# fr: Barre de choix
# localized description:
# fr: Utiliser une barre de choix, comme sur la carte 'Tours cryptiques'?
choice: none
choice: colors
choice: colors (with colorless)
choice: colors (with purple)
choice: colors (with purple and colorless)
choice: text
choice: text (centered)
choice: custom
choice: custom (stretched)
initial: none
styling field:
type: text
name: choice bar custom images
description: The file path of up to seven '.png' images used for choices. Dimensions can be anything, but native is 50x50. Formatted as "image1.png, image2.png, etc..."
# localized caption:
# fr: Images de la barre de choix
# localized description:
# fr: Les chemins de jusqu'à sept images '.png' à utiliser dans la barre de choix. Format: "image1.png, image2.png, etc..."
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 and flavor text.
# localized caption:
# fr: Symboles des textes
# localized description:
# fr: Les symboles à utiliser dans le texte de règles, et le texte d'ambiance.
match: magic-mana-*.mse-symbol-font
initial: magic-mana-genevensis-small.mse-symbol-font
styling field:
type: choice
name: tap symbol
description: What tap and untap symbols should be used on cards?
initial: modern
choice: modern
choice: old
choice: diagonal T
styling field:
type: 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 field:
# type: boolean
# name: foil overlay
# description: Should there be a foil overlay applied?
## localized caption:
## fr: Brillant
## localized description:
## fr: Appliquer un revêtement brillant sur la carte?
# initial: no
styling style:
center rule text:
render style: both
choice images:
always: /magic.mse-game/icons/center-all-text.png
three lines or less: /magic-genevensis-00-main.mse-style/center-3lines-text.png
two lines or less: /magic-genevensis-00-main.mse-style/center-2lines-text.png
one line: /magic-genevensis-00-main.mse-style/center-1line-text.png
never: /magic.mse-game/icons/center-no-text.png
center flavor text:
render style: both
choice images:
always: /magic.mse-game/icons/center-all-text.png
one line: /magic-genevensis-00-main.mse-style/center-1line-text.png
never: /magic.mse-game/icons/center-no-text.png
#symbol:
# render style: both
# choice images:
# 1 triangle: { "/magic-genevensis-00-main.mse-style/elements/symbol1triangle/csymbol1triangle.png" }
# 2 triangles: { "/magic-genevensis-00-main.mse-style/elements/symbol2triangle/csymbol2triangle.png" }
# compass: { "/magic-genevensis-00-main.mse-style/elements/symbolcompass/csymbolcompass.png" }
# land: { "/magic-genevensis-00-main.mse-style/elements/symbolland/csymbolland.png" }
# rising: { "/magic-genevensis-00-main.mse-style/elements/symbolrising/csymbolrising.png" }
# risen: { "/magic-genevensis-00-main.mse-style/elements/symbolrisen/csymbolrisen.png" }
# closed fan: { "/magic-genevensis-00-main.mse-style/elements/symbolclosedfan/csymbolclosedfan.png" }
# open fan: { "/magic-genevensis-00-main.mse-style/elements/symbolopenfan/csymbolopenfan.png" }
# sun / day: { "/magic-genevensis-00-main.mse-style/elements/symbolsun/csymbolsun.png" }
# moon / night: { "/magic-genevensis-00-main.mse-style/elements/symbolmoon/csymbolmoon.png" }
# eldrazi: { "/magic-genevensis-00-main.mse-style/elements/symboleldrazi/csymboleldrazi.png" }
# arena: { "/magic-genevensis-00-main.mse-style/elements/symbolarena/csymbolarena.png" }
# acorn: { "/magic-genevensis-00-main.mse-style/elements/symbolacorn/csymbolacorn.png" }
# swap: { "/magic-genevensis-00-main.mse-style/elements/symbolswap/csymbolswap.png" }
# tombstone: { "/magic-genevensis-00-main.mse-style/elements/symboltomb/csymboltomb.png" }
# multitype: { "/magic-genevensis-00-main.mse-style/elements/symbolmultitype/csymbolmultitype.png" }
# structure: { "/magic-genevensis-00-main.mse-style/elements/symbolstructure/csymbolstructure.png" }
# creature: { "/magic-genevensis-00-main.mse-style/elements/symbolcreature/csymbolcreature.png" }
# planeswalker: { "/magic-genevensis-00-main.mse-style/elements/symbolplaneswalker/csymbolplaneswalker.png" }
# instant: { "/magic-genevensis-00-main.mse-style/elements/symbolinstant/csymbolinstant.png" }
# sorcery: { "/magic-genevensis-00-main.mse-style/elements/symbolsorcery/csymbolsorcery.png" }
# artifact: { "/magic-genevensis-00-main.mse-style/elements/symbolartifact/csymbolartifact.png" }
# enchantment: { "/magic-genevensis-00-main.mse-style/elements/symbolenchantment/csymbolenchantment.png" }
# custom: { "/magic-genevensis-00-main.mse-style/elements/symbolcustom/csymbolcustom.png" }
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: 2
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
casting cost 2:
left: { 642 - prototype_width_increase() }
top: 658
width: { if styling.prototype then (31 + prototype_width_increase()) else 0 }
height: 30
alignment: center middle shrink-overflow
font:
name: { body_font() }
size: 20
symbol font:
name: { styling.casting_cost_mana_symbols }
size: 20
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: 42
font:
name: { name2_font() }
italic name: { name2_font_italic() }
size: { name2_font_size() }
color: { name2_font_color() }
############################# Image
image:
left: { image_left() }
top: 114
width: { image_width() }
height: 469
z index: 10
mask: { crop_safe(current_image_mask(), width: image_width(), height: 469, left: image_left(), top: 114) }
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: { 596 + 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: { 588 - (-chop_rarity_top()) }
bottom: { 648 - 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
rule text:
left: 73
top: { rule_text_top() + body_font_vertical() }
width: { rule_text_width() }
bottom: { rule_text_bottom() }
z index: 44
font:
name: { body_font() }
italic name: { body_font_italic() }
size: { body_font_size() }
color: { body_font_color() }
scale down to: 12
symbol font:
name: { styling.text_box_mana_symbols }
size: { body_font_size() }
scale down to: 12
alignment:
script:
if ( styling.center_rule_text == "three lines or less"
and card_style.rule_text.content_lines <= 3 )
or ( styling.center_rule_text == "two lines or less"
and card_style.rule_text.content_lines <= 2 )
or ( styling.center_rule_text == "one line"
and card_style.rule_text.content_lines <= 1 )
or styling.center_rule_text == "always"
then "middle center"
else "middle left"
line height hard: { if contains(card.rule_text, match: "<li>") then 0.9 else 1.2 }
line height line: 1.5
line height soft: 0.9
line height hard max: 1.3
line height line max: 1.6
flavor text:
left: 73
top: { flavor_text_top() + body_font_vertical() }
width: { flavor_text_width() }
bottom: { flavor_text_bottom() }
padding bottom: { flavor_text_padding_bottom() }
z index: 44
font:
name: { body_font() }
italic name: { body_font_italic() }
size: { body_font_size() }
color: { body_font_color() }
scale down to: 12
symbol font:
name: { styling.text_box_mana_symbols }
size: { body_font_size() }
scale down to: 12
alignment:
script:
if ( styling.center_flavor_text == "one line"
and card_style.flavor_text.content_lines <= 1 )
or styling.center_flavor_text == "always"
then "middle center"
else "middle left"
line height hard: { if contains(card.flavor_text, match: "<li>") then 0.9 else 1.2 }
line height line: 1.5
line height soft: 0.9
line height hard max: 1.3
line height line max: 1.6
rule text 2:
left: 94
top: { 660 + body_font_vertical() }
width: { if styling.prototype then (522 - prototype_width_increase()) else 0 }
height: 73
z index: 44
font:
name: { body_font() }
italic name: { body_font_italic() }
size: { body_font_size() }
color: { body_font_color() }
scale down to: 12
symbol font:
name: { styling.text_box_mana_symbols }
size: { body_font_size() }
scale down to: 12
alignment: middle left
line height hard: { if contains(card.rule_text, match: "<li>") then 0.9 else 1.2 }
line height line: 1.5
line height soft: 0.9
line height hard max: 1.3
line height line max: 1.6
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: { if styling.choice_bar != "none" then 571 else 552 }
top: { (if styling.choice_bar != "none" then 857 else 950) + pt_font_vertical() }
width: { if styling.choice_bar != "none" then 112 else 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
pt 2:
left: { 650 - prototype_width_increase() }
top: { 693 + pt_font_vertical() }
width: { if styling.prototype then (14 + prototype_width_increase()) else 0 }
height: 42
alignment: center middle shrink-overflow
font:
name: { pt_font() }
italic name: { pt_font_italic() }
size: { pt_font_size() - 2 }
color: { pt_font_color() }
scale down to: 12
separator color: red
z index: 42
############################# 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: 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: text
name: choice bar text
save value: true
extra card field:
type: choice
name: choice bar box
editable: false
save value: false
show statistics: false
choice: choice bar box
extra card field:
type: choice
name: choice bar image 1
editable: false
save value: false
show statistics: false
choice: choice bar image 1
extra card field:
type: choice
name: choice bar image 2
editable: false
save value: false
show statistics: false
choice: choice bar image 2
extra card field:
type: choice
name: choice bar image 3
editable: false
save value: false
show statistics: false
choice: choice bar image 3
extra card field:
type: choice
name: choice bar image 4
editable: false
save value: false
show statistics: false
choice: choice bar image 4
extra card field:
type: choice
name: choice bar image 5
editable: false
save value: false
show statistics: false
choice: choice bar image 5
extra card field:
type: choice
name: choice bar image 6
editable: false
save value: false
show statistics: false
choice: choice bar image 6
extra card field:
type: choice
name: choice bar image 7
editable: false
save value: false
show statistics: false
choice: choice bar image 7
extra card field:
type: choice
name: choice bar transformation paste
editable: false
save value: false
choice: choice bar transformation paste
extra card field:
type: choice
name: paragraph background 1
editable: false
save value: false
show statistics: false
choice: paragraph background 1
extra card field:
type: choice
name: paragraph background 2
editable: false
save value: false
show statistics: false
choice: paragraph background 2
extra card field:
type: choice
name: paragraph background 3
editable: false
save value: false
show statistics: false
choice: paragraph background 3
extra card field:
type: choice
name: paragraph background 4
editable: false
save value: false
show statistics: false
choice: paragraph background 4
extra card field:
type: choice
name: prototype casing
editable: false
save value: false
show statistics: false
choice: prototype casing
extra card field:
type: choice
name: prototype frame
editable: false
save value: false
show statistics: false
choice: prototype frame
extra card field:
type: choice
name: prototype inner frame
editable: false
save value: false
show statistics: false
choice: prototype frame
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: 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: color
name: choice bar box border
editable: false
save value: false
show statistics: false
script: set.border_color
extra card field:
type: color
name: choice bar transformation paste border
editable: false
save value: false
show statistics: false
script: set.border_color
extra card field:
type: color
name: prototype casing border
editable: false
save value: false
show statistics: false
script: set.border_color
extra card field:
type: color
name: prototype frame border
editable: false
save value: false
show statistics: false
script: set.border_color
extra card field:
type: color
name: prototype inner frame 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 field:
type: choice
name: foil overlay
editable: false
save value: false
choice: overlay
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 687 else 0 }
top: { if styling.transformation_reminder == "notch" then (if styling.choice_bar == "none" then (if card.pt == "" then 900 else 875) else (if card.pt == "" then 845 else 785)) else if styling.transformation_reminder == "short" then 926 else 911 }
height: { if styling.transformation_reminder == "notch" then 56 else if styling.transformation_reminder == "short" then 91 else 103 }
width: { if styling.transformation_reminder == "notch" then 53 else if styling.transformation_reminder == "short" then 258 else if styling.transformation_reminder == "medium" then 376 else 494 }
z index: 22
visible: { styling.transformation_reminder != "none" }
render style: image
image: { reminder_image() }
transformation reminder text:
left: { if styling.transformation_reminder == "notch" then (if styling.choice_bar == "none" and card.pt == "" then 618 else 620) else if styling.transformation_reminder == "short" then 4 else 22 }
top: { (if styling.transformation_reminder == "notch" then (if styling.choice_bar == "none" then (if card.pt == "" then 906 else 888) else (if card.pt == "" then 858 else 798)) else 947) + 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 191 else if styling.transformation_reminder == "medium" then 294 else if styling.transformation_reminder == "long" then 404 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 "right middle" else "center middle shrink-overflow" }
transformation reminder pt paste:
left: 456
top: 952
height: 58
width: 76
z index: 26
visible: { styling.transformation_reminder == "long" and card.pt != "" and styling.choice_bar == "none" }
render style: image
image: { image("reminderlongptpaste", 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: 18
top: { 147 + name3_font_vertical() }
width: { if styling.banner then 50 else 0 }
height: 424
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: 9
top: 117
height: 462
width: 68
z index: 12
visible: { styling.banner }
render style: image
image: { image("ascend", side: "left") }
color indicator dot:
left: 66
top: 597
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: { if styling.choice_bar != "none" then 544 else 492 }
top: { if styling.choice_bar != "none" then 852 else 939 }
width: { if styling.choice_bar != "none" then 156 else 221 }
height: { if styling.choice_bar != "none" then 68 else 76 }
z index: 24
visible: { card.pt != "" }
render style: image
image: { pt_image() }
watermark image:
left: { watermark_left() }
top: { watermark_top() }
width: { watermark_size() }
height: { watermark_size() }
z index: 30
render style: image
image: { opacity_watermark_image() }
mask: { size := watermark_size(); crop_safe(current_textbox_mask(), width: size, height: size, left: watermark_left(), top: watermark_top()) }
crown:
left: 0
top: 0
width: 750
height: 1046
z index: 4
visible: { has_crown() or has_special_crown() }
render style: image
image: { crown_image() }
leaf:
left: 0
top: 0
width: 750
height: 1046
z index: 6
visible: { has_leaf() }
render style: image
image: { leaf_image() }
legend leaf:
left: 0
top: 0
width: 750
height: 1046
z index: 8
visible: { has_crown() and has_leaf() }
render style: image
image: { legend_leaf_image() }
insignia:
left: 0
top: 181
width: 750
height: 66
z index: 8
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() }
choice bar text:
left: 64
top: { 920 + name3_font_vertical() }
width: { if styling.choice_bar == "text" or styling.choice_bar == "text (centered)" then 622 else 0 }
height: 41
alignment: { if styling.choice_bar == "text" then "left middle shrink-overflow" else "center middle shrink-overflow" }
z index: 20
font:
name: { name3_font() }
italic name: { name3_font_italic() }
size: { name3_font_size() - 4 }
color: { name3_font_color() }
scale down to: 12
symbol font:
name: { styling.casting_cost_mana_symbols }
size: { name3_font_size() - 4 }
scale down to: 12
choice bar box:
left: 54
top: 899
height: 84
width: 642
z index: 18
visible: { styling.choice_bar != "none" }
render style: image
image: { choice_bar_image() }
choice bar transformation paste:
left: { if styling.transformation_reminder == "short" then 214 else if styling.transformation_reminder == "medium" then 337 else 452 }
top: { if styling.transformation_reminder == "medium" then 952 else 965 }
height: { if styling.transformation_reminder == "medium" then 30 else 5 }
width: { if styling.transformation_reminder == "medium" then 73 else 31 }
z index: 32
visible: { styling.choice_bar != "none" and styling.transformation_reminder != "none" and styling.transformation_reminder != "notch" }
render style: image
image: { image("choicebartransformationpaste" + if styling.transformation_reminder == "medium" then "medium" else "", side: "right") }
choice bar image 1:
left: { 54 + (if styling.choice_bar == "custom (stretched)" then 0 else 692/(choice_bar_choice_count()+1)-50) }
top: 915
height: 50
width: { if styling.choice_bar == "custom (stretched)" then 642/length(choice_bar_custom_images()) else 50 }
z index: 20
visible: { contains(match: "color", styling.choice_bar) or (contains(match: "custom", styling.choice_bar) and length(choice_bar_custom_images()) > 0) }
render style: image
image: { if contains(match: "custom", styling.choice_bar) then choice_bar_custom_images()[0] else "choice_bar_w.png" }
mask: { if styling.choice_bar == "colors (with purple and colorless)" then "choice_bar_w_mask.png" else "" }
choice bar image 2:
left: { 54 + (if styling.choice_bar == "custom (stretched)" then 642/length(choice_bar_custom_images()) else 2*692/(choice_bar_choice_count()+1)-50) }
top: 915
height: 50
width: { if styling.choice_bar == "custom (stretched)" then 642/length(choice_bar_custom_images()) else 50 }
z index: 20
visible: { contains(match: "color", styling.choice_bar) or (contains(match: "custom", styling.choice_bar) and length(choice_bar_custom_images()) > 1) }
render style: image
image: { if contains(match: "custom", styling.choice_bar) then choice_bar_custom_images()[1] else "choice_bar_u.png" }
choice bar image 3:
left: { 54 + (if styling.choice_bar == "custom (stretched)" then 2*642/length(choice_bar_custom_images()) else 3*692/(choice_bar_choice_count()+1)-50) }
top: 915
height: 50
width: { if styling.choice_bar == "custom (stretched)" then 642/length(choice_bar_custom_images()) else 50 }
z index: 20
visible: { contains(match: "color", styling.choice_bar) or (contains(match: "custom", styling.choice_bar) and length(choice_bar_custom_images()) > 2) }
render style: image
image: { if contains(match: "custom", styling.choice_bar) then choice_bar_custom_images()[2] else "choice_bar_b.png" }
choice bar image 4:
left: { 54 + (if styling.choice_bar == "custom (stretched)" then 3*642/length(choice_bar_custom_images()) else 4*692/(choice_bar_choice_count()+1)-50) }
top: 915
height: 50
width: { if styling.choice_bar == "custom (stretched)" then 642/length(choice_bar_custom_images()) else 50 }
z index: 20
visible: { contains(match: "color", styling.choice_bar) or (contains(match: "custom", styling.choice_bar) and length(choice_bar_custom_images()) > 3) }
render style: image
image: { if contains(match: "custom", styling.choice_bar) then choice_bar_custom_images()[3] else "choice_bar_r.png" }
choice bar image 5:
left: { 54 + (if styling.choice_bar == "custom (stretched)" then 4*642/length(choice_bar_custom_images()) else 5*692/(choice_bar_choice_count()+1)-50) }
top: 915
height: 50
width: { if styling.choice_bar == "custom (stretched)" then 642/length(choice_bar_custom_images()) else 50 }
z index: 20
visible: { contains(match: "color", styling.choice_bar) or (contains(match: "custom", styling.choice_bar) and length(choice_bar_custom_images()) > 4) }
render style: image
image: { if contains(match: "custom", styling.choice_bar) then choice_bar_custom_images()[4] else "choice_bar_g.png" }
choice bar image 6:
left: { 54 + (if styling.choice_bar == "custom (stretched)" then 5*642/length(choice_bar_custom_images()) else 6*692/(choice_bar_choice_count()+1)-50) }
top: 915
height: 50
width: { if styling.choice_bar == "custom (stretched)" then 642/length(choice_bar_custom_images()) else 50 }
z index: 20
visible: { contains(match: "colorless", styling.choice_bar) or contains(match: "purple", styling.choice_bar) or (contains(match: "custom", styling.choice_bar) and length(choice_bar_custom_images()) > 5) }
render style: image
image: { if contains(match: "custom", styling.choice_bar) then choice_bar_custom_images()[5] else if contains(match: "purple", styling.choice_bar) then "choice_bar_p.png" else "choice_bar_c.png"}
choice bar image 7:
left: { 54 + (if styling.choice_bar == "custom (stretched)" then 6*642/length(choice_bar_custom_images()) else 7*692/(choice_bar_choice_count()+1)-50) }
top: 915
height: 50
width: { if styling.choice_bar == "custom (stretched)" then 642/length(choice_bar_custom_images()) else 50 }
z index: 20
visible: { styling.choice_bar == "colors (with purple and colorless)" or (contains(match: "custom", styling.choice_bar) and length(choice_bar_custom_images()) > 6) }
render style: image
image: { if contains(match: "custom", styling.choice_bar) then choice_bar_custom_images()[6] else "choice_bar_c.png" }
paragraph background 1:
###visible property seems to not work, functions in the mask property are still evaluated when invisible. adding visibility condition (highlight_paragraph_index(1) > -1) to all other properties
left: 0
top: { index := highlight_paragraph_index(1); if index > -1 then highlight_top(index) else 0 }
width: 750
height: { index := highlight_paragraph_index(1); if index > -1 then highlight_height(index) else 0 }
z index: 28
render style: image
image: { index := highlight_paragraph_index(1); if index > -1 then set_combine(crop_safe(image("walkertextboxnormallight", side: "both"), width: 750, height: highlight_height(index), left: 0, top: highlight_top(index)), combine: "shadow") else "" }
mask: { index := highlight_paragraph_index(1); if index > -1 then crop_safe(current_textbox_mask(), width: 750, height: highlight_height(index), left: 0, top: highlight_top(index)) else "" }
paragraph background 2:
left: 0
top: { index := highlight_paragraph_index(2); if index > -1 then highlight_top(index) else 0 }
width: 750
height: { index := highlight_paragraph_index(2); if index > -1 then highlight_height(index) else 0 }
z index: 28
render style: image
image: { index := highlight_paragraph_index(2); if index > -1 then set_combine(crop_safe(image("walkertextboxnormallight", side: "both"), width: 750, height: highlight_height(index), left: 0, top: highlight_top(index)), combine: "shadow") else "" }
mask: { index := highlight_paragraph_index(2); if index > -1 then crop_safe(current_textbox_mask(), width: 750, height: highlight_height(index), left: 0, top: highlight_top(index)) else "" }
paragraph background 3:
left: 0
top: { index := highlight_paragraph_index(3); if index > -1 then highlight_top(index) else 0 }
width: 750
height: { index := highlight_paragraph_index(3); if index > -1 then highlight_height(index) else 0 }
z index: 28
render style: image
image: { index := highlight_paragraph_index(3); if index > -1 then set_combine(crop_safe(image("walkertextboxnormallight", side: "both"), width: 750, height: highlight_height(index), left: 0, top: highlight_top(index)), combine: "shadow") else "" }
mask: { index := highlight_paragraph_index(3); if index > -1 then crop_safe(current_textbox_mask(), width: 750, height: highlight_height(index), left: 0, top: highlight_top(index)) else "" }
paragraph background 4:
left: 0
top: { index := highlight_paragraph_index(4); if index > -1 then highlight_top(index) else 0 }
width: 750
height: { index := highlight_paragraph_index(4); if index > -1 then highlight_height(index) else 0 }
z index: 28
render style: image
image: { index := highlight_paragraph_index(4); if index > -1 then set_combine(crop_safe(image("walkertextboxnormallight", side: "both"), width: 750, height: highlight_height(index), left: 0, top: highlight_top(index)), combine: "shadow") else "" }
mask: { index := highlight_paragraph_index(4); if index > -1 then crop_safe(current_textbox_mask(), width: 750, height: highlight_height(index), left: 0, top: highlight_top(index)) else "" }
prototype casing:
left: 50
top: 640
width: 650
height: 112
z index: 4
visible: { styling.prototype }
render style: image
image: { image("prototypecasing", side: "both") }
prototype frame:
left: 50
top: 640
width: 650
height: 112
z index: 6
visible: { styling.prototype }
render style: image
image: { image_2("prototypeframe", side: "both") }
prototype inner frame:
left: { 621 - prototype_width_increase() }
top: 656
width: 100
height: 81
z index: 8
visible: { styling.prototype }
render style: image
image: { image_2("prototypeinnerframe", side: "right") }
card color border:
visible: { set.border_color != rgb(0,0,0) }
left: 0
top: 0
width: 750
height: 1046
z index: 3
mask: { border((if has_extended_art() then "puma" else "") + "card") }
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: 5
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: 7
mask: { border("leaf") }
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: 9
mask: { border("legendleaf") }
insignia border:
visible: { set.border_color != rgb(0,0,0) and not has_extended_art() and not has_special_crown() and styling.insignia != "none" }
left: 0
top: 181
width: 750
height: 66
z index: 9
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: 597
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 687 else 0 }
top: { if styling.transformation_reminder == "notch" then (if styling.choice_bar == "none" then (if card.pt == "" then 900 else 875) else (if card.pt == "" then 845 else 785)) else if styling.transformation_reminder == "short" then 926 else 911 }
height: { if styling.transformation_reminder == "notch" then 56 else if styling.transformation_reminder == "short" then 91 else 103 }
width: { if styling.transformation_reminder == "notch" then 53 else if styling.transformation_reminder == "short" then 258 else if styling.transformation_reminder == "medium" then 376 else 494 }
z index: 23
mask: { reminder_border() }
transformation reminder pt paste border:
visible: { set.border_color != rgb(0,0,0) and styling.transformation_reminder == "long" and card.pt != "" and styling.choice_bar == "none" }
left: 456
top: 952
height: 58
width: 76
z index: 27
mask: { border("reminderlongptpaste") }
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: 9
top: 117
height: 462
width: 68
z index: 13
mask: { border("ascend") }
pt border:
visible: { set.border_color != rgb(0,0,0) and card.pt != "" }
left: { if styling.choice_bar != "none" then 544 else 492 }
top: { if styling.choice_bar != "none" then 852 else 939 }
width: { if styling.choice_bar != "none" then 156 else 221 }
height: { if styling.choice_bar != "none" then 68 else 76 }
z index: 25
mask: { border("pt" + if styling.choice_bar != "none" then "choice" else "") }
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()) }
choice bar box border:
visible: { set.border_color != rgb(0,0,0) and styling.choice_bar != "none" }
left: 54
top: 899
height: 84
width: 642
z index: 19
mask: { border("choicebar") }
choice bar transformation paste border:
visible: { set.border_color != rgb(0,0,0) and styling.choice_bar != "none" and styling.transformation_reminder == "medium" }
left: 337
top: 952
height: 30
width: 73
z index: 33
mask: { border("choicebartransformationpastemedium") }
prototype casing border:
visible: { set.border_color != rgb(0,0,0) and styling.prototype }
left: 50
top: 640
width: 650
height: 112
z index: 5
mask: { border("prototypecasing") }
prototype frame border:
visible: { set.border_color != rgb(0,0,0) and styling.prototype }
left: 50
top: 640
width: 650
height: 112
z index: 7
mask: { border("prototypeframe") }
prototype inner frame border:
visible: { set.border_color != rgb(0,0,0) and styling.prototype }
left: { 621 - prototype_width_increase() }
top: 656
width: 100
height: 81
z index: 9
mask: { border("prototypeinnerframe") }
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
#foil overlay:
# visible: { styling.foil_overlay }
# left: 0
# top: 0
# height: 1046
# width: 750
# z index: 200
# render style: image
# image: /magic-genevensis-00-main.mse-style/foil_overlay.png
# mask: /magic-genevensis-00-main.mse-style/foil_overlay_mask.png