diff --git a/.gitignore b/.gitignore index 567fcbd..a083bb6 100644 --- a/.gitignore +++ b/.gitignore @@ -20,4 +20,3 @@ vendor/ # OS files .DS_Store -inklings.md diff --git a/.ruby-version b/.ruby-version index ff365e0..fa7adc7 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.1.3 +3.3.5 diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ec9e9a..fb9be7c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,23 @@ nav_exclude: TRUE {:toc} +## v0.4.4 + +- Added + - include for backgrounds + - Campaign prefooter, with timeline built in Jekyll + - Cairn procedures +- Changed: + - Critical Damage now takes a wound, from Liminal Horror + - Burdens is deprecated, and Fatigue tracks current WIL + - Statblocks for locations, NPCs and PCs + - New nav_footer + - connected_to is a Jekyll liquid implementation with a Python-build connection graph in yml +- Under the hood: + - ruby version upgrade +- Fixed: + - redirects on System + ## v0.4.3 - Added: diff --git a/README.md b/README.md index 4513744..0c097e5 100644 --- a/README.md +++ b/README.md @@ -87,6 +87,16 @@ Assuming [Jekyll] and [Bundler] are installed on your computer: and then browse to http://localhost:4000. +## Building and previewing your site locally + +Using the `Connected_to` feature requires running a script to map pages interlinks, and generate the `_data/markdown_links.json`file. +To do so as a command line to run the script while building locally, making sure you update the links often. + +``` +python3 extract_links.py . +bundle exec jekyll serve +``` + ## Customization You're free to customize sites that you create with this template, however you like! diff --git a/_config.yml b/_config.yml index fd28e28..79c274c 100644 --- a/_config.yml +++ b/_config.yml @@ -2,7 +2,7 @@ title: Template description: A template for an RPG campaign Jeykll site using the Just the Docs theme. theme: just-the-docs -url: https://terra-campaigns.github.io/ +url: https://terra-campaigns.github.io/template permalink: pretty plugins: @@ -24,8 +24,8 @@ favicon_ico: "/imgs/favicon.ico" color_scheme: site # Back to top link -back_to_top: true -back_to_top_text: "Back to top" +# back_to_top: true +# back_to_top_text: "Back to top" # Footer "Edit this page on GitHub" link text gh_edit_link: true # show or hide edit this page link diff --git a/_data/markdown_links.json b/_data/markdown_links.json new file mode 100644 index 0000000..62d3f62 --- /dev/null +++ b/_data/markdown_links.json @@ -0,0 +1,685 @@ +{ + "file": { + "CHANGELOG.md": [ + { + "text": "https://github.com/terra-campaigns/template", + "url": "https://github.com/terra-campaigns/template", + "is_internal": false, + "direction": "outbound", + "favicon": "https://github.com/favicon.ico" + }, + { + "text": "https://terra-campaigns.github.io/degenesis/", + "url": "https://terra-campaigns.github.io/degenesis/", + "is_internal": false, + "direction": "outbound", + "favicon": "https://terra-campaigns.github.io/favicon.ico" + }, + { + "text": "Cairn", + "url": "https://cairnrpg.com/hacks/fork-this/", + "is_internal": false, + "direction": "outbound", + "favicon": "https://cairnrpg.com/favicon.ico" + }, + { + "text": "Terra System", + "url": "https://terra-campaigns.github.io/terraSystem/", + "is_internal": false, + "direction": "outbound", + "favicon": "https://terra-campaigns.github.io/favicon.ico" + }, + { + "text": "CHANGELOG", + "url": "_includes/srd_modules/srd_version.md", + "is_internal": true, + "direction": "inbound" + } + ], + "README.md": [ + { + "text": "instructions for macOS", + "url": "https://jekyllrb.com/docs/installation/macos/", + "is_internal": false, + "direction": "outbound", + "favicon": "https://jekyllrb.com/favicon.ico" + }, + { + "text": "Degenesis", + "url": "https://terra-campaigns.github.io/degenesis/", + "is_internal": false, + "direction": "outbound", + "favicon": "https://terra-campaigns.github.io/favicon.ico" + }, + { + "text": "Ruin mechanic", + "url": "core-rules.md#Ruin", + "is_internal": true, + "direction": "outbound", + "favicon": null + }, + { + "text": "Oddular Mechanics", + "url": "https://www.bastionland.com/2016/04/oddular-mechanics.html?m=1", + "is_internal": false, + "direction": "outbound", + "favicon": "https://www.bastionland.com/favicon.ico" + }, + { + "text": "Backgrounds", + "url": "../template/_includes/srd_modules/hp.md#Backgrounds", + "is_internal": true, + "direction": "outbound", + "favicon": null + }, + { + "text": "Bonds", + "url": "../template/_includes/srd_modules/hp.md#Bonds", + "is_internal": true, + "direction": "outbound", + "favicon": null + }, + { + "text": "Yochai Gal", + "url": "https://newschoolrevolution.com", + "is_internal": false, + "direction": "outbound", + "favicon": "https://newschoolrevolution.com/favicon.ico" + }, + { + "text": "Cairn", + "url": "https://cairnrpg.com/", + "is_internal": false, + "direction": "outbound", + "favicon": "https://cairnrpg.com/favicon.ico" + }, + { + "text": "Knave", + "url": "https://www.drivethrurpg.com/product/250888/Knave", + "is_internal": false, + "direction": "outbound", + "favicon": "https://www.drivethrurpg.com/favicon.ico" + }, + { + "text": "Into The Odd", + "url": "https://chrismcdee.itch.io/electric-bastionland", + "is_internal": false, + "direction": "outbound", + "favicon": "https://chrismcdee.itch.io/favicon.ico" + }, + { + "text": "^1]: [It can take up to 10 minutes for changes to your site to publish after you push the changes to GitHub", + "url": "https://docs.github.com/en/pages/setting-up-a-github-pages-site-with-jekyll/creating-a-github-pages-site-with-jekyll#creating-your-site", + "is_internal": false, + "direction": "outbound", + "favicon": "https://docs.github.com/favicon.ico" + } + ], + "core-rules.md#Ruin": [ + { + "text": "Ruin mechanic", + "url": "README.md", + "is_internal": true, + "direction": "inbound" + } + ], + "../template/_includes/srd_modules/hp.md#Backgrounds": [ + { + "text": "Backgrounds", + "url": "README.md", + "is_internal": true, + "direction": "inbound" + } + ], + "../template/_includes/srd_modules/hp.md#Bonds": [ + { + "text": "Bonds", + "url": "README.md", + "is_internal": true, + "direction": "inbound" + } + ], + "_includes/srd_modules/hp.md": [ + { + "text": "Healing & Recovery", + "url": "_includes/srd_modules/core-rules.md#Healing%20&%20Recovery", + "is_internal": true, + "direction": "outbound", + "favicon": null + }, + { + "text": "Scars", + "url": "_includes/srd_modules/core-rules.md#Scars", + "is_internal": true, + "direction": "outbound", + "favicon": null + } + ], + "_includes/srd_modules/core-rules.md#Healing%20&%20Recovery": [ + { + "text": "Healing & Recovery", + "url": "_includes/srd_modules/hp.md", + "is_internal": true, + "direction": "inbound" + } + ], + "_includes/srd_modules/core-rules.md#Scars": [ + { + "text": "Scars", + "url": "_includes/srd_modules/hp.md", + "is_internal": true, + "direction": "inbound" + } + ], + "_includes/srd_modules/srd_version.md": [ + { + "text": "CHANGELOG", + "url": "CHANGELOG.md", + "is_internal": true, + "direction": "outbound", + "favicon": null + }, + { + "text": "Cairn 2e", + "url": "https://cairnrpg.com/", + "is_internal": false, + "direction": "outbound", + "favicon": "https://cairnrpg.com/favicon.ico" + }, + { + "text": "Yochai Gal", + "url": "https://newschoolrevolution.com/", + "is_internal": false, + "direction": "outbound", + "favicon": "https://newschoolrevolution.com/favicon.ico" + }, + { + "text": "Mark of the Odd", + "url": "https://www.bastionland.com/2020/11/mark-of-odd-licence-and-srd.html", + "is_internal": false, + "direction": "outbound", + "favicon": "https://www.bastionland.com/favicon.ico" + }, + { + "text": "Chris McDowall", + "url": "https://www.bastionland.com", + "is_internal": false, + "direction": "outbound", + "favicon": "https://www.bastionland.com/favicon.ico" + }, + { + "text": "https://github.com/terra-campaigns/template", + "url": "https://github.com/terra-campaigns/template", + "is_internal": false, + "direction": "outbound", + "favicon": "https://github.com/favicon.ico" + }, + { + "text": "CC-BY-SA 4.0", + "url": "https://creativecommons.org/licenses/by-sa/4.0\\", + "is_internal": false, + "direction": "outbound", + "favicon": "https://creativecommons.org/favicon.ico" + } + ], + "_includes/srd_modules/npcs.md": [ + { + "text": "Hirelings", + "url": "/wip/2e/marketplace#hirelings-per-day", + "is_internal": true, + "direction": "outbound", + "favicon": null + }, + { + "text": "**background**", + "url": "/wip/2e/character-creation#backgrounds", + "is_internal": true, + "direction": "outbound", + "favicon": null + }, + { + "text": "Character Creation", + "url": "/wip/2e/character-creation", + "is_internal": true, + "direction": "outbound", + "favicon": null + } + ], + "/wip/2e/marketplace#hirelings-per-day": [ + { + "text": "Hirelings", + "url": "_includes/srd_modules/npcs.md", + "is_internal": true, + "direction": "inbound" + } + ], + "/wip/2e/character-creation#backgrounds": [ + { + "text": "**background**", + "url": "_includes/srd_modules/npcs.md", + "is_internal": true, + "direction": "inbound" + } + ], + "/wip/2e/character-creation": [ + { + "text": "Character Creation", + "url": "_includes/srd_modules/npcs.md", + "is_internal": true, + "direction": "inbound" + } + ], + "_includes/srd_modules/combat.md": [ + { + "text": "Scars", + "url": "_includes/srd_modules/#scars-table", + "is_internal": true, + "direction": "outbound", + "favicon": null + } + ], + "_includes/srd_modules/#scars-table": [ + { + "text": "Scars", + "url": "_includes/srd_modules/combat.md", + "is_internal": true, + "direction": "inbound" + } + ], + "_includes/srd_modules/character-creation.md": [ + { + "text": "Character Sheet", + "url": "https://raw.githubusercontent.com/terra-campaigns/template/refs/heads/main/systems/template_pc.md", + "is_internal": false, + "direction": "outbound", + "favicon": "https://raw.githubusercontent.com/favicon.ico" + }, + { + "text": "Background", + "url": "_includes/srd_modules/#backgrounds", + "is_internal": true, + "direction": "outbound", + "favicon": null + }, + { + "text": "Bond", + "url": "_includes/srd_modules/#bonds", + "is_internal": true, + "direction": "outbound", + "favicon": null + }, + { + "text": "Attribute", + "url": "_includes/srd_modules/#attributes", + "is_internal": true, + "direction": "outbound", + "favicon": null + }, + { + "text": "Hit Protection", + "url": "_includes/srd_modules/#hit-protection", + "is_internal": true, + "direction": "outbound", + "favicon": null + } + ], + "_includes/srd_modules/#backgrounds": [ + { + "text": "Background", + "url": "_includes/srd_modules/character-creation.md", + "is_internal": true, + "direction": "inbound" + } + ], + "_includes/srd_modules/#bonds": [ + { + "text": "Bond", + "url": "_includes/srd_modules/character-creation.md", + "is_internal": true, + "direction": "inbound" + } + ], + "_includes/srd_modules/#attributes": [ + { + "text": "Attribute", + "url": "_includes/srd_modules/character-creation.md", + "is_internal": true, + "direction": "inbound" + } + ], + "_includes/srd_modules/#hit-protection": [ + { + "text": "Hit Protection", + "url": "_includes/srd_modules/character-creation.md", + "is_internal": true, + "direction": "inbound" + } + ], + "_site/README.md": [ + { + "text": "instructions for macOS", + "url": "https://jekyllrb.com/docs/installation/macos/", + "is_internal": false, + "direction": "outbound", + "favicon": "https://jekyllrb.com/favicon.ico" + }, + { + "text": "Degenesis", + "url": "https://terra-campaigns.github.io/degenesis/", + "is_internal": false, + "direction": "outbound", + "favicon": "https://terra-campaigns.github.io/favicon.ico" + }, + { + "text": "Ruin mechanic", + "url": "_site/core-rules.md#Ruin", + "is_internal": true, + "direction": "outbound", + "favicon": null + }, + { + "text": "Oddular Mechanics", + "url": "https://www.bastionland.com/2016/04/oddular-mechanics.html?m=1", + "is_internal": false, + "direction": "outbound", + "favicon": "https://www.bastionland.com/favicon.ico" + }, + { + "text": "Backgrounds", + "url": "template/_includes/srd_modules/hp.md#Backgrounds", + "is_internal": true, + "direction": "outbound", + "favicon": null + }, + { + "text": "Bonds", + "url": "template/_includes/srd_modules/hp.md#Bonds", + "is_internal": true, + "direction": "outbound", + "favicon": null + }, + { + "text": "Yochai Gal", + "url": "https://newschoolrevolution.com", + "is_internal": false, + "direction": "outbound", + "favicon": "https://newschoolrevolution.com/favicon.ico" + }, + { + "text": "Cairn", + "url": "https://cairnrpg.com/", + "is_internal": false, + "direction": "outbound", + "favicon": "https://cairnrpg.com/favicon.ico" + }, + { + "text": "Knave", + "url": "https://www.drivethrurpg.com/product/250888/Knave", + "is_internal": false, + "direction": "outbound", + "favicon": "https://www.drivethrurpg.com/favicon.ico" + }, + { + "text": "Into The Odd", + "url": "https://chrismcdee.itch.io/electric-bastionland", + "is_internal": false, + "direction": "outbound", + "favicon": "https://chrismcdee.itch.io/favicon.ico" + }, + { + "text": "^1]: [It can take up to 10 minutes for changes to your site to publish after you push the changes to GitHub", + "url": "https://docs.github.com/en/pages/setting-up-a-github-pages-site-with-jekyll/creating-a-github-pages-site-with-jekyll#creating-your-site", + "is_internal": false, + "direction": "outbound", + "favicon": "https://docs.github.com/favicon.ico" + } + ], + "_site/core-rules.md#Ruin": [ + { + "text": "Ruin mechanic", + "url": "_site/README.md", + "is_internal": true, + "direction": "inbound" + } + ], + "template/_includes/srd_modules/hp.md#Backgrounds": [ + { + "text": "Backgrounds", + "url": "_site/README.md", + "is_internal": true, + "direction": "inbound" + } + ], + "template/_includes/srd_modules/hp.md#Bonds": [ + { + "text": "Bonds", + "url": "_site/README.md", + "is_internal": true, + "direction": "inbound" + } + ], + "campaigns/Campaign/example.md": [ + { + "text": "Clique", + "url": "people/ProtectorateClique/index.md", + "is_internal": true, + "direction": "outbound", + "favicon": null + }, + { + "text": "Isolde Pax", + "url": "people/ProtectorateClique/IsoldePax.md", + "is_internal": true, + "direction": "outbound", + "favicon": null + }, + { + "text": "Konrad Jager", + "url": "people/ProtectorateClique/KonradJager.md", + "is_internal": true, + "direction": "outbound", + "favicon": null + }, + { + "text": "Elara Nyx", + "url": "people/ProtectorateClique/ElaraNyx.md", + "is_internal": true, + "direction": "outbound", + "favicon": null + }, + { + "text": "Marcus Voss", + "url": "people/ProtectorateClique/MarcusVoss.md", + "is_internal": true, + "direction": "outbound", + "favicon": null + }, + { + "text": "Yelena", + "url": "people/ProtectorateClique/Yelena.md", + "is_internal": true, + "direction": "outbound", + "favicon": null + }, + { + "text": "Dexter", + "url": "people/ProtectorateClique/Dexter.md", + "is_internal": true, + "direction": "outbound", + "favicon": null + }, + { + "text": "Purifier Harlem", + "url": "people/ProtectorateClique/PurifierHarlem.md", + "is_internal": true, + "direction": "outbound", + "favicon": null + }, + { + "text": "Husk Spiders", + "url": "creatures/HuskSpiderSwarm.md", + "is_internal": true, + "direction": "outbound", + "favicon": null + }, + { + "text": "Migrants", + "url": "creatures/Migrants.md", + "is_internal": true, + "direction": "outbound", + "favicon": null + }, + { + "text": "Commando Prime Klaus", + "url": "people/ProtectorateClique/ComPrimeKlaus.md", + "is_internal": true, + "direction": "outbound", + "favicon": null + }, + { + "text": "Nikopol", + "url": "locations/Nikopol.md", + "is_internal": true, + "direction": "outbound", + "favicon": null + } + ], + "people/ProtectorateClique/index.md": [ + { + "text": "Clique", + "url": "campaigns/Campaign/example.md", + "is_internal": true, + "direction": "inbound" + } + ], + "people/ProtectorateClique/IsoldePax.md": [ + { + "text": "Isolde Pax", + "url": "campaigns/Campaign/example.md", + "is_internal": true, + "direction": "inbound" + } + ], + "people/ProtectorateClique/KonradJager.md": [ + { + "text": "Konrad Jager", + "url": "campaigns/Campaign/example.md", + "is_internal": true, + "direction": "inbound" + } + ], + "people/ProtectorateClique/ElaraNyx.md": [ + { + "text": "Elara Nyx", + "url": "campaigns/Campaign/example.md", + "is_internal": true, + "direction": "inbound" + } + ], + "people/ProtectorateClique/MarcusVoss.md": [ + { + "text": "Marcus Voss", + "url": "campaigns/Campaign/example.md", + "is_internal": true, + "direction": "inbound" + } + ], + "people/ProtectorateClique/Yelena.md": [ + { + "text": "Yelena", + "url": "campaigns/Campaign/example.md", + "is_internal": true, + "direction": "inbound" + } + ], + "people/ProtectorateClique/Dexter.md": [ + { + "text": "Dexter", + "url": "campaigns/Campaign/example.md", + "is_internal": true, + "direction": "inbound" + } + ], + "people/ProtectorateClique/PurifierHarlem.md": [ + { + "text": "Purifier Harlem", + "url": "campaigns/Campaign/example.md", + "is_internal": true, + "direction": "inbound" + } + ], + "creatures/HuskSpiderSwarm.md": [ + { + "text": "Husk Spiders", + "url": "campaigns/Campaign/example.md", + "is_internal": true, + "direction": "inbound" + } + ], + "creatures/Migrants.md": [ + { + "text": "Migrants", + "url": "campaigns/Campaign/example.md", + "is_internal": true, + "direction": "inbound" + } + ], + "people/ProtectorateClique/ComPrimeKlaus.md": [ + { + "text": "Commando Prime Klaus", + "url": "campaigns/Campaign/example.md", + "is_internal": true, + "direction": "inbound" + } + ], + "locations/Nikopol.md": [ + { + "text": "Nikopol", + "url": "campaigns/Campaign/example.md", + "is_internal": true, + "direction": "inbound" + } + ], + "creatures/example.md": [ + { + "text": "Pollen", + "url": "https://degenesis.com/world/cultures/pollen", + "is_internal": false, + "direction": "outbound", + "favicon": "https://degenesis.com/favicon.ico" + } + ], + "systems/pregens/index.md": [ + { + "text": "Sasha Volkov", + "url": "systems/pregens/SashaVolkov.md", + "is_internal": true, + "direction": "outbound", + "favicon": null + }, + { + "text": "Thaddeus Cain", + "url": "systems/pregens/ThaddeusCain.md", + "is_internal": true, + "direction": "outbound", + "favicon": null + } + ], + "systems/pregens/SashaVolkov.md": [ + { + "text": "Sasha Volkov", + "url": "systems/pregens/index.md", + "is_internal": true, + "direction": "inbound" + } + ], + "systems/pregens/ThaddeusCain.md": [ + { + "text": "Thaddeus Cain", + "url": "systems/pregens/index.md", + "is_internal": true, + "direction": "inbound" + } + ] + } +} \ No newline at end of file diff --git a/_includes/connected_to.md b/_includes/connected_to.md new file mode 100644 index 0000000..0d23cf9 --- /dev/null +++ b/_includes/connected_to.md @@ -0,0 +1,23 @@ + + + + + +
+

+ CONNECTED TO
+ {% for entry in site.data.markdown_links.file[page.path] %} + {% if entry.is_internal %} + {% assign target = site.pages | where: 'path', entry.url %} + {% assign prettylink = entry.url | split: "." | first %} + {{ target[0].title }}
+ {% else %} + {{ entry.text }} (external)
+ {% endif %} + {% endfor %} +

+
+ +{% comment %} +connected_to v0.4.2 +{% endcomment %} diff --git a/_includes/prefooter_campaign.html b/_includes/prefooter_campaign.html new file mode 100644 index 0000000..fb990f7 --- /dev/null +++ b/_includes/prefooter_campaign.html @@ -0,0 +1,28 @@ +{% comment %} +prefooter_campaign v0.2 +{% endcomment %} +--- + +## Timeline of Events + +{% + assign pagesFromHere = site.pages + | where_exp: "item", "item.dir contains page.dir" + | where_exp: "item", "item.timestamp" + | sort: 'timestamp' +%} +

+{% for entry in pagesFromHere %} + {% if entry.path != page.path %} + {{ entry.region}}, {{ entry.timestamp }}: {{ entry.title }} + {% if page.url == '/' %} + ({{ entry.parent }}) + {% endif %} +
+ {% endif %} +{% endfor %} +

+ +{% if page.url != '/' %} + {% include connected_to.md %} +{% endif %} \ No newline at end of file diff --git a/_includes/srd_modules/combat.md b/_includes/srd_modules/combat.md index 66b23a2..c86c8ac 100644 --- a/_includes/srd_modules/combat.md +++ b/_includes/srd_modules/combat.md @@ -31,11 +31,12 @@ Weapons have a damage die. Weapons also may have tags. -| | | -| ---------- | --------------------------------------------------------- | -| *Bulky* | Needs 2 hands | -| *Advanced* | Ignore non-advanced Armour | -| *Blast* | Harms multiple opponents (roll damage die for the number) | +| | | +| ------------ | --------------------------------------------------------- | +| *Bulky* | Needs 2 hands | +| *Advanced* | Ignore non-advanced Armour | +| *Blast* | Harms multiple opponents (roll damage die for the number) | +| *Non-lethal* | Targets DEX after HP | For ranges, use what is narratively appropriate. @@ -60,13 +61,15 @@ Armours can be {: .no_toc } - Damage that reduces a target's HP below zero is subtracted _from their STR_ by the amount of damage remaining. The target must then immediately make a STR save to avoid taking **Critical Damage**, using their _new STR score_. On a success, the target is still in the fight (albeit with a lower STR score) and must continue to make critical damage saves when incurring damage. -- Any PC that suffers Critical Damage cannot do anything but crawl weakly, grasping for life. If given aid (such as bandages), they will stabilize. If left untreated, they die within the hour. NPCs and monsters that fail a Critical Damage save are considered dead, per the **Warden's** discretion. Additionally, some enemies will have special abilities or effects that are triggered when their target fails a critical damage save. +- Any PC that suffers **Critical Damage** checks the damage taken on the Wound table, and cannot do anything else during the rest of the scene. NPCs and monsters that fail a Critical Damage save may be considered dead, per the **Warden's** discretion. Additionally, some enemies have special abilities or effects that are triggered when their target fails a critical damage save. + +![woundTbl](../../imgs/woundTbl.png) ## Attribute Loss {: .no_toc } - If a PC takes damage outside of combat, they should instead receive damage to an Attribute, typically STR. -- If a PC's STR is reduced to 0, they die. If their DEX is reduced to 0, they are paralyzed. If their WIL is reduced to 0, they are delirious. Complete DEX and WIL loss renders the character unable to act until they are restored through extended rest or by extraordinary means. +- If a PC's STR is reduced to 0, they die. If their DEX is reduced to 0, they are paralyzed. Complete DEX loss renders the character unable to act until they are restored through extended rest or by extraordinary means. ## Character Death {: .no_toc } diff --git a/_includes/srd_modules/conditions.md b/_includes/srd_modules/conditions.md index 192142c..f5fde80 100644 --- a/_includes/srd_modules/conditions.md +++ b/_includes/srd_modules/conditions.md @@ -1,5 +1,5 @@ # Deprivation & Fatigue -- A PC that lacks a crucial need (such as food or rest) is **Deprived**. A **Deprived** PC cannot recover HP, Attributes. Anyone **Deprived** for more than a day gains **Fatigue**. -- A PC may gain **Fatigue** after using special powers or due to events occurring in the fiction. **Fatigue** lasts until the PC is able to recuperate (such as with a full night’s rest in a safe spot). -- A PC cannot use powers that add **Fatigue**, if they already have **Fatigue**. \ No newline at end of file +- A PC that lacks a crucial need (such as food or rest in a safe spot) is **Deprived**. Anyone **Deprived** for more than a day gains a **Fatigue**, one for each day. A **Deprived** PC cannot recover HP, Attributes, or from Fatigue. +- A PC may also be forced to gain **Fatigue** after using **Potentials** or due to events occurring in the fiction. **Fatigue** is recovered at the rate of one per day (except when **Deprived**). +- You are reduced to **0 HP** when your total **Fatigue** is equal or higher than your current **WIL**. \ No newline at end of file diff --git a/_includes/srd_modules/procedures.md b/_includes/srd_modules/procedures.md new file mode 100644 index 0000000..9a40c06 --- /dev/null +++ b/_includes/srd_modules/procedures.md @@ -0,0 +1,69 @@ +# Procedures + +## Downtime + +Between game sessions, players can engage in a variety of activities such as research, following up on leads, improving skills, or building relationships. A PC is limited to one **Downtime Action** at a time. These actions cannot be undertaken in unsafe conditions or while a character is in recovery. A character cannot perform an action if it would put their safety at risk. + +### Milestones + +For activities requiring multiple steps, the **Warden** assigns 1-5 **Milestones** for players to track progress. Each **Milestone** represents a comprehensive, non-interactive task. The **Warden** may present different strategies to achieve these goals, each with distinct **Milestones**. Depending on the unfolding events in the game, the **Warden** is also empowered to introduce new **Milestones** or discard existing ones. + +### Costs + +PCs can complete individual **Milestones** by taking a **Downtime Action** and paying its respective **Cost**. If a character is unable to pay the **Cost**, they may have to find some other way to achieve their goal. A few examples of **Cost**: +- **Gold**: Direct payment of gold from a character's inventory. +- **Resources**: Non-monetary costs such as material goods, specific common items, and so on. +- **Reputation**: Betting on a character's renown, personality, presence, social connections, etc. +- **Loss**: Offering something specific and unique. A finger, a soul, a **Relic**, etc. + +Some **Costs** can be reduced or disregarded through character skills, connections, or force of will. For example, a PC may have already acquired the necessary reputation to gain access to a renowned institution, and thus the **cost** is abated. On the other hand, another character may not be so lucky and must rely on their force of personality instead. In this case, the Warden should state the risk (a permanent ban on entry, a loss of reputation, etc.). The PC then makes a **WIL** save; on a success, the cost is either reduced or avoided entirely. + +## Downtime Actions + +The following activities represent some of the most common **Downtime Actions** a players can choose. The **Warden** can also create custom actions based on the needs of play. + +### Research + +A PC investigates a question about a bit of lost or forgotten lore, the location of a lost item, the whereabouts of an important NPC, and so on. To take this action, the player must have a clearly formulated question they'd like to answer and a **Source** of knowledge in the game world that their character can interact with. If the PC does not have a **Source**, then they can spend a **Downtime Action** trying to find one. There is no guarantee that they will be successful. Once a question is posed and an appropriate **Source** has been identified, the **Warden** should provide any **Milestones** and associated **Costs**. + +#### Questions + +As always, the question must come from an experience that occurred during play. + +**Examples:** + +- "Where is the **Lost Temple of East Nipoor**?" +- "Who in **Fortune City** might know how to crack an ancient vault?" +- "Where can I find the cure to **curly sickness**?" + +#### Sources + +A **Source** is a person, place, faction, or entity that holds either a part or whole answer that the character seeks. They can be NPCs, Factions, spirits, or even other PCs. + +##### Examples: + +- **Kewr the Mouth**, a frequent contact for the **Conclave of Merchants**. Despite their excellent relationship with this faction, asking for help in an illicit activity might come at a high cost. +- A **Woodwose** who makes his home deep in the **Forest of Knives**. The party encountered him in an earlier expedition and the meeting did not end well. Still, he is said to know the nature of every herb and their healing properties. +- The **Temple of Puppets**, a nomadic circus troupe who have travelled the known and unknown lands. The party assisted one of their members during the **Rain of Fire**, when even the creatures of the Wood were preparing to flee their homes. If anyone has heard of forgotten places, it's them. + +### Training + +A character can improve their skills with an item or ability, with clear narrative or mechanical results. They might be interested in dealing greater damage with a particular weapon, decreasing their chances of getting lost in rough weather, or learning to read the languages of the ancients. A PC might spend multiple **Downtime Actions** sparring with a particular weapon, improving their skills week by week. Or they may need to travel to the home of a distant sage, improving themselves through short but intense study. + +The player must describe precisely what they'd like to improve and a **Master** whom they might train with. And of course, the character's inspiration to improve should come from an experience in play. The **Warden** should provide any **Milestones** and associated **Costs**. + +**Examples:** + +- **The Two-Handed Parry**: When fighting with one hand free, a PC's HP temporarily increases by 1d4. The party took on a hireling from the **Cratered Lands**, whose fighters emphasize avoiding enemy attacks. She has agreed to train anyone who can best her in hand to hand combat. +- **Herbology**: Given proper ingredients, a PC can create a **Healing Salve** (restores 4 STR) as a **Downtime Action**. After receiving care from an elderly herbalist in the **Verdant Glades**, the wounded PC asked to be trained in the healing arts. The **Master** has agreed, but asked that they collect three rare herbs before training can begin. +- **Troutmaster**: When taking the Supply **Action**, **Rations** gathered near cold freshwater sources increase by one step (e.g. 1d4 becomes 1d6). The party escorted a stranded naturalist from the famously dreadful **Silver Wastes** safely back to the city. As thanks, she has offered to train a PC to identify and capture a common lakefish that frequents colder waters. + +### Strengthening Ties + +A character fosters a connection with an NPC or Faction in the game world. First, they must identify the entity with whom they wish to strengthen ties, as well as a specific **intent** (e.g., building trust, mending a friendship, seeking membership in a Faction, forming an alliance, and so on). The **Warden** then provides concrete measures (described as **Milestones** and **Costs**) that the PC can undertake to advance the relationship. With each completed **Milestone**, the **Warden** describes how the PC's relationship has grown or changed. + +**Examples:** + +- After returning from an unsuccessful delve into the **Roots**, a PC discovers that they'd unknowingly brought along a stowaway: an eyeless devourer, barely hatched. They decide to keep the creature and train it in secret. +- During a play session, a PC becomes friendly with an agent of the **Order of the Helm**. Impressed by the Order's values, the PC asks what the requirements are to join. +- An agent for a powerful faction dies during the **Battle of Frogs** while under the party's care. Now those responsible wish to provide redress, so that the party can once again perform tasks for that faction. \ No newline at end of file diff --git a/_includes/srd_modules/srd_version.md b/_includes/srd_modules/srd_version.md index 49407f3..8951edd 100644 --- a/_includes/srd_modules/srd_version.md +++ b/_includes/srd_modules/srd_version.md @@ -1,4 +1,4 @@ -**Modular SRD v0.4.3** ([CHANGELOG](../../CHANGELOG.md)): +**Modular SRD v0.4.4** ([CHANGELOG](../../CHANGELOG.md)): This modular ruleset is a hack of [Cairn 2e](https://cairnrpg.com/), by [Yochai Gal](https://newschoolrevolution.com/). This is a [Mark of the Odd](https://www.bastionland.com/2020/11/mark-of-odd-licence-and-srd.html) game, inspired by [Chris McDowall](https://www.bastionland.com)'s Into The Odd. Templated repository is available at [https://github.com/terra-campaigns/template](https://github.com/terra-campaigns/template). diff --git a/_includes/statblock_loc.md b/_includes/statblock_loc.md index b3c01cd..7ee1132 100644 --- a/_includes/statblock_loc.md +++ b/_includes/statblock_loc.md @@ -1,5 +1,21 @@ +{% comment %} +======================= +template: npc v0.3 +======================= +{% endcomment %} + +{% if page.template == "loc v0.3" %} + # {{ page.title }} -{% for sec in page.bullets %} +> {{ page.role }} + +{% if page.image %} +![]({{ page.image }}) +{% endif %} +{% for sec in page.details %} | {{ sec }} | {% endfor %} +{% include connected_to.md %} + +{% endif %} diff --git a/_includes/statblock_npc.html b/_includes/statblock_npc.html new file mode 100644 index 0000000..b3077b5 --- /dev/null +++ b/_includes/statblock_npc.html @@ -0,0 +1,24 @@ +{% comment %} +======================= +template: npc v0.3 +======================= +{% endcomment %} + +{% if page.template == "npc v0.3" %} + +# {{ page.title }} + +| {{ page.role }} + +{% if page.image %} +![]({{ page.image }}) +{% endif %} +{% if page.statblock %} +| {{ page.hp }} HP, {{ page.armour }} Armour, {{ page.str }} STR, {{ page.dex }} DEX, {{ page.wil }} WIL, {{ page.at }} | +{% endif %} +{% for sec in page.details %} +- {{ sec }} {% endfor %} +{% include connected_to.md %} + +{% endif %} + diff --git a/_includes/statblock_npc.md b/_includes/statblock_npc.md deleted file mode 100644 index 234cc9d..0000000 --- a/_includes/statblock_npc.md +++ /dev/null @@ -1,14 +0,0 @@ -# {{ page.title }} - -| {{ page.hp }} HP, {{ page.armour }} Armour, {{ page.str }} STR, {{ page.dex }} DEX, {{ page.wil }} WIL, {{ page.at }} | - -{% for sec in page.bullets %} -- {{ sec }} {% endfor %} - -![]({{ page.image}}) - -| {% for sec in page.flavour %} {{ sec }} {% endfor %} | - -{% comment %} -statblock_npc v0.2.1 -{% endcomment %} diff --git a/_includes/statblock_pc.md b/_includes/statblock_pc.md index f36ffd4..cde3478 100644 --- a/_includes/statblock_pc.md +++ b/_includes/statblock_pc.md @@ -1,14 +1,24 @@ +{% comment %} +======================= +template: pc v0.3 +======================= +{% endcomment %} + +{% if page.template == "pc v0.3" %} + # {{ page.title }} -| {{ page.hp }} HP, {{ page.armour }} Armour, {{ page.str }} STR, {{ page.dex }} DEX, {{ page.wil }} WIL | +| {{ page.role }} +{% if page.image %} +![]({{ page.image }}) +{% endif %} +{% if page.statblock %} +| {{ page.hp }} HP, {{ page.armour }} Armour, {{ page.str }} STR, {{ page.dex }} DEX, {{ page.wil }} WIL | +{% endif %} {% for sec in page.details %} - {{ sec }} {% endfor %} -![]({{ page.image}}) - |**Gear:** {% for sec in page.gear %} {{ sec }}, {% endfor %} - -{% comment %} -statblock_pc v0.2 -{% endcomment %} +{% include connected_to.md %} +{% endif %} diff --git a/_obsidian/connected_to.md b/_obsidian/connected_to.md deleted file mode 100644 index 4c551eb..0000000 --- a/_obsidian/connected_to.md +++ /dev/null @@ -1,10 +0,0 @@ - ---- -#### Connected to -{: .no_toc } - - - -{% comment %} -connected_to v0.2 -{% endcomment %} diff --git a/campaigns/Campaign/ep01.md b/campaigns/Campaign/ep01.md deleted file mode 100644 index 37393c6..0000000 --- a/campaigns/Campaign/ep01.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -layout: default -title: Ep1 -parent: Campaign -nav_order: 20 -timestamp: 2589-03-23 -region: East Pollen ---- - -{% include chapter_header.md %} - ---- -#### Connected to -{: .no_toc } - - - - -{% comment %} -connected_to v0.1 -{% endcomment %} diff --git a/campaigns/Campaign/example.md b/campaigns/Campaign/example.md new file mode 100644 index 0000000..091c0d8 --- /dev/null +++ b/campaigns/Campaign/example.md @@ -0,0 +1,54 @@ +--- +layout: default +title: Crossing the spore wall +parent: Connect with Nikopol +nav_order: 24 +timestamp: 2594-04-19 +region: East Pollen + +--- + +{% include chapter_header.md %} + +### Early Morning + +- The [Clique](../../people/ProtectorateClique/index.md) begins the day before dawn, loading the cars under a solemn atmosphere. [Isolde Pax](../../people/ProtectorateClique/IsoldePax.md) leads an Anabaptist prayer, imbuing the moment with quiet reverence. +- [Konrad Jager](../../people/ProtectorateClique/KonradJager.md), [Elara Nyx](../../people/ProtectorateClique/ElaraNyx.md), [Marcus Voss](../../people/ProtectorateClique/MarcusVoss.md) and Isolde board a car laden with grain. [Yelena](../../people/ProtectorateClique/Yelena.md), a Cossack curious and awestruck by the group, joins them on their journey. +- [Dexter](../../people/ProtectorateClique/Dexter.md) exchanges a knowing glance with [Purifier Harlem](../../people/ProtectorateClique/PurifierHarlem.md), tasked with ensuring the cars are secure. However, he locks the group inside their car. +- Elara manages to flag down a Spitalian inspecting nearby cars. The Spitalian retrieves a key and frees the group, averting disaster. + +![](https://i.imgur.com/AJau74H.png) + + +### A Loaded Day + +- The train enters the surreal, alien expanse of the Spore Wall’s mycelium. The atmosphere within the car grows tense and heavy with dread. +- In the dim confines of their car, Konrad and Marcus resume their ongoing game from previous days, the weight of their journey evident in their subdued demeanour. +- Yelena consumes Bion, a Burn strain from Pollen, openly. The group refrains from criticising her actions. +- Konrad develops a rash in one eye, a condition Elara recognises as a cultural stigma. She quietly resolves to treat it upon their arrival in Nikopol. + +![](https://i.imgur.com/y6veORA.png) + +### Ambush + +- Without warning, the train halts. [Husk Spiders](../../creatures/HuskSpiderSwarm.md) swarm the cars, while [Migrants](../../creatures/Migrants.md) seize the moment to attack, slashing through soldiers venturing into the mycelium. +- Marcus charges toward the front of the train, Konrad and Elara following closely. They find the tracks ahead sabotaged, leaving the signal car unable to proceed. [Commando Prime Klaus](../../people/ProtectorateClique/ComPrimeKlaus.md) orders the group to protect the Storksis unit making the repairs. +- A Migrant abomination advances. Marcus, wielding his bidenhander, confronts it and slays the creature. Yet, something goes awry—Marcus turns on a group of Cossacks rushing to help. They retaliate, gunning him down. Marcus’s life ends amidst the Spore Wall’s haunting fungal mist. +- The Clique retreats back to the relative safety of the wagons, while fungicide is deployed to stem the Migrants’ encroachment. + +![](https://i.imgur.com/uhR0dDu.png) + +### Arrival in Nikopol + +- By nightfall, the battered Clique reaches [Nikopol](../../locations/Nikopol.md). +- The cost of the ambush is devastating—one in every three members have perished, and many others are gravely wounded. +- The group undergoes a gruelling decontamination process, treated like infected animals by figures in environmental suits. + +![](https://i.imgur.com/AWhbSlB.png) + +- Isolde gathers Marcus’s belongings, preparing to honour him with a proper burial. +- She finds a sketch of a forbidden fruit from the fractal forest on the last page of Marcus' drawing book. + +![Image](https://i.imgur.com/rCWcUHA.png) + +{% include connected_to.md %} diff --git a/campaigns/Campaign/index.md b/campaigns/Campaign/index.md index c6a1efa..897921b 100644 --- a/campaigns/Campaign/index.md +++ b/campaigns/Campaign/index.md @@ -1,6 +1,6 @@ --- layout: default -title: Campaign +title: Connect with Nikopol has_children: true nav_order: 5 has_toc: FALSE @@ -12,11 +12,11 @@ footer_content: # {{ page.title }} - -## Timeline of Events +![](https://img2.storyblok.com/4000x2323/filters:quality(90)/f/72501/5076x2948/1d79ad3218/pollen-thundestorm.png) - +- "**Spitalian Expedition Concern**: A Spitalian platoon based in Nikopol for Biokinetic hunts is rumoured to have suffered near-total losses. The Consultant of Danzig is seeking anyone willing to confirm the expedition's status, as northern Spitalians hope these reports are exaggerated or untrue." +- "**Mission Rewards and Passage**: Any retrieval of equipment, notes, specimens, or personnel will be rewarded. Clanners arranged safe passage to Nikopol via a Storski train, but a return trip hinges on delivering results to the Spitalian contingent in Danzig." -{% comment %} -timeline v0.1 -{% endcomment %} +![](https://i.imgur.com/N81zDfI.png) + +{% include prefooter_campaign.html %} diff --git a/creatures/example.md b/creatures/example.md index d397637..5e4209d 100644 --- a/creatures/example.md +++ b/creatures/example.md @@ -1,33 +1,35 @@ --- +template: npc v0.3 layout: default -title: Example +title: Migrants +role: The true rulers of Pollen are the Biokinetics. These Aberrants exhibit incredible shape-shifting abilities and display physical prowess that blurs the line with the supernatural. The most common forms are Migrants, Biokinetics breaking out across the plains to seed new spore fields and spread the Sepsis westwards, thus expanding their Chakra’s area of influence. parent: Creatures -hp: d6 -armour: 0 -str: 3d6 -dex: 3d6 -wil: 3d6 -at: weapon (dX) +image: https://img2.storyblok.com/0x0/filters:quality(99):format(webp)/f/72501/5517x3300/4675ce01f7/pollen-migrants.jpg -bullets: - - ... +statblock: true +hp: 14 +armour: 2 +str: 18 +dex: 12 +wil: 7 +at: bite (d4, 1 infestation) and heavy axe (d8+d8) -image: +details: +- Shape-shifting abilities and physical prowess, blurs the line with the supernatural +- Avoid areas with methane gas and open flames +- "**Critical Damage**: A large chuck of flesh is infested with Sepsis (d6 infection)" +- "**Blossom**: Kills itself and spread Sepsis infection (d8 *blast* infestation)" -flavour: - - ... --- -{% include statblock_npc.md %} +{% include statblock_npc.html %} ---- -#### Connected to -{: .no_toc } +{% comment %} =========== HIDDEN TEXT =========== - +[Pollen](https://degenesis.com/world/cultures/pollen) +- hidden bullet 1 +- hidden bullet 2 -{% comment %} -connected_to v0.2 -{% endcomment %} +========== HIDDEN ENDS ========= {% endcomment %} diff --git a/extract_links.py b/extract_links.py new file mode 100644 index 0000000..1ba8d16 --- /dev/null +++ b/extract_links.py @@ -0,0 +1,91 @@ +# extract_links v0.2 + +import os +import re +import json +import argparse +from collections import defaultdict +from urllib.parse import urlparse + +def find_markdown_links(directory): + links = defaultdict(list) + + # Regular expression to match markdown links, excluding image links and unwanted patterns + link_pattern = re.compile(r'(? + +{% include prefooter_campaign.html %} \ No newline at end of file diff --git a/locations/example.md b/locations/example.md index 192d8c9..86e0ed3 100644 --- a/locations/example.md +++ b/locations/example.md @@ -1,26 +1,29 @@ --- +template: loc v0.3 layout: default -title: Example +title: Nikopol +role: A resilient underground bastion of humanity, crucial for its rich mining of rare metals and manganese, which sustain trade and survival. Its fortified structure and disciplined militias defend against the Primer, while its isolationism shields it from exploitation. Divided into miners, warriors, and traders, its society survives under the cultural and spiritual anchor of Founders’ Square, symbolizing hope amidst decay. parent: Locations -nav_exclude: true +image: https://i.imgur.com/93kPOn5.jpeg -bullets: - - ... +nav_exclude: false + +details: +- The underground city resonates with the hum of ventilation fans, punctuated by the clang of metal and echoing footsteps of guards. Occasional drilling and blasting sounds from the mines form a constant industrial symphony. Above ground, the Spore Wall stands as a hostile barrier surrounding the city, with only a few fortified structures marking the surface. --- {% include statblock_loc.md %} +{% comment %} =========== HIDDEN TEXT =========== ---- -#### Connected to -{: .no_toc } - - +**Lessons**: +Survival in Nikopol demands adaptation to the toxic environment caused by prolonged mining. The citizens’ resilience stems from their ability to navigate this hostile ecosystem, learning to balance extraction of resources with self-preservation. +**Lore**: +The Founders’ Square serves as a cultural an![Image](https://i.imgur.com/Zzr06zg.jpeg)d spiritual heart. It symbolizes a bygone golden age, where festivals and prayers sustain hope amid the encroaching threats of mutants, Sepsis, and dwindling external alliances. Historical tension with the Spitalians highlights a fracture caused by betrayals in the past. -{% comment %} -connected_to v0.2 -{% endcomment %} +========== HIDDEN ENDS ========= {% endcomment %} +![Image](https://i.imgur.com/D2Cbj8c.jpeg) \ No newline at end of file diff --git a/people/party001/example.md b/people/party001/example.md index eec916b..a491fc7 100644 --- a/people/party001/example.md +++ b/people/party001/example.md @@ -1,22 +1,38 @@ --- +template: pc v0.3 layout: default -title: Example PC -parent: party001 +title: Inquisitor Thorne +parent: Protectorate Clique +statblock: true -hp: -str: -dex: -wil: +hp: 1/1 +str: 8/8 +dex: 13/13 +wil: 13/12 armour: 0 details: - - ... + - "**Spitalian Recruit, Pollen**" + - "**Chosen**: A prophecy foretold your rise, but a close friend doubts your destiny and stands in your way. You wear a **prophetic amulet** marking your supposed fate." + - "**Potential**: Preservists are relentless, never giving their enemies a chance to surrender. Trained in a brutal technique known as Preservalis, they strike with their sword to create an opening, then follow up with a point-blank pistol shot to ensure the kill. The recoil propels them out of reach, leaving their foes defenseless. _Requires dual wielding a **Sword** and a **Pistol**. You may disengage after a melee attack_" + - Kamikase, crazy. 22 yo. -image: +image: https://media1.tenor.com/m/JDrSKMNRT5sAAAAC/mad-max.gif gear: - - ... + - 600 Chronicler Drafts + - Scalpel (d6) + - Field Journal + - Sterile Gloves + - The Manual + - Mask (1 Armour against Spore Infestation) + - Winter clothes + - torch 1x + - lighter + - pitons 2x + - rations 2x + - one bottle of juice --- @@ -25,13 +41,3 @@ DO NOT EDIT BELOW THIS COMMENT {% endcomment %} {% include statblock_pc.md %} - ---- -#### Connected to -{: .no_toc } - - - -{% comment %} -connected_to v0.2 -{% endcomment %} diff --git a/people/party001/index.md b/people/party001/index.md index aeece09..295eaf7 100644 --- a/people/party001/index.md +++ b/people/party001/index.md @@ -1,6 +1,6 @@ --- layout: default -title: party001 +title: Protectorate Clique parent: People has_children: true @@ -8,14 +8,9 @@ has_children: true # {{ page.title }} +Group established by the Protectorate to expand influence in Pollen. ---- -#### Connected to -{: .no_toc } - - - +Players are welcomed to edit their own characters. +Use the link on the bottom of your character page. -{% comment %} -connected_to v0.1 -{% endcomment %} +{% include connected_to.md %} diff --git a/systems/pregens/MaraTheRatQuinn.md b/systems/pregens/MaraTheRatQuinn.md new file mode 100644 index 0000000..50c10fb --- /dev/null +++ b/systems/pregens/MaraTheRatQuinn.md @@ -0,0 +1,38 @@ +--- +template: pc v0.3 +layout: default +title: Mara "The Rat" Quinn +role: +parent: Pregen Characters +nav_exclude: true +statblock: true + +image: https://i.imgur.com/pxn8jkX.png + +str: 12 +dex: 13 +wil: 11 + +hp: 3 +armour: + +details: +- SCRAPER **MECHANIST** - You always scrape more raw materials when dismantling. +- ZEALOT - Your faith is challenged by a heretic who claims to have the true revelation. You clutch a sacred relic that embodies your devotion. +- TRUFFLE PIG - Skilled Scrappers uncover artefacts that make Chroniclers uneasy as they reluctantly part with their Drafts, while less fortunate Scrappers barely earn more than the scrap’s worth. The best Scrappers possess an instinct, a sixth sense for finding hidden treasures and avoiding dangers in the ruins. - **Choose one kind of object (key, arrow, gold, etc.). You can sense the nearest example.** + +gear: +- Sacred Relic +- Toolkit +- 100 Chronicler Drafts +- Rope & grappling hook (d4) +- Compass +- Periscope + +--- + +{% comment %} +DO NOT EDIT BELOW THIS COMMENT +{% endcomment %} + +{% include statblock_pc.md %} diff --git a/systems/pregens/index.md b/systems/pregens/index.md new file mode 100644 index 0000000..a4c76a4 --- /dev/null +++ b/systems/pregens/index.md @@ -0,0 +1,25 @@ +--- +layout: default +title: Pregen Characters +nav_order: 19 +parent: Systems +has_children: true +has_toc: false +nav_exclude: true + +--- + +# Pregen Characters + +![](https://img2.storyblok.com/3000x0/filters:quality(90):format(webp)/f/150329/3000x2130/096af0b82b/scrappers-mice.jpeg) + +You can roll a pre generated character. + +New and replacement characters can be randomly assigned from the list. + +| | | +| --- | ---------------------------------------------------- | +| 1 | [Rex "Rusty" Ross](RexRustyRoss.md) (Scrapper) | +| 2 | [Sasha Volkov](../../systems/pregens/SashaVolkov.md) (Cossack) | +| 3 | [Mara "the Rat" Quinn](../../systems/pregens/MaraTheRatQuinn.md) (Scraper) | +| 4 | [Thaddeus Cain](../../systems/pregens/ThaddeusCain.md) (Anabaptist) | diff --git a/systems/redirects/redirect_armour.md b/systems/redirects/redirect_armour.md index 4aae805..5dd2d78 100644 --- a/systems/redirects/redirect_armour.md +++ b/systems/redirects/redirect_armour.md @@ -3,6 +3,6 @@ layout: default title: Armour parent: Systems nav_order: 100 -redirect_to: "systems#armour" +redirect_to: "../systems#armour" --- diff --git a/systems/redirects/redirect_attr.md b/systems/redirects/redirect_attr.md index 9406940..210637b 100644 --- a/systems/redirects/redirect_attr.md +++ b/systems/redirects/redirect_attr.md @@ -3,6 +3,6 @@ layout: default title: Attributes parent: Systems nav_order: 050 -redirect_to: systems#attributes +redirect_to: ../systems#attributes --- diff --git a/systems/redirects/redirect_bonds.md b/systems/redirects/redirect_bonds.md index 67bd07d..b02aae7 100644 --- a/systems/redirects/redirect_bonds.md +++ b/systems/redirects/redirect_bonds.md @@ -3,6 +3,6 @@ layout: default title: Bonds parent: Systems nav_order: 040 -redirect_to: systems#bonds +redirect_to: ../systems#bonds --- diff --git a/systems/redirects/redirect_charcreation.md b/systems/redirects/redirect_charcreation.md index 49777e9..2d28b5d 100644 --- a/systems/redirects/redirect_charcreation.md +++ b/systems/redirects/redirect_charcreation.md @@ -3,6 +3,6 @@ layout: default title: Character Creation parent: Systems nav_order: 010 -redirect_to: systems#character-creation +redirect_to: ../systems#character-creation --- diff --git a/systems/redirects/redirect_combat.md b/systems/redirects/redirect_combat.md index 228f919..3b52e61 100644 --- a/systems/redirects/redirect_combat.md +++ b/systems/redirects/redirect_combat.md @@ -3,6 +3,6 @@ layout: default title: Combat parent: Systems nav_order: 120 -redirect_to: systems#combat +redirect_to: ../systems#combat --- diff --git a/systems/redirects/redirect_culture.md b/systems/redirects/redirect_culture.md index a811f7d..fc11ece 100644 --- a/systems/redirects/redirect_culture.md +++ b/systems/redirects/redirect_culture.md @@ -3,7 +3,7 @@ layout: default title: Culture parent: Systems nav_order: 020 -redirect_to: systems#culture +redirect_to: ../systems#culture nav_exclude: true --- diff --git a/systems/redirects/redirect_deprivation.md b/systems/redirects/redirect_deprivation.md index 28820f1..5f6ec7c 100644 --- a/systems/redirects/redirect_deprivation.md +++ b/systems/redirects/redirect_deprivation.md @@ -3,6 +3,6 @@ layout: default title: Deprivation & Fatigue parent: Systems nav_order: 072 -redirect_to: systems#deprivation--fatigue +redirect_to: ../systems#deprivation--fatigue --- diff --git a/systems/redirects/redirect_healing.md b/systems/redirects/redirect_healing.md index fce8481..100615e 100644 --- a/systems/redirects/redirect_healing.md +++ b/systems/redirects/redirect_healing.md @@ -3,6 +3,6 @@ layout: default title: Healing & Recovery parent: Systems nav_order: 071 -redirect_to: systems#healing--recovery +redirect_to: ../systems#healing--recovery --- diff --git a/systems/redirects/redirect_hp.md b/systems/redirects/redirect_hp.md index 5476304..ba787df 100644 --- a/systems/redirects/redirect_hp.md +++ b/systems/redirects/redirect_hp.md @@ -3,6 +3,6 @@ layout: default title: Hit Protection parent: Systems nav_order: 060 -redirect_to: systems#attributes +redirect_to: ../systems#attributes --- diff --git a/systems/redirects/redirect_npcs.md b/systems/redirects/redirect_npcs.md index 47881ff..3347755 100644 --- a/systems/redirects/redirect_npcs.md +++ b/systems/redirects/redirect_npcs.md @@ -3,6 +3,6 @@ layout: default title: NPCs parent: Systems nav_order: 110 -redirect_to: systems#npcs +redirect_to: ../systems#npcs --- diff --git a/systems/redirects/redirect_procedures.md b/systems/redirects/redirect_procedures.md new file mode 100644 index 0000000..3cbbb2b --- /dev/null +++ b/systems/redirects/redirect_procedures.md @@ -0,0 +1,8 @@ +--- +layout: default +title: Procedures +parent: Systems +nav_order: 150 +redirect_to: ../systems#procedures + +--- diff --git a/systems/redirects/redirect_saves.md b/systems/redirects/redirect_saves.md index b4c736b..091ce0a 100644 --- a/systems/redirects/redirect_saves.md +++ b/systems/redirects/redirect_saves.md @@ -3,6 +3,6 @@ layout: default title: Saves parent: Systems nav_order: 070 -redirect_to: systems#saves +redirect_to: ../systems#saves --- diff --git a/systems/redirects/redirect_scars.md b/systems/redirects/redirect_scars.md index 0340994..4677705 100644 --- a/systems/redirects/redirect_scars.md +++ b/systems/redirects/redirect_scars.md @@ -3,6 +3,6 @@ layout: default title: Scars parent: Systems nav_order: 130 -redirect_to: systems#scars +redirect_to: ../systems#scars --- diff --git a/systems/redirects/redirect_sepsis.md b/systems/redirects/redirect_sepsis.md index 24d8bdf..415c4d7 100644 --- a/systems/redirects/redirect_sepsis.md +++ b/systems/redirects/redirect_sepsis.md @@ -3,6 +3,6 @@ layout: default title: Sepsis parent: Systems nav_order: 140 -redirect_to: systems#sepsis +redirect_to: ../systems#sepsis ---