Custom conditions (per-campaign freeform) previously only persisted to the
campaign palette — Add button did NOT apply them to the targeted participant,
and badges rendered via CONDITIONS (missing custom ids) so applied custom
conditions did not display. Now:
- addCustomCondition(label, participantId) persists to palette AND toggles
onto the participant in one step. Enter + Add button both pass p.id.
- Admin badge lookup uses allConditions (built-ins + custom), not CONDITIONS.
Shared contract: toggleCondition accepts ANY string. Prove it in tests:
- turn.combat.test.js adds CUSTOM_CONDITIONS ('hexed','rager',
'marked_for_death','🛡️blessed') to the seeded queue + random pool, asserts
condition-not-string invariant, and a dedicated add/remove round-trip test.
- replay-combat.js mirrors the same CUSTOM_CONDITIONS through the live backend.
Server-mode docs/env: REACT_APP_BACKEND_WS (stale pre-rename) -> correct
REACT_APP_BACKEND_REALTIME_URL=ws://.../ws in README, env.example,
docker/Dockerfile (STORAGE=ws -> server). DEVELOPMENT.md + scripts/README.md
now point to ./scripts/dev-start.sh as the primary dev entrypoint.
133 shared tests green.
16 lines
776 B
Plaintext
16 lines
776 B
Plaintext
# .env.example
|
|
REACT_APP_FIREBASE_API_KEY="YOUR_FIREBASE_API_KEY_HERE"
|
|
REACT_APP_FIREBASE_AUTH_DOMAIN="YOUR_FIREBASE_AUTH_DOMAIN_HERE"
|
|
REACT_APP_FIREBASE_PROJECT_ID="YOUR_FIREBASE_PROJECT_ID_HERE"
|
|
REACT_APP_FIREBASE_STORAGE_BUCKET="YOUR_FIREBASE_STORAGE_BUCKET_HERE"
|
|
REACT_APP_FIREBASE_MESSAGING_SENDER_ID="YOUR_FIREBASE_MESSAGING_SENDER_ID_HERE"
|
|
REACT_APP_FIREBASE_APP_ID="YOUR_FIREBASE_APP_ID_HERE"
|
|
|
|
REACT_APP_TRACKER_APP_ID="ttrpg-initiative-tracker-default"
|
|
|
|
# --- Self-hosted backend mode (optional) ---
|
|
# Default storage = firebase (SDK). Set REACT_APP_STORAGE=server to use the
|
|
# bundled Express + WebSocket backend (server/) instead.
|
|
# REACT_APP_STORAGE="server"
|
|
# REACT_APP_BACKEND_URL="http://127.0.0.1:4001"
|
|
# REACT_APP_BACKEND_REALTIME_URL="ws://127.0.0.1:4001/ws" |