fix-books #7

Merged
drew merged 12 commits from fix-books into master 2026-06-28 12:15:17 -04:00
30 changed files with 25674 additions and 21123 deletions
Showing only changes of commit 5327b524d2 - Show all commits

View File

@@ -18,17 +18,26 @@
<tr>
<td>Minor</td>
<td>5</td>
<td>Enemy commanders, unique and infamous monsters, and antagonists causing trouble in small settlements.</td>
<td>
Enemy commanders, unique and infamous monsters, and antagonists causing
trouble in small settlements.
</td>
</tr>
<tr>
<td>Major</td>
<td>10</td>
<td>Tyrants, powerful mages, legendary creatures, and entities that threaten entire countries.</td>
<td>
Tyrants, powerful mages, legendary creatures, and entities that threaten
entire countries.
</td>
</tr>
<tr>
<td>Supreme</td>
<td>15</td>
<td>Archdemons, immortal entities, and alien deities bent on destruction or domination.</td>
<td>
Archdemons, immortal entities, and alien deities bent on destruction or
domination.
</td>
</tr>
</tbody>
</table>
@@ -44,25 +53,33 @@
<tbody>
<tr>
<td>Escape</td>
<td>A Villain may spend 1 Ultima Point to safely leave the scene — the Game Master describes how they do so,
perhaps leaving a few henchmen behind to "keep the heroes company".</td>
<td>
A Villain may spend 1 Ultima Point to safely leave the scene — the Game
Master describes how they do so, perhaps leaving a few henchmen behind
to "keep the heroes company".
</td>
</tr>
<tr>
<td>Invoke Trait</td>
<td>After performing a Check, a Villain may spend 1 Ultima Point to invoke one of their Traits and reroll one or
both dice (this follows the same rules seen on <a href="/books/core/#page-46">page 46</a>).</td>
<td>
After performing a Check, a Villain may spend 1 Ultima Point to invoke
one of their Traits and reroll one or both dice (this follows the same
rules seen on <a href="/books/core/#page-46">page 46</a>).
</td>
</tr>
<tr>
<td>Recovery</td>
<td>A Villain may use an action and spend 1 Ultima Point to recover from all status effects and also recover 50
Mind Points.</td>
<td>
A Villain may use an action and spend 1 Ultima Point to recover from all
status effects and also recover 50 Mind Points.
</td>
</tr>
</tbody>
</table>
<p>
While Player Characters can gain Fabula Points in several ways, Villains
cannot recharge their Ultima Points — in a way, they represent the Villain's
determination and will to pursue their objectives. A Villain with no
remaining Ultima Points is no longer a Villain and becomes equivalent to any
other NPC; alternatively, they may choose to escalate (see next page).
</p>
determination and will to pursue their objectives. A Villain with no remaining
Ultima Points is no longer a Villain and becomes equivalent to any other NPC;
alternatively, they may choose to escalate (see next page).
</p>

View File

@@ -1,22 +1,20 @@
<h2>SHOULD THIS VILLAIN ESCALATE?</h2>
<p>
When choosing whether a Villain will escalate, the Game Master should
consider the antagonist's importance within the story, their personality,
and the way the heroes chose to confront them: a Villain's escalation shows
that the heroes might win a conflict but still make the situation worse.
When choosing whether a Villain will escalate, the Game Master should consider
the antagonist's importance within the story, their personality, and the way
the heroes chose to confront them: a Villain's escalation shows that the
heroes might win a conflict but still make the situation worse.
</p>
<p>
Most of the time it's best to simply let a Villain be defeated: maybe their
resolve is broken, maybe they even realized they were wrong and will turn
into an ally.
resolve is broken, maybe they even realized they were wrong and will turn into
an ally.
</p>
<p>
Escalating your Villains sparingly will make them more memorable and also
ensure that Players feel like their actions have an impact on the world.
</p>
<p>
In general, you should only have two to four escalations per campaign.
</p>
<p>In general, you should only have two to four escalations per campaign.</p>
<h2>VILLAIN AND FABULA POINTS</h2>
<p>
@@ -26,32 +24,32 @@
<ul>
<li>
<strong>Multiple identities.</strong> If a Villain has more than one
identity, the heroes only receive Fabula Points when they appear using
their "antagonist persona". Once the deception is exposed, however, they
will begin awarding Fabula Points every time they appear on a scene,
whether disguised or else.
identity, the heroes only receive Fabula Points when they appear using their
"antagonist persona". Once the deception is exposed, however, they will
begin awarding Fabula Points every time they appear on a scene, whether
disguised or else.
</li>
<li>
<strong>Multiple Villains.</strong> If two or more Villains appear during
the same scene, each Player Character will gain 1 Fabula Point per
Villain, up to a maximum of 3 Fabula Points per Player Character earned
this way during the same scene.
the same scene, each Player Character will gain 1 Fabula Point per Villain,
up to a maximum of 3 Fabula Points per Player Character earned this way
during the same scene.
</li>
<li>
<strong>Back-to-back scenes with Villains.</strong> If a Villain's
presence extends for several consecutive scenes, the Player Characters
only gain 1 Fabula Point at the beginning, and no additional Fabula Points
for the following scenes.
<strong>Back-to-back scenes with Villains.</strong> If a Villain's presence
extends for several consecutive scenes, the Player Characters only gain 1
Fabula Point at the beginning, and no additional Fabula Points for the
following scenes.
</li>
</ul>
<p>
Whenever the heroes are running low on Fabula Points, the Game Master should
run a Game Master scene and show a Villain in action — this is a great way
to push the story forward while also giving the heroes a bit more "fuel".
run a Game Master scene and show a Villain in action — this is a great way to
push the story forward while also giving the heroes a bit more "fuel".
</p>
<blockquote>
<p>
Great evil is born when good intentions are met with mistrust and despair.
</p>
</blockquote>
</blockquote>

View File

@@ -1,89 +1,95 @@
<h1>ELEMENTALIST SPELLS</h1>
<h2>SPELL</h2>
<div class="spell-entry">
<h3>Elemental Shroud</h3>
<p><strong>Cost:</strong> 5</p>
<p><strong>Targets:</strong> T</p>
<p><strong>Duration:</strong> Up to three creatures</p>
<p><strong>Action:</strong> Scene</p>
<p>
You weave magical energy and protect the targets from the fury of the
elements.
</p>
<p>
Choose a damage type: air, bolt, earth, fire or ice. Until this spell ends,
each target gains Resistance against the chosen damage type.
</p>
</div>
<div class="spell-entry">
<h3>Elemental Weapon</h3>
<p><strong>Cost:</strong> 10</p>
<p><strong>Targets:</strong> One weapon</p>
<p><strong>Duration:</strong> Scene</p>
<p>
You imbue a weapon with elemental energy. Choose a damage type: air, bolt,
earth, fire, or ice. Until this spell ends, all damage dealt by the weapon
becomes of the chosen damage type.
</p>
<ul>
<li>
If you have that weapon equipped while you cast this spell, you may
perform a free attack with it as part of the same action.
</li>
<li>
This spell can only be cast on a weapon equipped by a willing creature.
</li>
</ul>
</div>
<div class="spell-entry">
<h3>Flare</h3>
<p><strong>Cost:</strong> rr 20</p>
<p><strong>Targets:</strong> One creature</p>
<p><strong>Duration:</strong> Instantaneous</p>
<p>
You channel a single ray of fire towards your foe, its temperature so high
that it will pierce through most defenses. The target suffers
<strong>【HR + 25】</strong> fire damage.
</p>
<p>Damage dealt by this spell ignores Resistances.</p>
</div>
<div class="spell-entry">
<h3>Fulgur</h3>
<p><strong>Cost:</strong> rr 10</p>
<p><strong>Targets:</strong> × T</p>
<p><strong>Duration:</strong> Up to three creatures</p>
<p><strong>Action:</strong> Instantaneous</p>
<p>
You weave electricity into a wave of crackling bolts. Each target hit by
this spell suffers <strong>【HR + 15】</strong> bolt damage.
</p>
<p class="opportunity">
<strong>Opportunity:</strong> Each target hit by this spell suffers dazed.
</p>
</div>
<div class="spell-entry">
<h3>Glacies</h3>
<p><strong>Cost:</strong> rr 10</p>
<p><strong>Targets:</strong> × T</p>
<p><strong>Duration:</strong> Up to three creatures</p>
<p><strong>Action:</strong> Instantaneous</p>
<p>
You coat your foes under a thick layer of frost. Each target hit by this
spell suffers <strong>【HR + 15】</strong> ice damage.
</p>
<p class="opportunity">
<strong>Opportunity:</strong> Each target hit by this spell suffers slow.
</p>
</div>
<div class="spell-entry">
<h3>Iceberg</h3>
<p><strong>Cost:</strong> rr 20</p>
<p><strong>Targets:</strong> One creature</p>
<p><strong>Duration:</strong> Instantaneous</p>
<p>
A pillar of ice magic envelops your foe, suddenly dropping their body
temperature to a critical level. The target suffers
<strong>【HR + 25】</strong> ice damage.
</p>
<p>Damage dealt by this spell ignores Resistances.</p>
</div>
<h2>Elementalist Spells</h2>
<table>
<thead>
<tr>
<th>Name</th>
<th>Cost</th>
<th>Targets</th>
<th>Duration</th>
</tr>
</thead>
<tbody>
<tr>
<td>Elemental Shroud</td>
<td>5 x T</td>
<td>Up to three creatures</td>
<td>scene</td>
</tr>
<tr>
<td colspan="4">
You weave magical energy and protect the targets from the fury of the
elements. Choose a damage type: air, bolt, earth, fire or ice. Until
this spell ends, each target gains Resistance against the chosen damage
type.
</td>
</tr>
<tr>
<td>Elemental Weapon</td>
<td>10</td>
<td>One weapon</td>
<td>Scene</td>
</tr>
<tr>
<td colspan="4">
You imbue a weapon with elemental energy. Choose a damage type: air,
bolt, earth, fire, or ice. Until this spell ends, all damage dealt by
the weapon becomes of the chosen damage type. If you have that weapon
equipped while you cast this spell, you may perform a free attack with
it as part of the same action. This spell can only be cast on a weapon
equipped by a willing creature.
</td>
</tr>
<tr>
<td>Flare</td>
<td>20</td>
<td>One creature</td>
<td>Instantaneous</td>
</tr>
<tr>
<td colspan="4">
You channel a single ray of fire towards your foe, its temperature so
high that it will pierce through most defenses. The target suffers【 HR
+ 25】 fire damage. Damage dealt by this spell ignores Resistances.
</td>
</tr>
<tr>
<td>Fulgur</td>
<td>10 x T</td>
<td>Up to three creatures</td>
<td>Instantaneous</td>
</tr>
<tr>
<td colspan="4">
You weave electricity into a wave of crackling bolts. Each target hit by
this spell suffers 【HR + 15】 bolt damage. Opportunity: Each target hit
by this spell suffers dazed.
</td>
</tr>
<tr>
<td>Glacies</td>
<td>10 x T</td>
<td>Up to three creatures</td>
<td>Instantaneous</td>
</tr>
<tr>
<td colspan="4">
You coat your foes under a thick layer of frost. Each target hit by this
spell suffers【 HR + 15】 ice damage. Opportunity: Each target hit by
this spell suffers slow.
</td>
</tr>
<tr>
<td>Iceberg</td>
<td>20</td>
<td>One creature</td>
<td>Instantaneous</td>
</tr>
<tr>
<td colspan="4">
A pillar of ice magic envelops your foe, suddenly dropping their body
temperature to a critical level. The target suffers【 HR + 25】 ice
damage. Damage dealt by this spell ignores Resistances.
</td>
</tr>
</tbody>
</table>

View File

@@ -1,91 +1,97 @@
<div>
<h2>Spell Catalogue</h2>
<section>
<h3>Ignis</h3>
<p>
<strong>Metadata:</strong> rr 10 × T | Up to three creatures |
Instantaneous
</p>
<p>
You unleash a searing barrage against your foes, conjuring flames out of
thin air. Each target hit by this spell suffers
<strong>【HR + 15】 fire damage</strong>.
</p>
<p><em>Opportunity:</em> Each target hit by this spell suffers shaken.</p>
</section>
<section>
<h3>Soaring Strike</h3>
<p><strong>Metadata:</strong> 10 | Self | Instantaneous</p>
<p>
The wind carries your strikes across the battlefield. You may immediately
perform a free attack with a melee weapon you have equipped. This attack
may target creatures that can only be targeted by ranged attacks.
</p>
<ul>
<li>
If you used a weapon belonging to the brawling or spear Category for
this attack, it deals 5 extra damage.
</li>
<li>
If you hit a flying target with this attack, you may force them to land
immediately.
</li>
</ul>
</section>
<section>
<h3>Terra</h3>
<p>
<strong>Metadata:</strong> rr 10 × T | Up to three creatures |
Instantaneous
</p>
<p>
Spires of jagged rock erupt from the ground beneath your foes, closing
around them. Each target hit by this spell suffers
<strong>【HR + 15】 earth damage</strong>. This spell cannot target
creatures who are flying, floating, falling, or otherwise in mid-air.
</p>
<p>
<em>Opportunity:</em> Each target hit by this spell performs one fewer
action on their next turn (to a minimum of 0 actions).
</p>
</section>
<section>
<h3>Thunderbolt</h3>
<p><strong>Metadata:</strong> rr 20 | One creature | Instantaneous</p>
<p>
You send lightning striking at your foe. The target suffers
<strong>【HR + 25】 bolt damage</strong>.
</p>
<p>Damage dealt by this spell ignores Resistances.</p>
</section>
<section>
<h3>Ventus</h3>
<p>
<strong>Metadata:</strong> rr 10 × T | Up to three creatures |
Instantaneous
</p>
<p>
You summon the power of winds against your enemy. Each target hit by this
spell suffers <strong>【HR + 15】 air damage</strong>.
</p>
<p>
<em>Opportunity:</em> Each flying target hit by this spell is forced to
land immediately.
</p>
</section>
<section>
<h3>Vortex</h3>
<p><strong>Metadata:</strong> 10 | Self | Scene</p>
<p>
A roaring gale surrounds you, blowing away arrows and bullets. Until this
spell ends, you gain a +2 bonus to your Defense against ranged attacks.
</p>
</section>
<aside>
<h4>Notes</h4>
<p>
<strong>cc</strong> Spells marked with <code>rr</code> are offensive
spells and require Magic Checks!
</p>
</aside>
</div>
<h2>Elementalist Spells (Cont.)</h2>
<table>
<thead>
<tr>
<th>Name</th>
<th>Cost</th>
<th>Targets</th>
<th>Duration</th>
</tr>
</thead>
<tbody>
<tr>
<td>Ignis</td>
<td>10 x T</td>
<td>Up to three creatures</td>
<td>Instantaneous</td>
</tr>
<tr>
<td colspan="4">
You unleash a searing barrage against your foes, conjuring flames out of
thin air. Each target hit by this spell suffers【 HR + 15】 fire damage.
Opportunity: Each target hit by this spell suffers shaken.
</td>
</tr>
<tr>
<td>Soaring Strike</td>
<td>10</td>
<td>Self</td>
<td>Instantaneous</td>
</tr>
<tr>
<td colspan="4">
The wind carries your strikes across the battlefield. You may
immediately perform a free attack with a melee weapon you have equipped.
This attack may target creatures that can only be targeted by ranged
attacks. If you used a weapon belonging to the brawling or spear
Category for this attack, it deals 5 extra damage. If you hit a flying
target with this attack, you may force them to land immediately.
</td>
</tr>
<tr>
<td>Terra</td>
<td>10 x T</td>
<td>Up to three creatures</td>
<td>Instantaneous</td>
</tr>
<tr>
<td colspan="4">
Spires of jagged rock erupt from the ground beneath your foes, closing
around them. Each target hit by this spell suffers【 HR + 15】 earth
damage. This spell cannot target creatures who are flying, floating,
falling, or otherwise in mid-air. Opportunity: Each target hit by this
spell performs one fewer action on their next turn (to a minimum of 0
actions).
</td>
</tr>
<tr>
<td>Thunderbolt</td>
<td>20</td>
<td>One creature</td>
<td>Instantaneous</td>
</tr>
<tr>
<td colspan="4">
You send lightning striking at your foe. The target suffers【 HR + 25】
bolt damage. Damage dealt by this spell ignores Resistances.
</td>
</tr>
<tr>
<td>Ventus</td>
<td>10 x T</td>
<td>One creature</td>
<td>Instantaneosu</td>
</tr>
<tr>
<td colspan="4">
You summon the power of winds against your enemy. Each target hit by
this spell suffers【 HR + 15】 air damage. Opportunity: Each flying
target hit by this spell is forced to land immediately.
</td>
</tr>
<tr>
<td>Vortex</td>
<td>10</td>
<td>Self</td>
<td>Scene</td>
</tr>
<tr>
<td colspan="4">
A roaring gale surrounds you, blowing away arrows and bullets. Until
this spell ends, you gain a +2 bonus to your Defense against ranged
attacks.
</td>
</tr>
</tbody>
</table>

View File

@@ -1,98 +1,112 @@
<h1>Spell List</h1>
<section>
<h2>Acceleration</h2>
<p>
<strong>Cost:</strong> 20 | <strong>Type:</strong> One creature |
<strong>Scene:</strong>
</p>
<p>
You bend the fabric of time. Until this spell ends, the target gains the
ability to perform a single additional action during each of their turns.
Once the target has performed a total of two additional actions granted by
this spell, this spell ends.
</p>
</section>
<section>
<h2>Anomaly</h2>
<p>
<strong>Cost:</strong> 20 | <strong>Type:</strong> One creature |
<strong>Scene:</strong>
</p>
<p>
You alter the very nature of your target. Until this spell ends, if the
target would suffer damage of a type they Absorb or are Immune to, they are
instead treated as if they were Vulnerable to that damage type. Once that
happens, this spell ends.
</p>
</section>
<section>
<h2>Dark Weapon</h2>
<p>
<strong>Cost:</strong> 10 | <strong>Type:</strong> One equipped weapon |
<strong>Scene:</strong>
</p>
<p>
You imbue a weapon with dark energy. Until this spell ends, all damage dealt
by the weapon becomes of the dark type. If you have that weapon equipped
while you cast this spell, you may perform a free attack with it as part of
the same action.
</p>
<p class="restrictions">
<em
>This spell can only be cast on a weapon equipped by a willing
creature.</em
>
</p>
</section>
<section>
<h2>Dispel</h2>
<p>
<strong>Cost:</strong> 10 | <strong>Type:</strong> One creature |
<strong>Instantaneous:</strong>
</p>
<p>
You release a wave of negative energy and cleanse all magic from a creature.
If the target is affected by one or more spells with a duration of Scene,
they are no longer affected by any of those spells instead.
</p>
</section>
<section>
<h2>Divination</h2>
<p>
<strong>Cost:</strong> 10 | <strong>Type:</strong> Self |
<strong>Scene:</strong>
</p>
<p>
You glimpse briefly into the future. Until this spell ends, after a creature
you can see performs a Check, if it was not a fumble nor a critical success,
you may force that creature to reroll both dice. Once you have forced two
rerolls this way, this spell ends.
</p>
</section>
<section>
<h2>Drain Spirit</h2>
<p>
<strong>Cost:</strong> 5 | <strong>Type:</strong> One creature |
<strong>Instantaneous:</strong>
</p>
<p>
You consume a creature's psyche. The target loses 【HR + 15】 Mind Points.
Then, you recover an amount of Mind Points equal to half the Mind Points
loss they suffered (if the loss was reduced to 0 in some way, you recover
none).
</p>
</section>
<section>
<h2>Drain Vigor</h2>
<p>
<strong>Cost:</strong> 10 | <strong>Type:</strong> One creature |
<strong>Instantaneous:</strong>
</p>
<p>
You steal another creature's life force. The target suffers 【HR + 15 】
dark damage. Then, you recover an amount of Hit Points equal to half the Hit
Points loss they suffered (if the loss was reduced to 0 in some way, you
recover none).
</p>
</section>
<aside class="collection-info"><h3>Entropist Spells</h3></aside>
<h2>Entropist Spells</h2>
<table>
<thead>
<tr>
<th>Name</th>
<th>Cost</th>
<th>Targets</th>
<th>Duration</th>
</tr>
</thead>
<tbody>
<tr>
<td>Acceleration</td>
<td>20</td>
<td>One creature</td>
<td>Scene</td>
</tr>
<tr>
<td colspan="4">
You bend the fabric of time. Until this spell ends, the target gains the
ability to perform a single additional action during each of their
turns. Once the target has performed a total of two additional actions
granted by this spell, this spell ends.
</td>
</tr>
<tr>
<td>Anomaly</td>
<td>20</td>
<td>One creature</td>
<td>Scene</td>
</tr>
<tr>
<td colspan="4">
You alter the very nature of your target. Until this spell ends, if the
target would suffer damage of a type they Absorb or are Immune to, they
are instead treated as if they were Vulnerable to that damage type. Once
that happens, this spell ends.
</td>
</tr>
<tr>
<td>Dark Weapon</td>
<td>10</td>
<td>One equipped weapon</td>
<td>Scene</td>
</tr>
<tr>
<td colspan="4">
You imbue a weapon with dark energy. Until this spell ends, all damage
dealt by the weapon becomes of the dark type. If you have that weapon
equipped while you cast this spell, you may perform a free attack with
it as part of the same action. This spell can only be cast on a weapon
equipped by a willing creature.
</td>
</tr>
<tr>
<td>Dispel</td>
<td>10</td>
<td>One creature</td>
<td>Instantaneous</td>
</tr>
<tr>
<td colspan="4">
You release a wave of negative energy and cleanse all magic from a
creature. If the target is affected by one or more spells with a
duration of Scene, they are no longer affected by any of those spells
instead.
</td>
</tr>
<tr>
<td>Divination</td>
<td>10</td>
<td>Self</td>
<td>Scene</td>
</tr>
<tr>
<td colspan="4">
You glimpse briefly into the future. Until this spell ends, after a
creature you can see performs a Check, if it was not a fumble nor a
critical success, you may force that creature to reroll both dice. Once
you have forced two rerolls this way, this spell ends.
</td>
</tr>
<tr>
<td>Drain Spirit</td>
<td>5</td>
<td>One creature</td>
<td>Instantaneous</td>
</tr>
<tr>
<td colspan="4">
You consume a creature's psyche. The target loses【 HR + 15】 Mind
Points. Then, you recover an amount of Mind Points equal to half the
Mind Points loss they suffered (if the loss was reduced to 0 in some
way, you recover none).
</td>
</tr>
<tr>
<td>Drain Vigor</td>
<td>10</td>
<td>One creature</td>
<td>Instantaneous</td>
</tr>
<tr>
<td colspan="4">
You steal another creature's life force. The target suffers【 HR + 15】
dark damage. Then, you recover an amount of Hit Points equal to half the
Hit Points loss they suffered (if the loss was reduced to 0 in some way,
you recover none).
</td>
</tr>
</tbody>
</table>

View File

@@ -1,75 +1,102 @@
<h2>Gamble up to 20</h2>
<p><strong>Type:</strong> Special</p>
<p><strong>Target:</strong> Instantaneous</p>
<p class="duration">
You summon a vortex of chaotic energy. Roll your current Willpower die once
for every 10 Mind Points spent while casting this spell, then keep the single
die you prefer: the number on that die determines the effects of this spell.
</p>
<ol>
<li>
<strong>1:</strong> You lose half of your current Hit Points and half of
your current Mind Points.
</li>
<li>
<strong>2-3:</strong> Each creature present on the scene, including
yourself, suffers poisoned.
</li>
<li>
<strong>4-6:</strong> Each creature present on the scene, including
yourself, suffers slow.
</li>
<li>
<strong>7-8:</strong> Choose up to three creatures you can see: each of them
recovers 50 Hit Points and also recovers from all status effects.
</li>
<li>
<strong>9+:</strong> Choose any number of creatures you can see: each of
them suffers 30 damage. The damage type is determined randomly by rolling a
d6:
</li>
<ul>
<li>1. air</li>
<li>2. bolt</li>
<li>3. dark</li>
<li>4. earth</li>
<li>5. fire</li>
<li>6. poison</li>
</ul>
</ol>
<h2>Mirror 10</h2>
<p><strong>Type:</strong> One creature</p>
<p><strong>Scene Duration:</strong> Until this spell ends</p>
<p>
You twist the laws of magic. Until this spell ends, if an offensive spell is
cast on the target, the creature who cast that offensive spell will be
targeted in their stead (any other targets of the offensive spell will be
targeted as normal). Once that happens, this spell ends.
</p>
<h2>Omega rr 20</h2>
<p><strong>Type:</strong> One creature</p>
<p><strong>Duration:</strong> Instantaneous</p>
<p>
You invoke doom on your foe, turning strength into frailty. The target loses
an amount of Hit Points equal to
<code>【20 + half the target's level】</code>.
</p>
<h2>Stop rr 10</h2>
<p><strong>Type:</strong> One creature</p>
<p><strong>Duration:</strong> Instantaneous</p>
<p>
You trap a foe inside a circle of altered time and space. The target will
perform one fewer action on their next turn (to a minimum of 0 actions).
</p>
<h2>Umbra rr 10 × T</h2>
<p><strong>Type:</strong> Up to three creatures</p>
<p><strong>Duration:</strong> Instantaneous</p>
<p>
A storm of dark energy turns matter into ash. Each target hit by this spell
suffers <code>【HR + 15】</code> dark damage.
</p>
<p><em>Opportunity:</em> Each target hit by this spell suffers weak.</p>
<h3>Notes</h3>
<ul>
<li>Spells marked with rr are offensive spells and require Magic Checks!</li>
</ul>
<h2>Entropist Spells (Cont.)</h2>
<table>
<thead>
<tr>
<th>Name</th>
<th>Cost</th>
<th>Targets</th>
<th>Duration</th>
</tr>
</thead>
<tbody>
<tr>
<td>Gamble</td>
<td>Up to 20</td>
<td>Special</td>
<td>Scene</td>
</tr>
<tr>
<td colspan="4">
You summon a vortex of chaotic energy. Roll your current Willpower die
once for every 10 Mind Points spent while casting this spell, then keep
the single die you prefer: the number on that die determines the effects
of this spell.
<ul>
<li>
1) You lose half of your current Hit Points and half of your current
Mind Points.
</li>
<li>
2-3) Each creature present on the scene, including yourself, suffers
poisoned.
</li>
<li>
4-6) Each creature present on the scene, including yourself, suffers
slow.
</li>
<li>
7-8) Choose up to three creatures you can see: each of them recovers
50 Hit Points and also recovers from all status effects.
</li>
<li>
9+) Choose any number of creatures you can see: each of them suffers
30 damage. The damage type is determined randomly by rolling a d6:
1. air 2. bolt 3. dark 4. earth 5. fire 6. poison
</li>
</ul>
</td>
</tr>
<tr>
<td>Mirror</td>
<td>10</td>
<td>One creature</td>
<td>Scene</td>
</tr>
<tr>
<td colspan="4">
You twist the laws of magic. Until this spell ends, if an offensive (r)
spell is cast on the target, the creature who cast that offensive spell
will be targeted in their stead (any other targets of the offensive
spell will be targeted as normal). Once that happens, this spell ends.
</td>
</tr>
<tr>
<td>Omega</td>
<td>20</td>
<td>One creature</td>
<td>Instantaneous</td>
</tr>
<tr>
<td colspan="4">
You invoke doom on your foe, turning strength into frailty. The target
loses an amount of Hit Points equal to【 20 + half the target's level】
</td>
</tr>
<tr>
<td>Stop</td>
<td>10</td>
<td>One creature</td>
<td>Instantaneous</td>
</tr>
<tr>
<td colspan="4">
You trap a foe inside a circle of altered time and space. The target
will perform one fewer action on their next turn (to a minimum of 0
actions).
</td>
</tr>
<tr>
<td>Umbra</td>
<td>10 x T</td>
<td>Up to three creatures</td>
<td>Scene</td>
</tr>
<tr>
<td colspan="4">
A storm of dark energy turns matter into ash. Each target hit by this
spell suffers 【HR + 15】 dark damage. Opportunity: Each target hit by
this spell suffers weak.
</td>
</tr>
</tbody>
</table>

View File

@@ -0,0 +1 @@
<em> This page is intentionally left blank. </em>

View File

@@ -1,20 +1,20 @@
<h1>Spiritist</h1>
<section>
<h2>Related Terms</h2>
<p><strong>ALSO:</strong> Healer, Priest, Witch</p>
<div class="motto-block"><em>"Show me the truths of your heart."</em></div>
<h3>Definition</h3>
<p>
Spiritists have developed a powerful connection with the raw aspects of
soul: emotion, energy, life, and death. They wield power both miraculous and
frightening, and are quite often affiliated with cults or religions.
</p>
</section>
<section class="further-details">
<h3>Nature of Abilities</h3>
<p>
Several worlds see the powers of Spiritism as gifts from a deity or proof
that a person's heart is pure; however, there is no definite proof of these
abilities coming from anything but discipline, empathy, and focus.
</p>
</section>
<p><strong>ALSO:</strong> Healer, Priest, Witch</p>
<h3>Definition</h3>
<p>
Spiritists have developed a powerful connection with the raw aspects of soul:
emotion, energy, life, and death. They wield power both miraculous and
frightening, and are quite often affiliated with cults or religions.
</p>
<h3>Nature of Abilities</h3>
<p>
Several worlds see the powers of Spiritism as gifts from a deity or proof that
a person's heart is pure; however, there is no definite proof of these
abilities coming from anything but discipline, empathy, and focus.
</p>
<blockquote>Show me the truths of your heart.</blockquote>

View File

@@ -1,14 +1,17 @@
<h1>SPIRITIST BENEFITS AND SKILLS</h1>
<h2>Free Benefits</h2>
<h2>SPIRITIST BENEFITS AND SKILLS</h2>
<h3>Free Benefits:</h3>
<ul>
<li>Permanently increase your maximum Mind Points by 5.</li>
<li>
You may perform Rituals whose effects fall within the Ritualism discipline.
</li>
</ul>
<hr />
<h2>SPIRITIST SKILLS</h2>
<h3>HEALING POWER (çç2)</h3>
<h3>SPIRITIST SKILLS</h3>
<h4>HEALING POWER</h4>
<p>
When you cast a spell that targets one or more allies, if you have an arcane
weapon equipped, you may have each of those allies recover an amount of Hit
@@ -16,25 +19,29 @@
<strong>【SL, multiplied by the number of Bonds you have】</strong>. This
healing is separate from any healing caused by the effects of the spell.
</p>
<h3>RITUAL SPIRITISM</h3>
<h4>RITUAL SPIRITISM</h4>
<p>
You may perform Rituals whose effects fall within the Spiritism discipline.
Spiritism Rituals use <strong>【INS + WLP】</strong> for the Magic Check.
</p>
<h3>SPIRITUAL MAGIC (çç10)</h3>
<h4>SPIRITUAL MAGIC (çç10)</h4>
<p>
Each time you acquire this Skill, learn one Spiritist spell (see next two
pages). Offensive Spiritist spells use <strong>【INS + WLP】</strong> for the
Magic Check.
</p>
<h3>SUPPORT MAGIC</h3>
<h4>SUPPORT MAGIC</h4>
<p>
When you cast a spell that targets one or more allies, if you have an arcane
weapon equipped, you may choose one of those allies you have a Bond towards.
If you do, that ally gains a bonus to the next Check they perform during the
current scene; this bonus is equal to the strength of your Bond towards them.
</p>
<h3>VISMAGUS</h3>
<h4>VISMAGUS</h4>
<p>
When you cast a spell, if you don't have enough Mind Points to pay for its
total cost, you may choose to spend twice as many Hit Points instead. You
@@ -42,7 +49,7 @@
cast this way would cause you to recover Hit Points, you instead recover no
Hit Points (the spell functions normally on any other target).
</p>
<hr />
<h2>Background Prompts</h2>
<ul>
<li>
@@ -58,4 +65,5 @@
</li>
<li>What does your magic look like?</li>
</ul>
<p>Show me the truths of your heart.</p>
<blockquote>Show me the truths of your heart.</blockquote>

View File

@@ -1,63 +1,95 @@
<h1>SPIRITIST SPELLS</h1>
<h2>Aura</h2>
<p>
<strong>Cost:</strong> 5 × T | <strong>Targets:</strong> Up to three creatures
| <strong>Duration:</strong> Scene
</p>
<p>
You project your soul outside your body and direct it to surround the targets,
shielding them from dangerous magic. Until this spell ends, each target may
treat their Magic Defense as being equal to 12 against any effects that target
it (they are still free to use their normal Defense score if higher than 12).
</p>
<h2>Awaken</h2>
<p>
<strong>Cost:</strong> 20 | <strong>Targets:</strong> One creature |
<strong>Duration:</strong> Scene
</p>
<p>
You allow a creature to focus their vital energy into accomplishing what they
previously could not. Choose one Attribute: Dexterity, Insight, Might, or
Willpower. Until this spell ends, the target treats the chosen Attribute as if
it were one die size higher (up to a maximum of d12).
</p>
<h2>Barrier</h2>
<p>
<strong>Cost:</strong> 5 × T | <strong>Targets:</strong> Up to three creatures
| <strong>Duration:</strong> Scene
</p>
<p>
You project your soul outside your body and weave it into a barrier to protect
the targets from attacks. Until this spell ends, each target may treat their
Defense as being equal to 12 against any effects that target it (they are
still free to use their normal Defense score if higher than 12).
</p>
<h2>Cleanse</h2>
<p>
<strong>Cost:</strong> 5 × T | <strong>Targets:</strong> Up to three creatures
| <strong>Duration:</strong> Instantaneous
</p>
<p>
You strengthen and purify the soul energy coursing through your companions.
Each target recovers from all status effects.
</p>
<h2>Enrage</h2>
<p>
<strong>Cost:</strong> rr 10 | <strong>Targets:</strong> One creature |
<strong>Duration:</strong> Instantaneous
</p>
<p>
You cause a creature to lose any semblance of temper and act brazenly. The
target suffers enraged and cannot perform the Guard or Spell actions during
their next turn.
</p>
<h2>Hallucination</h2>
<p>
<strong>Cost:</strong> rr 5 × T | <strong>Targets:</strong> Up to three
creatures | <strong>Duration:</strong> Instantaneous
</p>
<p>
You alter the senses of your enemies, causing them to experience bizarre or
frightening hallucinations. Choose dazed or shaken: you inflict the chosen
status effect on each target hit by this spell.
</p>
<h2>Spiritist Spells</h2>
<table>
<thead>
<tr>
<th>Name</th>
<th>Cost</th>
<th>Targets</th>
<th>Duration</th>
</tr>
</thead>
<tbody>
<tr>
<td>Aura</td>
<td>5 x T</td>
<td>Up to three creatures</td>
<td>scene</td>
</tr>
<tr>
<td colspan="4">
You project your soul outside your body and direct it to surround the
targets, shielding them from dangerous magic. Until this spell ends,
each target may treat their Magic Defense as being equal to 12 against
any effects that target it (they are still free to use their normal
Defense score if higher than 12).
</td>
</tr>
<tr>
<td>Awaken</td>
<td>20</td>
<td>One creature</td>
<td>scene</td>
</tr>
<tr>
<td colspan="4">
You allow a creature to focus their vital energy into accomplishing what
they previously could not. Choose one Attribute: Dexterity, Insight,
Might, or Willpower. Until this spell ends, the target treats the chosen
Attribute as if it were one die size higher (up to a maximum of d12).
</td>
</tr>
<tr>
<td>Barrier</td>
<td>5 x T</td>
<td>Up to three creatures</td>
<td>scene</td>
</tr>
<tr>
<td colspan="4">
You project your soul outside your body and weave it into a barrier to
protect the targets from attacks. Until this spell ends, each target may
treat their Defense as being equal to 12 against any effects that target
it (they are still free to use their normal Defense score if higher than
12).
</td>
</tr>
<tr>
<td>Cleanse</td>
<td>5 x T</td>
<td>Up to three creatures</td>
<td>Instantaneous</td>
</tr>
<tr>
<td colspan="4">
You strengthen and purify the soul energy coursing through your
companions. Each target recovers from all status effects.
</td>
</tr>
<tr>
<td>Enrage</td>
<td>rr 10</td>
<td>One creature</td>
<td>Instantaneous</td>
</tr>
<tr>
<td colspan="4">
You cause a creature to lose any semblance of temper and act brazenly.
The target suffers enraged and cannot perform the Guard or Spell actions
during their next turn.
</td>
</tr>
<tr>
<td>Hallucination</td>
<td>rr 5 x T</td>
<td>Up to three creatures</td>
<td>Instantaneous</td>
</tr>
<tr>
<td colspan="4">
You alter the senses of your enemies, causing them to experience bizarre
or frightening hallucinations. Choose dazed or shaken: you inflict the
chosen status effect on each target hit by this spell.
</td>
</tr>
</tbody>
</table>

View File

@@ -0,0 +1,95 @@
<h2>Spiritist Spells (Cont.)</h2>
<table>
<thead>
<tr>
<th>Name</th>
<th>Cost</th>
<th>Targets</th>
<th>Duration</th>
</tr>
</thead>
<tbody>
<tr>
<td>Heal</td>
<td>10 x T</td>
<td>Up to three creatures</td>
<td>Instantaneous</td>
</tr>
<tr>
<td colspan="4">
You invigorate your companions, soothing their pain and healing their
fatigue. Each target recovers 40 Hit Points. This amount increases to 50
Hit Points if you are level 20 or higher, or to 60 Hit Points if you are
level 40 or higher.
</td>
</tr>
<tr>
<td>Lux</td>
<td>10 x T</td>
<td>Up to three creatures</td>
<td>Instantaneous</td>
</tr>
<tr>
<td colspan="4">
You focus your inner energy into a barrage of blinding soul rays. Each
target hit by this spell suffers【 HR + 15】 light damage. Opportunity:
Each target hit by this spell suffers dazed.
</td>
</tr>
<tr>
<td>Mercy</td>
<td>20</td>
<td>One creature</td>
<td>Scene</td>
</tr>
<tr>
<td colspan="4">
You strengthen the heart of a creature against suffering and despair.
Until this spell ends, if the target would be reduced to 0 Hit Points,
they are instead left standing with exactly 1 Hit Point. Once that
happens, this spell ends.
</td>
</tr>
<tr>
<td>Reinforce</td>
<td>5 x T</td>
<td>Up to three creatures</td>
<td>Scene</td>
</tr>
<tr>
<td colspan="4">
You protect the targets from attacks that would corrupt their body and
spirit. Choose dazed, enraged, poisoned, shaken, slow, or weak. Until
this spell ends, each target becomes immune to the chosen status effect.
</td>
</tr>
<tr>
<td>Soul Weapon</td>
<td>10</td>
<td>One equipped weapon</td>
<td>Scene</td>
</tr>
<tr>
<td colspan="4">
You imbue a weapon with the cleansing energy of your spirit. Until this
spell ends, all damage dealt by the weapon becomes of the light type. If
you have that weapon equipped while you cast this spell, you may perform
a free attack with it as part of the same action. This spell can only be
cast on a weapon equipped by a willing creature.
</td>
</tr>
<tr>
<td>Torpor</td>
<td>5 x T</td>
<td>Up to three creatures</td>
<td>Instantaneous</td>
</tr>
<tr>
<td colspan="4">
You smother the soul energy coursing through the bodies of your foes,
hindering their movements. Choose slow or weak: you inflict the chosen
status effect on each target hit by this spell.
</td>
</tr>
</tbody>
</table>

View File

@@ -41,7 +41,6 @@
</tr>
</thead>
<tbody>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Blessed Mace</b></td>
@@ -72,8 +71,11 @@
<td>【HR + 6】light</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Melee ◆ You gain a +2 bonus to Magic Checks against <b>demons</b>, as well as a
<b>+2</b> bonus to Opposed Checks against <b>demons</b>.</td>
<td colspan="4">
Two-handed ◆ Melee ◆ You gain a +2 bonus to Magic Checks against
<b>demons</b>, as well as a <b>+2</b> bonus to Opposed Checks against
<b>demons</b>.
</td>
</tr>
<tr class="main">
@@ -84,7 +86,9 @@
<td>【HR + 2】physical</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ You gain a +1 bonus to your Magic Checks.</td>
<td colspan="4">
One-handed ◆ Melee ◆ You gain a +1 bonus to your Magic Checks.
</td>
</tr>
<tr class="main">
@@ -95,8 +99,10 @@
<td>【HR + 6】dark</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Melee ◆ Whenever you hit one or more creatures with this weapon, each of them loses
10 Mind Points.</td>
<td colspan="4">
Two-handed ◆ Melee ◆ Whenever you hit one or more creatures with this
weapon, each of them loses 10 Mind Points.
</td>
</tr>
<tr class="main">
@@ -107,8 +113,10 @@
<td>【HR + 6】air</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ When you hit one or more creatures with this weapon, you may recover 5 Hit
Points.</td>
<td colspan="4">
One-handed ◆ Melee ◆ When you hit one or more creatures with this
weapon, you may recover 5 Hit Points.
</td>
</tr>
<tr class="main">
@@ -119,8 +127,10 @@
<td>【HR + 6】physical</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Melee ◆ Spells you cast whose effects restore Hit Points will restore 5 extra Hit
Points.</td>
<td colspan="4">
Two-handed ◆ Melee ◆ Spells you cast whose effects restore Hit Points
will restore 5 extra Hit Points.
</td>
</tr>
<tr class="main">
@@ -131,8 +141,10 @@
<td>【HR + 6】dark</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Melee ◆ When you hit one or more creatures with an offensive (⚡) spell, each of them
suffers <b>shaken</b>.</td>
<td colspan="4">
Two-handed ◆ Melee ◆ When you hit one or more creatures with an
offensive (⚡) spell, each of them suffers <b>shaken</b>.
</td>
</tr>
<tr class="main">
@@ -143,7 +155,9 @@
<td>【HR + 6】physical</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Melee ◆ Spells you cast deal 5 extra damage.</td>
<td colspan="4">
Two-handed ◆ Melee ◆ Spells you cast deal 5 extra damage.
</td>
</tr>
<tr class="main">
@@ -154,9 +168,10 @@
<td>【HR + 10】poison</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Melee ◆ When you hit one or more creatures with an offensive (⚡) spell, each of them
suffers <b>poisoned</b>.</td>
<td colspan="4">
Two-handed ◆ Melee ◆ When you hit one or more creatures with an
offensive (⚡) spell, each of them suffers <b>poisoned</b>.
</td>
</tr>
</tbody>
</table>
</table>

View File

@@ -47,7 +47,6 @@
</tr>
</thead>
<tbody>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Hand Crossbow</b></td>
@@ -78,7 +77,9 @@
<td>【HR + 12】physical</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Ranged ◆ Damage dealt by this weapon ignores Resistances.</td>
<td colspan="4">
Two-handed ◆ Ranged ◆ Damage dealt by this weapon ignores Resistances.
</td>
</tr>
<tr class="main">
@@ -89,7 +90,9 @@
<td>【HR + 8】air</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Ranged ◆ You are immune to <b>shaken</b>.</td>
<td colspan="4">
Two-handed ◆ Ranged ◆ You are immune to <b>shaken</b>.
</td>
</tr>
<tr class="main">
@@ -100,7 +103,9 @@
<td>【HR + 8】bolt</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Ranged ◆ You have Resistance to <b>bolt</b> damage.</td>
<td colspan="4">
Two-handed ◆ Ranged ◆ You have Resistance to <b>bolt</b> damage.
</td>
</tr>
<tr class="main">
@@ -111,8 +116,10 @@
<td>【HR + 8】fire</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Ranged ◆ When you reduce a creature to 0 Hit Points with this weapon, you may
immediately recover 2 Inventory Points.</td>
<td colspan="4">
Two-handed ◆ Ranged ◆ When you reduce a creature to 0 Hit Points with
this weapon, you may immediately recover 2 Inventory Points.
</td>
</tr>
<tr class="main">
@@ -123,7 +130,9 @@
<td>【HR + 12】physical</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Ranged ◆ Attacks with this weapon have <b>multi (2)</b>.</td>
<td colspan="4">
Two-handed ◆ Ranged ◆ Attacks with this weapon have <b>multi (2)</b>.
</td>
</tr>
<tr class="main">
@@ -134,8 +143,10 @@
<td>【HR + 12】earth</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Ranged ◆ When you hit a flying target with this weapon, you may force that target to
land immediately.</td>
<td colspan="4">
Two-handed ◆ Ranged ◆ When you hit a flying target with this weapon, you
may force that target to land immediately.
</td>
</tr>
<tr class="main">
@@ -146,8 +157,11 @@
<td>【HR + 12】ice</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Ranged ◆ When you hit one or more creatures with this weapon, if you have at least
one <b>Bond</b> of <b>inferiority</b>, you may recover 5 MP.</td>
<td colspan="4">
Two-handed ◆ Ranged ◆ When you hit one or more creatures with this
weapon, if you have at least one <b>Bond</b> of <b>inferiority</b>, you
may recover 5 MP.
</td>
</tr>
<tr class="main">
@@ -158,7 +172,10 @@
<td>【HR + 12】poison</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Ranged ◆ Each target hit by this weapon suffers <b>slow</b>.</td>
<td colspan="4">
Two-handed ◆ Ranged ◆ Each target hit by this weapon suffers
<b>slow</b>.
</td>
</tr>
<tr class="main">
@@ -169,8 +186,9 @@
<td>【HR + 12】light</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Ranged ◆ You have Immunity to <b>dark</b> damage.</td>
<td colspan="4">
Two-handed ◆ Ranged ◆ You have Immunity to <b>dark</b> damage.
</td>
</tr>
</tbody>
</table>
</table>

View File

@@ -1,186 +1,207 @@
<meta charset="UTF-8">
<meta charset="UTF-8" />
<title>Sample Rare Brawling Weapons</title>
<style>
table {
border-collapse: collapse;
width: 100%;
}
table {
border-collapse: collapse;
width: 100%;
}
th {
/* background-color: #2d5a4e;
th {
/* background-color: #2d5a4e;
color: white; */
padding: 8px 12px;
text-align: left;
}
padding: 8px 12px;
text-align: left;
}
td {
padding: 6px 12px;
vertical-align: top;
}
td {
padding: 6px 12px;
vertical-align: top;
}
tr.desc td {
/* background-color: #f0f4f0; */
font-size: 0.95em;
}
tr.desc td {
/* background-color: #f0f4f0; */
font-size: 0.95em;
}
tr.main td {
border-top: 1px solid #ccc;
}
tr.main td {
border-top: 1px solid #ccc;
}
.icon {
width: 48px;
text-align: center;
}
.icon {
width: 48px;
text-align: center;
}
.rare {
color: #c0392b;
}
.rare {
color: #c0392b;
}
</style>
<h2>SAMPLE RARE BRAWLING WEAPONS</h2>
<table>
<thead>
<tr>
<th colspan="2">WEAPON</th>
<th>COST</th>
<th>ACCURACY</th>
<th>DAMAGE</th>
</tr>
</thead>
<tbody>
<thead>
<tr>
<th colspan="2">WEAPON</th>
<th>COST</th>
<th>ACCURACY</th>
<th>DAMAGE</th>
</tr>
</thead>
<tbody>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Nekode</b></td>
<td>250 z</td>
<td>【DEX + MIG】+1</td>
<td>【HR + 6】physical</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ No Quality.</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Nekode</b></td>
<td>250 z</td>
<td>【DEX + MIG】+1</td>
<td>【HR + 6】physical</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ No Quality.</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Hellfist</b></td>
<td>350 z</td>
<td>【DEX + MIG】</td>
<td>【HR + 6】dark</td>
</tr>
<tr class="desc">
<td colspan="4">
One-handed ◆ Melee ◆ Attacks with this weapon target Magic Defense.
</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Hellfist</b></td>
<td>350 z</td>
<td>【DEX + MIG】</td>
<td>【HR + 6】dark</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ Attacks with this weapon target Magic Defense.</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Frozen Grasp</b></td>
<td>750 z</td>
<td>【DEX + MIG】</td>
<td>【HR + 6】ice</td>
</tr>
<tr class="desc">
<td colspan="4">
One-handed ◆ Melee ◆ You are immune to <b>enraged</b>.
</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Frozen Grasp</b></td>
<td>750 z</td>
<td>【DEX + MIG】</td>
<td>【HR + 6】ice</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ You are immune to <b>enraged</b>.</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Bear Paw</b> <span class="rare"></span></td>
<td>850 z</td>
<td>【DEX + MIG】</td>
<td>【HR + 10】physical</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ You are immune to <b>weak</b>.</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Bear Paw</b> <span class="rare"></span></td>
<td>850 z</td>
<td>【DEX + MIG】</td>
<td>【HR + 10】physical</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ You are immune to <b>weak</b>.</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Fuel Knuckle</b></td>
<td>950 z</td>
<td>【DEX + MIG】</td>
<td>【HR + 6】fire</td>
</tr>
<tr class="desc">
<td colspan="4">
One-handed ◆ Melee ◆ You have Resistance to <b>fire</b> damage.
</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Fuel Knuckle</b></td>
<td>950 z</td>
<td>【DEX + MIG</td>
<td>【HR + 6】fire</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ You have Resistance to <b>fire</b> damage.</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Silver Talon</b></td>
<td>1100 z</td>
<td>【DEX + DEX</td>
<td>【HR + 6】light</td>
</tr>
<tr class="desc">
<td colspan="4">
One-handed ◆ Melee ◆ You gain a +1 bonus to Magic Defense.
</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Silver Talon</b></td>
<td>1100 z</td>
<td>【DEX + DEX】</td>
<td>【HR + 6】light</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ You gain a +1 bonus to Magic Defense.</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Old Bandages</b></td>
<td>1250 z</td>
<td>【DEX + MIG】+1</td>
<td>【HR + 6】physical</td>
</tr>
<tr class="desc">
<td colspan="4">
One-handed ◆ Melee ◆ You have Resistance to <b>dark</b> and
<b>poison</b> damage.
</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Old Bandages</b></td>
<td>1250 z</td>
<td>DEX + MIG】+1</td>
<td>【HR + 6】physical</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ You have Resistance to <b>dark</b> and <b>poison</b> damage.</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Storm Fist</b></td>
<td>1300 z</td>
<td>MIG + MIG】</td>
<td>【HR + 6】bolt</td>
</tr>
<tr class="desc">
<td colspan="4">
One-handed ◆ Melee ◆ Attacks with this weapon have <b>multi (2)</b>.
</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Storm Fist</b></td>
<td>1300 z</td>
<td>MIG + MIG】</td>
<td>【HR + 6】bolt</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ Attacks with this weapon have <b>multi (2)</b>.</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Lobster Claw</b> <span class="rare"></span></td>
<td>1950 z</td>
<td>DEX + MIG】+1</td>
<td>【HR + 10】physical</td>
</tr>
<tr class="desc">
<td colspan="4">
One-handed ◆ Melee ◆ Each target hit by this weapon suffers <b>slow</b>.
</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Lobster Claw</b> <span class="rare"></span></td>
<td>1950 z</td>
<td>DEX + MIG】+1</td>
<td>【HR + 10】physical</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ Each target hit by this weapon suffers <b>slow</b>.</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Dozer Glove</b> <span class="rare"></span></td>
<td>2000 z</td>
<td>MIG + MIG】</td>
<td>【HR + 10】earth</td>
</tr>
<tr class="desc">
<td colspan="4">
One-handed ◆ Melee ◆ Each target hit by this weapon suffers
<b>dazed</b>.
</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Dozer Glove</b> <span class="rare"></span></td>
<td>2000 z</td>
<td>MIG + MIG】</td>
<td>【HR + 10】earth</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ Each target hit by this weapon suffers <b>dazed</b>.</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Venom Claw</b></td>
<td>2250 z</td>
<td>DEX + MIG】+1</td>
<td>【HR + 6】physical</td>
</tr>
<tr class="desc">
<td colspan="4">
One-handed ◆ Melee ◆ Each target hit by this weapon suffers
<b>poisoned</b>.
</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Venom Claw</b></td>
<td>2250 z</td>
<td>【DEX + MIG】+1</td>
<td>【HR + 6】physical</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ Each target hit by this weapon suffers <b>poisoned</b>.</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>God Hand</b> <span class="rare"></span></td>
<td>2550 z</td>
<td>【DEX + MIG】+1</td>
<td>【HR + 10】light</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ Damage dealt by this weapon ignores Immunities.</td>
</tr>
</tbody>
</table>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>God Hand</b> <span class="rare"></span></td>
<td>2550 z</td>
<td>【DEX + MIG】+1</td>
<td>【HR + 10】light</td>
</tr>
<tr class="desc">
<td colspan="4">
One-handed ◆ Melee ◆ Damage dealt by this weapon ignores Immunities.
</td>
</tr>
</tbody>
</table>

View File

@@ -1,176 +1,196 @@
<style>
table {
border-collapse: collapse;
width: 100%;
}
table {
border-collapse: collapse;
width: 100%;
}
th {
/* background-color: #2d5a4e;
th {
/* background-color: #2d5a4e;
color: white; */
padding: 8px 12px;
text-align: left;
}
padding: 8px 12px;
text-align: left;
}
td {
padding: 6px 12px;
vertical-align: top;
}
td {
padding: 6px 12px;
vertical-align: top;
}
tr.desc td {
/* background-color: #f0f4f0; */
font-size: 0.95em;
}
tr.desc td {
/* background-color: #f0f4f0; */
font-size: 0.95em;
}
tr.main td {
border-top: 1px solid #ccc;
}
tr.main td {
border-top: 1px solid #ccc;
}
.icon {
width: 48px;
text-align: center;
}
.icon {
width: 48px;
text-align: center;
}
.rare {
color: #c0392b;
}
.rare {
color: #c0392b;
}
</style>
<h2>SAMPLE RARE DAGGER WEAPONS</h2>
<table>
<thead>
<tr>
<th colspan="2">WEAPON</th>
<th>COST</th>
<th>ACCURACY</th>
<th>DAMAGE</th>
</tr>
</thead>
<tbody>
<thead>
<tr>
<th colspan="2">WEAPON</th>
<th>COST</th>
<th>ACCURACY</th>
<th>DAMAGE</th>
</tr>
</thead>
<tbody>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Latrodectus</b></td>
<td>250 z</td>
<td>【DEX + INS】+1</td>
<td>【HR + 4】poison</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ No Quality.</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Latrodectus</b></td>
<td>250 z</td>
<td>【DEX + INS】+1</td>
<td>【HR + 4】poison</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ No Quality.</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Heart Knife</b></td>
<td>550 z</td>
<td>【DEX + WLP】</td>
<td>【HR + 4】light</td>
</tr>
<tr class="desc">
<td colspan="4">
One-handed ◆ Melee ◆ Deals 5 extra damage to <b>demons</b>.
</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Heart Knife</b></td>
<td>550 z</td>
<td>【DEX + WLP】</td>
<td>【HR + 4】light</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ Deals 5 extra damage to <b>demons</b>.</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Atom Slicer</b></td>
<td>600 z</td>
<td>【DEX + DEX】+1</td>
<td>【HR + 4】physical</td>
</tr>
<tr class="desc">
<td colspan="4">
One-handed ◆ Melee ◆ Damage dealt by this weapon ignores Resistances.
</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Atom Slicer</b></td>
<td>600 z</td>
<td>【DEX + DEX】+1</td>
<td>【HR + 4】physical</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ Damage dealt by this weapon ignores Resistances.</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Silent Edge</b></td>
<td>700 z</td>
<td>【DEX + DEX】</td>
<td>【HR + 4】air</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ You are immune to <b>slow</b>.</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Silent Edge</b></td>
<td>700 z</td>
<td>【DEX + DEX】</td>
<td>【HR + 4】air</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ You are immune to <b>slow</b>.</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Spell Sever</b></td>
<td>850 z</td>
<td>【DEX + INS】+1</td>
<td>【HR + 4】dark</td>
</tr>
<tr class="desc">
<td colspan="4">
One-handed ◆ Melee ◆ When you hit a creature with this weapon, if the
attack had a <b>single</b> target, you may choose a single spell with a
<b>duration</b> of Scene affecting the target and end its effects on
that creature.
</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Spell Sever</b></td>
<td>850 z</td>
<td>【DEX + INS】+1</td>
<td>【HR + 4】dark</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ When you hit a creature with this weapon, if the attack had a
<b>single</b> target, you may choose a single spell with a <b>duration</b> of Scene affecting the target
and end its effects on that creature.</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Assassin's Blade</b></td>
<td>1000 z</td>
<td>【DEX + INS】+1</td>
<td>【HR + 4】physical</td>
</tr>
<tr class="desc">
<td colspan="4">
One-handed ◆ Melee ◆ Deals 5 extra damage to targets who are in
<b>Crisis</b>.
</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Assassin's Blade</b></td>
<td>1000 z</td>
<td>【DEX + INS】+1</td>
<td>【HR + 4】physical</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ Deals 5 extra damage to targets who are in <b>Crisis</b>.</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Gourmet Cutter</b></td>
<td>1350 z</td>
<td>【DEX + INS】+1</td>
<td>【HR + 8】physical</td>
</tr>
<tr class="desc">
<td colspan="4">
One-handed ◆ Melee ◆ When you hit one or more creatures with this
weapon, you may recover 5 Hit Points.
</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Gourmet Cutter</b></td>
<td>1350 z</td>
<td>【DEX + INS】+1</td>
<td>【HR + 8】physical</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ When you hit one or more creatures with this weapon, you may recover 5
Hit Points.</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Barbed Knife</b></td>
<td>1650 z</td>
<td>【DEX + INS】+1</td>
<td>【HR + 4】physical</td>
</tr>
<tr class="desc">
<td colspan="4">
One-handed ◆ Melee ◆ Each target hit by this weapon suffers
<b>shaken</b>.
</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Barbed Knife</b></td>
<td>1650 z</td>
<td>【DEX + INS】+1</td>
<td>【HR + 4】physical</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ Each target hit by this weapon suffers <b>shaken</b>.</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Cold Finger</b></td>
<td>1950 z</td>
<td>【DEX + INS】+1</td>
<td>【HR + 8】ice</td>
</tr>
<tr class="desc">
<td colspan="4">
One-handed ◆ Melee ◆ Each target hit by this weapon suffers <b>weak</b>.
</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Cold Finger</b></td>
<td>1950 z</td>
<td>【DEX + INS】+1</td>
<td>【HR + 8】ice</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ Each target hit by this weapon suffers <b>weak</b>.</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Hornet</b></td>
<td>2200 z</td>
<td>【DEX + DEX】+1</td>
<td>【HR + 4】physical</td>
</tr>
<tr class="desc">
<td colspan="4">
One-handed ◆ Melee ◆ Attacks with this weapon have <b>multi (3)</b>.
</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Hornet</b></td>
<td>2200 z</td>
<td>DEX + DEX】+1</td>
<td>【HR + 4】physical</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ Attacks with this weapon have <b>multi (3)</b>.</td>
</tr>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Frantic Nail</b></td>
<td>2450 z</td>
<td>【INS + INS】+1</td>
<td>【HR + 8】fire</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ Each target hit by this weapon suffers <b>enraged</b>.</td>
</tr>
</tbody>
</table>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Frantic Nail</b></td>
<td>2450 z</td>
<td>INS + INS】+1</td>
<td>【HR + 8】fire</td>
</tr>
<tr class="desc">
<td colspan="4">
One-handed ◆ Melee ◆ Each target hit by this weapon suffers
<b>enraged</b>.
</td>
</tr>
</tbody>
</table>

View File

@@ -47,7 +47,6 @@
</tr>
</thead>
<tbody>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Revolver</b> <span class="rare"></span></td>
@@ -78,7 +77,9 @@
<td>【HR + 8】physical</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Ranged ◆ Attacks with this weapon target Magic Defense.</td>
<td colspan="4">
One-handed ◆ Ranged ◆ Attacks with this weapon target Magic Defense.
</td>
</tr>
<tr class="main">
@@ -89,7 +90,9 @@
<td>【HR + 8】physical</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Ranged ◆ Deals 5 extra damage to <b>constructs</b>.</td>
<td colspan="4">
One-handed ◆ Ranged ◆ Deals 5 extra damage to <b>constructs</b>.
</td>
</tr>
<tr class="main">
@@ -100,8 +103,10 @@
<td>【HR + 8】physical</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Ranged ◆ Deals 5 extra damage to targets you have a <b>Bond</b> of <b>hatred</b>
towards.</td>
<td colspan="4">
One-handed ◆ Ranged ◆ Deals 5 extra damage to targets you have a
<b>Bond</b> of <b>hatred</b> towards.
</td>
</tr>
<tr class="main">
@@ -134,8 +139,10 @@
<td>【HR + 8】poison</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Ranged ◆ Potions you create with your Inventory Points deal 5 extra damage and
restore 5 extra Hit Points.</td>
<td colspan="4">
Two-handed ◆ Ranged ◆ Potions you create with your Inventory Points deal
5 extra damage and restore 5 extra Hit Points.
</td>
</tr>
<tr class="main">
@@ -146,7 +153,9 @@
<td>【HR + 16】fire</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Ranged ◆ Attacks with this weapon have <b>multi (2)</b>.</td>
<td colspan="4">
Two-handed ◆ Ranged ◆ Attacks with this weapon have <b>multi (2)</b>.
</td>
</tr>
<tr class="main">
@@ -157,7 +166,10 @@
<td>【HR + 8】ice</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Ranged ◆ Each target hit by this weapon suffers <b>slow</b>.</td>
<td colspan="4">
One-handed ◆ Ranged ◆ Each target hit by this weapon suffers
<b>slow</b>.
</td>
</tr>
<tr class="main">
@@ -168,9 +180,10 @@
<td>【HR + 12】air</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Ranged ◆ Deals extra damage equal to the difference between your current and maximum
<b>Inventory Points</b>.</td>
<td colspan="4">
Two-handed ◆ Ranged ◆ Deals extra damage equal to the difference between
your current and maximum <b>Inventory Points</b>.
</td>
</tr>
</tbody>
</table>
</table>

View File

@@ -47,7 +47,6 @@
</tr>
</thead>
<tbody>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Old Whip</b></td>
@@ -56,7 +55,10 @@
<td>【HR + 8】physical</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Melee ◆ Deals 5 extra damage to <b>beasts</b> and <b>monsters</b>.</td>
<td colspan="4">
Two-handed ◆ Melee ◆ Deals 5 extra damage to <b>beasts</b> and
<b>monsters</b>.
</td>
</tr>
<tr class="main">
@@ -78,9 +80,12 @@
<td>【HR + 8】physical</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Melee ◆ Damage dealt by this weapon reduces the target's <b>Mind Points</b> instead
of their <b>Hit Points</b>. If the target's Mind Points reach 0, any excess damage is applied to their Hit
Points as normal.</td>
<td colspan="4">
Two-handed ◆ Melee ◆ Damage dealt by this weapon reduces the target's
<b>Mind Points</b> instead of their <b>Hit Points</b>. If the target's
Mind Points reach 0, any excess damage is applied to their Hit Points as
normal.
</td>
</tr>
<tr class="main">
@@ -91,7 +96,9 @@
<td>【HR + 8】physical</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ You have Resistance to <b>fire</b> damage.</td>
<td colspan="4">
One-handed ◆ Melee ◆ You have Resistance to <b>fire</b> damage.
</td>
</tr>
<tr class="main">
@@ -113,8 +120,10 @@
<td>【HR + 8】fire</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ You gain a +2 bonus to Accuracy Checks and Magic Checks against
<b>enraged</b> targets.</td>
<td colspan="4">
One-handed ◆ Melee ◆ You gain a +2 bonus to Accuracy Checks and Magic
Checks against <b>enraged</b> targets.
</td>
</tr>
<tr class="main">
@@ -125,7 +134,9 @@
<td>【HR + 12】physical</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Melee ◆ Attacks with this weapon have <b>multi (2)</b>.</td>
<td colspan="4">
Two-handed ◆ Melee ◆ Attacks with this weapon have <b>multi (2)</b>.
</td>
</tr>
<tr class="main">
@@ -136,7 +147,9 @@
<td>【HR + 12】physical</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Melee ◆ You have Resistance to <b>physical</b> damage.</td>
<td colspan="4">
Two-handed ◆ Melee ◆ You have Resistance to <b>physical</b> damage.
</td>
</tr>
<tr class="main">
@@ -147,7 +160,9 @@
<td>【HR + 8】physical</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Melee ◆ Each target hit by this weapon suffers <b>slow</b>.</td>
<td colspan="4">
Two-handed ◆ Melee ◆ Each target hit by this weapon suffers <b>slow</b>.
</td>
</tr>
<tr class="main">
@@ -158,7 +173,9 @@
<td>【HR + 12】dark</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Melee ◆ Attacks with this weapon have <b>multi (3)</b>.</td>
<td colspan="4">
Two-handed ◆ Melee ◆ Attacks with this weapon have <b>multi (3)</b>.
</td>
</tr>
<tr class="main">
@@ -169,8 +186,10 @@
<td>【HR + 12】physical</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Melee ◆ You have Immunity to <b>dark</b> and <b>light</b> damage.</td>
<td colspan="4">
Two-handed ◆ Melee ◆ You have Immunity to <b>dark</b> and
<b>light</b> damage.
</td>
</tr>
</tbody>
</table>
</table>

View File

@@ -46,7 +46,6 @@
</tr>
</thead>
<tbody>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Bardiche</b> <span class="rare"></span></td>
@@ -66,7 +65,9 @@
<td>【HR + 6】physical</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ Deals 5 extra damage to <b>constructs</b>.</td>
<td colspan="4">
One-handed ◆ Melee ◆ Deals 5 extra damage to <b>constructs</b>.
</td>
</tr>
<tr class="main">
@@ -77,7 +78,9 @@
<td>【HR + 10】physical</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ Deals 5 extra damage to <b>monsters</b>.</td>
<td colspan="4">
One-handed ◆ Melee ◆ Deals 5 extra damage to <b>monsters</b>.
</td>
</tr>
<tr class="main">
@@ -88,7 +91,9 @@
<td>【HR + 14】poison</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Melee ◆ Deals 5 extra damage to <b>humanoids</b>.</td>
<td colspan="4">
Two-handed ◆ Melee ◆ Deals 5 extra damage to <b>humanoids</b>.
</td>
</tr>
<tr class="main">
@@ -99,7 +104,10 @@
<td>【HR + 10】physical</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ Deals 5 extra damage to <b>beasts</b> and <b>plants</b>.</td>
<td colspan="4">
One-handed ◆ Melee ◆ Deals 5 extra damage to <b>beasts</b> and
<b>plants</b>.
</td>
</tr>
<tr class="main">
@@ -121,7 +129,9 @@
<td>【HR + 14】light</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Melee ◆ Attacks with this weapon have <b>multi (2)</b>.</td>
<td colspan="4">
Two-handed ◆ Melee ◆ Attacks with this weapon have <b>multi (2)</b>.
</td>
</tr>
<tr class="main">
@@ -132,7 +142,9 @@
<td>【HR + 14】earth</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Melee ◆ Each target hit by this weapon suffers <b>slow</b>.</td>
<td colspan="4">
Two-handed ◆ Melee ◆ Each target hit by this weapon suffers <b>slow</b>.
</td>
</tr>
<tr class="main">
@@ -143,7 +155,10 @@
<td>【HR + 10】bolt</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ Each target hit by this weapon suffers <b>dazed</b>.</td>
<td colspan="4">
One-handed ◆ Melee ◆ Each target hit by this weapon suffers
<b>dazed</b>.
</td>
</tr>
<tr class="main">
@@ -154,7 +169,9 @@
<td>【HR + 18】fire</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Melee ◆ You have Immunity to <b>fire</b> damage.</td>
<td colspan="4">
Two-handed ◆ Melee ◆ You have Immunity to <b>fire</b> damage.
</td>
</tr>
<tr class="main">
@@ -165,7 +182,10 @@
<td>【HR + 18】dark</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Melee ◆ Each target hit by this weapon suffers <b>enraged</b>.</td>
<td colspan="4">
Two-handed ◆ Melee ◆ Each target hit by this weapon suffers
<b>enraged</b>.
</td>
</tr>
<tr class="main">
@@ -176,8 +196,9 @@
<td>【HR + 18】ice</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Melee ◆ You gain a +1 bonus to Defense and Magic Defense.</td>
<td colspan="4">
Two-handed ◆ Melee ◆ You gain a +1 bonus to Defense and Magic Defense.
</td>
</tr>
</tbody>
</table>
</table>

View File

@@ -34,7 +34,6 @@
.rare {
color: #c0392b;
}
</style>
<table>
@@ -47,7 +46,6 @@
</tr>
</thead>
<tbody>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Dragontongue</b> <span class="rare"></span></td>
@@ -56,7 +54,9 @@
<td>【HR + 12】fire</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Melee ◆ Attacks with this weapon target Magic Defense.</td>
<td colspan="4">
Two-handed ◆ Melee ◆ Attacks with this weapon target Magic Defense.
</td>
</tr>
<tr class="main">
@@ -67,7 +67,9 @@
<td>【HR + 8】physical</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ Deals 1 extra damage per status effect you have.</td>
<td colspan="4">
One-handed ◆ Melee ◆ Deals 1 extra damage per status effect you have.
</td>
</tr>
<tr class="main">
@@ -78,7 +80,9 @@
<td>【HR + 16】physical</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Melee ◆ Damage dealt by this weapon ignores Resistances.</td>
<td colspan="4">
Two-handed ◆ Melee ◆ Damage dealt by this weapon ignores Resistances.
</td>
</tr>
<tr class="main">
@@ -100,7 +104,9 @@
<td>【HR + 12】ice</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ You have Resistance to <b>ice</b> damage.</td>
<td colspan="4">
One-handed ◆ Melee ◆ You have Resistance to <b>ice</b> damage.
</td>
</tr>
<tr class="main">
@@ -111,8 +117,10 @@
<td>【HR + 12】earth</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Melee ◆ As long as you have at least three <b>Bonds</b> of <b>loyalty</b> or
<b>affection</b>, you gain a +1 bonus to Defense and Magic Defense.
<td colspan="4">
Two-handed ◆ Melee ◆ As long as you have at least three <b>Bonds</b> of
<b>loyalty</b> or <b>affection</b>, you gain a +1 bonus to Defense and
Magic Defense.
</td>
</tr>
@@ -124,8 +132,10 @@
<td>【HR + 12】dark</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Melee ◆ When you hit one or more creatures with this weapon, you may recover 10
Mind Points.</td>
<td colspan="4">
Two-handed ◆ Melee ◆ When you hit one or more creatures with this
weapon, you may recover 10 Mind Points.
</td>
</tr>
<tr class="main">
@@ -136,8 +146,11 @@
<td>【HR + 12】physical</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Melee ◆ If you roll a <b>critical success</b> on an Accuracy Check with this
weapon, you may spend that <b>opportunity</b> to deal 10 extra damage.</td>
<td colspan="4">
Two-handed ◆ Melee ◆ If you roll a <b>critical success</b> on an
Accuracy Check with this weapon, you may spend that
<b>opportunity</b> to deal 10 extra damage.
</td>
</tr>
<tr class="main">
@@ -148,7 +161,9 @@
<td>【HR + 16】physical</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Melee ◆ Each target hit by this weapon suffers <b>weak</b>.</td>
<td colspan="4">
Two-handed ◆ Melee ◆ Each target hit by this weapon suffers <b>weak</b>.
</td>
</tr>
<tr class="main">
@@ -170,8 +185,10 @@
<td>【HR + 16】light</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Melee ◆ You have Immunity to <b>fire</b> and <b>ice</b> damage.</td>
<td colspan="4">
Two-handed ◆ Melee ◆ You have Immunity to <b>fire</b> and
<b>ice</b> damage.
</td>
</tr>
</tbody>
</table>
</table>

View File

@@ -47,7 +47,6 @@
</tr>
</thead>
<tbody>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Zweihänder</b> <span class="rare"></span></td>
@@ -67,7 +66,9 @@
<td>【HR + 10】ice</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Melee ◆ Attacks with this weapon target Magic Defense.</td>
<td colspan="4">
Two-handed ◆ Melee ◆ Attacks with this weapon target Magic Defense.
</td>
</tr>
<tr class="main">
@@ -89,7 +90,9 @@
<td>【HR + 6】physical</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ You are immune to <b>enraged</b>.</td>
<td colspan="4">
One-handed ◆ Melee ◆ You are immune to <b>enraged</b>.
</td>
</tr>
<tr class="main">
@@ -111,7 +114,9 @@
<td>【HR + 6】dark</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ Deals 5 extra damage if you are in <b>Crisis</b>.</td>
<td colspan="4">
One-handed ◆ Melee ◆ Deals 5 extra damage if you are in <b>Crisis</b>.
</td>
</tr>
<tr class="main">
@@ -122,7 +127,9 @@
<td>【HR + 10】physical</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Melee ◆ This weapon can target <b>flying</b> creatures.</td>
<td colspan="4">
Two-handed ◆ Melee ◆ This weapon can target <b>flying</b> creatures.
</td>
</tr>
<tr class="main">
@@ -144,7 +151,10 @@
<td>【HR + 10】physical</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Melee ◆ Deals 2 extra damage for each <b>Class</b> you have mastered.</td>
<td colspan="4">
Two-handed ◆ Melee ◆ Deals 2 extra damage for each <b>Class</b> you have
mastered.
</td>
</tr>
<tr class="main">
@@ -155,7 +165,9 @@
<td>【HR + 10】poison</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Melee ◆ Deals 5 extra damage to <b>weak</b> targets.</td>
<td colspan="4">
One-handed ◆ Melee ◆ Deals 5 extra damage to <b>weak</b> targets.
</td>
</tr>
<tr class="main">
@@ -166,7 +178,9 @@
<td>【HR + 14】air</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Melee ◆ Attacks with this weapon have <b>multi (2)</b>.</td>
<td colspan="4">
Two-handed ◆ Melee ◆ Attacks with this weapon have <b>multi (2)</b>.
</td>
</tr>
<tr class="main">
@@ -177,8 +191,9 @@
<td>【HR + 10】light</td>
</tr>
<tr class="desc">
<td colspan="4">Two-handed ◆ Melee ◆ You are immune to all status effects.</td>
<td colspan="4">
Two-handed ◆ Melee ◆ You are immune to all status effects.
</td>
</tr>
</tbody>
</table>
</table>

View File

@@ -43,7 +43,6 @@
</tr>
</thead>
<tbody>
<tr class="main">
<td class="icon" rowspan="2">🗡️</td>
<td><b>Crescent Edge</b></td>
@@ -52,7 +51,9 @@
<td>【HR + 4】light</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Ranged ◆ Attacks with this weapon target Magic Defense.</td>
<td colspan="4">
One-handed ◆ Ranged ◆ Attacks with this weapon target Magic Defense.
</td>
</tr>
<tr class="main">
@@ -85,7 +86,10 @@
<td>【HR + 4】physical</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Ranged ◆ Deals 5 extra damage to <b>beasts</b> and <b>monsters</b>.</td>
<td colspan="4">
One-handed ◆ Ranged ◆ Deals 5 extra damage to <b>beasts</b> and
<b>monsters</b>.
</td>
</tr>
<tr class="main">
@@ -96,7 +100,9 @@
<td>【HR + 8】air</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Ranged ◆ Damage dealt by this weapon ignores Resistances.</td>
<td colspan="4">
One-handed ◆ Ranged ◆ Damage dealt by this weapon ignores Resistances.
</td>
</tr>
<tr class="main">
@@ -107,7 +113,9 @@
<td>【HR + 8】physical</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Ranged ◆ You are immune to <b>poisoned</b>.</td>
<td colspan="4">
One-handed ◆ Ranged ◆ You are immune to <b>poisoned</b>.
</td>
</tr>
<tr class="main">
@@ -118,7 +126,9 @@
<td>【HR + 4】ice</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Ranged ◆ You have Resistance to <b>ice</b> damage.</td>
<td colspan="4">
One-handed ◆ Ranged ◆ You have Resistance to <b>ice</b> damage.
</td>
</tr>
<tr class="main">
@@ -129,7 +139,9 @@
<td>【HR + 4】earth</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Ranged ◆ You have Resistance to <b>dark</b> damage.</td>
<td colspan="4">
One-handed ◆ Ranged ◆ You have Resistance to <b>dark</b> damage.
</td>
</tr>
<tr class="main">
@@ -140,7 +152,9 @@
<td>【HR + 4】physical</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Ranged ◆ Attacks with this weapon have <b>multi (2)</b>.</td>
<td colspan="4">
One-handed ◆ Ranged ◆ Attacks with this weapon have <b>multi (2)</b>.
</td>
</tr>
<tr class="main">
@@ -151,7 +165,10 @@
<td>【HR + 8】bolt</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Ranged ◆ Each target hit by this weapon suffers <b>shaken</b>.</td>
<td colspan="4">
One-handed ◆ Ranged ◆ Each target hit by this weapon suffers
<b>shaken</b>.
</td>
</tr>
<tr class="main">
@@ -162,7 +179,9 @@
<td>【HR + 4】dark</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Ranged ◆ You gain a +1 bonus to Defense and Magic Defense.</td>
<td colspan="4">
One-handed ◆ Ranged ◆ You gain a +1 bonus to Defense and Magic Defense.
</td>
</tr>
<tr class="main">
@@ -173,8 +192,10 @@
<td>【HR + 4】poison</td>
</tr>
<tr class="desc">
<td colspan="4">One-handed ◆ Ranged ◆ Each target hit by this weapon suffers <b>poisoned</b>.</td>
<td colspan="4">
One-handed ◆ Ranged ◆ Each target hit by this weapon suffers
<b>poisoned</b>.
</td>
</tr>
</tbody>
</table>
</table>

View File

@@ -11,29 +11,45 @@
<li><a href="/books/core/#page-30">Scenes</a> <span>30</span></li>
<li><a href="/books/core/#page-31">Interlude Scenes</a> <span>31</span></li>
<li><a href="/books/core/#page-31">Game Master Scenes</a> <span>31</span></li>
<li><a href="/books/core/#page-32">Sessions and Campaigns</a> <span>32</span></li>
<li>
<a href="/books/core/#page-32">Sessions and Campaigns</a> <span>32</span>
</li>
<li><a href="/books/core/#page-33">Important Rules</a> <span>33</span></li>
<li><a href="/books/core/#page-34">Anatomy of a Character</a> <span>34</span></li>
<li>
<a href="/books/core/#page-34">Anatomy of a Character</a> <span>34</span>
</li>
<li><a href="/books/core/#page-38">Checks</a> <span>38</span></li>
<li><a href="/books/core/#page-40">Critical Success</a> <span>40</span></li>
<li><a href="/books/core/#page-40">Fumble</a> <span>40</span></li>
<li><a href="/books/core/#page-41">Opportunities</a> <span>41</span></li>
<li><a href="/books/core/#page-42">Performing an Attribute Check</a> <span>42</span></li>
<li>
<a href="/books/core/#page-42">Performing an Attribute Check</a>
<span>42</span>
</li>
<li><a href="/books/core/#page-43">Difficulty Levels</a> <span>43</span></li>
<li><a href="/books/core/#page-46">Invoking a Trait</a> <span>46</span></li>
<li><a href="/books/core/#page-47">Invoking a Bond</a> <span>47</span></li>
<li><a href="/books/core/#page-48">Opposed Checks</a> <span>48</span></li>
<li><a href="/books/core/#page-49">Open Checks</a> <span>49</span></li>
<li><a href="/books/core/#page-49">Situational Modifiers</a> <span>49</span></li>
<li>
<a href="/books/core/#page-49">Situational Modifiers</a> <span>49</span>
</li>
<li><a href="/books/core/#page-50">Group Checks</a> <span>50</span></li>
<li><a href="/books/core/#page-51">Frequently Used Checks</a> <span>51</span></li>
<li>
<a href="/books/core/#page-51">Frequently Used Checks</a> <span>51</span>
</li>
<li><a href="/books/core/#page-52">Clocks</a> <span>52</span></li>
<li><a href="/books/core/#page-56">Bonds</a> <span>56</span></li>
<li><a href="/books/core/#page-58">Conflict Scenes</a> <span>58</span></li>
<li><a href="/books/core/#page-58">The Structure of a Conflict</a> <span>58</span></li>
<li>
<a href="/books/core/#page-58">The Structure of a Conflict</a>
<span>58</span>
</li>
<li><a href="/books/core/#page-61">Initiative</a> <span>61</span></li>
<li><a href="/books/core/#page-62">Rounds and Turns</a> <span>62</span></li>
<li><a href="/books/core/#page-64">Space and Distances</a> <span>64</span></li>
<li>
<a href="/books/core/#page-64">Space and Distances</a> <span>64</span>
</li>
<li><a href="/books/core/#page-66">Actions</a> <span>66</span></li>
<li><a href="/books/core/#page-68">Attack</a> <span>68</span></li>
<li><a href="/books/core/#page-70">Equipment</a> <span>70</span></li>
@@ -46,8 +62,13 @@
<li><a href="/books/core/#page-76">Skill</a> <span>76</span></li>
<li><a href="/books/core/#page-76">Teamwork</a> <span>76</span></li>
<li><a href="/books/core/#page-78">Sample Goal Clocks</a> <span>78</span></li>
<li><a href="/books/core/#page-82">Optional Conflict Rules</a> <span>82</span></li>
<li><a href="/books/core/#page-84">Hit Points and Mind Points</a> <span>84</span></li>
<li>
<a href="/books/core/#page-82">Optional Conflict Rules</a> <span>82</span>
</li>
<li>
<a href="/books/core/#page-84">Hit Points and Mind Points</a>
<span>84</span>
</li>
<li><a href="/books/core/#page-86">0 Hit Points</a> <span>86</span></li>
<li><a href="/books/core/#page-88">Sacrifice</a> <span>88</span></li>
<li><a href="/books/core/#page-89">Surrendering</a> <span>89</span></li>
@@ -61,7 +82,9 @@
<li><a href="/books/core/#page-101">Ultima Points</a> <span>101</span></li>
<li><a href="/books/core/#page-102">Escalation</a> <span>102</span></li>
<li><a href="/books/core/#page-104">Inventory Points</a> <span>104</span></li>
<li><a href="/books/core/#page-106">Journeys and Travels</a> <span>106</span></li>
<li>
<a href="/books/core/#page-106">Journeys and Travels</a> <span>106</span>
</li>
<li><a href="/books/core/#page-108">Dangers</a> <span>108</span></li>
<li><a href="/books/core/#page-109">Discoveries</a> <span>109</span></li>
<li><a href="/books/core/#page-110">Dungeons</a> <span>110</span></li>

View File

@@ -1,11 +1,21 @@
<ul>
<li><a href="/books/core/#page-120">Rituals during Conflicts</a> <span>120</span></li>
<li><a href="/books/core/#page-122">Economy and Items</a> <span>122</span></li>
<li><a href="/books/core/#page-124">Services and Transports</a> <span>124</span></li>
<li>
<a href="/books/core/#page-120">Rituals during Conflicts</a>
<span>120</span>
</li>
<li>
<a href="/books/core/#page-122">Economy and Items</a> <span>122</span>
</li>
<li>
<a href="/books/core/#page-124">Services and Transports</a> <span>124</span>
</li>
<li><a href="/books/core/#page-126">Equipment</a> <span>126</span></li>
<li><a href="/books/core/#page-126">Martial Items</a> <span>126</span></li>
<li><a href="/books/core/#page-130">Basic Weapons</a> <span>130</span></li>
<li><a href="/books/core/#page-132">Basic Armors and Shields</a> <span>132</span></li>
<li>
<a href="/books/core/#page-132">Basic Armors and Shields</a>
<span>132</span>
</li>
<li><a href="/books/core/#page-134">Projects</a> <span>134</span></li>
<li><a href="/books/core/#page-140">Group Dynamics</a> <span>140</span></li>
</ul>
@@ -15,8 +25,12 @@
<li><a href="/books/core/#page-146">Before You Start</a> <span>146</span></li>
<li><a href="/books/core/#page-148">World Creation</a> <span>148</span></li>
<li><a href="/books/core/#page-152">Group Creation</a> <span>152</span></li>
<li><a href="/books/core/#page-154">Character Creation</a> <span>154</span></li>
<li><a href="/books/core/#page-172">Classic Characters</a> <span>172</span></li>
<li>
<a href="/books/core/#page-154">Character Creation</a> <span>154</span>
</li>
<li>
<a href="/books/core/#page-172">Classic Characters</a> <span>172</span>
</li>
<li><a href="/books/core/#page-176">Arcanist</a> <span>176</span></li>
<li><a href="/books/core/#page-182">Chimerist</a> <span>182</span></li>
<li><a href="/books/core/#page-184">Darkblade</a> <span>184</span></li>
@@ -33,32 +47,60 @@
<li><a href="/books/core/#page-216">Wayfarer</a> <span>216</span></li>
<li><a href="/books/core/#page-218">Weaponmaster</a> <span>218</span></li>
<li><a href="/books/core/#page-220">Prologues</a> <span>220</span></li>
<li><a href="/books/core/#page-226">Experience and Levels</a> <span>226</span></li>
<li><a href="/books/core/#page-229">Creating High Level PCs</a> <span>229</span></li>
<li><a href="/books/core/#page-230">Optional Advancement Rules</a> <span>230</span></li>
<li>
<a href="/books/core/#page-226">Experience and Levels</a> <span>226</span>
</li>
<li>
<a href="/books/core/#page-229">Creating High Level PCs</a> <span>229</span>
</li>
<li>
<a href="/books/core/#page-230">Optional Advancement Rules</a>
<span>230</span>
</li>
<li><a href="/books/core/#page-232">Heroic Skills</a> <span>232</span></li>
</ul>
<h2>4. GAME MASTER</h2>
<ul>
<li><a href="/books/core/#page-244">The Game Master's Role</a> <span>244</span></li>
<li><a href="/books/core/#page-248">Character Classes</a> <span>248</span></li>
<li><a href="/books/core/#page-254">The Art of Villains</a> <span>254</span></li>
<li>
<a href="/books/core/#page-244">The Game Master's Role</a> <span>244</span>
</li>
<li>
<a href="/books/core/#page-248">Character Classes</a> <span>248</span>
</li>
<li>
<a href="/books/core/#page-254">The Art of Villains</a> <span>254</span>
</li>
<li><a href="/books/core/#page-258">Dungeons</a> <span>258</span></li>
<li><a href="/books/core/#page-264">Rewards</a> <span>264</span></li>
<li><a href="/books/core/#page-266">Designing Rare Items</a> <span>266</span></li>
<li><a href="/books/core/#page-268">Designing Rare Weapons</a> <span>268</span></li>
<li><a href="/books/core/#page-280">Designing Rare Armors and Shields</a> <span>280</span></li>
<li><a href="/books/core/#page-284">Designing Accessories</a> <span>284</span></li>
<li>
<a href="/books/core/#page-266">Designing Rare Items</a> <span>266</span>
</li>
<li>
<a href="/books/core/#page-268">Designing Rare Weapons</a> <span>268</span>
</li>
<li>
<a href="/books/core/#page-280">Designing Rare Armors and Shields</a>
<span>280</span>
</li>
<li>
<a href="/books/core/#page-284">Designing Accessories</a> <span>284</span>
</li>
<li><a href="/books/core/#page-288">Artifacts</a> <span>288</span></li>
<li><a href="/books/core/#page-292">Designing Battles</a> <span>292</span></li>
<li><a href="/books/core/#page-295">Elites and Champions</a> <span>295</span></li>
<li>
<a href="/books/core/#page-292">Designing Battles</a> <span>292</span>
</li>
<li>
<a href="/books/core/#page-295">Elites and Champions</a> <span>295</span>
</li>
<li><a href="/books/core/#page-300">Boss Battles</a> <span>300</span></li>
<li><a href="/books/core/#page-300">Designing NPCs</a> <span>300</span></li>
<li><a href="/books/core/#page-304">NPC Species</a> <span>304</span></li>
<li><a href="/books/core/#page-306">NPC Skills</a> <span>306</span></li>
<li><a href="/books/core/#page-310">NPC Spells</a> <span>310</span></li>
<li><a href="/books/core/#page-312">Sample Boss Designs</a> <span>312</span></li>
<li>
<a href="/books/core/#page-312">Sample Boss Designs</a> <span>312</span>
</li>
</ul>
<h2>5. BESTIARY</h2>
@@ -72,4 +114,4 @@
<li><a href="/books/core/#page-342">Monsters</a> <span>342</span></li>
<li><a href="/books/core/#page-346">Plants</a> <span>346</span></li>
<li><a href="/books/core/#page-350">Undead</a> <span>350</span></li>
</ul>
</ul>

File diff suppressed because it is too large Load Diff

View File

@@ -205,3 +205,160 @@ li.active .page-num {
padding-bottom: 0.8em;
margin-bottom: 1.4em;
}
/* ── Search modal ── */
.search-overlay {
position: fixed;
inset: 0;
background: rgba(0, 0, 0, 0.55);
z-index: 1000;
display: flex;
align-items: flex-start;
justify-content: center;
padding-top: 10vh;
}
.search-modal {
width: 580px;
max-width: calc(100vw - 40px);
max-height: 70vh;
background: var(--surface2);
border: 1px solid var(--border-bright);
display: flex;
flex-direction: column;
overflow: hidden;
}
.search-input {
width: 100%;
padding: 14px 16px;
background: var(--surface);
border: none;
border-bottom: 1px solid var(--border-bright);
color: var(--text);
font-family: var(--font-body);
font-size: 1rem;
outline: none;
flex-shrink: 0;
}
.search-input::placeholder { color: var(--text-dim); }
.search-results {
overflow-y: auto;
flex: 1;
list-style: none;
padding: 0;
margin: 0;
}
.search-result {
padding: 10px 16px;
border-bottom: 1px solid var(--border);
cursor: pointer;
display: flex;
flex-direction: column;
gap: 3px;
transition: background 0.1s;
}
.search-result:last-child { border-bottom: none; }
.search-result:hover,
.search-result.active { background: var(--surface3); }
.search-result-meta {
display: flex;
justify-content: space-between;
align-items: baseline;
gap: 8px;
}
.search-result-heading {
font-family: var(--font-display);
font-size: 0.7rem;
letter-spacing: 0.08em;
color: var(--teal);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
min-width: 0;
}
.search-result-page {
font-family: var(--font-mono);
font-size: 0.7rem;
color: var(--text-dim);
white-space: nowrap;
flex-shrink: 0;
}
.search-result-snippet {
font-size: 0.85rem;
color: var(--text-dim);
line-height: 1.5;
}
.search-result-snippet mark {
background: none;
color: var(--gold);
font-weight: 600;
}
.search-empty {
padding: 24px 16px;
text-align: center;
color: var(--text-dim);
font-family: var(--font-mono);
font-size: 0.8rem;
}
.search-footer {
display: flex;
gap: 16px;
padding: 7px 14px;
border-top: 1px solid var(--border);
background: var(--surface3);
flex-shrink: 0;
}
.search-footer span {
font-family: var(--font-mono);
font-size: 0.68rem;
color: var(--text-dim);
}
/* ── Heading permalink buttons ── */
.page-section h1,
.page-section h2,
.page-section h3 {
position: relative;
scroll-margin-top: 60px;
}
.heading-link {
position: absolute;
left: -24px;
top: 50%;
transform: translateY(-50%);
background: none;
border: none;
cursor: pointer;
color: var(--text-dim);
font-family: var(--font-mono);
font-size: 17px;
padding: 2px 4px;
line-height: 1;
transition: color 0.15s;
user-select: none;
}
/* h1 has padding-bottom: 0.3em — shift button up so it centers with the text line, not the full box */
.page-section h1 > .heading-link {
top: calc(50% - 5px);
}
.heading-link:hover,
.heading-link--copied {
color: var(--teal);
}

View File

49
scripts/spells-to-html.js Normal file
View File

@@ -0,0 +1,49 @@
#!/usr/bin/env node
const fs = require('node:fs')
const path = require('node:path')
const { parse } = require('yaml')
const ymlPath = path.join(__dirname, "..", "data", "spells.yml");
const data = parse(fs.readFileSync(ymlPath, "utf8"));
const columns = ["name", "cost", "targets", "duration"];
const myEscape = (s) =>
String(s ?? "")
.replace(/&/g, "&amp;")
.replace(/</g, "&lt;")
.replace(/>/g, "&gt;");
const generateTable = (spells, class_) => {
const rows = spells
.filter((elem) => elem.class === class_)
.map(
(spell) =>
` <tr>\n${columns.map((col) => ` <td>${myEscape(spell[col])}</td>`).join("\n")}\n </tr><tr><td colspan="4">${spell["description"]}</td></tr>`,
)
.join("\n");
const headers = columns
.map((col) => ` <th>${col.charAt(0).toUpperCase() + col.slice(1)}</th>`)
.join("\n");
return `<table>
<thead>
<tr>
${headers}
</tr>
</thead>
<tbody>
${rows}
</tbody>
</table>
`;
};
["arcanist", "chimerist", "elementalist", "entropist", "spiritist"].forEach(
(class_) => {
process.stdout.write(`<h2>${class_} Spells</h2>\n`)
process.stdout.write(generateTable(data.spells, class_));
},
);

View File

@@ -1,4 +1,5 @@
import React, { useState, useEffect, useRef, useCallback, useMemo } from 'react';
import SearchModal, { SearchEntry } from './SearchModal';
interface BookIndexProps {
title: string;
@@ -6,10 +7,63 @@ interface BookIndexProps {
pages: BookPage[];
}
function slugify(text: string): string {
return text
.toLowerCase()
.replace(/[^\w\s-]/g, '')
.replace(/\s+/g, '-')
.replace(/-+/g, '-')
.trim();
}
export default function BookIndex({ title, logoText, pages }: BookIndexProps) {
const pageNums = useMemo(() => pages.map(p => p.n), [pages]);
const total = pageNums.length;
// Single DOMParser pass per page: build search index then inject permalink buttons.
// Both outputs are stable memos so React's dangerouslySetInnerHTML diffing never
// strips the injected buttons on re-render.
const { processedPages, searchIndex } = useMemo(() => {
const parser = new DOMParser();
const slugCount: Record<string, number> = {};
const searchIndex: SearchEntry[] = [];
const processedPages = pages.map(({ n, content }) => {
const doc = parser.parseFromString(content, 'text/html');
// 1. Index text blocks before mutation so heading textContent has no '#' noise
let currentHeading = '';
doc.body.querySelectorAll('h1, h2, h3, p, li, blockquote, td').forEach(el => {
if (/^H[1-3]$/.test(el.tagName)) {
currentHeading = el.textContent?.trim() || '';
} else {
const text = el.textContent?.trim() || '';
if (text.length > 20) {
searchIndex.push({ pageNum: n, headingContext: currentHeading, text });
}
}
});
// 2. Add IDs and permalink buttons to headings
doc.querySelectorAll('h1, h2, h3').forEach(heading => {
const baseSlug = slugify(heading.textContent || '');
if (!baseSlug) return;
slugCount[baseSlug] = (slugCount[baseSlug] || 0) + 1;
const id = slugCount[baseSlug] === 1 ? baseSlug : `${baseSlug}-${slugCount[baseSlug] - 1}`;
heading.id = id;
const btn = doc.createElement('button');
btn.className = 'heading-link';
btn.setAttribute('aria-label', 'Copy permalink');
btn.textContent = '#';
heading.insertBefore(btn, heading.firstChild);
});
return { n, content: doc.body.innerHTML };
});
return { processedPages, searchIndex };
}, [pages]);
const [currentIdx, setCurrentIdx] = useState(() => {
const m = window.location.hash.match(/^#page-(\d+)$/);
if (m) {
@@ -19,6 +73,8 @@ export default function BookIndex({ title, logoText, pages }: BookIndexProps) {
return 0;
});
const [isSearchOpen, setIsSearchOpen] = useState(false);
const contentRef = useRef<HTMLDivElement>(null);
const goTo = useCallback((n: number, smooth: boolean, push: boolean) => {
@@ -66,9 +122,15 @@ export default function BookIndex({ title, logoText, pages }: BookIndexProps) {
return () => container.removeEventListener('scroll', handleScroll);
}, [pageNums]);
// Keyboard navigation
// Keyboard navigation (page-level) and search shortcut
useEffect(() => {
const handleKeyDown = (e: KeyboardEvent) => {
// Ctrl+K / Ctrl+F → open search
if ((e.ctrlKey || e.metaKey) && (e.key === 'k' || e.key === 'f')) {
e.preventDefault();
setIsSearchOpen(true);
return;
}
const tag = (e.target as HTMLElement).tagName;
if (tag === 'INPUT' || tag === 'TEXTAREA') return;
setCurrentIdx(prev => {
@@ -88,16 +150,61 @@ export default function BookIndex({ title, logoText, pages }: BookIndexProps) {
// Browser back/forward
useEffect(() => {
const handlePopState = () => {
const m = location.hash.match(/^#page-(\d+)$/);
if (m) {
const n = parseInt(m[1], 10);
const hash = location.hash.slice(1);
const pageM = hash.match(/^page-(\d+)$/);
if (pageM) {
const n = parseInt(pageM[1], 10);
if (pageNums.includes(n)) goTo(n, false, false);
} else if (hash) {
const target = document.getElementById(hash);
if (target) target.scrollIntoView({ behavior: 'smooth', block: 'start' });
}
};
window.addEventListener('popstate', handlePopState);
return () => window.removeEventListener('popstate', handlePopState);
}, [goTo, pageNums]);
// Event delegation for heading permalink buttons
useEffect(() => {
const container = contentRef.current;
if (!container) return;
const handleClick = (e: MouseEvent) => {
const btn = (e.target as Element).closest('.heading-link') as HTMLButtonElement | null;
if (!btn) return;
const id = btn.closest('h1, h2, h3')?.id;
if (!id) return;
e.preventDefault();
const url = `${window.location.origin}${window.location.pathname}#${id}`;
history.pushState(null, '', `#${id}`);
navigator.clipboard.writeText(url).catch(() => {
const ta = document.createElement('textarea');
ta.value = url;
document.body.appendChild(ta);
ta.select();
document.execCommand('copy');
document.body.removeChild(ta);
});
const prev = btn.textContent!;
btn.textContent = '✓';
btn.classList.add('heading-link--copied');
setTimeout(() => {
btn.textContent = prev;
btn.classList.remove('heading-link--copied');
}, 1500);
};
container.addEventListener('click', handleClick);
return () => container.removeEventListener('click', handleClick);
}, []);
// Scroll to heading hash on initial load
useEffect(() => {
const hash = window.location.hash.slice(1);
if (hash && !/^page-\d+$/.test(hash)) {
const target = document.getElementById(hash);
if (target) target.scrollIntoView({ behavior: 'instant', block: 'start' });
}
}, []); // eslint-disable-line react-hooks/exhaustive-deps
const currentPage = pageNums[currentIdx];
return (
@@ -105,6 +212,9 @@ export default function BookIndex({ title, logoText, pages }: BookIndexProps) {
<header>
<div className="logo">{logoText}</div>
<div className="toolbar">
<button className="tab" onClick={() => setIsSearchOpen(true)} title="Search (Ctrl+K)">
Search
</button>
<span id="page-indicator">{currentIdx + 1} / {total}</span>
</div>
</header>
@@ -153,7 +263,7 @@ export default function BookIndex({ title, logoText, pages }: BookIndexProps) {
</button>
</div>
<div id="content" ref={contentRef}>
{pages.map(({ n, content }) => (
{processedPages.map(({ n, content }) => (
<section
key={n}
id={`page-${n}`}
@@ -164,6 +274,14 @@ export default function BookIndex({ title, logoText, pages }: BookIndexProps) {
</div>
</div>
</div>
{isSearchOpen && (
<SearchModal
searchIndex={searchIndex}
onNavigate={n => goTo(n, false, true)}
onClose={() => setIsSearchOpen(false)}
/>
)}
</>
);
}

128
src/SearchModal.tsx Normal file
View File

@@ -0,0 +1,128 @@
import React, { useState, useEffect, useRef, useMemo, useCallback } from 'react';
export interface SearchEntry {
pageNum: number;
headingContext: string;
text: string;
}
interface Props {
searchIndex: SearchEntry[];
onNavigate: (pageNum: number) => void;
onClose: () => void;
}
function escapeHtml(s: string): string {
return s.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
}
function buildSnippetHtml(text: string, q: string): string {
const lo = text.toLowerCase();
const idx = lo.indexOf(q);
if (idx === -1) return escapeHtml(text.slice(0, 140)) + (text.length > 140 ? '…' : '');
const r = 65;
const s = Math.max(0, idx - r);
const e = Math.min(text.length, idx + q.length + r);
return (
(s > 0 ? '…' : '') +
escapeHtml(text.slice(s, idx)) +
`<mark>${escapeHtml(text.slice(idx, idx + q.length))}</mark>` +
escapeHtml(text.slice(idx + q.length, e)) +
(e < text.length ? '…' : '')
);
}
export default function SearchModal({ searchIndex, onNavigate, onClose }: Props) {
const [query, setQuery] = useState('');
const [activeIdx, setActiveIdx] = useState(0);
const inputRef = useRef<HTMLInputElement>(null);
const listRef = useRef<HTMLUListElement>(null);
useEffect(() => { inputRef.current?.focus(); }, []);
const results = useMemo(() => {
const q = query.trim().toLowerCase();
if (q.length < 2) return [];
const seen: Record<number, number> = {};
const out: { pageNum: number; headingContext: string; snippetHtml: string }[] = [];
for (const entry of searchIndex) {
if (out.length >= 40) break;
const hitText = entry.text.toLowerCase().includes(q);
const hitHeading = entry.headingContext.toLowerCase().includes(q);
if (!hitText && !hitHeading) continue;
const count = seen[entry.pageNum] ?? 0;
if (count >= 2) continue;
seen[entry.pageNum] = count + 1;
out.push({
pageNum: entry.pageNum,
headingContext: entry.headingContext,
snippetHtml: buildSnippetHtml(hitText ? entry.text : entry.headingContext, q),
});
}
return out;
}, [query, searchIndex]);
useEffect(() => { setActiveIdx(0); }, [results]);
useEffect(() => {
const el = listRef.current?.children[activeIdx] as HTMLElement | undefined;
el?.scrollIntoView({ block: 'nearest' });
}, [activeIdx]);
const go = useCallback((pageNum: number) => {
onNavigate(pageNum);
onClose();
}, [onNavigate, onClose]);
const handleKeyDown = (e: React.KeyboardEvent) => {
if (e.key === 'Escape') { onClose(); return; }
if (e.key === 'ArrowDown') { e.preventDefault(); setActiveIdx(i => Math.min(i + 1, results.length - 1)); }
if (e.key === 'ArrowUp') { e.preventDefault(); setActiveIdx(i => Math.max(i - 1, 0)); }
if (e.key === 'Enter' && results[activeIdx]) go(results[activeIdx].pageNum);
};
const q = query.trim();
return (
<div className="search-overlay" onClick={onClose}>
<div className="search-modal" onClick={e => e.stopPropagation()}>
<input
ref={inputRef}
className="search-input"
type="text"
placeholder="Search the rulebook…"
value={query}
onChange={e => setQuery(e.target.value)}
onKeyDown={handleKeyDown}
/>
{q.length < 2 ? (
<div className="search-empty">Type at least 2 characters</div>
) : results.length === 0 ? (
<div className="search-empty">No results for &ldquo;{q}&rdquo;</div>
) : (
<ul className="search-results" ref={listRef}>
{results.map((r, i) => (
<li
key={i}
className={`search-result${i === activeIdx ? ' active' : ''}`}
onClick={() => go(r.pageNum)}
onMouseEnter={() => setActiveIdx(i)}
>
<div className="search-result-meta">
<span className="search-result-heading">{r.headingContext || '—'}</span>
<span className="search-result-page">p.{r.pageNum}</span>
</div>
<div className="search-result-snippet" dangerouslySetInnerHTML={{ __html: r.snippetHtml }} />
</li>
))}
</ul>
)}
<div className="search-footer">
<span> navigate</span>
<span> go to page</span>
<span>esc close</span>
</div>
</div>
</div>
);
}

View File

@@ -85,6 +85,25 @@ module.exports = (env, argv) => {
...(isProd
? [new MiniCssExtractPlugin({ filename: "[name].[contenthash].css" })]
: []),
// Register book HTML source files as compilation dependencies so webpack
// watches them in dev mode and triggers a rebuild when they change.
{
apply(compiler) {
compiler.hooks.afterCompile.tap("WatchBookPages", (compilation) => {
const bookDirs = [
path.resolve(__dirname, "books/core"),
path.resolve(__dirname, "books/natural-fantasy-atlas"),
];
for (const dir of bookDirs) {
try {
fs.readdirSync(dir)
.filter(f => f.endsWith(".html") && f !== "index.html")
.forEach(f => compilation.fileDependencies.add(path.join(dir, f)));
} catch (_) {}
}
});
},
},
new HtmlWebpackPlugin({
template: "./src/fabula-ultima-sheet.html",
filename: "index.html",
@@ -92,7 +111,7 @@ module.exports = (env, argv) => {
scriptLoading: "blocking",
}),
new HtmlWebpackPlugin({
templateContent: bookTemplate(
templateContent: () => bookTemplate(
"Fabula Ultima - Core Rulebook",
"Core Rules",
"./books/core"
@@ -102,7 +121,7 @@ module.exports = (env, argv) => {
scriptLoading: "blocking",
}),
new HtmlWebpackPlugin({
templateContent: bookTemplate(
templateContent: () => bookTemplate(
"Fabula Ultima - Natural Fantasy Atlas",
"Natural Fantasy Atlas",
"./books/natural-fantasy-atlas"