Files
magic-set-editor-fork/data/magic-blends.mse-include/new-blends
2021-10-07 01:28:37 -05:00

1074 lines
37 KiB
Plaintext

#For vertical alignment, set tab spacing to 8.
# Scripts for blending images
# Included by a style file in its init script
########################################################################
# Filenames and other defaults
########################################################################
include file: masks
mask_hybrid_with_land := { false }
mask_hybrid_with_gold := { false }
mask_multi_land_with_color := { false }
template := { input + "{type}.jpg" }
land_template := { ( if input == "a" then "c" else input)+ "l{type}.jpg" }
offset := 0
# For what value should thumbnails of hybrids be made?
hybrid_previews := "hybrid"
# Are there templates for colored lands, land_template(...)?
colored_lands := true
trim_colors :=
replace@(match:"(, )?(multicolor|hybrid|artifact|land|horizontal|vertical|radial)", replace:"")
watermark_colors := {
if trim_colors(card.card_color) == "white" then "ww"
else if trim_colors(card.card_color) == "blue" then "uu"
else if trim_colors(card.card_color) == "black" then "bb"
else if trim_colors(card.card_color) == "red" then "rr"
else if trim_colors(card.card_color) == "green" then "gg"
else if contains(card.card_color, match:"multi") or
contains(card.card_color, match:"hybrid") or
contains(card.card_color, match:", land") then hybrid_color()
else if contains(card.card_color, match:"artifact") then "aa"
else "cc"
}
hybrid_color := {
if trim_colors(card.card_color) == "white, blue" then "wu"
else if trim_colors(card.card_color) == "white, black" then "wb"
else if trim_colors(card.card_color) == "white, red" then "rw"
else if trim_colors(card.card_color) == "white, green" then "gw"
else if trim_colors(card.card_color) == "blue, black" then "ub"
else if trim_colors(card.card_color) == "blue, red" then "ur"
else if trim_colors(card.card_color) == "blue, green" then "gu"
else if trim_colors(card.card_color) == "black, red" then "br"
else if trim_colors(card.card_color) == "black, green" then "bg"
else if trim_colors(card.card_color) == "red, green" then "rg"
else if trim_colors(card.card_color) == "white, blue, reversed" then "uw"
else if trim_colors(card.card_color) == "white, black, reversed" then "bw"
else if trim_colors(card.card_color) == "white, red, reversed" then "wr"
else if trim_colors(card.card_color) == "white, green, reversed" then "wg"
else if trim_colors(card.card_color) == "blue, black, reversed" then "bu"
else if trim_colors(card.card_color) == "blue, red, reversed" then "ru"
else if trim_colors(card.card_color) == "blue, green, reversed" then "ug"
else if trim_colors(card.card_color) == "black, red, reversed" then "rb"
else if trim_colors(card.card_color) == "black, green, reversed" then "bg"
else if trim_colors(card.card_color) == "red, green, reversed" then "gr"
else "mm"
}
########################################################################
# Combining multiple colors (hybrids)
########################################################################
card_hybrid_2 := {linear_blend(
image1: template( colors[0] ),
image2: template( colors[1] ),
x1: 0.4, y1: 0
x2: 0.6, y2: 0
)
}
overlay_hybrid := [
1: { template( colors[0] ) }
2: {combine_blend(
image1: template( colors[0] ),
image2: template( colors[1] ),
combine: "symmetric overlay"
)}
]
# vertical version of a horizontal hybrid
vertical_card_hybrid := {
do_linear_blend := linear_blend
linear_blend := { do_linear_blend(x1: 0, x2: 0, y1: x1, y2: x2) }
card_hybrid.horizontal[color_count]()
}
horizontal_card_hybrid := [
1: { template( colors[0]) }
2: card_hybrid_2
3: {linear_blend(
image1: template( colors[(to_int(offset) + 0 ) mod 3] ),
x1: 0.22, y1: 0
x2: 0.4, y2: 0
image2: linear_blend(
image1: template( colors[(to_int(offset) + 1 ) mod 3] ),
image2: template( colors[(to_int(offset) + 2 ) mod 3] ),
x1: 0.6, y1: 0
x2: 0.78, y2: 0
)
)
}
4: {linear_blend(
image1: template( colors[(to_int(offset) + 0 ) mod 4] ),
x1: 0.15, y1: 0
x2: 0.31, y2: 0
image2: linear_blend(
image1: template( colors[(to_int(offset) + 1 ) mod 4] ),
x1: 0.42, y1: 0
x2: 0.58, y2: 0
image2: linear_blend(
image1: template( colors[(to_int(offset) + 2 ) mod 4] ),
image2: template( colors[(to_int(offset) + 3 ) mod 4] ),
x1: 0.69, y1: 0
x2: 0.85, y2: 0
)))}
5: {linear_blend(
image1: template( colors[(to_int(offset) + 0 ) mod 5] ),
x1: 2.0 / 15, y1: 0
x2: 4.0 / 15, y2: 0
image2: linear_blend(
image1: template( colors[(to_int(offset) + 1 ) mod 5] ),
x1: 5.0 / 15, y1: 0
x2: 7.0 / 15, y2: 0
image2: linear_blend(
image1: template( colors[(to_int(offset) + 2 ) mod 5] ),
x1: 8.0 / 15, y1: 0
x2: 10.0 / 15, y2: 0
image2: linear_blend(
image1: template( colors[(to_int(offset) + 3 ) mod 5] ),
image2: template( colors[(to_int(offset) + 4 ) mod 5] ),
x1: 11.0 / 15, y1: 0
x2: 13.0 / 15, y2: 0
))))}
6: {linear_blend(
image1: template( colors[(to_int(offset) + 0 ) mod 6] ),
x1: 1.5 / 15, y1: 0
x2: 3.1 / 15, y2: 0
image2: linear_blend(
image1: template( colors[(to_int(offset) + 1 ) mod 6] ),
x1: 4.1 / 15, y1: 0
x2: 5.7 / 15, y2: 0
image2: linear_blend(
image1: template( colors[(to_int(offset) + 2 ) mod 6] ),
x1: 6.7 / 15, y1: 0
x2: 8.3 / 15, y2: 0
image2: linear_blend(
image1: template( colors[(to_int(offset) + 3 ) mod 6] ),
x1: 9.3 / 15, y1: 0
x2: 10.9 / 15, y2: 0
image2: linear_blend(
image1: template( colors[(to_int(offset) + 4 ) mod 6] ),
image2: template( colors[(to_int(offset) + 5 ) mod 6] ),
x1: 11.9 / 15, y1: 0
x2: 13.5 / 15, y2: 0
)))))}
7: {linear_blend(
image1: template( colors[(to_int(offset) + 0 ) mod 7] ),
x1: 1.3 / 15, y1: 0
x2: 2.7 / 15, y2: 0
image2: linear_blend(
image1: template( colors[(to_int(offset) + 1 ) mod 7] ),
x1: 3.5 / 15, y1: 0
x2: 4.9 / 15, y2: 0
image2: linear_blend(
image1: template( colors[(to_int(offset) + 2 ) mod 7] ),
x1: 5.7 / 15, y1: 0
x2: 7.1 / 15, y2: 0
image2: linear_blend(
image1: template( colors[(to_int(offset) + 3 ) mod 7] ),
x1: 7.9 / 15, y1: 0
x2: 9.3 / 15, y2: 0
image2: linear_blend(
image1: template( colors[(to_int(offset) + 4 ) mod 7] ),
x1: 10.1 / 15, y1: 0
x2: 11.5 / 15, y2: 0
image2: linear_blend(
image1: template( colors[(to_int(offset) + 5 ) mod 7] ),
image2: template( colors[(to_int(offset) + 6 ) mod 7] ),
x1: 12.3 / 15, y1: 0
x2: 13.7 / 15, y2: 0
))))))}
]
card_hybrid := [
radial: [
0: { template( "c") }
1: { template( colors[0]) }
2: card_hybrid_2
3:{linear_blend(
image1: card_hybrid_2( colors: colors[(to_int(offset) + 0 ) mod 3] +
colors[(to_int(offset) + 1 ) mod 3] ),
image2: template( colors[(to_int(offset) + 2 ) mod 3] ),
x1: 0, y1: 0.55
x2: 0, y2: 0.77
)}
4:{linear_blend(
image1: card_hybrid_2( colors: colors[(to_int(offset) + 0 ) mod 4] +
colors[(to_int(offset) + 1 ) mod 4] ),
image2: card_hybrid_2( colors: colors[(to_int(offset) + 3 ) mod 4] +
colors[(to_int(offset) + 2 ) mod 4] ),
x1: 0, y1: 0.4
x2: 0, y2: 0.62
)}
5: {linear_blend(
image1: linear_blend(
image1: card_hybrid_2( colors: colors[(to_int(offset) + 0 ) mod 5] +
colors[(to_int(offset) + 1 ) mod 5] ),
image2: card_hybrid_2( colors: colors[(to_int(offset) + 4 ) mod 5] +
colors[(to_int(offset) + 2 ) mod 5] ),
x1: 0, y1: 0.19
x2: 0, y2: 0.35
),
image2: template( colors[(to_int(offset) + 3 ) mod 5] ),
x1: 0, y1: 0.777
x2: 0, y2: 0.937
)}
6: {linear_blend(
image1: linear_blend(
image1: card_hybrid_2( colors: colors[(to_int(offset) + 0 ) mod 6] +
colors[(to_int(offset) + 1 ) mod 6] ),
image2: card_hybrid_2( colors: colors[(to_int(offset) + 5 ) mod 6] +
colors[(to_int(offset) + 2 ) mod 6] ),
x1: 0, y1: 0.19
x2: 0, y2: 0.35
),
image2: card_hybrid_2( colors: colors[(to_int(offset) + 4 ) mod 6] +
colors[(to_int(offset) + 3 ) mod 6] ),
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[(to_int(offset) + 0 ) mod 7] +
colors[(to_int(offset) + 1 ) mod 7] ),
image2: card_hybrid_2( colors: colors[(to_int(offset) + 6 ) mod 7] +
colors[(to_int(offset) + 2 ) mod 7] ),
x1: 0, y1: 0.34
x2: 0, y2: 0.50
),
image2: card_hybrid_2( colors: colors[(to_int(offset) + 5 ) mod 7] +
colors[(to_int(offset) + 3 ) mod 7] ),
x1: 0, y1: 0.877
x2: 0, y2: 0.937
),
image2: template( colors[(to_int(offset) + 4 ) mod 7] ),
x1: 0, y1: 1.140
x2: 0, y2: 1.300
)}
]
horizontal: horizontal_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
]
overlay: overlay_hybrid
]
########################################################################
# P/T box
########################################################################
# These are easier
horizontal_pt_hybrid := [
1: { template( colors[0]) }
2: { template( colors[1]) }
3: { linear_blend(
image1: template( colors[(to_int(offset) + 1 ) mod 3] ),
image2: template( colors[(to_int(offset) + 2 ) mod 3] ),
x1: -0.51, y1: 0
x2: 0.26, y2: 0
)}
4: { linear_blend(
image1: template( colors[(to_int(offset) + 2 ) mod 4] ),
image2: template( colors[(to_int(offset) + 3 ) mod 4] ),
x1: -0.1, y1: 0
x2: 0.6, y2: 0
)}
5: { linear_blend(
image1: template( colors[(to_int(offset) + 3 ) mod 5] ),
image2: template( colors[(to_int(offset) + 4 ) mod 5] ),
x1: 0.08, y1: 0
x2: 0.65, y2: 0
)}
6: { linear_blend(
image1: template( colors[(to_int(offset) + 4 ) mod 6] ),
image2: template( colors[(to_int(offset) + 5 ) mod 6] ),
x1: 0.07, y1: 0
x2: 0.7, y2: 0
)}
7: {linear_blend(
image1: linear_blend(
image1: template( colors[(to_int(offset) + 4 ) mod 7] ),
image2: template( colors[(to_int(offset) + 5 ) mod 7] ),
x1: -0.2, y1: 0
x2: 0.2, y2: 0
),
image2: template( colors[(to_int(offset) + 6 ) mod 7] ),
x1: 0.5, y1: 0
x2: 0.7, y2: 0
)}
]
pt_hybrid := [
radial: [
0: { template( "c") }
1: { template( colors[0]) }
2: { template( colors[1]) }
3: { template( colors[(to_int(offset) + 2 ) mod 3]) }
4: { template( colors[(to_int(offset) + 2 ) mod 4]) }
5: { linear_blend(
image1: template( colors[(to_int(offset) + 2 ) mod 5] ),
image2: template( colors[(to_int(offset) + 3 ) mod 5] ),
x1: 0, y1: -1.5
x2: 0, y2: 0.7
)}
6: { linear_blend(
image1: template( colors[(to_int(offset) + 2 ) mod 6] ),
image2: template( colors[(to_int(offset) + 3 ) mod 6] ),
x1: 0, y1: -1.5
x2: 0, y2: 0.7
)}
7: { template( colors[(to_int(offset) + 4 ) mod 7]) }
]
horizontal: horizontal_pt_hybrid
vertical: [
1: { template( colors[0]) }
2: { template( colors[1]) }
3: { template( colors[(to_int(offset) + 2 ) mod 7]) }
4: { template( colors[(to_int(offset) + 3 ) mod 7]) }
5: { template( colors[(to_int(offset) + 4 ) mod 7]) }
6: { template( colors[(to_int(offset) + 5 ) mod 7]) }
7: { template( colors[(to_int(offset) + 6 ) mod 7]) }
]
overlay: overlay_hybrid
]
########################################################################
# P/T boxes of flip cards
########################################################################
flip_pt_hybrid := [
radial: [
0: { template( "c") }
1: { template( colors[0]) }
2: { template( colors[1]) }
3: { template( colors[(to_int(offset) + 1 ) mod 3]) }
4: { template( colors[(to_int(offset) + 1 ) mod 4]) }
5: {linear_blend(
image1: template( colors[(to_int(offset) + 1 ) mod 5] ),
image2: template( colors[(to_int(offset) + 2 ) mod 5] ),
x1: 0, y1: -1
x2: 0, y2: 1.8
)}
6: { linear_blend(
image1: template( colors[(to_int(offset) + 1 ) mod 6] ),
image2: template( colors[(to_int(offset) + 2 ) mod 6] ),
x1: 0, y1: -1
x2: 0, y2: 1.8
)}
7: { template( colors[(to_int(offset) + 4 ) mod 7]) }
]
horizontal: horizontal_pt_hybrid
vertical: [
1: { template( colors[0]) }
2: { template( colors[0]) }
3: { linear_blend(
image1: template( colors[(to_int(offset) + 0 ) mod 3] ),
image2: template( colors[(to_int(offset) + 1 ) mod 3] ),
x1: 0, y1: 0
x2: 0, y2: 2
)}
4: { linear_blend(
image1: template( colors[(to_int(offset) + 0 ) mod 4] ),
image2: template( colors[(to_int(offset) + 1 ) mod 4] ),
x1: 0, y1: -1.5
x2: 0, y2: 1
)}
5: { linear_blend(
image1: template( colors[(to_int(offset) + 0 ) mod 5] ),
image2: template( colors[(to_int(offset) + 1 ) mod 5] ),
x1: 0, y1: -1.1
x2: 0, y2: 0.2
)}
6: { template( colors[(to_int(offset) + 1 ) mod 6] ) } # Probably not right
7: { template( colors[(to_int(offset) + 2 ) mod 7]) }
]
overlay: overlay_hybrid
]
flip_pt_hybrid2 := [
radial: [
0: { template( "c") }
1: { template( colors[0]) }
2: { template( colors[0]) }
3: { linear_blend(
image1: template( colors[(to_int(offset) + 0 ) mod 3] ),
image2: template( colors[(to_int(offset) + 2 ) mod 3] ),
x1: 0, y1: -1
x2: 0, y2: 1.1
)}
4: { template( colors[(to_int(offset) + 3 ) mod 4]) }
5: { template( colors[(to_int(offset) + 4 ) mod 5]) }
6: { template( colors[(to_int(offset) + 5 ) mod 6]) }
7: { template( colors[(to_int(offset) + 6 ) mod 7]) }
]
horizontal: [
1: { template( colors[0]) }
2: { template( colors[0]) }
3: { template( colors[(to_int(offset) + 0 ) mod 3]) }
4: { linear_blend(
image1: template( colors[(to_int(offset) + 0 ) mod 4] ),
image2: template( colors[(to_int(offset) + 1 ) mod 4] ),
x1: 0.4, y1: 0
x2: 1.5, y2: 0
)}
5: { linear_blend(
image1: template( colors[(to_int(offset) + 0 ) mod 5] ),
image2: template( colors[(to_int(offset) + 1 ) mod 5] ),
x1: 0.08, y1: 0
x2: 0.65, y2: 0
)}
6: { template( colors[(to_int(offset) + 5 ) mod 6] ) } #TODO
7: { template( colors[(to_int(offset) + 6 ) mod 7] ) } #TODO
]
vertical: [
1: { template( colors[0]) }
2: { template( colors[1]) }
3: { linear_blend(
image1: template( colors[(to_int(offset) + 1 ) mod 3] ),
image2: template( colors[(to_int(offset) + 2 ) mod 3] ),
x1: 0, y1: -1
x2: 0, y2: 1.5
)}
4: { linear_blend(
image1: template( colors[(to_int(offset) + 2 ) mod 4] ),
image2: template( colors[(to_int(offset) + 3 ) mod 4] ),
x1: 0, y1: 0.5
x2: 0, y2: 3
)}
5: { template( colors[(to_int(offset) + 3 ) mod 5]) }
6: { template( colors[(to_int(offset) + 5 ) mod 6] ) } # Probably not right
7: { template( colors[(to_int(offset) + 6 ) mod 7]) }
]
overlay: overlay_hybrid
]
########################################################################
# P/T boxes for leveler cards
########################################################################
leveler_pt_hybrid := [
radial: [
0: { template( "c") }
1: { template( colors[0]) }
2: { template( colors[1]) }
3: { linear_blend(
image1: template( colors[(to_int(offset) + 1 ) mod 3] ),
image2: template( colors[(to_int(offset) + 2 ) mod 3] ),
x1: 0, y1: 0
x2: 0, y2: 1
)}
4: { template( colors[(to_int(offset) + 2 ) mod 4]) }
5: { template( colors[(to_int(offset) + 2 ) mod 5]) }
6: { template( colors[(to_int(offset) + 2 ) mod 6]) }
7: { template( colors[(to_int(offset) + 4 ) mod 7]) }
]
horizontal: horizontal_pt_hybrid
vertical: [
1: { template( colors[0]) }
2: { template( colors[1]) }
3: { linear_blend(
image1: template( colors[(to_int(offset) + 1 ) mod 3] ),
image2: template( colors[(to_int(offset) + 2 ) mod 3] ),
x1: 0, y1: 0
x2: 0, y2: 1
)}
4: { template( colors[(to_int(offset) + 2 ) mod 4]) }
5: { template( colors[(to_int(offset) + 3 ) mod 5]) }
6: { linear_blend(
image1: template( colors[(to_int(offset) + 2 ) mod 6] ),
image2: template( colors[(to_int(offset) + 4 ) mod 6] ),
x1: 0, y1: 0
x2: 0, y2: 0.25
)}
7: { template( colors[(to_int(offset) + 5 ) mod 7]) }
]
overlay: overlay_hybrid
]
########################################################################
# P/T boxes for leveler cards
########################################################################
leveler_pt_hybrid := [
radial: [
0: { template( "c") }
1: { template( colors[0]) }
2: { template( colors[1]) }
3: { linear_blend(
image1: template( colors[(to_int(offset) + 1 ) mod 3] ),
image2: template( colors[(to_int(offset) + 2 ) mod 3] ),
x1: 0, y1: 0
x2: 0, y2: 1
)}
4: { template( colors[(to_int(offset) + 2 ) mod 4]) }
5: { template( colors[(to_int(offset) + 2 ) mod 5]) }
6: { template( colors[(to_int(offset) + 2 ) mod 6]) }
7: { template( colors[(to_int(offset) + 4 ) mod 7]) }
]
horizontal: horizontal_pt_hybrid
vertical: [
1: { template( colors[0]) }
2: { template( colors[1]) }
3: { linear_blend(
image1: template( colors[(to_int(offset) + 1 ) mod 3] ),
image2: template( colors[(to_int(offset) + 2 ) mod 3] ),
x1: 0, y1: 0
x2: 0, y2: 1
)}
4: { template( colors[(to_int(offset) + 2 ) mod 4]) }
5: { template( colors[(to_int(offset) + 3 ) mod 5]) }
6: { linear_blend(
image1: template( colors[(to_int(offset) + 3 ) mod 6] ),
image2: template( colors[(to_int(offset) + 4 ) mod 6] ),
x1: 0, y1: 0
x2: 0, y2: 0.25
)}
7: { template( colors[(to_int(offset) + 5 ) mod 7]) }
]
overlay: overlay_hybrid
]
leveler_pt_hybrid2 := [
radial: [
0: { template( "c") }
1: { template( colors[0]) }
2: { template( colors[1]) }
3: { template( colors[(to_int(offset) + 2 ) mod 3]) }
4: { template( colors[(to_int(offset) + 2 ) mod 4]) }
5: { template( colors[(to_int(offset) + 2 ) mod 5]) }
6: { template( colors[(to_int(offset) + 2 ) mod 6]) }
7: { template( colors[(to_int(offset) + 4 ) mod 7]) }
]
horizontal: horizontal_pt_hybrid
vertical: [
1: { template( colors[0]) }
2: { template( colors[1]) }
3: { template( colors[(to_int(offset) + 2 ) mod 3]) }
4: { linear_blend(
image1: template( colors[(to_int(offset) + 2 ) mod 4] ),
image2: template( colors[(to_int(offset) + 3 ) mod 4] ),
x1: 0, y1: 0
x2: 0, y2: 1
)}
5: { linear_blend(
image1: template( colors[(to_int(offset) + 3 ) mod 5] ),
image2: template( colors[(to_int(offset) + 4 ) mod 5] ),
x1: 0, y1: 0
x2: 0, y2: 0.75
)}
6: { template( colors[(to_int(offset) + 4 ) mod 6]) }
7: { template( colors[(to_int(offset) + 5 ) mod 7]) }
]
overlay: overlay_hybrid
]
leveler_pt_hybrid3 := [
radial: [
0: { template( "c") }
1: { template( colors[0]) }
2: { template( colors[1]) }
3: { template( colors[(to_int(offset) + 2 ) mod 3]) }
4: { template( colors[(to_int(offset) + 2 ) mod 4]) }
5: { linear_blend(
image1: template( colors[(to_int(offset) + 2 ) mod 5] ),
image2: template( colors[(to_int(offset) + 3 ) mod 5] ),
x1: 0, y1: 0
x2: 0, y2: 1
)}
6: { linear_blend(
image1: template( colors[(to_int(offset) + 2 ) mod 6] ),
image2: template( colors[(to_int(offset) + 3 ) mod 6] ),
x1: 0, y1: 0
x2: 0, y2: 1
)}
7: { template( colors[(to_int(offset) + 4 ) mod 7]) }
]
horizontal: horizontal_pt_hybrid
vertical: [
1: { template( colors[0]) }
2: { template( colors[1]) }
3: { template( colors[(to_int(offset) + 2 ) mod 3]) }
4: { template( colors[(to_int(offset) + 3 ) mod 4]) }
5: { linear_blend(
image1: template( colors[(to_int(offset) + 3 ) mod 5] ),
image2: template( colors[(to_int(offset) + 4 ) mod 5] ),
x1: 0, y1: 0
x2: 0, y2: 0.5
)}
6: { linear_blend(
image1: template( colors[(to_int(offset) + 4 ) mod 6] ),
image2: template( colors[(to_int(offset) + 5 ) mod 6] ),
x1: 0, y1: 0
x2: 0, y2: 0.5
)}
7: { template( colors[(to_int(offset) + 5 ) mod 7]) }
]
overlay: overlay_hybrid
]
########################################################################
# Textbox and typeline for FPM templates and Futureshifts
########################################################################
textbox_hybrid := [
radial: [
0: { template( "c") }
1: { template( colors[0]) }
2: card_hybrid_2
3: { template( colors[(to_int(offset) + 2 ) mod 3]) }
4: { card_hybrid_2( colors: colors[(to_int(offset) + 0 ) mod 4] +
colors[(to_int(offset) + 3 ) mod 4]) }
5: { template( colors[(to_int(offset) + 3 ) mod 5]) }
6: { card_hybrid_2( colors: colors[(to_int(offset) + 0 ) mod 6] +
colors[(to_int(offset) + 5 ) mod 6]) }
7: { template( colors[(to_int(offset) + 4 ) mod 7]) }
]
horizontal: horizontal_card_hybrid
vertical: [
0: { template( "c") }
1: { template( colors[0]) }
2: { template( colors[1]) }
3: { template( colors[(to_int(offset) + 2 ) mod 3] ) } # TODO
4: { template( colors[(to_int(offset) + 3 ) mod 4]) }
5: { template( colors[(to_int(offset) + 4 ) mod 5]) }
6: { template( colors[(to_int(offset) + 5 ) mod 6]) }
7: { template( colors[(to_int(offset) + 6 ) mod 7]) }
]
overlay: overlay_hybrid
]
typeline_hybrid := textbox_hybrid
########################################################################
# Color Identity Marking
########################################################################
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: {masked_blend(
light: masked_blend(
light: template( colors[0] ),
dark: template( colors[2] ),
mask: id_mask[32]),
dark: template( colors[1] ),
mask: id_mask[33]
)}
4: {masked_blend(
light: masked_blend(
light: masked_blend(
light: template( colors[1] ),
dark: template( colors[0] ),
mask: id_mask[42] ),
dark: template( colors[2] ),
mask: id_mask[43] ),
dark: template( colors[3] ),
mask: id_mask[44]
)}
5: {masked_blend(
light: masked_blend(
light: masked_blend(
light: masked_blend(
light: template( colors[0] ),
dark: template( colors[4] ),
mask: id_mask[52]),
dark: template( colors[1] ),
mask: id_mask[53]),
dark: template( colors[2] ),
mask: id_mask[54]),
dark: template( colors[3] ),
mask: id_mask[55]
)}
6: { template( "m") }
]
identity_hybrid := [
radial: identity_horizontal_hybrid
vertical: identity_horizontal_hybrid
horizontal: identity_horizontal_hybrid
overlay: 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[(to_int(offset) + 1 ) mod 3]) }
4: { linear_blend(
image1: template( colors[(to_int(offset) + 1 ) mod 4] ),
image2: template( colors[(to_int(offset) + 2 ) mod 4] ),
x1: -0.3, y1: 0
x2: 1.3, y2: 0
)}
5: {linear_blend(
image1: template( colors[(to_int(offset) + 1 ) mod 5] )
x1: -0.55, y1: 0
x2: 0.2, y2: 0
image2: linear_blend(
image1: template( colors[(to_int(offset) + 2 ) mod 5] ),
image2: template( colors[(to_int(offset) + 3 ) mod 5] ),
x1: 0.8, y1: 0
x2: 1.55, y2: 0
))}
6: { linear_blend(
image1: template( colors[(to_int(offset) + 2 ) mod 6] ),
image2: template( colors[(to_int(offset) + 3 ) mod 6] ),
x1: 0.1, y1: 0
x2: 0.9, y2: 0
)}
7: {linear_blend(
image1: template( colors[(to_int(offset) + 2 ) mod 7] ),
x1: -0.55, y1: 0
x2: 0.2, y2: 0
image2: linear_blend(
image1: template( colors[(to_int(offset) + 3 ) mod 7] ),
image2: template( colors[(to_int(offset) + 5 ) mod 7] ),
x1: 0.8, y1: 0
x2: 1.55, y2: 0
))}
]
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[(to_int(offset) + 2) mod 3]) }
4: { linear_blend(
image1: template( colors[(to_int(offset) + 3) mod 4] ),
image2: template( colors[(to_int(offset) + 2) mod 4] ),
x1: -0.3, y1: 0
x2: 1.3, y2: 0
)}
5: { template( colors[(to_int(offset) + 3) mod 5]) }
6: { linear_blend(
image1: template( colors[(to_int(offset) + 4) mod 6] ),
image2: template( colors[(to_int(offset) + 3) mod 6] ),
x1: -0.3, y1: 0
x2: 1.3, y2: 0
)}
7: { template( colors[(to_int(offset) + 4 ) mod 7]) }
]
horizontal: horizontal_stamp_hybrid
vertical: [
1: { template( colors[0]) }
2: { template( colors[1]) }
3: { template( colors[(to_int(offset) + 2 ) mod 3]) }
4: { template( colors[(to_int(offset) + 3 ) mod 4]) }
5: { template( colors[(to_int(offset) + 4 ) mod 5]) }
6: { template( colors[(to_int(offset) + 5 ) mod 6]) }
# 7: { template( colors[(to_int(offset) + 6 ) mod 7]) }
]
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 == "reversed" then
input := "white,blue,red,{hybrid_previews},horizontal,reversed"
# What type of 'hybrid'?
land := chosen(choice:"land")
multi := chosen(choice:"multicolor")
hybrid := chosen(choice:"hybrid")
artifact := chosen(choice:"artifact")
if land and colored_lands then template := land_template # use land template instead?
# The selected colors
colors := sort_text( order: if card_is_wedge(input) then "(wbgur)" else "(wubrg)"
, (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 multi and (hybrid or colors == "") then (
colors := colors + "m"
multi := false
)
if artifact and (hybrid or colors == "") then (
colors := colors + "a"
artifact := 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 "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]()
light:= base
# Put a frame around it?
if land and not colored_lands then
masked_blend(
dark: land_template("c"),
mask "multicolor_blend_{type}.png",
)
else if land and multi and mask_multi_land_with_color() then
masked_blend(
dark: land_template("m"),
mask: "hybrid_blend_{type}.png",
)
else if multi and artifact then
masked_blend(
light: masked_blend(
light: base
dark: template("m"),
mask: "multicolor_blend_{type}.png",
)
dark: template("a"),
mask: "artifact_blend_{type}.png",
)
else if multi then
masked_blend(
dark: template("m"),
mask: "multicolor_blend_{type}.png",
)
else if artifact and color_count > 1 and mask_hybrid_with_land() then
masked_blend(
light: masked_blend(
light: base
dark: template("c"),
mask: "multicolor_blend_{type}.png",
)
dark: template("a"),
mask: "artifact_blend_{type}.png",
)
else if artifact and color_count > 1 and mask_hybrid_with_gold() then
masked_blend(
light: masked_blend(
light: base
dark: template("m"),
mask: "multicolor_blend_{type}.png",
)dark: template("a"),
mask: "artifact_blend_{type}.png",
)
else if artifact then
masked_blend(
dark: template("a"),
mask: "artifact_blend_{type}.png",
)
else if color_count > 1 and mask_hybrid_with_land() then
masked_blend(
dark: land_template("c"),
mask: "hybrid_blend_{type}.png",
)
else if color_count > 1 and mask_hybrid_with_gold() then
masked_blend(
dark: land_template("m"),
mask: "hybrid_blend_{type}.png",
)
else base
}
########################################################################
# Specific types
########################################################################
card_background := { color_background(type:"card", base_hybrid:card_hybrid) }@(offset:0 )
card_ptbox := { color_background(type:"pt", base_hybrid:pt_hybrid) }@(offset:0 )
flip_ptbox := { color_background(type:"pt", base_hybrid:flip_pt_hybrid) }@(offset:0 )
flip_ptbox2 := { color_background(type:"pt2", base_hybrid:flip_pt_hybrid2) }@(offset:0 )
leveler_ptbox := { color_background(type:"pt", base_hybrid:leveler_pt_hybrid) }@(offset:0 )
leveler_ptbox2 := { color_background(type:"pt", base_hybrid:leveler_pt_hybrid2) }@(offset:0 )
leveler_ptbox3 := { color_background(type:"pt", base_hybrid:leveler_pt_hybrid3) }@(offset:0 )
card_textbox := { color_background(type:"textbox", base_hybrid:textbox_hybrid) }@(offset:0 )
card_typeline := { color_background(type:"typeline", base_hybrid:typeline_hybrid) }@(offset:0 )
card_identity := { color_background(type:"identity", base_hybrid:identity_hybrid) }@(offset:0 )
card_identity_2 := { color_background(type:"identity2", base_hybrid:identity_hybrid) }@(offset:0 )
card_stamp := { color_background(type:"stamp", base_hybrid:stamp_hybrid) }@(offset:0 )
card_stamp2 := { color_background(type:"stamp2", base_hybrid:stamp_hybrid) }@(offset:0 )
flip_background := {
linear_blend(
image1: card_background(top)
image2: card_background(bottom)
x1: 0, y1: 0.4
x2: 0, y2: 0.6
)
}
########################################################################
# Font colors
########################################################################
# For which colors is the font white?
font_colors_white := { input == "b" or input == "l" }
font_color_positions := [
radial: [0,0,0,2,3,3,4,4]
horizontal: [0,0,0,0,0,0,0,0]
vertical: [0,0,1,2,3,4,5,6]
overlay: [0,0,0,0,0,0,0,0]
]
# Determine whether light or dark fonts should be used
font_white := {
hybrid := chosen(choice:"hybrid" )
artifact := chosen(choice:"artifact" )
colors := sort_text( order: "(wubrg)"
, (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 artifact then "a")
font_colors_white(
if chosen(choice:"land") then "l"
else if input == "artifact, multicolor" then "a"
else if chosen(choice:"multicolor") then "m"
else if artifact and not hybrid then "a"
else if colors == "" then "c"
else colors[
font_color_positions[
if chosen(choice:"horizontal") then "horizontal"
else if chosen(choice:"vertical") then "vertical"
else if chosen(choice:"overlay") then "overlay"
else "radial"
][number_of_items(in: colors)]
]
)
}
font_color := { if font_white() then rgb(255,255,255) else rgb(0,0,0) }
#####Watermark Blending
watermark_hybrid:= {
linear_blend(
image1: colors[0] + input + ".png"
image2: colors[1] + input + ".png"
x1: 0.4, y1: 0
x2: 0.6, y2: 0
)
}
set_watermark_blend := {
set_alpha(
alpha: 0.75
input:
linear_blend(
image1:
masked_blend(
light: "/magic-watermarks.mse-include/sets/" + input + ".png"
dark: "/magic-watermarks.mse-include/sets/" + watermark_colors().0 + "mark.png"
mask: "/magic-watermarks.mse-include/sets/" + input + ".png"
)
image2:
masked_blend(
light: "/magic-watermarks.mse-include/sets/" + input + ".png"
dark: "/magic-watermarks.mse-include/sets/" + watermark_colors().1 + "mark.png"
mask: "/magic-watermarks.mse-include/sets/" + input + ".png"
)
x1: 0.4, y1: 0
x2: 0.6, y2: 0
)
)
}
spotlight_watermark_blend := {
if face == false then face := card.card_color
wmc := watermark_colors(face:face)
c1 := "/magic-watermarks.mse-include/spotlight/" + wmc.0 + (if contains(face, match:"land") then "l") + "spotlight.png"
c2 := "/magic-watermarks.mse-include/spotlight/" + wmc.1 + (if contains(face, match:"land") then "l") + "spotlight.png"
if contains(input, match:".png,") then (
array := split_text(input+",,", match:",")
input := array.0
l := min(to_number(array.1),500)
h := min(to_number(array.2),500)
)
if (h != 500 or l != 500) then (
c1 := crop(c1, height:h, width:l, offset_x:0, offset_y:0)
c2 := crop(c2, height:h, width:l, offset_x:0, offset_y:0)
)
set_alpha(
alpha: 0.75
input:
linear_blend(
image1:
masked_blend(
light: input
dark: c1
mask: input
)
image2:
masked_blend(
light: input
dark: c2
mask: input
)
x1: 0.4, y1: 0
x2: 0.6, y2: 0
)
)
}@(h:500,l:500,face:false)