Add UNF full art basics (#118)
* Add UNF full art basics * improve full art basics automation implementation * fix z index on basic land symbol textbox
@@ -13,7 +13,7 @@ __More New Templates__
|
|||||||
Thanks to GenevensiS for their continued work on keeping up with the Showcases!
|
Thanks to GenevensiS for their continued work on keeping up with the Showcases!
|
||||||
• Add the Aetherdrift First Place, First Place Planeswalker, and First Place Full Art land frames. Without access to the Space Cadet font, we don't plan to make the Rude Riders variant.
|
• Add the Aetherdrift First Place, First Place Planeswalker, and First Place Full Art land frames. Without access to the Space Cadet font, we don't plan to make the Rude Riders variant.
|
||||||
• Added the MKM Magnified Showcase frame
|
• Added the MKM Magnified Showcase frame
|
||||||
• Added the ONE and LCI Full Art land frames
|
• Added the UNF, ONE, LCI Full Art land frames. Those and NEO have code to detect or manually select up to two basic types.
|
||||||
• Added the Mechanic Reminder frame, for things like Start your engines!
|
• Added the Mechanic Reminder frame, for things like Start your engines!
|
||||||
|
|
||||||
__Template Code Updates__
|
__Template Code Updates__
|
||||||
@@ -21,4 +21,5 @@ __Template Code Updates__
|
|||||||
|
|
||||||
__Bug Fixes__
|
__Bug Fixes__
|
||||||
• Fixed a bug where hybrid Adventure pages were blending incorrectly.
|
• Fixed a bug where hybrid Adventure pages were blending incorrectly.
|
||||||
• Fixed a bug where the Set tab Inverted Common Symbol wasn't working on most frames.
|
• Fixed a bug where the Set tab Inverted Common Symbol wasn't working on most frames.
|
||||||
|
• Fixed a bug in Full Art Lands w/Basic Land Symbol where the textbox effect wasn't displaying.
|
||||||
@@ -801,7 +801,7 @@ extra card style:
|
|||||||
top: 0
|
top: 0
|
||||||
width: { textbox_width() }
|
width: { textbox_width() }
|
||||||
height: { textbox_height() }
|
height: { textbox_height() }
|
||||||
z index: 50
|
z index: 105
|
||||||
render style: image
|
render style: image
|
||||||
image: { textbox_image() }
|
image: { textbox_image() }
|
||||||
mask: { textbox_mask() }
|
mask: { textbox_mask() }
|
||||||
|
|||||||
@@ -54,83 +54,85 @@ init script:
|
|||||||
italic: {""}
|
italic: {""}
|
||||||
]
|
]
|
||||||
|
|
||||||
two_types := { styling.second_land_type != "none" }
|
land_types := [["plains"], ["island"], ["swamp"], ["mountain"], ["forest"], ["wastes"]]
|
||||||
|
land_type_of := {
|
||||||
card_symbol :=
|
result := "none"
|
||||||
{
|
option := if input == 2 then styling.second_land_type else styling.land_type
|
||||||
first := "symbol/" + type_to_letter_map[styling.land_type] + ".png"
|
if option == "auto" then (
|
||||||
if not two_types() then first else (
|
ar := break_text(card.sub_type, match:"<word-list-land>[^<]+</word-list-land>")
|
||||||
second := "symbol/" + type_to_letter_map[styling.second_land_type] + ".png"
|
given := if length(ar) >= input then to_lower(remove_tags(ar[input-1])) else "none"
|
||||||
linear_blend(
|
if input == 1 and position(of:[to_lower(card.name)], in:land_types) >= 0 then result := to_lower(card.name)
|
||||||
image1: first,
|
else if include_types and position(of:[given], in:land_types) >= 0 then result := given
|
||||||
image2: second,
|
)
|
||||||
x1: 0.49, y1: 0,
|
else result := option
|
||||||
x2: 0.51, y2: 0
|
result
|
||||||
))
|
}@(include_types:true)
|
||||||
|
land_type_1 := { land_type_of(1, include_types:include_types) }@(include_types:true)
|
||||||
|
land_type_2 := { land_type_of(2, include_types:include_types) }@(include_types:true)
|
||||||
|
land_type_count := {
|
||||||
|
count := 0
|
||||||
|
lt1 := land_type_1()
|
||||||
|
lt2 := land_type_2()
|
||||||
|
if lt1 != "none" then count := count + 1
|
||||||
|
if lt2 != "none" and lt2 != lt1 then count := count + 1
|
||||||
|
count
|
||||||
}
|
}
|
||||||
|
no_types := { land_type_count() == 0 }
|
||||||
|
two_types := { land_type_count() == 2 }
|
||||||
|
|
||||||
card_full_name := { value }
|
modified_color := {
|
||||||
card_full_name_default := { type_to_name_map[styling.land_type + "," + styling.second_land_type] }
|
t1 := land_type_1()
|
||||||
name_default := { type_to_name_map[styling.land_type + "," + styling.second_land_type] }
|
t2 := land_type_2()
|
||||||
|
t3 := if t1 == "none" then t2 else t1
|
||||||
super_type_filter_default := { (if two_types() then "" else "Basic ") + "Land" }
|
|
||||||
|
if t3 == "none"
|
||||||
|
then card.card_color ## double none, revert to real card color
|
||||||
|
else if t1 == "none" or t2 == "none"
|
||||||
|
then type_to_word_map[t3] ## single none, use that
|
||||||
|
else (
|
||||||
|
c1 := type_to_word_map[t1]
|
||||||
|
c2 := type_to_word_map[t2]
|
||||||
|
c3 := if c1 == "colorless" then c2 else c1
|
||||||
|
if c3 == "colorless"
|
||||||
|
then "colorless" ## double colorless, use that
|
||||||
|
else if c1 == "colorless" or c2 == "colorless" or c1 == c2
|
||||||
|
then c3 ## color + colorless or double color, use the color
|
||||||
|
else ( ## combine colors, multi, reverse if needed
|
||||||
|
normal_order := normal_order_map["{c1},{c2}"] or else false
|
||||||
|
"{c1}, {c2}, multicolor, horizontal" + (if not normal_order then ", reversed" else "")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
normal_order_map := [
|
||||||
|
"white,blue": true,
|
||||||
|
"white,black": true,
|
||||||
|
"blue,black": true,
|
||||||
|
"blue,red": true,
|
||||||
|
"black,red": true,
|
||||||
|
"black,green": true,
|
||||||
|
"red,green": true,
|
||||||
|
"red,white": true,
|
||||||
|
"green,white": true,
|
||||||
|
"green,blue": true
|
||||||
|
]
|
||||||
|
super_type_filter_default := {
|
||||||
|
if two_types() then "Land" else "Basic Land"
|
||||||
|
}
|
||||||
sub_type_filter_default :=
|
sub_type_filter_default :=
|
||||||
{
|
{
|
||||||
base := to_title(styling.land_type) + (if two_types() then " " + to_title(styling.second_land_type) else "")
|
t1 := land_type_1(include_types:false)
|
||||||
if base == "Wastes" then "" else base
|
t2 := land_type_2(include_types:false)
|
||||||
|
if t1 == "wastes" or t1 == "none" then t1 := ""
|
||||||
|
if t2 == "wastes" or t2 == "none" then t2 := ""
|
||||||
|
c1 := type_to_word_map[t1]
|
||||||
|
c2 := type_to_word_map[t2]
|
||||||
|
normal_order := normal_order_map["{c1},{c2}"] or else false
|
||||||
|
|
||||||
|
lower_type := if normal_order then t1 + (if t1 != "" then " " else "") + t2
|
||||||
|
else t2 + (if t2 != "" then " " else "") + t1
|
||||||
|
to_title(lower_type)
|
||||||
}
|
}
|
||||||
|
|
||||||
type_to_name_map :=
|
|
||||||
[
|
|
||||||
"plains,none": "Plains",
|
|
||||||
"island,none": "Island",
|
|
||||||
"swamp,none": "Swamp",
|
|
||||||
"mountain,none": "Mountain",
|
|
||||||
"forest,none": "Forest",
|
|
||||||
"wastes,none": "Wastes",
|
|
||||||
|
|
||||||
"plains,wastes": "Wasted Plains",
|
|
||||||
"island,wastes": "Wasted Island",
|
|
||||||
"swamp,wastes": "Wasted Swamp",
|
|
||||||
"mountain,wastes": "Wasted Mountain",
|
|
||||||
"forest,wastes": "Wasted Forest",
|
|
||||||
"wastes,wastes": "Wastes",
|
|
||||||
|
|
||||||
"plains,plains": "Plains",
|
|
||||||
"island,plains": "Tundra",
|
|
||||||
"swamp,plains": "Scrubland",
|
|
||||||
"mountain,plains": "Plateau",
|
|
||||||
"forest,plains": "Savannah",
|
|
||||||
"wastes,plains": "Wasted Plains",
|
|
||||||
|
|
||||||
"plains,island": "Tundra",
|
|
||||||
"island,island": "Island",
|
|
||||||
"swamp,island": "Underground Sea",
|
|
||||||
"mountain,island": "Volcanic Island",
|
|
||||||
"forest,island": "Tropical Island",
|
|
||||||
"wastes,island": "Wasted Island",
|
|
||||||
|
|
||||||
"plains,swamp": "Scrubland",
|
|
||||||
"island,swamp": "Underground Sea",
|
|
||||||
"swamp,swamp": "Swamp",
|
|
||||||
"mountain,swamp": "Badlands",
|
|
||||||
"forest,swamp": "Bayou",
|
|
||||||
"wastes,swamp": "Wasted Swamp",
|
|
||||||
|
|
||||||
"plains,mountain": "Plateau",
|
|
||||||
"island,mountain": "Volcanic Island",
|
|
||||||
"swamp,mountain": "Badlands",
|
|
||||||
"mountain,mountain": "Mountain",
|
|
||||||
"forest,mountain": "Taiga",
|
|
||||||
"wastes,mountain": "Wasted Mountain",
|
|
||||||
|
|
||||||
"plains,forest": "Savannah",
|
|
||||||
"island,forest": "Tropical Island",
|
|
||||||
"swamp,forest": "Bayou",
|
|
||||||
"mountain,forest": "Taiga",
|
|
||||||
"forest,forest": "Forest",
|
|
||||||
"wastes,forest": "Wasted Forest"
|
|
||||||
]
|
|
||||||
type_to_letter_map :=
|
type_to_letter_map :=
|
||||||
[
|
[
|
||||||
plains: "w",
|
plains: "w",
|
||||||
@@ -141,16 +143,30 @@ init script:
|
|||||||
wastes: "c",
|
wastes: "c",
|
||||||
none: "none"
|
none: "none"
|
||||||
]
|
]
|
||||||
type_to_color_map :=
|
type_to_word_map := [
|
||||||
[
|
plains: "white",
|
||||||
plains: ", white",
|
island: "blue",
|
||||||
island: ", blue",
|
swamp: "black",
|
||||||
swamp: ", black",
|
mountain: "red",
|
||||||
mountain: ", red",
|
forest: "green",
|
||||||
forest: ", green",
|
wastes: "colorless",
|
||||||
wastes: "",
|
none: "",
|
||||||
none: ", none"
|
"": ""
|
||||||
]
|
]
|
||||||
|
card_symbol :=
|
||||||
|
{
|
||||||
|
t1 := land_type_1()
|
||||||
|
t2 := land_type_2()
|
||||||
|
t3 := if t1 == "none" then t2 else t1
|
||||||
|
if t1 != "none" and t2 != "none" then linear_blend(
|
||||||
|
image1: "symbol/" + type_to_letter_map[t1] + ".png",
|
||||||
|
image2: "symbol/" + type_to_letter_map[t2] + ".png",
|
||||||
|
x1: 0.49, y1: 0,
|
||||||
|
x2: 0.51, y2: 0
|
||||||
|
)
|
||||||
|
else "symbol/" + type_to_letter_map[t3] + ".png"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
is_promo := { styling.promo }
|
is_promo := { styling.promo }
|
||||||
|
|
||||||
@@ -161,7 +177,7 @@ init script:
|
|||||||
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_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 }
|
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 }
|
||||||
|
|
||||||
mountain_symbol_offset := { if styling.second_land_type == "mountain" or styling.land_type == "mountain" then -76 else 0 }
|
mountain_symbol_offset := { if land_type_1() == "mountain" or land_type_2() == "mountain" then -76 else 0 }
|
||||||
|
|
||||||
############################################################## Extra style options
|
############################################################## Extra style options
|
||||||
|
|
||||||
@@ -169,19 +185,8 @@ styling field:
|
|||||||
type: choice
|
type: choice
|
||||||
name: land type
|
name: land type
|
||||||
description: What type is this card?
|
description: What type is this card?
|
||||||
choice: plains
|
|
||||||
choice: island
|
|
||||||
choice: swamp
|
|
||||||
choice: mountain
|
|
||||||
choice: forest
|
|
||||||
choice: wastes
|
|
||||||
initial: plains
|
|
||||||
styling field:
|
|
||||||
type: choice
|
|
||||||
name: second land type
|
|
||||||
description: What type is this card?
|
|
||||||
choice:
|
choice:
|
||||||
name: none
|
name: auto
|
||||||
line below: true
|
line below: true
|
||||||
choice: plains
|
choice: plains
|
||||||
choice: island
|
choice: island
|
||||||
@@ -189,7 +194,23 @@ styling field:
|
|||||||
choice: mountain
|
choice: mountain
|
||||||
choice: forest
|
choice: forest
|
||||||
choice: wastes
|
choice: wastes
|
||||||
initial: none
|
choice: none
|
||||||
|
initial: auto
|
||||||
|
styling field:
|
||||||
|
type: choice
|
||||||
|
name: second land type
|
||||||
|
description: What type is this card?
|
||||||
|
choice:
|
||||||
|
name: auto
|
||||||
|
line below: true
|
||||||
|
choice: plains
|
||||||
|
choice: island
|
||||||
|
choice: swamp
|
||||||
|
choice: mountain
|
||||||
|
choice: forest
|
||||||
|
choice: wastes
|
||||||
|
choice: none
|
||||||
|
initial: auto
|
||||||
styling field:
|
styling field:
|
||||||
type: text
|
type: text
|
||||||
name: popout art coordinates
|
name: popout art coordinates
|
||||||
@@ -329,16 +350,17 @@ extra card style:
|
|||||||
height: 49
|
height: 49
|
||||||
z index: 3000
|
z index: 3000
|
||||||
render style: image
|
render style: image
|
||||||
image: { "type/" + type_to_letter_map[styling.land_type] + ".png" }
|
visible: { land_type_1() != "none" }
|
||||||
|
image: { "type/" + type_to_letter_map[land_type_1()] + ".png" }
|
||||||
second type:
|
second type:
|
||||||
left: 244
|
left: 244
|
||||||
top: 857
|
top: 857
|
||||||
width: 420
|
width: 420
|
||||||
height: 49
|
height: 49
|
||||||
z index: 3000
|
z index: 3000
|
||||||
visible: { two_types() }
|
visible: { land_type_2() != "none" }
|
||||||
render style: image
|
render style: image
|
||||||
image: { "type/" + type_to_letter_map[styling.second_land_type] + ".png" }
|
image: { "type/" + type_to_letter_map[land_type_2()] + ".png" }
|
||||||
symbol:
|
symbol:
|
||||||
left: { 156 + mountain_symbol_offset() }
|
left: { 156 + mountain_symbol_offset() }
|
||||||
top: 779
|
top: 779
|
||||||
@@ -355,7 +377,7 @@ extra card style:
|
|||||||
z index: 3000
|
z index: 3000
|
||||||
visible: { not two_types() and not styling.hide_basic_land_text }
|
visible: { not two_types() and not styling.hide_basic_land_text }
|
||||||
render style: image
|
render style: image
|
||||||
image: { "basic_land/" + type_to_letter_map[styling.land_type] + ".png" }
|
image: { "basic_land/" + type_to_letter_map[land_type_1()] + ".png" }
|
||||||
foil layer:
|
foil layer:
|
||||||
left: 0
|
left: 0
|
||||||
top: 0
|
top: 0
|
||||||
|
|||||||
@@ -77,93 +77,85 @@ init script:
|
|||||||
template_prefix[type] + (if input == "a" then "c" else input) + template_suffix[type]
|
template_prefix[type] + (if input == "a" then "c" else input) + template_suffix[type]
|
||||||
}
|
}
|
||||||
|
|
||||||
two_types := { styling.second_land_type != "none" }
|
land_types := [["plains"], ["island"], ["swamp"], ["mountain"], ["forest"], ["wastes"]]
|
||||||
|
land_type_of := {
|
||||||
card_background :=
|
result := "none"
|
||||||
{
|
option := if input == 2 then styling.second_land_type else styling.land_type
|
||||||
first_color := "card/" + type_to_letter_map[styling.land_type] + "card.png"
|
if option == "auto" then (
|
||||||
if not two_types() then first_color else (
|
ar := break_text(card.sub_type, match:"<word-list-land>[^<]+</word-list-land>")
|
||||||
second_color := "card/" + type_to_letter_map[styling.second_land_type] + "card.png"
|
given := if length(ar) >= input then to_lower(remove_tags(ar[input-1])) else "none"
|
||||||
linear_blend(
|
if input == 1 and position(of:[to_lower(card.name)], in:land_types) >= 0 then result := to_lower(card.name)
|
||||||
image1: first_color,
|
else if include_types and position(of:[given], in:land_types) >= 0 then result := given
|
||||||
image2: second_color,
|
)
|
||||||
x1: 0.3, y1: 0,
|
else result := option
|
||||||
x2: 0.7, y2: 0
|
result
|
||||||
))
|
}@(include_types:true)
|
||||||
}
|
land_type_1 := { land_type_of(1, include_types:include_types) }@(include_types:true)
|
||||||
card_color :=
|
land_type_2 := { land_type_of(2, include_types:include_types) }@(include_types:true)
|
||||||
{
|
land_type_count := {
|
||||||
if not two_types() then substring(type_to_color_map[styling.land_type] + ", land", begin: 2)
|
count := 0
|
||||||
else substring(type_to_color_map[styling.land_type] + type_to_color_map[styling.second_land_type] + ", land, horizontal", begin: 2)
|
lt1 := land_type_1()
|
||||||
}
|
lt2 := land_type_2()
|
||||||
card_color_filter :=
|
if lt1 != "none" then count := count + 1
|
||||||
{
|
if lt2 != "none" and lt2 != lt1 then count := count + 1
|
||||||
if not two_types() then substring(type_to_color_map[styling.land_type] + ", land", begin: 2)
|
count
|
||||||
else substring(type_to_color_map[styling.land_type] + type_to_color_map[styling.second_land_type] + ", land, horizontal", begin: 2)
|
|
||||||
}
|
}
|
||||||
|
no_types := { land_type_count() == 0 }
|
||||||
|
two_types := { land_type_count() == 2 }
|
||||||
|
|
||||||
card_full_name := { value }
|
modified_color := {
|
||||||
card_full_name_default := { type_to_name_map[styling.land_type + "," + styling.second_land_type] }
|
t1 := land_type_1()
|
||||||
name_default := { type_to_name_map[styling.land_type + "," + styling.second_land_type] }
|
t2 := land_type_2()
|
||||||
|
t3 := if t1 == "none" then t2 else t1
|
||||||
super_type_filter_default := { (if two_types() then "" else "Basic ") + "Land" }
|
|
||||||
|
if t3 == "none"
|
||||||
|
then card.card_color ## double none, revert to real card color
|
||||||
|
else if t1 == "none" or t2 == "none"
|
||||||
|
then type_to_word_map[t3] ## single none, use that
|
||||||
|
else (
|
||||||
|
c1 := type_to_word_map[t1]
|
||||||
|
c2 := type_to_word_map[t2]
|
||||||
|
c3 := if c1 == "colorless" then c2 else c1
|
||||||
|
if c3 == "colorless"
|
||||||
|
then "colorless" ## double colorless, use that
|
||||||
|
else if c1 == "colorless" or c2 == "colorless" or c1 == c2
|
||||||
|
then c3 ## color + colorless or double color, use the color
|
||||||
|
else ( ## combine colors, multi, reverse if needed
|
||||||
|
normal_order := normal_order_map["{c1},{c2}"] or else false
|
||||||
|
"{c1}, {c2}, multicolor, horizontal" + (if not normal_order then ", reversed" else "")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
normal_order_map := [
|
||||||
|
"white,blue": true,
|
||||||
|
"white,black": true,
|
||||||
|
"blue,black": true,
|
||||||
|
"blue,red": true,
|
||||||
|
"black,red": true,
|
||||||
|
"black,green": true,
|
||||||
|
"red,green": true,
|
||||||
|
"red,white": true,
|
||||||
|
"green,white": true,
|
||||||
|
"green,blue": true
|
||||||
|
]
|
||||||
|
super_type_filter_default := {
|
||||||
|
if two_types() then "Land" else "Basic Land"
|
||||||
|
}
|
||||||
sub_type_filter_default :=
|
sub_type_filter_default :=
|
||||||
{
|
{
|
||||||
base := to_title(styling.land_type) + (if two_types() then " " + to_title(styling.second_land_type) else "")
|
t1 := land_type_1(include_types:false)
|
||||||
if base == "Wastes" then "" else base
|
t2 := land_type_2(include_types:false)
|
||||||
|
if t1 == "wastes" or t1 == "none" then t1 := ""
|
||||||
|
if t2 == "wastes" or t2 == "none" then t2 := ""
|
||||||
|
c1 := type_to_word_map[t1]
|
||||||
|
c2 := type_to_word_map[t2]
|
||||||
|
normal_order := normal_order_map["{c1},{c2}"] or else false
|
||||||
|
|
||||||
|
lower_type := if normal_order then t1 + (if t1 != "" then " " else "") + t2
|
||||||
|
else t2 + (if t2 != "" then " " else "") + t1
|
||||||
|
to_title(lower_type)
|
||||||
}
|
}
|
||||||
|
|
||||||
type_to_name_map :=
|
|
||||||
[
|
|
||||||
"plains,none": "Plains",
|
|
||||||
"island,none": "Island",
|
|
||||||
"swamp,none": "Swamp",
|
|
||||||
"mountain,none": "Mountain",
|
|
||||||
"forest,none": "Forest",
|
|
||||||
"wastes,none": "Wastes",
|
|
||||||
|
|
||||||
"plains,wastes": "Wasted Plains",
|
|
||||||
"island,wastes": "Wasted Island",
|
|
||||||
"swamp,wastes": "Wasted Swamp",
|
|
||||||
"mountain,wastes": "Wasted Mountain",
|
|
||||||
"forest,wastes": "Wasted Forest",
|
|
||||||
"wastes,wastes": "Wastes",
|
|
||||||
|
|
||||||
"plains,plains": "Plains",
|
|
||||||
"island,plains": "Tundra",
|
|
||||||
"swamp,plains": "Scrubland",
|
|
||||||
"mountain,plains": "Plateau",
|
|
||||||
"forest,plains": "Savannah",
|
|
||||||
"wastes,plains": "Wasted Plains",
|
|
||||||
|
|
||||||
"plains,island": "Tundra",
|
|
||||||
"island,island": "Island",
|
|
||||||
"swamp,island": "Underground Sea",
|
|
||||||
"mountain,island": "Volcanic Island",
|
|
||||||
"forest,island": "Tropical Island",
|
|
||||||
"wastes,island": "Wasted Island",
|
|
||||||
|
|
||||||
"plains,swamp": "Scrubland",
|
|
||||||
"island,swamp": "Underground Sea",
|
|
||||||
"swamp,swamp": "Swamp",
|
|
||||||
"mountain,swamp": "Badlands",
|
|
||||||
"forest,swamp": "Bayou",
|
|
||||||
"wastes,swamp": "Wasted Swamp",
|
|
||||||
|
|
||||||
"plains,mountain": "Plateau",
|
|
||||||
"island,mountain": "Volcanic Island",
|
|
||||||
"swamp,mountain": "Badlands",
|
|
||||||
"mountain,mountain": "Mountain",
|
|
||||||
"forest,mountain": "Taiga",
|
|
||||||
"wastes,mountain": "Wasted Mountain",
|
|
||||||
|
|
||||||
"plains,forest": "Savannah",
|
|
||||||
"island,forest": "Tropical Island",
|
|
||||||
"swamp,forest": "Bayou",
|
|
||||||
"mountain,forest": "Taiga",
|
|
||||||
"forest,forest": "Forest",
|
|
||||||
"wastes,forest": "Wasted Forest"
|
|
||||||
]
|
|
||||||
type_to_letter_map :=
|
type_to_letter_map :=
|
||||||
[
|
[
|
||||||
plains: "w",
|
plains: "w",
|
||||||
@@ -174,17 +166,34 @@ init script:
|
|||||||
wastes: "c",
|
wastes: "c",
|
||||||
none: "none"
|
none: "none"
|
||||||
]
|
]
|
||||||
type_to_color_map :=
|
type_to_word_map := [
|
||||||
[
|
plains: "white",
|
||||||
plains: ", white",
|
island: "blue",
|
||||||
island: ", blue",
|
swamp: "black",
|
||||||
swamp: ", black",
|
mountain: "red",
|
||||||
mountain: ", red",
|
forest: "green",
|
||||||
forest: ", green",
|
wastes: "colorless",
|
||||||
wastes: "",
|
none: "",
|
||||||
none: ", none"
|
"": ""
|
||||||
]
|
]
|
||||||
|
card_background :=
|
||||||
|
{
|
||||||
|
t1 := land_type_1()
|
||||||
|
t2 := land_type_2()
|
||||||
|
t3 := if t1 == "none" then t2 else t1
|
||||||
|
if two_types() then (
|
||||||
|
linear_blend(
|
||||||
|
image1: "card/{type_to_letter_map[t1]}card.png",
|
||||||
|
image2: "card/{type_to_letter_map[t2]}card.png",
|
||||||
|
x1: 0.3, y1: 0,
|
||||||
|
x2: 0.7, y2: 0
|
||||||
|
)
|
||||||
|
)
|
||||||
|
else if t3 == "none"
|
||||||
|
then "card/ccard.png"
|
||||||
|
else "card/{type_to_letter_map[t3]}card.png"
|
||||||
|
}
|
||||||
|
|
||||||
is_promo := { styling.promo }
|
is_promo := { styling.promo }
|
||||||
|
|
||||||
is_unsorted := { styling.remove_from_autocount }
|
is_unsorted := { styling.remove_from_autocount }
|
||||||
@@ -198,15 +207,15 @@ init script:
|
|||||||
{
|
{
|
||||||
"mask_name" +
|
"mask_name" +
|
||||||
(if two_types() then "_dual" else "") +
|
(if two_types() then "_dual" else "") +
|
||||||
(if styling.second_land_type == "plains" or styling.second_land_type == "wastes" or styling.land_type == "plains" or styling.land_type == "wastes" then "_plains" else "") +
|
(if land_type_1() == "plains" or land_type_1() == "wastes" or land_type_2() == "plains" or land_type_2() == "wastes" then "_plains" else "") +
|
||||||
".png"
|
".png"
|
||||||
}
|
}
|
||||||
|
|
||||||
plains_symbol_offset := { if styling.second_land_type == "plains" or styling.second_land_type == "wastes" or styling.land_type == "plains" or styling.land_type == "wastes" then 150 else 0 }
|
plains_symbol_offset := { if land_type_1() == "plains" or land_type_1() == "wastes" or land_type_2() == "plains" or land_type_2() == "wastes" then 150 else 0 }
|
||||||
symbol_offset := { if two_types() then 180 else 0 }
|
symbol_offset := { if two_types() then 180 else 0 }
|
||||||
two_two :=
|
two_two :=
|
||||||
{
|
{
|
||||||
(styling.second_land_type == "plains" or styling.second_land_type == "wastes") and (styling.land_type == "plains" or styling.land_type == "wastes")
|
(land_type_1() == "plains" or land_type_1() == "wastes") and (land_type_2() == "plains" or land_type_2() == "wastes")
|
||||||
}
|
}
|
||||||
|
|
||||||
############################################################## Extra style options
|
############################################################## Extra style options
|
||||||
@@ -215,19 +224,8 @@ styling field:
|
|||||||
type: choice
|
type: choice
|
||||||
name: land type
|
name: land type
|
||||||
description: What type is this card?
|
description: What type is this card?
|
||||||
choice: plains
|
|
||||||
choice: island
|
|
||||||
choice: swamp
|
|
||||||
choice: mountain
|
|
||||||
choice: forest
|
|
||||||
choice: wastes
|
|
||||||
initial: plains
|
|
||||||
styling field:
|
|
||||||
type: choice
|
|
||||||
name: second land type
|
|
||||||
description: What type is this card?
|
|
||||||
choice:
|
choice:
|
||||||
name: none
|
name: auto
|
||||||
line below: true
|
line below: true
|
||||||
choice: plains
|
choice: plains
|
||||||
choice: island
|
choice: island
|
||||||
@@ -235,7 +233,23 @@ styling field:
|
|||||||
choice: mountain
|
choice: mountain
|
||||||
choice: forest
|
choice: forest
|
||||||
choice: wastes
|
choice: wastes
|
||||||
initial: none
|
choice: none
|
||||||
|
initial: auto
|
||||||
|
styling field:
|
||||||
|
type: choice
|
||||||
|
name: second land type
|
||||||
|
description: What type is this card?
|
||||||
|
choice:
|
||||||
|
name: auto
|
||||||
|
line below: true
|
||||||
|
choice: plains
|
||||||
|
choice: island
|
||||||
|
choice: swamp
|
||||||
|
choice: mountain
|
||||||
|
choice: forest
|
||||||
|
choice: wastes
|
||||||
|
choice: none
|
||||||
|
initial: auto
|
||||||
styling field:
|
styling field:
|
||||||
type: text
|
type: text
|
||||||
name: popout art coordinates
|
name: popout art coordinates
|
||||||
@@ -346,7 +360,7 @@ extra card field:
|
|||||||
script:
|
script:
|
||||||
styling.land_type
|
styling.land_type
|
||||||
styling.second_land_type
|
styling.second_land_type
|
||||||
card_color()
|
modified_color()
|
||||||
extra card field:
|
extra card field:
|
||||||
type: choice
|
type: choice
|
||||||
name: first type
|
name: first type
|
||||||
@@ -416,19 +430,20 @@ extra card style:
|
|||||||
height: { if two_two() then 225 else 295 }
|
height: { if two_two() then 225 else 295 }
|
||||||
z index: 3000
|
z index: 3000
|
||||||
render style: image
|
render style: image
|
||||||
image: { recolor_image("type_" + styling.land_type + ".png", color: styling.text_color) }
|
visible: { land_type_1() != "none" }
|
||||||
|
image: { recolor_image("type_" + land_type_1() + ".png", color: styling.text_color) }
|
||||||
second type:
|
second type:
|
||||||
left: { if two_two() then 91 else 76 }
|
left: { if two_two() then 91 else 76 }
|
||||||
top: { 272 + (if styling.land_type == "plains" or styling.land_type == "wastes" then 140 else 0) - (if two_two() then 70 else 0) }
|
top: { 272 + (if styling.land_type == "plains" or styling.land_type == "wastes" then 140 else 0) - (if two_two() then 70 else 0) }
|
||||||
width: { if two_two() then 130 else 160 }
|
width: { if two_two() then 130 else 160 }
|
||||||
height: { if two_two() then 225 else 295 }
|
height: { if two_two() then 225 else 295 }
|
||||||
z index: 3000
|
z index: 3000
|
||||||
visible: { two_types() }
|
visible: { land_type_2() != "none" }
|
||||||
render style: image
|
render style: image
|
||||||
image: { recolor_image("type_" + styling.second_land_type + ".png", color: styling.text_color) }
|
image: { recolor_image("type_" + land_type_2() + ".png", color: styling.text_color) }
|
||||||
type separator:
|
type separator:
|
||||||
left: 76
|
left: 76
|
||||||
top: { 240 + (if styling.land_type == "plains" or styling.land_type == "wastes" then 136 else 0) - (if two_two() then 68 else 0) }
|
top: { 240 + (if land_type_1() == "plains" or land_type_1() == "wastes" then 136 else 0) - (if two_two() then 68 else 0) }
|
||||||
width: 160
|
width: 160
|
||||||
height: 30
|
height: 30
|
||||||
z index: 3000
|
z index: 3000
|
||||||
@@ -442,16 +457,17 @@ extra card style:
|
|||||||
height: 164
|
height: 164
|
||||||
z index: 3000
|
z index: 3000
|
||||||
render style: image
|
render style: image
|
||||||
image: { recolor_image("symbol_" + styling.land_type + ".png", color: styling.text_color) }
|
visible: { land_type_1() != "none" }
|
||||||
|
image: { recolor_image("symbol_" + land_type_1() + ".png", color: styling.text_color) }
|
||||||
second symbol:
|
second symbol:
|
||||||
left: 76
|
left: 76
|
||||||
top: { 401 + plains_symbol_offset() + symbol_offset() }
|
top: { 401 + plains_symbol_offset() + symbol_offset() }
|
||||||
width: 160
|
width: 160
|
||||||
height: 164
|
height: 164
|
||||||
z index: 3000
|
z index: 3000
|
||||||
visible: { two_types() }
|
visible: { land_type_2() != "none" }
|
||||||
render style: image
|
render style: image
|
||||||
image: { recolor_image("symbol_" + styling.second_land_type + ".png", color: styling.text_color) }
|
image: { recolor_image("symbol_" + land_type_2() + ".png", color: styling.text_color) }
|
||||||
foil layer:
|
foil layer:
|
||||||
left: 0
|
left: 0
|
||||||
top: 0
|
top: 0
|
||||||
|
|||||||
@@ -54,83 +54,85 @@ init script:
|
|||||||
italic: {""}
|
italic: {""}
|
||||||
]
|
]
|
||||||
|
|
||||||
two_types := { styling.second_land_type != "none" }
|
land_types := [["plains"], ["island"], ["swamp"], ["mountain"], ["forest"], ["wastes"]]
|
||||||
|
land_type_of := {
|
||||||
card_symbol :=
|
result := "none"
|
||||||
{
|
option := if input == 2 then styling.second_land_type else styling.land_type
|
||||||
first := "symbol/" + type_to_letter_map[styling.land_type] + ".png"
|
if option == "auto" then (
|
||||||
if not two_types() then first else (
|
ar := break_text(card.sub_type, match:"<word-list-land>[^<]+</word-list-land>")
|
||||||
second := "symbol/" + type_to_letter_map[styling.second_land_type] + ".png"
|
given := if length(ar) >= input then to_lower(remove_tags(ar[input-1])) else "none"
|
||||||
linear_blend(
|
if input == 1 and position(of:[to_lower(card.name)], in:land_types) >= 0 then result := to_lower(card.name)
|
||||||
image1: first,
|
else if include_types and position(of:[given], in:land_types) >= 0 then result := given
|
||||||
image2: second,
|
)
|
||||||
x1: 0.49, y1: 0,
|
else result := option
|
||||||
x2: 0.51, y2: 0
|
result
|
||||||
))
|
}@(include_types:true)
|
||||||
|
land_type_1 := { land_type_of(1, include_types:include_types) }@(include_types:true)
|
||||||
|
land_type_2 := { land_type_of(2, include_types:include_types) }@(include_types:true)
|
||||||
|
land_type_count := {
|
||||||
|
count := 0
|
||||||
|
lt1 := land_type_1()
|
||||||
|
lt2 := land_type_2()
|
||||||
|
if lt1 != "none" then count := count + 1
|
||||||
|
if lt2 != "none" and lt2 != lt1 then count := count + 1
|
||||||
|
count
|
||||||
}
|
}
|
||||||
|
no_types := { land_type_count() == 0 }
|
||||||
|
two_types := { land_type_count() == 2 }
|
||||||
|
|
||||||
card_full_name := { value }
|
modified_color := {
|
||||||
card_full_name_default := { type_to_name_map[styling.land_type + "," + styling.second_land_type] }
|
t1 := land_type_1()
|
||||||
name_default := { type_to_name_map[styling.land_type + "," + styling.second_land_type] }
|
t2 := land_type_2()
|
||||||
|
t3 := if t1 == "none" then t2 else t1
|
||||||
super_type_filter_default := { (if two_types() then "" else "Basic ") + "Land" }
|
|
||||||
|
if t3 == "none"
|
||||||
|
then card.card_color ## double none, revert to real card color
|
||||||
|
else if t1 == "none" or t2 == "none"
|
||||||
|
then type_to_word_map[t3] ## single none, use that
|
||||||
|
else (
|
||||||
|
c1 := type_to_word_map[t1]
|
||||||
|
c2 := type_to_word_map[t2]
|
||||||
|
c3 := if c1 == "colorless" then c2 else c1
|
||||||
|
if c3 == "colorless"
|
||||||
|
then "colorless" ## double colorless, use that
|
||||||
|
else if c1 == "colorless" or c2 == "colorless" or c1 == c2
|
||||||
|
then c3 ## color + colorless or double color, use the color
|
||||||
|
else ( ## combine colors, multi, reverse if needed
|
||||||
|
normal_order := normal_order_map["{c1},{c2}"] or else false
|
||||||
|
"{c1}, {c2}, multicolor, horizontal" + (if not normal_order then ", reversed" else "")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
normal_order_map := [
|
||||||
|
"white,blue": true,
|
||||||
|
"white,black": true,
|
||||||
|
"blue,black": true,
|
||||||
|
"blue,red": true,
|
||||||
|
"black,red": true,
|
||||||
|
"black,green": true,
|
||||||
|
"red,green": true,
|
||||||
|
"red,white": true,
|
||||||
|
"green,white": true,
|
||||||
|
"green,blue": true
|
||||||
|
]
|
||||||
|
super_type_filter_default := {
|
||||||
|
if two_types() then "Land" else "Basic Land"
|
||||||
|
}
|
||||||
sub_type_filter_default :=
|
sub_type_filter_default :=
|
||||||
{
|
{
|
||||||
base := to_title(styling.land_type) + (if two_types() then " " + to_title(styling.second_land_type) else "")
|
t1 := land_type_1(include_types:false)
|
||||||
if base == "Wastes" then "" else base
|
t2 := land_type_2(include_types:false)
|
||||||
|
if t1 == "wastes" or t1 == "none" then t1 := ""
|
||||||
|
if t2 == "wastes" or t2 == "none" then t2 := ""
|
||||||
|
c1 := type_to_word_map[t1]
|
||||||
|
c2 := type_to_word_map[t2]
|
||||||
|
normal_order := normal_order_map["{c1},{c2}"] or else false
|
||||||
|
|
||||||
|
lower_type := if normal_order then t1 + (if t1 != "" then " " else "") + t2
|
||||||
|
else t2 + (if t2 != "" then " " else "") + t1
|
||||||
|
to_title(lower_type)
|
||||||
}
|
}
|
||||||
|
|
||||||
type_to_name_map :=
|
|
||||||
[
|
|
||||||
"plains,none": "Plains",
|
|
||||||
"island,none": "Island",
|
|
||||||
"swamp,none": "Swamp",
|
|
||||||
"mountain,none": "Mountain",
|
|
||||||
"forest,none": "Forest",
|
|
||||||
"wastes,none": "Wastes",
|
|
||||||
|
|
||||||
"plains,wastes": "Wasted Plains",
|
|
||||||
"island,wastes": "Wasted Island",
|
|
||||||
"swamp,wastes": "Wasted Swamp",
|
|
||||||
"mountain,wastes": "Wasted Mountain",
|
|
||||||
"forest,wastes": "Wasted Forest",
|
|
||||||
"wastes,wastes": "Wastes",
|
|
||||||
|
|
||||||
"plains,plains": "Plains",
|
|
||||||
"island,plains": "Tundra",
|
|
||||||
"swamp,plains": "Scrubland",
|
|
||||||
"mountain,plains": "Plateau",
|
|
||||||
"forest,plains": "Savannah",
|
|
||||||
"wastes,plains": "Wasted Plains",
|
|
||||||
|
|
||||||
"plains,island": "Tundra",
|
|
||||||
"island,island": "Island",
|
|
||||||
"swamp,island": "Underground Sea",
|
|
||||||
"mountain,island": "Volcanic Island",
|
|
||||||
"forest,island": "Tropical Island",
|
|
||||||
"wastes,island": "Wasted Island",
|
|
||||||
|
|
||||||
"plains,swamp": "Scrubland",
|
|
||||||
"island,swamp": "Underground Sea",
|
|
||||||
"swamp,swamp": "Swamp",
|
|
||||||
"mountain,swamp": "Badlands",
|
|
||||||
"forest,swamp": "Bayou",
|
|
||||||
"wastes,swamp": "Wasted Swamp",
|
|
||||||
|
|
||||||
"plains,mountain": "Plateau",
|
|
||||||
"island,mountain": "Volcanic Island",
|
|
||||||
"swamp,mountain": "Badlands",
|
|
||||||
"mountain,mountain": "Mountain",
|
|
||||||
"forest,mountain": "Taiga",
|
|
||||||
"wastes,mountain": "Wasted Mountain",
|
|
||||||
|
|
||||||
"plains,forest": "Savannah",
|
|
||||||
"island,forest": "Tropical Island",
|
|
||||||
"swamp,forest": "Bayou",
|
|
||||||
"mountain,forest": "Taiga",
|
|
||||||
"forest,forest": "Forest",
|
|
||||||
"wastes,forest": "Wasted Forest"
|
|
||||||
]
|
|
||||||
type_to_letter_map :=
|
type_to_letter_map :=
|
||||||
[
|
[
|
||||||
plains: "w",
|
plains: "w",
|
||||||
@@ -141,16 +143,31 @@ init script:
|
|||||||
wastes: "c",
|
wastes: "c",
|
||||||
none: "none"
|
none: "none"
|
||||||
]
|
]
|
||||||
type_to_color_map :=
|
type_to_word_map := [
|
||||||
[
|
plains: "white",
|
||||||
plains: ", white",
|
island: "blue",
|
||||||
island: ", blue",
|
swamp: "black",
|
||||||
swamp: ", black",
|
mountain: "red",
|
||||||
mountain: ", red",
|
forest: "green",
|
||||||
forest: ", green",
|
wastes: "colorless",
|
||||||
wastes: "",
|
none: "",
|
||||||
none: ", none"
|
"": ""
|
||||||
]
|
]
|
||||||
|
card_symbol :=
|
||||||
|
{
|
||||||
|
t1 := land_type_1()
|
||||||
|
t2 := land_type_2()
|
||||||
|
t3 := if t1 == "none" then t2 else t1
|
||||||
|
if t1 != "none" and t2 != "none" then linear_blend(
|
||||||
|
image1: "symbol/" + type_to_letter_map[t1] + ".png",
|
||||||
|
image2: "symbol/" + type_to_letter_map[t2] + ".png",
|
||||||
|
x1: 0.49, y1: 0,
|
||||||
|
x2: 0.51, y2: 0
|
||||||
|
)
|
||||||
|
else if t3 == "none" then ""
|
||||||
|
else "symbol/" + type_to_letter_map[t3] + ".png"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
is_promo := { styling.promo }
|
is_promo := { styling.promo }
|
||||||
|
|
||||||
@@ -169,19 +186,8 @@ styling field:
|
|||||||
type: choice
|
type: choice
|
||||||
name: land type
|
name: land type
|
||||||
description: What type is this card?
|
description: What type is this card?
|
||||||
choice: plains
|
|
||||||
choice: island
|
|
||||||
choice: swamp
|
|
||||||
choice: mountain
|
|
||||||
choice: forest
|
|
||||||
choice: wastes
|
|
||||||
initial: plains
|
|
||||||
styling field:
|
|
||||||
type: choice
|
|
||||||
name: second land type
|
|
||||||
description: What type is this card?
|
|
||||||
choice:
|
choice:
|
||||||
name: none
|
name: auto
|
||||||
line below: true
|
line below: true
|
||||||
choice: plains
|
choice: plains
|
||||||
choice: island
|
choice: island
|
||||||
@@ -189,7 +195,23 @@ styling field:
|
|||||||
choice: mountain
|
choice: mountain
|
||||||
choice: forest
|
choice: forest
|
||||||
choice: wastes
|
choice: wastes
|
||||||
initial: none
|
choice: none
|
||||||
|
initial: auto
|
||||||
|
styling field:
|
||||||
|
type: choice
|
||||||
|
name: second land type
|
||||||
|
description: What type is this card?
|
||||||
|
choice:
|
||||||
|
name: auto
|
||||||
|
line below: true
|
||||||
|
choice: plains
|
||||||
|
choice: island
|
||||||
|
choice: swamp
|
||||||
|
choice: mountain
|
||||||
|
choice: forest
|
||||||
|
choice: wastes
|
||||||
|
choice: none
|
||||||
|
initial: auto
|
||||||
styling field:
|
styling field:
|
||||||
type: text
|
type: text
|
||||||
name: popout art coordinates
|
name: popout art coordinates
|
||||||
@@ -312,21 +334,22 @@ extra card style:
|
|||||||
mask: { if card.card_stamp == "universes beyond" then "mask_stamp_background_border_triangle.png" else "mask_stamp_background_border.png" }
|
mask: { if card.card_stamp == "universes beyond" then "mask_stamp_background_border_triangle.png" else "mask_stamp_background_border.png" }
|
||||||
first type:
|
first type:
|
||||||
left: 101
|
left: 101
|
||||||
top: { if two_types() and styling.second_land_type != "wastes" then 735 else 840 }
|
top: { if two_types() and land_type_2() != "wastes" then 735 else 840 }
|
||||||
width: 543
|
width: 543
|
||||||
height: 100
|
height: 100
|
||||||
z index: 3000
|
z index: 3000
|
||||||
render style: image
|
render style: image
|
||||||
image: { "type/" + type_to_letter_map[styling.land_type] + ".png" }
|
visible: { land_type_1() != "none" }
|
||||||
|
image: { "type/" + type_to_letter_map[land_type_1()] + ".png" }
|
||||||
second type:
|
second type:
|
||||||
left: 101
|
left: 101
|
||||||
top: 840
|
top: 840
|
||||||
width: 543
|
width: 543
|
||||||
height: 100
|
height: 100
|
||||||
z index: 3000
|
z index: 3000
|
||||||
visible: { two_types() }
|
visible: { land_type_2() != "none" }
|
||||||
render style: image
|
render style: image
|
||||||
image: { "type/" + type_to_letter_map[styling.second_land_type] + ".png" }
|
image: { "type/" + type_to_letter_map[land_type_2()] + ".png" }
|
||||||
symbol:
|
symbol:
|
||||||
left: 175
|
left: 175
|
||||||
top: 255
|
top: 255
|
||||||
|
|||||||
|
After Width: | Height: | Size: 7.1 KiB |
|
After Width: | Height: | Size: 6.5 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
BIN
data/magic-m15-unfinity-full-art-basics.mse-style/card/a.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
data/magic-m15-unfinity-full-art-basics.mse-style/card/b.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
data/magic-m15-unfinity-full-art-basics.mse-style/card/c.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
data/magic-m15-unfinity-full-art-basics.mse-style/card/g.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
data/magic-m15-unfinity-full-art-basics.mse-style/card/m.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
data/magic-m15-unfinity-full-art-basics.mse-style/card/r.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
data/magic-m15-unfinity-full-art-basics.mse-style/card/u.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
data/magic-m15-unfinity-full-art-basics.mse-style/card/w.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
data/magic-m15-unfinity-full-art-basics.mse-style/card_mask.png
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
BIN
data/magic-m15-unfinity-full-art-basics.mse-style/image_mask.png
Normal file
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 7.3 KiB |
|
After Width: | Height: | Size: 6.0 KiB |
|
After Width: | Height: | Size: 7.0 KiB |
BIN
data/magic-m15-unfinity-full-art-basics.mse-style/stamp/a.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
data/magic-m15-unfinity-full-art-basics.mse-style/stamp/b.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
data/magic-m15-unfinity-full-art-basics.mse-style/stamp/c.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
data/magic-m15-unfinity-full-art-basics.mse-style/stamp/g.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
data/magic-m15-unfinity-full-art-basics.mse-style/stamp/m.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
data/magic-m15-unfinity-full-art-basics.mse-style/stamp/r.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
data/magic-m15-unfinity-full-art-basics.mse-style/stamp/u.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
data/magic-m15-unfinity-full-art-basics.mse-style/stamp/w.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
418
data/magic-m15-unfinity-full-art-basics.mse-style/style
Normal file
@@ -0,0 +1,418 @@
|
|||||||
|
mse version: 2.1.2
|
||||||
|
game: magic
|
||||||
|
short name: UNF Basics
|
||||||
|
full name: Unfinity Full Art
|
||||||
|
icon: card_sample.png
|
||||||
|
position hint: 099
|
||||||
|
|
||||||
|
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-10-01
|
||||||
|
depends on:
|
||||||
|
package: magic-mainframe-extras.mse-include
|
||||||
|
version: 2007-09-23
|
||||||
|
|
||||||
|
card width: 744
|
||||||
|
card height: 1039
|
||||||
|
card dpi: 297
|
||||||
|
|
||||||
|
### blanks by GenevensiS
|
||||||
|
### code by GenevensiS
|
||||||
|
|
||||||
|
############################################################## Extra scripts
|
||||||
|
|
||||||
|
init script:
|
||||||
|
typeline_disabled_1 := { styling.hide_type_text }
|
||||||
|
swap_fonts_type_default :=
|
||||||
|
[
|
||||||
|
name: {"Beleren Bold"},
|
||||||
|
size: {26.5},
|
||||||
|
color: { if styling.hide_type_text then rgba(0,0,0,0) else rgb(0,0,0) },
|
||||||
|
vertical: {0},
|
||||||
|
italic: {""}
|
||||||
|
]
|
||||||
|
|
||||||
|
nameline_offset_top_1 := { 1 }
|
||||||
|
casting_cost_offset_top_1 := { 1 }
|
||||||
|
transform_symbol_disabled_1 := { true }
|
||||||
|
card_symbol_disabled_1 := { true }
|
||||||
|
swap_fonts_name_default :=
|
||||||
|
[
|
||||||
|
name: {"Beleren Bold"},
|
||||||
|
size: {30.0},
|
||||||
|
color: {"white"},
|
||||||
|
vertical: {0},
|
||||||
|
italic: {""}
|
||||||
|
]
|
||||||
|
|
||||||
|
land_types := [["plains"], ["island"], ["swamp"], ["mountain"], ["forest"], ["wastes"]]
|
||||||
|
land_type_of := {
|
||||||
|
result := "none"
|
||||||
|
option := if input == 2 then styling.second_land_type else styling.land_type
|
||||||
|
if option == "auto" then (
|
||||||
|
ar := break_text(card.sub_type, match:"<word-list-land>[^<]+</word-list-land>")
|
||||||
|
given := if length(ar) >= input then to_lower(remove_tags(ar[input-1])) else "none"
|
||||||
|
if input == 1 and position(of:[to_lower(card.name)], in:land_types) >= 0 then result := to_lower(card.name)
|
||||||
|
else if include_types and position(of:[given], in:land_types) >= 0 then result := given
|
||||||
|
)
|
||||||
|
else result := option
|
||||||
|
result
|
||||||
|
}@(include_types:true)
|
||||||
|
land_type_1 := { land_type_of(1, include_types:include_types) }@(include_types:true)
|
||||||
|
land_type_2 := { land_type_of(2, include_types:include_types) }@(include_types:true)
|
||||||
|
land_type_count := {
|
||||||
|
count := 0
|
||||||
|
lt1 := land_type_1()
|
||||||
|
lt2 := land_type_2()
|
||||||
|
if lt1 != "none" then count := count + 1
|
||||||
|
if lt2 != "none" and lt2 != lt1 then count := count + 1
|
||||||
|
count
|
||||||
|
}
|
||||||
|
no_types := { land_type_count() == 0 }
|
||||||
|
two_types := { land_type_count() == 2 }
|
||||||
|
|
||||||
|
modified_color := {
|
||||||
|
t1 := land_type_1()
|
||||||
|
t2 := land_type_2()
|
||||||
|
t3 := if t1 == "none" then t2 else t1
|
||||||
|
|
||||||
|
if t3 == "none"
|
||||||
|
then card.card_color ## double none, revert to real card color
|
||||||
|
else if t1 == "none" or t2 == "none"
|
||||||
|
then type_to_word_map[t3] ## single none, use that
|
||||||
|
else (
|
||||||
|
c1 := type_to_word_map[t1]
|
||||||
|
c2 := type_to_word_map[t2]
|
||||||
|
c3 := if c1 == "colorless" then c2 else c1
|
||||||
|
if c3 == "colorless"
|
||||||
|
then "colorless" ## double colorless, use that
|
||||||
|
else if c1 == "colorless" or c2 == "colorless" or c1 == c2
|
||||||
|
then c3 ## color + colorless or double color, use the color
|
||||||
|
else ( ## combine colors, multi, reverse if needed
|
||||||
|
normal_order := normal_order_map["{c1},{c2}"] or else false
|
||||||
|
"{c1}, {c2}, multicolor, horizontal" + (if not normal_order then ", reversed" else "")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
normal_order_map := [
|
||||||
|
"white,blue": true,
|
||||||
|
"white,black": true,
|
||||||
|
"blue,black": true,
|
||||||
|
"blue,red": true,
|
||||||
|
"black,red": true,
|
||||||
|
"black,green": true,
|
||||||
|
"red,green": true,
|
||||||
|
"red,white": true,
|
||||||
|
"green,white": true,
|
||||||
|
"green,blue": true
|
||||||
|
]
|
||||||
|
|
||||||
|
template := { type + "/" + input + ".png" }
|
||||||
|
land_template := { type + "/" + (if input == "a" then "c" else input) + ".png" }
|
||||||
|
|
||||||
|
card_background := { color_background(input: modified_color(), type: "card", base_hybrid: card_hybrid, multicolor_blend: "white", hybrid_blend: "white", artifact_blend: "white") }
|
||||||
|
card_stamp := { color_background(input: modified_color(), type: "stamp", base_hybrid: card_hybrid, multicolor_blend: "white", hybrid_blend: "white", artifact_blend: "white") }
|
||||||
|
card_symbol :=
|
||||||
|
{
|
||||||
|
t1 := land_type_1()
|
||||||
|
t2 := land_type_2()
|
||||||
|
t3 := if t1 == "none" then t2 else t1
|
||||||
|
if t1 != "none" and t2 != "none" then linear_blend(
|
||||||
|
image1: "symbol/" + type_to_letter_map[t1] + ".png",
|
||||||
|
image2: "symbol/" + type_to_letter_map[t2] + ".png",
|
||||||
|
x1: 0.50, y1: 0,
|
||||||
|
x2: 0.51, y2: 0
|
||||||
|
)
|
||||||
|
else "symbol/" + type_to_letter_map[t3] + ".png"
|
||||||
|
}
|
||||||
|
|
||||||
|
super_type_filter_default := {
|
||||||
|
if two_types() then "Land" else "Basic Land"
|
||||||
|
}
|
||||||
|
sub_type_filter_default :=
|
||||||
|
{
|
||||||
|
t1 := land_type_1(include_types:false)
|
||||||
|
t2 := land_type_2(include_types:false)
|
||||||
|
if t1 == "wastes" or t1 == "none" then t1 := ""
|
||||||
|
if t2 == "wastes" or t2 == "none" then t2 := ""
|
||||||
|
c1 := type_to_word_map[t1]
|
||||||
|
c2 := type_to_word_map[t2]
|
||||||
|
normal_order := normal_order_map["{c1},{c2}"] or else false
|
||||||
|
|
||||||
|
lower_type := if normal_order then t1 + (if t1 != "" then " " else "") + t2
|
||||||
|
else t2 + (if t2 != "" then " " else "") + t1
|
||||||
|
to_title(lower_type)
|
||||||
|
}
|
||||||
|
|
||||||
|
type_to_letter_map :=
|
||||||
|
[
|
||||||
|
plains: "w",
|
||||||
|
island: "u",
|
||||||
|
swamp: "b",
|
||||||
|
mountain: "r",
|
||||||
|
forest: "g",
|
||||||
|
wastes: "c",
|
||||||
|
none: "none"
|
||||||
|
]
|
||||||
|
type_to_word_map := [
|
||||||
|
plains: "white",
|
||||||
|
island: "blue",
|
||||||
|
swamp: "black",
|
||||||
|
mountain: "red",
|
||||||
|
forest: "green",
|
||||||
|
wastes: "colorless",
|
||||||
|
none: "",
|
||||||
|
"": ""
|
||||||
|
]
|
||||||
|
|
||||||
|
is_promo := { styling.promo }
|
||||||
|
|
||||||
|
is_unsorted := { styling.remove_from_autocount }
|
||||||
|
|
||||||
|
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 }
|
||||||
|
|
||||||
|
art_left := { 0 }
|
||||||
|
art_top := { 0 }
|
||||||
|
art_width := { stylesheet.card_width }
|
||||||
|
art_height := { if styling.stretch_art_to_whole_card then stylesheet.card_height + 1 else 955 }
|
||||||
|
|
||||||
|
art_mask :=
|
||||||
|
{
|
||||||
|
t1 := land_type_1()
|
||||||
|
t2 := land_type_2()
|
||||||
|
base := if t1 == "none" and t2 == "none" then "image_mask.png" else "image_mask_symbol.png"
|
||||||
|
crop(base, offset_x: art_left(), offset_y: art_top(), width: art_width(), height: art_height())
|
||||||
|
}
|
||||||
|
|
||||||
|
############################################################## Extra style options
|
||||||
|
|
||||||
|
styling field:
|
||||||
|
type: choice
|
||||||
|
name: land type
|
||||||
|
description: What type is this card?
|
||||||
|
choice:
|
||||||
|
name: auto
|
||||||
|
line below: true
|
||||||
|
choice: plains
|
||||||
|
choice: island
|
||||||
|
choice: swamp
|
||||||
|
choice: mountain
|
||||||
|
choice: forest
|
||||||
|
choice: wastes
|
||||||
|
choice: none
|
||||||
|
initial: auto
|
||||||
|
styling field:
|
||||||
|
type: choice
|
||||||
|
name: second land type
|
||||||
|
description: What type is this card?
|
||||||
|
choice:
|
||||||
|
name: auto
|
||||||
|
line below: true
|
||||||
|
choice: plains
|
||||||
|
choice: island
|
||||||
|
choice: swamp
|
||||||
|
choice: mountain
|
||||||
|
choice: forest
|
||||||
|
choice: wastes
|
||||||
|
choice: none
|
||||||
|
initial: auto
|
||||||
|
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: namebox opacity percentage
|
||||||
|
description: Set the opacity percentage for the namebox. Opaque is 100, transparent is 0, default is 80.
|
||||||
|
styling field:
|
||||||
|
type: boolean
|
||||||
|
name: hide type text
|
||||||
|
description: Make the typeline visible to edit it, then turn it back invisible.
|
||||||
|
initial: yes
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
############################################################## 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/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 }
|
||||||
|
z index: 100
|
||||||
|
mask: border_mask.png
|
||||||
|
card color:
|
||||||
|
left: 0
|
||||||
|
top: 0
|
||||||
|
width: { stylesheet.card_width }
|
||||||
|
height: { stylesheet.card_height }
|
||||||
|
z index: 210
|
||||||
|
popup style: in place
|
||||||
|
render style: image
|
||||||
|
image: { card_background() }
|
||||||
|
mask: card_mask.png
|
||||||
|
############################# Image
|
||||||
|
image:
|
||||||
|
left: { art_left() }
|
||||||
|
top: { art_top() }
|
||||||
|
width: { art_width() }
|
||||||
|
bottom: { art_height() }
|
||||||
|
z index: 0
|
||||||
|
mask: { art_mask() }
|
||||||
|
mainframe image:
|
||||||
|
left: { popout_left() }
|
||||||
|
top: { popout_top() }
|
||||||
|
width: { popout_width() }
|
||||||
|
height: { popout_height() }
|
||||||
|
z index: 1010
|
||||||
|
|
||||||
|
############################################################## Extra card fields
|
||||||
|
|
||||||
|
extra card field:
|
||||||
|
type: choice
|
||||||
|
name: card stamp rim
|
||||||
|
editable: false
|
||||||
|
save value: false
|
||||||
|
show statistics: false
|
||||||
|
choice: card stamp rim
|
||||||
|
extra card field:
|
||||||
|
type: color
|
||||||
|
name: card stamp border
|
||||||
|
script: card.border_color
|
||||||
|
editable: false
|
||||||
|
save value: false
|
||||||
|
show statistics: false
|
||||||
|
extra card field:
|
||||||
|
type: color
|
||||||
|
name: namebox border
|
||||||
|
script: card.border_color
|
||||||
|
editable: false
|
||||||
|
save value: false
|
||||||
|
show statistics: false
|
||||||
|
extra card field:
|
||||||
|
type: choice
|
||||||
|
name: namebox background
|
||||||
|
editable: false
|
||||||
|
save value: false
|
||||||
|
show statistics: false
|
||||||
|
choice: namebox background
|
||||||
|
extra card field:
|
||||||
|
type: choice
|
||||||
|
name: namebox shadow
|
||||||
|
editable: false
|
||||||
|
save value: false
|
||||||
|
show statistics: false
|
||||||
|
choice: namebox shadow
|
||||||
|
extra card field:
|
||||||
|
type: choice
|
||||||
|
name: symbol
|
||||||
|
editable: false
|
||||||
|
save value: false
|
||||||
|
show statistics: false
|
||||||
|
choice: symbol
|
||||||
|
extra card field:
|
||||||
|
type: choice
|
||||||
|
name: foil layer
|
||||||
|
editable: false
|
||||||
|
save value: false
|
||||||
|
show statistics: false
|
||||||
|
choice: foil layer
|
||||||
|
|
||||||
|
extra card style:
|
||||||
|
card stamp rim:
|
||||||
|
left: 0
|
||||||
|
top: 0
|
||||||
|
width: { stylesheet.card_width }
|
||||||
|
height: { stylesheet.card_height }
|
||||||
|
z index: 230
|
||||||
|
visible: { is_stamped() }
|
||||||
|
render style: image
|
||||||
|
image: { card_stamp() }
|
||||||
|
card stamp border:
|
||||||
|
left: 0
|
||||||
|
top: 0
|
||||||
|
width: { stylesheet.card_width }
|
||||||
|
height: { stylesheet.card_height }
|
||||||
|
z index: 220
|
||||||
|
visible: { is_stamped() }
|
||||||
|
mask: border_mask_stamp.png
|
||||||
|
namebox border:
|
||||||
|
left: 0
|
||||||
|
top: 0
|
||||||
|
width: { stylesheet.card_width }
|
||||||
|
height: { stylesheet.card_height }
|
||||||
|
z index: 220
|
||||||
|
mask: border_mask_namebox.png
|
||||||
|
namebox background:
|
||||||
|
left: 0
|
||||||
|
top: 0
|
||||||
|
width: { stylesheet.card_width }
|
||||||
|
height: { stylesheet.card_height }
|
||||||
|
z index: 110
|
||||||
|
popup style: in place
|
||||||
|
render style: image
|
||||||
|
image: { set_alpha("namebox_background.png", alpha: get_alpha_percentage(styling.namebox_opacity_percentage, default: 80)) }
|
||||||
|
namebox shadow:
|
||||||
|
left: 0
|
||||||
|
top: 0
|
||||||
|
width: { stylesheet.card_width }
|
||||||
|
height: { stylesheet.card_height }
|
||||||
|
z index: 100
|
||||||
|
popup style: in place
|
||||||
|
render style: image
|
||||||
|
image: namebox_shadow.png
|
||||||
|
symbol:
|
||||||
|
left: 129
|
||||||
|
top: 732
|
||||||
|
width: 486
|
||||||
|
height: 186
|
||||||
|
z index: 3000
|
||||||
|
visible: { not no_types() }
|
||||||
|
render style: image
|
||||||
|
image: { card_symbol() }
|
||||||
|
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" }
|
||||||
BIN
data/magic-m15-unfinity-full-art-basics.mse-style/symbol/b.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
data/magic-m15-unfinity-full-art-basics.mse-style/symbol/c.png
Normal file
|
After Width: | Height: | Size: 70 KiB |
BIN
data/magic-m15-unfinity-full-art-basics.mse-style/symbol/g.png
Normal file
|
After Width: | Height: | Size: 78 KiB |
BIN
data/magic-m15-unfinity-full-art-basics.mse-style/symbol/r.png
Normal file
|
After Width: | Height: | Size: 72 KiB |
BIN
data/magic-m15-unfinity-full-art-basics.mse-style/symbol/u.png
Normal file
|
After Width: | Height: | Size: 77 KiB |
BIN
data/magic-m15-unfinity-full-art-basics.mse-style/symbol/w.png
Normal file
|
After Width: | Height: | Size: 84 KiB |
@@ -33,7 +33,7 @@ include file: language
|
|||||||
include file: statistics_script
|
include file: statistics_script
|
||||||
include file: /magic-blends.mse-include/new-blends
|
include file: /magic-blends.mse-include/new-blends
|
||||||
############################################################## Versioning
|
############################################################## Versioning
|
||||||
version_date := {"2025-02-01 Template Pack 3.1.a: Mainframe Battles"}
|
version_date := {"2025-02-01 Template Pack 3.1.b: Mainframe Battles - Full Art Basics"}
|
||||||
version := version_date
|
version := version_date
|
||||||
############################################################## Common filters
|
############################################################## Common filters
|
||||||
############################################################## Utility
|
############################################################## Utility
|
||||||
|
|||||||