Compare commits

...

8 Commits

Author SHA1 Message Date
Sebastian Lundegård Kylander
eea0e3646b [required] card fields 2026-03-29 23:10:15 +02:00
Sebastian Lundegård Kylander
36594aa2c6 [required] Add default image for orange 2026-03-29 23:10:15 +02:00
Sebastian Lundegård Kylander
8855deb98c [optional] allies and enemies 2026-03-29 23:10:15 +02:00
Sebastian Lundegård Kylander
3b3fbd635c [optional] sorting order 2026-03-29 23:10:15 +02:00
Sebastian Lundegård Kylander
148e9a2e80 [required] Add orange field 2026-03-29 23:10:15 +02:00
Sebastian Lundegård Kylander
3965b06a84 [required] WUBRG -> WUBRGO 2026-03-29 23:10:15 +02:00
Sebastian Lundegård Kylander
c867890e51 [basic-land] Add desert 2026-03-29 23:10:15 +02:00
Sebastian Lundegård Kylander
22841640df [optional] Move order of pre-existing orange cases 2026-03-29 23:10:14 +02:00
11 changed files with 104 additions and 63 deletions

View File

@@ -829,7 +829,7 @@ stamp_hybrid := [
# Putting it all together.
########################################################################
blend_colors := {
colors := sort_text( order: if card_is_wedge(input) then "(wbgur)" else "(wubrg)"
colors := sort_text( order: if card_is_wedge(input) then "(wbguro)" else "(wubrgo)"
, (if chosen(choice:"white" ) then "w")
+ (if chosen(choice:"blue" ) then "u")
+ (if chosen(choice:"black" ) then "b")
@@ -1116,7 +1116,7 @@ font_color_positions := [
font_white := {
hybrid := chosen(choice:"hybrid" )
artifact := chosen(choice:"artifact" )
colors := sort_text( order: "(wubrg)"
colors := sort_text( order: "(wubrgo)"
, (if chosen(choice:"white" ) then "w")
+ (if chosen(choice:"blue" ) then "u")
+ (if chosen(choice:"black" ) then "b")

View File

@@ -10,6 +10,7 @@ default_images := [
b: "/magic-default-image.mse-include/black.jpg"
r: "/magic-default-image.mse-include/red.jpg"
g: "/magic-default-image.mse-include/green.jpg"
o: "/magic-default-image.mse-include/orange.jpg"
l: "/magic-default-image.mse-include/land.jpg"
]

View File

@@ -806,7 +806,7 @@ symbol:
text margin right: .21
text margin top: -.15
text margin bottom: -.06
code: [0-9](?!/[WUBRGCSTQ2])|.
code: [0-9](?!/[WUBRGOCSTQ2])|.
regex: yes
draw text: 0
text font:

View File

@@ -117,6 +117,9 @@ card field:
choice:
name: green
line below: true
choice:
name: orange
line below: true
choice: artifact
choice: land
choice: multicolor
@@ -162,6 +165,9 @@ card field:
choice:
name: green
line below: true
choice:
name: orange
line below: true
choice: artifact
choice: land
choice: multicolor
@@ -207,6 +213,9 @@ card field:
choice:
name: green
line below: true
choice:
name: orange
line below: true
choice: artifact
choice: land
choice: multicolor
@@ -252,6 +261,9 @@ card field:
choice:
name: green
line below: true
choice:
name: orange
line below: true
choice: artifact
choice: land
choice: multicolor
@@ -741,6 +753,9 @@ card field:
choice:
name: green
line below: true
choice:
name: orange
line below: true
choice: artifact
choice: land
choice: multicolor
@@ -787,6 +802,9 @@ card field:
choice:
name: green
line below: true
choice:
name: orange
line below: true
choice: artifact
choice: land
choice: multicolor
@@ -833,6 +851,9 @@ card field:
choice:
name: green
line below: true
choice:
name: orange
line below: true
choice: artifact
choice: land
choice: multicolor

View File

@@ -7,11 +7,11 @@ card list color script:
else if input == "black" then rgb(0,0,0)
else if input == "red" then rgb(168,0,0)
else if input == "green" then rgb(0,168,0)
else if input == "orange" then rgb(253,196,41)
else if input == "pink" then rgb(210,60,140)
else if input == "purple" then rgb(150,100,160)
else if input == "yellow" then rgb(190,200,50)
else if input == "brown" then rgb(51, 10, 0)
else if input == "orange" then rgb(255, 51, 0)
else (
artifact := chosen(choice:"artifact")
land := chosen(choice:"land")

View File

@@ -29,7 +29,7 @@ keyword mode:
keyword parameter type:
name: mana
match: [HSVCTQXYZI0-9WUBRG/|]+
match: [HSVCTQXYZI0-9WUBRGO/|]+
refer script:
name: normal
description: No changes made
@@ -48,7 +48,7 @@ keyword parameter type:
# By pichoro and bunnierein
keyword parameter type:
name: cost
match: [ ][HSVECTQXYZI0-9WUBRG/|]*|[-—][^(\r\n]*
match: [ ][HSVECTQXYZI0-9WUBRGO/|]*|[-—][^(\r\n]*
separator before is: [ —-]
separator after is: [.]
optional: false

View File

@@ -1304,12 +1304,12 @@ reverse_list :=
cost_parameter_script :=
{
input := remove_tag(input, tag:"<sym-auto>")
replace(input, match:"\\b([HSVECTQXYZI0-9WUBRG/|]+)\\b(|,|<|$)", replace:"<sym-auto>\\1</sym-auto>\\2")
replace(input, match:"\\b([HSVECTQXYZI0-9WUBRGO/|]+)\\b(|,|<|$)", replace:"<sym-auto>\\1</sym-auto>\\2")
}
cost_parameter_script_nonspace :=
{
input := remove_tag(input, tag:"<sym-auto>")
replace(input, match:"(?<!<)([HSVECTQXYZI0-9WUBRG/|]+)", replace:"<sym-auto>\\1</sym-auto>")
replace(input, match:"(?<!<)([HSVECTQXYZI0-9WUBRGO/|]+)", replace:"<sym-auto>\\1</sym-auto>")
}
cost_parameter_dash :=
{
@@ -1318,7 +1318,7 @@ cost_parameter_dash :=
}
localized_phy_reminder :=
{
phy_matches := break_text(card.casting_cost, match:"H(/[WUBRGC])*")
phy_matches := break_text(card.casting_cost, match:"H(/[WUBRGOC])*")
if length(phy_matches) < 1 then "" else (
multiple := length(phy_matches) > 1
phy_matches := make_list_unique(reverse_list(sort_list(phy_matches, order_by: length))) #First symbol is used for reminder text. Prefer using hybrid mana.

View File

@@ -819,6 +819,7 @@ languages := [
is_swamp : match@(match: "(?i)Swamp")
is_mountain : match@(match: "(?i)Mountain")
is_forest : match@(match: "(?i)Forest")
is_desert : match@(match: "(?i)Desert")
is_wastes : match@(match: "(?i)Wastes")
is_class : match@(match: "(?i)Class")
@@ -846,6 +847,7 @@ languages := [
is_black : match@(match: "(?i)black")
is_red : match@(match: "(?i)red")
is_green : match@(match: "(?i)green")
is_orange : match@(match: "(?i)orange")
is_colorless : match@(match: "(?i)colorless")
is_cda_colorless : match@(match: "(?i)is colorless")
@@ -857,10 +859,10 @@ languages := [
black : "Black"
red : "Red"
green : "Green"
orange : "Orange"
purple : "Purple"
pink : "Pink"
yellow : "Yellow"
orange : "Orange"
brown : "Brown"
multicolor : "Multicolor"
hybrid : "Hybrid"

View File

@@ -312,7 +312,7 @@ get_alpha_percentage :=
############################################################## For the user
#### Remove card codes
cc_filter := replace@(match:"^[CURMSL][WUBRGMZACL][0-9]+ ?[-—]? ?", replace:"")
cc_filter := replace@(match:"^[CURMSL][WUBRGOMZACL][0-9]+ ?[-—]? ?", replace:"")
has_alchemy := contains@(match:"alchemy")
strip_card_codes := {
save := input
@@ -507,25 +507,25 @@ crop_multi_image := {
############################################################## Sorting mana symbols
#### correctly sort a mana symbol (no guild mana)
mana_sort := sort_text@(order: "\\?XYZI[0123456789]VHSFCAI(EKPLO)(WUBRG)")
mana_sort := sort_text@(order: "\\?XYZI[0123456789]VHSFCAI(EKPLO)(WUBRGO)")
#### correctly sort wedge mana
mana_sort_wedge := sort_text@(order: "\\?XYZI[0123456789]VHSFCAI(EPOKL)(WBGUR)")
#### sort nothing
mana_unsort := sort_text@(order:"[/\\?XYZI0123456789VHSCAIEKPLOMWUBRG]")
mana_unsort := sort_text@(order:"[/\\?XYZI0123456789VHSCAIEKPLOMWUBRGO]")
#### correctly sort guild mana
mana_sort_guild := sort_text@(order: "[\\?XYZI01234567890VHSFCAIEKPLOWUBRG/|]") +
mana_sort_guild := sort_text@(order: "[\\?XYZI01234567890VHSFCAIEKPLOWUBRGO/|]") +
replace@(
#### No lookbehind :(
#match: "(?<!/)(./.|././.|./././.|.[|])(?!/)",
match: "./.|././.|./././.|.[|]",
in_context: "(^|[^/])<match>($|[^/])",
replace: {sort_text(order:"in_place((WUBRG))")}
replace: {sort_text(order:"in_place((WUBRGO))")}
)
#### mana filter helpers
mana_has_guild := match@(match: "[/|]") #### Is there guild or half mana in the input?
mana_is_wedge := { chosen(set.mana_cost_sorting, choice: "tarkir wedge sorting") and ( number_of_items(in: sort_text(order:"<WUBRG>", input), filter: "<WUBRG>") == 3 ) }
mana_is_wedge := { chosen(set.mana_cost_sorting, choice: "tarkir wedge sorting") and ( number_of_items(in: sort_text(order:"<WUBRGO>", input), filter: "<WUBRGO>") == 3 ) }
mana_has_wedge := {
wedge_check := sort_text(order:"<WUBRG>", input)
wedge_check := sort_text(order:"<WUBRGO>", input)
mana_is_wedge() and (wedge_check == "WUR" or wedge_check == "WBR" or wedge_check == "WBG" or wedge_check == "UBG" or wedge_check == "URG")
}
@@ -640,7 +640,7 @@ color_names_3 := { color_name(colors.0) + ", " + color_name(colors.1) + ", " + c
color_names_4 := { color_name(colors.0) + ", " + color_name(colors.1) + ", " + color_name(colors.2) + ", " + color_name(colors.3) }
color_names_5 := { color_name(colors.0) + ", " + color_name(colors.1) + ", " + color_name(colors.2) + ", " + color_name(colors.3) + ", " + color_name(colors.4) }
#### color based on mana cost, input == a mana cost
color_filter := sort_text@(order: "<WUBRG>")
color_filter := sort_text@(order: "<WUBRGO>")
color_filterH := sort_text@(order: "</>")
mana_to_color := {
count := number_of_items(in: colors)
@@ -690,7 +690,7 @@ color_text_filter :=
) +
#### keep only mana
filter_text@(match: "<sym[^>]*>([^<]+)") + color_filter;
#### get the land frame for a "WUBRG"-style input.
#### get the land frame for a "WUBRGO"-style input.
land_multicolor := {
count := number_of_items(in: colors)
if count == 0 then "land"
@@ -716,7 +716,7 @@ text_to_color := {
text := filter_text(match: "is (colorless|all colors|((blue|white|green|red|black|orange)((,|,? and) (blue|white|green|red|black|orange))*))", in_context: regex_escape(card_name)+"(</[-a-z]+>)* <match>\\.")
if text != "" then (
if contains(text, match: "all colors") then (
colors := "WUBRG"
colors := "WUBRGO"
if land == true then land_multicolor()
else mana_to_color(hybrid: "")
) else (
@@ -775,7 +775,7 @@ list_colors := {
list := replace(list, match:", ", replace:", and ", in_context:"<match>[^ ]+$")
list
}
#### convert card_color to WUBRG
#### convert card_color to WUBRGO
card_color_to_letters := {
color_string := trim_colors(input)
(if contains(color_string, match:"white") then "W" else "")
@@ -832,30 +832,32 @@ color_of_card := {
#type := card.super_type
artifact := chosen(card_color, choice:"artifact")
if contains(card.shape, match: "split") and
card_color != card.card_color_2 then "I" #### Diff Color Splits
card_color != card.card_color_2 then "K" #### Diff Color Splits
else if chosen(choice: "land", card_color) then ( #### Lands
if card.rarity != "basic land" then "L" #### Nonbasic Land
if card.rarity != "basic land" then "M" #### 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: "hybrid", card_color) then "IL" #### Hybrids
else if is_multicolor(card_color) then "HL" #### 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 if chosen(choice:"orange", card_color) then "G" #### Orange
else "K" #### Artifact
) else (
#### Cards with costs.
colors := sort_text(casting_cost, order: "<WUBRG>")
if colors == "" and artifact then "J" #### Artifact
colors := sort_text(casting_cost, order: "<WUBRGO>")
if colors == "" and artifact then "K" #### 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 == "O" then "G" #### Orange
else if is_hybrid_cost() then hybrid_color_pair_sort() #### Hybrid (by pairs)
else if contains(casting_cost, match:"/") and artifact then "I" #### Hybrid Artifacts
else multi_color_pair_sort() #### Multicolor (by pairs)
@@ -874,10 +876,11 @@ basic_land_sort := {
else if contains(name, match:"Swamp") then "MD" #### Swamps
else if contains(name, match:"Mountain") then "ME" #### Mountains
else if contains(name, match:"Forest") then "MF" #### Forests
else if contains(name, match:"Desert") then "MG" #### Desert
else "MA" #### other basic lands
}
hybrid_color_pair_sort := {
colors := sort_text(casting_cost, order: "<WUBRG>")
colors := sort_text(casting_cost, order: "<WUBRGO>")
if not set.sort_hybrid_in_pairs then "HK"
else if colors == "WU" then "HA"
else if colors == "UB" then "HB"
@@ -889,10 +892,15 @@ hybrid_color_pair_sort := {
else if colors == "BG" then "HH"
else if colors == "WR" then "HI"
else if colors == "UG" then "HJ"
else "HK"
else if colors == "WO" then "HK"
else if colors == "UO" then "HL"
else if colors == "BO" then "HM"
else if colors == "RO" then "HN"
else if colors == "GO" then "HO"
else "HP"
}
multi_color_pair_sort := {
colors := sort_text(casting_cost, order: "<WUBRG>")
colors := sort_text(casting_cost, order: "<WUBRGO>")
if not set.sort_multicolor_in_pairs then "GK"
else if colors == "WU" then "GA"
else if colors == "UB" then "GB"
@@ -904,8 +912,13 @@ multi_color_pair_sort := {
else if colors == "BG" then "GH"
else if colors == "WR" then "GI"
else if colors == "UG" then "GJ"
else if contains(card.casting_cost, match:"/") then "GL"
else "GK"
else if colors == "WO" then "GK"
else if colors == "UO" then "GL"
else if colors == "BO" then "GM"
else if colors == "RO" then "GN"
else if colors == "GO" then "GO"
else if contains(card.casting_cost, match:"/") then "GQ"
else "GP"
}
#### Sort the card into its rarity tier
@@ -1039,11 +1052,11 @@ rarity_code := {
is_unsorted := { false }
############################################################## Statistics utilities
#### Converted mana cost
is_half_mana := match@(match: "1/2|[|][WUBRGS]")
is_half_mana := match@(match: "1/2|[|][WUBRGOS]")
is_half_generic := match@(match: "1/2")
is_colored_mana := match@(match: "[WUBRG]")
is_colored_mana := match@(match: "[WUBRGO]")
only_numbers := filter_text@(match: "^[0123456789]+")
cmc_split := break_text@(match: "(?ix) 1/2 | [|][WUBRGC] | TK | [0-9](/[WUBRGCVHSCEKPLOTQ2]) | [0-9]+(?!/[WUBRGCVHSCEKPLOTQ2]) | [WUBRGCVHS0-9](/[WUBRGCVHS])\{0,4} ")
cmc_split := break_text@(match: "(?ix) 1/2 | [|][WUBRGOC] | TK | [0-9](/[WUBRGOCVHSCEKPLOTQ2]) | [0-9]+(?!/[WUBRGOCVHSCEKPLOTQ2]) | [WUBRGOCVHS0-9](/[WUBRGOCVHS])\{0,4} ")
cmc := {to_number(
for each sym in cmc_split(to_text()) do (
numbers := only_numbers(sym)
@@ -1102,7 +1115,8 @@ primary_card_color := {
black := chosen(choice:"black")
red := chosen(choice:"red")
green := chosen(choice:"green")
multi_color := count_chosen(choices:"white, blue, black, red, green")
orange := chosen(choice:"orange")
multi_color := count_chosen(choices:"white, blue, black, red, green, orange")
if land then "land"
else if multi then "multicolor"
else if multi_color == 2 and chosen(choice:"artifact") then "hybrid" #### hybrid artifacts would show as their first color
@@ -1133,7 +1147,8 @@ sparker_card_color := {
black := chosen(choice:"black")
red := chosen(choice:"red")
green := chosen(choice:"green")
multi_color := count_chosen(choices:"white, blue, black, red, green")
orange := chosen(choice:"orange")
multi_color := count_chosen(choices:"white, blue, black, red, green, orange")
if land then "colorless"
else if multi then "multicolor"
else if multi_color >= 2 then "multicolor"
@@ -1236,11 +1251,11 @@ digital_map := [
for_mana_costs := {
if input.separator_before == "—" and contains(input.param, match: " ") then ( #### multi word
if comma_count(input.param) == "," then ( #### two part
if match(match: "^[VHSCAIETKPLOQ\\?XYZIWUBRG0-9/|]+,", input.param) then #### starts with mana
if match(match: "^[VHSCAIETKPLOQ\\?XYZIWUBRGO0-9/|]+,", input.param) then #### starts with mana
"{add}<param-cost>{alternative_cost(input.param, trim:combined_cost, s:action)}</param-cost>" #### "add" mana
else "<param-cost>{alternative_cost(input.param, trim:combined_cost, s:action)}</param-cost>{non}" #### else cost "non"
) else if contains(input.param, match: ",") then ( #### three+ parts
if match(match: "^[VHSCAIETKPLOQ\\?XYZIWUBRG0-9/|]+,", input.param) then #### starts with mana
if match(match: "^[VHSCAIETKPLOQ\\?XYZIWUBRGO0-9/|]+,", input.param) then #### starts with mana
"{add}<param-cost>{alternative_cost(input.param, trim:long_cost, s:action)}</param-cost>" #### "add" mana with long formatting
else "<param-cost>{alternative_cost(input.param, trim:long_nomana_cost, s:action)}</param-cost>{non}" #### else cost "non" with long formatting
) else
@@ -1252,7 +1267,7 @@ for_mana_costs := {
}@(non:" in addition to any other costs", action:false, add:"")
#### return bool; is the input is a simple mana cost?
is_mana_cost := {
match(match: "^[VHSCAIETKPLOQ\\?XYZIWUBRG0-9/|]+$", input.param)
match(match: "^[VHSCAIETKPLOQ\\?XYZIWUBRGO0-9/|]+$", input.param)
}
#### Convert extra costs
long_cost := replace@(match:", [A-Z]", replace: { to_lower() } )
@@ -1261,7 +1276,7 @@ long_nomana_cost := replace@(match:"[A-Z]", replace: { to_lower() })
lower_first := replace@(match:"^[A-Z]", replace: { to_lower() })
combined_cost := replace@(match:", [A-Z]", replace: { to_lower() })+
replace@(match:",", replace:" and")+
replace@(match:"^[VHSCETKPLOQ\\?XYZIWUBRG0-9/|]+", in_context: "(^|[[:space:]])<match>(?![a-z])", replace: "<sym-auto>&</sym-auto>")+
replace@(match:"^[VHSCETKPLOQ\\?XYZIWUBRGO0-9/|]+", in_context: "(^|[[:space:]])<match>(?![a-z])", replace: "<sym-auto>&</sym-auto>")+
replace@(match:"^[A-Z]", replace: { to_lower() })
alternative_cost := {
input := trim(input)
@@ -1322,7 +1337,7 @@ protection_code := {
else if match(input, match:"^(converted|mana|power|toughness)") then "anything with " + replace(input, match:"and from", replace:"or", in_context:" <match> ")
else if contains(input, match:"the chosen player") then "anything " + replace(input, match:"the chosen", replace:"controlled by that")
else if contains(input, match:"the chosen") then "anything with " + replace(input, match:"the chosen", replace:"that")
else if contains(input, match:"all colors") then "anything " + replace(input, match:"all colors", replace:"that's white, blue, black, red, or green")
else if contains(input, match:"all colors") then "anything " + replace(input, match:"all colors", replace:"that's white, blue, black, red, green, or orange")
else if match(input, match:"^you$") then "anything you control"
else if match(input, match:"^its owner$") then "anything its owner controls"
else if match(input, match:"^(each of )?your opponents$") then "anything " + replace(input, match:"(each of )?your opponents", replace:"controlled by those players")
@@ -1348,7 +1363,7 @@ protection_code := {
output
}
phy_reminder := {
phy_match := filter_text(input, match:"(/[WUBRG])+", in_context:"H<match>")
phy_match := filter_text(input, match:"(/[WUBRGO])+", in_context:"H<match>")
letters := split_text(phy_match, match:"/")
reminder_text := ""
if length(letters) == 2 then
@@ -1532,8 +1547,8 @@ mana_context :=
| <match>[ ]can[ ]be[ ]paid
| (pays?|additional|costs?|the|adds?|pay(ed)?[ ](with|using)) #### pay X. creatures cost 1 less. pay an additional G.
([ ]either)? #### pay either X or Y
([ ](<sym[^>]*>)?[-+=]?[VHSCETKPLOQ\\?XYZIEWUBRG0-9/|]+(</sym[^>]*>)?,)* #### pay X, Y or Z
([ ](<sym[^>]*>)?[-+=]?[VHSCETKPLOQ\\?XYZIEWUBRG0-9/|]+(</sym[^>]*>)?[ ](and|or|and/or))* #### pay X or Y
([ ](<sym[^>]*>)?[-+=]?[VHSCETKPLOQ\\?XYZIEWUBRGO0-9/|]+(</sym[^>]*>)?,)* #### pay X, Y or Z
([ ](<sym[^>]*>)?[-+=]?[VHSCETKPLOQ\\?XYZIEWUBRGO0-9/|]+(</sym[^>]*>)?[ ](and|or|and/or))* #### pay X or Y
[ ]<match>
(
[,.)\"”]|$ #### (end of word)
@@ -1893,7 +1908,7 @@ text_filter :=
} +
#### step 4 : explict non mana symbols
replace@(
match: "\\][-+=]?[VHSCEKPLOTQINF\\?XYZIWUBRG0-9/|]+\\[",
match: "\\][-+=]?[VHSCEKPLOTQINF\\?XYZIWUBRGO0-9/|]+\\[",
replace: {"<nosym>" + mana_filter_t() + "</nosym>"}
) +
#### step 5 : add mana & tap symbols
@@ -1908,13 +1923,13 @@ text_filter :=
replace: {"<sym-auto>" + _1 + "</sym-auto>" + _3}
) +
replace@(
match: "\\b[VHSCEKPLOTQ\\?XYZIWUBRG0-9/|]+\\b",
match: "\\b[VHSCEKPLOTQ\\?XYZIWUBRGO0-9/|]+\\b",
in_context: mana_context,
replace: {"<sym-auto>" + mana_filter_t() + "</sym-auto>"}
) +
#### step 5b : remove false positive mana & tap symbols
replace@(
match: "<sym-auto>([VHSCEKPLOTQ\\?XYZIWUBRG0-9/|]+)</sym-auto>",
match: "<sym-auto>([VHSCEKPLOTQ\\?XYZIWUBRGO0-9/|]+)</sym-auto>",
in_context: mana_un_context,
replace: "\\1"
) +
@@ -1924,7 +1939,7 @@ text_filter :=
replace: {"<sym>INF</sym>" }
) +
replace@(
match: "\\[[-+=]?[VHSCEKPLOTQ\\?XYZIWUBRG0-9/|]+\\]",
match: "\\[[-+=]?[VHSCEKPLOTQ\\?XYZIWUBRGO0-9/|]+\\]",
replace: {"<sym>" + mana_filter_t() + "</sym>"}
) +
#### step 6a : auto reminder
@@ -5790,10 +5805,10 @@ apply_index := {
,[lang_setting("black")]
,[lang_setting("red")]
,[lang_setting("green")]
,[lang_setting("orange")]
,[lang_setting("purple")]
,[lang_setting("pink")]
,[lang_setting("yellow")]
,[lang_setting("orange")]
,[lang_setting("brown")]
,[lang_setting("multicolor")]
,[lang_setting("hybrid")]
@@ -5923,10 +5938,10 @@ skeleton_runner := {
#### outside to make singleton scripts easier
blank_list_5 := ["","","","",""]
blank_list_10 := ["","","","","","","","","",""]
mana_list_ally := ["WU","UB","BR","RG","GW"]
mana_list_enemy := ["WB","UR","BG","RW","GU"]
mana_list_shard := ["WUB","UBR","BRG","RGW","GWU"]
mana_list_wedge := ["WBG","URW","BGU","RWB","GUR"]
mana_list_ally := ["WU","UB","BR","RG","GW","GO","OW"]
mana_list_enemy := ["WB","UR","BG","RW","GU","UO","BO","RO"]
mana_list_shard := ["WUB","UBR","BRG","RGW","GWU"] # TODO: Add shard triplets for orange
mana_list_wedge := ["WBG","URW","BGU","RWB","GUR"] # TODO: Add wedge triples for orange
skeleton_script := {
cards := [];
cards := cards + skeleton_runner(count:skeleton_commons);

View File

@@ -1322,10 +1322,10 @@ statistics dimension:
group: Black
group: Red
group: Green
group: Orange
group: Purple
group: Pink
group: Yellow
group: Orange
group: Brown
group: Multicolor
group: Hybrid
@@ -1335,10 +1335,10 @@ statistics dimension:
Black : rgb(33,33,33)
Red : rgb(156,15,15)
Green : rgb(68,144,15)
Orange : rgb(253,196,41)
Purple : rgb(150,100,160)
Pink : rgb(255,175,200)
Yellow : rgb(242,247,94)
Orange : rgb(255,181,121)
Brown : rgb(191,171,144)
Colorless : rgb(101,104,94)
Artifact : rgb(109,132,158)

View File

@@ -235,7 +235,8 @@ face_color_category_statistic :=
black := chosen(choice:"black")
red := chosen(choice:"red")
green := chosen(choice:"green")
multi_color := count_chosen(choices:"white, blue, black, red, green")
orange := chosen(choice:"orange")
multi_color := count_chosen(choices:"white, blue, black, red, green, orange")
if land then all_en_space_statistic(lang_setting("land"))
else if multi then all_en_space_statistic(lang_setting("multicolor"))
else if multi_color == 2
@@ -262,7 +263,7 @@ face_omniverse_color_statistic :=
{
if chosen(choice: "land") then all_en_space_statistic(lang_setting("land"))
else if chosen(choice: "multicolor") then all_en_space_statistic(lang_setting("multicolor"))
else if count_chosen(choices: "white, blue, black, red, green, pink, purple, yellow, orange, brown") == 2
else if count_chosen(choices: "white, blue, black, red, green, orange, pink, purple, yellow, brown") == 2
and chosen(choice: "artifact") then all_en_space_statistic(lang_setting("hybrid")) ##hybrid artifacts would show as their first color
else if chosen(choice: "hybrid") then all_en_space_statistic(lang_setting("hybrid"))
else if (chosen(choice: "artifact")
@@ -271,20 +272,20 @@ face_omniverse_color_statistic :=
or chosen(choice: "black")
or chosen(choice: "red")
or chosen(choice: "green")
or chosen(choice: "orange")
or chosen(choice: "pink")
or chosen(choice: "purple")
or chosen(choice: "yellow")
or chosen(choice: "orange")
or chosen(choice: "brown"))) then all_en_space_statistic(lang_setting("artifact"))
else if chosen(choice: "white") then all_en_space_statistic(lang_setting("white"))
else if chosen(choice: "blue") then all_en_space_statistic(lang_setting("blue"))
else if chosen(choice: "black") then all_en_space_statistic(lang_setting("black"))
else if chosen(choice: "red") then all_en_space_statistic(lang_setting("red"))
else if chosen(choice: "green") then all_en_space_statistic(lang_setting("green"))
else if chosen(choice: "orange") then all_en_space_statistic(lang_setting("orange"))
else if chosen(choice: "pink") then all_en_space_statistic(lang_setting("pink"))
else if chosen(choice: "purple") then all_en_space_statistic(lang_setting("purple"))
else if chosen(choice: "yellow") then all_en_space_statistic(lang_setting("yellow"))
else if chosen(choice: "orange") then all_en_space_statistic(lang_setting("orange"))
else if chosen(choice: "brown") then all_en_space_statistic(lang_setting("brown"))
else input
}
@@ -397,8 +398,8 @@ devotion_filters_statistic := [
G: filter_text@(match:"O")
C: filter_text@(match:"C")
]
color_pip_break_statistic := break_text@(match:"([A-Z0-9]/|[|])*[WUBRG]")
color_code_break_statistic := break_text@(match:"[WUBRGC]")
color_pip_break_statistic := break_text@(match:"([A-Z0-9]/|[|])*[WUBRGO]")
color_code_break_statistic := break_text@(match:"[WUBRGOC]")
symbol_aggregate_statistic :=
{
devotion := devotion_filters_statistic[symbol](input)
@@ -480,6 +481,7 @@ face_mana_production_list_statistic :=
(if lang_setting("is_swamp")(sub) or contains_element(produced_symbols, element:"B") then ",B" else "") +
(if lang_setting("is_mountain")(sub) or contains_element(produced_symbols, element:"R") then ",R" else "") +
(if lang_setting("is_forest")(sub) or contains_element(produced_symbols, element:"G") then ",G" else "") +
(if lang_setting("is_desert")(sub) or contains_element(produced_symbols, element:"O") then ",O" else "") +
(if lang_setting("is_wastes")(name) or contains_element(produced_symbols, element:"C") then ",C" else "") +
(if can_Any then ","+all_en_space_statistic(lang_setting("mana_any")) else "") +
(if can_Chosen then ","+all_en_space_statistic(lang_setting("mana_chosen")) else "")