Initial commit

This commit is contained in:
CajunAvenger
2021-07-09 02:07:58 -05:00
parent 44a72dbc6f
commit eda330eee8
22968 changed files with 376881 additions and 0 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,990 @@
# 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") }
]
# This script doesn't exist in magic-blends.
diagonal_stamp_hybrid := [
1: { template(colors[0]) }
2: { template(colors[1]) }
3: { template(colors[2]) }
4: { template("m") }
5: { template("m") }
6: { template("m") }
7: { template("m") }
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
diagonal: diagonal_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:"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 == "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 == "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 == "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: 6.1 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.mse-style magic.mse-game magic-blends.mse-include magic-mana-small-extra-m15.mse-symbol-font magic-mana-large-extra-m15.mse-symbol-font magic-watermarks.mse-include magic-default-image.mse-include magic-pt-symbols-extra-m15.mse-symbol-font
ren "magic-m15-extra.mse-installer" "Magic - M15 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: 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 - colorless 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∞0123456789HSCAPKWUBRG]")()
else
sort_text@(order: "XYZ∞[0123456789]HSCA(PK)(WUBRG)")()
}
# This script is modified to provide an unsorted option and handle extra colors.
# This script is modified to handle extra colors.
mana_sort_wedge := {
if contains(styling.extras, match:"unsorted casting cost") then
sort_text@(order: "[/XYZ∞0123456789HSCAPKWUBRG]")()
else
sort_text@(order: "XYZ∞[0123456789]HSCA(PK)(WBGUR)")()
}
# correctly sort guild mana
mana_sort_guild := sort_text@(order: "[XYZ∞01234567890HSCAPKWUBRG/|]") +
replace@(
match: "./.|././.|./././.|.[|]",
in_context: "(^|[^/])<match>($|[^/])",
replace: {sort_text(order:"in_place((PK)(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 ""
}
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: "<WUBRGPK>")
color_filterS := sort_text@(order: "<SC>")
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 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,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: "<WUBRGPK>")
if not set.sort_hybrid_in_pairs then "HK"
else 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 = "PK" then "HJBF"
else "HK"
}
multi_color_pair_sort := {
colors := sort_text(casting_cost, order: "<WUBRGP>")
if not set.sort_multicolor_in_pairs then "GK"
else 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 = "PK" 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: "<WUBRGPK>")
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: "^[HSCATQXYZ∞WUBRGPK0-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:"^[HSCATQXYZ∞WUBRGPK0-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[^>]*>)?[HSCATQXYZ∞WUBRGPK0-9/|]+(</sym[^>]*>)?,)* # pay X, Y or Z
([ ](<sym[^>]*>)?[HSCATQXYZ∞WUBRGPK0-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: "\\][HSCATQXYZ∞WUBRGPK0-9/|]+\\[",
replace: {"<nosym>" + mana_filter_t() + "</nosym>"} ) +
# step 5 : add mana & tap symbols
replace@(
match: "\\b[HSCATQXYZ∞WUBRGPK0-9/|]+\\b",
in_context: mana_context,
replace: {"<sym-auto>" + mana_filter_t() + "</sym-auto>"} ) +
# step 5b : add explict mana symbols
replace@(
match: "\\[[HSCATQXYZ∞WUBRGPK0-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 "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|[|][HSCAWUBRGPK]")
is_colored_mana := match@(match: "[WUBRGPK]")
cmc_split := break_text@(match: "(?ix) 1/2 | [|][WUBRGPK] | [0-9]+(?!/[WUBRGHSCAPKCTQ2]) | [WUBRGHSCAPK0-9.](/[WUBRGHSCAPK])\{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: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.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: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@@ -0,0 +1,858 @@
mse version: 2.0.0
game: magic
short name: M15 Extra
full name: M15 with Extra Features
icon: card-sample.png
installer group: magic/m15 style/normal cards/with extra features
position hint: 050
version: 2018-02-09
depends on:
package: magic.mse-game
version: 2015-04-08
depends on:
package: magic-default-image.mse-include
version: 2007-09-23
depends on:
package: magic-mana-large-extra-m15.mse-symbol-font
version: 2014-03-11
depends on:
package: magic-mana-small-extra-m15.mse-symbol-font
version: 2014-03-11
depends on:
package: magic-pt-symbols-extra-m15.mse-symbol-font
version: 2014-03-20
card width: 375
card height: 523
card dpi: 150
############################################################## Extra scripts
init script:
# Load scripts that are redefined from the game file
include file: game_scripts
# Load scripts that are redefined from the blends package
include file: blends_scripts
# Load scripts for image box
include file: /magic-default-image.mse-include/scripts
# Load font profiles
include file: font_new
include file: font_phyrexian
include file: font_old
include file: font_m15
# Should hybrids have a grey name?
mask_hybrid_with_land := { contains(styling.regular_options, match:"grey hybrid names") }
#Should multicolor lands with basic land types have a colored name?
mask_multi_land_with_color := { contains(styling.regular_options, match:"colored multicolor land names") }
template_prefix := [card: "" pt: "" stamp: "" identity: ""]
template_suffix := [card: "card.jpg" pt: "pt.png" stamp: "stamp.jpg" identity: "identity.png"]
template := { template_prefix[type] + input + template_suffix[type] }
land_template := { template_prefix[type] + (if input == "a" or input == "s" then "c" else input) + "l" + template_suffix[type] }
# Use land templates for previews because they show more contrast
hybrid_previews := "land,hybrid"
# Use the normal tap symbol
mana_t := {
if styling.tap_symbol == "old" then "old"
else if styling.tap_symbol == "diagonal T" then "older"
else "new"
}
# Use guild mana symbols?
guild_mana := { contains(styling.regular_options, match:"guild mana symbols") }
# Filter to commas, so they can be counted to see if field is complete
comma_count := filter_text@(match:",")
# Interpret the font profile choice.
font_profile := {
if styling.font_style == "Phyrexian" then "phyrexian"
else if styling.font_style == "Before 8th Edition" then "old"
else if styling.font_style == "After 8th Edition" then "new"
else "m15"
}
font_field := {
if font_profile() == "m15" then (
if field == "name" then font_name_m15[value]
else if field == "type" then font_type_m15[value]
else if field == "text" then font_text_m15[value]
else if field == "pt" then font_pt_m15[value]
)
else if font_profile() == "new" then (
if field == "name" then font_name_new[value]
else if field == "type" then font_type_new[value]
else if field == "text" then font_text_new[value]
else if field == "pt" then font_pt_new[value]
)
else if font_profile() == "phyrexian" then (
if field == "name" then font_name_phyrexian[value]
else if field == "type" then font_type_phyrexian[value]
else if field == "text" then font_text_phyrexian[value]
else if field == "pt" then font_pt_phyrexian[value]
)
else if font_profile() == "old" then (
if field == "name" then font_name_old[value]
else if field == "type" then font_type_old[value]
else if field == "text" then font_text_old[value]
else if field == "pt" then font_pt_old[value]
)
}
# Is the card a promo card?
is_promo := { styling.promo }
is_unsorted := { contains(styling.regular_options, match:"remove from autocount") }
chop_top := {if comma_count(styling.chop_text) == ",," then split_text(match:",", styling.chop_text).0 else "0"}
chop_bot := {if comma_count(styling.chop_text) == ",," then split_text(match:",", styling.chop_text).1 else "0"}
############################################################## Set info fields
set info style:
symbol:
variation:
name: invertedcommon
border radius: 0.10
fill type: solid
fill color: rgb(255,255,255)
border color: rgb(0,0,0)
############################################################## Extra style options
styling field:
type: text
name: chop text
description: Shrinks the textbox, formatted as "top,bottom". This must end in a comma.
styling field:
type: choice
name: font style
description: Which font style should be used?
choice: After Magic 2015
choice: After 8th Edition
choice: Before 8th Edition
choice: Phyrexian
initial: After Magic 2015
styling field:
type: multiple choice
name: regular options
description: Which regular styling options would you like to use?
choice: center text
choice: color indicator dot
choice: colored multicolor land names
choice: grey hybrid names
choice: guild mana symbols
choice: holofoil stamped rares
choice: promo rarity
choice: inverted common symbol
choice: remove from autocount
initial: colored multicolor land names, grey hybrid names, holofoil stamped rares
styling field:
type: multiple choice
name: extras
description: Which extra options would you like to use?
choice: pichoro's alchemist watermark
choice: alpha style dual lands
choice: card creator credit field
choice: takeabow's clock watermark
choice: advent's colored xyz mana
choice: circeus' colorless-colored hybrid
choice: anuttymous' frost effect
choice: holiday promo text
choice: dark nova's runes
choice: lesurgo's spell-land hybrid
choice: circeus' tinged artifact hybrid
choice: type symbol with name
choice: unsorted casting cost
choice: double watermarks
styling field:
type: choice
name: tap symbol
description: What tap and untap symbols should be used on cards?
initial: modern
choice: modern
choice: old
choice: diagonal T
styling field:
type: package choice
name: text box mana symbols
match: magic-mana-*.mse-symbol-font
initial: magic-mana-small-extra-m15.mse-symbol-font
styling field:
type: package choice
name: pt box symbols
match: magic-pt-symbols-*.mse-symbol-font
initial: magic-pt-symbols-extra.mse-symbol-font
styling field:
type: package choice
name: overlay
description: Should there be an overlay applied, such as foil?
match: magic-overlay-*.mse-include
required: false
styling field:
type: choice
name: outer color
description: Should the outside of the frame be a special color?
choice: default
choice: white
choice: blue
choice: black
choice: red
choice: green
choice: purple
choice: pink
choice: artifact
choice: snow
choice: multicolor
choice: spectral
choice: colorless
styling field:
type: choice
name: trim color
description: Should the trim of the frame be a special color?
choice: default
choice: white
choice: blue
choice: black
choice: red
choice: green
choice: purple
choice: pink
choice: artifact
choice: snow
choice: multicolor
choice: spectral
choice: colorless
styling field:
type: choice
name: inner color
description: Should the inside of the frame be a special color?
choice: default
choice: white
choice: blue
choice: black
choice: red
choice: green
choice: purple
choice: pink
choice: artifact
choice: snow
choice: multicolor
choice: spectral
choice: colorless
styling field:
type: text
name: popout image style
description: The styling instructions for the popout image field, formatted as "left,top,width,height,". The text MUST end with a comma.
styling style:
tap symbol:
render style: both
choice images:
modern: /magic-mana-large-extra-m15.mse-symbol-font/mana_t.png
old: /magic-mana-large-extra-m15.mse-symbol-font/mana_t_old.png
diagonal T: /magic-mana-large-extra-m15.mse-symbol-font/mana_t_older.png
regular options:
render style: checklist
direction: vertical
extras:
render style: checklist
direction: vertical
############################################################## Card fields
card style:
border color:
left: 0
top : 0
width: 375
height: 523
radius: 18
left width: 17
right width: 17
top width: 17
bottom width: 18
z index: 4
mask: border_mask.png
############################# Background stuff
############################# Name line
name:
left:
{ if card.card_symbol=="none" and (card.type_symbol=="none" or not contains(styling.extras, match:"type symbol with name")) then 32
else if card.card_symbol == "none" then 49
else if card.type_symbol == "none" or ( not contains(styling.extras, match:"type symbol with name")) then 49
else 67}
top: { font_field(field: "name", value: "top")}
right: { 341 - card_style.casting_cost.content_width }
height: 23
alignment: bottom shrink-overflow
padding bottom: 0
z index: 1
font:
name: { font_field(field: "name", value: "name")}
size: { font_field(field: "name", value: "size")}
weight: { font_field(field: "name", value: "weight")}
color: black
casting cost:
right: 346
top: 29
width: { max(30, card_style.casting_cost.content_width) + 5 }
height: 23
alignment: middle right
font:
name: MPlantin
size: 15
symbol font:
name: magic-mana-large-extra-m15
size: 15
alignment: middle right
always symbol: true
z index: 2
padding top: 0
card symbol:
left:
{if card.card_symbol == "none" then 20
else if card.type_symbol == "none" or not contains(styling.extras, match:"type symbol with name") then 30
else 50}
top: {if card.card_symbol == "none" then 40 else 29}
height: 20
width: 14
z index: 1
render style: image
choice images:
tombstone: tombstone.png
type symbol:
left: {if card.type_symbol == "none" or not contains(styling.extras, match:"type symbol with name") then 18 else 27}
top: {if card.type_symbol == "none" or not contains(styling.extras, match:"type symbol with name") then 20 else 30}
width: 21
height: 20
z index: 5
render style: image
alignment: middle center
visible: { contains(styling.extras, match:"type symbol with name") }
choice images:
artifact: type-symbols/artifact_black.png
creature: type-symbols/creature_black.png
enchantment: type-symbols/enchantment_black.png
instant: type-symbols/instant_black.png
land: type-symbols/land_black.png
multitype: type-symbols/multitype_black.png
sorcery: type-symbols/sorcery_black.png
planeswalker: type-symbols/planeswalker_black.png
structure: type-symbols/structure_black.png
############################# Image
image:
left: 29
top: 59
width: 316
height: 231
z index: 1
default: {default_image(card.card_color)}
image 2:
left: {if comma_count(styling.popout_image_style) == ",,,," then split_text(match:",", styling.popout_image_style).0 else "0"}
top: {if comma_count(styling.popout_image_style) == ",,,," then split_text(match:",", styling.popout_image_style).1 else "0"}
width: {if comma_count(styling.popout_image_style) == ",,,," then split_text(match:",", styling.popout_image_style).2 else "0"}
height: {if comma_count(styling.popout_image_style) == ",,,," then split_text(match:",", styling.popout_image_style).3 else "0"}
z index: 1
############################# Card type
indicator:
left: 31
top: 300
width: 17
height: 17
z index: 2
render style: image
visible: { has_identity() }
image: { card_identity() }
type:
left: { if has_identity() then "52" else "32" }
top: { font_field(field: "type", value: "top")}
width: { (if has_identity() then "290" else "310") - max(22,card_style.rarity.content_width) }
height: 20
alignment: top shrink-overflow
z index: 2
padding top: 2
font:
name: { font_field(field: "type", value: "name")}
size: { font_field(field: "type", value: "size")}
weight: { font_field(field: "type", value: "weight")}
color: black
separator color: red
rarity:
right: 344
top: 297
width: 44
height: 22
z index: 2
render style: image
alignment: middle right
choice images:
# Images based on the set symbol
basic land:
script:
if contains(styling.regular_options, match:"inverted common symbol") then symbol_variation(symbol: set.symbol, variation: "invertedcommon")
else symbol_variation(symbol: set.symbol, variation: "common")
common:
script:
if contains(styling.regular_options, match:"inverted common symbol") then symbol_variation(symbol: set.symbol, variation: "invertedcommon")
else symbol_variation(symbol: set.symbol, variation: "common")
uncommon: script: symbol_variation(symbol: set.symbol, variation: "uncommon")
rare: script: symbol_variation(symbol: set.symbol, variation: "rare")
mythic rare: script: symbol_variation(symbol: set.symbol, variation: "mythic rare")
special: script: symbol_variation(symbol: set.symbol, variation: "special")
masterpiece: script: symbol_variation(symbol: set.masterpiece_symbol, variation: "mythic rare")
############################# Text box
text:
left: 29
top: { 327 - (-chop_top()) }
width: 314
bottom: { 481 - chop_bot() }
font:
name: { font_field(field: "text", value: "name")}
italic name: { font_field(field: "text", value: "italic")}
size: { font_field(field: "text", value: "size")}
weight: { font_field(field: "text", value: "weight")}
scale down to: 6
color: black
symbol font:
name: { styling.text_box_mana_symbols }
size: 14
alignment:
script:
if contains(styling.regular_options, match:"center text") then "middle center"
else "middle left"
z index: 2
padding left: 6
padding right: 4
line height hard: 1.2
line height line: 1.5
line height soft: 0.9
line height hard max: 1.3
line height line max: 1.6
############################# PT
pt:
z index: 2
left: 286
top: 469
width: 60
height: 28
alignment: center middle shrink-overflow
font:
name: { font_field(field: "pt", value: "name")}
size: { font_field(field: "pt", value: "size")}
weight: { font_field(field: "pt", value: "weight")}
color: black
separator color: red
symbol font:
name: {styling.pt_box_symbols}
size: 8
alignment: middle right
############################# Card sorting / numbering
set code:
left: 24
top: 498
width: 40
height: 10
z index: 1
font:
name: Relay-Medium
size: 7
color: white
weight: bold
############################# Copyright stuff
illustrator:
left: { 44 + card_style.set_code.content_width }
top: 497.5
width: 200
height: 10
z index: 1
font:
name: Beleren Small Caps Bold
size: 7.5
color: white
copyright:
right: 350
top: { if card.pt != "" then 500 else 488 }
width: 140
height: 10
z index: 2
visible: {not set.automatic_copyright}
alignment: middle right shrink-overflow
font:
name: Matrix
size: 7
color: white
weight: bold
############################################################## Extra card fields
extra card field:
type: text
name: card code
save value: false
script:
if set.automatic_card_numbers and not is_unsorted() then
forward_editor(prefix: card_number_m15() + "/" + card_count_m15() + " " + rarity_code() + " ", field: card.card_code_text)
else
combined_editor(field1: card.custom_card_number, separator: " " + rarity_code() + " ", field2: card.card_code_text)
extra card field:
type: choice
name: artist arrow
editable: false
save value: false
choice: white
save value: false
extra card field:
type: multiple choice
name: stamp
empty choice: colorless
choice: white
choice: blue
choice: black
choice: red
choice: green
choice: purple
choice:
name: pink
line below: true
choice: artifact
choice: snow
choice: land
choice: multicolor
choice: spectral
choice:
name: hybrid
line below: true
choice:
name: horizontal
type: radio
choice:
name: vertical
type: radio
choice:
name: radial
type: radio
choice:
name: diagonal
type: radio
choice:
name: overlay
type: radio
choice:
name: reversed
script: card_color_filter(value)
default: card_color(casting_cost: card.casting_cost, rules_text: card.rule_text, type: card.super_type, watermark: card.watermark, card_name: card.name)
extra card field:
type: multiple choice
name: pt box
empty choice: colorless
choice: white
choice: blue
choice: black
choice: red
choice: green
choice: purple
choice:
name: pink
line below: true
choice: artifact
choice: snow
choice: land
choice: multicolor
choice: spectral
choice:
name: hybrid
line below: true
choice:
name: horizontal
type: radio
choice:
name: vertical
type: radio
choice:
name: radial
type: radio
choice:
name: diagonal
type: radio
choice:
name: overlay
type: radio
choice:
name: reversed
script: card_color_filter(value)
default: card_color(casting_cost: card.casting_cost, rules_text: card.rule_text, type: card.super_type, watermark: card.watermark, card_name: card.name)
extra card field:
type: choice
name: foil stamp
choice: stamp
save value: false
editable: false
extra card field:
type: choice
name: foil layer
choice: foil
save value: false
editable: false
extra card field:
type: choice
name: emblem
include file: watermarks/watermark-names
extra card field:
type: choice
name: emblem 2
include file: watermarks/watermark-names
extra card field:
type: text
name: creator computer
save value: false
editable: false
show statistics: false
script: ":"
extra card field:
type: text
name: creator
save value: true
show statistics: false
editable: true
extra card field:
type: text
name: promo label
save value: true
description: The golden promo label.
extra card field:
type: multiple choice
name: frame
empty choice: colorless
choice: white
choice: blue
choice: black
choice: red
choice: green
choice: purple
choice:
name: pink
line below: true
choice: artifact
choice: snow
choice: land
choice: multicolor
choice: spectral
choice:
name: hybrid
line below: true
choice:
name: horizontal
type: radio
choice:
name: vertical
type: radio
choice:
name: radial
type: radio
choice:
name: diagonal
type: radio
choice:
name: overlay
type: radio
choice:
name: reversed
script: card_color_filter(value)
default: card_color(casting_cost: card.casting_cost, rules_text: card.rule_text, type: card.super_type, watermark: card.watermark, card_name: card.name)
extra card field:
type: choice
name: clock watermark
save value: false
editable: false
script: "clock"
extra card field:
type: choice
name: alchemist watermark
save value: false
editable: false
script: "alchemy"
extra card field:
type: choice
name: frost effect
save value: false
editable: false
script: "frost"
extra card field:
type: choice
name: runes
save value: false
editable: false
script: "runes"
extra card field:
type: text
name: auto copyright
script: set.copyright
save value: false
editable: false
show statistics: false
extra card style:
card code:
left: 24
top: 488
width: 120
height: 10
z index: 1
font:
name: Relay-Medium
size: 7
color: white
weight: bold
artist arrow:
left: { 28 + card_style.set_code.content_width }
top: 500
width: 12
height: 7
z index: 1
render style: image
image: artist_arrow.png
stamp:
left: 165
top: 472
width: 46
height: 26
z index: 1
visible: { is_rare() and contains(styling.regular_options, match:"holofoil stamped rares") }
render style: image
image: { card_stamp() }
pt box:
left: 273
top: 466
width: 81
height: 42
z index: 1
visible: { card.pt != "" }
render style: image
image: { card_ptbox() }
foil stamp:
left: 165
top: 472
width: 46
height: 26
z index: 1
visible: { is_rare() and contains(styling.regular_options, match:"holofoil stamped rares") }
render style: image
image: foil_stamp.png
foil layer:
left: 0
top : 0
width: 375
height: 523
z index: 3
render style: image
image: {if styling.overlay == "" then nil else styling.overlay + "/overlay.png"}
mask: { if is_rare() then "masks/foil_mask_rare.png" else "masks/foil_mask.png" }
emblem:
left: { if contains(styling.extras, match:"double watermarks") then 48 else 117 }
top: 321
width: 138
height: 166
z index: 1
render style: image
popup style: in place
alignment: middle center
include file: watermarks/watermarks
emblem 2:
left: { if contains(styling.extras, match:"double watermarks") then 186 else 500 }
top: 321
width: 138
height: 166
z index: 1
render style: image
popup style: in place
alignment: middle center
include file: watermarks/watermarks
creator computer:
left: { 48 + card_style.set_code.content_width + card_style.illustrator.content_width }
top: 497.5
width: 10
height: 10
z index: 1
visible: { contains(styling.extras, match:"card creator credit field") }
font:
name: Wingdings
size: 8.5
weight: bold
color: white
creator:
left: { 62 + card_style.set_code.content_width + card_style.illustrator.content_width }
top: 497.5
width: 100
height: 10
z index: 1
visible: { contains(styling.extras, match:"card creator credit field") }
font:
name: Beleren Small Caps Bold
size: 7.5
color: white
promo label:
left: 40
top: 262
width: 295
height: 29
alignment: middle right
z index: 4
font:
name: { if contains(styling.extras, match:"holiday promo text") then "MagicMedieval" else "ModMatrix" }
size: 14
color: { if contains(styling.extras, match:"holiday promo text") then rgb(217,0,0) else rgb(223,169,41) }
frame:
left: 0
top: 0
width: 375
height: 523
z index: 0
render style: image
popup style: in place
image: { card_background() }
clock watermark:
left: 28
top: 326
width: 318
height: 157
z index: 4
render style: image
image: clock_watermark.png
visible: { contains(styling.extras, match: "clock watermark") }
mask: { if is_rare() and contains(styling.regular_options, match:"holofoil stamped rares") then "masks/mask_fullsize_watermarks.png" else nil }
alchemist watermark:
left: 28
top: 326
width: 318
height: 157
z index: 4
render style: image
image: alchemy_watermark.png
visible: { contains(styling.extras, match: "alchemist watermark") }
mask: { if is_rare() and contains(styling.regular_options, match:"holofoil stamped rares") then "masks/mask_fullsize_watermarks.png" else nil }
frost effect:
left: 0
top: 0
width: 375
height: 523
z index: 4
render style: image
image: frost.png
visible: { contains(styling.extras, match: "frost effect") }
runes:
left: 0
top: 0
width: 375
height: 523
z index: 4
render style: image
image: runes.png
visible: { contains(styling.extras, match: "runes") }
mask: masks/rune_mask.png
auto copyright:
right: 350
top: { if card.pt != "" then 500 else 488 }
width: 140
height: 10
z index: 2
alignment: middle right shrink-overflow
visible: {set.automatic_copyright}
font:
name: Matrix
size: 7
color: white
weight: bold

View File

@@ -0,0 +1,828 @@
mse version: 2.0.0
game: magic
short name: M15 Extra
full name: M15 with Extra Features
icon: card-sample.png
installer group: magic/m15 style/normal cards/with extra features
position hint: 008
version: 2015-07-01
depends on:
package: magic.mse-game
version: 2015-04-08
depends on:
package: magic-default-image.mse-include
version: 2007-09-23
depends on:
package: magic-mana-large-extra-m15.mse-symbol-font
version: 2014-03-11
depends on:
package: magic-mana-small-extra-m15.mse-symbol-font
version: 2014-03-11
depends on:
package: magic-pt-symbols-extra-m15.mse-symbol-font
version: 2014-03-20
card width: 375
card height: 523
card dpi: 150
############################################################## Extra scripts
init script:
# Load scripts that are redefined from the game file
include file: game_scripts
# Load scripts that are redefined from the blends package
include file: blends_scripts
# Load scripts for image box
include file: /magic-default-image.mse-include/scripts
# Load font profiles
include file: font_new
include file: font_phyrexian
include file: font_old
include file: font_m15
# Should hybrids have a grey name?
mask_hybrid_with_land := { contains(styling.regular_options, match:"grey hybrid names") }
#Should multicolor lands with basic land types have a colored name?
mask_multi_land_with_color := { contains(styling.regular_options, match:"colored multicolor land names") }
template_prefix := [card: "" pt: "" stamp: "" identity: ""]
template_suffix := [card: "card.jpg" pt: "pt.png" stamp: "stamp.jpg" identity: "identity.png"]
template := { template_prefix[type] + input + template_suffix[type] }
land_template := { template_prefix[type] + (if input == "a" or input == "s" then "c" else input) + "l" + template_suffix[type] }
# Use land templates for previews because they show more contrast
hybrid_previews := "land,hybrid"
# Use the normal tap symbol
mana_t := {
if styling.tap_symbol == "old" then "old"
else if styling.tap_symbol == "diagonal T" then "older"
else "new"
}
# Use guild mana symbols?
guild_mana := { contains(styling.regular_options, match:"guild mana symbols") }
# Filter to commas, so they can be counted to see if field is complete
comma_count := filter_text@(match:",")
# Interpret the font profile choice.
font_profile := {
if styling.font_style == "Phyrexian" then "phyrexian"
else if styling.font_style == "Before 8th Edition" then "old"
else if styling.font_style == "After 8th Edition" then "new"
else "m15"
}
font_field := {
if font_profile() == "m15" then (
if field == "name" then font_name_m15[value]
else if field == "type" then font_type_m15[value]
else if field == "text" then font_text_m15[value]
else if field == "pt" then font_pt_m15[value]
)
else if font_profile() == "new" then (
if field == "name" then font_name_new[value]
else if field == "type" then font_type_new[value]
else if field == "text" then font_text_new[value]
else if field == "pt" then font_pt_new[value]
)
else if font_profile() == "phyrexian" then (
if field == "name" then font_name_phyrexian[value]
else if field == "type" then font_type_phyrexian[value]
else if field == "text" then font_text_phyrexian[value]
else if field == "pt" then font_pt_phyrexian[value]
)
else if font_profile() == "old" then (
if field == "name" then font_name_old[value]
else if field == "type" then font_type_old[value]
else if field == "text" then font_text_old[value]
else if field == "pt" then font_pt_old[value]
)
}
# Is the card a promo card?
is_promo := { styling.promo }
############################################################## Set info fields
set info style:
symbol:
variation:
name: invertedcommon
border radius: 0.10
fill type: solid
fill color: rgb(255,255,255)
border color: rgb(0,0,0)
############################################################## Extra style options
styling field:
type: choice
name: font style
description: Which font style should be used?
choice: After Magic 2015
choice: After 8th Edition
choice: Before 8th Edition
choice: Phyrexian
initial: After Magic 2015
styling field:
type: multiple choice
name: regular options
description: Which regular styling options would you like to use?
choice: center text
choice: color indicator dot
choice: colored multicolor land names
choice: grey hybrid names
choice: guild mana symbols
choice: holofoil stamped rares
choice: promo rarity
choice: inverted common symbol
initial: colored multicolor land names, grey hybrid names, holofoil stamped rares
styling field:
type: multiple choice
name: extras
description: Which extra options would you like to use?
choice: pichoro's alchemist watermark
choice: alpha style dual lands
choice: card creator credit field
choice: takeabow's clock watermark
choice: advent's colored xyz mana
choice: circeus' colorless-colored hybrid
choice: anuttymous' frost effect
choice: holiday promo text
choice: dark nova's runes
choice: lesurgo's spell-land hybrid
choice: circeus' tinged artifact hybrid
choice: type symbol with name
choice: unsorted casting cost
styling field:
type: choice
name: tap symbol
description: What tap and untap symbols should be used on cards?
initial: modern
choice: modern
choice: old
choice: diagonal T
styling field:
type: package choice
name: text box mana symbols
match: magic-mana-*.mse-symbol-font
initial: magic-mana-small-extra-m15.mse-symbol-font
styling field:
type: package choice
name: pt box symbols
match: magic-pt-symbols-*.mse-symbol-font
initial: magic-pt-symbols-extra.mse-symbol-font
styling field:
type: package choice
name: overlay
description: Should there be an overlay applied, such as foil?
match: magic-overlay-*.mse-include
required: false
styling field:
type: symbol
name: mythic rare accent
description: This symbol field is used to hold the white accent that should appear on mythic rares.
styling field:
type: choice
name: outer color
description: Should the outside of the frame be a special color?
choice: default
choice: white
choice: blue
choice: black
choice: red
choice: green
choice: purple
choice: pink
choice: artifact
choice: snow
choice: multicolor
choice: spectral
choice: colorless
styling field:
type: choice
name: trim color
description: Should the trim of the frame be a special color?
choice: default
choice: white
choice: blue
choice: black
choice: red
choice: green
choice: purple
choice: pink
choice: artifact
choice: snow
choice: multicolor
choice: spectral
choice: colorless
styling field:
type: choice
name: inner color
description: Should the inside of the frame be a special color?
choice: default
choice: white
choice: blue
choice: black
choice: red
choice: green
choice: purple
choice: pink
choice: artifact
choice: snow
choice: multicolor
choice: spectral
choice: colorless
styling field:
type: text
name: popout image style
description: The styling instructions for the popout image field, formatted as "left,top,width,height,". The text MUST end with a comma.
styling style:
tap symbol:
render style: both
choice images:
modern: /magic-mana-large-extra-m15.mse-symbol-font/mana_t.png
old: /magic-mana-large-extra-m15.mse-symbol-font/mana_t_old.png
diagonal T: /magic-mana-large-extra-m15.mse-symbol-font/mana_t_older.png
regular options:
render style: checklist
direction: vertical
extras:
render style: checklist
direction: vertical
############################################################## Card fields
card style:
############################# Background stuff
############################# Name line
name:
left:
{ if card.card_symbol=="none" and (card.type_symbol=="none" or not contains(styling.extras, match:"type symbol with name")) then 32
else if card.card_symbol == "none" then 49
else if card.type_symbol == "none" or ( not contains(styling.extras, match:"type symbol with name")) then 49
else 67}
top: { font_field(field: "name", value: "top")}
right: { 341 - card_style.casting_cost.content_width }
height: 23
alignment: bottom shrink-overflow
padding bottom: 0
z index: 1
font:
name: { font_field(field: "name", value: "name")}
size: { font_field(field: "name", value: "size")}
weight: { font_field(field: "name", value: "weight")}
color: black
casting cost:
right: 346
top: 29
width: { max(30, card_style.casting_cost.content_width) + 5 }
height: 23
alignment: middle right
font:
name: MPlantin
size: 15
symbol font:
name: magic-mana-large-extra-m15
size: 15
alignment: middle right
always symbol: true
z index: 2
padding top: 0
card symbol:
left:
{if card.card_symbol == "none" then 20
else if card.type_symbol == "none" or not contains(styling.extras, match:"type symbol with name") then 30
else 50}
top: {if card.card_symbol == "none" then 40 else 29}
height: 20
width: 14
z index: 1
render style: image
choice images:
tombstone: tombstone.png
type symbol:
left: {if card.type_symbol == "none" or not contains(styling.extras, match:"type symbol with name") then 18 else 27}
top: {if card.type_symbol == "none" or not contains(styling.extras, match:"type symbol with name") then 20 else 30}
width: 21
height: 20
z index: 5
render style: image
alignment: middle center
visible: { contains(styling.extras, match:"type symbol with name") }
choice images:
artifact: type-symbols/artifact_black.png
creature: type-symbols/creature_black.png
enchantment: type-symbols/enchantment_black.png
instant: type-symbols/instant_black.png
land: type-symbols/land_black.png
multitype: type-symbols/multitype_black.png
sorcery: type-symbols/sorcery_black.png
planeswalker: type-symbols/planeswalker_black.png
structure: type-symbols/structure_black.png
############################# Image
image:
left: 29
top: 60
width: 316
height: 231
z index: 1
default: {default_image(card.card_color)}
image 2:
left: {if comma_count(styling.popout_image_style) == ",,,," then split_text(match:",", styling.popout_image_style).0 else "0"}
top: {if comma_count(styling.popout_image_style) == ",,,," then split_text(match:",", styling.popout_image_style).1 else "0"}
width: {if comma_count(styling.popout_image_style) == ",,,," then split_text(match:",", styling.popout_image_style).2 else "0"}
height: {if comma_count(styling.popout_image_style) == ",,,," then split_text(match:",", styling.popout_image_style).3 else "0"}
z index: 1
############################# Card type
indicator:
left: 31
top: 300
width: 17
height: 17
z index: 2
render style: image
visible: { has_identity() }
image: { card_identity() }
type:
left: { if has_identity() then "52" else "32" }
top: { font_field(field: "type", value: "top")}
width: { (if has_identity() then "290" else "310") - max(22,card_style.rarity.content_width) }
height: 20
alignment: top shrink-overflow
z index: 2
padding top: 2
font:
name: { font_field(field: "type", value: "name")}
size: { font_field(field: "type", value: "size")}
weight: { font_field(field: "type", value: "weight")}
color: black
separator color: red
rarity:
right: 344
top: 297
width: 44
height: 22
z index: 2
render style: image
alignment: middle right
choice images:
# Images based on the set symbol
basic land:
script:
if contains(styling.regular_options, match:"inverted common symbol") then symbol_variation(symbol: set.symbol, variation: "invertedcommon")
else symbol_variation(symbol: set.symbol, variation: "common")
common:
script:
if contains(styling.regular_options, match:"inverted common symbol") then symbol_variation(symbol: set.symbol, variation: "invertedcommon")
else symbol_variation(symbol: set.symbol, variation: "common")
uncommon: script: symbol_variation(symbol: set.symbol, variation: "uncommon")
rare: script: symbol_variation(symbol: set.symbol, variation: "rare")
mythic rare: script: symbol_variation(symbol: set.symbol, variation: "mythic rare")
special: script: symbol_variation(symbol: set.symbol, variation: "special")
############################# Text box
text:
left: 29
top: 327
width: 314
height: 154
font:
name: { font_field(field: "text", value: "name")}
italic name: { font_field(field: "text", value: "italic")}
size: { font_field(field: "text", value: "size")}
weight: { font_field(field: "text", value: "weight")}
scale down to: 6
color: black
symbol font:
name: { styling.text_box_mana_symbols }
size: 14
alignment:
script:
if contains(styling.regular_options, match:"center text") then "middle center"
else "middle left"
z index: 2
padding left: 6
padding right: 4
line height hard: 1.2
line height line: 1.5
line height soft: 0.9
line height hard max: 1.3
line height line max: 1.6
############################# PT
pt:
z index: 2
left: 286
top: 469
width: 60
height: 28
alignment: center middle shrink-overflow
font:
name: { font_field(field: "pt", value: "name")}
size: { font_field(field: "pt", value: "size")}
weight: { font_field(field: "pt", value: "weight")}
color: black
separator color: red
symbol font:
name: {styling.pt_box_symbols}
size: 8
alignment: middle right
############################# Card sorting / numbering
set code:
left: 24
top: 498
width: 40
height: 10
z index: 1
font:
name: Relay-Medium
size: 7
color: white
weight: bold
############################# Copyright stuff
illustrator:
left: { 44 + card_style.set_code.content_width }
top: 497.5
width: 200
height: 10
z index: 1
font:
name: Beleren Small Caps Bold
size: 7.5
color: white
copyright:
right: 350
top: { if card.pt != "" then 500 else 488 }
width: 140
height: 10
z index: 2
alignment: middle right shrink-overflow
font:
name: Matrix
size: 7
color: white
weight: bold
############################################################## Extra card fields
extra card field:
type: choice
name: mythic rare accent
save value: false
editable: false
choice: accent
extra card field:
type: text
name: card code
save value: false
script: forward_editor(prefix: card_number_m15() + "/" + card_count_m15() + " " + rarity_code() + " ", field: card.card_code_text)
extra card field:
type: choice
name: artist arrow
editable: false
save value: false
choice: white
save value: false
extra card field:
type: multiple choice
name: stamp
empty choice: colorless
choice: white
choice: blue
choice: black
choice: red
choice: green
choice: purple
choice:
name: pink
line below: true
choice: artifact
choice: snow
choice: land
choice: multicolor
choice: spectral
choice:
name: hybrid
line below: true
choice:
name: horizontal
type: radio
choice:
name: vertical
type: radio
choice:
name: radial
type: radio
choice:
name: diagonal
type: radio
choice:
name: overlay
type: radio
choice:
name: reversed
script: card_color_filter(value)
default: card_color(casting_cost: card.casting_cost, rules_text: card.rule_text, type: card.super_type, watermark: card.watermark, card_name: card.name)
extra card field:
type: multiple choice
name: pt box
empty choice: colorless
choice: white
choice: blue
choice: black
choice: red
choice: green
choice: purple
choice:
name: pink
line below: true
choice: artifact
choice: snow
choice: land
choice: multicolor
choice: spectral
choice:
name: hybrid
line below: true
choice:
name: horizontal
type: radio
choice:
name: vertical
type: radio
choice:
name: radial
type: radio
choice:
name: diagonal
type: radio
choice:
name: overlay
type: radio
choice:
name: reversed
script: card_color_filter(value)
default: card_color(casting_cost: card.casting_cost, rules_text: card.rule_text, type: card.super_type, watermark: card.watermark, card_name: card.name)
extra card field:
type: choice
name: foil stamp
choice: stamp
save value: false
editable: false
extra card field:
type: choice
name: foil layer
choice: foil
save value: false
editable: false
extra card field:
type: choice
name: emblem
include file: watermarks/watermark-names
extra card field:
type: text
name: creator computer
save value: false
editable: false
show statistics: false
script: ":"
extra card field:
type: text
name: creator
save value: true
show statistics: false
editable: true
extra card field:
type: text
name: promo label
save value: true
description: The golden promo label.
extra card field:
type: multiple choice
name: frame
empty choice: colorless
choice: white
choice: blue
choice: black
choice: red
choice: green
choice: purple
choice:
name: pink
line below: true
choice: artifact
choice: snow
choice: land
choice: multicolor
choice: spectral
choice:
name: hybrid
line below: true
choice:
name: horizontal
type: radio
choice:
name: vertical
type: radio
choice:
name: radial
type: radio
choice:
name: diagonal
type: radio
choice:
name: overlay
type: radio
choice:
name: reversed
script: card_color_filter(value)
default: card_color(casting_cost: card.casting_cost, rules_text: card.rule_text, type: card.super_type, watermark: card.watermark, card_name: card.name)
extra card field:
type: choice
name: clock watermark
save value: false
editable: false
script: "clock"
extra card field:
type: choice
name: alchemist watermark
save value: false
editable: false
script: "alchemy"
extra card field:
type: choice
name: frost effect
save value: false
editable: false
script: "frost"
extra card field:
type: choice
name: runes
save value: false
editable: false
script: "runes"
extra card style:
mythic rare accent:
right: 344
top: 297
width: 44
height: 22
z index: 3
render style: image
visible: {card.rarity == "mythic rare"}
alignment: middle right
choice images:
# Images based on the set symbol
accent:
script:
symbol_variation(
symbol: styling.mythic_rare_accent,
border_radius: 0,
fill_type: "solid",
border_color: rgb(255,255,255),
fill_color: rgba(0,0,0,0)
)
card code:
left: 24
top: 488
width: 120
height: 10
z index: 1
font:
name: Relay-Medium
size: 7
color: white
weight: bold
artist arrow:
left: { 28 + card_style.set_code.content_width }
top: 500
width: 12
height: 7
z index: 1
render style: image
image: artist_arrow.png
stamp:
left: 165
top: 472
width: 46
height: 26
z index: 1
visible: { is_rare() and contains(styling.regular_options, match:"holofoil stamped rares") }
render style: image
image: { card_stamp() }
pt box:
left: 273
top: 466
width: 81
height: 42
z index: 1
visible: { card.pt != "" }
render style: image
image: { card_ptbox() }
foil stamp:
left: 165
top: 472
width: 46
height: 26
z index: 1
visible: { is_rare() }
render style: image
image: foil_stamp.png
foil layer:
left: 0
top : 0
width: 375
height: 523
z index: 3
render style: image
image: {if styling.overlay == "" then nil else styling.overlay + "/overlay.png"}
mask: { if is_rare() then "masks/foil_mask_rare.png" else "masks/foil_mask.png" }
emblem:
left: 117
top: 321
width: 138
height: 166
z index: 1
render style: image
popup style: in place
alignment: middle center
include file: watermarks/watermarks
creator computer:
left: { 48 + card_style.set_code.content_width + card_style.illustrator.content_width }
top: 497.5
width: 10
height: 10
z index: 1
visible: { contains(styling.extras, match:"card creator credit field") }
font:
name: Wingdings
size: 8.5
weight: bold
color: white
creator:
left: { 62 + card_style.set_code.content_width + card_style.illustrator.content_width }
top: 497.5
width: 100
height: 10
z index: 1
visible: { contains(styling.extras, match:"card creator credit field") }
font:
name: Beleren Small Caps Bold
size: 7.5
color: white
promo label:
left: 40
top: 262
width: 295
height: 29
alignment: middle right
z index: 4
font:
name: { if contains(styling.extras, match:"holiday promo text") then "MagicMedieval" else "ModMatrix" }
size: 14
color: { if contains(styling.extras, match:"holiday promo text") then rgb(217,0,0) else rgb(223,169,41) }
frame:
left: 0
top: 0
width: 375
height: 523
z index: 0
render style: image
popup style: in place
image: { card_background() }
clock watermark:
left: 28
top: 326
width: 318
height: 157
z index: 4
render style: image
image: clock_watermark.png
visible: { contains(styling.extras, match: "clock watermark") }
mask: { if is_rare() and contains(styling.regular_options, match:"holofoil stamped rares") then "masks/mask_fullsize_watermarks.png" else nil }
alchemist watermark:
left: 28
top: 326
width: 318
height: 157
z index: 4
render style: image
image: alchemy_watermark.png
visible: { contains(styling.extras, match: "alchemist watermark") }
mask: { if is_rare() and contains(styling.regular_options, match:"holofoil stamped rares") then "masks/mask_fullsize_watermarks.png" else nil }
frost effect:
left: 0
top: 0
width: 375
height: 523
z index: 4
render style: image
image: frost.png
visible: { contains(styling.extras, match: "frost effect") }
runes:
left: 0
top: 0
width: 375
height: 523
z index: 4
render style: image
image: runes.png
visible: { contains(styling.extras, match: "runes") }
mask: masks/rune_mask.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

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