Fix #154
This commit is contained in:
@@ -431,13 +431,13 @@ crop_multi_image := {
|
||||
|
||||
############################################################## Sorting mana symbols
|
||||
#### correctly sort a mana symbol (no guild mana)
|
||||
mana_sort := sort_text@(order: "\\?XYZI[0123456789]VLHSFCAIE(WUBRG)")
|
||||
mana_sort := sort_text@(order: "\\?XYZI[0123456789]VHSFCAI(EKPLO)(WUBRG)")
|
||||
#### correctly sort wedge mana
|
||||
mana_sort_wedge := sort_text@(order: "\\?XYZI[0123456789]VLHSFCAIE(WBGUR)")
|
||||
mana_sort_wedge := sort_text@(order: "\\?XYZI[0123456789]VHSFCAI(EPOKL)(WBGUR)")
|
||||
#### sort nothing
|
||||
mana_unsort := sort_text@(order:"[/\\?XYZI0123456789VLHSCAIEOPKMWUBRG]")
|
||||
mana_unsort := sort_text@(order:"[/\\?XYZI0123456789VHSCAIEKPLOMWUBRG]")
|
||||
#### correctly sort guild mana
|
||||
mana_sort_guild := sort_text@(order: "[\\?XYZI01234567890VLHSFCAIEWUBRG/|]") +
|
||||
mana_sort_guild := sort_text@(order: "[\\?XYZI01234567890VHSFCAIEKPLOWUBRG/|]") +
|
||||
replace@(
|
||||
#### No lookbehind :(
|
||||
#match: "(?<!/)(./.|././.|./././.|.[|])(?!/)",
|
||||
@@ -961,7 +961,7 @@ is_half_mana := match@(match: "1/2|[|][WUBRGS]")
|
||||
is_half_generic := match@(match: "1/2")
|
||||
is_colored_mana := match@(match: "[WUBRG]")
|
||||
only_numbers := filter_text@(match: "^[0123456789]+")
|
||||
cmc_split := break_text@(match: "(?ix) 1/2 | [|][WUBRGC] | TK | [0-9](/[WUBRGCVLHSCETQ2]) | [0-9]+(?!/[WUBRGCVLHSCETQ2]) | [WUBRGCVLHS0-9](/[WUBRGCVLHS])\{0,4} ")
|
||||
cmc_split := break_text@(match: "(?ix) 1/2 | [|][WUBRGC] | TK | [0-9](/[WUBRGCVHSCEKPLOTQ2]) | [0-9]+(?!/[WUBRGCVHSCEKPLOTQ2]) | [WUBRGCVHS0-9](/[WUBRGCVHS])\{0,4} ")
|
||||
cmc := {to_number(
|
||||
for each sym in cmc_split(to_text()) do (
|
||||
numbers := only_numbers(sym)
|
||||
@@ -1137,11 +1137,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: "^[VLHSCAIETKQ\\?XYZIWUBRG0-9/|]+,", input.param) then #### starts with mana
|
||||
if match(match: "^[VHSCAIETKPLOQ\\?XYZIWUBRG0-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: "^[VLHSCAIETKQ\\?XYZIWUBRG0-9/|]+,", input.param) then #### starts with mana
|
||||
if match(match: "^[VHSCAIETKPLOQ\\?XYZIWUBRG0-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
|
||||
@@ -1153,7 +1153,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: "^[VLHSCAIETKQ\\?XYZIWUBRG0-9/|]+$", input.param)
|
||||
match(match: "^[VHSCAIETKPLOQ\\?XYZIWUBRG0-9/|]+$", input.param)
|
||||
}
|
||||
#### Convert extra costs
|
||||
long_cost := replace@(match:", [A-Z]", replace: { to_lower() } )
|
||||
@@ -1162,7 +1162,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:"^[VLHSCETKQ\\?XYZIWUBRG0-9/|]+", in_context: "(^|[[:space:]])<match>(?![a-z])", replace: "<sym-auto>&</sym-auto>")+
|
||||
replace@(match:"^[VHSCETKPLOQ\\?XYZIWUBRG0-9/|]+", in_context: "(^|[[:space:]])<match>(?![a-z])", replace: "<sym-auto>&</sym-auto>")+
|
||||
replace@(match:"^[A-Z]", replace: { to_lower() })
|
||||
alternative_cost := {
|
||||
input := trim(input)
|
||||
@@ -1433,8 +1433,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[^>]*>)?[-+=]?[VLHSCETKQ\\?XYZIEWUBRG0-9/|]+(</sym[^>]*>)?,)* #### pay X, Y or Z
|
||||
([ ](<sym[^>]*>)?[-+=]?[VLHSCETKQ\\?XYZIEWUBRG0-9/|]+(</sym[^>]*>)?[ ](and|or|and/or))* #### pay 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
|
||||
[ ]<match>
|
||||
(
|
||||
[,.)\"”]|$ #### (end of word)
|
||||
@@ -1801,7 +1801,7 @@ text_filter :=
|
||||
} +
|
||||
#### step 4 : explict non mana symbols
|
||||
replace@(
|
||||
match: "\\][-+=]?[VLHSCETQ\\?XYZIWUBRG0-9/|]+\\[",
|
||||
match: "\\][-+=]?[VHSCEKPLOTQ\\?XYZIWUBRG0-9/|]+\\[",
|
||||
replace: {"<nosym>" + mana_filter_t() + "</nosym>"}
|
||||
) +
|
||||
#### step 5 : add mana & tap symbols
|
||||
@@ -1816,19 +1816,19 @@ text_filter :=
|
||||
replace: {"<sym-auto>" + _1 + "</sym-auto>" + _3}
|
||||
) +
|
||||
replace@(
|
||||
match: "\\b[VLHSCETQ\\?XYZIWUBRG0-9/|]+\\b",
|
||||
match: "\\b[VHSCEKPLOTQ\\?XYZIWUBRG0-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>([VLHSCETQ\\?XYZIWUBRG0-9/|]+)</sym-auto>",
|
||||
match: "<sym-auto>([VHSCEKPLOTQ\\?XYZIWUBRG0-9/|]+)</sym-auto>",
|
||||
in_context: mana_un_context,
|
||||
replace: "\\1"
|
||||
) +
|
||||
#### step 5c : add explicit mana symbols
|
||||
replace@(
|
||||
match: "\\[[-+=]?[VLHSCETQE\\?XYZIWUBRG0-9/|]+\\]",
|
||||
match: "\\[[-+=]?[VHSCEKPLOTQ\\?XYZIWUBRG0-9/|]+\\]",
|
||||
replace: {"<sym>" + mana_filter_t() + "</sym>"}
|
||||
) +
|
||||
#### step 6 : curly quotes
|
||||
|
||||
Reference in New Issue
Block a user