various updates
This commit is contained in:
parent
a58d40278b
commit
65dc56c328
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "planar-vagabond",
|
||||
"version": "0.14.4",
|
||||
"version": "0.14.5",
|
||||
"description": "",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
|
6
src/assets/fragments/classes/combat-expertise.md
Normal file
6
src/assets/fragments/classes/combat-expertise.md
Normal file
@ -0,0 +1,6 @@
|
||||
1. **Berserker**: After striking a killing blow while in melee with multiple foes, may immediately make a free attack against another foe at –2.
|
||||
2. **Dual-Wielder**: Gains [Dual Wielding](/rules/combat.md#dual-wielding). If DEX > 13 and wielding both a one-handed weapon and a Light weapon in off hand, may make an attack with each one.
|
||||
3. **Hunter**: +1 to attack and damage rolls when in combat with foes of a specific type (ex: undead, clerics, dragons, giants, etc.). The type must be chosen when this talent is selected.
|
||||
4. **Leader**: Mercenaries or retainers under command and within 60' gain a +1 bonus to morale and loyalty checks. All allies within 60' get +1 bonus to saves against fear effects.
|
||||
5. **Specialist**: Expertise with a specific type of weapon (ex: whips, one-handed swords, crossbows, etc.) grants +1 to attack and damage rolls when using one.
|
||||
6. **Tank**: When in melee with a foe, any attacks the foe makes at anyone else get –2.
|
@ -47,10 +47,12 @@ const addRollerForm = () => {
|
||||
.map((roll) => {
|
||||
const result = dice.roll(roll),
|
||||
stringifiedResult = dice.stringify(result);
|
||||
/*
|
||||
console.log(
|
||||
{ roll, result, stringifiedResult },
|
||||
isExpressionRE.test(roll)
|
||||
);
|
||||
*/
|
||||
return `${stringifiedResult.replaceAll(
|
||||
'!!!mods listing not yet complete!!!',
|
||||
''
|
||||
@ -163,17 +165,20 @@ const shuffleContainer = (parentId) => {
|
||||
|
||||
setWildernessButton?.addEventListener('click', (e) => {
|
||||
e.preventDefault();
|
||||
setContainerContents(
|
||||
'js-complicationList',
|
||||
[
|
||||
'<li>Encounter</li>',
|
||||
'<li>Encounter *</li>',
|
||||
'<li>Signs / Portents</li>',
|
||||
'<li>Locality / Weather (2d4)</li>',
|
||||
'<li>Lose Way (1d3 hrs)</li>',
|
||||
'<li>No Complications</li>',
|
||||
].join('\n')
|
||||
);
|
||||
(distanceText = `<strong>${
|
||||
distanceTotal * 10
|
||||
} yards</strong><br /><em>[${distanceRolls}]</em>`),
|
||||
setContainerContents(
|
||||
'js-complicationList',
|
||||
[
|
||||
'<li>Encounter</li>',
|
||||
'<li>Encounter *</li>',
|
||||
'<li>Signs / Portents</li>',
|
||||
'<li>Locality / Weather (2d4)</li>',
|
||||
'<li>Lose Way (1d3 hrs)</li>',
|
||||
'<li>No Complications</li>',
|
||||
].join('\n')
|
||||
);
|
||||
});
|
||||
},
|
||||
addAstralComplicationForm = () => {
|
||||
@ -199,7 +204,15 @@ const reactionButtonVal = [
|
||||
'Amiable',
|
||||
'Friendly!',
|
||||
],
|
||||
rollEncounter = (sides = 1) => {
|
||||
rollDistance = (type = 'W', hasDoubles) => {
|
||||
// roll 2d6 for starting dungeon distance
|
||||
if (type !== 'W') return rollDice(6, 2);
|
||||
|
||||
// roll 4d6 (or 1d4, if any doubles above) for starting wilderness distance
|
||||
return hasDoubles ? rollDice(4) : rollDice(6, 4);
|
||||
},
|
||||
rollEncounter = (sides = 1, type = 'W') => {
|
||||
type = `${type}`.toUpperCase();
|
||||
// roll 3d8 for monsters, note doubles (first 2 / last 2 / first & last) / triples
|
||||
const [monsterTotal, ...monsterRolls] = rollDice(sides, 3),
|
||||
hasStealthParty =
|
||||
@ -210,17 +223,18 @@ const reactionButtonVal = [
|
||||
hasDoubles = hasStealthParty || hasStealthMonster,
|
||||
// roll 2d6 for reaction, note string & numeric value
|
||||
[reactionTotal, ...reactionRolls] = rollDice(6, 2),
|
||||
// roll 4d6 (or 1d4, if any doubles above) for starting distance
|
||||
[distanceTotal, ...distanceRolls] = hasDoubles
|
||||
? rollDice(4)
|
||||
: rollDice(6, 4),
|
||||
// roll for distance, see above
|
||||
[distanceTotal, ...distanceRolls] = rollDistance(type, hasDoubles),
|
||||
// Derived string and scores
|
||||
reactionText = `<strong>${
|
||||
reactionButtonVal[reactionTotal - 2]
|
||||
} (${reactionTotal})</strong><br /><em>[${reactionRolls}]</em>`,
|
||||
distanceText = `<strong>${
|
||||
distanceTotal * 10
|
||||
} yards</strong><br /><em>[${distanceRolls}]</em>`,
|
||||
distanceText = [
|
||||
`<strong>${distanceTotal * 10}`,
|
||||
type === 'W' ? ' yards' : "'",
|
||||
'</strong>',
|
||||
`<br /><em>[${distanceRolls}]</em>`,
|
||||
].join(''),
|
||||
encounterOutput = document.getElementById('js-encounterOutput'),
|
||||
outputTable = document.createElement('table');
|
||||
|
||||
@ -235,7 +249,9 @@ const reactionButtonVal = [
|
||||
const monsterRollText = `<strong>${monsterTotal}${surpriseText}</strong><br /><em>[${monsterRolls}]</em>`;
|
||||
|
||||
outputTable.innerHTML = [
|
||||
`<thead><th colspan="2">Encounter (3d${sides}): ${dayjs().format(
|
||||
`<thead><th colspan="2">${
|
||||
type === 'W' ? 'Wilderness' : 'Dungeon'
|
||||
} Encounter<br />(3d${sides}): ${dayjs().format(
|
||||
'YYYY-MM-DD HH:mm:ss'
|
||||
)}</th></thead>`,
|
||||
'<tbody>',
|
||||
@ -253,13 +269,11 @@ const reactionButtonVal = [
|
||||
formControls = document.createElement('div');
|
||||
formControls.innerHTML = [
|
||||
'<div class="encounterButtonsWrapper">',
|
||||
/*
|
||||
'<div class="encounterButtonsDungeonWrapper"><em>Dungeon</em><br />',
|
||||
'<button id="js-btnRollDungeonEncounter3d4">3d4</button>',
|
||||
'<button id="js-btnRollDungeonEncounter3d6">3d6</button>',
|
||||
'<button id="js-btnRollDungeonEncounter3d8">3d8</button>',
|
||||
'</div>',
|
||||
*/
|
||||
'<div class="encounterButtonsWildernessWrapper"><em>Wilderness</em><br />',
|
||||
'<button id="js-btnRollWildernessEncounter3d4">3d4</button>',
|
||||
'<button id="js-btnRollWildernessEncounter3d6">3d6</button>',
|
||||
@ -291,32 +305,32 @@ const reactionButtonVal = [
|
||||
if (rollDungeonEncounter3d4Button)
|
||||
rollDungeonEncounter3d4Button.addEventListener('click', (e) => {
|
||||
e.preventDefault();
|
||||
rollEncounter(4);
|
||||
rollEncounter(4, 'D');
|
||||
});
|
||||
if (rollDungeonEncounter3d6Button)
|
||||
rollDungeonEncounter3d6Button.addEventListener('click', (e) => {
|
||||
e.preventDefault();
|
||||
rollEncounter(6);
|
||||
rollEncounter(6, 'D');
|
||||
});
|
||||
if (rollDungeonEncounter3d8Button)
|
||||
rollDungeonEncounter3d8Button.addEventListener('click', (e) => {
|
||||
e.preventDefault();
|
||||
rollEncounter(8);
|
||||
rollEncounter(8, 'D');
|
||||
});
|
||||
if (rollWildernessEncounter3d4Button)
|
||||
rollWildernessEncounter3d4Button.addEventListener('click', (e) => {
|
||||
e.preventDefault();
|
||||
rollEncounter(4);
|
||||
rollEncounter(4, 'W');
|
||||
});
|
||||
if (rollWildernessEncounter3d6Button)
|
||||
rollWildernessEncounter3d6Button.addEventListener('click', (e) => {
|
||||
e.preventDefault();
|
||||
rollEncounter(6);
|
||||
rollEncounter(6, 'W');
|
||||
});
|
||||
if (rollWildernessEncounter3d8Button)
|
||||
rollWildernessEncounter3d8Button.addEventListener('click', (e) => {
|
||||
e.preventDefault();
|
||||
rollEncounter(8);
|
||||
rollEncounter(8, 'W');
|
||||
});
|
||||
};
|
||||
|
||||
|
@ -392,10 +392,10 @@ table th {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: start;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.encounterButtonsWildernessWrapper {
|
||||
.encounterButtonsWrapper > * {
|
||||
/* margin-left: auto; */
|
||||
border: 1px solid #e94e5c;
|
||||
border-radius: .3rem;
|
||||
@ -403,6 +403,7 @@ table th {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
.feature hr {
|
||||
border: 1px 0 0 0;
|
||||
border-color: #885c68;
|
||||
|
@ -35,7 +35,7 @@ var title = (page.title ?? '').replace('HOSR ', '');
|
||||
<div class="rulesMenu">
|
||||
<div class="rulesVersion">
|
||||
|
||||
Version 0.14.2 / 2024-03-24
|
||||
Version 0.14.5 / 2024-05-27
|
||||
<!--
|
||||
<%=site.version ?? '0.0.0' %>
|
||||
<%=site.lastUpdated ?? '0.0.0' %>
|
||||
|
@ -16,5 +16,7 @@ Any of a number of bird-like lizards, often found on "lost world" planes (or dre
|
||||
- [Brontosaurus](./brontosaurus.html): Massive, four-legged, herbivorous dinosaur, 70'+ long and weighing 30+ tons, with a (relatively) small head, long neck, and powerful tapering tail.
|
||||
- [Dimetrodon](./dimetrodon.html): Four-legged dinosaur, 10' long, with a "sail" of bony spines and skin webbing on its back.
|
||||
- [Plesiosaurus](./plesiosaurus.html): Lake-dwelling dinosaur, 40'+ long, with a long neck, snake-like head, and 4 flippers.
|
||||
- [Pterodactyl](./pterodactyl.html): Predatory, winged dinosaur with an 8-10' wingspan, and which typically preys on small or medium animals (unless very hungry).
|
||||
- [Pteranodon](./pteranodon.html): Aggressive, winged dinosaur with a wingspan of up to 50', and which often preys on humanoids.
|
||||
- [Triceratops](./triceratops.html): Four-legged, herbivorous dinosaur, 40' long and 12' high (at the shoulder), with a protective bone crest and three long horns on its head.
|
||||
- [Tyrannosaurus Rex](./tyrannosaurus-rex.html): Two-legged dinosaur, 20'+ tall, with enormous jaws and small arms that preys on animal of human size or bigger.
|
||||
|
25
src/pages/bestiary/dinosaurs/pteranodon.md
Normal file
25
src/pages/bestiary/dinosaurs/pteranodon.md
Normal file
@ -0,0 +1,25 @@
|
||||
---
|
||||
title: Pteranodon
|
||||
description: Aggressive, winged dinosaur with a wingspan of up to 50', and which often preys on humanoids.
|
||||
date_pub: 2024-04-28T20:26:28.000-04:00
|
||||
section: bestiary
|
||||
content_type: feature
|
||||
short_code: bd1py
|
||||
---
|
||||
|
||||
Aggressive, winged dinosaur with a wingspan of up to 50', and which often preys on humanoids.
|
||||
|
||||
<div class='headlessTableWrapper'>
|
||||
|
||||
| | |
|
||||
| ----------------- | ----------------------- |
|
||||
| **Hit Dice** | 5 (22hp) |
|
||||
| **Armor Class** | 13 |
|
||||
| **Attacks** | 1 (+4) @ 1d12 (bite) |
|
||||
| **Movement** | 80' flying |
|
||||
| **Saving Throws** | D12 W13 P14 B15 S16 (3) |
|
||||
| **Morale** | 8 |
|
||||
| **Alignment** | Neutral |
|
||||
| **XP** | 175 |
|
||||
|
||||
</div>
|
25
src/pages/bestiary/dinosaurs/pterodactyl.md
Normal file
25
src/pages/bestiary/dinosaurs/pterodactyl.md
Normal file
@ -0,0 +1,25 @@
|
||||
---
|
||||
title: Pterodactyl
|
||||
description: Predatory, winged dinosaur with an 8-10' wingspan, and which typically preys on small or medium animals (unless very hungry).
|
||||
date_pub: 2024-04-28T20:26:28.000-04:00
|
||||
section: bestiary
|
||||
content_type: feature
|
||||
short_code: bd1pt
|
||||
---
|
||||
|
||||
Predatory, winged dinosaur with an 8-10' wingspan, and which typically preys on small or medium animals (unless very hungry).
|
||||
|
||||
<div class='headlessTableWrapper'>
|
||||
|
||||
| | |
|
||||
| ----------------- | ----------------------- |
|
||||
| **Hit Dice** | 1 (4hp) |
|
||||
| **Armor Class** | 12 |
|
||||
| **Attacks** | 1 (+0) @ 1d3 (bite) |
|
||||
| **Movement** | 60' flying |
|
||||
| **Saving Throws** | D12 W13 P14 B15 S16 (1) |
|
||||
| **Morale** | 7 |
|
||||
| **Alignment** | Neutral |
|
||||
| **XP** | 10 |
|
||||
|
||||
</div>
|
62
src/pages/bestiary/oyster-giant.md
Normal file
62
src/pages/bestiary/oyster-giant.md
Normal file
@ -0,0 +1,62 @@
|
||||
---
|
||||
title: Giant Oyster
|
||||
description:
|
||||
date_pub: 2024-05-19T21:33:22.000-04:00
|
||||
section: bestiary
|
||||
content_type: feature
|
||||
short_code: b0g
|
||||
status: hidden
|
||||
---
|
||||
|
||||
A large oyster, big enough to swallow a humanoid, often found with a pearl inside.
|
||||
|
||||
<div class='headlessTableWrapper'>
|
||||
|
||||
| | |
|
||||
| ----------------- | ----------------------- |
|
||||
| **Hit Dice** | 10 (55hp) |
|
||||
| **Armor Class** | 14 open / 21 closed |
|
||||
| **Attacks** | 1 (+7) @ 4d6 (bite) |
|
||||
| **Movement** | 0 |
|
||||
| **Saving Throws** | D10 W11 P12 B13 S14 (5) |
|
||||
| **Morale** | None |
|
||||
| **Alignment** | Neutral |
|
||||
| **XP** | 900 |
|
||||
|
||||
</div>
|
||||
|
||||
- 80% chance found open.
|
||||
- Closes when attacked.
|
||||
- When closed, opens in 1d4 turns.
|
||||
|
||||
### Pearl
|
||||
|
||||
- X% chance has a pearl, roll to determine type / value
|
||||
- white, golden, pink, or silver = 1k
|
||||
- blue, green, or bronze = 2k
|
||||
- black, purple = 3k gp
|
||||
|
||||
| 1d20 | Size | Color | Value (gp) |
|
||||
| :--: | :---: | :-----: | :--------: |
|
||||
| 1-2 | Small | Nothing | - |
|
||||
| 3 | Small | Gold | 100 |
|
||||
| 4 | Small | Pink | 100 |
|
||||
| 5 | Small | Silver | 100 |
|
||||
| 6 | Small | White | 100 |
|
||||
| 7 | Small | Blue | 250 |
|
||||
| 8 | Small | Green | 250 |
|
||||
| 9 | Small | Bronze | 250 |
|
||||
| 10 | Small | Black | 500 |
|
||||
| 11 | Small | Purple | 500 |
|
||||
| 12 | Large | Gold | 1000 |
|
||||
| 13 | Large | Pink | 1000 |
|
||||
| 14 | Large | Silver | 1000 |
|
||||
| 15 | Large | White | 1000 |
|
||||
| 16 | Large | Blue | 2000 |
|
||||
| 17 | Large | Green | 2000 |
|
||||
| 18 | Large | Bronze | 2000 |
|
||||
| 19 | Large | Black | 5000 |
|
||||
| 20 | Large | Purple | 5000 |
|
||||
|
||||
- Pearl may be picked like a pocket (15% base chance for those without the skill).
|
||||
- On fail, oyster closes - roll for attack against PC, on hit, character is trapped inside
|
@ -24,7 +24,6 @@ Humanoid cursed to shapeshift into an intelligent owl.
|
||||
|
||||
</div>
|
||||
|
||||
- Heals 3 HP at the end of each round of combat that it doesn't take damage.
|
||||
- When encountered while flying, 66% (4-in-6) chance of having stealth / surprise.
|
||||
|
||||
### As Spellcasters
|
||||
|
@ -26,11 +26,11 @@ Corsairs are adventurers who live by their talents on the high seas, offering a
|
||||
|
||||
### Boarding
|
||||
|
||||
- Don't suffer the usual boarding penalty to attack rolls and Armor Class when boarding.
|
||||
- Ignores the usual boarding penalty to attack rolls and Armor Class when boarding.
|
||||
|
||||
### Corsair Skills
|
||||
|
||||
- For most, roll 1d100, result under score is success. For hear noise (HN), use 1d6.
|
||||
- For most, roll 1d100, result under score is success.
|
||||
- Referee should roll in secret for move silently (MS).
|
||||
|
||||
<div class="dividedTableWrapper">
|
||||
@ -73,11 +73,11 @@ From 3rd level, 2-in-6 chance of knowing lore pertaining to creatures, magic ite
|
||||
|
||||
When attacking an unaware opponent from behind, the attack gets +4 and it deals double damage.
|
||||
|
||||
### Start Crew
|
||||
### Establish Crew
|
||||
|
||||
From 9th level, can establish a crew.
|
||||
|
||||
- Attracts 2d6 sailors of 1st level who will serve with some reliability and may be used to run one or more ships.
|
||||
- Attracts 2d6 sailors of 1st level who will serve with some reliability (more of which can be bought) and may be used to run one or more ships.
|
||||
|
||||
### Advancement
|
||||
|
||||
|
@ -27,17 +27,14 @@ An adventurer that specializes in combat.
|
||||
|
||||
Pick one at 2nd, 6th, 10th, and 14th level.
|
||||
|
||||
1. **Berserker**: After striking a killing blow while in melee with multiple foes, may immediately make a free attack against another foe at –2.
|
||||
2. **Dual-Wielder**: Gains [Dual Wielding](/rules/combat.md#dual-wielding). If DEX > 13 and wielding both a one-handed weapon and a Light weapon in off hand, may make an attack with each one.
|
||||
3. **Hunter**: +1 to attack and damage rolls when in combat with foes of a specific type (ex: undead, clerics, dragons, giants, etc.). The type must be chosen when this talent is selected.
|
||||
4. **Leader**: Mercenaries or retainers under command and within 60' gain a +1 bonus to morale and loyalty checks. All allies within 60' get +1 bonus to saves against fear effects.
|
||||
5. **Specialist**: Expertise with a specific type of weapon (ex: whips, one-handed swords, crossbows, etc.) grants +1 to attack and damage rolls when using one.
|
||||
6. **Tank**: When in melee with a foe, any attacks the foe makes at anyone else get –2.
|
||||
!!!include(classes/combat-expertise.md)!!!
|
||||
|
||||
### Stronghold
|
||||
|
||||
Can buy or build a castle or stronghold (and control surrounding lands) at any time they can be afforded.
|
||||
|
||||
- Once established, attracts 5d4 x 10 apprentice fighters (level 1–2).
|
||||
|
||||
### Advancement
|
||||
|
||||
<div class="dividedTableWrapper levelTable">
|
||||
|
98
src/pages/classes/gunfighter.md
Normal file
98
src/pages/classes/gunfighter.md
Normal file
@ -0,0 +1,98 @@
|
||||
---
|
||||
title: Gunfighter
|
||||
description: The Gunfighter class for OSR
|
||||
date_pub: 2024-05-26T13:23:46.000-04:00
|
||||
section: classes
|
||||
content_type: feature
|
||||
short_code: cgf
|
||||
status: hidden
|
||||
---
|
||||
|
||||
<div class='headlessTableWrapper'>
|
||||
|
||||
| | |
|
||||
| ----------------- | ----------------------------------------- |
|
||||
| **Hit Dice** | 1d8 |
|
||||
| **Maximum Level** | 14 |
|
||||
| **Armor** | Leather, chainmail, no shields |
|
||||
| **Weapons** | Missile weapons, one-handed melee weapons |
|
||||
| **Languages** | Alignment, Common |
|
||||
|
||||
</div>
|
||||
|
||||
- abilities similar to fighter
|
||||
- multiple shots at higher levels
|
||||
- pistols are like higher damage / quicker crossbows
|
||||
- does there need to be a limit to how many shells they can carry, maybe by level?
|
||||
|
||||
### Combat Expertise
|
||||
|
||||
Pick one at 3rd, 7th, and 11th level.
|
||||
|
||||
!!!include(classes/combat-expertise.md)!!!
|
||||
|
||||
### Pistols
|
||||
|
||||
All gunfighters use very rare, 6-shot firearms with rotating cylinders called **Pistols**.
|
||||
|
||||
- Gunfighters begin with two Pistols, and can never own more than those two.
|
||||
|
||||
<div class="dividedTableWrapper">
|
||||
|
||||
| Weapon | Weight | Damage | Properties |
|
||||
| ------ | ------ | ------ | --------------------------------------------- |
|
||||
| Pistol | 5 lbs | 1d8 | Loud, Missile (5’–80’ / 81’–160’ / 161’–240’) |
|
||||
|
||||
</div>
|
||||
|
||||
#### New Weapon Properties
|
||||
|
||||
- **Loud**: The first use of [missile attack](/rules/combat.html#missile-attacks) triggers a [complication check](/rules/adventuring.html#complication-check).
|
||||
- Also causes untrained animals (and some smaller humanoids, 2HD or less) to make a morale check or flee.
|
||||
|
||||
#### Ammo
|
||||
|
||||
Pistol ammo is exceedingly rare, and its creation is a secret known only to gunfighters.
|
||||
|
||||
- Each piece of ammo is called a bullet, and is made from an outer steel shell, an inner metal (or stone) slug, and mix of minerals which create the fire that propels the slug out of the barrel of the pistol.
|
||||
- Shells are usually collected and reused, although some blacksmiths may be able to make new shells (at a steep price).
|
||||
- Other required components can usually be foraged / harvested from the environment.
|
||||
- Starting gunslingers begin with 6 + level bullets.
|
||||
- Creating new ammo from component parts takes 1 hour to make a number of bullets equal to the gunfighter's level.
|
||||
|
||||
### Dual-Wield Pistols
|
||||
|
||||
Starting at level 5, gains [Dual Wielding](/rules/combat.md#dual-wielding) while holding either two Pistols, or one Pistol and a light weapon.
|
||||
|
||||
### Stronghold
|
||||
|
||||
- After 9th level, can establish or build a stronghold.
|
||||
- Once established, attracts 1d4 x 10 apprentice gunfighters (level 1–2).
|
||||
|
||||
### Advancement
|
||||
|
||||
<div class="dividedTableWrapper levelTable">
|
||||
|
||||
| Level | XP | HD | Atk<br />Mod | Saving Throws ||||||
|
||||
| ^^ | ^^ | ^^ | ^^ | D[^1] | W[^1] | P[^1] | B[^1] | S[^1] |
|
||||
| :---: | :-----: | :-----: | :-----: | :---: | :---: | :---: | :---: | :---: |
|
||||
| 1 | 0 | 1d8 | 0 | 12 | 13 | 14 | 15 | 16 |
|
||||
| 2 | 2,000 | 2d8 | 0 | 12 | 13 | 14 | 15 | 16 |
|
||||
| 3 | 4,000 | 3d8 | 0 | 12 | 13 | 14 | 15 | 16 |
|
||||
| 4 | 8,000 | 4d8 | +2 | 10 | 11 | 12 | 13 | 14 |
|
||||
| 5 | 16,000 | 5d8 | +2 | 10 | 11 | 12 | 13 | 14 |
|
||||
| 6 | 32,000 | 6d8 | +2 | 10 | 11 | 12 | 13 | 14 |
|
||||
| 7 | 64,000 | 7d8 | +5 | 8 | 9 | 10 | 10 | 12 |
|
||||
| 8 | 120,000 | 8d8 | +5 | 8 | 9 | 10 | 10 | 12 |
|
||||
| 9 | 240,000 | 9d8 | +5 | 8 | 9 | 10 | 10 | 12 |
|
||||
| 10 | 360,000 | 9d8+2 | +7 | 6 | 7 | 8 | 8 | 10 |
|
||||
| 11 | 480,000 | 9d8+4 | +7 | 6 | 7 | 8 | 8 | 10 |
|
||||
| 12 | 600,000 | 9d8+6 | +7 | 6 | 7 | 8 | 8 | 10 |
|
||||
| 13 | 720,000 | 9d8+8 | +9 | 4 | 5 | 6 | 5 | 8 |
|
||||
| 14 | 840,000 | 9d8+10 | +9 | 4 | 5 | 6 | 5 | 8 |
|
||||
|
||||
[Level Advancement]
|
||||
|
||||
[^1]: D: Death; W: Wielded; P: Paralyze; B: Blasts; S: Spells
|
||||
|
||||
</div>
|
20
src/pages/magic-items/disc-of-flying.md
Normal file
20
src/pages/magic-items/disc-of-flying.md
Normal file
@ -0,0 +1,20 @@
|
||||
---
|
||||
title: Disc of Flying
|
||||
description: A magical device which carries passengers through the air.
|
||||
date_pub: 2024-04-28T20:58:41.000-04:00
|
||||
section: magic items
|
||||
content_type: feature
|
||||
short_code: m1df
|
||||
status: hidden
|
||||
---
|
||||
|
||||
A circular disc, 10' in diameter and with a 1' diameter hole in the center, made of a super-thin, flexible, paper-like substance with a silvery, pearlescent color.
|
||||
|
||||
- Can be folded and rolled up like a scroll, or folded up like paper and put into a bag or pocket.
|
||||
- Anyone touching it instinctively knows they can use a mental command to activate it it, whereupon it instantly flattens itself and hovers 2' off the ground.
|
||||
- The person who activated it remains in control of it until they deactivate it with a mental command (which they instinctively know upon activation).
|
||||
- Once unrolled, it can fly through the air, carrying up to 5 humanoid passengers (plus gear) at indicated speed:
|
||||
- 1 passenger: 100’
|
||||
- 2-3 passengers: 80’
|
||||
- 4-5 passengers: 60’
|
||||
- While flying, bottom can be made to either glow brightly (60' radius) or render the passengers invisible from below.
|
@ -15,7 +15,7 @@ short_code: rfr
|
||||
| | |
|
||||
| --------------------- | --------------------------------------- |
|
||||
| **Requirements** | None |
|
||||
| **Ability modifiers** | +DEX, -WIS |
|
||||
| **Ability modifiers** | +1 DEX, -1 WIS |
|
||||
| **Languages** | Alignment, Common, any 1 other language |
|
||||
|
||||
</div>
|
||||
|
@ -305,7 +305,31 @@ Characters can carry a number of "Important Items", based on their Strength (STR
|
||||
|
||||
### Health, Damage and Dying
|
||||
|
||||
Starting HP is based class and race. When damage is taken, HP is lost.
|
||||
The state of a character's health is determined by their number of hit points (HP).
|
||||
|
||||
- Starting HP is usually determined by class and level.
|
||||
- The type of Hit Dice to throw is determined by class
|
||||
- The number of Hit Dice to throw is determined by level.
|
||||
- Re-roll any 1s or 2s.
|
||||
- Modify the rolled value of each die by CON as below:
|
||||
|
||||
<div class="dividedTableWrapper">
|
||||
|
||||
| CHA | Mod |
|
||||
| :---: | :-: |
|
||||
| 3 | -3 |
|
||||
| 4-5 | -2 |
|
||||
| 6-8 | -1 |
|
||||
| 9-12 | +0 |
|
||||
| 13-15 | +1 |
|
||||
| 16-17 | +2 |
|
||||
| 18+ | +3 |
|
||||
|
||||
[Constitution Modifier]
|
||||
|
||||
</div>
|
||||
|
||||
- When damage is taken, HP is lost.
|
||||
|
||||
#### Dying
|
||||
|
||||
@ -314,6 +338,7 @@ Starting HP is based class and race. When damage is taken, HP is lost.
|
||||
- On success, stabilize at 1 HP (no need to continue saving vs death), but can't fight and can only move 1/2 speed until treated or healed.
|
||||
- On fail, lose 1 HP to blood loss and try again next round.
|
||||
- At -(level) HP (or lower), save or die.
|
||||
- PCs should never die from a single bad roll, but two bad rolls is enough.
|
||||
|
||||
#### Healing
|
||||
|
||||
|
@ -78,7 +78,7 @@ Cosmic principles that represent broad world views
|
||||
|
||||
### Character Creation
|
||||
|
||||
1. Roll Abilities.
|
||||
1. Roll Ability Scores.
|
||||
|
||||
- Roll 4d6 and keep the highest 3 (aka "4d6KH3") for each ability.
|
||||
- Either roll 4d6KH3 once for each ability in order and see what kind of character comes up, or make all 6 rolls and assign the results to fit a particular class and/or race.
|
||||
@ -87,9 +87,10 @@ Cosmic principles that represent broad world views
|
||||
2. Choose a [Class](/classes/) (and, optionally, a [Race](/races/) besides human).
|
||||
3. Determine Starting Level.
|
||||
- If playing a legacy character, update starting XP appropriately.
|
||||
4. Roll Starting Hit Points.
|
||||
4. Roll [Starting Hit Points](./adventuring.md#health-damage-and-dying).
|
||||
- Type is determined by class, number is determined by level.
|
||||
- Re-roll any 1s or 2s.
|
||||
- Modify the rolled value by CON modifier.
|
||||
5. Choose [Alignment](#alignment).
|
||||
6. Note [Starting Languages](./adventuring.html#languages).
|
||||
7. Buy [Equipment](./equipment/fantasy.html).
|
||||
|
@ -6,7 +6,6 @@ section: spells
|
||||
content_type: feature
|
||||
short_code: ses
|
||||
tags: arcane
|
||||
status: hidden
|
||||
---
|
||||
|
||||
<div class='headlessTableWrapper'>
|
||||
|
@ -42,5 +42,5 @@ Caster or target creature shrinks to 6" in size.
|
||||
- While shrunk:
|
||||
- Target is unable to harm creatures over 1' tal.
|
||||
- Target can maneuver through narrow spaces (1" clearance minimum).
|
||||
- 10% chance of being scene while holding still.
|
||||
- 10% chance of being seen while holding still.
|
||||
- Can also be used to negate the effects of a **Grow** spell, restoring the target to original size.
|
||||
|
@ -9,19 +9,23 @@ short_code: s1
|
||||
|
||||
Below you'll find a growing list of magic spells from across the multiverse.
|
||||
|
||||
- [Ball of Fire (3A)](./ball-of-fire.html)
|
||||
- [Befriend Animal (1 AD)](./befriend-animal.html)
|
||||
- [Black Tentacles (4 AD)](./black-tentacles.html)
|
||||
- [Bolt of Lightning (3A)](./bolt-of-lightning.html)
|
||||
- [Calm / Scare (1 AD)](./calm.html)
|
||||
- [Color Spray (1 A)](./color-spray.html)
|
||||
- [Continual Light / Continual Darkness (2 AD)](./continual-light.html)
|
||||
- [Cure Light Wounds / Cause Light Wounds (1 D)](./cure-light-wounds.html)
|
||||
- [Detect Magic (1 ADR)](./detect-magic.html)
|
||||
- [Dimension Jump (4 A)](./dimension-jump.html)
|
||||
- [Explosive Script (3A)](./explosive-script.html)
|
||||
- [Fly (3 A)](./fly.html)
|
||||
- [Glamour (1 A)](./glamour.html)
|
||||
- [Grow / Shrink 1 A)](./grow.html)
|
||||
- [Haste / Slow (3 AD)](./haste.html)
|
||||
- [Hidden Step (2 A)](./hidden-step.html)
|
||||
- [Hypnotize (1A)](./hypnotize.html)
|
||||
- [Illusory Terrain (4 A)](./illusory-terrain.html)
|
||||
- [Improved Invisibility (4 A)](./improved-invisibility.html)
|
||||
- [Invisibility (2 A)](./invisibility.html)
|
||||
|
@ -32,14 +32,12 @@ short_code: t1
|
||||
<ul class="rollerOutput" id="js-rollerOutput"></ul>
|
||||
<p class="rollerLink">Powered by <a href="https://github.com/lordnull/dice.js" target="_blank">Dice.js</a></p>
|
||||
</details>
|
||||
<details class="toolDetails" open>
|
||||
<details class="toolDetails" open>
|
||||
<summary>
|
||||
<h3>Dungeon Room Populator</h3>
|
||||
<h3>Encounter Roller</h3>
|
||||
</summary>
|
||||
<form id="js-roomForm">
|
||||
<input type="submit" value="Roll Room" />
|
||||
</form>
|
||||
<ul class="roomOutput" id="js-roomOutput"></ul>
|
||||
<form id="js-encounterForm"></form>
|
||||
<div class="encounterOutput" id="js-encounterOutput"></ul>
|
||||
</details>
|
||||
<details class="toolDetails" open>
|
||||
<summary>
|
||||
@ -71,7 +69,15 @@ short_code: t1
|
||||
<li>No Complications</li>
|
||||
</ol>
|
||||
</details>
|
||||
<details class="toolDetails" open>
|
||||
<summary>
|
||||
<h3>Dungeon Room Populator</h3>
|
||||
</summary>
|
||||
<form id="js-roomForm">
|
||||
<input type="submit" value="Roll Room" />
|
||||
</form>
|
||||
<ul class="roomOutput" id="js-roomOutput"></ul>
|
||||
</details>
|
||||
</div>
|
||||
|
||||
- [Referee's Screen](/tools/referee-screen.html)
|
||||
|
||||
</div>
|
||||
|
Loading…
Reference in New Issue
Block a user