Compare commits
10 Commits
89b20b04a5
...
73aaec7407
Author | SHA1 | Date |
---|---|---|
Peder Bergebakken Sundt | 73aaec7407 | |
Peder Bergebakken Sundt | 79af3cb715 | |
Peder Bergebakken Sundt | 0af5055a29 | |
Peder Bergebakken Sundt | d1d821830c | |
Peder Bergebakken Sundt | e85e3745e0 | |
Peder Bergebakken Sundt | d168323de9 | |
Peder Bergebakken Sundt | 44ac35e21b | |
Peder Bergebakken Sundt | 984e59234a | |
Peder Bergebakken Sundt | c3538928f3 | |
Peder Bergebakken Sundt | 3ed09663b9 |
124
Makefile
124
Makefile
|
@ -1,19 +1,11 @@
|
||||||
|
CARDS := $(wildcard cards/*.xml)
|
||||||
CARDS_YAML := $(wildcard cards/*.yaml)
|
CARDS_DESTS := $(patsubst cards/%.xml,cards/build/%.html,$(CARDS))
|
||||||
CARDS_XML := $(wildcard cards/*.xml)
|
|
||||||
CARDS := $(CARDS_YAML) $(CARDS_XML)
|
|
||||||
CARDS_DESTS_YAML := $(patsubst cards/%.yaml,cards/build/%.html,$(CARDS))
|
|
||||||
CARDS_DESTS_XML := $(patsubst cards/%.xml,cards/build/%.x.html,$(CARDS))
|
|
||||||
CARDS_DESTS := $(CARDS_DESTS_YAML) $(CARDS_DESTS_XML)
|
|
||||||
|
|
||||||
.PHONY: style
|
.PHONY: style
|
||||||
style: build/test_card.html build/test_card_rendered.html cards/build/all.html
|
style: build/test_card.html
|
||||||
|
|
||||||
.PHONY: cards
|
.PHONY: cards
|
||||||
cards: $(CARDS_DESTS) cards/build/all.html
|
cards: cards/build/all.html
|
||||||
|
|
||||||
.PHONY: style
|
|
||||||
style: build/style.xsl
|
|
||||||
|
|
||||||
.PHONY: dev
|
.PHONY: dev
|
||||||
dev:
|
dev:
|
||||||
|
@ -23,87 +15,35 @@ dev:
|
||||||
dev_cards:
|
dev_cards:
|
||||||
git ls-files | entr bash -c "make cards"
|
git ls-files | entr bash -c "make cards"
|
||||||
|
|
||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
clean:
|
clean:
|
||||||
rm -v build/* cards/build/*
|
rm -v build/* cards/build/*
|
||||||
|
|
||||||
build/test_card.html: build/test_card.xml build/style.xsl
|
|
||||||
|
build/test_card.html: test_card.xml build/style.xsl build
|
||||||
xsltproc \
|
xsltproc \
|
||||||
-o build/test_card.html \
|
-o build/test_card.html \
|
||||||
build/style.xsl \
|
build/style.xsl \
|
||||||
build/test_card.xml
|
test_card.xml
|
||||||
|
|
||||||
|
|
||||||
define PYTHON_MAKE_JINJA2_RENDERED_CARD
|
cards/build/%.html: cards/%.xml build/style.xsl cards/build
|
||||||
|
xsltproc -o $@ build/style.xsl $<
|
||||||
|
|
||||||
|
|
||||||
|
define PYTHON_MAKE_IFRAME_HELL
|
||||||
from jinja2 import Environment, FileSystemLoader
|
from jinja2 import Environment, FileSystemLoader
|
||||||
from markdown import markdown
|
import sys, os
|
||||||
import yaml, sys, glob, traceback
|
env = Environment(
|
||||||
import xmltodict
|
trim_blocks = True,
|
||||||
with open("build/style.css") as f: css_data = f.read()
|
lstrip_blocks = True,
|
||||||
with open(sys.argv[2], "w") as f:
|
loader = FileSystemLoader('templates'))
|
||||||
e = Environment(trim_blocks=True, lstrip_blocks=True, loader=FileSystemLoader(''))
|
with open("cards/build/all.html", "w") as f:
|
||||||
f.write(e.get_template("templates/card_header.html.j2").render(is_local=True, css_data=css_data))
|
f.write(env.get_template('all.html.j2').render(cards=map(os.path.basename, sys.argv[1:])))
|
||||||
e.filters.update({
|
|
||||||
"is_number":lambda x: str(x).isnumeric(),
|
|
||||||
"is_string":lambda x: isinstance(x, str),
|
|
||||||
"markdown":markdown,
|
|
||||||
"any":any,
|
|
||||||
"all":all,
|
|
||||||
"split":str.split,
|
|
||||||
"startswith":str.startswith,
|
|
||||||
"tail": lambda x: x[1:],
|
|
||||||
"cull_whitespace":(lambda x: " ".join(x.split())) })
|
|
||||||
for n, filename in enumerate([sys.argv[1]] if sys.argv[1] != "ALL" else sorted(glob.glob("cards/*.yaml") + glob.glob("cards/*.xml"))):
|
|
||||||
with open(filename) as f2:
|
|
||||||
if filename.endswith("yaml"):
|
|
||||||
yaml_data = yaml.load(f2.read())
|
|
||||||
xml_data = {}
|
|
||||||
elif filename.endswith("xml"):
|
|
||||||
xml = xmltodict.parse(f2.read())
|
|
||||||
xml_data = xml.get("ability_card", {})
|
|
||||||
yaml_data = yaml.load(xml_data.get("yaml_data", ""))
|
|
||||||
try:
|
|
||||||
data = e.get_template('style.html.j2').render(yaml=yaml_data, xml=xml_data)
|
|
||||||
except Exception as ex:
|
|
||||||
data = f"<pre style=\"color:red;\">{ex}</pre>"
|
|
||||||
traceback.print_exc()
|
|
||||||
if sys.argv[1] == "ALL":
|
|
||||||
f.write(f"\n\n<div id='card_container_{n}'>\n<h1>{filename}</h1>\n\n{data}\n</div>")
|
|
||||||
else:
|
|
||||||
f.write(f"\n<div id='card_container_{n}'>\n{data}\n</div>")
|
|
||||||
endef
|
endef
|
||||||
|
export PYTHON_MAKE_IFRAME_HELL
|
||||||
export PYTHON_MAKE_JINJA2_RENDERED_CARD
|
cards/build/all.html: $(CARDS_DESTS) templates/all.html.j2
|
||||||
build/test_card_rendered.html: build/test_card.xml style.html.j2 build/style.css templates/card_header.html.j2
|
python3 -c "$$PYTHON_MAKE_IFRAME_HELL" $(CARDS_DESTS)
|
||||||
python3 -c "$$PYTHON_MAKE_JINJA2_RENDERED_CARD" "build/test_card.xml" "build/test_card_rendered.html"
|
|
||||||
|
|
||||||
export PYTHON_MAKE_JINJA2_RENDERED_CARD
|
|
||||||
cards/build/%.html: cards/%.yaml style.html.j2 build/style.css templates/card_header.html.j2
|
|
||||||
python3 -c "$$PYTHON_MAKE_JINJA2_RENDERED_CARD" $< $@
|
|
||||||
|
|
||||||
export PYTHON_MAKE_JINJA2_RENDERED_CARD
|
|
||||||
cards/build/%.x.html: cards/%.xml style.html.j2 build/style.css templates/card_header.html.j2
|
|
||||||
python3 -c "$$PYTHON_MAKE_JINJA2_RENDERED_CARD" $< $@
|
|
||||||
|
|
||||||
export PYTHON_MAKE_JINJA2_RENDERED_CARD
|
|
||||||
cards/build/all.html: $(CARDS) style.html.j2 build/style.css templates/card_header.html.j2
|
|
||||||
python3 -c "$$PYTHON_MAKE_JINJA2_RENDERED_CARD" ALL $@
|
|
||||||
|
|
||||||
|
|
||||||
define PYTHON_MAKE_CARD_XML
|
|
||||||
from jinja2 import Environment, FileSystemLoader
|
|
||||||
with open("test_card.yaml") as f: data = f.read()
|
|
||||||
with open("test_card.xml") as f: xml_data = f.read()
|
|
||||||
with open("build/test_card.xml", "w") as f:
|
|
||||||
f.write(Environment(
|
|
||||||
loader=FileSystemLoader('templates'))
|
|
||||||
.get_template('card.xml.j2')
|
|
||||||
.render(data=data, xml_data=xml_data))
|
|
||||||
endef
|
|
||||||
export PYTHON_MAKE_CARD_XML
|
|
||||||
build/test_card.xml: test_card.yaml test_card.xml templates/card.xml.j2
|
|
||||||
python3 -c "$$PYTHON_MAKE_CARD_XML"
|
|
||||||
|
|
||||||
|
|
||||||
define PYTHON_MAKE_STYLE_XSL
|
define PYTHON_MAKE_STYLE_XSL
|
||||||
|
@ -112,9 +52,9 @@ with open("build/style.css") as f: css_data = f.read()
|
||||||
with open("style.html.j2") as f: jinja_data = f.read()
|
with open("style.html.j2") as f: jinja_data = f.read()
|
||||||
with open("style.js") as f: js_data = f.read()
|
with open("style.js") as f: js_data = f.read()
|
||||||
env = Environment(
|
env = Environment(
|
||||||
trim_blocks=True,
|
trim_blocks = True,
|
||||||
lstrip_blocks=True,
|
lstrip_blocks = True,
|
||||||
loader=FileSystemLoader('templates'))
|
loader = FileSystemLoader('templates'))
|
||||||
card_header = env.get_template('card_header.html.j2').render()
|
card_header = env.get_template('card_header.html.j2').render()
|
||||||
with open("build/style.xsl", "w") as f:
|
with open("build/style.xsl", "w") as f:
|
||||||
f.write(
|
f.write(
|
||||||
|
@ -122,16 +62,24 @@ with open("build/style.xsl", "w") as f:
|
||||||
.render( css_data=css_data, jinja_data=jinja_data, js_data=js_data, card_header=card_header))
|
.render( css_data=css_data, jinja_data=jinja_data, js_data=js_data, card_header=card_header))
|
||||||
endef
|
endef
|
||||||
export PYTHON_MAKE_STYLE_XSL
|
export PYTHON_MAKE_STYLE_XSL
|
||||||
build/style.xsl: build/style.css templates/style.xsl.j2 templates/card_header.html.j2 style.html.j2 style.js
|
build/style.xsl: build/style.css templates/style.xsl.j2 templates/card_header.html.j2 style.html.j2 style.js build
|
||||||
python3 -c "$$PYTHON_MAKE_STYLE_XSL"
|
python3 -c "$$PYTHON_MAKE_STYLE_XSL"
|
||||||
|
|
||||||
|
|
||||||
define PYTHON_MAKE_SASS
|
define PYTHON_MAKE_SASS
|
||||||
import sass
|
import sass # libsass
|
||||||
with open("style.scss") as f:
|
with open("style.scss") as f:
|
||||||
with open("build/style.css", "w") as of:
|
with open("build/style.css", "w") as of:
|
||||||
of.write(sass.compile(string=f.read(), output_style="expanded"))
|
of.write(sass.compile(string=f.read(), output_style="expanded"))
|
||||||
endef
|
endef
|
||||||
export PYTHON_MAKE_SASS
|
export PYTHON_MAKE_SASS
|
||||||
build/style.css: style.scss
|
build/style.css: style.scss build
|
||||||
python3 -c "$$PYTHON_MAKE_SASS"
|
python3 -c "$$PYTHON_MAKE_SASS"
|
||||||
|
|
||||||
|
|
||||||
|
build:
|
||||||
|
mkdir -p build
|
||||||
|
|
||||||
|
|
||||||
|
cards/build:
|
||||||
|
mkdir -p cards/build
|
||||||
|
|
|
@ -1,28 +1,60 @@
|
||||||
<ability_card>
|
<ability_card>
|
||||||
|
|
||||||
<yaml_data>
|
<yaml_data>
|
||||||
figures:
|
style:
|
||||||
</yaml_data>
|
figures:
|
||||||
<playcost></playcost>
|
- name: https://ak3.picdn.net/shutterstock/videos/16986703/thumb/1.jpg?i10c=img.resize(height:160)
|
||||||
<cp></cp>
|
source: url
|
||||||
<duration></duration>
|
scale: 3
|
||||||
<power></power>
|
flip_x: true
|
||||||
<difficulty></difficulty>
|
rotation: -20
|
||||||
<symbol></symbol>
|
opacity: 0.6
|
||||||
<name>BASE</name>
|
- name: effects/uni-slim
|
||||||
<description></description>
|
source: img
|
||||||
<image>img:piuy/haha</image>
|
color: black
|
||||||
<range></range>
|
scale: 0.7
|
||||||
|
rotation: 10
|
||||||
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
offset: [-0.32, -0.08]
|
||||||
<component x="9" y="1" db_entry="🧩 Set Image"/>
|
- name: fencing
|
||||||
<component x="11" y="1" db_entry="🧩 Play Cost"/>
|
source: svg
|
||||||
<component x="11" y="5" db_entry="🧩 CP Cost"/>
|
color: false
|
||||||
<component x="12" y="4" db_entry="🧩 Duration"/>
|
scale: 0.75
|
||||||
<component x="11" y="3" db_entry="🧩 Power"/>
|
rotation: 8
|
||||||
<component x="11" y="4" db_entry="🧩 Difficulty"/>
|
offset: [-0.2, 0.0]
|
||||||
<component x="12" y="3" db_entry="🧩 Symbols"/>
|
- source: xml
|
||||||
<component x="12" y="5" db_entry="🧩 Range"/>
|
scale: 0.7
|
||||||
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
offset: [0.25, 0.1]
|
||||||
|
</yaml_data>
|
||||||
|
<name>Evasion</name>
|
||||||
|
<image>img:piuy/wave</image>
|
||||||
|
<playcost></playcost>
|
||||||
|
<cp>12</cp>
|
||||||
|
<duration>Permanent + discarded on death</duration>
|
||||||
|
<power>CUNNING + (0 to 2)</power>
|
||||||
|
<difficulty></difficulty>
|
||||||
|
<symbol>2 🎲</symbol>
|
||||||
|
<range></range>
|
||||||
|
<description>*Starts in your play area rather than your deck.*
|
||||||
|
|
||||||
|
Defensive Trigger: **take damage**
|
||||||
|
|
||||||
|
* You cannot activate this if *toppled*
|
||||||
|
* *If below or at 25% health:* gain +2 power to this ability.
|
||||||
|
* *Roll a D20*: On a (20-power of this ability) or more you dodge the attack *entirely*.
|
||||||
|
* An 8 or less is always a failure to dodge, regardless of how much you boost this ability.
|
||||||
|
* If you use this ability and roll an 8 or less, your Hit Points card will lose 2 HP for each HP lost on this attack.</description>
|
||||||
|
|
||||||
|
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
||||||
|
<component x="9" y="1" db_entry="🧩 Set Image"/>
|
||||||
|
<component x="11" y="1" db_entry="🧩 Play Cost"/>
|
||||||
|
<component x="11" y="5" db_entry="🧩 CP Cost"/>
|
||||||
|
<component x="12" y="4" db_entry="🧩 Duration"/>
|
||||||
|
<component x="11" y="3" db_entry="🧩 Power"/>
|
||||||
|
<component x="11" y="4" db_entry="🧩 Difficulty"/>
|
||||||
|
<component x="12" y="3" db_entry="🧩 Symbols"/>
|
||||||
|
<component x="12" y="5" db_entry="🧩 Range"/>
|
||||||
|
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
||||||
|
<component x="2" y="2" db_entry="🎲 Evasion"/>
|
||||||
|
<component x="2" y="3" db_entry="🎲 SOS"/>
|
||||||
|
|
||||||
</ability_card>
|
</ability_card>
|
||||||
|
|
|
@ -1,21 +1,76 @@
|
||||||
<ability_card>
|
<ability_card>
|
||||||
|
|
||||||
<yaml_data>
|
<yaml_data>
|
||||||
style: repertoire
|
|
||||||
figures:
|
figures:
|
||||||
|
- name: gi/open-folder
|
||||||
|
source: svg
|
||||||
|
scale: 5
|
||||||
|
color: Navy
|
||||||
|
- name: gi/wind-hole
|
||||||
|
source: svg
|
||||||
|
scale: 2.6
|
||||||
|
rotation: -40
|
||||||
|
color: CornflowerBlue
|
||||||
|
- name: gi/wind-hole
|
||||||
|
source: svg
|
||||||
|
scale: 1.8
|
||||||
|
color: DarkCyan
|
||||||
|
- name: gi/curly-wing
|
||||||
|
source: svg
|
||||||
|
scale: 0.9
|
||||||
|
rotation: -20
|
||||||
|
flip_x: true
|
||||||
|
offset: [0.55, 0.09]
|
||||||
|
color: white
|
||||||
|
opacity: 0.8
|
||||||
|
- name: gi/curly-wing
|
||||||
|
source: svg
|
||||||
|
scale: 0.9
|
||||||
|
rotation: 20
|
||||||
|
offset: [-0.55, 0.09]
|
||||||
|
color: white
|
||||||
|
opacity: 0.8
|
||||||
|
- name: gi/abstract-066
|
||||||
|
source: svg
|
||||||
|
scale: 0.98
|
||||||
|
color: DarkViolet
|
||||||
|
- name: gi/open-folder
|
||||||
|
source: svg
|
||||||
|
scale: 5
|
||||||
|
color: white
|
||||||
|
opacity: 0.3
|
||||||
|
- name: gi/abstract-066
|
||||||
|
source: svg
|
||||||
|
scale: 0.9
|
||||||
|
color: hotpink
|
||||||
|
- name: gi/handheld-fan
|
||||||
|
source: svg
|
||||||
|
scale: 0.72
|
||||||
|
offset: [0.0, 0.05]
|
||||||
|
rotation: 200
|
||||||
|
color: black
|
||||||
|
- name: gi/handheld-fan
|
||||||
|
source: svg
|
||||||
|
scale: 0.7
|
||||||
|
offset: [0.0, 0.05]
|
||||||
|
rotation: 200
|
||||||
|
color: crimson
|
||||||
</yaml_data>
|
</yaml_data>
|
||||||
<name>Repotoire: Talent</name>
|
|
||||||
<image>img:piuy/hapa</image>
|
|
||||||
<playcost></playcost>
|
<playcost></playcost>
|
||||||
<cp>10</cp>
|
<cp>10</cp>
|
||||||
<duration></duration>
|
<duration>Permanent + persists on death</duration>
|
||||||
<power></power>
|
<power>1</power>
|
||||||
<difficulty></difficulty>
|
<difficulty></difficulty>
|
||||||
<symbol></symbol>
|
<symbol>🌪️</symbol>
|
||||||
|
<name>Air Mana</name>
|
||||||
|
<image></image>
|
||||||
|
<description>*Persists on death*\
|
||||||
|
*Play Limit*: 1 / turn
|
||||||
|
|
||||||
|
* Mana Cards are untapped at the start of your turn
|
||||||
|
* Can be tapped for various reasons.
|
||||||
|
* Tap this card to add a power token to your Mana Shield. </description>
|
||||||
<range></range>
|
<range></range>
|
||||||
<description>Your song ability in play gains +1 popularity tokens.
|
|
||||||
</description>
|
|
||||||
<artistic_value>1</artistic_value>
|
|
||||||
|
|
||||||
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
||||||
<component x="9" y="1" db_entry="🧩 Set Image"/>
|
<component x="9" y="1" db_entry="🧩 Set Image"/>
|
||||||
|
@ -27,6 +82,7 @@ figures:
|
||||||
<component x="12" y="3" db_entry="🧩 Symbols"/>
|
<component x="12" y="3" db_entry="🧩 Symbols"/>
|
||||||
<component x="12" y="5" db_entry="🧩 Range"/>
|
<component x="12" y="5" db_entry="🧩 Range"/>
|
||||||
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
||||||
<component x="3" y="3" db_entry="🎺 Repertoire Card: Talent"/>
|
<component x="2" y="2" db_entry="🔮 Mana Card"/>
|
||||||
|
<component x="2" y="3" db_entry="🌪️ Air Mana"/>
|
||||||
|
|
||||||
</ability_card>
|
</ability_card>
|
||||||
|
|
|
@ -1,35 +1,24 @@
|
||||||
<ability_card>
|
<ability_card>
|
||||||
|
|
||||||
<yaml_data>
|
<yaml_data>
|
||||||
|
style: repertoire
|
||||||
figures:
|
figures:
|
||||||
- name: expression/explosion
|
- name: effects/uni-slim
|
||||||
source: img
|
source: img
|
||||||
- source: xml
|
scale: 1.8
|
||||||
offset:
|
|
||||||
- 0.2
|
|
||||||
- 0.0
|
|
||||||
</yaml_data>
|
</yaml_data>
|
||||||
<name>Raving Song</name>
|
<name>Repotoire: Exiting</name>
|
||||||
<image>img:piuy/sing</image>
|
<image>img:piuy/hapa</image>
|
||||||
<playcost>2 ACT,
|
<playcost></playcost>
|
||||||
not silenced,
|
<cp>10</cp>
|
||||||
Encore! card per turn</playcost>
|
<duration></duration>
|
||||||
<cp>65</cp>
|
<power></power>
|
||||||
<duration>1 + discarded on death</duration>
|
<difficulty></difficulty>
|
||||||
<power>(0 to 4) + TEC</power>
|
<symbol></symbol>
|
||||||
<difficulty>1</difficulty>
|
<range></range>
|
||||||
<symbol>🎲🎺</symbol>
|
<description>Your song ability in play gains +1 popularity tokens.</description>
|
||||||
<description>All units (friends and foes) increase any damage taken by 1 per popularity token on the song. This counts per damage source.
|
<artistic_value>1</artistic_value>
|
||||||
|
|
||||||
+2 power to this ability if you have the **High Ground** or **Flying** status effect.
|
|
||||||
|
|
||||||
When you play this song with another of your songs in play, you transition from your old song to your new song.
|
|
||||||
|
|
||||||
Your song does not affect non-sentient units</description>
|
|
||||||
|
|
||||||
<component x="2" y="2" db_entry="🎲 Mastery"/>
|
|
||||||
<component x="2" y="3" db_entry="🎺 Song"/>
|
|
||||||
<component x="4" y="3" db_entry="🎺 Staged Song"/>
|
|
||||||
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
||||||
<component x="9" y="1" db_entry="🧩 Set Image"/>
|
<component x="9" y="1" db_entry="🧩 Set Image"/>
|
||||||
<component x="11" y="1" db_entry="🧩 Play Cost"/>
|
<component x="11" y="1" db_entry="🧩 Play Cost"/>
|
||||||
|
@ -38,9 +27,8 @@ Your song does not affect non-sentient units</description>
|
||||||
<component x="11" y="3" db_entry="🧩 Power"/>
|
<component x="11" y="3" db_entry="🧩 Power"/>
|
||||||
<component x="11" y="4" db_entry="🧩 Difficulty"/>
|
<component x="11" y="4" db_entry="🧩 Difficulty"/>
|
||||||
<component x="12" y="3" db_entry="🧩 Symbols"/>
|
<component x="12" y="3" db_entry="🧩 Symbols"/>
|
||||||
|
<component x="12" y="5" db_entry="🧩 Range"/>
|
||||||
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
||||||
<component x="3" y="3" db_entry="🎺 Monster Mash"/>
|
<component x="3" y="3" db_entry="🎺 Repertoire Card: Talent"/>
|
||||||
<component x="2" y="4" db_entry="🎺 Raving Song"/>
|
|
||||||
<component x="5" y="3" db_entry="🎺 Encore!"/>
|
|
||||||
|
|
||||||
</ability_card>
|
</ability_card>
|
||||||
|
|
|
@ -2,28 +2,75 @@
|
||||||
|
|
||||||
<yaml_data>
|
<yaml_data>
|
||||||
figures:
|
figures:
|
||||||
- name: piuy/waiting
|
- name: gi/open-folder
|
||||||
source: img
|
source: svg
|
||||||
scale: 1.56
|
scale: 5
|
||||||
offset: [0.0, 0.02]
|
color: Navy
|
||||||
- name: effects/uni-black
|
- name: gi/wind-hole
|
||||||
source: img
|
source: svg
|
||||||
scale: 2.3
|
scale: 2.6
|
||||||
offset: [0.0, -0.13]
|
rotation: -40
|
||||||
|
flip_x: true
|
||||||
|
color: CornflowerBlue
|
||||||
|
- name: gi/wind-hole
|
||||||
|
source: svg
|
||||||
|
scale: 1.8
|
||||||
|
flip_y: true
|
||||||
|
color: DarkCyan
|
||||||
|
- name: gi/splash-2
|
||||||
|
source: svg
|
||||||
|
scale: 0.9
|
||||||
|
rotation: -20
|
||||||
|
flip_x: true
|
||||||
|
offset: [0.55, 0.09]
|
||||||
|
color: white
|
||||||
|
opacity: 0.8
|
||||||
|
- name: gi/splash-2
|
||||||
|
source: svg
|
||||||
|
scale: 0.9
|
||||||
|
rotation: 20
|
||||||
|
offset: [-0.55, 0.09]
|
||||||
|
color: white
|
||||||
|
opacity: 0.8
|
||||||
|
- name: gi/abstract-066
|
||||||
|
source: svg
|
||||||
|
scale: 0.98
|
||||||
|
color: cyan
|
||||||
|
opacity: 0.5
|
||||||
|
- name: gi/open-folder
|
||||||
|
source: svg
|
||||||
|
scale: 5
|
||||||
|
color: teal
|
||||||
|
opacity: 0.3
|
||||||
|
- name: gi/abstract-066
|
||||||
|
source: svg
|
||||||
|
scale: 0.9
|
||||||
|
color: "#78f"
|
||||||
|
- name: gi/water-splash
|
||||||
|
source: svg
|
||||||
|
scale: 0.75
|
||||||
|
offset: [0.0, 0.05]
|
||||||
|
color: blue
|
||||||
|
- name: gi/water-splash
|
||||||
|
source: svg
|
||||||
|
scale: 0.7
|
||||||
|
offset: [0.0, 0.05]
|
||||||
|
color: lightblue
|
||||||
</yaml_data>
|
</yaml_data>
|
||||||
<playcost>2 ACT</playcost>
|
<playcost></playcost>
|
||||||
<cp>15</cp>
|
<cp>10</cp>
|
||||||
<duration>Permanent + discards on your death</duration>
|
<duration>Permanent + persists on death</duration>
|
||||||
<power>0 or + 2 + TEC</power>
|
<power>1</power>
|
||||||
<difficulty>1</difficulty>
|
<difficulty></difficulty>
|
||||||
<symbol>🎲🎺</symbol>
|
<symbol>🌊</symbol>
|
||||||
<name>Study of Movement</name>
|
<name>Water Mana</name>
|
||||||
<description>Scout an enemy unit in visible range on the battlefield. If the scouted unit is a boss, discard this card.
|
|
||||||
If the scouted unit has cunning greater than this card, discard this card.
|
|
||||||
Otherwise, keep this card in your play area.
|
|
||||||
|
|
||||||
While this card is in your play area, your Imitation Dance cards can imitate any ability on the scouted monster card that does not do direct damage.</description>
|
|
||||||
<image></image>
|
<image></image>
|
||||||
|
<description>*Persists on death*\
|
||||||
|
*Play Limit*: 1 / turn
|
||||||
|
|
||||||
|
* Mana Cards are untapped at the start of your turn
|
||||||
|
* Can be tapped for various reasons.
|
||||||
|
* Tap this card to add **TWO** power token to your Mana Shield. </description>
|
||||||
<range></range>
|
<range></range>
|
||||||
|
|
||||||
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
||||||
|
@ -36,7 +83,7 @@ While this card is in your play area, your Imitation Dance cards can imitate any
|
||||||
<component x="12" y="3" db_entry="🧩 Symbols"/>
|
<component x="12" y="3" db_entry="🧩 Symbols"/>
|
||||||
<component x="12" y="5" db_entry="🧩 Range"/>
|
<component x="12" y="5" db_entry="🧩 Range"/>
|
||||||
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
||||||
<component x="2" y="2" db_entry="🎲 Mastery"/>
|
<component x="2" y="2" db_entry="🔮 Mana Card"/>
|
||||||
<component x="2" y="3" db_entry="🎺 Study of Movement"/>
|
<component x="2" y="3" db_entry="🌊 Water Mana"/>
|
||||||
|
|
||||||
</ability_card>
|
</ability_card>
|
||||||
|
|
|
@ -1,18 +1,44 @@
|
||||||
<ability_card>
|
<ability_card>
|
||||||
|
|
||||||
<yaml_data>
|
<yaml_data>
|
||||||
|
style: repertoire
|
||||||
figures:
|
figures:
|
||||||
- name: piuy/hi
|
- name: piuy/slipping
|
||||||
source: img
|
source: img
|
||||||
|
opacity: 0.3
|
||||||
|
scale: 2
|
||||||
|
rotation: 20
|
||||||
|
offset:
|
||||||
|
- -0.15
|
||||||
|
- 0.20
|
||||||
|
- name: google/android-4.3/banana
|
||||||
|
source: emoji
|
||||||
|
scale: 0.3
|
||||||
|
opacity: 0.8
|
||||||
|
flip_x: true
|
||||||
|
rotation: 120
|
||||||
|
offset:
|
||||||
|
- 0.30
|
||||||
|
- 0.33
|
||||||
|
- source: xml
|
||||||
|
rotation: -60
|
||||||
|
scale: 0.8
|
||||||
|
offset:
|
||||||
|
- -0.05
|
||||||
|
- -0.09
|
||||||
</yaml_data>
|
</yaml_data>
|
||||||
<name>Piuy!</name>
|
<name>Rep: Embarrasing Failure</name>
|
||||||
<cp>10</cp>
|
<image>img:piuy/hapo</image>
|
||||||
<symbol>⚔️</symbol>
|
<playcost></playcost>
|
||||||
<duration>Permanent + discarded on death</duration>
|
<cp>100</cp>
|
||||||
<playcost>0 ACT</playcost>
|
<duration></duration>
|
||||||
<power>3 BODY + ⚔️ LevelUp Benefit</power>
|
<power></power>
|
||||||
<difficulty></difficulty>
|
<difficulty></difficulty>
|
||||||
|
<symbol></symbol>
|
||||||
<range></range>
|
<range></range>
|
||||||
|
<description>Discard any song or dance cards in play (even if not yours!). End your turn. Gain the ""Dazed"" status effect.
|
||||||
|
Instead of discarding this card, turn it facedown until the end of combat. You won't play it again until the next combat.</description>
|
||||||
|
<artistic_value>-3</artistic_value>
|
||||||
|
|
||||||
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
||||||
<component x="9" y="1" db_entry="🧩 Set Image"/>
|
<component x="9" y="1" db_entry="🧩 Set Image"/>
|
||||||
|
@ -24,6 +50,6 @@ figures:
|
||||||
<component x="12" y="3" db_entry="🧩 Symbols"/>
|
<component x="12" y="3" db_entry="🧩 Symbols"/>
|
||||||
<component x="12" y="5" db_entry="🧩 Range"/>
|
<component x="12" y="5" db_entry="🧩 Range"/>
|
||||||
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
||||||
<component x="3" y="2" db_entry="⚔️ Hit Points"/>
|
<component x="2" y="2" db_entry="🎺 Repertoire Card: Embarrasing Failure"/>
|
||||||
|
|
||||||
</ability_card>
|
</ability_card>
|
||||||
|
|
|
@ -1,36 +1,23 @@
|
||||||
<ability_card>
|
<ability_card>
|
||||||
|
|
||||||
<yaml_data>
|
<yaml_data>
|
||||||
|
style: repertoire
|
||||||
figures:
|
figures:
|
||||||
|
- name: effects/uni-slim
|
||||||
- name: piuy/beetle
|
|
||||||
source: img
|
source: img
|
||||||
scale: 0.95
|
scale: 1.8
|
||||||
offset:
|
|
||||||
- 0.15
|
|
||||||
- 0.05
|
|
||||||
- name: google/android-7.0/flower-playing-cards
|
|
||||||
source: emoji
|
|
||||||
scale: 0.28
|
|
||||||
flip_x: true
|
|
||||||
rotation: 17
|
|
||||||
offset:
|
|
||||||
- -0.21
|
|
||||||
- -0.3
|
|
||||||
|
|
||||||
</yaml_data>
|
</yaml_data>
|
||||||
<playcost>ACT</playcost>
|
<name>Repotoire: Entralling</name>
|
||||||
<cp>10</cp>
|
<playcost></playcost>
|
||||||
|
<cp>25</cp>
|
||||||
<duration></duration>
|
<duration></duration>
|
||||||
<power>TEC</power>
|
<power></power>
|
||||||
<difficulty></difficulty>
|
<difficulty></difficulty>
|
||||||
<symbol>🎺</symbol>
|
<symbol></symbol>
|
||||||
<name>Draw Reportoire</name>
|
|
||||||
<description>*Release your inner star!*
|
|
||||||
|
|
||||||
Draw one card from your Repertoire Deck, do what it says on it. Then discard it.
|
|
||||||
</description>
|
|
||||||
<range></range>
|
<range></range>
|
||||||
|
<description>One of your song or dance abilities in play gains +1 duration tokens.</description>
|
||||||
|
<artistic_value>2</artistic_value>
|
||||||
|
<image>img:piuy/hapi</image>
|
||||||
|
|
||||||
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
||||||
<component x="9" y="1" db_entry="🧩 Set Image"/>
|
<component x="9" y="1" db_entry="🧩 Set Image"/>
|
||||||
|
@ -42,7 +29,6 @@ Draw one card from your Repertoire Deck, do what it says on it. Then discard it.
|
||||||
<component x="12" y="3" db_entry="🧩 Symbols"/>
|
<component x="12" y="3" db_entry="🧩 Symbols"/>
|
||||||
<component x="12" y="5" db_entry="🧩 Range"/>
|
<component x="12" y="5" db_entry="🧩 Range"/>
|
||||||
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
||||||
<component x="3" y="2" db_entry="⚔️ Learn Ability"/>
|
<component x="3" y="2" db_entry="🎺 Repertoire Card: Enthralling"/>
|
||||||
<component x="3" y="3" db_entry="🎺 Entertainer"/>
|
|
||||||
|
|
||||||
</ability_card>
|
</ability_card>
|
||||||
|
|
|
@ -0,0 +1,59 @@
|
||||||
|
<ability_card>
|
||||||
|
|
||||||
|
<yaml_data>
|
||||||
|
figures:
|
||||||
|
- name: effects/uni-white
|
||||||
|
source: img
|
||||||
|
scale: 1.5
|
||||||
|
color: "#bbb"
|
||||||
|
offset:
|
||||||
|
- -0.04
|
||||||
|
- -0
|
||||||
|
- source: xml
|
||||||
|
scale: 0.9
|
||||||
|
offset:
|
||||||
|
- 0
|
||||||
|
- 0
|
||||||
|
- name: clip/crowd2
|
||||||
|
source: img
|
||||||
|
scale: 1.8
|
||||||
|
offset:
|
||||||
|
- 0
|
||||||
|
- 0.3
|
||||||
|
</yaml_data>
|
||||||
|
<name>Raving Song</name>
|
||||||
|
<image>img:piuy/sing</image>
|
||||||
|
<playcost>2 ACT,
|
||||||
|
not silenced,
|
||||||
|
MOV,
|
||||||
|
Encore! card per turn</playcost>
|
||||||
|
<cp>81</cp>
|
||||||
|
<duration>1 + discarded on death</duration>
|
||||||
|
<power>(2 to 6) + TEC</power>
|
||||||
|
<difficulty>1</difficulty>
|
||||||
|
<symbol>🎲🎺</symbol>
|
||||||
|
<description>All units (friends and foes) increase any damage taken by 1 per popularity token on the song. This counts per damage source.
|
||||||
|
|
||||||
|
The song starts at 2 popularity tokens.\
|
||||||
|
+2 POWER if *flying* or *High Ground*
|
||||||
|
|
||||||
|
This may stack on existing performances.</description>
|
||||||
|
<mastery>-1</mastery>
|
||||||
|
|
||||||
|
<component x="2" y="2" db_entry="🎲 Mastery"/>
|
||||||
|
<component x="2" y="3" db_entry="🎺 Song"/>
|
||||||
|
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
||||||
|
<component x="9" y="1" db_entry="🧩 Set Image"/>
|
||||||
|
<component x="11" y="1" db_entry="🧩 Play Cost"/>
|
||||||
|
<component x="11" y="5" db_entry="🧩 CP Cost"/>
|
||||||
|
<component x="12" y="4" db_entry="🧩 Duration"/>
|
||||||
|
<component x="11" y="3" db_entry="🧩 Power"/>
|
||||||
|
<component x="11" y="4" db_entry="🧩 Difficulty"/>
|
||||||
|
<component x="12" y="3" db_entry="🧩 Symbols"/>
|
||||||
|
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
||||||
|
<component x="2" y="4" db_entry="🎺 Raving Song"/>
|
||||||
|
<component x="4" y="3" db_entry="🎺 Put effort into it"/>
|
||||||
|
<component x="5" y="3" db_entry="🎺 Staged Song"/>
|
||||||
|
<component x="3" y="3" db_entry="🎺 Encore!"/>
|
||||||
|
|
||||||
|
</ability_card>
|
|
@ -0,0 +1,75 @@
|
||||||
|
<ability_card>
|
||||||
|
|
||||||
|
<yaml_data>
|
||||||
|
figures:
|
||||||
|
- name: effects/uni-slim
|
||||||
|
source: img
|
||||||
|
scale: 2.7
|
||||||
|
- name: effects/uni-white
|
||||||
|
source: img
|
||||||
|
scale: 0.54
|
||||||
|
color: yellow
|
||||||
|
opacity: 60%
|
||||||
|
flip_x: true
|
||||||
|
rotation: 17
|
||||||
|
offset:
|
||||||
|
- -0.21
|
||||||
|
- -0.3
|
||||||
|
- source: xml
|
||||||
|
scale: 0.95
|
||||||
|
offset:
|
||||||
|
- 0.15
|
||||||
|
- 0.05
|
||||||
|
- name: google/android-7.0/flower-playing-cards
|
||||||
|
source: emoji
|
||||||
|
scale: 0.28
|
||||||
|
flip_x: true
|
||||||
|
rotation: 10
|
||||||
|
opacity: 0.7
|
||||||
|
offset:
|
||||||
|
- -0.24
|
||||||
|
- -0.29
|
||||||
|
- name: google/android-7.0/flower-playing-cards
|
||||||
|
source: emoji
|
||||||
|
scale: 0.28
|
||||||
|
flip_x: true
|
||||||
|
rotation: 17
|
||||||
|
offset:
|
||||||
|
- -0.21
|
||||||
|
- -0.3
|
||||||
|
</yaml_data>
|
||||||
|
<playcost>ACT</playcost>
|
||||||
|
<cp>54</cp>
|
||||||
|
<duration></duration>
|
||||||
|
<power>TEC + (-2 to 0)</power>
|
||||||
|
<difficulty>1</difficulty>
|
||||||
|
<symbol>🎺3 🎲</symbol>
|
||||||
|
<name>Draw Reportoire</name>
|
||||||
|
<description>*Release your inner star!*
|
||||||
|
|
||||||
|
Draw two cards from your repertoire deck, choose one,\
|
||||||
|
do what it says it, then discard both.
|
||||||
|
|
||||||
|
*Instead of playing this card, you may on your turn discard it from your hand to gain 2 SP.*
|
||||||
|
|
||||||
|
*If you are below or at 25% health, gain +2 power to this ability.*</description>
|
||||||
|
<range></range>
|
||||||
|
<image>img:piuy/beetle</image>
|
||||||
|
|
||||||
|
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
||||||
|
<component x="9" y="1" db_entry="🧩 Set Image"/>
|
||||||
|
<component x="11" y="1" db_entry="🧩 Play Cost"/>
|
||||||
|
<component x="11" y="5" db_entry="🧩 CP Cost"/>
|
||||||
|
<component x="12" y="4" db_entry="🧩 Duration"/>
|
||||||
|
<component x="11" y="3" db_entry="🧩 Power"/>
|
||||||
|
<component x="11" y="4" db_entry="🧩 Difficulty"/>
|
||||||
|
<component x="12" y="3" db_entry="🧩 Symbols"/>
|
||||||
|
<component x="12" y="5" db_entry="🧩 Range"/>
|
||||||
|
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
||||||
|
<component x="3" y="3" db_entry="🎺 Entertainer"/>
|
||||||
|
<component x="3" y="2" db_entry="🎲 Skilled"/>
|
||||||
|
<component x="4" y="3" db_entry="🎺 Backup Act"/>
|
||||||
|
<component x="4" y="2" db_entry="🎲 Quick Shot"/>
|
||||||
|
<component x="5" y="2" db_entry="🎲 SOS"/>
|
||||||
|
|
||||||
|
</ability_card>
|
|
@ -0,0 +1,46 @@
|
||||||
|
<ability_card>
|
||||||
|
|
||||||
|
<yaml_data>
|
||||||
|
figures:
|
||||||
|
- name: piuy/waiting
|
||||||
|
source: img
|
||||||
|
scale: 1.56
|
||||||
|
offset: [0.0, 0.02]
|
||||||
|
- name: effects/uni-black
|
||||||
|
source: img
|
||||||
|
scale: 2.3
|
||||||
|
offset: [0.0, -0.13]
|
||||||
|
- name: clip/glasses1
|
||||||
|
source: img
|
||||||
|
scale: 0.6
|
||||||
|
offset: [-0.01, -0.15]
|
||||||
|
</yaml_data>
|
||||||
|
<playcost>2 ACT</playcost>
|
||||||
|
<cp>15</cp>
|
||||||
|
<duration>Permanent + discards on your death</duration>
|
||||||
|
<power>0 or + 2 + TEC</power>
|
||||||
|
<difficulty>1</difficulty>
|
||||||
|
<symbol>🎲🎺</symbol>
|
||||||
|
<name>Study of Movement</name>
|
||||||
|
<description>Scout an enemy unit in visible range on the battlefield. If the scouted unit is a boss, discard this card.
|
||||||
|
If the scouted unit has cunning greater than this card, discard this card.
|
||||||
|
Otherwise, keep this card in your play area.
|
||||||
|
|
||||||
|
While this card is in your play area, your Imitation Dance cards can imitate any ability on the scouted monster card that does not do direct damage.</description>
|
||||||
|
<image></image>
|
||||||
|
<range></range>
|
||||||
|
|
||||||
|
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
||||||
|
<component x="9" y="1" db_entry="🧩 Set Image"/>
|
||||||
|
<component x="11" y="1" db_entry="🧩 Play Cost"/>
|
||||||
|
<component x="11" y="5" db_entry="🧩 CP Cost"/>
|
||||||
|
<component x="12" y="4" db_entry="🧩 Duration"/>
|
||||||
|
<component x="11" y="3" db_entry="🧩 Power"/>
|
||||||
|
<component x="11" y="4" db_entry="🧩 Difficulty"/>
|
||||||
|
<component x="12" y="3" db_entry="🧩 Symbols"/>
|
||||||
|
<component x="12" y="5" db_entry="🧩 Range"/>
|
||||||
|
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
||||||
|
<component x="2" y="2" db_entry="🎲 Mastery"/>
|
||||||
|
<component x="2" y="3" db_entry="🎺 Study of Movement"/>
|
||||||
|
|
||||||
|
</ability_card>
|
|
@ -0,0 +1,70 @@
|
||||||
|
<ability_card>
|
||||||
|
|
||||||
|
<yaml_data>
|
||||||
|
figures:
|
||||||
|
- name: https://i.imgur.com/TtzXwb9.png
|
||||||
|
source: url
|
||||||
|
scale: 0.5
|
||||||
|
rotation: 20
|
||||||
|
offset: [0.56, -0.23]
|
||||||
|
- name: https://i.imgur.com/zx97is1.png
|
||||||
|
source: url
|
||||||
|
scale: 0.4
|
||||||
|
rotation: -20
|
||||||
|
offset: [-0.57, -0.25]
|
||||||
|
- source: xml
|
||||||
|
rotation: 8
|
||||||
|
offset: [-0.05, 0.04]
|
||||||
|
- source: url
|
||||||
|
name: "https://www.vippng.com/png/full/93-933790_green-colored-smoke-fog-light-green-smoke-transparent.png"
|
||||||
|
offset: [1, 0.1]
|
||||||
|
rotation: -80
|
||||||
|
scale: 1.8
|
||||||
|
- source: url
|
||||||
|
name: "https://www.vippng.com/png/full/93-933790_green-colored-smoke-fog-light-green-smoke-transparent.png"
|
||||||
|
offset: [-1, 0.1]
|
||||||
|
rotation: 80
|
||||||
|
flip_x: true
|
||||||
|
scale: 1.8
|
||||||
|
color: purple
|
||||||
|
</yaml_data>
|
||||||
|
<playcost>Limit: once per your turn,
|
||||||
|
2 ACT</playcost>
|
||||||
|
<cp>30</cp>
|
||||||
|
<duration></duration>
|
||||||
|
<power>(3 to 5) + CUNNING + 0 or</power>
|
||||||
|
<difficulty>(1 to 9)</difficulty>
|
||||||
|
<symbol>🎲🎺⚔️</symbol>
|
||||||
|
<name>Vicious Mockery</name>
|
||||||
|
<description>Mock a target that has your attention mercilessly, dealing PSYCHIC damage.
|
||||||
|
You must come up with the mockery in real life.
|
||||||
|
Gain up to 8 less difficulty on the attack as decided by the GM and other party members.
|
||||||
|
|
||||||
|
Consume 3 Proc symbols on Hit Dice when attacking with this card to
|
||||||
|
increase the power of this ability by 3
|
||||||
|
|
||||||
|
|
||||||
|
If you fail to hit with this attack, return this card to your collection.
|
||||||
|
|
||||||
|
</description>
|
||||||
|
<image>img:piuy/sick</image>
|
||||||
|
<range></range>
|
||||||
|
<mastery>-1</mastery>
|
||||||
|
|
||||||
|
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
||||||
|
<component x="9" y="1" db_entry="🧩 Set Image"/>
|
||||||
|
<component x="11" y="1" db_entry="🧩 Play Cost"/>
|
||||||
|
<component x="11" y="5" db_entry="🧩 CP Cost"/>
|
||||||
|
<component x="12" y="4" db_entry="🧩 Duration"/>
|
||||||
|
<component x="11" y="3" db_entry="🧩 Power"/>
|
||||||
|
<component x="11" y="4" db_entry="🧩 Difficulty"/>
|
||||||
|
<component x="12" y="3" db_entry="🧩 Symbols"/>
|
||||||
|
<component x="12" y="5" db_entry="🧩 Range"/>
|
||||||
|
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
||||||
|
<component x="3" y="2" db_entry="🎲 Mastery"/>
|
||||||
|
<component x="3" y="3" db_entry="🎺 Vicious Mockery"/>
|
||||||
|
<component x="3" y="4" db_entry="⚔️ Attack"/>
|
||||||
|
<component x="4" y="3" db_entry="🎺 Roleplaying it"/>
|
||||||
|
<component x="4" y="4" db_entry="⚔️ Proc: Criticals"/>
|
||||||
|
|
||||||
|
</ability_card>
|
|
@ -0,0 +1,69 @@
|
||||||
|
<ability_card>
|
||||||
|
|
||||||
|
<yaml_data>
|
||||||
|
figures:
|
||||||
|
- name: gi/full-folder
|
||||||
|
source: svg
|
||||||
|
scale: 4
|
||||||
|
color: "#300"
|
||||||
|
opacity: 0.4
|
||||||
|
- name: gi/crossed-chains
|
||||||
|
source: svg
|
||||||
|
scale: 2
|
||||||
|
offset: [-0.1, -0.2]
|
||||||
|
color: white
|
||||||
|
opacity: 0.3
|
||||||
|
- name: gi/padlock
|
||||||
|
source: svg
|
||||||
|
color: "#959"
|
||||||
|
- name: gi/grab
|
||||||
|
source: svg
|
||||||
|
rotation: -70
|
||||||
|
scale: 0.5
|
||||||
|
offset: [-0.56, 0.2]
|
||||||
|
color: "#938"
|
||||||
|
- name: gi/grab
|
||||||
|
source: svg
|
||||||
|
rotation: 70
|
||||||
|
flip_x: true
|
||||||
|
scale: 0.5
|
||||||
|
offset: [0.56, 0.2]
|
||||||
|
color: "#839"
|
||||||
|
- source: xml
|
||||||
|
scale: 0.5
|
||||||
|
offset: [0, -.18]
|
||||||
|
rotation: 2
|
||||||
|
</yaml_data>
|
||||||
|
<playcost>2 MOV</playcost>
|
||||||
|
<cp>45</cp>
|
||||||
|
<power>(0 to 5) + TEC</power>
|
||||||
|
<difficulty>1</difficulty>
|
||||||
|
<symbol>🎲🎺</symbol>
|
||||||
|
<name>Pas de Deux</name>
|
||||||
|
<description>* Duration: 1 per 3 power of this ability
|
||||||
|
|
||||||
|
+3 power if you have the *High Ground* or *Flying* when playing this card.
|
||||||
|
|
||||||
|
*Grab onto another unit at range 1, and dance with them.
|
||||||
|
While this card is in play, that unit cannot move away from you, but can otherwise attack normally.*
|
||||||
|
|
||||||
|
You move together, rotation costs 1 move.</description>
|
||||||
|
<image>img:piuy/twirl</image>
|
||||||
|
<range></range>
|
||||||
|
<mastery>-1</mastery>
|
||||||
|
|
||||||
|
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
||||||
|
<component x="9" y="1" db_entry="🧩 Set Image"/>
|
||||||
|
<component x="11" y="1" db_entry="🧩 Play Cost"/>
|
||||||
|
<component x="11" y="5" db_entry="🧩 CP Cost"/>
|
||||||
|
<component x="11" y="3" db_entry="🧩 Power"/>
|
||||||
|
<component x="11" y="4" db_entry="🧩 Difficulty"/>
|
||||||
|
<component x="12" y="3" db_entry="🧩 Symbols"/>
|
||||||
|
<component x="12" y="5" db_entry="🧩 Range"/>
|
||||||
|
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
||||||
|
<component x="2" y="2" db_entry="🎲 Mastery"/>
|
||||||
|
<component x="2" y="3" db_entry="🎺 Dance"/>
|
||||||
|
<component x="2" y="4" db_entry="🎺 Pas de Deux"/>
|
||||||
|
<component x="3" y="3" db_entry="🎺 Staged Dance"/>
|
||||||
|
|
||||||
|
</ability_card>
|
|
@ -0,0 +1,73 @@
|
||||||
|
<ability_card>
|
||||||
|
|
||||||
|
<yaml_data>
|
||||||
|
figures:
|
||||||
|
- name: bg/cave
|
||||||
|
source: img
|
||||||
|
scale: 2
|
||||||
|
opacity: 0.9
|
||||||
|
- name: effects/uni-white
|
||||||
|
source: img
|
||||||
|
color: "#ffc"
|
||||||
|
offset: [0.3, 0]
|
||||||
|
scale: 1.2
|
||||||
|
opacity: 0.4
|
||||||
|
- name: "https://i.ya-webdesign.com/images/create-png-with-transparent-background-3.png"
|
||||||
|
source: url
|
||||||
|
offset: [0.3, 0]
|
||||||
|
scale: 1.2
|
||||||
|
color: white
|
||||||
|
- name: "https://i.ya-webdesign.com/images/create-png-with-transparent-background-3.png"
|
||||||
|
source: url
|
||||||
|
offset: [0.3, 0]
|
||||||
|
scale: 1.2
|
||||||
|
opacity: 0.9
|
||||||
|
- name: gi/lightning-trio
|
||||||
|
source: svg
|
||||||
|
offset: [0.0, -0.3]
|
||||||
|
color: yellow
|
||||||
|
scale: 0.35
|
||||||
|
rotation: 170
|
||||||
|
- source: xml
|
||||||
|
scale: 0.7
|
||||||
|
offset: [-0.35, 0.15]
|
||||||
|
</yaml_data>
|
||||||
|
<playcost>2 ACT,
|
||||||
|
Not Silenced</playcost>
|
||||||
|
<cp>24</cp>
|
||||||
|
<duration>3 + discards on your death</duration>
|
||||||
|
<power>MAG+(0 to 1)+🌪LV</power>
|
||||||
|
<difficulty>1</difficulty>
|
||||||
|
<symbol>🔮🌪️🎲⚔️</symbol>
|
||||||
|
<name>Generator</name>
|
||||||
|
<image>img:piuy/haha</image>
|
||||||
|
<range>1</range>
|
||||||
|
<description>* 2 cooldown
|
||||||
|
|
||||||
|
*Target is surrounded by an electromagnetic field.*\
|
||||||
|
*+1 against *flying* targets*
|
||||||
|
|
||||||
|
* POWER must exceed CUNNING against hostile targets
|
||||||
|
* *For each MOV spent by targets*: gain 1 kinetic token on this card, up to POWER tokens.
|
||||||
|
* You may trade 6 kinetic tokens for +1 ACT this turn.
|
||||||
|
* Targets gain +1 Range on ranged abilities</description>
|
||||||
|
<mastery>-1</mastery>
|
||||||
|
|
||||||
|
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
||||||
|
<component x="9" y="1" db_entry="🧩 Set Image"/>
|
||||||
|
<component x="11" y="1" db_entry="🧩 Play Cost"/>
|
||||||
|
<component x="11" y="5" db_entry="🧩 CP Cost"/>
|
||||||
|
<component x="12" y="4" db_entry="🧩 Duration"/>
|
||||||
|
<component x="11" y="4" db_entry="🧩 Difficulty"/>
|
||||||
|
<component x="12" y="3" db_entry="🧩 Symbols"/>
|
||||||
|
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
||||||
|
<component x="2" y="3" db_entry="🔮 Cast Magic"/>
|
||||||
|
<component x="2" y="4" db_entry="🔮 Touch"/>
|
||||||
|
<component x="2" y="5" db_entry="🌪️ Generator"/>
|
||||||
|
<component x="3" y="5" db_entry="🌪️ Speedster"/>
|
||||||
|
<component x="4" y="5" db_entry="🌪️ Projectile Carry"/>
|
||||||
|
<component x="3" y="3" db_entry="🌪️ Strong vs Flying"/>
|
||||||
|
<component x="2" y="2" db_entry="🎲 Mastery"/>
|
||||||
|
<component x="4" y="3" db_entry="⚔️ Cooldown"/>
|
||||||
|
|
||||||
|
</ability_card>
|
|
@ -0,0 +1,65 @@
|
||||||
|
<ability_card>
|
||||||
|
|
||||||
|
<yaml_data>
|
||||||
|
figures:
|
||||||
|
- name: bg/rays
|
||||||
|
source: img
|
||||||
|
scale: 2
|
||||||
|
opacity: 0.2
|
||||||
|
rotation: 30
|
||||||
|
- name: gi/beveled-star
|
||||||
|
source: svg
|
||||||
|
color: "#dad"
|
||||||
|
scale: 1.2
|
||||||
|
- name: gi/beveled-star
|
||||||
|
source: svg
|
||||||
|
color: "#aaf"
|
||||||
|
rotation: 90
|
||||||
|
- source: xml
|
||||||
|
scale: 0.5
|
||||||
|
rotation: 15
|
||||||
|
- name: gi/perpendicular-rings
|
||||||
|
source: svg
|
||||||
|
color: "#ee0"
|
||||||
|
rotation: 40
|
||||||
|
scale: 0.9
|
||||||
|
</yaml_data>
|
||||||
|
<playcost>2 ACT,
|
||||||
|
Not Silenced</playcost>
|
||||||
|
<cp>90</cp>
|
||||||
|
<duration></duration>
|
||||||
|
<power>(0 to 3) + MAG</power>
|
||||||
|
<difficulty>1</difficulty>
|
||||||
|
<symbol>🎲🔮🌪️</symbol>
|
||||||
|
<name>Teleport</name>
|
||||||
|
<image>img:piuy/cute</image>
|
||||||
|
<range>3 + X</range>
|
||||||
|
<description>Add 1 Power vs *flying* targets.\
|
||||||
|
Add Power to *spellrange*.
|
||||||
|
|
||||||
|
* Teleport to an empty square in range less or equal to the spellrange of this ability. Does not consume MOV.
|
||||||
|
* Triggers no movement or ability reactions
|
||||||
|
* You must have a line-of-sight to the target destination.
|
||||||
|
* You may teleport to the location of a friendly unit. If you do, the two of you swaps places. Permission required.
|
||||||
|
</description>
|
||||||
|
<mastery>-1</mastery>
|
||||||
|
|
||||||
|
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
||||||
|
<component x="9" y="1" db_entry="🧩 Set Image"/>
|
||||||
|
<component x="11" y="1" db_entry="🧩 Play Cost"/>
|
||||||
|
<component x="11" y="5" db_entry="🧩 CP Cost"/>
|
||||||
|
<component x="12" y="4" db_entry="🧩 Duration"/>
|
||||||
|
<component x="11" y="3" db_entry="🧩 Power"/>
|
||||||
|
<component x="11" y="4" db_entry="🧩 Difficulty"/>
|
||||||
|
<component x="12" y="3" db_entry="🧩 Symbols"/>
|
||||||
|
<component x="12" y="5" db_entry="🧩 Range"/>
|
||||||
|
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
||||||
|
<component x="2" y="2" db_entry="🎲 Mastery"/>
|
||||||
|
<component x="2" y="3" db_entry="🔮 Cast Magic"/>
|
||||||
|
<component x="2" y="4" db_entry="🌪️ Teleport"/>
|
||||||
|
<component x="3" y="4" db_entry="🌪️ Greater Teleport"/>
|
||||||
|
<component x="3" y="3" db_entry="🌪️ Strong vs Flying"/>
|
||||||
|
<component x="4" y="4" db_entry="🌪️ Swap"/>
|
||||||
|
<component x="5" y="4" db_entry="🌪️ Blink"/>
|
||||||
|
|
||||||
|
</ability_card>
|
|
@ -0,0 +1,48 @@
|
||||||
|
<ability_card>
|
||||||
|
|
||||||
|
<yaml_data>
|
||||||
|
style: repertoire
|
||||||
|
figures:
|
||||||
|
- name: clip/falling-money-2
|
||||||
|
source: img
|
||||||
|
offset: [0.0, -0.4]
|
||||||
|
- name: effects/uni-slim
|
||||||
|
source: img
|
||||||
|
offset: [0.0, 0.1]
|
||||||
|
scale: 1.6
|
||||||
|
color: lightgray
|
||||||
|
rotation: 10
|
||||||
|
- name: effects/uni-slim
|
||||||
|
source: img
|
||||||
|
offset: [0.0, 0.1]
|
||||||
|
scale: 1.1
|
||||||
|
- source: xml
|
||||||
|
</yaml_data>
|
||||||
|
<name>Repotoire: Superstar</name>
|
||||||
|
<image>img:piuy/hapa</image>
|
||||||
|
<playcost></playcost>
|
||||||
|
<cp>100</cp>
|
||||||
|
<duration></duration>
|
||||||
|
<power></power>
|
||||||
|
<difficulty></difficulty>
|
||||||
|
<symbol></symbol>
|
||||||
|
<range></range>
|
||||||
|
<description>Your Song ability in play gains +3 popularity tokens.
|
||||||
|
If this is not your first Song or Dance played this combat, it gains another +2 popularity tokens.
|
||||||
|
|
||||||
|
*Instead of discarding:* Set this card aside until end of combat</description>
|
||||||
|
<artistic_value>3</artistic_value>
|
||||||
|
|
||||||
|
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
||||||
|
<component x="9" y="1" db_entry="🧩 Set Image"/>
|
||||||
|
<component x="11" y="1" db_entry="🧩 Play Cost"/>
|
||||||
|
<component x="11" y="5" db_entry="🧩 CP Cost"/>
|
||||||
|
<component x="12" y="4" db_entry="🧩 Duration"/>
|
||||||
|
<component x="11" y="3" db_entry="🧩 Power"/>
|
||||||
|
<component x="11" y="4" db_entry="🧩 Difficulty"/>
|
||||||
|
<component x="12" y="3" db_entry="🧩 Symbols"/>
|
||||||
|
<component x="12" y="5" db_entry="🧩 Range"/>
|
||||||
|
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
||||||
|
<component x="3" y="3" db_entry="🎺 Repertoire Card: Superstar"/>
|
||||||
|
|
||||||
|
</ability_card>
|
|
@ -0,0 +1,64 @@
|
||||||
|
<ability_card>
|
||||||
|
|
||||||
|
<yaml_data>
|
||||||
|
figures:
|
||||||
|
- name: bg/skies
|
||||||
|
source: img
|
||||||
|
scale: 2
|
||||||
|
opacity: 0.7
|
||||||
|
- source: svg
|
||||||
|
name: gi/magic-swirl
|
||||||
|
color: purple
|
||||||
|
opacity: 0.3
|
||||||
|
scale: 0.9
|
||||||
|
offset: [0.0, 0.05]
|
||||||
|
- source: svg
|
||||||
|
name: gi/big-egg
|
||||||
|
color: black
|
||||||
|
opacity: 0.16
|
||||||
|
rotation: 70
|
||||||
|
scale: 0.5
|
||||||
|
offset: [0.0, 0.58]
|
||||||
|
- source: xml
|
||||||
|
scale: 0.8
|
||||||
|
offset: [0.0, 0.1]
|
||||||
|
- name: "https://i.pinimg.com/originals/53/a7/63/53a763e3cc4ce067ff02ad5b4e09afeb.png"
|
||||||
|
source: url
|
||||||
|
scale: 2
|
||||||
|
color: "#35a"
|
||||||
|
</yaml_data>
|
||||||
|
<playcost>2 ACT</playcost>
|
||||||
|
<cp>33</cp>
|
||||||
|
<duration>3 + discards on your death</duration>
|
||||||
|
<power>MAG + (-3 to -1)</power>
|
||||||
|
<difficulty>(2 to 4)</difficulty>
|
||||||
|
<symbol>🔮🎲🌪️🌊</symbol>
|
||||||
|
<name>Rain conduit</name>
|
||||||
|
<image>img:piuy/ba</image>
|
||||||
|
<range>102</range>
|
||||||
|
<description>*Generator on each grid cell in the battlefield.
|
||||||
|
Roll for each outdoor target. You manipulate time and space using the target as a multidimensional nexus.*
|
||||||
|
|
||||||
|
* 🌊 reduces difficulty by 1, 🌊 + 🌪 reduces by 2 total
|
||||||
|
* Future spells can always consider this target "within spellrange"
|
||||||
|
* For hostile targets, POWER must exceed the CUNNING
|
||||||
|
* Gain 1 focus token on your Mana shield card. They are lost whenever it is discarded</description>
|
||||||
|
<mastery>-1</mastery>
|
||||||
|
|
||||||
|
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
||||||
|
<component x="9" y="1" db_entry="🧩 Set Image"/>
|
||||||
|
<component x="11" y="1" db_entry="🧩 Play Cost"/>
|
||||||
|
<component x="11" y="5" db_entry="🧩 CP Cost"/>
|
||||||
|
<component x="12" y="4" db_entry="🧩 Duration"/>
|
||||||
|
<component x="11" y="3" db_entry="🧩 Power"/>
|
||||||
|
<component x="11" y="4" db_entry="🧩 Difficulty"/>
|
||||||
|
<component x="12" y="3" db_entry="🧩 Symbols"/>
|
||||||
|
<component x="12" y="5" db_entry="🧩 Range"/>
|
||||||
|
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
||||||
|
<component x="2" y="3" db_entry="🔮 Cast Magic"/>
|
||||||
|
<component x="2" y="2" db_entry="🎲 Mastery"/>
|
||||||
|
<component x="2" y="4" db_entry="🌊 Rain"/>
|
||||||
|
<component x="2" y="5" db_entry="🌪️ Conduitivity"/>
|
||||||
|
<component x="3" y="3" db_entry="🌊 Build Focus"/>
|
||||||
|
|
||||||
|
</ability_card>
|
|
@ -0,0 +1,80 @@
|
||||||
|
<ability_card>
|
||||||
|
|
||||||
|
<yaml_data>
|
||||||
|
figures:
|
||||||
|
- source: img
|
||||||
|
name: bg/ray
|
||||||
|
scale: 2
|
||||||
|
color: yellow
|
||||||
|
- source: img
|
||||||
|
name: bg/ray
|
||||||
|
scale: 2
|
||||||
|
opacity: 0.7
|
||||||
|
- source: xml
|
||||||
|
scale: 0.8
|
||||||
|
offset: [-0.33, 0.04]
|
||||||
|
opacity: 0.5
|
||||||
|
- source: xml
|
||||||
|
scale: 0.8
|
||||||
|
offset: [-0.21, 0.00]
|
||||||
|
opacity: 0.5
|
||||||
|
- source: xml
|
||||||
|
scale: 0.8
|
||||||
|
offset: [-0.1, -0.02]
|
||||||
|
opacity: 0.5
|
||||||
|
- source: xml
|
||||||
|
scale: 0.8
|
||||||
|
offset: [0.0, -0.04]
|
||||||
|
opacity: 0.5
|
||||||
|
- source: xml
|
||||||
|
scale: 0.8
|
||||||
|
offset: [0.1, -0.02]
|
||||||
|
- source: xml
|
||||||
|
scale: 0.8
|
||||||
|
offset: [0.21, 0.00]
|
||||||
|
opacity: 0.5
|
||||||
|
- source: xml
|
||||||
|
scale: 0.8
|
||||||
|
offset: [0.33, 0.04]
|
||||||
|
opacity: 0.5
|
||||||
|
</yaml_data>
|
||||||
|
<playcost>2 ACT</playcost>
|
||||||
|
<cp>169</cp>
|
||||||
|
<duration>3 + discarded on death</duration>
|
||||||
|
<power>(-1 to 2) + MAG</power>
|
||||||
|
<difficulty>1</difficulty>
|
||||||
|
<symbol>🎲🔮🌪️</symbol>
|
||||||
|
<name>Spacewarp</name>
|
||||||
|
<image>img:piuy/dance</image>
|
||||||
|
<range>4</range>
|
||||||
|
<description>Add this Spell Zone to the terrain on a target grid cell
|
||||||
|
|
||||||
|
* If target has Conduitivity cast by you: +1 POWER
|
||||||
|
* Between two chain targets,
|
||||||
|
draw line between centers, hit every grid cell touched by line. "
|
||||||
|
|
||||||
|
**Enforced Trigger:** *A unit exist in the zone.*
|
||||||
|
While in this zone, you are always considered in melee range to all units in a connected gravity zone.</description>
|
||||||
|
<mastery>-1</mastery>
|
||||||
|
|
||||||
|
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
||||||
|
<component x="9" y="1" db_entry="🧩 Set Image"/>
|
||||||
|
<component x="11" y="1" db_entry="🧩 Play Cost"/>
|
||||||
|
<component x="11" y="5" db_entry="🧩 CP Cost"/>
|
||||||
|
<component x="12" y="4" db_entry="🧩 Duration"/>
|
||||||
|
<component x="11" y="3" db_entry="🧩 Power"/>
|
||||||
|
<component x="11" y="4" db_entry="🧩 Difficulty"/>
|
||||||
|
<component x="12" y="3" db_entry="🧩 Symbols"/>
|
||||||
|
<component x="12" y="5" db_entry="🧩 Range"/>
|
||||||
|
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
||||||
|
<component x="2" y="2" db_entry="🎲 Mastery"/>
|
||||||
|
<component x="2" y="5" db_entry="🔮 Create Zone"/>
|
||||||
|
<component x="2" y="3" db_entry="🔮 Cast Magic"/>
|
||||||
|
<component x="2" y="4" db_entry="🔮 Touch"/>
|
||||||
|
<component x="2" y="6" db_entry="🌪️ Gravity Zone"/>
|
||||||
|
<component x="3" y="6" db_entry="🌪️ Spacewarp"/>
|
||||||
|
<component x="4" y="3" db_entry="🌪️ Chain"/>
|
||||||
|
<component x="5" y="3" db_entry="🌪️ Arc"/>
|
||||||
|
<component x="3" y="3" db_entry="🌪️ Power Conduit"/>
|
||||||
|
|
||||||
|
</ability_card>
|
|
@ -0,0 +1,75 @@
|
||||||
|
<ability_card>
|
||||||
|
|
||||||
|
<yaml_data>
|
||||||
|
figures:
|
||||||
|
- source: img
|
||||||
|
name: bg/castle
|
||||||
|
scale: 2
|
||||||
|
color: "#202"
|
||||||
|
- source: img
|
||||||
|
name: bg/castle
|
||||||
|
scale: 4
|
||||||
|
offset: [0, -0.8]
|
||||||
|
opacity: 0.8
|
||||||
|
- source: xml
|
||||||
|
scale: 0.8
|
||||||
|
offset: [0.6, 0]
|
||||||
|
rotation: -20
|
||||||
|
- source: xml
|
||||||
|
scale: 0.8
|
||||||
|
offset: [0.6, 0]
|
||||||
|
rotation: -20
|
||||||
|
opacity: 0.1
|
||||||
|
color: "#8b0"
|
||||||
|
- source: img
|
||||||
|
name: clip/fire
|
||||||
|
color: "#666"
|
||||||
|
scale: 3.2
|
||||||
|
flip_x: true
|
||||||
|
offset: [0.0, -0.2]
|
||||||
|
- source: img
|
||||||
|
name: clip/fire
|
||||||
|
color: darkgray
|
||||||
|
scale: 3
|
||||||
|
offset: [0.0, -0.2]
|
||||||
|
</yaml_data>
|
||||||
|
<playcost>2 ACT,
|
||||||
|
Not Silenced</playcost>
|
||||||
|
<cp>68</cp>
|
||||||
|
<duration>3 + discarded on death</duration>
|
||||||
|
<power>(-1 to 2) + MAG</power>
|
||||||
|
<difficulty>1</difficulty>
|
||||||
|
<symbol>🎲🔮🌊</symbol>
|
||||||
|
<name>Smokescreen</name>
|
||||||
|
<image>img:piuy/wave</image>
|
||||||
|
<range>4</range>
|
||||||
|
<description>Add this Spell Zone to the terrain on a target grid cell
|
||||||
|
|
||||||
|
* If target has Conduitivity cast by you: +1 POWER
|
||||||
|
* Between two chain targets,
|
||||||
|
draw line between centers, hit every grid cell touched by line. "
|
||||||
|
|
||||||
|
**Enforced Trigger:** *A unit exist in the zone.*
|
||||||
|
While in this zone, you are always considered in melee range to all units in a connected gravity zone.</description>
|
||||||
|
<mastery>-1</mastery>
|
||||||
|
|
||||||
|
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
||||||
|
<component x="9" y="1" db_entry="🧩 Set Image"/>
|
||||||
|
<component x="11" y="1" db_entry="🧩 Play Cost"/>
|
||||||
|
<component x="11" y="5" db_entry="🧩 CP Cost"/>
|
||||||
|
<component x="12" y="4" db_entry="🧩 Duration"/>
|
||||||
|
<component x="11" y="3" db_entry="🧩 Power"/>
|
||||||
|
<component x="11" y="4" db_entry="🧩 Difficulty"/>
|
||||||
|
<component x="12" y="3" db_entry="🧩 Symbols"/>
|
||||||
|
<component x="12" y="5" db_entry="🧩 Range"/>
|
||||||
|
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
||||||
|
<component x="2" y="2" db_entry="🎲 Mastery"/>
|
||||||
|
<component x="2" y="5" db_entry="🔮 Create Zone"/>
|
||||||
|
<component x="2" y="3" db_entry="🔮 Cast Magic"/>
|
||||||
|
<component x="2" y="4" db_entry="🔮 Touch"/>
|
||||||
|
<component x="4" y="3" db_entry="🌪️ Chain"/>
|
||||||
|
<component x="5" y="3" db_entry="🌪️ Arc"/>
|
||||||
|
<component x="3" y="3" db_entry="🌪️ Power Conduit"/>
|
||||||
|
<component x="2" y="6" db_entry="🌊 Smokescreen"/>
|
||||||
|
|
||||||
|
</ability_card>
|
|
@ -1,23 +1,18 @@
|
||||||
<ability_card>
|
<ability_card>
|
||||||
|
|
||||||
<yaml_data>
|
<yaml_data>
|
||||||
style: repertoire
|
|
||||||
figures:
|
figures:
|
||||||
- name: effects/uni-slim
|
|
||||||
source: img
|
|
||||||
scale: 1.8
|
|
||||||
</yaml_data>
|
</yaml_data>
|
||||||
<name>Repotoire: Exiting</name>
|
|
||||||
<image>img:piuy/hapi</image>
|
|
||||||
<playcost></playcost>
|
<playcost></playcost>
|
||||||
<cp>10</cp>
|
<cp></cp>
|
||||||
<duration></duration>
|
<duration></duration>
|
||||||
<power></power>
|
<power></power>
|
||||||
<difficulty></difficulty>
|
<difficulty></difficulty>
|
||||||
<symbol></symbol>
|
<symbol></symbol>
|
||||||
|
<name>BASE</name>
|
||||||
|
<image>img:piuy/haha</image>
|
||||||
<range></range>
|
<range></range>
|
||||||
<description>Gain 3 SP, assuming your hit points card can hold them.</description>
|
<description></description>
|
||||||
<artistic_value>1</artistic_value>
|
|
||||||
|
|
||||||
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
||||||
<component x="9" y="1" db_entry="🧩 Set Image"/>
|
<component x="9" y="1" db_entry="🧩 Set Image"/>
|
||||||
|
@ -29,6 +24,5 @@ figures:
|
||||||
<component x="12" y="3" db_entry="🧩 Symbols"/>
|
<component x="12" y="3" db_entry="🧩 Symbols"/>
|
||||||
<component x="12" y="5" db_entry="🧩 Range"/>
|
<component x="12" y="5" db_entry="🧩 Range"/>
|
||||||
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
||||||
<component x="3" y="3" db_entry="🎺 Repertoire Card: Exciting"/>
|
|
||||||
|
|
||||||
</ability_card>
|
</ability_card>
|
54
cards/74.xml
54
cards/74.xml
|
@ -2,28 +2,63 @@
|
||||||
|
|
||||||
<yaml_data>
|
<yaml_data>
|
||||||
figures:
|
figures:
|
||||||
|
- name: bg/royal3
|
||||||
|
source: img
|
||||||
|
scale: 2
|
||||||
|
opacity: 0.9
|
||||||
|
- name: gi/party-flags
|
||||||
|
source: svg
|
||||||
|
color: goldenrod
|
||||||
|
offset: [-0.8, -0.3]
|
||||||
|
flip_x: true
|
||||||
|
rotation: -36
|
||||||
|
- name: gi/party-flags
|
||||||
|
source: svg
|
||||||
|
color: goldenrod
|
||||||
|
offset: [0.8, -0.3]
|
||||||
|
rotation: 36
|
||||||
|
- name: effects/uni-white
|
||||||
|
source: img
|
||||||
|
color: white
|
||||||
|
- source: xml
|
||||||
|
flip_x: true
|
||||||
|
scale: 0.9
|
||||||
|
- name: items/starbucks
|
||||||
|
source: img
|
||||||
|
scale: 0.3
|
||||||
|
rotation: -10
|
||||||
|
offset: [-0.3, -0.2]
|
||||||
|
- name: gi/hand-ok
|
||||||
|
source: svg
|
||||||
|
flip_x: true
|
||||||
|
scale: 0.3
|
||||||
|
rotation: 120
|
||||||
|
color: lightgray
|
||||||
|
offset: [0.43, 0.08]
|
||||||
</yaml_data>
|
</yaml_data>
|
||||||
<name>Pop Song</name>
|
<name>Pop Song</name>
|
||||||
<image>img:piuy/sing</image>
|
<image>img:piuy/sing</image>
|
||||||
<playcost>2 ACT,
|
<playcost>2 ACT,
|
||||||
not silenced,
|
not silenced,
|
||||||
Encore! card per turn</playcost>
|
Encore! card per turn,
|
||||||
<cp>81</cp>
|
MOV</playcost>
|
||||||
|
<cp>122</cp>
|
||||||
<duration>1 + discarded on death</duration>
|
<duration>1 + discarded on death</duration>
|
||||||
<power>(0 to 4) + TEC</power>
|
<power>(2 to 6) + TEC</power>
|
||||||
<difficulty>1</difficulty>
|
<difficulty>1</difficulty>
|
||||||
<symbol>🎲🎺</symbol>
|
<symbol>🎲🎺</symbol>
|
||||||
<description>All units (friends and foes) gain +1 MOV per 3 popularity tokens on the song.
|
<description>All units (friends and foes) gain +1 MOV per 3 popularity tokens on the song.
|
||||||
|
|
||||||
+2 power to this ability if you have the **High Ground** or **Flying** status effect.
|
The song starts at 2 popularity tokens.\
|
||||||
|
+2 POWER if *flying* or *High Ground*
|
||||||
|
|
||||||
When you play this song with another of your songs in play, you transition from your old song to your new song.
|
Your song does not affect non-sentient units\
|
||||||
|
This may stack on existing performances.</description>
|
||||||
Your song does not affect non-sentient units</description>
|
<mastery>-1</mastery>
|
||||||
|
|
||||||
<component x="2" y="2" db_entry="🎲 Mastery"/>
|
<component x="2" y="2" db_entry="🎲 Mastery"/>
|
||||||
<component x="2" y="3" db_entry="🎺 Song"/>
|
<component x="2" y="3" db_entry="🎺 Song"/>
|
||||||
<component x="4" y="3" db_entry="🎺 Staged Song"/>
|
<component x="5" y="3" db_entry="🎺 Staged Song"/>
|
||||||
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
||||||
<component x="9" y="1" db_entry="🧩 Set Image"/>
|
<component x="9" y="1" db_entry="🧩 Set Image"/>
|
||||||
<component x="11" y="1" db_entry="🧩 Play Cost"/>
|
<component x="11" y="1" db_entry="🧩 Play Cost"/>
|
||||||
|
@ -35,6 +70,7 @@ Your song does not affect non-sentient units</description>
|
||||||
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
||||||
<component x="3" y="3" db_entry="🎺 Monster Mash"/>
|
<component x="3" y="3" db_entry="🎺 Monster Mash"/>
|
||||||
<component x="2" y="4" db_entry="🎺 Pop Song"/>
|
<component x="2" y="4" db_entry="🎺 Pop Song"/>
|
||||||
<component x="5" y="3" db_entry="🎺 Encore!"/>
|
<component x="6" y="3" db_entry="🎺 Encore!"/>
|
||||||
|
<component x="4" y="3" db_entry="🎺 Put effort into it"/>
|
||||||
|
|
||||||
</ability_card>
|
</ability_card>
|
||||||
|
|
77
cards/75.xml
77
cards/75.xml
|
@ -1,32 +1,62 @@
|
||||||
<ability_card>
|
<ability_card>
|
||||||
|
|
||||||
<yaml_data>
|
<yaml_data>
|
||||||
style: repertoire
|
|
||||||
figures:
|
figures:
|
||||||
- name: piuy/hapa
|
- name: bg/flowers
|
||||||
scale: 0.8
|
|
||||||
source: img
|
source: img
|
||||||
offset:
|
scale: 2
|
||||||
- -0.25
|
- name: gi/glass-heart
|
||||||
- 0
|
source: svg
|
||||||
- name: piuy/hapi
|
offset: [-0.0, -0.15]
|
||||||
|
scale: 0.75
|
||||||
|
color: steelblue
|
||||||
|
- name: gi/glass-heart
|
||||||
|
source: svg
|
||||||
|
offset: [-0.0, -0.16]
|
||||||
|
scale: 0.7
|
||||||
|
color: MediumOrchid
|
||||||
|
- name: gi/heart-inside
|
||||||
|
source: svg
|
||||||
|
offset: [0.38, 0.1]
|
||||||
|
color: navy
|
||||||
|
rotation: 10
|
||||||
scale: 0.8
|
scale: 0.8
|
||||||
offset:
|
- name: effects/uni-white
|
||||||
- 0.25
|
|
||||||
- 0
|
|
||||||
source: img
|
source: img
|
||||||
</yaml_data>
|
scale: 0.8
|
||||||
<name>Repotoire: Entralling</name>
|
color: purple
|
||||||
<playcost></playcost>
|
offset: [-0.37, 0.16]
|
||||||
<cp>25</cp>
|
- source: xml
|
||||||
<duration></duration>
|
scale: 0.6
|
||||||
<power></power>
|
offset: [-0.37, 0.1]
|
||||||
<difficulty></difficulty>
|
|
||||||
<symbol></symbol>
|
|
||||||
<range></range>
|
|
||||||
<description>One of your song or dance abilities in play gains +1 duration tokens.</description>
|
|
||||||
<artistic_value>2</artistic_value>
|
|
||||||
|
|
||||||
|
</yaml_data>
|
||||||
|
<name>Love Song</name>
|
||||||
|
<image>img:piuy/sing</image>
|
||||||
|
<playcost>2 ACT,
|
||||||
|
not silenced,
|
||||||
|
Encore! card per turn,
|
||||||
|
MOV</playcost>
|
||||||
|
<cp>98</cp>
|
||||||
|
<duration>1 + discarded on death</duration>
|
||||||
|
<power>(2 to 6) + TEC</power>
|
||||||
|
<difficulty>1</difficulty>
|
||||||
|
<symbol>🎲🎺</symbol>
|
||||||
|
<description>All units (friends and foes) restore 1
|
||||||
|
HP per popularity token on the song at the start of their turn.
|
||||||
|
|
||||||
|
The song starts at 2 popularity tokens.\
|
||||||
|
+2 POWER if *flying* or *High Ground*
|
||||||
|
|
||||||
|
Your song does not affect non-sentient units\
|
||||||
|
This may stack on existing performances.
|
||||||
|
</description>
|
||||||
|
<mastery>-1</mastery>
|
||||||
|
|
||||||
|
<component x="2" y="2" db_entry="🎲 Mastery"/>
|
||||||
|
<component x="2" y="3" db_entry="🎺 Song"/>
|
||||||
|
<component x="5" y="3" db_entry="🎺 Staged Song"/>
|
||||||
|
<component x="2" y="4" db_entry="🎺 Love Song"/>
|
||||||
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
||||||
<component x="9" y="1" db_entry="🧩 Set Image"/>
|
<component x="9" y="1" db_entry="🧩 Set Image"/>
|
||||||
<component x="11" y="1" db_entry="🧩 Play Cost"/>
|
<component x="11" y="1" db_entry="🧩 Play Cost"/>
|
||||||
|
@ -35,8 +65,9 @@ figures:
|
||||||
<component x="11" y="3" db_entry="🧩 Power"/>
|
<component x="11" y="3" db_entry="🧩 Power"/>
|
||||||
<component x="11" y="4" db_entry="🧩 Difficulty"/>
|
<component x="11" y="4" db_entry="🧩 Difficulty"/>
|
||||||
<component x="12" y="3" db_entry="🧩 Symbols"/>
|
<component x="12" y="3" db_entry="🧩 Symbols"/>
|
||||||
<component x="12" y="5" db_entry="🧩 Range"/>
|
|
||||||
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
||||||
<component x="3" y="2" db_entry="🎺 Repertoire Card: Enthralling"/>
|
<component x="3" y="3" db_entry="🎺 Monster Mash"/>
|
||||||
|
<component x="6" y="3" db_entry="🎺 Encore!"/>
|
||||||
|
<component x="4" y="3" db_entry="🎺 Put effort into it"/>
|
||||||
|
|
||||||
</ability_card>
|
</ability_card>
|
||||||
|
|
64
cards/76.xml
64
cards/76.xml
|
@ -1,28 +1,48 @@
|
||||||
<ability_card>
|
<ability_card>
|
||||||
|
|
||||||
<yaml_data>
|
<yaml_data>
|
||||||
style: repertoire
|
|
||||||
figures:
|
figures:
|
||||||
- name: google/android-4.3/pile-of-poo
|
- name: "https://comps.canstockphoto.com/light-rays-neon-radial-lines-background-vector-clipart_csp58176606.jpg"
|
||||||
|
source: url
|
||||||
|
scale: 2
|
||||||
|
opacity: 0.8
|
||||||
|
- name: clip/falling-money-2
|
||||||
|
source: img
|
||||||
|
offset: [0.0, -0.5]
|
||||||
|
scale: 1.6
|
||||||
|
color: "#00ff40"
|
||||||
|
- name: clip/falling-money-2
|
||||||
|
source: img
|
||||||
|
offset: [0.0, -0.5]
|
||||||
|
scale: 1.6
|
||||||
|
opacity: 0.95
|
||||||
|
- name: piuy/twirl
|
||||||
|
source: img
|
||||||
|
offset: [0.0, 0.1]
|
||||||
|
scale: 1.1
|
||||||
|
- name: softbank/trophy
|
||||||
source: emoji
|
source: emoji
|
||||||
color: gray
|
offset: [0.58, 0.23]
|
||||||
scale: 0.23
|
scale: 0.5
|
||||||
rotation: 30
|
rotation: 20
|
||||||
offset: [-0.2, 0.2]
|
- name: softbank/trophy
|
||||||
</yaml_data>
|
source: emoji
|
||||||
<name>Repotoire: Filler</name>
|
offset: [-0.58, 0.23]
|
||||||
<image>img:piuy/hapo</image>
|
scale: 0.5
|
||||||
<playcost></playcost>
|
rotation: -20
|
||||||
<cp>1</cp>
|
|
||||||
<duration></duration>
|
|
||||||
<power></power>
|
|
||||||
<difficulty></difficulty>
|
|
||||||
<symbol></symbol>
|
|
||||||
<range></range>
|
|
||||||
<description>This card does nothing.
|
|
||||||
|
|
||||||
*Bummer.*</description>
|
</yaml_data>
|
||||||
<artistic_value>-1</artistic_value>
|
<playcost>2 MOV</playcost>
|
||||||
|
<cp>23</cp>
|
||||||
|
<duration>per 3 power of this ability (rounded down) + Discarded on death</duration>
|
||||||
|
<power>0 or + (2 to 5) + TEC</power>
|
||||||
|
<difficulty>1</difficulty>
|
||||||
|
<symbol>🎲🎺</symbol>
|
||||||
|
<name>Victory Dance</name>
|
||||||
|
<description>If this is active at the end of combat, you (and only you) gain +10% CP from the encounter.
|
||||||
|
|
||||||
|
+3 power to this ability if you have the **High Ground** or **Flying** status effect when playing this card.</description>
|
||||||
|
<range></range>
|
||||||
|
|
||||||
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
||||||
<component x="9" y="1" db_entry="🧩 Set Image"/>
|
<component x="9" y="1" db_entry="🧩 Set Image"/>
|
||||||
|
@ -34,6 +54,10 @@ figures:
|
||||||
<component x="12" y="3" db_entry="🧩 Symbols"/>
|
<component x="12" y="3" db_entry="🧩 Symbols"/>
|
||||||
<component x="12" y="5" db_entry="🧩 Range"/>
|
<component x="12" y="5" db_entry="🧩 Range"/>
|
||||||
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
||||||
<component x="3" y="3" db_entry="🎺 Repertoire Card: Filler"/>
|
<component x="2" y="2" db_entry="🎲 Mastery"/>
|
||||||
|
<component x="2" y="3" db_entry="🎺 Dance"/>
|
||||||
|
<component x="3" y="3" db_entry="🎺 Staged Dance"/>
|
||||||
|
<component x="2" y="4" db_entry="🎺 Victory Dance"/>
|
||||||
|
|
||||||
</ability_card>
|
</ability_card>
|
||||||
|
|
||||||
|
|
61
cards/77.xml
61
cards/77.xml
|
@ -2,30 +2,47 @@
|
||||||
|
|
||||||
<yaml_data>
|
<yaml_data>
|
||||||
figures:
|
figures:
|
||||||
|
- source: img
|
||||||
|
name: bg/royal3
|
||||||
|
scale: 3
|
||||||
|
color: teal
|
||||||
|
opacity: 0.1
|
||||||
|
- source: img
|
||||||
|
name: bg/royal3
|
||||||
|
scale: 3
|
||||||
|
opacity: 0.2
|
||||||
|
- name: gi/abstract-037
|
||||||
|
source: svg
|
||||||
|
rotation: 90
|
||||||
|
color: "#aaf"
|
||||||
|
scale: [1, 1.5]
|
||||||
|
- source: xml
|
||||||
|
scale: 0.7
|
||||||
|
rotation: -10
|
||||||
|
- name: gi/european-flag
|
||||||
|
source: svg
|
||||||
|
color: PaleVioletRed
|
||||||
|
scale: 1.3
|
||||||
</yaml_data>
|
</yaml_data>
|
||||||
<name>Love Song</name>
|
<playcost></playcost>
|
||||||
<image>img:piuy/sing</image>
|
<cp>10</cp>
|
||||||
<playcost>2 ACT,
|
<duration>Permanent + discarded on death</duration>
|
||||||
not silenced,
|
<power>2 MIND</power>
|
||||||
Encore! card per turn</playcost>
|
<difficulty></difficulty>
|
||||||
<cp>65</cp>
|
<symbol>🔮</symbol>
|
||||||
<duration>1 + discarded on death</duration>
|
<name>Mana Shield</name>
|
||||||
<power>(0 to 4) + TEC</power>
|
<description>*Starts in your play area rather than your deck*
|
||||||
<difficulty>1</difficulty>
|
|
||||||
<symbol>🎲🎺</symbol>
|
|
||||||
<description>All units (friends and foes) restore 1
|
|
||||||
HP per popularity token on the song at the start of their turn.
|
|
||||||
|
|
||||||
+2 power to this ability if you have the **High Ground** or **Flying** status effect.
|
Max capacity is POWER.
|
||||||
|
Cannot be restored by healing.
|
||||||
|
|
||||||
When you play this song with another of your songs in play, you transition from your old song to your new song.
|
**Defensive Trigger: take damage**
|
||||||
|
* You cannot activate this if affected by the topple status effect.
|
||||||
|
* You cannot activate this after playing other defensive triggers, per damage source.
|
||||||
|
* Remove 1 Mana Shield token to decrease the incoming damage by 1. Repeat as needed.</description>
|
||||||
|
<image>img:piuy/color</image>
|
||||||
|
<range></range>
|
||||||
|
|
||||||
Your song does not affect non-sentient units</description>
|
|
||||||
|
|
||||||
<component x="2" y="2" db_entry="🎲 Mastery"/>
|
|
||||||
<component x="2" y="3" db_entry="🎺 Song"/>
|
|
||||||
<component x="4" y="3" db_entry="🎺 Staged Song"/>
|
|
||||||
<component x="2" y="4" db_entry="🎺 Love Song"/>
|
|
||||||
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
||||||
<component x="9" y="1" db_entry="🧩 Set Image"/>
|
<component x="9" y="1" db_entry="🧩 Set Image"/>
|
||||||
<component x="11" y="1" db_entry="🧩 Play Cost"/>
|
<component x="11" y="1" db_entry="🧩 Play Cost"/>
|
||||||
|
@ -34,8 +51,8 @@ Your song does not affect non-sentient units</description>
|
||||||
<component x="11" y="3" db_entry="🧩 Power"/>
|
<component x="11" y="3" db_entry="🧩 Power"/>
|
||||||
<component x="11" y="4" db_entry="🧩 Difficulty"/>
|
<component x="11" y="4" db_entry="🧩 Difficulty"/>
|
||||||
<component x="12" y="3" db_entry="🧩 Symbols"/>
|
<component x="12" y="3" db_entry="🧩 Symbols"/>
|
||||||
|
<component x="12" y="5" db_entry="🧩 Range"/>
|
||||||
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
||||||
<component x="3" y="3" db_entry="🎺 Monster Mash"/>
|
<component x="2" y="2" db_entry="🔮 Mana Shield"/>
|
||||||
<component x="5" y="3" db_entry="🎺 Encore!"/>
|
|
||||||
|
|
||||||
</ability_card>
|
</ability_card>
|
||||||
|
|
65
cards/78.xml
65
cards/78.xml
|
@ -2,47 +2,32 @@
|
||||||
|
|
||||||
<yaml_data>
|
<yaml_data>
|
||||||
figures:
|
figures:
|
||||||
- name: "https://comps.canstockphoto.com/light-rays-neon-radial-lines-background-vector-clipart_csp58176606.jpg"
|
- name: bg/flowers
|
||||||
source: url
|
source: img
|
||||||
scale: 2
|
scale: 2
|
||||||
opacity: 0.8
|
opacity: 0.4
|
||||||
- name: clip/falling-money-2
|
- name: piuy/hi
|
||||||
source: img
|
source: img
|
||||||
offset: [0.0, -0.5]
|
|
||||||
scale: 1.6
|
|
||||||
color: "#00ff40"
|
|
||||||
- name: clip/falling-money-2
|
|
||||||
source: img
|
|
||||||
offset: [0.0, -0.5]
|
|
||||||
scale: 1.6
|
|
||||||
opacity: 0.95
|
|
||||||
- name: piuy/twirl
|
|
||||||
source: img
|
|
||||||
offset: [0.0, 0.1]
|
|
||||||
scale: 1.1
|
|
||||||
- name: softbank/trophy
|
|
||||||
source: emoji
|
|
||||||
offset: [0.58, 0.23]
|
|
||||||
scale: 0.5
|
|
||||||
rotation: 20
|
|
||||||
- name: softbank/trophy
|
|
||||||
source: emoji
|
|
||||||
offset: [-0.58, 0.23]
|
|
||||||
scale: 0.5
|
|
||||||
rotation: -20
|
|
||||||
|
|
||||||
</yaml_data>
|
</yaml_data>
|
||||||
<playcost>2 MOV</playcost>
|
<name>Piuy!</name>
|
||||||
<cp>23</cp>
|
<cp>20</cp>
|
||||||
<duration>per 3 power of this ability (rounded down) + Discarded on death</duration>
|
<symbol>⚔️🎲</symbol>
|
||||||
<power>0 or + (2 to 5) + TEC</power>
|
<duration>Permanent + discarded on death</duration>
|
||||||
<difficulty>1</difficulty>
|
<playcost>0 ACT</playcost>
|
||||||
<symbol>🎲🎺</symbol>
|
<power>3 BODY + ⚔️ LevelUp Benefit</power>
|
||||||
<name>Victory Dance</name>
|
<difficulty></difficulty>
|
||||||
<description>If this is active at the end of combat, you (and only you) gain +10% CP from the encounter.
|
|
||||||
|
|
||||||
+3 power to this ability if you have the **High Ground** or **Flying** status effect when playing this card.</description>
|
|
||||||
<range></range>
|
<range></range>
|
||||||
|
<description>| | | | | | | | |
|
||||||
|
| --------:| ---:| --- | ------------:| ---:| --- | ---:| ---:|
|
||||||
|
| **ATT**: | 2 | | | **BODY**: | 4 | | | ⚔️: | lv1 |
|
||||||
|
| **MAG**: | 3 | | | **MIND**: | 5 | | | 🔮: | lv1 |
|
||||||
|
| **TEC**: | 3 | | | **CUNNING**: | 5 | | | 🎲: | lv3 |
|
||||||
|
| **ACT**: | 5 | | | **MOV**: | 5 | | | 🎺: | lv5 |
|
||||||
|
| **HP**: | 12 | | | 🌊: | lv1 | | | 🌪: | lv1 |
|
||||||
|
| **SP**: | ∞ |
|
||||||
|
|
||||||
|
|
||||||
|
</description>
|
||||||
|
|
||||||
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
||||||
<component x="9" y="1" db_entry="🧩 Set Image"/>
|
<component x="9" y="1" db_entry="🧩 Set Image"/>
|
||||||
|
@ -54,9 +39,7 @@ figures:
|
||||||
<component x="12" y="3" db_entry="🧩 Symbols"/>
|
<component x="12" y="3" db_entry="🧩 Symbols"/>
|
||||||
<component x="12" y="5" db_entry="🧩 Range"/>
|
<component x="12" y="5" db_entry="🧩 Range"/>
|
||||||
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
||||||
<component x="2" y="2" db_entry="🎲 Mastery"/>
|
<component x="3" y="2" db_entry="⚔️ Hit Points"/>
|
||||||
<component x="2" y="3" db_entry="🎺 Dance"/>
|
<component x="3" y="3" db_entry="🎲 Skill Points"/>
|
||||||
<component x="3" y="3" db_entry="🎺 Staged Dance"/>
|
|
||||||
<component x="2" y="4" db_entry="🎺 Victory Dance"/>
|
|
||||||
|
|
||||||
</ability_card>
|
</ability_card>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{% set xml_image_note_done = [1] %}{# why must nunjucks suck so much? #}
|
{% set xml_image_not_done = [1] %}{# why must nunjucks suck so much? #}
|
||||||
|
|
||||||
{% macro figure_layer(figure) %}
|
{% macro figure_layer(figure) %}
|
||||||
{% set figure_style %}{% filter cull_whitespace %}
|
{% set figure_style %}{% filter cull_whitespace %}
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
{% if figure.source == "xml" %}
|
{% if figure.source == "xml" %}
|
||||||
{% set figure_name = xml.image if xml.image | startswith("http") else xml.image | split(":") | tail | join(":") %}
|
{% set figure_name = xml.image if xml.image | startswith("http") else xml.image | split(":") | tail | join(":") %}
|
||||||
{% set figure_source = "url" if xml.image | startswith("http") else xml.image | split(":") | first %}
|
{% set figure_source = "url" if xml.image | startswith("http") else xml.image | split(":") | first %}
|
||||||
{% if xml_image_note_done.clear() %}{% endif %}
|
{% if xml_image_not_done.pop() %}{% endif %}
|
||||||
{% else %}
|
{% else %}
|
||||||
{% set figure_name = figure.name %}
|
{% set figure_name = figure.name %}
|
||||||
{% set figure_source = figure.source %}
|
{% set figure_source = figure.source %}
|
||||||
|
@ -98,7 +98,7 @@
|
||||||
{% for figure in yaml.figures or [] %}
|
{% for figure in yaml.figures or [] %}
|
||||||
{{ figure_layer(figure) }}
|
{{ figure_layer(figure) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% if xml.image and xml_image_note_done %}
|
{% if xml.image and xml_image_not_done | length %}
|
||||||
{{ figure_layer({
|
{{ figure_layer({
|
||||||
'name': xml.image if xml.image | startswith("http") else xml.image | split(":") | tail | join(":"),
|
'name': xml.image if xml.image | startswith("http") else xml.image | split(":") | tail | join(":"),
|
||||||
'source': "url" if xml.image | startswith("http") else xml.image | split(":") | first
|
'source': "url" if xml.image | startswith("http") else xml.image | split(":") | first
|
||||||
|
@ -167,10 +167,10 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if yaml.description %}
|
{% if yaml.description %}
|
||||||
<center>{{ yaml.description | markdown | safe }}</center>
|
<div class="markdown">{{ yaml.description | markdown | safe }}</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if xml.description %}
|
{% if xml.description %}
|
||||||
<center>{{ xml.description | markdown | safe }}</center>
|
<div class="markdown">{{ xml.description | markdown | safe }}</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if yaml.steps %}
|
{% if yaml.steps %}
|
||||||
|
@ -180,6 +180,15 @@
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
<div class="bottom" style="text-align: center; font-size:1.6em;">
|
||||||
|
{% for component in xml.components %}
|
||||||
|
{% if component["@db_entry"] | endswith("Mastery") %}
|
||||||
|
❏ ❏ ❏ ❏ ❏
|
||||||
|
❏ ❏ ❏ ❏ ❏ <br>
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
3
style.js
3
style.js
|
@ -49,6 +49,9 @@ env.addFilter('all', function(iterable) {
|
||||||
env.addFilter('startswith', function(string, match) {
|
env.addFilter('startswith', function(string, match) {
|
||||||
return string.slice(0, match.length) === match;
|
return string.slice(0, match.length) === match;
|
||||||
});
|
});
|
||||||
|
env.addFilter('endswith', function(string, match) {
|
||||||
|
return string.endsWith(match);
|
||||||
|
});
|
||||||
env.addFilter('tail', function(sequence) {
|
env.addFilter('tail', function(sequence) {
|
||||||
return sequence.slice(1);
|
return sequence.slice(1);
|
||||||
});
|
});
|
||||||
|
|
78
style.scss
78
style.scss
|
@ -2,14 +2,32 @@
|
||||||
--figure-size: 0.9in;
|
--figure-size: 0.9in;
|
||||||
--figure-size: 1.35in;
|
--figure-size: 1.35in;
|
||||||
--figure-size: 1.5in;
|
--figure-size: 1.5in;
|
||||||
|
--color-border: MidnightBlue;
|
||||||
|
--color-bg-figure: white;
|
||||||
|
|
||||||
|
--color-bg: PaleTurquoise; // PaleTurquoise;
|
||||||
|
--color-bg-body: LightCyan; // PaleTurquoise;
|
||||||
|
--color-bg-frame: PaleTurquoise; // LightSkyBlue;
|
||||||
|
--color-bg-costbar: SandyBrown; // DarkOrange;
|
||||||
|
|
||||||
|
--color-text-title: MidnightBlue;
|
||||||
|
--color-text-body: black;
|
||||||
|
--color-text-costbar: white;
|
||||||
|
--color-shadow-costbar: 0.08em 0 0.05em Maroon,
|
||||||
|
-0.08em 0 0.05em Maroon,
|
||||||
|
0 0.08em 0.05em Maroon,
|
||||||
|
0 -0.08em 0.05em Maroon;
|
||||||
|
--figure-color: #555;
|
||||||
|
|
||||||
width: 2.5in;
|
width: 2.5in;
|
||||||
height: 3.5in;
|
height: 3.5in;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
border-radius: 0mm;
|
border-radius: 0mm;
|
||||||
border-width: 0.3mm;
|
border-width: 0.3mm;
|
||||||
border-color: black;
|
border-color: var(--color-border);
|
||||||
|
|
||||||
border-style: solid;
|
border-style: solid;
|
||||||
background-color: #fff;
|
background-color: var(--color-bg);
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
||||||
font-size: 2.5mm;
|
font-size: 2.5mm;
|
||||||
|
@ -25,35 +43,38 @@
|
||||||
"description description";
|
"description description";
|
||||||
|
|
||||||
header {
|
header {
|
||||||
|
font-family: montserrat, sans-serif;
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 200;
|
||||||
|
|
||||||
grid-area: title;
|
grid-area: title;
|
||||||
font-size: 1.8em;
|
font-size: 1.8em;
|
||||||
line-height: 1em;
|
line-height: 1em;
|
||||||
margin-left: -1em;
|
margin-left: -1em;
|
||||||
border-radius: 1mm 1mm 0 0;
|
border-radius: 1mm 1mm 0 0;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
background-color: #ddd;
|
background-color: var(--color-bg-frame);
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
color: #333;
|
color: var(--color-text-title);
|
||||||
}
|
}
|
||||||
.symbol {
|
.symbol {
|
||||||
grid-area: symbol;
|
grid-area: symbol;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
background-color: #ddd;
|
background-color: var(--color-bg-frame);
|
||||||
color: #333;
|
color: var(--color-text-title);
|
||||||
padding-top: 0.6mm;
|
padding-top: 0.6mm;
|
||||||
padding-left: 0.8mm;
|
padding-left: 0.8mm;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
figure {
|
figure {
|
||||||
grid-area: figure;
|
grid-area: figure;
|
||||||
background-color: #fff;
|
background-color: var(--color-bg-figure);
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
position: relative;
|
position: relative;
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
|
||||||
.layer {
|
.layer {
|
||||||
--figure-color: #555;
|
|
||||||
color: var(--figure-color);
|
color: var(--figure-color);
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top:0;right:0;left:0;bottom:0;
|
top:0;right:0;left:0;bottom:0;
|
||||||
|
@ -90,7 +111,7 @@
|
||||||
.playcosts {
|
.playcosts {
|
||||||
grid-area: playcosts;
|
grid-area: playcosts;
|
||||||
border-left: solid 0.3mm #ccc;
|
border-left: solid 0.3mm #ccc;
|
||||||
background-color: #ddd;
|
background-color: var(--color-bg-frame);
|
||||||
color: #444 ;
|
color: #444 ;
|
||||||
padding: 0.5mm;
|
padding: 0.5mm;
|
||||||
ul {
|
ul {
|
||||||
|
@ -106,8 +127,9 @@
|
||||||
.costbar {
|
.costbar {
|
||||||
grid-area: costbar;
|
grid-area: costbar;
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
background-color: #555;
|
background-color: var(--color-bg-costbar);
|
||||||
color: white;
|
color: var(--color-text-costbar);
|
||||||
|
text-shadow: var(--color-shadow-costbar);
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
flex-wrap: nowrap;
|
flex-wrap: nowrap;
|
||||||
|
@ -119,8 +141,8 @@
|
||||||
|
|
||||||
section{
|
section{
|
||||||
font-size: 0.8em;
|
font-size: 0.8em;
|
||||||
margin-left: 0.5mm;
|
margin-left: 0.8mm;
|
||||||
margin-right: 0.5mm;
|
margin-right: 0.8mm;
|
||||||
line-height: 0.9em;
|
line-height: 0.9em;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -128,8 +150,29 @@
|
||||||
grid-area: description;
|
grid-area: description;
|
||||||
margin: 1mm;
|
margin: 1mm;
|
||||||
border-radius: 1mm;
|
border-radius: 1mm;
|
||||||
background-color: #ddd;
|
background-color: var(--color-bg-body);
|
||||||
|
color: var(--color-text-body);
|
||||||
font-size: 0.9em;
|
font-size: 0.9em;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.markdown {
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
table {
|
||||||
|
margin-top:-0.3em;
|
||||||
|
margin-left:auto;
|
||||||
|
margin-right:auto;
|
||||||
|
th, td {
|
||||||
|
font-size: 2.5mm; /* user agent style override */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
p + table {
|
||||||
|
margin-top:-1em;
|
||||||
|
}
|
||||||
|
li {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ul, ol {
|
ul, ol {
|
||||||
padding-left: 1.5em;
|
padding-left: 1.5em;
|
||||||
|
@ -137,10 +180,17 @@
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.bottom {
|
||||||
|
position: absolute;
|
||||||
|
bottom:0;
|
||||||
|
left:0;
|
||||||
|
right:0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.fjomp_card.item,
|
||||||
.fjomp_card.figure,
|
.fjomp_card.figure,
|
||||||
.fjomp_card.repertoire {
|
.fjomp_card.repertoire {
|
||||||
--figure-size: 2.4in;
|
--figure-size: 2.4in;
|
||||||
|
|
36
sync.py
36
sync.py
|
@ -9,8 +9,10 @@ import requests.packages.urllib3.util.connection as urllib3_cn
|
||||||
import socket
|
import socket
|
||||||
import xmltodict
|
import xmltodict
|
||||||
|
|
||||||
MY_COLLECTION = "Fjompens fjomperi"
|
MY_COLLECTIONS = {
|
||||||
MY_ID = "26"
|
"26" : "Fjompens fjomperi",
|
||||||
|
"48" : "Fjompens Fjomperi - not in deck",
|
||||||
|
}
|
||||||
AUTH = None
|
AUTH = None
|
||||||
CARD_STYLE = 6 # Fjompens's card style
|
CARD_STYLE = 6 # Fjompens's card style
|
||||||
|
|
||||||
|
@ -22,11 +24,11 @@ CARD_STYLE = 6 # Fjompens's card style
|
||||||
## return family
|
## return family
|
||||||
##urllib3_cn.allowed_gai_family = allowed_gai_family
|
##urllib3_cn.allowed_gai_family = allowed_gai_family
|
||||||
|
|
||||||
def get_card_ids():
|
def get_card_ids(): # generator
|
||||||
resp = requests.get("https://www.pvv.ntnu.no/~andreasd/cards/command.php?cmd=get_all_cards", auth=AUTH)
|
resp = requests.get("https://www.pvv.ntnu.no/~andreasd/cards/command.php?cmd=get_all_cards", auth=AUTH)
|
||||||
for collection in resp.json():
|
for collection in resp.json():
|
||||||
if collection["name"] == MY_COLLECTION and collection["id"] == MY_ID:
|
if MY_COLLECTIONS.get(collection["id"]) == collection["name"]:
|
||||||
return collection["cards"]
|
yield from collection["cards"]
|
||||||
|
|
||||||
def get_card_xml(card_id:int):
|
def get_card_xml(card_id:int):
|
||||||
resp = requests.get(f"https://www.pvv.ntnu.no/~andreasd/cards/command.php?cmd=get_card_xml&id={card_id}", auth=AUTH)
|
resp = requests.get(f"https://www.pvv.ntnu.no/~andreasd/cards/command.php?cmd=get_card_xml&id={card_id}", auth=AUTH)
|
||||||
|
@ -66,10 +68,10 @@ def list_collections():
|
||||||
resp = requests.get("https://www.pvv.ntnu.no/~andreasd/cards/command.php?cmd=get_all_cards", auth=AUTH)
|
resp = requests.get("https://www.pvv.ntnu.no/~andreasd/cards/command.php?cmd=get_all_cards", auth=AUTH)
|
||||||
print("== All collections: ==\n")
|
print("== All collections: ==\n")
|
||||||
for i in resp.json():
|
for i in resp.json():
|
||||||
print("id: ", i["id"])
|
print("collection_id: ", i["id"])
|
||||||
print("name: ", i["name"])
|
print("collection_name: ", i["name"])
|
||||||
print("cards: ", i["cards"])
|
print("cards: ", i["cards"])
|
||||||
print("card styles: ", sorted(set(map(int, e.map(get_card_style_id,i["cards"])))))
|
print("card styles: ", sorted(set(map(int, e.map(get_card_style_id, i["cards"])))))
|
||||||
print()
|
print()
|
||||||
|
|
||||||
def pull_all():
|
def pull_all():
|
||||||
|
@ -88,14 +90,14 @@ def pull_all():
|
||||||
except:
|
except:
|
||||||
xml = None
|
xml = None
|
||||||
|
|
||||||
if xml and "ability_card" in xml:
|
#if xml and "ability_card" in xml:
|
||||||
if "yaml_data" in xml["ability_card"]:
|
# if "yaml_data" in xml["ability_card"]:
|
||||||
if len(xml["ability_card"].keys()) == 1:
|
# if len(xml["ability_card"].keys()) == 1:
|
||||||
yaml_data = xml["ability_card"]["yaml_data"]
|
# yaml_data = xml["ability_card"]["yaml_data"]
|
||||||
with open(f"cards/{card_id}.yaml", "w") as f:
|
# with open(f"cards/{card_id}.yaml", "w") as f:
|
||||||
f.write(yaml_data + "\n")
|
# f.write(yaml_data + "\n")
|
||||||
print(f"./cards/{card_id}.yaml written!")
|
# print(f"./cards/{card_id}.yaml written!")
|
||||||
continue
|
# continue
|
||||||
ftype = "xml" if data.strip() else "yaml"
|
ftype = "xml" if data.strip() else "yaml"
|
||||||
with open(f"cards/{card_id}.{ftype}", "w") as f:
|
with open(f"cards/{card_id}.{ftype}", "w") as f:
|
||||||
f.write(data + "\n")
|
f.write(data + "\n")
|
||||||
|
@ -105,7 +107,7 @@ def push_all():
|
||||||
existing_card_ids = get_card_ids()
|
existing_card_ids = get_card_ids()
|
||||||
|
|
||||||
for card_id in existing_card_ids:
|
for card_id in existing_card_ids:
|
||||||
if os.path.isfile(f"cards/{card_id}.yaml"):
|
if os.path.isfile(f"cards/{card_id}.yaml"): # deprecated, will no be written anymore
|
||||||
fname = f"cards/{card_id}.yaml"
|
fname = f"cards/{card_id}.yaml"
|
||||||
with open(fname) as f:
|
with open(fname) as f:
|
||||||
yaml_data = f.read()
|
yaml_data = f.read()
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
<style>
|
||||||
|
|
||||||
|
@page
|
||||||
|
{
|
||||||
|
size: auto;
|
||||||
|
margin: 0.5cm;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
background-color: white;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
-webkit-print-color-adjust: exact;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card_wrapper {
|
||||||
|
width: 2.5in;
|
||||||
|
height: 3.5in;
|
||||||
|
float: left;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
page-break-inside: avoid;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card_cover,
|
||||||
|
iframe {
|
||||||
|
position: absolute;
|
||||||
|
top:0;
|
||||||
|
left:0;
|
||||||
|
width:2.5in;
|
||||||
|
height:3.5in;
|
||||||
|
margin: none;
|
||||||
|
padding: none;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
.card_cover {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
{% for cardname in cards %}
|
||||||
|
<div class="card_wrapper">
|
||||||
|
<iframe src="{{ cardname }}" scrolling=no></iframe>
|
||||||
|
<div class="card_cover" onclick='window.location = {{cardname|tojson}}'></div>
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
|
@ -1,5 +0,0 @@
|
||||||
<ability_card><yaml_data>
|
|
||||||
{{ data.strip() }}
|
|
||||||
</yaml_data>
|
|
||||||
{{ xml_data }}
|
|
||||||
</ability_card>
|
|
|
@ -1,32 +1,5 @@
|
||||||
{% set async = "media=\"none\" onload=\"if(media!='all')media='all'\"" -%}
|
{% set async = "media=\"none\" onload=\"if(media!='all')media='all'\"" -%}
|
||||||
|
|
||||||
|
|
||||||
{% if is_local %}
|
|
||||||
{#
|
|
||||||
<meta http-equiv="refresh" content="1.0">
|
|
||||||
<script type="text/javascript" src="http://livejs.com/live.js"></script>
|
|
||||||
#}
|
|
||||||
<script type="text/javascript">
|
|
||||||
|
|
||||||
var selected = 0;
|
|
||||||
document.onkeydown = function(e) {
|
|
||||||
if (e.which == 39) {
|
|
||||||
if (document.getElementById("card_container_" + (selected+1))) {
|
|
||||||
selected += 1;
|
|
||||||
}
|
|
||||||
document.getElementById("card_container_" + selected).scrollIntoView();
|
|
||||||
}
|
|
||||||
if (e.which == 37) {
|
|
||||||
if (selected > 0) {
|
|
||||||
selected -= 1;
|
|
||||||
}
|
|
||||||
document.getElementById("card_container_" + selected).scrollIntoView();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
</script>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/js-yaml/3.13.1/js-yaml.min.js"></script>
|
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/js-yaml/3.13.1/js-yaml.min.js"></script>
|
||||||
<script type="text/javascript" src="https://mozilla.github.io/nunjucks/files/nunjucks.min.js"></script>
|
<script type="text/javascript" src="https://mozilla.github.io/nunjucks/files/nunjucks.min.js"></script>
|
||||||
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/markdown-it/9.1.0/markdown-it.min.js"></script>
|
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/markdown-it/9.1.0/markdown-it.min.js"></script>
|
||||||
|
@ -39,8 +12,4 @@
|
||||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" {{async}}/>
|
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" {{async}}/>
|
||||||
<link rel="stylesheet" href="https://cdn.linearicons.com/free/1.0.0/icon-font.min.css" {{async}}/>
|
<link rel="stylesheet" href="https://cdn.linearicons.com/free/1.0.0/icon-font.min.css" {{async}}/>
|
||||||
|
|
||||||
{% if css_data %}
|
<link rel="stylesheet" href='https://fonts.googleapis.com/css?family=Montserrat'>
|
||||||
<style type="text/css">
|
|
||||||
{{ css_data.strip() }}
|
|
||||||
</style>
|
|
||||||
{% endif %}
|
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
</head>
|
</head>
|
||||||
{% endfilter %}
|
{% endfilter %}
|
||||||
|
|
||||||
<body content_type="html5">
|
<body content_type="html5" style="margin:0px;">
|
||||||
|
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
{{ css_data.strip() }}
|
{{ css_data.strip() }}
|
||||||
|
|
|
@ -1,5 +1,37 @@
|
||||||
|
<ability_card><yaml_data>
|
||||||
|
|
||||||
|
name: Hit enemy
|
||||||
|
#style: item
|
||||||
|
tags:
|
||||||
|
- combat
|
||||||
|
playcost:
|
||||||
|
- 'Element: fire'
|
||||||
|
- 'BODY+5 POWER'
|
||||||
|
#flavor: Enemies sure are squishy
|
||||||
|
#description: Perform an attack
|
||||||
|
#steps:
|
||||||
|
#- Do A
|
||||||
|
#- Do A
|
||||||
|
#- Do A
|
||||||
|
#- Then B
|
||||||
|
figures:
|
||||||
|
- name: piuy/chicken
|
||||||
|
source: img
|
||||||
|
scale: 2
|
||||||
|
notes: ''
|
||||||
|
|
||||||
|
</yaml_data>
|
||||||
|
|
||||||
<name>Mega Fireball</name>
|
<name>Mega Fireball</name>
|
||||||
<description>Attack an enemy in range 5.
|
<description>
|
||||||
|
| | |
|
||||||
|
| ----:|----|
|
||||||
|
| asd | asd |
|
||||||
|
| asd | asd |
|
||||||
|
|
||||||
|
# asd
|
||||||
|
|
||||||
|
Attack an enemy in range 5.
|
||||||
|
|
||||||
Roll MAG hit dice. Deal that amount of FIRE damage to the target.</description>
|
Roll MAG hit dice. Deal that amount of FIRE damage to the target.</description>
|
||||||
<image>https://freepngimg.com/download/fireball/27487-2-fireball-clipart.png</image>
|
<image>https://freepngimg.com/download/fireball/27487-2-fireball-clipart.png</image>
|
||||||
|
@ -15,6 +47,7 @@ Not Silenced,
|
||||||
Equipment has Catalyst property</playcost>
|
Equipment has Catalyst property</playcost>
|
||||||
<artistic_value>-1</artistic_value>
|
<artistic_value>-1</artistic_value>
|
||||||
|
|
||||||
|
<component x="11" y="3" db_entry="🧩 Mastery"/>
|
||||||
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
<component x="7" y="1" db_entry="🧩 Set Ability Name"/>
|
||||||
<component x="9" y="1" db_entry="🧩 Set Image"/>
|
<component x="9" y="1" db_entry="🧩 Set Image"/>
|
||||||
<component x="11" y="1" db_entry="🧩 Play Cost"/>
|
<component x="11" y="1" db_entry="🧩 Play Cost"/>
|
||||||
|
@ -26,3 +59,5 @@ Equipment has Catalyst property</playcost>
|
||||||
<component x="12" y="5" db_entry="🧩 Range"/>
|
<component x="12" y="5" db_entry="🧩 Range"/>
|
||||||
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
<component x="8" y="2" db_entry="🧩 Set Description"/>
|
||||||
<component x="3" y="3" db_entry="🎺 Repertoire Card: Filler"/>
|
<component x="3" y="3" db_entry="🎺 Repertoire Card: Filler"/>
|
||||||
|
|
||||||
|
</ability_card>
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
name: Hit enemy
|
|
||||||
#style: item
|
|
||||||
tags:
|
|
||||||
- combat
|
|
||||||
playcost:
|
|
||||||
- 'Element: fire'
|
|
||||||
- BODY+5 POWER
|
|
||||||
#flavor: Enemies sure are squishy
|
|
||||||
description: Perform an attack
|
|
||||||
#steps:
|
|
||||||
#- Do A
|
|
||||||
#- Do A
|
|
||||||
#- Do A
|
|
||||||
#- Then B
|
|
||||||
figures:
|
|
||||||
- name: piuy/chicken
|
|
||||||
source: img
|
|
||||||
scale: 2
|
|
||||||
notes: ''
|
|
Loading…
Reference in New Issue