MSE 2.5.2 and Showcase Catchup (#18)
* Updated to MSE 2.5.2 * Added Assassin's Creed Memory Corridor * Added Bloomburrow Borderless Anime * Added Bloomburrow Woodland * Added Compleated Planeswalkers * Added Duskmourn Paranormal * Added Kamigawa Neon * Added Kamigawa Ninja * Added Kamigawa Samurai * Added Innistrad Fang * Added Theros Constellation * Added Capenna Art Deco * Added Capenna Golden Age * Added Capenna Skyscraper * Added Doctor Who TARDIS * Added Dominaria Stained Glass * Added Eldraine Enchanting Tales * Added Fallout PipBoy * Added Ikoria Crystal * Added Innistrad Double Feature * Added Innistrad Equinox * Added Ixalan Treasures * Added Ixalan Legends * Added Ixalan Caverns * Added Lord of the Rings Ring * Added Lord of the Rings Scroll * Added Ravnica City Mural * Added Ravnica Dossier * Added Tarkir Dragon Wing * Added Thunder Junction Breaking News * Added Thunder Junction Vault * Added Thunder Junction Wanted Poster * Added Unfinity Of Tomorrow * Added Unfinity Attractions * Added Secret Lair Baseball * Added revamped option to Amonkhet Invocations * Added UB stamp compatibility to old showcase frames * Added foils and popouts modules * Add foil_mask blending system * Fixes #57
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/art_filter.png
Normal file
|
After Width: | Height: | Size: 409 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 7.9 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/border_mask.png
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/card/acard.png
Normal file
|
After Width: | Height: | Size: 460 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/card/bcard.png
Normal file
|
After Width: | Height: | Size: 476 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/card/ccard.png
Normal file
|
After Width: | Height: | Size: 383 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/card/gcard.png
Normal file
|
After Width: | Height: | Size: 458 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/card/mcard.png
Normal file
|
After Width: | Height: | Size: 432 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/card/rcard.png
Normal file
|
After Width: | Height: | Size: 467 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/card/ucard.png
Normal file
|
After Width: | Height: | Size: 497 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/card/wcard.png
Normal file
|
After Width: | Height: | Size: 408 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/card_mask.png
Normal file
|
After Width: | Height: | Size: 9.8 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/card_sample.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/crown/acrown.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/crown/bcrown.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/crown/ccrown.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/crown/gcrown.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/crown/mcrown.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/crown/rcrown.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/crown/ucrown.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/crown/wcrown.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/gold_bars.png
Normal file
|
After Width: | Height: | Size: 75 KiB |
|
After Width: | Height: | Size: 7.9 KiB |
|
After Width: | Height: | Size: 7.9 KiB |
|
After Width: | Height: | Size: 7.9 KiB |
|
After Width: | Height: | Size: 7.9 KiB |
|
After Width: | Height: | Size: 7.9 KiB |
|
After Width: | Height: | Size: 7.9 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/image_mask.png
Normal file
|
After Width: | Height: | Size: 8.5 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 7.8 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 21 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/pt/apt.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/pt/bpt.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/pt/cpt.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/pt/gpt.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/pt/mpt.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/pt/rpt.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/pt/upt.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/pt/wpt.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/pt_old/apt.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/pt_old/bpt.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/pt_old/cpt.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/pt_old/gpt.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/pt_old/mpt.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/pt_old/rpt.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/pt_old/upt.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/pt_old/wpt.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 9.3 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 20 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/stripe_1.png
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
BIN
data/magic-m15-showcase-lotr-scroll.mse-style/stripe_2.png
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
892
data/magic-m15-showcase-lotr-scroll.mse-style/style
Normal file
@@ -0,0 +1,892 @@
|
||||
mse version: 2.1.2
|
||||
game: magic
|
||||
short name: Scroll
|
||||
full name: LotR Showcase
|
||||
icon: card_sample.png
|
||||
position hint: 095
|
||||
|
||||
version: 2024-05-20
|
||||
depends on:
|
||||
package: magic.mse-game
|
||||
version: 2014-06-25
|
||||
depends on:
|
||||
package: magic-mana-large.mse-symbol-font
|
||||
version: 2007-09-23
|
||||
depends on:
|
||||
package: magic-mana-small.mse-symbol-font
|
||||
version: 2007-09-23
|
||||
depends on:
|
||||
package: magic-modules.mse-include
|
||||
version: 2024-05-20
|
||||
depends on:
|
||||
package: magic-mainframe-extras.mse-include
|
||||
version: 2007-09-23
|
||||
|
||||
card width: 646
|
||||
card height: 902
|
||||
card dpi: 258.5
|
||||
|
||||
### blanks by GenevensiS
|
||||
### code by GenevensiS
|
||||
|
||||
############################################################## Extra scripts
|
||||
|
||||
init script:
|
||||
swap_fonts_pt_default :=
|
||||
[
|
||||
name: {"Beleren Bold"},
|
||||
size: {26.0},
|
||||
color: {"black"},
|
||||
vertical: {0},
|
||||
italic: {"Beleren Bold"}
|
||||
]
|
||||
|
||||
swap_fonts_body_default :=
|
||||
[
|
||||
name: {"MPlantin"},
|
||||
size: {24.0},
|
||||
color: {"black"},
|
||||
vertical: {0},
|
||||
italic: {"MPlantin-Italic"}
|
||||
]
|
||||
|
||||
typeline_offset_width_1 := { -2 }
|
||||
typeline_offset_left_1 := { 1 }
|
||||
swap_fonts_type_default :=
|
||||
[
|
||||
name: {"Beleren Bold"},
|
||||
size: {22.5},
|
||||
color: {"black"},
|
||||
vertical: {0},
|
||||
italic: {""}
|
||||
]
|
||||
|
||||
transform_symbol_disabled_1 := { true }
|
||||
card_symbol_offset_top_1 := { 1 }
|
||||
nameline_offset_top_1 := { -1 }
|
||||
swap_fonts_name_default :=
|
||||
[
|
||||
name: {"Beleren Bold"},
|
||||
size: {26.0},
|
||||
color: {"black"},
|
||||
vertical: {0},
|
||||
italic: {""}
|
||||
]
|
||||
|
||||
card_hybrid_2 :=
|
||||
{
|
||||
if type == "loyaltycost" then template(colors.0)
|
||||
else masked_blend(mask: "special_blend_card.png", dark: template(colors.0), light: template(colors.1))
|
||||
}
|
||||
horizontal_card_hybrid :=
|
||||
[
|
||||
0: horizontal_card_hybrid[0]
|
||||
1: horizontal_card_hybrid[1]
|
||||
2: card_hybrid_2
|
||||
3: horizontal_card_hybrid[3]
|
||||
4: horizontal_card_hybrid[4]
|
||||
5: horizontal_card_hybrid[5]
|
||||
6: horizontal_card_hybrid[6]
|
||||
7: horizontal_card_hybrid[7]
|
||||
]
|
||||
card_hybrid :=
|
||||
[
|
||||
radial: card_hybrid["radial"]
|
||||
horizontal: horizontal_card_hybrid
|
||||
overlay: card_hybrid["overlay"]
|
||||
vertical: card_hybrid["vertical"]
|
||||
]
|
||||
|
||||
template_prefix :=
|
||||
[
|
||||
card: "card/",
|
||||
pt: "pt/",
|
||||
crown: "crown/",
|
||||
stamprim: "stamprim/",
|
||||
nonstamprim: "nonstamprim/",
|
||||
identity: "/magic-modules.mse-include/indicators/"
|
||||
]
|
||||
template_suffix :=
|
||||
[
|
||||
card: "card.png",
|
||||
pt: "pt.png",
|
||||
crown: "crown.png",
|
||||
stamprim: "stamprim.png",
|
||||
nonstamprim: "nonstamprim.png",
|
||||
identity: "identity.png"
|
||||
]
|
||||
|
||||
template :=
|
||||
{
|
||||
if type == "loyaltycost" then crop_safe("loyaltycost/" + input + "loyaltycost.png", offset_x: 0, offset_y: 400-loyaltycost_move(number), width: 646, height: 902)
|
||||
else template_prefix[type] + input + template_suffix[type]
|
||||
}
|
||||
land_template := { template_prefix[type] + (if input == "a" then "c" else input) + template_suffix[type] }
|
||||
|
||||
card_background := { color_background(input: card.card_color, type: "card", base_hybrid: card_hybrid) }
|
||||
card_crown := { color_background(input: card.card_color, type: "crown", base_hybrid: card_hybrid) }
|
||||
card_ptbox := { color_background(input: card.card_color, type: "pt", base_hybrid: card_hybrid) }
|
||||
card_loyaltycostbox := { color_background(input: card.card_color, type: "loyaltycost", base_hybrid: card_hybrid) }
|
||||
card_stamprim := { color_background(input: card.card_color, type: "stamprim", base_hybrid: card_hybrid) }
|
||||
card_nonstamprim := { color_background(input: card.card_color, type: "nonstamprim", base_hybrid: card_hybrid) }
|
||||
|
||||
pure_colors :=
|
||||
{
|
||||
sort_text(
|
||||
order: if card_is_wedge(input) then "(wbgur)" else "(wubrg)",
|
||||
(if chosen(card.card_color, choice:"white") then "w") +
|
||||
(if chosen(card.card_color, choice:"blue") then "u") +
|
||||
(if chosen(card.card_color, choice:"black") then "b") +
|
||||
(if chosen(card.card_color, choice:"red") then "r") +
|
||||
(if chosen(card.card_color, choice:"green") then "g")
|
||||
)
|
||||
}
|
||||
pt_colors := { if styling.PT_color_scheme == "canon" then pt_colors_canon() else styling.PT_color_scheme }
|
||||
pt_colors_canon := { if is_hybrid_cost() then "land" else "gold" }
|
||||
|
||||
has_identity := { styling.color_indicator_dot }
|
||||
has_identity_2 := { false }
|
||||
|
||||
is_promo := { styling.promo }
|
||||
is_unsorted := { styling.remove_from_autocount }
|
||||
is_crowned := { styling.legend_crown == "yes" or (styling.legend_crown == "if legendary" and lang_setting("is_legendary")(card.super_type)) }
|
||||
is_gold_barred := { styling.gold_name_and_type == "yes" }
|
||||
|
||||
chop_top := { split := split_comma(styling.chop_text_box); if length(split) > 0 and split[0] != "" and split[0] != "-" then clamp(split[0], maximum:500, minimum:-500) else 0 }
|
||||
chop_bottom := { split := split_comma(styling.chop_text_box); if length(split) > 1 and split[1] != "" and split[1] != "-" then clamp(split[1], maximum:500, minimum:-500) else 0 }
|
||||
chop_right := { split := split_comma(styling.chop_text_box); if length(split) > 2 and split[2] != "" and split[2] != "-" then clamp(split[2], maximum:500, minimum:-500) else 0 }
|
||||
|
||||
mainframe_walker :=
|
||||
{
|
||||
true
|
||||
}
|
||||
|
||||
mainframe_walker_text_script :=
|
||||
{
|
||||
if styling.textbox_layout == "6 textboxes" then combined_editor(field1: card.level_1_text, separator1: "<line>\n</line>", field2: card.level_2_text, separator2: "<line>\n</line>", field3: card.level_3_text, separator3: "<line>\n</line>", field4: card.level_4_text, separator4: "<line>\n</line>", field5: card.level_5_text, separator5: "<line>\n</line>", field6: card.level_6_text)
|
||||
else if styling.textbox_layout == "5 textboxes + flavor text" then combined_editor(field1: card.level_1_text, separator1: "<line>\n</line>", field2: card.level_2_text, separator2: "<line>\n</line>", field3: card.level_3_text, separator3: "<line>\n</line>", field4: card.level_4_text, separator4: "<line>\n</line>", field5: card.level_5_text, separator5: "<line>\n</line>", field6: card.flavor_text)
|
||||
else if styling.textbox_layout == "5 textboxes" then combined_editor(field1: card.level_1_text, separator1: "<line>\n</line>", field2: card.level_2_text, separator2: "<line>\n</line>", field3: card.level_3_text, separator3: "<line>\n</line>", field4: card.level_4_text, separator4: "<line>\n</line>", field5: card.level_5_text)
|
||||
else if styling.textbox_layout == "4 textboxes + flavor text" then combined_editor(field1: card.level_1_text, separator1: "<line>\n</line>", field2: card.level_2_text, separator2: "<line>\n</line>", field3: card.level_3_text, separator3: "<line>\n</line>", field4: card.level_4_text, separator4: "<line>\n</line>", field5: card.flavor_text)
|
||||
else if styling.textbox_layout == "4 textboxes" then combined_editor(field1: card.level_1_text, separator1: "<line>\n</line>", field2: card.level_2_text, separator2: "<line>\n</line>", field3: card.level_3_text, separator3: "<line>\n</line>", field4: card.level_4_text)
|
||||
else if styling.textbox_layout == "3 textboxes + flavor text" then combined_editor(field1: card.level_1_text, separator1: "<line>\n</line>", field2: card.level_2_text, separator2: "<line>\n</line>", field3: card.level_3_text, separator3: "<line>\n</line>", field4: card.flavor_text)
|
||||
else if styling.textbox_layout == "3 textboxes" then combined_editor(field1: card.level_1_text, separator1: "<line>\n</line>", field2: card.level_2_text, separator2: "<line>\n</line>", field3: card.level_3_text)
|
||||
else if styling.textbox_layout == "2 textboxes + flavor text" then combined_editor(field1: card.level_1_text, separator1: "<line>\n</line>", field2: card.level_2_text, separator2: "<line>\n</line>", field3: card.flavor_text)
|
||||
else if styling.textbox_layout == "2 textboxes" then combined_editor(field1: card.level_1_text, separator1: "<line>\n</line>", field2: card.level_2_text)
|
||||
else if styling.textbox_layout == "1 textbox + flavor text" then combined_editor(field1: card.level_1_text, separator1: "<line>\n</line>", field2: card.flavor_text)
|
||||
else if styling.textbox_layout == "1 textbox" then forward_editor(field: card.level_1_text)
|
||||
else forward_editor(field: card.flavor_text)
|
||||
}
|
||||
|
||||
margin_left :=
|
||||
{
|
||||
if input == "lv1" then (if card.loyalty_cost_1 == "" then 0 else 420)
|
||||
else if input == "lv2" then (if card.loyalty_cost_2 == "" then 0 else 420)
|
||||
else if input == "lv3" then (if card.loyalty_cost_3 == "" then 0 else 420)
|
||||
else if input == "lv4" then (if card.loyalty_cost_4 == "" then 0 else 420)
|
||||
else if input == "lv5" then (if card.loyalty_cost_5 == "" then 0 else 420)
|
||||
else if input == "lv6" then (if card.loyalty_cost_6 == "" then 0 else 420)
|
||||
else 0
|
||||
}
|
||||
|
||||
text_filter := remove_tag@(tag: "<i-flavor>") + text_filter + { apply_margins(input, name:margin_code) } + { add_spacers(input, name:margin_code) }
|
||||
flavor_text_filter := replace@(match: "", replace: "") + flavor_text_filter + { if contains(styling.textbox_layout, match: "flavor") and remove_tags(input) == "" then input + "" else input }
|
||||
|
||||
add_spacers :=
|
||||
{
|
||||
#The 'then ""' has a zero-width space inside
|
||||
if input == "" and level_is_active(name) then ""
|
||||
else input
|
||||
}
|
||||
|
||||
level_is_active :=
|
||||
{
|
||||
if input == "lv6" then abilities_count() >= 6
|
||||
else if input == "lv5" then abilities_count() >= 5
|
||||
else if input == "lv4" then abilities_count() >= 4
|
||||
else if input == "lv3" then abilities_count() >= 3
|
||||
else if input == "lv2" then abilities_count() >= 2
|
||||
else true
|
||||
}
|
||||
|
||||
ability_top :=
|
||||
{
|
||||
if card_style.text.layout.blocks[input-1].bottom or else 0 > 0 then to_int(card_style.text.top) + to_int(card_style.text.layout.blocks[input-1].top)
|
||||
else stylesheet.card_height * 1.2
|
||||
}
|
||||
|
||||
ability_center :=
|
||||
{
|
||||
if card_style.text.layout.blocks[input-1].bottom or else 0 > 0 then to_int(card_style.text.top) + to_int(card_style.text.layout.blocks[input-1].middle)
|
||||
else stylesheet.card_height * 1.2
|
||||
}
|
||||
|
||||
ability_bottom :=
|
||||
{
|
||||
if card_style.text.layout.blocks[input-1].bottom or else 0 > 0 then to_int(card_style.text.top) + to_int(card_style.text.layout.blocks[input-1].bottom)
|
||||
else stylesheet.card_height * 1.2
|
||||
}
|
||||
|
||||
abilities_count :=
|
||||
{
|
||||
if contains(styling.textbox_layout, match: "1") then 1
|
||||
else if contains(styling.textbox_layout, match: "3") then 3
|
||||
else if contains(styling.textbox_layout, match: "4") then 4
|
||||
else if contains(styling.textbox_layout, match: "2") then 2
|
||||
else if contains(styling.textbox_layout, match: "5") then 5
|
||||
else if contains(styling.textbox_layout, match: "6") then 6
|
||||
else 0
|
||||
}
|
||||
|
||||
loyal_move := { split := split_comma(styling.move_loyalty_costs); if length(split) > input-1 and split[input-1] != "" and split[input-1] != "-" then clamp(split[input-1], maximum:500, minimum:-500) else 0 }
|
||||
separator_move := { split := split_comma(styling.move_separators); if length(split) > input-1 and split[input-1] != "" and split[input-1] != "-" then clamp(split[input-1], maximum:500, minimum:-500) else 0 }
|
||||
|
||||
stripe_top := { -to_int(( -ability_bottom(input) - ability_top(input+1) )/2) - 2 + separator_move(input) }
|
||||
|
||||
loyaltycost_move := { clamp(ability_center(number) - 705 + loyal_move(number), minimum: -400, maximum: 400) }
|
||||
|
||||
popout_left := { split := split_comma(styling.popout_art_coordinates); if length(split) > 3 and split.0 != "" then clamp(split.0, minimum: -500, maximum: 700) 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: 1000) 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: 1000) 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: 1500) else 0 }
|
||||
|
||||
crop_safe :=
|
||||
{
|
||||
if offset_x < 0
|
||||
or offset_y < 0
|
||||
or width < 1
|
||||
or height < 1
|
||||
or offset_x + width > 646
|
||||
or offset_y + height > 1702
|
||||
then ""
|
||||
else crop(input, offset_x: offset_x, offset_y: offset_y, width: width, height: height)
|
||||
}
|
||||
|
||||
############################################################## Extra style options
|
||||
|
||||
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.
|
||||
styling field:
|
||||
type: boolean
|
||||
name: stretch art to whole card
|
||||
description: Make the image span the whole card instead of just the visible part. Use this to help make popout effects.
|
||||
initial: no
|
||||
styling field:
|
||||
type: text
|
||||
name: art filter opacity percentage
|
||||
description: Set the opacity percentage for the old paper illustration filter. Opaque is 100, transparent is 0, default is 80.
|
||||
styling field:
|
||||
type: choice
|
||||
name: textbox layout
|
||||
description: Number of textboxes for abilities and passives. MODIFY CONTENT OF TEXTBOXES IF THIS HAS TROUBLE UPDATING AFTER BEING CHANGED.
|
||||
choice: only flavor text
|
||||
choice: 1 textbox
|
||||
choice: 1 textbox + flavor text
|
||||
choice: 2 textboxes
|
||||
choice: 2 textboxes + flavor text
|
||||
choice: 3 textboxes
|
||||
choice: 3 textboxes + flavor text
|
||||
choice: 4 textboxes
|
||||
choice: 4 textboxes + flavor text
|
||||
choice: 5 textboxes
|
||||
choice: 5 textboxes + flavor text
|
||||
choice: 6 textboxes
|
||||
initial: 1 textbox
|
||||
|
||||
include file: /magic-modules.mse-include/texts/styling_fields
|
||||
|
||||
styling field:
|
||||
type: text
|
||||
name: move separators
|
||||
description: Moves the stripes between abilities down by this many pixels. Use negatives to move up. Formatted as "1,2,3,4,5"
|
||||
styling field:
|
||||
type: text
|
||||
name: move loyalty costs
|
||||
description: Moves loyalty costs down by this many pixels. Use negatives to move up. Formatted as "1,2,3,4,5,6"
|
||||
styling field:
|
||||
type: choice
|
||||
name: PT color scheme
|
||||
description: Use the selected color scheme for the PT box on two color cards. Canon is "land" on hybrid cards, "gold" otherwise.
|
||||
choice: canon
|
||||
choice: gold
|
||||
choice: hybrid
|
||||
choice: colored
|
||||
choice: land
|
||||
initial: canon
|
||||
styling field:
|
||||
type: choice
|
||||
name: legend crown
|
||||
description: Use the legend crown?
|
||||
choice: yes
|
||||
choice: if legendary
|
||||
choice: no
|
||||
initial: if legendary
|
||||
styling field:
|
||||
type: boolean
|
||||
name: gold name and type
|
||||
description: Tint the nameline and typeline gold?
|
||||
initial: no
|
||||
|
||||
include file: /magic-modules.mse-include/stamps/styling_fields_ub
|
||||
|
||||
include file: /magic-modules.mse-include/rarities/styling_fields
|
||||
|
||||
include file: /magic-modules.mse-include/indicators/styling_fields
|
||||
|
||||
include file: /magic-modules.mse-include/watermarks/styling_fields
|
||||
|
||||
styling field:
|
||||
type: package choice
|
||||
name: overlay
|
||||
description: Should there be an overlay applied, such as foil?
|
||||
match: magic-overlay-*.mse-include
|
||||
required: false
|
||||
|
||||
include file: /magic-modules.mse-include/information/styling_fields
|
||||
|
||||
include file: /magic-modules.mse-include/symbol-fonts/styling_fields
|
||||
|
||||
include file: /magic-modules.mse-include/fonts/styling_fields
|
||||
|
||||
############################################################## Card fields
|
||||
|
||||
include file: /magic-modules.mse-include/information/card_fields
|
||||
|
||||
include file: /magic-modules.mse-include/stamps/card_fields
|
||||
|
||||
include file: /magic-modules.mse-include/corners/card_fields
|
||||
|
||||
include file: /magic-modules.mse-include/watermarks/card_fields
|
||||
|
||||
include file: /magic-modules.mse-include/namelines/card_fields
|
||||
|
||||
include file: /magic-modules.mse-include/typelines/card_fields
|
||||
|
||||
card style:
|
||||
############################# Background stuff
|
||||
border color:
|
||||
left: 0
|
||||
top: 0
|
||||
width: { stylesheet.card_width }
|
||||
height: { stylesheet.card_height }
|
||||
radius: 31
|
||||
z index: 100
|
||||
mask: border_mask.png
|
||||
card color:
|
||||
left: 0
|
||||
top: 0
|
||||
width: { stylesheet.card_width }
|
||||
height: { stylesheet.card_height }
|
||||
z index: 200
|
||||
render style: image
|
||||
popup style: in place
|
||||
image: { card_background() }
|
||||
mask: card_mask.png
|
||||
############################# Image
|
||||
image:
|
||||
left: { if styling.stretch_art_to_whole_card then 0 else 49 }
|
||||
top: { if styling.stretch_art_to_whole_card then 0 else 100 }
|
||||
width: { if styling.stretch_art_to_whole_card then stylesheet.card_width else 548 }
|
||||
height: { if styling.stretch_art_to_whole_card then stylesheet.card_height else 401 }
|
||||
z index: 0
|
||||
mask: { if styling.stretch_art_to_whole_card then "" else "image_mask.png" }
|
||||
mainframe image:
|
||||
left: { popout_left() }
|
||||
top: { popout_top() }
|
||||
width: { popout_width() }
|
||||
height: { popout_height() }
|
||||
z index: 1010
|
||||
############################# Text box
|
||||
text:
|
||||
left: 50
|
||||
top: { 570 + chop_top() + body_font_vertical() }
|
||||
right: { 594 - chop_right() }
|
||||
bottom: { (if is_stamped() then 812 else 824) - chop_bottom() }
|
||||
z index: 900
|
||||
padding left: 6
|
||||
padding right: 4
|
||||
line height hard: { if is_modal(card.text) then 0.9 else 1.2 }
|
||||
line height line: 1.5
|
||||
line height soft: 0.9
|
||||
line height hard max: { if is_modal(card.text) then 1.0 else 1.3 }
|
||||
line height line max: 1.6
|
||||
alignment:
|
||||
script:
|
||||
if (styling.center_text == "short text only" and card_style.text.content_lines <= 2)
|
||||
or styling.center_text == "always"
|
||||
then "middle center"
|
||||
else "middle left"
|
||||
font:
|
||||
name: { body_font() }
|
||||
italic name: { body_font_italic() }
|
||||
size: { body_font_size() }
|
||||
scale down to: 11
|
||||
color: { body_font_color() }
|
||||
symbol font:
|
||||
name: { styling.text_box_mana_symbols }
|
||||
size: { body_font_size() }
|
||||
scale down to: 11
|
||||
loyalty cost 1:
|
||||
left: 19
|
||||
top: { ability_center(1) - 24 + loyal_move(1) }
|
||||
width: { if abilities_count() >= 1 then 46 else 0 }
|
||||
height: 48
|
||||
z index: 1010
|
||||
alignment: center middle shrink-overflow
|
||||
font:
|
||||
name: Beleren Bold
|
||||
size: 26
|
||||
scale down to: 12
|
||||
color: black
|
||||
loyalty cost 2:
|
||||
left: 19
|
||||
top: { ability_center(2) - 24 + loyal_move(2) }
|
||||
width: { if abilities_count() >= 2 then 46 else 0 }
|
||||
height: 48
|
||||
z index: 1010
|
||||
alignment: center middle shrink-overflow
|
||||
font:
|
||||
name: Beleren Bold
|
||||
size: 26
|
||||
scale down to: 12
|
||||
color: black
|
||||
loyalty cost 3:
|
||||
left: 19
|
||||
top: { ability_center(3) - 24 + loyal_move(3) }
|
||||
width: { if abilities_count() >= 3 then 46 else 0 }
|
||||
height: 48
|
||||
z index: 1010
|
||||
alignment: center middle shrink-overflow
|
||||
font:
|
||||
name: Beleren Bold
|
||||
size: 26
|
||||
scale down to: 12
|
||||
color: black
|
||||
loyalty cost 4:
|
||||
left: 19
|
||||
top: { ability_center(4) - 24 + loyal_move(4) }
|
||||
width: { if abilities_count() >= 4 then 46 else 0 }
|
||||
height: 48
|
||||
z index: 1010
|
||||
alignment: center middle shrink-overflow
|
||||
font:
|
||||
name: Beleren Bold
|
||||
size: 26
|
||||
scale down to: 12
|
||||
color: black
|
||||
loyalty cost 5:
|
||||
left: 19
|
||||
top: { ability_center(5) - 24 + loyal_move(5) }
|
||||
width: { if abilities_count() >= 5 then 46 else 0 }
|
||||
height: 48
|
||||
z index: 1010
|
||||
alignment: center middle shrink-overflow
|
||||
font:
|
||||
name: Beleren Bold
|
||||
size: 26
|
||||
scale down to: 12
|
||||
color: black
|
||||
loyalty cost 6:
|
||||
left: 19
|
||||
top: { ability_center(6) - 24 + loyal_move(6) }
|
||||
width: { if abilities_count() >= 6 then 46 else 0 }
|
||||
height: 48
|
||||
z index: 1010
|
||||
alignment: center middle shrink-overflow
|
||||
font:
|
||||
name: Beleren Bold
|
||||
size: 26
|
||||
scale down to: 12
|
||||
color: black
|
||||
############################# PT
|
||||
pt:
|
||||
left: 516
|
||||
top: { 810 + pt_font_vertical() }
|
||||
width: 81
|
||||
height: 37
|
||||
z index: 900
|
||||
alignment: center middle shrink-overflow
|
||||
font:
|
||||
name: { pt_font() }
|
||||
size: { pt_font_size() }
|
||||
color: { pt_font_color() }
|
||||
separator color: red
|
||||
|
||||
############################################################## Extra card fields
|
||||
|
||||
extra card field:
|
||||
type: choice
|
||||
name: pt box
|
||||
script: card.card_color
|
||||
editable: false
|
||||
save value: false
|
||||
show statistics: false
|
||||
extra card field:
|
||||
type: choice
|
||||
name: crown
|
||||
script: card.card_color
|
||||
editable: false
|
||||
save value: false
|
||||
show statistics: false
|
||||
extra card field:
|
||||
type: choice
|
||||
name: gold bars
|
||||
script: card.card_color
|
||||
editable: false
|
||||
save value: false
|
||||
show statistics: false
|
||||
extra card field:
|
||||
type: choice
|
||||
name: foil layer
|
||||
editable: false
|
||||
save value: false
|
||||
show statistics: false
|
||||
choice: foil layer
|
||||
extra card field:
|
||||
type: choice
|
||||
name: card stamp background
|
||||
editable: false
|
||||
save value: false
|
||||
show statistics: false
|
||||
choice: card stamp background
|
||||
extra card field:
|
||||
type: text
|
||||
name: colon 1
|
||||
editable: false
|
||||
save value: false
|
||||
script: ":"
|
||||
extra card field:
|
||||
type: text
|
||||
name: colon 2
|
||||
editable: false
|
||||
save value: false
|
||||
script: ":"
|
||||
extra card field:
|
||||
type: text
|
||||
name: colon 3
|
||||
editable: false
|
||||
save value: false
|
||||
script: ":"
|
||||
extra card field:
|
||||
type: text
|
||||
name: colon 4
|
||||
editable: false
|
||||
save value: false
|
||||
script: ":"
|
||||
extra card field:
|
||||
type: text
|
||||
name: colon 5
|
||||
editable: false
|
||||
save value: false
|
||||
script: ":"
|
||||
extra card field:
|
||||
type: text
|
||||
name: colon 6
|
||||
editable: false
|
||||
save value: false
|
||||
script: ":"
|
||||
extra card field:
|
||||
type: choice
|
||||
name: loyalty cost box 1
|
||||
editable: false
|
||||
save value: false
|
||||
choice: loyalty cost box 1
|
||||
extra card field:
|
||||
type: choice
|
||||
name: loyalty cost box 2
|
||||
editable: false
|
||||
save value: false
|
||||
choice: loyalty cost box 2
|
||||
extra card field:
|
||||
type: choice
|
||||
name: loyalty cost box 3
|
||||
editable: false
|
||||
save value: false
|
||||
choice: loyalty cost box 3
|
||||
extra card field:
|
||||
type: choice
|
||||
name: loyalty cost box 4
|
||||
editable: false
|
||||
save value: false
|
||||
choice: loyalty cost box 4
|
||||
extra card field:
|
||||
type: choice
|
||||
name: loyalty cost box 5
|
||||
editable: false
|
||||
save value: false
|
||||
choice: loyalty cost box 5
|
||||
extra card field:
|
||||
type: choice
|
||||
name: loyalty cost box 6
|
||||
editable: false
|
||||
save value: false
|
||||
choice: loyalty cost box 6
|
||||
extra card field:
|
||||
type: choice
|
||||
name: textbox stripe separator 1
|
||||
editable: false
|
||||
save value: false
|
||||
choice: textbox stripe separator 1
|
||||
extra card field:
|
||||
type: choice
|
||||
name: textbox stripe separator 2
|
||||
editable: false
|
||||
save value: false
|
||||
choice: textbox stripe separator 2
|
||||
extra card field:
|
||||
type: choice
|
||||
name: textbox stripe separator 3
|
||||
editable: false
|
||||
save value: false
|
||||
choice: textbox stripe separator 3
|
||||
extra card field:
|
||||
type: choice
|
||||
name: textbox stripe separator 4
|
||||
editable: false
|
||||
save value: false
|
||||
choice: textbox stripe separator 4
|
||||
extra card field:
|
||||
type: choice
|
||||
name: textbox stripe separator 5
|
||||
editable: false
|
||||
save value: false
|
||||
choice: textbox stripe separator 5
|
||||
extra card field:
|
||||
type: choice
|
||||
name: art filter
|
||||
editable: false
|
||||
save value: false
|
||||
choice: art filter
|
||||
extra card style:
|
||||
pt box:
|
||||
left: 0
|
||||
top: 0
|
||||
width: { stylesheet.card_width }
|
||||
height: { stylesheet.card_height }
|
||||
z index: 820
|
||||
visible: { card.pt != "" }
|
||||
render style: image
|
||||
image:
|
||||
script:
|
||||
pure := pure_colors()
|
||||
count := length(pure)
|
||||
color := pt_colors()
|
||||
if color == "gold" and count > 1 then template("m", type: "pt")
|
||||
else if color == "land" and count > 1 then template("c", type: "pt")
|
||||
else if color == "hybrid" and count == 2 then masked_blend(mask: "special_blend_pt.png", dark: template(pure.0, type: "pt"), light: template(pure.1, type: "pt"))
|
||||
else card_ptbox()
|
||||
crown:
|
||||
left: 0
|
||||
top: 0
|
||||
width: { stylesheet.card_width }
|
||||
height: { stylesheet.card_height }
|
||||
z index: 310
|
||||
visible: { is_crowned() }
|
||||
render style: image
|
||||
image: { card_crown() }
|
||||
gold bars:
|
||||
left: 0
|
||||
top: 0
|
||||
width: { stylesheet.card_width }
|
||||
height: { stylesheet.card_height }
|
||||
z index: 310
|
||||
visible: { is_gold_barred() }
|
||||
render style: image
|
||||
image: gold_bars.png
|
||||
foil layer:
|
||||
left: 0
|
||||
top: 0
|
||||
width: { stylesheet.card_width }
|
||||
height: { stylesheet.card_height }
|
||||
z index: 1050
|
||||
visible: { styling.overlay != "none" and styling.overlay != "" }
|
||||
render style: image
|
||||
image: { if styling.overlay == "" then "" else styling.overlay + "/overlay.png" }
|
||||
card stamp background:
|
||||
left: 0
|
||||
top: 0
|
||||
width: { stylesheet.card_width }
|
||||
height: { stylesheet.card_height }
|
||||
z index: 600
|
||||
render style: image
|
||||
image: { if is_stamped() then card_stamprim() else card_nonstamprim() }
|
||||
loyalty cost box 1:
|
||||
left: 0
|
||||
top: 0
|
||||
width: { stylesheet.card_width }
|
||||
height: { stylesheet.card_height }
|
||||
z index: 810
|
||||
visible: { card.loyalty_cost_1 != "" and abilities_count() >= 1 }
|
||||
render style: image
|
||||
image: { card_loyaltycostbox(number: 1) }
|
||||
loyalty cost box 2:
|
||||
left: 0
|
||||
top: 0
|
||||
width: { stylesheet.card_width }
|
||||
height: { stylesheet.card_height }
|
||||
z index: 810
|
||||
visible: { card.loyalty_cost_2 != "" and abilities_count() >= 2 }
|
||||
render style: image
|
||||
image: { card_loyaltycostbox(number: 2) }
|
||||
loyalty cost box 3:
|
||||
left: 0
|
||||
top: 0
|
||||
width: { stylesheet.card_width }
|
||||
height: { stylesheet.card_height }
|
||||
z index: 810
|
||||
visible: { card.loyalty_cost_3 != "" and abilities_count() >= 3}
|
||||
render style: image
|
||||
image: { card_loyaltycostbox(number: 3) }
|
||||
loyalty cost box 4:
|
||||
left: 0
|
||||
top: 0
|
||||
width: { stylesheet.card_width }
|
||||
height: { stylesheet.card_height }
|
||||
z index: 810
|
||||
visible: { card.loyalty_cost_4 != "" and abilities_count() >= 4 }
|
||||
render style: image
|
||||
image: { card_loyaltycostbox(number: 4) }
|
||||
loyalty cost box 5:
|
||||
left: 0
|
||||
top: 0
|
||||
width: { stylesheet.card_width }
|
||||
height: { stylesheet.card_height }
|
||||
z index: 810
|
||||
visible: { card.loyalty_cost_5 != "" and abilities_count() >= 5 }
|
||||
render style: image
|
||||
image: { card_loyaltycostbox(number: 5) }
|
||||
loyalty cost box 6:
|
||||
left: 0
|
||||
top: 0
|
||||
width: { stylesheet.card_width }
|
||||
height: { stylesheet.card_height }
|
||||
z index: 810
|
||||
visible: { card.loyalty_cost_6 != "" and abilities_count() >= 6 }
|
||||
render style: image
|
||||
image: { card_loyaltycostbox(number: 6) }
|
||||
colon 1:
|
||||
left: 83
|
||||
top: { ability_center(1) - 25 + loyal_move(1) }
|
||||
width: 11
|
||||
height: 44
|
||||
z index: 1010
|
||||
visible: { card.loyalty_cost_1 != "" and abilities_count() >= 1 }
|
||||
font:
|
||||
name: Beleren Bold
|
||||
size: 26
|
||||
color: black
|
||||
alignment: center middle
|
||||
colon 2:
|
||||
left: 83
|
||||
top: { ability_center(2) - 25 + loyal_move(2) }
|
||||
width: 11
|
||||
height: 44
|
||||
z index: 1010
|
||||
visible: { card.loyalty_cost_2 != "" and abilities_count() >= 2 }
|
||||
font:
|
||||
name: Beleren Bold
|
||||
size: 26
|
||||
color: black
|
||||
alignment: center middle
|
||||
colon 3:
|
||||
left: 83
|
||||
top: { ability_center(3) - 25 + loyal_move(3) }
|
||||
width: 11
|
||||
height: 44
|
||||
z index: 1010
|
||||
visible: { card.loyalty_cost_3 != "" and abilities_count() >= 3 }
|
||||
font:
|
||||
name: Beleren Bold
|
||||
size: 26
|
||||
color: black
|
||||
alignment: center middle
|
||||
colon 4:
|
||||
left: 83
|
||||
top: { ability_center(4) - 25 + loyal_move(4) }
|
||||
width: 11
|
||||
height: 44
|
||||
z index: 1010
|
||||
visible: { card.loyalty_cost_4 != "" and abilities_count() >= 4 }
|
||||
font:
|
||||
name: Beleren Bold
|
||||
size: 26
|
||||
color: black
|
||||
alignment: center middle
|
||||
colon 5:
|
||||
left: 83
|
||||
top: { ability_center(5) - 25 + loyal_move(5) }
|
||||
width: 11
|
||||
height: 44
|
||||
z index: 1010
|
||||
visible: { card.loyalty_cost_5 != "" and abilities_count() >= 5 }
|
||||
font:
|
||||
name: Beleren Bold
|
||||
size: 26
|
||||
color: black
|
||||
alignment: center middle
|
||||
colon 6:
|
||||
left: 83
|
||||
top: { ability_center(6) - 25 + loyal_move(6) }
|
||||
width: 11
|
||||
height: 44
|
||||
z index: 1010
|
||||
visible: { card.loyalty_cost_6 != "" and abilities_count() >= 6 }
|
||||
font:
|
||||
name: Beleren Bold
|
||||
size: 26
|
||||
color: black
|
||||
alignment: center middle
|
||||
textbox stripe separator 1:
|
||||
left: 77
|
||||
width: 492
|
||||
top: { stripe_top(1) }
|
||||
height: 6
|
||||
z index: 710
|
||||
visible: { abilities_count() >= 2 }
|
||||
render style: image
|
||||
image: stripe_1.png
|
||||
textbox stripe separator 2:
|
||||
left: 77
|
||||
width: 492
|
||||
top: { stripe_top(2) }
|
||||
height: 6
|
||||
z index: 710
|
||||
visible: { abilities_count() >= 3 }
|
||||
render style: image
|
||||
image: stripe_2.png
|
||||
textbox stripe separator 3:
|
||||
left: 77
|
||||
width: 492
|
||||
top: { stripe_top(3) }
|
||||
height: 6
|
||||
z index: 710
|
||||
visible: { abilities_count() >= 4 }
|
||||
render style: image
|
||||
image: stripe_1.png
|
||||
textbox stripe separator 4:
|
||||
left: 77
|
||||
width: 492
|
||||
top: { stripe_top(4) }
|
||||
height: 6
|
||||
z index: 710
|
||||
visible: { abilities_count() >= 5 }
|
||||
render style: image
|
||||
image: stripe_2.png
|
||||
textbox stripe separator 5:
|
||||
left: 77
|
||||
width: 492
|
||||
top: { stripe_top(5) }
|
||||
height: 6
|
||||
z index: 710
|
||||
visible: { abilities_count() >= 6 }
|
||||
render style: image
|
||||
image: stripe_1.png
|
||||
art filter:
|
||||
left: 0
|
||||
top: 0
|
||||
width: { stylesheet.card_width }
|
||||
height: { stylesheet.card_height }
|
||||
z index: 10
|
||||
render style: image
|
||||
image: { set_alpha("art_filter.png", alpha: get_alpha_percentage(styling.art_filter_opacity_percentage, default: 80)) }
|
||||