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: 155 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

View File

@@ -0,0 +1,912 @@
# Scripts for blending images
# Included by a style file in its init script
########################################################################
# Filenames and other defaults
########################################################################
########################################################################
# Combining multiple colors (hybrids)
########################################################################
# This script has been expanded to handle more color choices.
horizontal_card_hybrid := [
1: { template(colors[0]) }
2: card_hybrid_2
3: {linear_blend(
image1: template(colors[0])
x1: 0.22, y1: 0
x2: 0.4, y2: 0
image2: linear_blend(
image1: template(colors[1])
x1: 0.6, y1: 0
x2: 0.78, y2: 0
image2: template(colors[2])
))}
4: {linear_blend(
# blend = 0.16
image1: template(colors[0])
x1: 0.15, y1: 0
x2: 0.31, y2: 0
image2: linear_blend(
image1: template(colors[1])
x1: 0.42, y1: 0
x2: 0.58, y2: 0
image2: linear_blend(
image1: template(colors[2])
x1: 0.69, y1: 0
x2: 0.85, y2: 0
image2: template(colors[3])
)))}
5: {linear_blend(
image1: template(colors[0])
x1: 2.0 / 15, y1: 0
x2: 4.0 / 15, y2: 0
image2: linear_blend(
image1: template(colors[1])
x1: 5.0 / 15, y1: 0
x2: 7.0 / 15, y2: 0
image2: linear_blend(
image1: template(colors[2])
x1: 8.0 / 15, y1: 0
x2: 10.0 / 15, y2: 0
image2: linear_blend(
image1: template(colors[3])
x1: 11.0 / 15, y1: 0
x2: 13.0 / 15, y2: 0
image2: template(colors[4])
))))}
6: {linear_blend(
image1: template(colors[0])
x1: 1.5 / 15, y1: 0
x2: 3.1 / 15, y2: 0
image2: linear_blend(
image1: template(colors[1])
x1: 4.1 / 15, y1: 0
x2: 5.7 / 15, y2: 0
image2: linear_blend(
image1: template(colors[2])
x1: 6.7 / 15, y1: 0
x2: 8.3 / 15, y2: 0
image2: linear_blend(
image1: template(colors[3])
x1: 9.3 / 15, y1: 0
x2: 10.9 / 15, y2: 0
image2: linear_blend(
image1: template(colors[4])
x1: 11.9 / 15, y1: 0
x2: 13.5 / 15, y2: 0
image2: template(colors[5])
)))))}
7: {linear_blend(
image1: template(colors[0])
x1: 1.3 / 15, y1: 0
x2: 2.7 / 15, y2: 0
image2: linear_blend(
image1: template(colors[1])
x1: 3.5 / 15, y1: 0
x2: 4.9 / 15, y2: 0
image2: linear_blend(
image1: template(colors[2])
x1: 5.7 / 15, y1: 0
x2: 7.1 / 15, y2: 0
image2: linear_blend(
image1: template(colors[3])
x1: 7.9 / 15, y1: 0
x2: 9.3 / 15, y2: 0
image2: linear_blend(
image1: template(colors[4])
x1: 10.1 / 15, y1: 0
x2: 11.5 / 15, y2: 0
image2: linear_blend(
image1: template(colors[5])
x1: 12.3 / 15, y1: 0
x2: 13.7 / 15, y2: 0
image2: template(colors[6])
))))))}
8: { template("m") }
9: { template("m") }
10: { template("m") }
11: { template("m") }
12: { template("m") }
]
# This script doesn't exist in magic-blends.
diagonal_card_hybrid := [
1: { template(colors[0]) }
2: {linear_blend(
image1: template(colors[0]),
image2: template(colors[1]),
x1: 0.40, y1: 0.50
x2: 0.60, y2: 0.60
)}
3: {linear_blend(
image1: linear_blend(
image1: template(colors[0]),
image2: template(colors[1]),
x1: 0.15, y1: 0.50
x2: 0.35, y2: 0.60),
image2: template(colors[2]),
x1: 0.65, y1: 0.50
x2: 0.85, y2: 0.60
)}
4: { linear_blend(
image1: linear_blend(
image1: template(colors[0]),
image2: template(colors[1]),
x1: -0.10, y1: 0.50
x2: 0.10, y2: 0.60),
image2: linear_blend(
image1: template(colors[2]),
image2: template(colors[3]),
x1: 0.90, y1: 0.50
x2: 1.10, y2: 0.60),
x1: 0.40, y1: 0.50
x2: 0.60, y2: 0.60
)}
5: {linear_blend(
image1: linear_blend(
image1: linear_blend(
image1: linear_blend(
image1: template(colors[0]),
image2: template(colors[1]),
x1: -0.20, y1: 0.50
x2: 0.00, y2: 0.60),
image2: template(colors[2]),
x1: 0.15, y1: 0.50
x2: 0.35, y2: 0.60),
image2: template(colors[3]),
x1: 0.65, y1: 0.50
x2: 0.85, y2: 0.60),
image2: template(colors[4]),
x1: 1.00, y1: 0.50
x2: 1.20, y2: 0.60
)}
6: {linear_blend(
image1: linear_blend(
image1: linear_blend(
image1: linear_blend(
image1: linear_blend(
image1: template(colors[0]),
image2: template(colors[1]),
x1: -0.30, y1: 0.50
x2: -0.10, y2: 0.60),
image2: template(colors[2]),
x1: 0.10, y1: 0.50
x2: 0.20, y2: 0.60),
image2: template(colors[3]),
x1: 0.40, y1: 0.50
x2: 0.60, y2: 0.60),
image2: template(colors[4]),
x1: 0.70, y1: 0.50
x2: 0.90, y2: 0.60),
image2: template(colors[5]),
x1: 1.10, y1: 0.50
x2: 1.30, y2: 0.60
)}
7: { template("m") }
8: { template("m") }
9: { template("m") }
10: { template("m") }
11: { template("m") }
12: { template("m") }
]
card_hybrid := [
radial: [
0: { template("c") }
1: { template(colors[0]) }
2: card_hybrid_2
3: {linear_blend(
image1: card_hybrid_2(colors: colors[0] + colors[1]),
image2: template(colors[2]),
x1: 0, y1: 0.55
x2: 0, y2: 0.77
)}
4: {linear_blend(
image1: card_hybrid_2(colors: colors[0] + colors[1])
image2: card_hybrid_2(colors: colors[3] + colors[2])
x1: 0, y1: 0.4
x2: 0, y2: 0.62
)}
5: {linear_blend(
image1: linear_blend(
image1: card_hybrid_2(colors: colors[0] + colors[1]),
image2: card_hybrid_2(colors: colors[4] + colors[2]),
x1: 0, y1: 0.19
x2: 0, y2: 0.35
),
image2: template(colors[3]),
x1: 0, y1: 0.777
x2: 0, y2: 0.937
)}
6: {linear_blend(
image1: linear_blend(
image1: card_hybrid_2(colors: colors[0] + colors[1]),
image2: card_hybrid_2(colors: colors[5] + colors[2]),
x1: 0, y1: 0.19
x2: 0, y2: 0.35
),
image2: card_hybrid_2(colors: colors[4] + colors[3]),
x1: 0, y1: 0.777
x2: 0, y2: 0.937
)}
7: {linear_blend(
image1: linear_blend(
image1: linear_blend(
image1: card_hybrid_2(colors: colors[0] + colors[1]),
image2: card_hybrid_2(colors: colors[6] + colors[3]),
x1: 0, y1: 0.34
x2: 0, y2: 0.50
),
image2: card_hybrid_2(colors: colors[5] + colors[3]),
x1: 0, y1: 0.877
x2: 0, y2: 0.937
),
image2: template(colors[4]),
x1: 0, y1: 1.140
x2: 0, y2: 1.300
)}
8: { template("m") }
9: { template("m") }
10: { template("m") }
11: { template("m") }
12: { template("m") }
]
horizontal: horizontal_card_hybrid
diagonal: diagonal_card_hybrid
vertical: [
1: { template(colors[0]) }
2: { linear_blend(
image1: template(colors[0])
image2: template(colors[1])
x1: 0, y1: 0.4
x2: 0, y2: 0.6
)}
3: vertical_card_hybrid
4: vertical_card_hybrid
5: vertical_card_hybrid
6: vertical_card_hybrid
7: vertical_card_hybrid
8: { template("m") }
9: { template("m") }
10: { template("m") }
11: { template("m") }
12: { template("m") }
]
overlay: overlay_hybrid
]
########################################################################
# P/T box
########################################################################
# These are easier
# This script has been expanded to handle more color choices.
horizontal_pt_hybrid := [
1: { template(colors[0]) }
2: { template(colors[1]) }
3: { linear_blend(
image1: template(colors[1])
image2: template(colors[2])
x1: -0.51, y1: 0
x2: 0.26, y2: 0
)}
4: { linear_blend(
image1: template(colors[2])
image2: template(colors[3])
x1: -0.1, y1: 0
x2: 0.6, y2: 0
)}
5: { linear_blend(
image1: template(colors[3])
image2: template(colors[4])
x1: 0.08, y1: 0
x2: 0.65, y2: 0
)}
6: { linear_blend(
image1: template(colors[4])
image2: template(colors[5])
x1: 0.07, y1: 0
x2: 0.7, y2: 0
)}
7: {linear_blend(
image1: linear_blend(
image1: template(colors[4]),
image2: template(colors[5]),
x1: -0.2, y1: 0
x2: 0.2, y2: 0
),
image2: template(colors[6]),
x1: 0.5, y1: 0
x2: 0.7, y2: 0
)}
8: { template("m") }
9: { template("m") }
10: { template("m") }
11: { template("m") }
12: { template("m") }
]
# This script doesn't exist in magic-blends.
diagonal_pt_hybrid := [
1: { template(colors[0]) }
2: { template(colors[1]) }
3: { template(colors[2]) }
4: { template(colors[3]) }
5: { linear_blend(
image1: template(colors[3]),
image2: template(colors[4]),
x1: -0.10, y1: 0.50
x2: 0.10, y2: 0.60
)}
6: { linear_blend(
image1: template(colors[4]),
image2: template(colors[5]),
x1: 0.10, y1: 0.50
x2: 0.30, y2: 0.60
)}
7: { template("m") }
8: { template("m") }
9: { template("m") }
10: { template("m") }
11: { template("m") }
12: { template("m") }
]
pt_hybrid := [
radial: [
0: { template("c") }
1: { template(colors[0]) }
2: { template(colors[1]) }
3: { template(colors[2]) }
4: { template(colors[2]) }
5: { linear_blend(
image1: template(colors[2])
image2: template(colors[3])
x1: 0, y1: -1.5
x2: 0, y2: 0.7
)}
6: { linear_blend(
image1: template(colors[2])
image2: template(colors[3])
x1: 0, y1: -1.5
x2: 0, y2: 0.7
)}
7: { template(colors[3]) }
8: { template("m") }
9: { template("m") }
10: { template("m") }
11: { template("m") }
12: { template("m") }
]
horizontal: horizontal_pt_hybrid
diagonal: diagonal_pt_hybrid
vertical: [
1: { template(colors[0]) }
2: { template(colors[1]) }
3: { template(colors[2]) }
4: { template(colors[3]) }
5: { template(colors[4]) }
6: { template(colors[5]) }
7: { template(colors[6]) }
8: { template("m") }
9: { template("m") }
10: { template("m") }
11: { template("m") }
12: { template("m") }
]
overlay: overlay_hybrid
]
########################################################################
# P/T boxes of flip cards
########################################################################
#
########################################################################
# P/T boxes for leveler cards
########################################################################
#
########################################################################
# Textbox and typeline for FPM templates and Futureshifts
########################################################################
#
########################################################################
# Color Identity Marking
########################################################################
# This script has been expanded to handle more color choices.
identity_horizontal_hybrid := [
0: { template("c") }
1: { template(colors[0]) }
2: { linear_blend(
image1: template(colors[0])
image2: template(colors[1])
x1: 0.49, y1: 0.49
x2: 0.5, y2: 0.5
)}
3: {linear_blend(
image1: template(colors[0])
x1: 0.39, y1: 0.39
x2: 0.4, y2: 0.4
image2: linear_blend(
image1: template(colors[1])
x1: 0.6, y1: 0.6
x2: 0.61, y2: 0.61
image2: template(colors[2])
))}
4: {linear_blend(
# blend = 0.16
image1: template(colors[0])
x1: 0.29, y1: 0.29
x2: 0.3, y2: 0.3
image2: linear_blend(
image1: template(colors[1])
x1: 0.49, y1: 0.49
x2: 0.50, y2: 0.5
image2: linear_blend(
image1: template(colors[2])
x1: 0.69, y1: 0.69
x2: 0.7, y2: 0.7
image2: template(colors[3])
)))}
5: {linear_blend(
image1: template(colors[0])
x1: 0.28, y1: 0.28
x2: 0.29, y2: 0.29
image2: linear_blend(
image1: template(colors[1])
x1: 0.42, y1: 0.42
x2: 0.43, y2: 0.43
image2: linear_blend(
image1: template(colors[2])
x1: 0.56, y1: 0.56
x2: 0.57, y2: 0.57
image2: linear_blend(
image1: template(colors[3])
x1: 0.7, y1: 0.7
x2: 0.71, y2: 0.71
image2: template(colors[4])
))))}
6: {linear_blend(
image1: template(colors[0])
x1: 0.27, y1: 0.27
x2: 0.28, y2: 0.28
image2: linear_blend(
image1: template(colors[1])
x1: 0.38, y1: 0.38
x2: 0.39, y2: 0.39
image2: linear_blend(
image1: template(colors[2])
x1: 0.49, y1: 0.49
x2: 0.50, y2: 0.50
image2: linear_blend(
image1: template(colors[3])
x1: 0.60, y1: 0.60
x2: 0.61, y2: 0.61
image2: linear_blend(
image1: template(colors[4])
x1: 0.71, y1: 0.71
x2: 0.72, y2: 0.72
image2: template(colors[5])
)))))}
7: {linear_blend(
image1: template(colors[0])
x1: 0.27, y1: 0.27
x2: 0.28, y2: 0.28
image2: linear_blend(
image1: template(colors[1])
x1: 0.36, y1: 0.36
x2: 0.37, y2: 0.37
image2: linear_blend(
image1: template(colors[2])
x1: 0.45, y1: 0.45
x2: 0.46, y2: 0.46
image2: linear_blend(
image1: template(colors[3])
x1: 0.54, y1: 0.54
x2: 0.55, y2: 0.55
image2: linear_blend(
image1: template(colors[4])
x1: 0.63, y1: 0.63
x2: 0.64, y2: 0.64
image2: linear_blend(
image1: template(colors[5])
x1: 0.72, y1: 0.72
x2: 0.73, y2: 0.73
image2: template(colors[6])
))))))}
8: { template("m") }
9: { template("m") }
10: { template("m") }
11: { template("m") }
12: { template("m") }
]
identity_hybrid := [
radial: identity_horizontal_hybrid
vertical: identity_horizontal_hybrid
horizontal: identity_horizontal_hybrid
overlay: identity_horizontal_hybrid
diagonal: identity_horizontal_hybrid
]
########################################################################
# Promo Stamp
########################################################################
# These are easier
horizontal_stamp_hybrid := [
1: { template(colors[0]) }
2: { linear_blend(
image1: template(colors[0])
image2: template(colors[1])
x1: -0.3, y1: 0
x2: 1.3, y2: 0
)}
3: { template(colors[1]) }
4: { linear_blend(
image1: template(colors[1])
image2: template(colors[2])
x1: -0.3, y1: 0
x2: 1.3, y2: 0
)}
5: {linear_blend(
image1: template(colors[1])
x1: -0.55, y1: 0
x2: 0.2, y2: 0
image2: linear_blend(
image1: template(colors[2])
x1: 0.8, y1: 0
x2: 1.55, y2: 0
image2: template(colors[3])
))}
6: { linear_blend(
image1: template(colors[2])
image2: template(colors[3])
x1: 0.1, y1: 0
x2: 0.9, y2: 0
)}
7: {linear_blend(
image1: template(colors[2])
x1: -0.55, y1: 0
x2: 0.2, y2: 0
image2: linear_blend(
image1: template(colors[3])
x1: 0.8, y1: 0
x2: 1.55, y2: 0
image2: template(colors[4])
))}
8: { template("m") }
9: { template("m") }
10: { template("m") }
11: { template("m") }
12: { template("m") }
]
stamp_hybrid := [
radial: [
0: { template("c") }
1: { template(colors[0]) }
2: { linear_blend(
image1: template(colors[0])
image2: template(colors[1])
x1: -0.3, y1: 0
x2: 1.3, y2: 0
)}
3: { template(colors[2]) }
4: { linear_blend(
image1: template(colors[3])
image2: template(colors[2])
x1: -0.3, y1: 0
x2: 1.3, y2: 0
)}
5: { template(colors[3]) }
6: { linear_blend(
image1: template(colors[4])
image2: template(colors[3])
x1: -0.3, y1: 0
x2: 1.3, y2: 0
)}
7: { template(colors[4]) }
8: { template("m") }
9: { template("m") }
10: { template("m") }
11: { template("m") }
12: { template("m") }
]
horizontal: horizontal_stamp_hybrid
vertical: [
1: { template(colors[0]) }
2: { template(colors[1]) }
3: { template(colors[2]) }
4: { template(colors[3]) }
5: { template(colors[4]) }
6: { template(colors[5]) }
7: { template(colors[6]) }
8: { template("m") }
9: { template("m") }
10: { template("m") }
11: { template("m") }
12: { template("m") }
]
overlay: overlay_hybrid
]
########################################################################
# Putting it all together.
########################################################################
# Determine the card background based on the card_color multiple choice options
color_background := {
# for thumbnails
if input == "hybrid" then
input := "white,blue,red,{hybrid_previews},horizontal"
else if input == "overlay" then
input := "blue,red,{hybrid_previews},overlay"
else if input == "radial" or input == "horizontal" or input == "vertical" then
input := "white,blue,red,{hybrid_previews}," + input
else if input == "diagonal" then
input := "white,black,{hybrid_previews},diagonal"
else if input == "reversed" then
input := "white,blue,red,{hybrid_previews},horizontal,reversed"
# What type of 'hybrid'?
land := chosen(choice:"land")
multi := chosen(choice:"multicolor")
spectral := chosen(choice:"spectral")
hybrid := chosen(choice:"hybrid")
artifact := chosen(choice:"artifact")
snow := chosen(choice:"snow")
if land and colored_lands then template := land_template # use land template instead?
# The selected colors
colors := sort_text( order: "(wupbrg)(loek)"
, (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"
)
)
)
)
# 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: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

@@ -0,0 +1,442 @@
############################################################################################################ 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 := {
sort_text@(order: "XYZ∞[0123456789]HSCA(K)(WUPBRG)")()
}
#mana_sort := sort_text@(order: "XYZ∞[0123456789]HSCA(K)(WUPBRG)")
# correctly sort guild mana
mana_sort_guild := sort_text@(order: "[XYZ∞01234567890HSCAKWUPBRG/|]") +
replace@(
match: "./.|././.|./././.|.[|]",
in_context: "(^|[^/])<match>($|[^/])",
replace: {sort_text(order:"in_place((K)(WUPBRG)")}
)
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: "<WUPBRGK>")
color_filterS := sort_text@(order: "<S>")
mana_to_color := {
count := number_of_items(in: colors)
if hybrid == "" and snow = "" and contains(type, match:"Artifact") then
# not a hybrid, not snow costed, but artifact
if count == 0 then "colorless"
else if count == 1 then color_names_1() + ", artifact"
else if set.set_info.use_gradient_multicolor == "no" then "artifact, multicolor" # stop here
else if count == 2 then color_names_2() + ", artifact, multicolor"
else if set.set_info.use_gradient_multicolor != "yes" then "artifact, multicolor" # stop here
else if count == 3 then color_names_3() + ", artifact, multicolor"
else if count == 4 then color_names_4() + ", artifact, multicolor"
else if count == 5 then color_names_5() + ", artifact, multicolor"
else if count == 6 then color_names_6() + ", artifact, multicolor"
else if count == 7 then color_names_7() + ", artifact, multicolor"
else "artifact, multicolor"
else if hybrid == "" and contains(type, match:"Artifact") then
# not a hybrid, but snow costed and artifact
if count == 0 then "artifact, snow"
else if count == 1 then color_names_1() + ", artifact, snow"
else if set.set_info.use_gradient_multicolor == "no" then "artifact, snow, multicolor" # stop here
else if count == 2 then color_names_2() + ", artifact, snow, multicolor"
else if set.set_info.use_gradient_multicolor != "yes" then "artifact, snow, multicolor" # stop here
else if count == 3 then color_names_3() + ", artifact, snow, multicolor"
else if count == 4 then color_names_4() + ", artifact, snow, multicolor"
else if count == 5 then color_names_5() + ", artifact, snow, multicolor"
else if count == 6 then color_names_6() + ", artifact, snow, multicolor"
else if count == 7 then color_names_7() + ", artifact, snow, multicolor"
else "artifact, snow, multicolor"
else if hybrid == "" and snow == "" then
# not a hybrid, not snow costed, not artifact
if count == 0 then "colorless"
else if count == 1 then color_names_1()
else if set.set_info.use_gradient_multicolor == "no" then "multicolor" # stop here
else if count == 2 then color_names_2() + ", multicolor"
else if set.set_info.use_gradient_multicolor != "yes" then "multicolor" # stop here
else if count == 3 then color_names_3() + ", multicolor"
else if count == 4 then color_names_4() + ", multicolor"
else if count == 5 then color_names_5() + ", multicolor"
else if count == 6 then color_names_6() + ", multicolor"
else if count == 7 then color_names_7() + ", multicolor"
else "multicolor"
else if hybrid == "" then
# not a hybrid, not artifact, but snow costed
if count == 0 then "snow"
else if count == 1 then color_names_1() + ", snow"
else if set.set_info.use_gradient_multicolor == "no" then "snow, multicolor" # stop here
else if count == 2 then color_names_2() + ", snow, multicolor"
else if set.set_info.use_gradient_multicolor != "yes" then "snow, multicolor" # stop here
else if count == 3 then color_names_3() + ", snow, multicolor"
else if count == 4 then color_names_4() + ", snow, multicolor"
else if count == 5 then color_names_5() + ", snow, multicolor"
else if count == 6 then color_names_6() + ", snow, multicolor"
else if count == 7 then color_names_7() + ", snow, multicolor"
else "snow, multicolor"
else if snow == "" and contains(type, match:"Artifact") then
# hybrid, and artifact, but not snow costed
if count == 0 then "colorless"
else if count == 1 then color_names_1() + ", artifact"
else if count == 2 then color_names_2() + ", artifact"
else if count == 3 then color_names_3() + ", artifact"
else if count == 6 then
if color_names_6() == "blue, red, green, yellow, purple, orange" then color_names_6() + ", artifact"
else "artifact, multicolor"
else "artifact, multicolor"
else if contains(type, match:"Artifact") then
# hybrid, and snow costed, and artifact
if count == 0 then "artifact, snow"
else if count == 1 then color_names_1() + ", artifact, snow"
else if count == 2 then color_names_2() + ", artifact, snow"
else if count == 3 then color_names_3() + ", artifact, snow"
else if count == 6 then
if color_names_6() == "blue, red, green, yellow, purple, orange" then color_names_6() + ", artifact, snow"
else "artifact, snow, multicolor"
else "artifact, snow, multicolor"
else if snow == "" then
# hybrid, not artifact, and not snow costed
if count == 0 then "colorless"
else if count == 1 then color_names_1()
else if count == 2 then color_names_2() + ", hybrid"
else if count == 6 then
if color_names_6() == "blue, red, green, yellow, purple, orange" then color_names_6() + ", hybrid"
else "multicolor"
else "multicolor"
else
# hybrid and snow costed, but not artifact
if count == 0 then "snow"
else if count == 1 then color_names_1() + ", snow"
else if count == 2 then color_names_2() + ", snow, hybrid"
else if count == 6 then
if color_names_6() == "blue, red, green, yellow, purple, orange" then color_names_6() + ", snow, hybrid"
else "snow, multicolor"
else "snow, multicolor"
}
# Look for a CDA that defines colors
text_to_color := {
# Note: running filter_text is quite slow, do a quick 'contains' check first
if contains(match: card_name) then (
text := filter_text(match: regex_escape(card_name)+"(</[-a-z]+>)? is (colorless|all colors|((blue|white|green|red|black|purple|pink)((,|,? and) (blue|white|green|red|black|purple|pink))*))\\.")
if text != "" then (
if contains(text, match: "all colors") then (
colors := "WUPBRG"
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: "purple") then colors := colors + "P"
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: "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,purple,black,red,green,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: "<WUPBRGK>")
if colors = "WU" then "HA"
else if colors = "UP" then "HB"
else if colors = "PB" then "HC"
else if colors = "BR" then "HD"
else if colors = "RG" then "HE"
else if colors = "GW" then "HF"
else if colors = "WP" then "HG"
else if colors = "UB" then "HH"
else if colors = "PR" then "HI"
else if colors = "BG" then "HJ"
else if colors = "RW" then "HJAA"
else if colors = "GU" then "HJAB"
else if colors = "WB" then "HJAC"
else if colors = "UR" then "HJAD"
else if colors = "PG" 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: "<WUPBRG>")
if colors = "WU" then "GA"
else if colors = "UP" then "GB"
else if colors = "PB" then "GC"
else if colors = "BR" then "GD"
else if colors = "RG" then "GE"
else if colors = "GW" then "GF"
else if colors = "WP" then "GG"
else if colors = "UB" then "GH"
else if colors = "PR" then "GI"
else if colors = "BG" then "GJ"
else if colors = "RW" then "GJAA"
else if colors = "GU" then "GJAB"
else if colors = "WB" then "GJAC"
else if colors = "UR" then "GJAD"
else if colors = "PG" 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: "<WUPBRGK>")
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)
)
}
############################################################## 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∞WUPBRGK0-9/|]+(</sym[^>]*>)?,)* # pay X, Y or Z
([ ](<sym[^>]*>)?[HSCATQXYZ∞WUPBRGK0-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∞WUPBRGK0-9/|]+\\[",
replace: {"<nosym>" + mana_filter_t() + "</nosym>"} ) +
# step 5 : add mana & tap symbols
replace@(
match: "\\b[HSCATQXYZ∞WUPBRGK0-9/|]+\\b",
in_context: mana_context,
replace: {"<sym-auto>" + mana_filter_t() + "</sym-auto>"} ) +
# step 5b : add explict mana symbols
replace@(
match: "\\[[HSCATQXYZ∞WUPBRGK0-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
}
############################################################## Statistics utilities
# Converted mana cost
is_half_mana := match@(match: "1/2|[|][HSCAWUPBRGK]")
is_colored_mana := match@(match: "[WUPBRGK]")
cmc_split := break_text@(match: "(?ix) 1/2 | [|][WUPBRGK] | [0-9]+(?!/[WUPBRGHSCAKCTQ2]) | [WUPBRGHSAK0-9.](/[WUPBRGHSAK])\{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: 199 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 266 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 228 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 442 B

View File

@@ -0,0 +1,864 @@
mse version: 2.0.0
game: magic
short name: M15 Walkers Purple
full name: M15 Planeswalkers with Purple modifications
installer group: magic/m15 style/planeswalkers/with purple modifications
icon: card-sample.png
position hint: 055
version: 2018-02-09
depends on:
package: magic.mse-game
version: 2014-06-25
depends on:
package: magic-watermarks.mse-include
version: 2007-09-23
depends on:
package: magic-mana-small.mse-symbol-font
version: 2007-09-23
depends on:
package: magic-mana-large-extra-m15-purple.mse-symbol-font
version: 2014-03-11
depends on:
package: magic-mana-small-extra-m15-purple.mse-symbol-font
version: 2014-03-11
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
# Should hybrids have a grey name?
mask_hybrid_with_land := { styling.grey_hybrid_name }
template_prefix := [card: "" card2: "" stamp: "" identity: ""]
template_suffix := [card: "card.jpg" card2: "card2.jpg" stamp: "stamp.jpg" identity: "identity.png"]
template := { template_prefix[type] + input + template_suffix[type] }
land_template := { template_prefix[type] + "c" + template_suffix[type] }
# Use land templates for previews because they show more contrast
hybrid_previews := "land,hybrid"
# This will create two seperate card faces
card_background2 := { color_background(type:"card2", base_hybrid:card_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 := { styling.use_guild_mana_symbols }
paintbrush_color := {
if to_int(card.border_color) < 96 then "white" else "black"
}
# Loyalty cost arrows
loyalty_image := {
if contains(input, match: "+") then "loyalty up"
else if contains(input, match: "-") then "loyalty down"
else "loyalty naught"
}
card_shape := {"planeswalker"}
# Is the card a promo card?
is_promo := { styling.promo }
# Does the card have four abilities?
has_four_abilities := { contains(paragraph_count(card.rule_text), match: "\n\n\n") }
paragraph_count :=
replace@(match:"<soft-line>\n", replace:"")+
filter_text@(match:"\n")
has_identity := { styling.color_indicator_dot }
is_unsorted := {styling.remove_from_autocount}
############################################################## 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: boolean
name: use holofoil stamps
description: Change to no to disable rare holofoil stamps
styling field:
type: boolean
name: color indicator dot
description: Use the color indicator dot
initial: no
styling field:
type: boolean
name: remove from autocount
description: Removes the automatic card number for specific cards, to allow for overcounted cards like in Planeswalker Decks.
initial: no
styling field:
type: boolean
name: grey hybrid name
description: Use a grey background for the name and type line on hybrid cards. This is done on real cards.
styling field:
type: boolean
name: use guild mana symbols
description: Use the Ravnica guild symbols instead of the official half/half circles for hybrid mana.
initial: no
styling field:
type: package choice
name: text box mana symbols
match: magic-mana-*.mse-symbol-font
initial: magic-mana-small-extra-m15-purple.mse-symbol-font
styling field:
type: choice
name: tap symbol
description: What tap and untap symbols should be used on cards?
initial: modern
choice: modern
choice: old
choice: diagonal T
styling field:
type: choice
name: center text
description: When to center text (short text only means only on one-line cards with no flavor text)
choice: always
choice: short text only
choice: never
initial: never
styling field:
type: boolean
name: promo
description: Is this card a promo card, with the "P" rarity?
initial: no
styling field:
type: boolean
name: inverted common symbol
description: Should the common rarity symbol be inverted, like in Coldsnap?
initial: no
styling field:
type: boolean
name: color indicator dot
description: Should the card have a color indicator?
initial: no
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: boolean
name: colored xyz mana
description: Use Advent's colored XYZ mana?
initial: no
styling style:
use guild mana symbols:
choice images:
yes: /magic-mana-small-extra-m15-purple.mse-symbol-font/mana_guild_rg.png
no: /magic-mana-small.mse-symbol-font/mana_rg.png
tap symbol:
render style: both
choice images:
modern: /magic-mana-large-extra-m15-purple.mse-symbol-font/mana_t.png
old: /magic-mana-large-extra-m15-purple.mse-symbol-font/mana_t_old.png
diagonal T: /magic-mana-large-extra-m15-purple.mse-symbol-font/mana_t_older.png
center text:
render style: both
choice images:
always: /magic.mse-game/icons/center-all-text.png
short text only: /magic.mse-game/icons/center-short-text.png
never: /magic.mse-game/icons/center-no-text.png
inverted common symbol:
choice images:
no: { symbol_variation(symbol: set.symbol, variation: "common") }
yes: { symbol_variation(symbol: set.symbol, variation: "invertedcommon") }
############################################################## Card fields
card style:
############################# Background stuff
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
############################# Name line
name:
left: { if card.card_symbol=="none" then 31 else 48 }
top: 23
right: { 339 - card_style.casting_cost.content_width }
height: 23
alignment: bottom shrink-overflow
padding bottom: 0
z index: 1
font:
name: Beleren Bold
size: 16
color: black
casting cost:
right: 347
top: 22
width: { max(30, card_style.casting_cost.content_width) + 5 }
height: 23
alignment: middle right
symbol font:
name: magic-mana-large-extra-m15-purple
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 29}
top: 23
height: 18
width: 14
z index: 1
render style: image
choice images:
tombstone: tombstone.png
############################# Image
image:
left: 25
top: 52
width: 324
height: 427.5
z index: 1
mask: { "imagemask" + ( if has_four_abilities() then "_4abil" else "" ) + ( if is_rare() then "_rare" else "" ) + ".png" }
############################# Card type
indicator:
left: 30
top: { if has_four_abilities() then 264 else 299 }
width: 17
height: 17
z index: 2
render style: image
visible: { has_identity() }
image: { card_identity() }
type:
left: { if has_identity() then "53" else "33" }
top: { if has_four_abilities() then 261 else 296 }
width: { 304 - max(22,card_style.rarity.content_width) }
height: 20
alignment: top shrink-overflow
z index: 2
padding top: 2
font:
name: Beleren Bold
size: 13
color: black
separator color: red
rarity:
right: 345
top: { if has_four_abilities() then 263 else 298 }
width: 42
height: 21
z index: 2
render style: image
alignment: middle right
choice images:
# Images based on the set symbol
basic land:
script:
if styling.inverted_common_symbol then symbol_variation(symbol: set.symbol, variation: "invertedcommon")
else symbol_variation(symbol: set.symbol, variation: "common")
common:
script:
if styling.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: 63
top: { if has_four_abilities() then 289 else 330 }
width: 282
height: { if has_four_abilities() then 183 else 148 }
font:
name: MPlantin
italic name: MPlantin-Italic
size: { if has_four_abilities() then 13.8 else 14 }
scale down to: 6
color: { if has_four_abilities() then rgba(0,0,0,0) else "black" }
symbol font:
name: { if has_four_abilities() then "" else styling.text_box_mana_symbols }
size: 14
paragraph height: 49
alignment:
script:
if (styling.center_text == "short text only" and
not contains(match:"\n", card.rule_text) and
card.flavor_text == "<i-flavor></i-flavor>" and
card_style.text.content_lines <= 2) or
styling.center_text == "always"
then "middle center"
else "middle left"
z index: 4
mask: text_mask.png
padding left: 6
padding right: 4
padding bottom: 2
line height hard: 1.2
line height line: 1.5
line height soft: { if has_four_abilities() then 0.895 else 0.9 }
line height hard max: 1.3
line height line max: 1.6
watermark:
left: 117
top : { if has_four_abilities() then 296 else 331 }
width: 138
height: { if has_four_abilities() then 185 else 150 }
z index: 2
render style: image
alignment: middle center
include file: /magic-watermarks.mse-include/watermarks
############################# Loyalty
loyalty:
z index: 7
left: 326
top: 462
width: 13.16
height: 34.63
alignment: center middle
font:
name: Beleren Bold
size: 14
color: white
loyalty cost 1:
z index: 7
left: 32
top: { if has_four_abilities() then 297 else 335 }
width: 13.16
height: 34.63
alignment: center middle
font:
name: Beleren Bold
size: 11
color: white
loyalty cost 2:
z index: 7
left: 32
top: { if has_four_abilities() then 344 else 386 }
width: 13.16
height: 34.63
alignment: center middle
font:
name: Beleren Bold
size: 11
color: white
loyalty cost 3:
z index: 7
left: 32
top: { if has_four_abilities() then 391 else 435 }
width: 13.16
height: 34.63
alignment: center middle
font:
name: Beleren Bold
size: 11
color: white
loyalty cost 4:
z index: 7
left: 32
top: 438
width: { if has_four_abilities() then 13.16 else 0 }
height: { if has_four_abilities() then 34.63 else 0 }
alignment: center middle
font:
name: Beleren Bold
size: 11
color: white
############################# Card sorting / numbering
set code:
left: 24
top: 498
width: 40
height: 10
z index: 6
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.25
color: white
copyright:
right: 350
top: 498
width: 140
height: 10
z index: 6
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 styling.remove_from_autocount 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
extra card field:
type: choice
name: loyalty box
editable: false
choice: loyalty
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: 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: loyalty cost box 1
editable: false
script: loyalty_image(card.loyalty_cost_1)
save value: false
extra card field:
type: choice
name: loyalty cost box 2
editable: false
script: loyalty_image(card.loyalty_cost_2)
save value: false
extra card field:
type: choice
name: loyalty cost box 3
editable: false
script: loyalty_image(card.loyalty_cost_3)
save value: false
extra card field:
type: choice
name: loyalty cost box 4
editable: false
script: loyalty_image(card.loyalty_cost_4)
save value: false
extra card field:
type: text
name: colon 1
editable: false
script: ":"
save value: false
extra card field:
type: text
name: colon 2
editable: false
script: ":"
save value: false
extra card field:
type: text
name: colon 3
editable: false
script: ":"
save value: false
extra card field:
type: text
name: colon 4
editable: false
script: ":"
save value: false
extra card field:
type: text
name: second text
editable: false
multi line: true
save value: false
script: card.text
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: 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: 6
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: 6
render style: image
image: artist_arrow.png
loyalty box:
right: 362
top: 460
width: 60
height: 38
z index: 6
render style: image
visible: { card.loyalty !="" }
choice images:
loyalty: loyalty.png
stamp:
left: 170
top: 473
width: 36.5
height: 22.5
z index: 6
visible: { is_rare() and styling.use_holofoil_stamps }
render style: image
image: { card_stamp() }
mask: stamp_mask.png
foil stamp:
left: 170
top: 473
width: 36.5
height: 22.5
z index: 7
visible: { is_rare() and styling.use_holofoil_stamps }
render style: image
image: foil_stamp.png
foil layer:
left: 0
top : 0
width: 375
height: 523
z index: 4
render style: image
image: {if styling.overlay == "" then nil else styling.overlay + "/overlay.png"}
loyalty cost box 1:
left: 18
top: { if has_four_abilities() then 295 else 333 }
width: 42
height: 40
z index: 6
render style: image
visible: { card.loyalty_cost_1 !="" }
choice images:
loyalty up: loyaltyup.png
loyalty down: loyaltydown.png
loyalty naught: loyaltynaught.png
loyalty cost box 2:
left: 18
top: { if has_four_abilities() then 342 else 383 }
width: 42
height: 40
z index: 6
render style: image
visible: { card.loyalty_cost_2 !="" }
choice images:
loyalty up: loyaltyup.png
loyalty down: loyaltydown.png
loyalty naught: loyaltynaught.png
loyalty cost box 3:
left: 18
top: { if has_four_abilities() then 389 else 432 }
width: 42
height: 40
z index: 6
render style: image
visible: { card.loyalty_cost_3 !="" }
choice images:
loyalty up: loyaltyup.png
loyalty down: loyaltydown.png
loyalty naught: loyaltynaught.png
loyalty cost box 4:
left: 18
top: 436
width: { if has_four_abilities() then 42 else 0 }
height: 40
z index: 6
render style: image
visible: { card.loyalty_cost_4 !="" }
choice images:
loyalty up: loyaltyup.png
loyalty down: loyaltydown.png
loyalty naught: loyaltynaught.png
colon 1:
left: 59
top: { if has_four_abilities() then 309 else 347 }
width: 5
height: 10
z index: 6
font:
name: MPlantin
size: 15
scale down to: 15
color: black
alignment: middle center
visible: { card.loyalty_cost_1 !="" }
colon 2:
left: 59
top: { if has_four_abilities() then 356 else 397 }
width: 5
height: 10
z index: 6
font:
name: MPlantin
size: 15
scale down to: 15
color: black
alignment: middle center
visible: { card.loyalty_cost_2 !="" }
colon 3:
left: 59
top: { if has_four_abilities() then 403 else 446 }
width: 5
height: 10
z index: 6
font:
name: MPlantin
size: 15
scale down to: 15
color: black
alignment: middle center
visible: { card.loyalty_cost_3 !="" }
colon 4:
left: 59
top: 450
width: { if has_four_abilities() then 5 else 0 }
height: 10
z index: 6
font:
name: MPlantin
size: 15
scale down to: 15
color: black
alignment: middle center
visible: { card.loyalty_cost_4 !="" }
frame:
left: 0
top: 0
width: 375
height: 523
z index: 0
render style: image
popup style: in place
image: { if has_four_abilities() then card_background2() else card_background() }
second text:
left: 63
top: 293
width: 282
height: 183
font:
name: MPlantin
italic name: MPlantin-Italic
size: 14
scale down to: 6
color: black
symbol font:
name: { styling.text_box_mana_symbols }
size: 14
paragraph height: 47
alignment:
script:
if (styling.center_text == "short text only" and
not contains(match:"\n", card.rule_text) and
card.flavor_text == "<i-flavor></i-flavor>" and
card_style.text.content_lines <= 2) or
styling.center_text == "always"
then "middle center"
else "middle left"
z index: 3
mask: text_mask.png
padding left: 6
padding right: 4
padding bottom: 2
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
visible: { has_four_abilities() }
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

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 266 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 KiB