Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
1af59a7
chore(dev-server): open Firefox Dev Edition with devtools and enable …
maxiride Aug 26, 2025
64e5d87
build: read public base path from env for subfolder deploys
maxiride Aug 26, 2025
530dc55
style: update primary and secondary theme colors
maxiride Aug 26, 2025
3881064
docs: added rule references
maxiride Aug 26, 2025
ae6b6a5
fix(encounter-store): correct level adjustments for weak and elite cr…
maxiride Aug 26, 2025
24f7c46
docs(encounter-store): add rule reference for delta cost calculation
maxiride Aug 26, 2025
78ecb32
style(webui): increase `printWidth` from 100 to 125 in Prettier confi…
maxiride Aug 26, 2025
714965f
ci: add GitHub Actions workflow for Quasar SPA deployment to GitHub P…
maxiride Aug 31, 2025
e204ff1
chore(scraper): remove scraper module and related files | scraper mig…
maxiride Sep 7, 2025
9a6b012
chore(folder-structure): surfaced spa source to the root level + migr…
maxiride Sep 7, 2025
04502e3
fix(creatures-store): update fetch URL for creatures data file, enabl…
maxiride Sep 7, 2025
3852049
refactor(creatures-store): simplify metadata structure and fetching l…
maxiride Sep 7, 2025
7707999
refactor(example-store): remove unused counter store
maxiride Sep 7, 2025
99cc8c8
refactor(encounter-store): enhance readability by adding comments and…
maxiride Sep 7, 2025
b9b68c9
feat(encounter-store): add reset function to clear encounter creatures
maxiride Sep 7, 2025
5b1d118
chore(creatures-store): remove unused `table-data_all.json` file
maxiride Sep 7, 2025
acdad2d
refactor: refactor Quasar app with TypeScript and configure essentia…
maxiride Sep 7, 2025
bba27d3
chore: re-added markdown extra and fixed imports
maxiride Sep 7, 2025
955524d
chore: made constanst inizialized as such
maxiride Sep 7, 2025
fce1588
chore: fixed grammar issues after converting the project to typescript
maxiride Sep 7, 2025
318479e
feat: draft of new CreaturesTable based off new creatures data struct…
maxiride Sep 7, 2025
4088acf
chore: added missing typescript elements
maxiride Sep 7, 2025
a0d5ed8
chore: enabled automatic vue devtools opening
maxiride Sep 7, 2025
4f93ddd
fix: determine npc or monster by the url
maxiride Sep 7, 2025
cf72afb
chore: safe snapshot after all the typescript errors after the conver…
maxiride Sep 7, 2025
1751596
chore: update email in package.json
maxiride Nov 10, 2025
1977a52
chore: bump pnpm version
maxiride Nov 10, 2025
90ceaff
chore: add scripts and dependencies for aon downloader scripts
maxiride Nov 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
File renamed without changes.
38 changes: 38 additions & 0 deletions .github/workflows/GitHubPagesDeploymentWorkflow.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Deploy v2 to GitHub Pages subfolder

on:
push:
branches: [ v2 ] # change to your v2 branch

jobs:
build-and-deploy:
runs-on: ubuntu-latest
permissions:
contents: write

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Use Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: yarn

- name: Install
run: yarn install --frozen-lockfile

- name: Build v2 (Quasar SPA)
env:
PUBLIC_BASE: /repo/v2/
NODE_OPTIONS: --max_old_space_size=4096
run: yarn quasar build

- name: Deploy dist/spa to gh-pages/v2
uses: JamesIves/github-pages-deploy-action@v4
with:
branch: gh-pages
folder: dist/spa
target-folder: v2
clean: false # keep v1 files at root
55 changes: 55 additions & 0 deletions .github/workflows/build-deploy.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Deploy to Github Pages (Quasar SPA)

on:
push:
tags:
- 'v*'
workflow_dispatch:

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: 'pages'
cancel-in-progress: true

jobs:
build:
runs-on: ubuntu-latest
defaults:
run:
working-directory: src/webui
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: '16.20.2'
cache: 'yarn'
cache-dependency-path: 'src/webui/yarn.lock'

- name: Install dependencies
run: yarn install --frozen-lockfile

- name: Build Quasar SPA
run: yarn quasar build -m spa

- name: Upload Pages artifact
uses: actions/upload-pages-artifact@v4
with:
path: src/webui/dist/spa

deploy:
needs: build
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
File renamed without changes.
8 changes: 0 additions & 8 deletions .idea/.gitignore

This file was deleted.

75 changes: 0 additions & 75 deletions .idea/codeStyles/Project.xml

This file was deleted.

1 change: 0 additions & 1 deletion .idea/pf2e-encounters.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

File renamed without changes.
3 changes: 1 addition & 2 deletions src/webui/.prettierrc.json → .prettierrc.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
{
"$schema": "https://json.schemastore.org/prettierrc",
"semi": false,
"singleQuote": true,
"printWidth": 100
"printWidth": 125
}
File renamed without changes.
3 changes: 2 additions & 1 deletion src/webui/.vscode/settings.json → .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,6 @@
"javascriptreact",
"typescript",
"vue"
]
],
"typescript.tsdk": "node_modules/typescript/lib"
}
6 changes: 3 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),



## [Unreleased]
- Added Vue-Tour to showcase the application
## [v0.5.0] - 2025-08-31
* Fixed NPCs URL

## [v0.3.0] - 2020-01-12
First stable release of the website, from now on changes will be documented here.
* First stable release of the website, from now on changes will be documented here.
File renamed without changes.
150 changes: 150 additions & 0 deletions README_old.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
# PF2e Encounter builder (pf2e-encounter-builder)

A PF2 tool to balance encounters

## Install the dependencies
```bash
yarn
# or
npm install
```

### Start the app in development mode (hot-code reloading, error reporting, etc.)
```bash
quasar dev
```


### Lint the files
```bash
yarn lint
# or
npm run lint
```


### Format the files
```bash
yarn format
# or
npm run format
```


### Build the app for production
```bash
quasar build
```

### Customize the configuration
See [Configuring quasar.config.js](https://v2.quasar.dev/quasar-cli-vite/quasar-config-js).


### Setting public path
See `publicPath` configuration in `quasar.config.js` [Setting public path](https://quasar.dev/quasar-cli-vite/quasar-config-file#build).

For development and deployment, the public path is set to `/`. To develop and deploy to a subfolder, set the `publicPath` to the subfolder. To develop and serve the v2 version of the app, set the `publicPath` to `/v2`.

## Fetch Pathfinder 2e creatures (automation script)

This project includes a Node.js script that politely captures and downloads all creature JSON chunks from Archives of Nethys (AoN) and merges them into a single file.

Prerequisites
- Node.js LTS and Yarn installed
- From the src\webui directory:
- Install dependencies: `yarn`
- If not already present, add: `yarn add axios` and `yarn add -D playwright`
- Install a Playwright browser: `npx playwright install chromium`

Usage (run from src\webui)
- Default (all creatures):
```bash
# either (simplest, from src\webui)
yarn node fetch-creatures-playwright.js --out creatures_all.json
# or (explicit path)
yarn node src\scripts\fetch-creatures-playwright.js --out creatures_all.json
```
- With filters (use any Creatures.aspx URL with query params):
```bash
yarn node src\scripts\fetch-creatures-playwright.js --pageUrl "https://2e.aonprd.com/Creatures.aspx?Level=3" --out creatures_level3.json
```
- Direct-download from a captured list of chunk URLs (one per line or a JSON array):
```bash
yarn node src\scripts\fetch-creatures-playwright.js --urlsFile urls.txt --out creatures_all.json
```

Options
- `--pageUrl <url>` Page to capture chunk URLs from (default: https://2e.aonprd.com/Creatures.aspx)
- `--out <path>` Output JSON file path (default: creatures_all.json)
- `--concurrency <n>` 1–4 workers for downloads (default: 3)
- `--delayMin <ms>` Min delay between requests (default: 500)
- `--delayMax <ms>` Max delay between requests (default: 1500)
- `--headless <bool>` true|false to run browser headless (default: true)
- `--urlsFile <path>` Skip capture and download from a list of URLs

Notes
- Replace the placeholder contact in the script’s User-Agent with your real contact information.
- The script adds polite throttling and retries; keep concurrency low to avoid 429/403 responses.
- Output files are written relative to your current working directory.

# Style and guidelines

Where possibile always reference the rulebook chapter or AON link with the following format:
```
ref. https://2e.aonprd.com/Rules.aspx?ID=2718
```


### Setting public path
See `publicPath` configuration in `quasar.config.js` [Setting public path](https://quasar.dev/quasar-cli-vite/quasar-config-file#build).

For development and deployment, the public path is set to `/`. To develop and deploy to a subfolder, set the `publicPath` to the subfolder. To develop and serve the v2 version of the app, set the `publicPath` to `/v2`.

## Fetch Pathfinder 2e creatures (automation script)

This project includes a Node.js script that politely captures and downloads all creature JSON chunks from Archives of Nethys (AoN) and merges them into a single file.

Prerequisites
- Node.js LTS and Yarn installed
- From the src\webui directory:
- Install dependencies: `yarn`
- If not already present, add: `yarn add axios` and `yarn add -D playwright`
- Install a Playwright browser: `npx playwright install chromium`

Usage (run from src\webui)
- Default (all creatures):
```bash
# either (simplest, from src\webui)
yarn node fetch-creatures-playwright.js --out creatures_all.json
# or (explicit path)
yarn node src\scripts\fetch-creatures-playwright.js --out creatures_all.json
```
- With filters (use any Creatures.aspx URL with query params):
```bash
yarn node src\scripts\fetch-creatures-playwright.js --pageUrl "https://2e.aonprd.com/Creatures.aspx?Level=3" --out creatures_level3.json
```
- Direct-download from a captured list of chunk URLs (one per line or a JSON array):
```bash
yarn node src\scripts\fetch-creatures-playwright.js --urlsFile urls.txt --out creatures_all.json
```

Options
- `--pageUrl <url>` Page to capture chunk URLs from (default: https://2e.aonprd.com/Creatures.aspx)
- `--out <path>` Output JSON file path (default: creatures_all.json)
- `--concurrency <n>` 1–4 workers for downloads (default: 3)
- `--delayMin <ms>` Min delay between requests (default: 500)
- `--delayMax <ms>` Max delay between requests (default: 1500)
- `--headless <bool>` true|false to run browser headless (default: true)
- `--urlsFile <path>` Skip capture and download from a list of URLs

Notes
- Replace the placeholder contact in the script’s User-Agent with your real contact information.
- The script adds polite throttling and retries; keep concurrency low to avoid 429/403 responses.
- Output files are written relative to your current working directory.

# Style and guidelines

Where possibile always reference the rulebook chapter or AON link with the following format:
```
ref. https://2e.aonprd.com/Rules.aspx?ID=2718
```
Loading