Commit e7819c56 authored by twanvl's avatar twanvl

added guild mana support for all magic styles;

uses correct script context for cards using a stylesheet other then the default one.
parent 6eb576cf
......@@ -26,7 +26,13 @@ init script:
land_template := { "acard.jpg" }
# Use the normal tap symbol
mana_t := { "new" }
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 }
# Does the card have a color that requires a white font for copyright/artist?
white_font_colors := filter_rule(match:"^(hybrid )?black|^land")
......@@ -55,12 +61,30 @@ styling field:
name: popup mana symbols
description: Use the symbols of the casting cost line inside the text box as well
initial: no
styling field:
type: choice
name: tap symbol
description: What tap symbol should be used on cards?
initial: modern
choice: modern
choice: old
choice: diagonal T
styling style:
use guild mana symbols:
choice images:
yes: /magic-mana-small.mse-symbol-font/mana_guild_rg.png
no: /magic-mana-small.mse-symbol-font/mana_rg.png
popup mana symbols:
choice images:
yes: /magic-mana-large.mse-symbol-font/mana_w.png
no: /magic-mana-small.mse-symbol-font/mana_w.png
tap symbol:
render style: both
choice images:
modern: /magic-mana-large.mse-symbol-font/mana_t.png
old: /magic-mana-large.mse-symbol-font/mana_t_old.png
diagonal T: /magic-mana-large.mse-symbol-font/mana_t_older.png
############################################################## Card fields
card style:
......
......@@ -27,7 +27,13 @@ init script:
pt_template := { "/magic-new.mse-style/" + artifact_template() + "pt.jpg" }
# Use the normal tap symbol
mana_t := { "mana_t.png" }
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 }
# Does the card have a color that requires a white font for copyright/artist?
white_font_colors := filter_rule(match:"^(hybrid 2 color)?black|^land")
......@@ -63,12 +69,30 @@ styling field:
name: popup mana symbols
description: Use the symbols of the casting cost line inside the text box as well
initial: no
styling field:
type: choice
name: tap symbol
description: What tap symbol should be used on cards?
initial: modern
choice: modern
choice: old
choice: diagonal T
styling style:
use guild mana symbols:
choice images:
yes: /magic-mana-small.mse-symbol-font/mana_guild_rg.png
no: /magic-mana-small.mse-symbol-font/mana_rg.png
popup mana symbols:
choice images:
yes: /magic-mana-large.mse-symbol-font/mana_w.png
no: /magic-mana-small.mse-symbol-font/mana_w.png
tap symbol:
render style: both
choice images:
modern: /magic-mana-large.mse-symbol-font/mana_t.png
old: /magic-mana-large.mse-symbol-font/mana_t_old.png
diagonal T: /magic-mana-large.mse-symbol-font/mana_t_older.png
############################################################## Card fields
card style:
......
......@@ -19,7 +19,13 @@ init script:
}
# Use the normal tap symbol
mana_t := { "mana_t.png" }
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 }
# Does the card have a color that requires a white font for copyright/artist?
white_font_colors := filter_rule(match:"^(hybrid 2 color)?black|^land")
......@@ -31,81 +37,50 @@ init script:
}
############################################################## Set info fields
info style:
title:
padding left: 2
font:
size: 16
symbol:
variation:
name: common
border radius: 0.10
fill type: solid
fill color: rgb(0,0,0)
border color: rgb(255,255,255)
variation:
name: uncommon
border radius: 0.05
fill type: linear gradient
fill color 1: rgb(224,224,224)
fill color 2: rgb(84, 84, 84)
border color 1: rgb(0, 0, 0)
border color 2: rgb(0, 0, 0)
variation:
name: rare
border radius: 0.05
fill type: linear gradient
fill color 1: rgb(214,196,94)
fill color 2: rgb(95, 84, 40)
border color 1: rgb(0, 0, 0)
border color 2: rgb(0, 0, 0)
variation:
name: special
border radius: 0.10
fill type: linear gradient
fill color 1: rgb(224,170,247)
fill color 2: rgb(58,7,80)
border color 1: rgb(255,255,255)
border color 2: rgb(255,255,255)
automatic reminder text:
render style: both
choice images:
yes: script: buildin_image("bool_yes")
no: script: buildin_image("bool_no")
use gradient multicolor:
render style: both
choice images:
yes: script: buildin_image("bool_yes")
no: script: buildin_image("bool_no")
############################################################## Extra style options
############################################################## Extra style
extra field:
styling field:
type: boolean
name: colored mana symbols
description: Use colored mana symbols, as used by Wizards since Fifth Dawn.
extra field:
styling field:
type: boolean
name: darker artifacts
description: Use darker artifacts, as used by Wizards since Fifth Dawn.
extra field:
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
extra field:
styling field:
type: boolean
name: popup mana symbols
description: Use the symbols of the casting cost line inside the text box as well
initial: no
extra style:
styling field:
type: choice
name: tap symbol
description: What tap symbol should be used on cards?
initial: modern
choice: modern
choice: old
choice: diagonal T
styling style:
use guild mana symbols:
choice images:
yes: /magic-mana-small.mse-symbol-font/mana_guild_rg.png
no: /magic-mana-small.mse-symbol-font/mana_rg.png
popup mana symbols:
choice images:
yes: /magic-mana-large.mse-symbol-font/mana_w.png
no: /magic-mana-small.mse-symbol-font/mana_w.png
tap symbol:
render style: both
choice images:
modern: /magic-mana-large.mse-symbol-font/mana_t.png
old: /magic-mana-large.mse-symbol-font/mana_t_old.png
diagonal T: /magic-mana-large.mse-symbol-font/mana_t_older.png
############################################################## Card fields
card style:
......
......@@ -34,6 +34,8 @@ init script:
else if styling.tap_symbol == "diagonal T" then "older"
else "new"
}
# Use guild mana symbols?
guild_mana := { styling.use_guild_mana_symbols }
# Does the card have a color that requires a white font for copyright/artist?
white_font_colors := filter_rule(match:"^(hybrid 2 color )?(hybrid 3 color [^/]*/[^/]*/ )?(hybrid vertical [^/]*/ )?(black|land|hybrid 4 color w/u/b/r)")
......@@ -90,6 +92,10 @@ styling style:
light: oacard.jpg
dark: acard.jpg
brown: bacard.jpg
use guild mana symbols:
choice images:
yes: /magic-mana-small.mse-symbol-font/mana_guild_rg.png
no: /magic-mana-small.mse-symbol-font/mana_rg.png
popup mana symbols:
choice images:
yes: /magic-mana-large.mse-symbol-font/mana_w.png
......
......@@ -23,8 +23,14 @@ init script:
# Horizontal 5 color blends are not supported
card_hybrid_5b := card_hybrid_5
# Use the old tap symbol
mana_t := { "old" }
# 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 }
# Does the card have a color that requires a black font for copyright/artist?
black_font_colors := filter_rule(match:"^(hybrid 2 color)?white")
......@@ -35,56 +41,42 @@ init script:
rgb(255,255,255)
}
############################################################## Set info fields
info style:
title:
padding left: 2
font:
size: 16
symbol:
variation:
name: common
border radius: 0.10
fill type: solid
fill color: rgb(0,0,0)
border color: rgb(255,255,255)
variation:
name: uncommon
border radius: 0.05
fill type: linear gradient
fill color 1: rgb(224,224,224)
fill color 2: rgb(84, 84, 84)
border color 1: rgb(0, 0, 0)
border color 2: rgb(0, 0, 0)
variation:
name: rare
border radius: 0.05
fill type: linear gradient
fill color 1: rgb(214,196,94)
fill color 2: rgb(95, 84, 40)
border color 1: rgb(0, 0, 0)
border color 2: rgb(0, 0, 0)
variation:
name: special
border radius: 0.10
fill type: linear gradient
fill color 1: rgb(224,170,247)
fill color 2: rgb(58,7,80)
border color 1: rgb(255,255,255)
border color 2: rgb(255,255,255)
automatic reminder text:
render style: both
############################################################## Extra style options
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: boolean
name: popup mana symbols
description: Use the symbols of the casting cost line inside the text box as well
initial: no
styling field:
type: choice
name: tap symbol
description: What tap symbol should be used on cards?
initial: old
choice: modern
choice: old
choice: diagonal T
styling style:
use guild mana symbols:
choice images:
yes: script: buildin_image("bool_yes")
no: script: buildin_image("bool_no")
use gradient multicolor:
yes: /magic-mana-small.mse-symbol-font/mana_guild_rg.png
no: /magic-mana-small.mse-symbol-font/mana_rg.png
popup mana symbols:
choice images:
yes: /magic-mana-large.mse-symbol-font/mana_w.png
no: /magic-mana-small.mse-symbol-font/mana_w.png
tap symbol:
render style: both
choice images:
yes: script: buildin_image("bool_yes")
no: script: buildin_image("bool_no")
############################################################## Extra style
modern: /magic-mana-large.mse-symbol-font/mana_t.png
old: /magic-mana-large.mse-symbol-font/mana_t_old.png
diagonal T: /magic-mana-large.mse-symbol-font/mana_t_older.png
############################################################## Card fields
card style:
......@@ -181,7 +173,11 @@ card style:
scale down to: 6
color: rgb(0,0,0)
symbol font:
name: magic-mana-small
name:
script:
if styling.popup_mana_symbols
then "magic-mana-large"
else "magic-mana-small"
size: 13
align: middle center
z index: 2
......
......@@ -23,8 +23,14 @@ init script:
# Horizontal 5 color blends are not supported
card_hybrid_5b := card_hybrid_5
# Use the old tap symbol
mana_t := { "old" }
# 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 }
# Does the card have a color that requires a black font for copyright/artist?
black_font_colors := filter_rule(match:"^(hybrid 2 color)?white")
......@@ -35,57 +41,43 @@ init script:
rgb(255,255,255)
}
############################################################## Set info fields
info style:
title:
padding left: 2
font:
size: 16
symbol:
variation:
name: common
border radius: 0.10
fill type: solid
fill color: rgb(0,0,0)
border color: rgb(255,255,255)
variation:
name: uncommon
border radius: 0.05
fill type: linear gradient
fill color 1: rgb(224,224,224)
fill color 2: rgb(84, 84, 84)
border color 1: rgb(0, 0, 0)
border color 2: rgb(0, 0, 0)
variation:
name: rare
border radius: 0.05
fill type: linear gradient
fill color 1: rgb(214,196,94)
fill color 2: rgb(95, 84, 40)
border color 1: rgb(0, 0, 0)
border color 2: rgb(0, 0, 0)
variation:
name: special
border radius: 0.10
fill type: linear gradient
fill color 1: rgb(224,170,247)
fill color 2: rgb(58,7,80)
border color 1: rgb(255,255,255)
border color 2: rgb(255,255,255)
automatic reminder text:
render style: both
choice images:
yes: script: buildin_image("bool_yes")
no: script: buildin_image("bool_no")
use gradient multicolor:
render style: both
choice images:
yes: script: buildin_image("bool_yes")
no: script: buildin_image("bool_no")
############################################################## Extra style options
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: boolean
name: popup mana symbols
description: Use the symbols of the casting cost line inside the text box as well
initial: no
styling field:
type: choice
name: tap symbol
description: What tap symbol should be used on cards?
initial: old
choice: modern
choice: old
choice: diagonal T
############################################################## Extra style
styling style:
use guild mana symbols:
choice images:
yes: /magic-mana-small.mse-symbol-font/mana_guild_rg.png
no: /magic-mana-small.mse-symbol-font/mana_rg.png
popup mana symbols:
choice images:
yes: /magic-mana-large.mse-symbol-font/mana_w.png
no: /magic-mana-small.mse-symbol-font/mana_w.png
tap symbol:
render style: both
choice images:
modern: /magic-mana-large.mse-symbol-font/mana_t.png
old: /magic-mana-large.mse-symbol-font/mana_t_old.png
diagonal T: /magic-mana-large.mse-symbol-font/mana_t_older.png
############################################################## Card fields
card style:
......@@ -203,7 +195,11 @@ card style:
scale down to: 6
color: rgb(0,0,0)
symbol font:
name: magic-mana-small
name:
script:
if styling.popup_mana_symbols
then "magic-mana-large"
else "magic-mana-small"
size: 13
align: middle left
z index: 2
......
......@@ -25,7 +25,13 @@ init script:
pt_template := { input + "pt.jpg" }
# Use the normal tap symbol
mana_t := { "new" }
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 }
# Does the card have a color that requires a white font for copyright/artist?
white_font_colors := filter_rule(match:"^(hybrid 2 color)?black|^land")
......@@ -36,86 +42,28 @@ init script:
rgb(0,0,0)
}
############################################################## Set info fields
info style:
title:
padding left: 2
font:
size: 16
symbol:
variation:
name: common
border radius: 0.10
fill type: solid
fill color: rgb(0,0,0)
border color: rgb(255,255,255)
variation:
name: uncommon
border radius: 0.05
fill type: linear gradient
fill color 1: rgb(224,224,224)
fill color 2: rgb(84, 84, 84)
border color 1: rgb(0, 0, 0)
border color 2: rgb(0, 0, 0)
variation:
name: rare
border radius: 0.05
fill type: linear gradient
fill color 1: rgb(214,196,94)
fill color 2: rgb(95, 84, 40)
border color 1: rgb(0, 0, 0)
border color 2: rgb(0, 0, 0)
variation:
name: special
border radius: 0.10
fill type: linear gradient
fill color 1: rgb(224,170,247)
fill color 2: rgb(58,7,80)
border color 1: rgb(255,255,255)
border color 2: rgb(255,255,255)
automatic reminder text:
render style: both
choice images:
yes: script: buildin_image("bool_yes")
no: script: buildin_image("bool_no")
use gradient multicolor:
render style: both
choice images:
yes: script: buildin_image("bool_yes")
no: script: buildin_image("bool_no")
############################################################## Extra style options
############################################################## Extra style
extra field:
type: boolean
name: colored mana symbols
description: Use colored mana symbols, as used by Wizards since Fifth Dawn.
extra field:
styling field:
type: boolean
name: darker artifacts
description: Use darker artifacts, as used by Wizards since Fifth Dawn.
extra field:
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.
initial: no
extra field:
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
extra field:
type: boolean
name: popup mana symbols
description: Use the symbols of the casting cost line inside the text box as well
initial: no
extra style:
popup mana symbols:
styling style:
use guild mana symbols:
choice images:
yes: /magic-mana-large.mse-symbol-font/mana_w.png
no: /magic-mana-small.mse-symbol-font/mana_w.png
yes: /magic-mana-small.mse-symbol-font/mana_guild_rg.png
no: /magic-mana-small.mse-symbol-font/mana_rg.png
############################################################## Card fields
card style:
......
......@@ -271,22 +271,19 @@ set field:
name: gold
color: rgb(200,180,0)
set field:
type: choice
name: automatic reminder text
choice: yes
choice: only for custom keywords
choice: no
description: Should reminder text be added to keywords by default? Note: you can enable/disable reminder text by right clicking the keyword.
set field:
# TODO : RENAME
type: multiple choice
name: automatic reminder text2
name: automatic reminder text
choice: old
choice: core
choice: expert
choice: custom
initial: old, core, export, custom
description: Should reminder text be added to keywords by default? Note: you can enable/disable reminder text by right clicking the keyword.
initial: old, core, expert, custom
# Convert from older mse versions
script:
if value = "yes" then "old, core, expert, custom"
else if value = "no" then ""
else value
description: For which kinds of keywords should reminder text be added by default? Note: you can enable/disable reminder text by right clicking the keyword.
set field:
type: boolean
name: automatic card numbers
......@@ -343,11 +340,6 @@ default set style:
border color 1: rgb(255,255,255)
border color 2: rgb(255,255,255)
automatic reminder text:
render style: both
choice images:
yes: script: buildin_image("bool_yes")
no: script: buildin_image("bool_no")
automatic reminder text2:
render style: checklist
direction: vertical
use gradient multicolor:
......@@ -891,7 +883,7 @@ statistics category:
has keywords: true
keyword preview: {keyword} <i>({reminder})</i>
#keyword preview: {keyword} <i>({reminder})</i>
keyword mode:
name: old
......@@ -970,12 +962,12 @@ keyword:
reminder: This creature deals combat damage before creatures without first strike.
keyword:
keyword: Enchant
match: Enchant <param>name</param>
match: Enchant <atom-param>name</atom-param>
mode: core
reminder: Target a <param> as you play this. This card comes into play attached to that {param1}.
reminder: Target a {param1} as you play this. This card comes into play attached to that {param1}.
keyword:
keyword: Cycling
match: Cycling <param>cost</param>
match: Cycling <atom-param>cost</atom-param>
mode: core
reminder: {param1}, Discard this card: Draw a card.
keyword:
......@@ -988,7 +980,7 @@ keyword:
reminder: When declaring attackers or blockers this creature may group with others creatures with banding and one creature without banding. When damage is dealt, you decide where damage is dealt.
keyword:
keyword: Rampage
match: Rampage <param>number</param>
match: Rampage <atom-param>number</atom-param>
mode: old
reminder: Whenever this creature becomes blocked, it gets +{param1}/+{param1} until end of turn for each creature blocking it beyond the first.
keyword:
......@@ -1001,7 +993,7 @@ keyword:
reminder: This creature can’t attack.
keyword:
keyword: Cumulative upkeep
match: Cumulative upkeep <param>cost</param>
match: Cumulative upkeep <atom-param>cost</atom-param>
mode: old
reminder: At the beginning of your upkeep, put an age counter on this permanent, then sacrifice it unless you pay {param1} for each age counter on it.
keyword:
......@@ -1014,7 +1006,7 @@ keyword:
reminder: At the beginning of your upkeep, put this and any cards attached to it in the phased-out zone. If this is already in the phased-out zone, return it and any card attached to it to play. If there were counters on this card when it phased out, put that many counters on it when it returns to play. This ability does not cause comes-into-play or leaves play abilities to trigger.
keyword:
keyword: Flanking
match: Flanking <param>number</param>
match: Flanking <atom-param>number</atom-param>
mode: old
reminder: Whenever a creature without flanking blocks this creature, the blocking creature gets -{param1}/-{param1} until end of turn.
keyword:
......@@ -1023,40 +1015,31 @@ keyword:
reminder: This creature can block or be blocked by only creatures with shadow.
keyword:
keyword: Buyback
match: Buyback <param>cost</param>
match: Buyback <atom-param>cost</atom-param>
mode: expert
reminder: You may pay {param1} in addition to any other costs as you play this spell. If you do, put ~ into your hand instead of your graveyard as part of its resolution.
keyword:
keyword: Echo
mode: expert
reminder: At the beginning of your next upkeep after this permanent comes under your control, sacrifice it unless you pay its mana cost.
keyword:
keyword: Plainscycling
separator: whitespace [ ]
parameter: cost
mode: expert
reminder: <param>, Discard this card: Search your library for a Plains card, reveal it, and put it into your hand. Then shuffle your library.
keyword:
keyword: Landcycling
match: <param>prefix</param>cycling <param>cost</param>
match: <atom-param>prefix</atom-param>cycling <atom-param>cost</atom-param>
mode: expert
reminder: {param2}, Discard this card: Search your library for a {param1} card, reveal it, and put it into your hand. Then shuffle your library.
keyword:
keyword: Fading
separator: whitespace [ ]
parameter: number (a, two, ...)
match: Fading <atom-param>number</atom-param>
mode: expert
reminder: This comes into play with <param> fade counter(s) on it. At the beginning of your upkeep, remove a fade counter from it. If you can’t, sacrifice it.
reminder: This comes into play with {param1} fade counter(s) on it. At the beginning of your upkeep, remove a fade counter from it. If you can’t, sacrifice it.
keyword:
keyword: Kicker
separator: whitespace [ ]
parameter: cost
match: Kicker <atom-param>cost</atom-param>
mode: expert
reminder: You may pay an additional <param> as you play this spell.
reminder: You may pay an additional {param1} as you play this spell.
keyword:
keyword: Madness
separator: whitespace [ ]
parameter: cost
match: Madness <atom-param>cost</atom-param>
mode: expert
reminder: You may play this card for its madness cost at the time you discard it.
keyword:
......@@ -1082,7 +1065,7 @@ keyword:
separator: whitespace [ ]
parameter: number (a, two, ...)
mode: expert
reminder: As this card comes into play, put <param> +1/+1 counter(s) on it for each creature that shares a type with this that you reveal in your hand.
reminder: As this card comes into play, put {param1} +1/+1 counter(s) on it for each creature that shares a type with this that you reveal in your hand.
keyword:
keyword: Double strike
mode: expert
......@@ -1112,7 +1095,7 @@ keyword:
separator: whitespace [ ]
parameter: cost
mode: expert
reminder: <param>: Attach to target creature you control. Equip only as a sorcery. This card comes into play unattached and stays in play if the creature leaves play.
reminder: {param1}: Attach to target creature you control. Equip only as a sorcery. This card comes into play unattached and stays in play if the creature leaves play.
keyword:
keyword: Imprint
separator: dash [ - ]
......@@ -1124,20 +1107,20 @@ keyword:
separator: whitespace [ ]
parameter: number (a, two, ...)
mode: expert
reminder: This comes into play with <param> +1/+1 counter(s) on it. When it’s put into a graveyard, you may put its +1/+1 counters on target artifact creature.
reminder: This comes into play with {param1} +1/+1 counter(s) on it. When it’s put into a graveyard, you may put its +1/+1 counters on target artifact creature.
keyword:
keyword: Scry
separator: whitespace [ ]
parameter: number (, two, ...)
mode: expert
reminder: Look at the top <param> card(s) of your library. Put any number of them on the bottom of your library in any order and the rest on top of your library in any order.
reminder: Look at the top {param1} card(s) of your library. Put any number of them on the bottom of your library in any order and the rest on top of your library in any order.
keyword:
keyword: Sunburst
mode: expert
reminder: This comes into play with a +1/+1 counter on it for each color of mana used to pay its cost. If it is not a creature, use charge counters instead.
#keyword:
keyword: Splice
match: Splice onto <param>name</param> <param>cost</param>
match: Splice onto <atom-param>name</atom-param> <atom-param>cost</atom-param>
mode: expert
reminder: As you play a {param1} spell, you may reveal this card from your hand and pay its splice cost. If you do, add this card’s effects to that spell.
keyword:
......@@ -1151,25 +1134,25 @@ keyword:
separator: dash [ - ]
parameter: name
mode: expert
reminder: You may play this card any time you could play an instant by sacrificing a <param> and paying the difference in mana costs between this and the sacrificed <param>. Mana cost includes color.
reminder: You may play this card any time you could play an instant by sacrificing a {param1} and paying the difference in mana costs between this and the sacrificed {param1}. Mana cost includes color.
keyword:
keyword: Bushido
separator: whitespace [ ]
parameter: number
mode: expert
reminder: When this blocks or becomes blocked, it gets +<param>/+<param> until end of turn.
reminder: When this blocks or becomes blocked, it gets +{param1}/+{param1} until end of turn.
keyword:
keyword: Ninjutsu
separator: whitespace [ ]
parameter: cost
mode: expert
reminder: <param>, Return an unblocked attacker you control to hand: Put this card into play from your hand tapped and attacking.
reminder: {param1}, Return an unblocked attacker you control to hand: Put this card into play from your hand tapped and attacking.
keyword:
keyword: Soulshift
separator: whitespace [ ]
parameter: number
mode: expert
reminder: When this is put into a graveyard from play, you may return target Spirit card with converted mana cost <param> or less from you graveyard to your hand.
reminder: When this is put into a graveyard from play, you may return target Spirit card with converted mana cost {param1} or less from you graveyard to your hand.
keyword:
keyword: Epic
mode: expert
......@@ -1183,7 +1166,7 @@ keyword:
separator: whitespace [ ]
parameter: cost
mode: expert
reminder: <param>, Discard this card: Search your library for a card with the same converted mana cost as this card, reveal it, and put it into your hand. Then shuffle your library. Play only as a sorcery.
reminder: {param1}, Discard this card: Search your library for a card with the same converted mana cost as this card, reveal it, and put it into your hand. Then shuffle your library. Play only as a sorcery.
keyword:
keyword: Haunt
mode: expert
......@@ -1193,7 +1176,7 @@ keyword:
separator: whitespace [ ]
parameter: number (a, two, ...)
mode: expert
reminder: If an opponent was dealt damage this turn, this creature comes into play with <param> +1/+1 counter(s) on it.
reminder: If an opponent was dealt damage this turn, this creature comes into play with {param1} +1/+1 counter(s) on it.
keyword:
keyword: Replicate
separator: whitespace [ ]
......@@ -1218,7 +1201,7 @@ keyword:
reminder: If defending player is wearing any clothing made of denim, this creature is unblockable.
keyword:
keyword: Landwalk
match: <param>prefix</param>walk
match: <atom-param>prefix</atom-param>walk
mode: core
reminder: This creature is unblockable as long as defending player controls a {param1}.
keyword:
......@@ -1226,19 +1209,19 @@ keyword:
separator: whitespace [ ]
parameter: name
mode: core
reminder: This creature can’t be blocked, targeted, dealt damage, or enchanted by anything <param>.
reminder: This creature can’t be blocked, targeted, dealt damage, or enchanted by anything {param1}.
keyword:
keyword: Dredge
separator: whitespace [ ]
parameter: number (one, two, ...)
mode: expert
reminder: As long as you have at least <param> card(s) in your library, if you would draw a card, you may instead put exactly <param> card(s) from the top of your library into your graveyard and return this card from your graveyard to your hand.
reminder: As long as you have at least {param1} card(s) in your library, if you would draw a card, you may instead put exactly {param1} card(s) from the top of your library into your graveyard and return this card from your graveyard to your hand.
keyword:
keyword: Graft
separator: whitespace [ ]
parameter: number (a, two, ...)
mode: expert
reminder: This creature comes into play with <param> +1/+1 counter(s) on it. Whenever another creature comes into play, you may move a +1/+1 counter from this creature onto it.
reminder: This creature comes into play with {param1} +1/+1 counter(s) on it. Whenever another creature comes into play, you may move a +1/+1 counter from this creature onto it.
keyword:
keyword: Forecast
separator: whitespace [ ]
......
......@@ -9,8 +9,14 @@ icon: card-sample.png
############################################################## Extra scripts
init script:
# Use the old tap symbol
mana_t := { "old" }
# 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 }
############################################################## Set info fields
info style:
......@@ -19,13 +25,42 @@ info style:
font:
size: 16
############################################################## Extra style
############################################################## Extra style options
extra field:
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: boolean
name: popup mana symbols
description: Use the symbols of the casting cost line inside the text box as well
initial: no
styling field:
type: choice
name: tap symbol
description: What tap symbol should be used on cards?
initial: old
choice: modern
choice: old
choice: diagonal T
styling style:
use guild mana symbols:
choice images:
yes: /magic-mana-small.mse-symbol-font/mana_guild_rg.png
no: /magic-mana-small.mse-symbol-font/mana_rg.png
popup mana symbols:
choice images:
yes: /magic-mana-large.mse-symbol-font/mana_w.png
no: /magic-mana-small.mse-symbol-font/mana_w.png
tap symbol:
render style: both
choice images:
modern: /magic-mana-large.mse-symbol-font/mana_t.png
old: /magic-mana-large.mse-symbol-font/mana_t_old.png
diagonal T: /magic-mana-large.mse-symbol-font/mana_t_older.png
############################################################## Card fields
card style:
......
......@@ -94,6 +94,9 @@ init script:
############################################################## Set fields
set field:
type: info
name: Set Information
set field:
type: text
name: title
......@@ -107,6 +110,9 @@ set field:
set field:
type: text
name: copyright
set field:
type: info
name: Defaults and Automation
set field:
type: color
name: border color
......@@ -129,6 +135,14 @@ set field:
initial: no
description: Should card numbers be shown on the cards?
############################# Default style
default set style:
title:
padding left: 2
font:
size: 16
############################################################## Card fields
############################# Background stuff
......
......@@ -97,5 +97,10 @@ class KeywordReminderTextValue : public KeywordTextValue {
void highlight(const String& code, const vector<ScriptParseError>& errors);
};
/// Changing the mode of a keyword
class ChangeKeywordModeAction : public Action {
};
// ----------------------------------------------------------------------------- : EOF
#endif
......@@ -22,6 +22,9 @@
#include <wx/statline.h>
#include <wx/artprov.h>
DECLARE_TYPEOF_COLLECTION(KeywordParamP);
DECLARE_TYPEOF_COLLECTION(KeywordModeP);
// ----------------------------------------------------------------------------- : KeywordsPanel
KeywordsPanel::KeywordsPanel(Window* parent, int id)
......@@ -36,6 +39,8 @@ KeywordsPanel::KeywordsPanel(Window* parent, int id)
reminder = new TextCtrl(panel, wxID_ANY, true); // allow multiline for wordwrap
rules = new TextCtrl(panel, wxID_ANY, true);
errors = new wxStaticText(panel, wxID_ANY, _(""));
mode = new wxChoice(panel, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, nullptr);
add_param = new wxButton(panel, ID_KEYWORD_ADD_PARAM, _("Insert Parameter"));
// warning about fixed keywords
fixedL = new wxStaticText(panel, wxID_ANY, _(""));
wxStaticBitmap* fixedI = new wxStaticBitmap(panel, wxID_ANY, wxArtProvider::GetBitmap(wxART_WARNING));
......@@ -52,12 +57,15 @@ KeywordsPanel::KeywordsPanel(Window* parent, int id)
wxSizer* s1 = new wxBoxSizer(wxVERTICAL);
s1->Add(new wxStaticText(panel, wxID_ANY, _("Keyword:")), 0);
s1->Add(keyword, 0, wxEXPAND | wxTOP, 2);
s1->Add(new wxStaticText(panel, wxID_ANY, _("Mode:")), 0, wxTOP, 2);
s1->Add(mode, 0, wxEXPAND | wxTOP, 2);
sp->Add(s1, 0, wxEXPAND | wxLEFT, 2);
sp->Add(new wxStaticLine(panel), 0, wxEXPAND | wxTOP | wxBOTTOM, 8);
wxSizer* s2 = new wxBoxSizer(wxVERTICAL);
s2->Add(new wxStaticText(panel, wxID_ANY, _("Match:")), 0);
s2->Add(match, 0, wxEXPAND | wxTOP, 2);
s2->Add(new wxStaticText(panel, wxID_ANY, _("Parameters:")), 0, wxTOP, 6);
s2->Add(add_param, 0, wxALIGN_LEFT | wxTOP, 2);
sp->Add(s2, 0, wxEXPAND | wxLEFT, 2);
sp->Add(new wxStaticLine(panel), 0, wxEXPAND | wxTOP | wxBOTTOM, 8);
wxSizer* s3 = new wxBoxSizer(wxVERTICAL);
......@@ -127,6 +135,8 @@ void KeywordsPanel::onUpdateUI(wxUpdateUIEvent& ev) {
case ID_KEYWORD_PREV: ev.Enable(list->canSelectPrevious()); break;
case ID_KEYWORD_NEXT: ev.Enable(list->canSelectNext()); break;
case ID_KEYWORD_REMOVE: ev.Enable(list->getKeyword() && !list->getKeyword()->fixed); break;
case ID_KEYWORD_ADD_PARAM:
break;
}
}
......@@ -147,6 +157,14 @@ void KeywordsPanel::onCommand(int id) {
set->actions.add(new RemoveKeywordAction(*set, list->getKeyword()));
}
break;
case ID_KEYWORD_ADD_PARAM: {
wxMenu param_menu;
FOR_EACH(p, set->game->keyword_parameter_types) {
param_menu.Append(wxID_ANY, p->name);
}
add_param->PopupMenu(&param_menu, 0, add_param->GetSize().y);
break;
}
}
}
......@@ -174,6 +192,12 @@ void KeywordsPanel::onChangeSet() {
match ->getStyle().font.font.SetPointSize(10);
reminder->updateSize();
rules ->setSet(set);
// parameter & mode lists
add_param->Enable(false);
mode->Clear();
FOR_EACH(m, set->game->keyword_modes) {
mode->Append(m->name);
}
// re-layout
panel->Layout();
}
......@@ -198,12 +222,16 @@ void KeywordsPanel::onKeywordSelect(KeywordSelectEvent& ev) {
shared_ptr<KeywordReminderTextValue> reminder_value(new KeywordReminderTextValue(reminder->getFieldP(), &kw, !kw.fixed));
reminder->setValue(reminder_value);
errors->SetLabel(reminder_value->errors);
add_param->Enable(!kw.fixed && !set->game->keyword_parameter_types.empty());
mode->SetStringSelection(kw.mode);
sp->Layout();
} else {
keyword ->setValue(nullptr);
match ->setValue(nullptr);
rules ->setValue(nullptr);
reminder->setValue(nullptr);
add_param->Enable(false);
mode ->Enable(false);
}
}
......
......@@ -52,6 +52,8 @@ class KeywordsPanel : public SetWindowPanel {
wxStaticText* fixedL;
wxSizer* fixed;
wxStaticText* errors;
wxChoice* mode;
wxButton* add_param;
/// Controls to edit a parameter
struct ParamEditor {
wxStaticText* label;
......
......@@ -57,7 +57,7 @@ bool DataViewer::drawEditing() const { return false; }
bool DataViewer::drawFocus() const { return false; }
wxPen DataViewer::borderPen(bool) const { return wxPen(); }
ValueViewer* DataViewer::focusedViewer() const { return nullptr; }
Context& DataViewer::getContext() const { return set->getContext(); }
Context& DataViewer::getContext() const { return set->getContext(card); }
Rotation DataViewer::getRotation() const {
if (!stylesheet) stylesheet = set->stylesheet;
......@@ -68,7 +68,7 @@ Rotation DataViewer::getRotation() const {
// ----------------------------------------------------------------------------- : Setting data
void DataViewer::setCard(const CardP& card) {
if (!card) return; // TODO: clear editor?
if (!card) return; // TODO: clear vie?
assert(set);
this->card = card;
stylesheet = set->stylesheetFor(card);
......
......@@ -108,6 +108,8 @@ enum ChildMenuID {
, ID_KEYWORD_REMOVE
, ID_KEYWORD_PREV
, ID_KEYWORD_NEXT
, ID_KEYWORD_ADD_PARAM
, ID_KEYWORD_REF_PARAM
// Format menu
, ID_FORMAT_BOLD = 1201
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment