Commit graph

6 commits

Author SHA1 Message Date
Vantz Stockwell
6c7b4b8133 Add Bonus Intel input for off-level intel sources (POIs etc.)
Players can pick up intel from points of interest on the map beyond what
levelling grants. Add a "Bonus Intel" card alongside the Character XP card
with an editable input. The character totals strip now shows the combined
intel (levels + bonus) with a small "+N" badge when a bonus is present.

Existing builds without the field migrate cleanly via the existing
defaults-merge in store.ts.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-23 07:55:00 -04:00
Vantz Stockwell
99259e64bf Theme the page by selected house (Atreides green/black, Harkonnen blue/orange)
- Introduce body[data-house="atreides"] and body[data-house="harkonnen"]
  CSS blocks that override --sand / --sand-2 / --spice / --ember and the
  background gradient vars, so the whole UI (panels, progress bars, primary
  CTA, totals, allocated/maxed skill borders) recolors when the house is
  switched.
- Fix the previously-swapped house identity colors: Atreides is green,
  Harkonnen is orange. Both house-pick cards now always display in their
  identity color, so the unselected house remains visually tagged.
- App.vue applies the theme by setting document.body.dataset.house from a
  reactive watcher.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-23 07:52:38 -04:00
Vantz Stockwell
84b3f6a061 Synthesize per-level rewards for the Character card
Character XP has no Rewards column, but every level grants skill points
and/or intel points. Synthesize a "Level Reward" perk per level (e.g.
"+1 Skill Point · +10 Intel Points") so the Character card uses the same
unlocked-perks UI as the spec cards. The card header reads "Level Rewards"
instead of "Perks Unlocked" via a new perksLabel prop.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-23 07:50:20 -04:00
Vantz Stockwell
616a84ec5e Allow allocation across all 5 skill trees + show spec perks per level
Skill trees:
- Class is no longer a single choice. The class panel is now tabs inside the
  Skill Trees section that switch which tree is viewed; allocations from every
  tree share one global skill-point pool sourced from character level.
- Switching tabs preserves allocations (previously cleared them).
- New "Skill Summary" panel lists every allocated skill grouped by class.
- Tree-local "spent" badge appears on each class tab; tree header now shows
  both per-tree and global totals, and turns red if over-budget.

Spec perks:
- Extractor now parses the Rewards column of each spec track HTML (name, cost,
  description, effect, bonus, icon). All 5 specs have 41 perks each.
- Spec cards display a scrollable perk list: unlocked perks highlighted, and a
  "Show all" toggle reveals locked/upcoming perks dimmed. A "Next: X at L Y"
  hint always points at the next unlock.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-23 07:47:55 -04:00
Vantz Stockwell
39d6e7ac33 Use external port 9002 instead of 8080
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-23 07:30:55 -04:00
Vantz Stockwell
98a1792106 Add Dune Awakening character builder + initial project scaffolding
- character-builder/: Vue 3 + NestJS + Valkey app for planning house, class,
  character XP, 5 spec tracks, faction standing, and skill trees. Shareable
  via short link (POST /api/builds → 8-char nanoid).
- character-builder/data/: parsed JSON tables (character XP through L200,
  5 specs to L100, 2 faction standing tables, 5 class skill trees).
- character-builder/scripts/extract.py: parser that regenerates data/*.json
  from the gitignored sample-data/*.html snapshots.
- Dockerfile + docker-compose.yml: two-container deploy (app + Valkey).
- specialization-calculator/: pre-existing single-file XP/quest calculator,
  carried into the repo.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-23 07:30:37 -04:00