diff --git a/data/magic-mana-large.mse-symbol-font/energy.png b/data/magic-mana-large.mse-symbol-font/energy.png index 1254a2d84..db9bc4961 100644 Binary files a/data/magic-mana-large.mse-symbol-font/energy.png and b/data/magic-mana-large.mse-symbol-font/energy.png differ diff --git a/data/magic-mana-large.mse-symbol-font/symbol-font b/data/magic-mana-large.mse-symbol-font/symbol-font index 37cf42945..ed50c9d16 100644 --- a/data/magic-mana-large.mse-symbol-font/symbol-font +++ b/data/magic-mana-large.mse-symbol-font/symbol-font @@ -146,7 +146,11 @@ symbol: image: {"/magic-mainframe-extras.mse-include/" + v_mana_loc() + "large/" + v_mana_name() + ".png"} image font size: 120 enabled: {use_large_v_mana()} -#######Normal Mana Symbols +####### Miscellaneous Symbols +symbol: + code: TK + image: ticket.png + image font size: 178 symbol: code: T image: mana_t_older.png @@ -172,8 +176,9 @@ symbol: symbol: code: E image: Energy.png + image font size: 230 symbol: - code: chaos + code: A image: mana_chaos.png image font size: 151.69 ###################################################################################### Phy Hybrid @@ -440,9 +445,6 @@ symbol: symbol: code: |S image: mana_s_half.png -symbol: - code: A - image: mana_chaos.png symbol: code: H/W image: mana_phyw.png @@ -826,7 +828,9 @@ symbol: insert symbol menu: item: T item: Q - item: chaos + item: E + item: TK + item: A item: type: line item: X @@ -909,3 +913,4 @@ insert symbol menu: item: 2/R item: 2/G item: 2/C + item: 2/S diff --git a/data/magic-mana-large.mse-symbol-font/ticket.png b/data/magic-mana-large.mse-symbol-font/ticket.png new file mode 100644 index 000000000..f99fa1b70 Binary files /dev/null and b/data/magic-mana-large.mse-symbol-font/ticket.png differ diff --git a/data/magic-mana-small.mse-symbol-font/defense.png b/data/magic-mana-small.mse-symbol-font/defense.png new file mode 100644 index 000000000..695e208fb Binary files /dev/null and b/data/magic-mana-small.mse-symbol-font/defense.png differ diff --git a/data/magic-mana-small.mse-symbol-font/defense_wide.png b/data/magic-mana-small.mse-symbol-font/defense_wide.png new file mode 100644 index 000000000..6f9c5660c Binary files /dev/null and b/data/magic-mana-small.mse-symbol-font/defense_wide.png differ diff --git a/data/magic-mana-small.mse-symbol-font/symbol-font b/data/magic-mana-small.mse-symbol-font/symbol-font index 5ad9fbfd3..d5a5d3545 100644 --- a/data/magic-mana-small.mse-symbol-font/symbol-font +++ b/data/magic-mana-small.mse-symbol-font/symbol-font @@ -314,6 +314,53 @@ symbol: color: black max stretch: 0.5 image font size: 100 +###################################################################################### Defense Symbols +symbol: + image: defense_wide.png + code: D([+-][XYZ0-9][0-9]) + regex: yes + draw text: 1 + text margin left: .41 + text margin right: .48 + text margin top: .00 + text margin bottom: .00 + text font: + name: Beleren Bold + size: .45 + color: black + max stretch: 0.5 + image font size: 115 +symbol: + image: defense_wide.png + code: D([XYZ0-9+-][0-9]) + regex: yes + draw text: 1 + text margin left: .47 + text margin right: .45 + text margin top: .02 + text margin bottom: .00 + text font: + name: Beleren Bold + size: .58 + color: black + max stretch: 0.5 + image font size: 115 +symbol: + image: defense.png + code: D([XYZ0-9]) + regex: yes + draw text: 1 + text margin left: .0 + text margin right: .0 + text margin top: .02 + text margin bottom: .0 + text font: + name: Beleren Bold + size: .58 + color: black + max stretch: 0.5 + image font size: 115 + ###################################################################################### Symbols That Actually Appear on Cards symbol: code: phi @@ -324,10 +371,18 @@ symbol: image: energy_inverse.png image font size: 300 enabled: {white_text()} +symbol: + code: energy + image: energy.png + image font size: 300 symbol: code: E image: energy.png image font size: 300 +symbol: + code: TK + image: ticket.png + image font size: 240 symbol: code: .5 image: one_half.png @@ -1029,8 +1084,10 @@ symbol: insert symbol menu: item: T item: Q - item: C item: E + item: TK + item: A + item: phi item: type: custom name: colorless @@ -1043,7 +1100,6 @@ insert symbol menu: item: G item: C item: S - item: A item: type: line item: @@ -1113,6 +1169,7 @@ insert symbol menu: item: 2/R item: 2/G item: 2/C + item: 2/S item: type: line item: @@ -1156,3 +1213,24 @@ insert symbol menu: item: 8 loyalty item: 9 loyalty item: X loyalty + item: + name: defense + item: D0 + item: D1 + item: D2 + item: D3 + item: D4 + item: D5 + item: D6 + item: D7 + item: D8 + item: D9 + item: DX + item: + name: saga chapters + item: r1 + item: r2 + item: r3 + item: r4 + item: r5 + item: r6 diff --git a/data/magic-mana-small.mse-symbol-font/ticket.png b/data/magic-mana-small.mse-symbol-font/ticket.png new file mode 100644 index 000000000..6343213df Binary files /dev/null and b/data/magic-mana-small.mse-symbol-font/ticket.png differ diff --git a/data/magic.mse-game/script b/data/magic.mse-game/script index ef9ce896d..a5b24120a 100644 --- a/data/magic.mse-game/script +++ b/data/magic.mse-game/script @@ -11,12 +11,12 @@ version_date := {"2023-02-21"} ############################################################## 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]VLHSFCAIE[TK](WUBRG)") # correctly sort wedge mana -mana_sort_wedge := sort_text@(order: "\\?XYZI[0123456789]VLHSFCAIE(WBGUR)") -mana_unsort := sort_text@(order:"[/\\?XYZI0123456789VLHSCAIEWUBRG]") +mana_sort_wedge := sort_text@(order: "\\?XYZI[0123456789]VLHSFCAIE[TK](WBGUR)") +mana_unsort := sort_text@(order:"[/\\?XYZI0123456789VLHSCAIETKWUBRG]") # correctly sort guild mana -mana_sort_guild := sort_text@(order: "[\\?XYZI01234567890VLHSFCAIEWUBRG/|]") + +mana_sort_guild := sort_text@(order: "[\\?XYZI01234567890VLHSFCAIETKWUBRG/|]") + replace@( # No lookbehind :( #match: "(?") +tap_filter := filter_text@(match: "[TKQ]") mana_filter_t := replace@( # Remove [] used for forcing mana symbols match: "[\\[\\]]", replace: "" @@ -432,16 +433,16 @@ trim_reminder_x := replace@(match: ". X can’t be 0.", replace: "") 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: "^[VLHSCAIETQ\\?XYZIWUBRG0-9/|]+,", input.param) then ##starts with mana + if match(match: "^[VLHSCAIETKQ\\?XYZIWUBRG0-9/|]+,", input.param) then ##starts with mana "{add}{alternative_cost(input.param, trim:combined_cost, s:action)}" ##"add" mana else "{alternative_cost(input.param, trim:combined_cost, s:action)}{non}" ## else cost "non" ) else if contains(input.param, match: ",") then ( ##three+ parts - if match(match: "^[VLHSCAIETQ\\?XYZIWUBRG0-9/|]+,", input.param) then ##starts with mana + if match(match: "^[VLHSCAIETKQ\\?XYZIWUBRG0-9/|]+,", input.param) then ##starts with mana "{add}{alternative_cost(input.param, trim:long_cost, s:action)}" ##"add" mana with long formatting else "{alternative_cost(input.param, trim:long_nomana_cost, s:action)}{non}" ## else cost "non" with long formatting ) else "{alternative_cost(input.param, s:action, trim:lower_first)}{non}" ##one, nonmana, part - ) else if match(match: "^[VLHSCAIETQ\\?XYZIWUBRG0-9/|]+$", input.param) then ##one word + ) else if match(match: "^[VLHSCAIETKQ\\?XYZIWUBRG0-9/|]+$", input.param) then ##one word "{add}{input.param}" ##mana else "{alternative_cost(input.param, trim:combined_cost, s:action)}{non}" ##nonmana @@ -454,7 +455,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:"^[VLHSCETQ\\?XYZIWUBRG0-9/|]+", in_context: "(^|[[:space:]])(?![a-z])", replace: "&")+ + replace@(match:"^[VLHSCETKQ\\?XYZIWUBRG0-9/|]+", in_context: "(^|[[:space:]])(?![a-z])", replace: "&")+ replace@(match:"^[A-Z]", replace: { to_lower() }) alternative_cost := { input := trim(input) @@ -780,8 +781,8 @@ mana_context := | [ ]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 - ([ ](]*>)?[-+=]?[VLHSCETQ\\?XYZIEWUBRG0-9/|]+(]*>)?,)* # pay X, Y or Z - ([ ](]*>)?[-+=]?[VLHSCETQ\\?XYZIEWUBRG0-9/|]+(]*>)?[ ](and|or|and/or))* # pay X or Y + ([ ](]*>)?[-+=]?[VLHSCETKQ\\?XYZIEWUBRG0-9/|]+(]*>)?,)* # pay X, Y or Z + ([ ](]*>)?[-+=]?[VLHSCETKQ\\?XYZIEWUBRG0-9/|]+(]*>)?[ ](and|or|and/or))* # pay X or Y [ ] ([,.)\"”]|$ # (end of word) |[ ][^ .,]*$ # still typing... @@ -1009,7 +1010,7 @@ text_filter := } + # step 4 : explict non mana symbols replace@( - match: "\\][-+=]?[VLHSCETQ\\?XYZIWUBRG0-9/|]+\\[", + match: "\\][-+=]?[VLHSCETKQ\\?XYZIWUBRG0-9/|]+\\[", replace: {"" + mana_filter_t() + ""} ) + # step 5 : add mana & tap symbols replace@( @@ -1017,17 +1018,17 @@ text_filter := in_context: mana_context, replace: {"" + _1 + ""} ) + replace@( - match: "\\b[VLHSCETQ\\?XYZIWUBRG0-9/|]+\\b", + match: "\\b[VLHSCETKQ\\?XYZIWUBRG0-9/|]+\\b", in_context: mana_context, replace: {"" + mana_filter_t() + ""} ) + # step 5b : remove false positive mana & tap symbols replace@( - match: "([VLHSCETQ\\?XYZIWUBRG0-9/|]+)", + match: "([VLHSCETKQ\\?XYZIWUBRG0-9/|]+)", in_context: mana_un_context, replace: "\\1" ) + # step 5c : add explicit mana symbols replace@( - match: "\\[[-+=]?[VLHSCETQE\\?XYZIWUBRG0-9/|]+\\]", + match: "\\[[-+=]?[VLHSCETKQE\\?XYZIWUBRG0-9/|]+\\]", replace: {"" + mana_filter_t() + ""} ) + # step 6 : curly quotes {if set.curly_quotes then curly_quotes(input) else input} + @@ -1229,7 +1230,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] | [0-9](/[WUBRGCVLHSCETQ2]) | [0-9]+(?!/[WUBRGCVLHSCETQ2]) | [WUBRGCVLHS0-9](/[WUBRGCVLHS])\{0,4} ") +cmc_split := break_text@(match: "(?ix) 1/2 | [|][WUBRGC] | TK | [0-9](/[WUBRGCVLHSCETQ2]) | [0-9]+(?!/[WUBRGCVLHSCETQ2]) | [WUBRGCVLHS0-9](/[WUBRGCVLHS])\{0,4} ") cmc := {to_number( for each sym in cmc_split(to_text()) do ( numbers := only_numbers(sym)