Initial commit

This commit is contained in:
CajunAvenger
2021-07-08 17:16:53 -05:00
parent b056d1de65
commit b582d03f6a
11645 changed files with 206724 additions and 1 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

View File

@@ -0,0 +1,985 @@
# Scripts for blending images
# Included by a style file in its init script
########################################################################
# Filenames and other defaults
########################################################################
########################################################################
# Combining multiple colors (hybrids)
########################################################################
# This script has been expanded to handle more color choices.
horizontal_card_hybrid := [
1: { template(colors[0]) }
2: card_hybrid_2
3: {linear_blend(
image1: template(colors[0])
x1: 0.22, y1: 0
x2: 0.4, y2: 0
image2: linear_blend(
image1: template(colors[1])
x1: 0.6, y1: 0
x2: 0.78, y2: 0
image2: template(colors[2])
))}
4: {linear_blend(
# blend = 0.16
image1: template(colors[0])
x1: 0.15, y1: 0
x2: 0.31, y2: 0
image2: linear_blend(
image1: template(colors[1])
x1: 0.42, y1: 0
x2: 0.58, y2: 0
image2: linear_blend(
image1: template(colors[2])
x1: 0.69, y1: 0
x2: 0.85, y2: 0
image2: template(colors[3])
)))}
5: {linear_blend(
image1: template(colors[0])
x1: 2.0 / 15, y1: 0
x2: 4.0 / 15, y2: 0
image2: linear_blend(
image1: template(colors[1])
x1: 5.0 / 15, y1: 0
x2: 7.0 / 15, y2: 0
image2: linear_blend(
image1: template(colors[2])
x1: 8.0 / 15, y1: 0
x2: 10.0 / 15, y2: 0
image2: linear_blend(
image1: template(colors[3])
x1: 11.0 / 15, y1: 0
x2: 13.0 / 15, y2: 0
image2: template(colors[4])
))))}
6: {linear_blend(
image1: template(colors[0])
x1: 1.5 / 15, y1: 0
x2: 3.1 / 15, y2: 0
image2: linear_blend(
image1: template(colors[1])
x1: 4.1 / 15, y1: 0
x2: 5.7 / 15, y2: 0
image2: linear_blend(
image1: template(colors[2])
x1: 6.7 / 15, y1: 0
x2: 8.3 / 15, y2: 0
image2: linear_blend(
image1: template(colors[3])
x1: 9.3 / 15, y1: 0
x2: 10.9 / 15, y2: 0
image2: linear_blend(
image1: template(colors[4])
x1: 11.9 / 15, y1: 0
x2: 13.5 / 15, y2: 0
image2: template(colors[5])
)))))}
7: {linear_blend(
image1: template(colors[0])
x1: 1.3 / 15, y1: 0
x2: 2.7 / 15, y2: 0
image2: linear_blend(
image1: template(colors[1])
x1: 3.5 / 15, y1: 0
x2: 4.9 / 15, y2: 0
image2: linear_blend(
image1: template(colors[2])
x1: 5.7 / 15, y1: 0
x2: 7.1 / 15, y2: 0
image2: linear_blend(
image1: template(colors[3])
x1: 7.9 / 15, y1: 0
x2: 9.3 / 15, y2: 0
image2: linear_blend(
image1: template(colors[4])
x1: 10.1 / 15, y1: 0
x2: 11.5 / 15, y2: 0
image2: linear_blend(
image1: template(colors[5])
x1: 12.3 / 15, y1: 0
x2: 13.7 / 15, y2: 0
image2: template(colors[6])
))))))}
8: { template("m") }
9: { template("m") }
10: { template("m") }
11: { template("m") }
12: { template("m") }
]
# This script doesn't exist in magic-blends.
diagonal_card_hybrid := [
1: { template(colors[0]) }
2: {linear_blend(
image1: template(colors[0]),
image2: template(colors[1]),
x1: 0.40, y1: 0.50
x2: 0.60, y2: 0.60
)}
3: {linear_blend(
image1: linear_blend(
image1: template(colors[0]),
image2: template(colors[1]),
x1: 0.15, y1: 0.50
x2: 0.35, y2: 0.60),
image2: template(colors[2]),
x1: 0.65, y1: 0.50
x2: 0.85, y2: 0.60
)}
4: { linear_blend(
image1: linear_blend(
image1: template(colors[0]),
image2: template(colors[1]),
x1: -0.10, y1: 0.50
x2: 0.10, y2: 0.60),
image2: linear_blend(
image1: template(colors[2]),
image2: template(colors[3]),
x1: 0.90, y1: 0.50
x2: 1.10, y2: 0.60),
x1: 0.40, y1: 0.50
x2: 0.60, y2: 0.60
)}
5: {linear_blend(
image1: linear_blend(
image1: linear_blend(
image1: linear_blend(
image1: template(colors[0]),
image2: template(colors[1]),
x1: -0.20, y1: 0.50
x2: 0.00, y2: 0.60),
image2: template(colors[2]),
x1: 0.15, y1: 0.50
x2: 0.35, y2: 0.60),
image2: template(colors[3]),
x1: 0.65, y1: 0.50
x2: 0.85, y2: 0.60),
image2: template(colors[4]),
x1: 1.00, y1: 0.50
x2: 1.20, y2: 0.60
)}
6: {linear_blend(
image1: linear_blend(
image1: linear_blend(
image1: linear_blend(
image1: linear_blend(
image1: template(colors[0]),
image2: template(colors[1]),
x1: -0.30, y1: 0.50
x2: -0.10, y2: 0.60),
image2: template(colors[2]),
x1: 0.10, y1: 0.50
x2: 0.20, y2: 0.60),
image2: template(colors[3]),
x1: 0.40, y1: 0.50
x2: 0.60, y2: 0.60),
image2: template(colors[4]),
x1: 0.70, y1: 0.50
x2: 0.90, y2: 0.60),
image2: template(colors[5]),
x1: 1.10, y1: 0.50
x2: 1.30, y2: 0.60
)}
7: { template("m") }
8: { template("m") }
9: { template("m") }
10: { template("m") }
11: { template("m") }
12: { template("m") }
]
card_hybrid := [
radial: [
0: { template("c") }
1: { template(colors[0]) }
2: card_hybrid_2
3: {linear_blend(
image1: card_hybrid_2(colors: colors[0] + colors[1]),
image2: template(colors[2]),
x1: 0, y1: 0.55
x2: 0, y2: 0.77
)}
4: {linear_blend(
image1: card_hybrid_2(colors: colors[0] + colors[1])
image2: card_hybrid_2(colors: colors[3] + colors[2])
x1: 0, y1: 0.4
x2: 0, y2: 0.62
)}
5: {linear_blend(
image1: linear_blend(
image1: card_hybrid_2(colors: colors[0] + colors[1]),
image2: card_hybrid_2(colors: colors[4] + colors[2]),
x1: 0, y1: 0.19
x2: 0, y2: 0.35
),
image2: template(colors[3]),
x1: 0, y1: 0.777
x2: 0, y2: 0.937
)}
6: {linear_blend(
image1: linear_blend(
image1: card_hybrid_2(colors: colors[0] + colors[1]),
image2: card_hybrid_2(colors: colors[5] + colors[2]),
x1: 0, y1: 0.19
x2: 0, y2: 0.35
),
image2: card_hybrid_2(colors: colors[4] + colors[3]),
x1: 0, y1: 0.777
x2: 0, y2: 0.937
)}
7: {linear_blend(
image1: linear_blend(
image1: linear_blend(
image1: card_hybrid_2(colors: colors[0] + colors[1]),
image2: card_hybrid_2(colors: colors[6] + colors[3]),
x1: 0, y1: 0.34
x2: 0, y2: 0.50
),
image2: card_hybrid_2(colors: colors[5] + colors[3]),
x1: 0, y1: 0.877
x2: 0, y2: 0.937
),
image2: template(colors[4]),
x1: 0, y1: 1.140
x2: 0, y2: 1.300
)}
8: { template("m") }
9: { template("m") }
10: { template("m") }
11: { template("m") }
12: { template("m") }
]
horizontal: horizontal_card_hybrid
diagonal: diagonal_card_hybrid
vertical: [
1: { template(colors[0]) }
2: { linear_blend(
image1: template(colors[0])
image2: template(colors[1])
x1: 0, y1: 0.4
x2: 0, y2: 0.6
)}
3: vertical_card_hybrid
4: vertical_card_hybrid
5: vertical_card_hybrid
6: vertical_card_hybrid
7: vertical_card_hybrid
8: { template("m") }
9: { template("m") }
10: { template("m") }
11: { template("m") }
12: { template("m") }
]
overlay: overlay_hybrid
]
########################################################################
# P/T box
########################################################################
# These are easier
# This script has been expanded to handle more color choices.
horizontal_pt_hybrid := [
1: { template(colors[0]) }
2: { template(colors[1]) }
3: { linear_blend(
image1: template(colors[1])
image2: template(colors[2])
x1: -0.51, y1: 0
x2: 0.26, y2: 0
)}
4: { linear_blend(
image1: template(colors[2])
image2: template(colors[3])
x1: -0.1, y1: 0
x2: 0.6, y2: 0
)}
5: { linear_blend(
image1: template(colors[3])
image2: template(colors[4])
x1: 0.08, y1: 0
x2: 0.65, y2: 0
)}
6: { linear_blend(
image1: template(colors[4])
image2: template(colors[5])
x1: 0.07, y1: 0
x2: 0.7, y2: 0
)}
7: {linear_blend(
image1: linear_blend(
image1: template(colors[4]),
image2: template(colors[5]),
x1: -0.2, y1: 0
x2: 0.2, y2: 0
),
image2: template(colors[6]),
x1: 0.5, y1: 0
x2: 0.7, y2: 0
)}
8: { template("m") }
9: { template("m") }
10: { template("m") }
11: { template("m") }
12: { template("m") }
]
# This script doesn't exist in magic-blends.
diagonal_pt_hybrid := [
1: { template(colors[0]) }
2: { template(colors[1]) }
3: { template(colors[2]) }
4: { template(colors[3]) }
5: { linear_blend(
image1: template(colors[3]),
image2: template(colors[4]),
x1: -0.10, y1: 0.50
x2: 0.10, y2: 0.60
)}
6: { linear_blend(
image1: template(colors[4]),
image2: template(colors[5]),
x1: 0.10, y1: 0.50
x2: 0.30, y2: 0.60
)}
7: { template("m") }
8: { template("m") }
9: { template("m") }
10: { template("m") }
11: { template("m") }
12: { template("m") }
]
pt_hybrid := [
radial: [
0: { template("c") }
1: { template(colors[0]) }
2: { template(colors[1]) }
3: { template(colors[2]) }
4: { template(colors[2]) }
5: { linear_blend(
image1: template(colors[2])
image2: template(colors[3])
x1: 0, y1: -1.5
x2: 0, y2: 0.7
)}
6: { linear_blend(
image1: template(colors[2])
image2: template(colors[3])
x1: 0, y1: -1.5
x2: 0, y2: 0.7
)}
7: { template(colors[3]) }
8: { template("m") }
9: { template("m") }
10: { template("m") }
11: { template("m") }
12: { template("m") }
]
horizontal: horizontal_pt_hybrid
diagonal: diagonal_pt_hybrid
vertical: [
1: { template(colors[0]) }
2: { template(colors[1]) }
3: { template(colors[2]) }
4: { template(colors[3]) }
5: { template(colors[4]) }
6: { template(colors[5]) }
7: { template(colors[6]) }
8: { template("m") }
9: { template("m") }
10: { template("m") }
11: { template("m") }
12: { template("m") }
]
overlay: overlay_hybrid
]
########################################################################
# P/T boxes of flip cards
########################################################################
#
########################################################################
# P/T boxes for leveler cards
########################################################################
#
########################################################################
# Textbox and typeline for FPM templates and Futureshifts
########################################################################
#
########################################################################
# Color Identity Marking
########################################################################
# This script has been expanded to handle more color choices.
identity_horizontal_hybrid := [
0: { template("c") }
1: { template(colors[0]) }
2: { linear_blend(
image1: template(colors[0])
image2: template(colors[1])
x1: 0.49, y1: 0.49
x2: 0.5, y2: 0.5
)}
3: {linear_blend(
image1: template(colors[0])
x1: 0.39, y1: 0.39
x2: 0.4, y2: 0.4
image2: linear_blend(
image1: template(colors[1])
x1: 0.6, y1: 0.6
x2: 0.61, y2: 0.61
image2: template(colors[2])
))}
4: {linear_blend(
# blend = 0.16
image1: template(colors[0])
x1: 0.29, y1: 0.29
x2: 0.3, y2: 0.3
image2: linear_blend(
image1: template(colors[1])
x1: 0.49, y1: 0.49
x2: 0.50, y2: 0.5
image2: linear_blend(
image1: template(colors[2])
x1: 0.69, y1: 0.69
x2: 0.7, y2: 0.7
image2: template(colors[3])
)))}
5: {linear_blend(
image1: template(colors[0])
x1: 0.28, y1: 0.28
x2: 0.29, y2: 0.29
image2: linear_blend(
image1: template(colors[1])
x1: 0.42, y1: 0.42
x2: 0.43, y2: 0.43
image2: linear_blend(
image1: template(colors[2])
x1: 0.56, y1: 0.56
x2: 0.57, y2: 0.57
image2: linear_blend(
image1: template(colors[3])
x1: 0.7, y1: 0.7
x2: 0.71, y2: 0.71
image2: template(colors[4])
))))}
6: {linear_blend(
image1: template(colors[0])
x1: 0.27, y1: 0.27
x2: 0.28, y2: 0.28
image2: linear_blend(
image1: template(colors[1])
x1: 0.38, y1: 0.38
x2: 0.39, y2: 0.39
image2: linear_blend(
image1: template(colors[2])
x1: 0.49, y1: 0.49
x2: 0.50, y2: 0.50
image2: linear_blend(
image1: template(colors[3])
x1: 0.60, y1: 0.60
x2: 0.61, y2: 0.61
image2: linear_blend(
image1: template(colors[4])
x1: 0.71, y1: 0.71
x2: 0.72, y2: 0.72
image2: template(colors[5])
)))))}
7: {linear_blend(
image1: template(colors[0])
x1: 0.27, y1: 0.27
x2: 0.28, y2: 0.28
image2: linear_blend(
image1: template(colors[1])
x1: 0.36, y1: 0.36
x2: 0.37, y2: 0.37
image2: linear_blend(
image1: template(colors[2])
x1: 0.45, y1: 0.45
x2: 0.46, y2: 0.46
image2: linear_blend(
image1: template(colors[3])
x1: 0.54, y1: 0.54
x2: 0.55, y2: 0.55
image2: linear_blend(
image1: template(colors[4])
x1: 0.63, y1: 0.63
x2: 0.64, y2: 0.64
image2: linear_blend(
image1: template(colors[5])
x1: 0.72, y1: 0.72
x2: 0.73, y2: 0.73
image2: template(colors[6])
))))))}
8: { template("m") }
9: { template("m") }
10: { template("m") }
11: { template("m") }
12: { template("m") }
]
identity_hybrid := [
radial: identity_horizontal_hybrid
vertical: identity_horizontal_hybrid
horizontal: identity_horizontal_hybrid
overlay: identity_horizontal_hybrid
diagonal: identity_horizontal_hybrid
]
########################################################################
# Promo Stamp
########################################################################
# These are easier
horizontal_stamp_hybrid := [
1: { template(colors[0]) }
2: { linear_blend(
image1: template(colors[0])
image2: template(colors[1])
x1: -0.3, y1: 0
x2: 1.3, y2: 0
)}
3: { template(colors[1]) }
4: { linear_blend(
image1: template(colors[1])
image2: template(colors[2])
x1: -0.3, y1: 0
x2: 1.3, y2: 0
)}
5: {linear_blend(
image1: template(colors[1])
x1: -0.55, y1: 0
x2: 0.2, y2: 0
image2: linear_blend(
image1: template(colors[2])
x1: 0.8, y1: 0
x2: 1.55, y2: 0
image2: template(colors[3])
))}
6: { linear_blend(
image1: template(colors[2])
image2: template(colors[3])
x1: 0.1, y1: 0
x2: 0.9, y2: 0
)}
7: {linear_blend(
image1: template(colors[2])
x1: -0.55, y1: 0
x2: 0.2, y2: 0
image2: linear_blend(
image1: template(colors[3])
x1: 0.8, y1: 0
x2: 1.55, y2: 0
image2: template(colors[4])
))}
8: { template("m") }
9: { template("m") }
10: { template("m") }
11: { template("m") }
12: { template("m") }
]
stamp_hybrid := [
radial: [
0: { template("c") }
1: { template(colors[0]) }
2: { linear_blend(
image1: template(colors[0])
image2: template(colors[1])
x1: -0.3, y1: 0
x2: 1.3, y2: 0
)}
3: { template(colors[2]) }
4: { linear_blend(
image1: template(colors[3])
image2: template(colors[2])
x1: -0.3, y1: 0
x2: 1.3, y2: 0
)}
5: { template(colors[3]) }
6: { linear_blend(
image1: template(colors[4])
image2: template(colors[3])
x1: -0.3, y1: 0
x2: 1.3, y2: 0
)}
7: { template(colors[4]) }
8: { template("m") }
9: { template("m") }
10: { template("m") }
11: { template("m") }
12: { template("m") }
]
horizontal: horizontal_stamp_hybrid
vertical: [
1: { template(colors[0]) }
2: { template(colors[1]) }
3: { template(colors[2]) }
4: { template(colors[3]) }
5: { template(colors[4]) }
6: { template(colors[5]) }
7: { template(colors[6]) }
8: { template("m") }
9: { template("m") }
10: { template("m") }
11: { template("m") }
12: { template("m") }
]
overlay: overlay_hybrid
]
########################################################################
# Putting it all together.
########################################################################
# Determine the card background based on the card_color multiple choice options
color_background := {
# for thumbnails
if input == "hybrid" then
input := "white,blue,red,{hybrid_previews},horizontal"
else if input == "overlay" then
input := "blue,red,{hybrid_previews},overlay"
else if input == "radial" or input == "horizontal" or input == "vertical" then
input := "white,blue,red,{hybrid_previews}," + input
else if input == "diagonal" then
input := "white,black,{hybrid_previews},diagonal"
else if input == "reversed" then
input := "white,blue,red,{hybrid_previews},horizontal,reversed"
# What type of 'hybrid'?
land := chosen(choice:"land")
multi := chosen(choice:"multicolor")
spectral := chosen(choice:"spectral")
hybrid := chosen(choice:"hybrid")
artifact := chosen(choice:"artifact")
snow := chosen(choice:"snow")
if land and colored_lands then template := land_template # use land template instead?
# The selected colors
colors := sort_text( order: "(wubrg)(lpoek)"
, (if chosen(choice:"white") then "w")
+ (if chosen(choice:"blue") then "u")
+ (if chosen(choice:"black") then "b")
+ (if chosen(choice:"red") then "r")
+ (if chosen(choice:"green") then "g")
+ (if chosen(choice:"purple") then "p")
+ (if chosen(choice:"yellow") then "l")
+ (if chosen(choice:"orange") then "o")
+ (if chosen(choice:"brown") then "e")
+ (if chosen(choice:"pink") then "k"))
if multi and (hybrid or colors == "") then (
colors := colors + "m"
multi := false
)
if spectral and (hybrid or colors == "") then (
colors := colors + "t"
multi := false
)
if artifact and (hybrid or colors == "") then (
colors := colors + "a"
artifact := false
)
if snow and (hybrid or colors == "") then (
colors := colors + "s"
snow := false
)
if chosen(choice:"reversed") then colors := reverse(colors)
color_count := number_of_items(in: colors)
if colors == "" then colors == "c"
# 'shape' / type of hybrid
shape := if chosen(choice:"horizontal") then "horizontal"
else if chosen(choice:"vertical") then "vertical"
else if chosen(choice:"overlay") then "overlay"
else if chosen(choice:"diagonal") then "diagonal"
else "radial"
# Determine background (allows styles to hook something else here)
color_combination()
}
color_combination := {
# The base hybrid, without the outer frame blended over it
base := base_hybrid[shape][color_count]()
# Put a frame around it?
# Frame Color Overrides
if styling.outer_color != "default" or styling.trim_color != "default" or styling.inner_color != "default" then
masked_blend(
mask: "artifact_blend_{type}.png",
dark: (if styling.outer_color == "default" then base
else template(
if styling.outer_color == "white" then "w"
else if styling.outer_color == "blue" then "u"
else if styling.outer_color == "black" then "b"
else if styling.outer_color == "red" then "r"
else if styling.outer_color == "green" then "g"
else if styling.outer_color == "purple" then "p"
else if styling.outer_color == "pink" then "k"
else if styling.outer_color == "yellow" then "l"
else if styling.outer_color == "orange" then "o"
else if styling.outer_color == "brown" then "e"
else if styling.outer_color == "multicolor" then "m"
else if styling.outer_color == "spectral" then "t"
else if styling.outer_color == "artifact" then "a"
else if styling.outer_color == "snow" then "s"
else "c"
)
)
light: masked_blend(
mask: "multicolor_blend_{type}.png",
dark: (if styling.inner_color == "default" then base
else template(
if styling.inner_color == "white" then "w"
else if styling.inner_color == "blue" then "u"
else if styling.inner_color == "black" then "b"
else if styling.inner_color == "red" then "r"
else if styling.inner_color == "green" then "g"
else if styling.inner_color == "purple" then "p"
else if styling.inner_color == "orange" then "o"
else if styling.inner_color == "yellow" then "l"
else if styling.inner_color == "brown" then "e"
else if styling.inner_color == "pink" then "k"
else if styling.inner_color == "multicolor" then "m"
else if styling.inner_color == "spectral" then "t"
else if styling.inner_color == "artifact" then "a"
else if styling.inner_color == "snow" then "s"
else "c"
)
)
light: (if styling.trim_color == "default" then base
else template(
if styling.trim_color == "white" then "w"
else if styling.trim_color == "blue" then "u"
else if styling.trim_color == "black" then "b"
else if styling.trim_color == "red" then "r"
else if styling.trim_color == "green" then "g"
else if styling.trim_color == "purple" then "p"
else if styling.trim_color == "orange" then "o"
else if styling.trim_color == "brown" then "e"
else if styling.trim_color == "yellow" then "l"
else if styling.trim_color == "pink" then "k"
else if styling.trim_color == "multicolor" then "m"
else if styling.trim_color == "spectral" then "t"
else if styling.trim_color == "artifact" then "a"
else if styling.trim_color == "snow" then "s"
else "c"
)
)
)
)
# Lesurgo's "Land-brid" Effect
else if contains(styling.extras, match:"spell-land hybrid") and color_count == 1 then
linear_blend(
image1: base,
image2: land_template(colors[0]),
x1: 0.4, y1: 0
x2: 0.6, y2: 0
)
# Circeus' Hybrid Effect
else if contains(styling.extras, match:"colorless-colored hybrid") and not artifact and not multi and color_count == 1 then
masked_blend(
mask: "artifact_blend_{type}.png",
dark: base
light: linear_blend(
image1: template("c"),
image2: base,
x1: 0.4, y1: 0
x2: 0.6, y2: 0
)
)
else if contains(styling.extras, match:"colorless-colored hybrid") and not artifact and (multi or color_count > 1) then
masked_blend(
mask: "artifact_blend_{type}.png",
dark: template("m")
light: linear_blend(
image1: template("c"),
image2: template("m"),
x1: 0.4, y1: 0
x2: 0.6, y2: 0
)
)
# Circeus' Tinged Artifact Hybrid Effect
else if contains(styling.extras, match:"tinged artifact hybrid") and artifact and not multi and color_count == 1 then
masked_blend(
mask: "artifact_blend_{type}.png",
dark: template("a")
light: linear_blend(
image1: template("a"),
image2: template(colors[0]),
x1: 0.4, y1: 0
x2: 0.6, y2: 0
)
)
else if contains(styling.extras, match:"tinged artifact hybrid") and artifact and (multi or color_count > 1) then
masked_blend(
mask: "artifact_blend_{type}.png",
dark: template("a")
light: linear_blend(
image1: template("a"),
image2: template("m"),
x1: 0.4, y1: 0
x2: 0.6, y2: 0
)
)
# Alpha Style Dual Lands
else if type == "card" and land and color_count == 2 and shape != "overlay" and contains(styling.extras, match:"alpha style dual lands") then
masked_blend(
mask: "masks/alpha_blend.png",
dark: land_template(colors[0]),
light: land_template(colors[1]),
)
# Murmuring Bosk Effect
else if land and multi and mask_multi_land_with_color() then
masked_blend(
mask: "hybrid_blend_{type}.png",
dark: base,
light: land_template("m"),
)
# Multicolored Snow Artifact Frame
else if artifact and snow and multi then
masked_blend(
mask: "artifact_blend_{type}.png",
dark: template("a"),
light: masked_blend(
mask: "multicolor_blend_{type}.png"
dark: template("m"),
light: template("s"),
)
)
# Spectral Snow Artifact Frame
else if artifact and snow and spectral then
masked_blend(
mask: "artifact_blend_{type}.png",
dark: template("a"),
light: masked_blend(
mask: "multicolor_blend_{type}.png"
dark: template("t"),
light: template("s"),
)
)
# Multicolored Artifact Frame
else if artifact and multi then
masked_blend(
mask: "artifact_blend_{type}.png",
dark: template("a"),
light: masked_blend(
mask: "multicolor_blend_{type}.png"
dark: template("m"),
light: base,
)
)
# Spectral Artifact Frame
else if artifact and spectral then
masked_blend(
mask: "artifact_blend_{type}.png",
dark: template("a"),
light: masked_blend(
mask: "multicolor_blend_{type}.png"
dark: template("t"),
light: base,
)
)
# Snow Artifact Frame
else if artifact and snow then
masked_blend(
mask: "artifact_blend_{type}.png",
dark: template("a"),
light: masked_blend(
mask: "multicolor_blend_{type}.png"
dark: template("s"),
light: base,
)
)
# Multicolored Snow Frame
else if snow and multi then
masked_blend(
mask: "artifact_blend_{type}.png",
dark: template("s"),
light: masked_blend(
mask: "multicolor_blend_{type}.png"
dark: template("m"),
light: base,
)
)
# Spectral Snow Frame
else if snow and spectral then
masked_blend(
mask: "artifact_blend_{type}.png",
dark: template("s"),
light: masked_blend(
mask: "multicolor_blend_{type}.png"
dark: template("t"),
light: base,
)
)
# Multicolored Frame
else if multi then
masked_blend(
mask: "multicolor_blend_{type}.png",
dark: template("m"),
light: base,
)
# Spectral Frame
else if spectral then
masked_blend(
mask: "multicolor_blend_{type}.png",
dark: template("t"),
light: base,
)
# Hybrid Colored Artifact Frame
else if artifact and color_count > 1 and mask_hybrid_with_land() then
masked_blend(
mask: "artifact_blend_{type}.png",
dark: template("a"),
light: masked_blend(
mask: "multicolor_blend_{type}.png",
dark: template("c"),
light: base
)
)
# Hybrid Colored Snow Frame
else if snow and color_count > 1 and mask_hybrid_with_land() then
masked_blend(
mask: "artifact_blend_{type}.png",
dark: template("s"),
light: masked_blend(
mask: "multicolor_blend_{type}.png",
dark: template("c"),
light: base
)
)
# Artifact Frame
else if artifact then
masked_blend(
mask: "artifact_blend_{type}.png",
dark: template("a"),
light: base,
)
# Snow Frame
else if snow then
masked_blend(
mask: "artifact_blend_{type}.png",
dark: template("s"),
light: base,
)
# Hybrid Frames
else if color_count > 1 and mask_hybrid_with_land() then
masked_blend(
mask: "hybrid_blend_{type}.png",
dark: land_template("c"),
light: base,
)
else base
}
########################################################################
# Specific types
########################################################################
########################################################################
# Font colors
########################################################################

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

View File

@@ -0,0 +1,7 @@
cd ..
cd ..
mse --create-installer magic-m15-extra-udelude.mse-style magic-mana-small-extra-udelude.mse-symbol-font magic-mana-large-extra-udelude.mse-symbol-font
ren "magic-m15-extra-udelude.mse-installer" "Magic - M15 Udelude Extra Style.mse-installer"

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

@@ -0,0 +1,7 @@
font_name_m15 := [ name: "Beleren Bold", size: 16, weight: "normal", top: 30]
font_type_m15 := [ name: "Beleren Bold", size: 13, weight: "normal", top: 297]
font_text_m15 := [ name: "MPlantin", italic: "MPlantin-Italic", size: 14, weight: "normal" ]
font_pt_m15 := [ name: "Beleren Bold", size: 16, weight: "normal" ]

View File

@@ -0,0 +1,7 @@
font_name_new := [ name: "Matrix", size: 17, weight: "bold", top: 28]
font_type_new := [ name: "Matrix", size: 14, weight: "normal", top: 297]
font_text_new := [ name: "MPlantin", italic: "MPlantin-Italic", size: 14, weight: "normal" ]
font_pt_new := [ name: "ModMatrix", size: 17, weight: "bold" ]

View File

@@ -0,0 +1,7 @@
font_name_old := [ name: "MagicMedieval", size: 15, weight: "bold", top: 29]
font_type_old := [ name: "MagicMedieval", size: 12, weight: "normal", top: 299]
font_text_old := [ name: "MPlantin", italic: "MPlantin-Italic", size: 14, weight: "normal" ]
font_pt_old := [ name: "MPlantin", size: 15, weight: "bold" ]

View File

@@ -0,0 +1,7 @@
font_name_phyrexian := [ name: "Phyrexian Regular", size: 18, weight: "normal", top: 28]
font_type_phyrexian := [ name: "Phyrexian Regular", size: 16, weight: "normal" , top: 297]
font_text_phyrexian := [ name: "Phyrexian Regular", italic: "Phyrexian Regular", size: 16, weight: "normal" ]
font_pt_phyrexian := [ name: "Phyrexian Regular", size: 17, weight: "bold" ]

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -0,0 +1,515 @@
############################################################################################################ Scripts from Game File
############################################################## Sorting mana symbols
# Current Mana Codes:
#
# A - artifact B - black C - D - E - F - G - green H - phyrexian
#
# I - J - K - pink L - yellow M - N - O - P - purple
#
# Q - untap R - red S - snow T - tap U - blue V - W - white X - X variable
#
# Y - Y variable Z - Z variable
#
# correctly sort a mana symbol (no guild mana)
# This script is modified to provide an unsorted option and handle extra colors.
# This script is modified to handle extra colors.
mana_sort := {
if contains(styling.extras, match:"unsorted casting cost") then
sort_text@(order: "[/XYZ∞0123456789HSAPLOEKWUBRG]")()
else
sort_text@(order: "XYZ∞[0123456789]HSA(PLOEK)(WUBRG)")()
}
#mana_sort := sort_text@(order: "XYZ∞[0123456789]HSA(PLOEK)(WUBRG)")
# correctly sort guild mana
mana_sort_guild := sort_text@(order: "[XYZ∞01234567890HSAPLOEKWUBRG/|]") +
replace@(
match: "./.|././.|./././.|.[|]",
in_context: "(^|[^/])<match>($|[^/])",
replace: {sort_text(order:"in_place((PLOEK)(WUBRG)")}
)
tap_filter := sort_text@(order: "<TQ>")
############################################################## Determine card color
# Names of colors
color_name := {
if input = "W" then "white"
else if input = "U" then "blue"
else if input = "B" then "black"
else if input = "R" then "red"
else if input = "G" then "green"
else if input = "P" then "purple"
else if input = "K" then "pink"
else if input = "L" then "yellow"
else if input = "O" then "orange"
else if input = "E" then "brown"
else ""
}
color_names_6 := { color_name(colors.0) + ", " + color_name(colors.1) + ", " + color_name(colors.2) + ", " + color_name(colors.3) + ", " + color_name(colors.4) + ", " + color_name(colors.5) }
color_names_7 := { color_name(colors.0) + ", " + color_name(colors.1) + ", " + color_name(colors.2) + ", " + color_name(colors.3) + ", " + color_name(colors.4) + ", " + color_name(colors.5) + ", " + color_name(colors.6) }
# color based on mana cost, input = a mana cost
color_filter := sort_text@(order: "<WUBRGPLOEK>")
color_filterS := sort_text@(order: "<S>")
mana_to_color := {
count := number_of_items(in: colors)
if hybrid == "" and snow = "" and contains(type, match:"Artifact") then
# not a hybrid, not snow costed, but artifact
if count == 0 then "colorless"
else if count == 1 then color_names_1() + ", artifact"
else if set.set_info.use_gradient_multicolor == "no" then "artifact, multicolor" # stop here
else if count == 2 then color_names_2() + ", artifact, multicolor"
else if set.set_info.use_gradient_multicolor != "yes" then "artifact, multicolor" # stop here
else if count == 3 then color_names_3() + ", artifact, multicolor"
else if count == 4 then color_names_4() + ", artifact, multicolor"
else if count == 5 then color_names_5() + ", artifact, multicolor"
else if count == 6 then color_names_6() + ", artifact, multicolor"
else if count == 7 then color_names_7() + ", artifact, multicolor"
else "artifact, multicolor"
else if hybrid == "" and contains(type, match:"Artifact") then
# not a hybrid, but snow costed and artifact
if count == 0 then "artifact, snow"
else if count == 1 then color_names_1() + ", artifact, snow"
else if set.set_info.use_gradient_multicolor == "no" then "artifact, snow, multicolor" # stop here
else if count == 2 then color_names_2() + ", artifact, snow, multicolor"
else if set.set_info.use_gradient_multicolor != "yes" then "artifact, snow, multicolor" # stop here
else if count == 3 then color_names_3() + ", artifact, snow, multicolor"
else if count == 4 then color_names_4() + ", artifact, snow, multicolor"
else if count == 5 then color_names_5() + ", artifact, snow, multicolor"
else if count == 6 then color_names_6() + ", artifact, snow, multicolor"
else if count == 7 then color_names_7() + ", artifact, snow, multicolor"
else "artifact, snow, multicolor"
else if hybrid == "" and snow == "" then
# not a hybrid, not snow costed, not artifact
if count == 0 then "colorless"
else if count == 1 then color_names_1()
else if set.set_info.use_gradient_multicolor == "no" then "multicolor" # stop here
else if count == 2 then color_names_2() + ", multicolor"
else if set.set_info.use_gradient_multicolor != "yes" then "multicolor" # stop here
else if count == 3 then color_names_3() + ", multicolor"
else if count == 4 then color_names_4() + ", multicolor"
else if count == 5 then color_names_5() + ", multicolor"
else if count == 6 then color_names_6() + ", multicolor"
else if count == 7 then color_names_7() + ", multicolor"
else "multicolor"
else if hybrid == "" then
# not a hybrid, not artifact, but snow costed
if count == 0 then "snow"
else if count == 1 then color_names_1() + ", snow"
else if set.set_info.use_gradient_multicolor == "no" then "snow, multicolor" # stop here
else if count == 2 then color_names_2() + ", snow, multicolor"
else if set.set_info.use_gradient_multicolor != "yes" then "snow, multicolor" # stop here
else if count == 3 then color_names_3() + ", snow, multicolor"
else if count == 4 then color_names_4() + ", snow, multicolor"
else if count == 5 then color_names_5() + ", snow, multicolor"
else if count == 6 then color_names_6() + ", snow, multicolor"
else if count == 7 then color_names_7() + ", snow, multicolor"
else "snow, multicolor"
else if snow == "" and contains(type, match:"Artifact") then
# hybrid, and artifact, but not snow costed
if count == 0 then "colorless"
else if count == 1 then color_names_1() + ", artifact"
else if count == 2 then color_names_2() + ", artifact"
else if count == 3 then color_names_3() + ", artifact"
else if count == 6 then
if color_names_6() == "blue, red, green, yellow, purple, orange" then color_names_6() + ", artifact"
else "artifact, multicolor"
else "artifact, multicolor"
else if contains(type, match:"Artifact") then
# hybrid, and snow costed, and artifact
if count == 0 then "artifact, snow"
else if count == 1 then color_names_1() + ", artifact, snow"
else if count == 2 then color_names_2() + ", artifact, snow"
else if count == 3 then color_names_3() + ", artifact, snow"
else if count == 6 then
if color_names_6() == "blue, red, green, yellow, purple, orange" then color_names_6() + ", artifact, snow"
else "artifact, snow, multicolor"
else "artifact, snow, multicolor"
else if snow == "" then
# hybrid, not artifact, and not snow costed
if count == 0 then "colorless"
else if count == 1 then color_names_1()
else if count == 2 then color_names_2() + ", hybrid"
else if count == 6 then
if color_names_6() == "blue, red, green, yellow, purple, orange" then color_names_6() + ", hybrid"
else "multicolor"
else "multicolor"
else
# hybrid and snow costed, but not artifact
if count == 0 then "snow"
else if count == 1 then color_names_1() + ", snow"
else if count == 2 then color_names_2() + ", snow, hybrid"
else if count == 6 then
if color_names_6() == "blue, red, green, yellow, purple, orange" then color_names_6() + ", snow, hybrid"
else "snow, multicolor"
else "snow, multicolor"
}
# Look for a CDA that defines colors
text_to_color := {
# Note: running filter_text is quite slow, do a quick 'contains' check first
if contains(match: card_name) then (
text := filter_text(match: regex_escape(card_name)+"(</[-a-z]+>)? is (colorless|all colors|((blue|white|green|red|black|purple|pink)((,|,? and) (blue|white|green|red|black|purple|pink))*))\\.")
if text != "" then (
if contains(text, match: "all colors") then (
colors := "WUBRGP"
if land = "land" then land_multicolor()
else mana_to_color(hybrid: "")
) else (
colors := ""
if contains(text, match: "white") then colors := colors + "W"
if contains(text, match: "blue") then colors := colors + "U"
if contains(text, match: "black") then colors := colors + "B"
if contains(text, match: "red") then colors := colors + "R"
if contains(text, match: "green") then colors := colors + "G"
if contains(text, match: "purple") then colors := colors + "P"
if contains(text, match: "pink") then colors := colors + "K"
if contains(text, match: "yellow") then colors := colors + "L"
if contains(text, match: "orange") then colors := colors + "O"
if contains(text, match: "brown") then colors := colors + "E"
if land = "land" then land_multicolor()
else mana_to_color(hybrid: "")
)
)
)
}
card_color := {
# usually the color of mana
text_color := text_to_color(rules_text, land: is_land(type));
if text_color == "" then (
mana_color := mana_to_color(colors: color_filter(casting_cost), hybrid: color_filterH(casting_cost), snow: color_filterS(casting_cost))
if mana_color == "colorless" and is_land (type) then land_to_color(watermark)
else if mana_color == "colorless" and is_artifact(type) then "artifact"
else mana_color
)
else text_color
};
# Number of colors in a card_color
card_color_color_count := count_chosen@(choices: "white,blue,black,red,green,purple,pink,yellow,orange,brown,artifact,snow")
# Clean up color field
card_color_filter := {
colors := card_color_color_count()
if colors > 2 then
input := remove_choice(choice: "overlay")
if colors > 1 then (
input := require_choice(choices: "multicolor, hybrid, land, artifact, snow, spectral")
input := exclusive_choice(choices: "multicolor, hybrid, spectral")
input := require_exclusive_choice(choices: "horizontal, vertical, radial, diagonal, overlay")
) else
input := remove_choice(choices: "radial, horizontal, vertical, diagonal, overlay, hybrid, reversed")
input := exclusive_choice(choices: "multicolor, spectral")
if chosen(choice:"overlay") then
input := remove_choice(choice: "reversed")
input
}
############################################################## Card number
# Index for sorting, white cards are first, so white->A, blue->B, .. ,
# The code consists of 4 parts:
# normal/token, color, shifted, split
hybrid_color_pair_sort := {
colors := sort_text(casting_cost, order: "<WUBRGPLOEK>")
if colors = "WU" then "HA"
else if colors = "UB" then "HB"
else if colors = "BR" then "HC"
else if colors = "RG" then "HD"
else if colors = "WG" then "HE"
else if colors = "WB" then "HF"
else if colors = "UR" then "HG"
else if colors = "BG" then "HH"
else if colors = "WR" then "HI"
else if colors = "UG" then "HJ"
else if colors = "WP" then "HJAA"
else if colors = "UP" then "HJAB"
else if colors = "BP" then "HJAC"
else if colors = "RP" then "HJAD"
else if colors = "GP" then "HJAE"
else if colors = "WK" then "HJBA"
else if colors = "UK" then "HJBB"
else if colors = "BK" then "HJBC"
else if colors = "RK" then "HJBD"
else if colors = "GK" then "HJBE"
else if colors = "PLOEK" then "HJBF"
else "HK"
}
multi_color_pair_sort := {
colors := sort_text(casting_cost, order: "<WUBRGP>")
if colors = "WU" then "GA"
else if colors = "UB" then "GB"
else if colors = "BR" then "GC"
else if colors = "RG" then "GD"
else if colors = "WG" then "GE"
else if colors = "WB" then "GF"
else if colors = "UR" then "GG"
else if colors = "BG" then "GH"
else if colors = "WR" then "GI"
else if colors = "UG" then "GJ"
else if colors = "WP" then "GJAA"
else if colors = "UP" then "GJAB"
else if colors = "BP" then "GJAC"
else if colors = "RP" then "GJAD"
else if colors = "GP" then "GJAE"
else if colors = "WK" then "GJBA"
else if colors = "UK" then "GJBB"
else if colors = "BK" then "GJBC"
else if colors = "RK" then "GJBD"
else if colors = "GK" then "GJBE"
else if colors = "PLOEK" then "GJBF"
else if contains(card.casting_cost, match:"/") then "GL"
else "GK"
}
color_of_card := {
card_color := card.card_color
casting_cost := card.casting_cost
type := card.super_type
if card.shape == "split" and
card_color != card.card_color_2 then "I" # Diff Color Splits
else if chosen(choice: "land", card_color) then ( # Lands
if card.rarity != "basic land" then "L" # Nonbasic Land
else basic_land_sort() # Basic Land
) else if is_null_cost(casting_cost) then ( # Non-Land Cards with no or zero costs.
if chosen(choice: "colorless", card_color) then "A" # Clear Colorless
else if chosen(choice: "hybrid", card_color) then "HK" # Hybrids
else if is_multicolor(card_color) then "GK" # Multicolor
else if chosen(choice:"white", card_color) then "B" # White
else if chosen(choice:"blue", card_color) then "C" # Blue
else if chosen(choice:"black", card_color) then "D" # Black
else if chosen(choice:"red", card_color) then "E" # Red
else if chosen(choice:"green", card_color) then "F" # Green
else "J" # Artifact
) else (
# Cards with costs.
colors := sort_text(casting_cost, order: "<WUBRGPLOEK>")
if colors == "" and contains(type, match:"Artifact") then "J" # Artifact
else if colors == "" then "A" # Clear Colorless
else if colors == "W" then "B" # White
else if colors == "U" then "C" # Blue
else if colors == "B" then "D" # Black
else if colors == "R" then "E" # Red
else if colors == "G" then "F" # Green
else if colors == "P" then "FTA" # Purple
else if colors == "K" then "FTB" # Pink
else if is_hybrid_cost() then hybrid_color_pair_sort() # Hybrid (by pairs)
else if contains(casting_cost, match:"/") and contains(type, match:"Artifact") then "I" # Hybrid Artifacts
else multi_color_pair_sort() # Multicolor (by pairs)
)
}
############################################################## Utilities for keywords
# replaces — correctly
for_mana_costs := format_cost := {
if input.separator_before == "—" and contains(input.param, match: " ") then (
if contains(input.param, match:",") then (
if match(match: "^[HSATQXYZ∞WUBRGPLOEK0-9/|]+,", input.param) then
"{add}<param-cost>{combined_cost(input.param)}</param-cost>"
else "<param-cost>{combined_cost(input.param)}</param-cost>"
) else
"<param-cost>{alternative_cost(input.param)}</param-cost>"
) else
"{add}<param-mana>{input.param}</param-mana>"
}
combined_cost := replace@(match:", [A-Z]", replace: { to_lower() })+
replace@(match:",", replace:" and")+
replace@(match:"^[HSATQXYZ∞WUBRGPLOEK0-9/|]", in_context: "(^|[[:space:]])<match>", replace: "<sym-auto>&</sym-auto>")+
replace@(match:"^[A-Z]", replace: { to_lower() })
############################################################## The text box
# Filters for the text box
# context in which mana symbols are found
mana_context :=
"(?ix) # case insensitive, ignore whitespace
(^|[[:space:]\"(“']) # start of a word
( <match>: # G: something
| <match>, # G, tap: something
| <match>[ ]can[ ]be[ ]pay
| (pays?|additional|costs?|the # pay X. creatures cost 1 less. pay an additional G.
|adds?|pay(ed)?[ ](with|using)
)
([ ]either)? # pay either X or Y
([ ](<sym[^>]*>)?[HSATQXYZ∞WUBRGPLOEK0-9/|]+(</sym[^>]*>)?,)* # pay X, Y or Z
([ ](<sym[^>]*>)?[HSATQXYZ∞WUBRGPLOEK0-9/|]+(</sym[^>]*>)?[ ](and|or|and/or))* # pay X or Y
[ ]<match>
([,.)]|$ # (end of word)
|[ ][^ .,]*$ # still typing...
|[ ]( or | and | in | less | more | to ) # or next word is ...
)
)
| <param-mana><match></param-mana> # keyword argument that is declared as mana
| <param-cost>[ ]*<match></param-cost> # keyword argument that is declared as cost
| <param-cost><match>, # keyword argument that is declared as cost
";
# the rule text filter
# - adds mana symbols
# - makes text in parentheses italic
text_filter :=
# step 1 : remove all automatic tags
remove_tag@(tag: "<sym-auto>") +
remove_tag@(tag: "<i-auto>") +
remove_tag@(tag: "<b-auto>") +
remove_tag@(tag: "<error-spelling") +
remove_tag@(tag: "<nospellcheck") +
# step 2 : reminder text for keywords
expand_keywords@(
condition: {
correct_case or (mode != "pseudo" and not used_placeholders)
}
default_expand: {
chosen(choice:if correct_case then mode else "lower case", set.automatic_reminder_text)
},
combine: {
keyword := "<nospellcheck>{keyword}</nospellcheck>"
reminder := process_english_hints(reminder)
if mode == "pseudo" then "<i-auto>{keyword}</i-auto>"
else keyword + if expand then "<atom-reminder-{mode}> ({reminder})</atom-reminder-{mode}>"
}) +
# step 2b : move action keywords' reminder text to the end of the line
replace@(
match: "(<atom-reminder-action>(?:(?!<kw-).)*</atom-reminder-action></kw[^>]*>)(((?!<atom-reminder| ?<kw-)[^\n(])+)",
replace: "\\2\\1"
) +
# step 2c : remove duplicate reminder text
replace@(
match: "(<atom-reminder-[^>]*>[^)]+[)]</atom-reminder-[^>]*>)([^\n]+)\\1"
replace: "\\2\\1"
) +
# step 3a : expand shortcut word CARDNAME
replace@(
match: "CARDNAME",
in_context: "(^|[[:space:]]|\\()<match>", # TODO: Allow any punctuation before
replace: "<atom-cardname></atom-cardname>"
) +
# step 3b : expand shortcut word LEGENDNAME
replace@(
match: "LEGENDNAME",
in_context: "(^|[[:space:]]|\\()<match>", # TODO: Allow any punctuation before
replace: "<atom-legname></atom-legname>"
) +
# step 3c : fill in atom fields
tag_contents@(
tag: "<atom-cardname>",
contents: { "<nospellcheck>" + (if card_name=="" then "CARDNAME" else card_name) + "</nospellcheck>" }
) +
tag_contents@(
tag: "<atom-legname>",
contents: { "<nospellcheck>" + (if card_name=="" then "LEGENDNAME" else legend_filter(card_name)) + "</nospellcheck>" }
) +
# step 4 : explict non mana symbols
replace@(
match: "\\][HSATQXYZ∞WUBRGPLOEK0-9/|]+\\[",
replace: {"<nosym>" + mana_filter_t() + "</nosym>"} ) +
# step 5 : add mana & tap symbols
replace@(
match: "\\b[HSATQXYZ∞WUBRGPLOEK0-9/|]+\\b",
in_context: mana_context,
replace: {"<sym-auto>" + mana_filter_t() + "</sym-auto>"} ) +
# step 5b : add explict mana symbols
replace@(
match: "\\[[HSATQXYZ∞WUBRGPLOEK0-9/|]+\\]",
replace: {"<sym>" + mana_filter_t() + "</sym>"} ) +
# step 6a : curly double quotes
replace@(
match: "[[.quotation-mark.]]|”",
in_context: "[ ]<match>+|^<match>",
replace: "“" )+
replace@(
match: "[[.quotation-mark.]]",
replace: "”" )+
# step 7 : italicize text in parenthesis
replace@(
match: "[(]([^)\n]|[(][^)\n]*[)])*[)]?",
in_context: "(^|[[:space:]])<match>|<atom-keyword><match></",
replace: "<i-auto>&</i-auto>") +
# step 8 : automatic capitalization, but not after "("
replace@(
match: "([ ]*: |—| — )" # preceded by this
+ "([[:lower:]])" # match this
+ "(?![)])", # not followed by this
replace: { _1 + to_upper(_2) }) +
#curly_quotes +
# step 9 : spellcheck
{ if set.mark_errors then
check_spelling(
language: language().spellcheck_code,
extra_dictionary: "/magic.mse-game/magic-words",
extra_match: additional_text_words
)
else input
}
############################################################## Other boxes
# Script to make magic-mana-future compatible w/ other templates
# Is now used to allow colored XYZ mana.
colorless_color := {
if contains(styling.extras, match:"colored xyz mana") and card.card_color=="white" then "w"
else if contains(styling.extras, match:"colored xyz mana") and card.card_color=="blue" then "u"
else if contains(styling.extras, match:"colored xyz mana") and card.card_color=="black" then "b"
else if contains(styling.extras, match:"colored xyz mana") and card.card_color=="red" then "r"
else if contains(styling.extras, match:"colored xyz mana") and card.card_color=="green" then "g"
else if contains(styling.extras, match:"colored xyz mana") and card.card_color=="colorless" and contains(card.casting_cost, match:"P") then "p"
else if contains(styling.extras, match:"colored xyz mana") and card.card_color=="colorless" and contains(card.casting_cost, match:"K") then "k"
else if contains(styling.extras, match:"colored xyz mana") and card.card_color=="colorless" and contains(card.casting_cost, match:"O") then "o"
else if contains(styling.extras, match:"colored xyz mana") and card.card_color=="colorless" and contains(card.casting_cost, match:"E") then "e"
else if contains(styling.extras, match:"colored xyz mana") and card.card_color=="colorless" and contains(card.casting_cost, match:"L") then "l"
else "c"
}
# Determine a rarity code for M15 styles.
rarity_code := {
if contains(styling.regular_options, match:"promo rarity") then "P"
else if card.rarity == "common" then "C"
else if card.rarity == "uncommon" then "U"
else if card.rarity == "rare" then "R"
else if card.rarity == "mythic rare" then "M"
else if card.rarity == "special" then "S"
else if card.rarity == "basic land" then "L" }
# Assigns default type symbols. Is modified for structure symbols.
typesymbol_for :=
to_text +
replace@(match: "(Legendary|Basic|Snow|World| )", replace: "") +
{ if input == "Creature" then "creature"
else if input == "Sorcery" then "sorcery"
else if input == "Instant" then "instant"
else if input == "Artifact" then "artifact"
else if input == "Enchantment" then "enchantment"
else if input == "Land" then "land"
else if input == "Planeswalker" then "planeswalker"
else if input == "Structure" then "structure"
else "multitype"
}
# This script has been modified to check a styling menu choice instead.
has_identity := { contains(styling.regular_options, match:"color indicator dot") }
############################################################## Statistics utilities
# Converted mana cost
is_half_mana := match@(match: "1/2|[|][HSAWUBRGPLOEK]")
is_colored_mana := match@(match: "[WUBRGPLOEK]")
cmc_split := break_text@(match: "(?ix) 1/2 | [|][WUBRGPLOEK] | [0-9]+(?!/[WUBRGHSAPLOEKCTQ2]) | [WUBRGHSAPLOEK0-9.](/[WUBRGHSAPLOEK])\{0,4} ")
primary_card_color := {
artifact := chosen(choice:"artifact") and not (chosen(choice:"white") or chosen(choice:"blue") or chosen(choice:"black") or chosen(choice:"red") or chosen(choice:"green"))
land := chosen(choice:"land")
multi := chosen(choice:"multicolor")
hybrid := chosen(choice:"hybrid")
white := chosen(choice:"white")
blue := chosen(choice:"blue")
black := chosen(choice:"black")
red := chosen(choice:"red")
green := chosen(choice:"green")
if land then "land"
else if multi then "multicolor"
else if hybrid then "hybrid"
else if artifact then "artifact"
else if white then "white"
else if blue then "blue"
else if black then "black"
else if red then "red"
else if green then "green"
else input
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

Some files were not shown because too many files have changed in this diff Show More