feat: expand class roster and add stat ranges #15

Merged
kevin merged 4 commits from feature/classworkout into main 2026-05-11 10:02:43 +00:00
Owner

Summary

Major content expansion of the class system. Adds new base classes,
a full prestige class roster, and stat ranges for all classes.
Also updates seed_classes.py to handle range-based stat values.

Base Classes

  • Add lehrling.yaml — arcane apprentice, high INT
  • Add cleric.yaml — divine servant, high WIL/VIT
  • Fix krieger.yaml — add stat ranges, fix YAML indentation
  • Fix schurke.yaml — add stat ranges, fix YAML indentation
  • Remove magier.yaml from base classes (moved to prestige)

Prestige Classes (Tier 1)

  • knight.yaml — Ritter, STR/WIL, honor-bound fighter
  • barbarian.yaml — raw STR/VIT, loathes civilization
  • magier.yaml — studied arcane master, high INT
  • assassine.yaml — deadly shadow, extreme DEX
  • ranger.yaml — swift scout, DEX/INT hybrid
  • adept.yaml — fleet-footed martial caster
  • cultist.yaml — cunning INT-based adventurer
  • monk.yaml — unarmed martial discipline, high WIL
  • priestess.yaml — necromantic divine caster
  • solarus.yaml — most powerful of the Adepti
  • alchemist.yaml — explosive potions and poisons, INT/DEX
  • druid.yaml — natural balance keeper, VIT/WIL
  • inquisitor.yaml — heretic hunter, temple reputation required

Prestige Classes (Tier 2)

  • elementarmagier.yaml — elemental mastery, extreme INT
  • illusionist.yaml — master of deception, INT/WIL
  • lich.yaml — undying death master, requires magical background
  • paladin.yaml — holy warrior, STR/WIL

seed_classes.py

  • Add resolve_stat() to handle [min, max] ranges
  • All stat values now rolled randomly within defined ranges on seed

Notes

  • English/German naming inconsistency across files — to be normalized
  • requirements field format not yet standardized — will be formalized
    when class upgrade logic is implemented
  • base_classes field still present in some files — will be removed
    when requirements system is finalized
## Summary Major content expansion of the class system. Adds new base classes, a full prestige class roster, and stat ranges for all classes. Also updates seed_classes.py to handle range-based stat values. ## Base Classes - Add `lehrling.yaml` — arcane apprentice, high INT - Add `cleric.yaml` — divine servant, high WIL/VIT - Fix `krieger.yaml` — add stat ranges, fix YAML indentation - Fix `schurke.yaml` — add stat ranges, fix YAML indentation - Remove `magier.yaml` from base classes (moved to prestige) ## Prestige Classes (Tier 1) - `knight.yaml` — Ritter, STR/WIL, honor-bound fighter - `barbarian.yaml` — raw STR/VIT, loathes civilization - `magier.yaml` — studied arcane master, high INT - `assassine.yaml` — deadly shadow, extreme DEX - `ranger.yaml` — swift scout, DEX/INT hybrid - `adept.yaml` — fleet-footed martial caster - `cultist.yaml` — cunning INT-based adventurer - `monk.yaml` — unarmed martial discipline, high WIL - `priestess.yaml` — necromantic divine caster - `solarus.yaml` — most powerful of the Adepti - `alchemist.yaml` — explosive potions and poisons, INT/DEX - `druid.yaml` — natural balance keeper, VIT/WIL - `inquisitor.yaml` — heretic hunter, temple reputation required ## Prestige Classes (Tier 2) - `elementarmagier.yaml` — elemental mastery, extreme INT - `illusionist.yaml` — master of deception, INT/WIL - `lich.yaml` — undying death master, requires magical background - `paladin.yaml` — holy warrior, STR/WIL ## seed_classes.py - Add `resolve_stat()` to handle `[min, max]` ranges - All stat values now rolled randomly within defined ranges on seed ## Notes - English/German naming inconsistency across files — to be normalized - `requirements` field format not yet standardized — will be formalized when class upgrade logic is implemented - `base_classes` field still present in some files — will be removed when requirements system is finalized
- Replace fixed stat values with [min, max] ranges in warrior/mage/rogue YAML
- Add resolve_stat() helper to seed_classes.py to roll random value from range
- Fixed values still supported (backwards compatible)

Signed-off-by: Kevin Mika <mika.kevin@nexus-6.eu>
- Add lehrling.yaml and cleric.yaml as new base classes
- Add haendler.yaml and waldlaeufer.yaml as new base classes
- Add prestige classes: ritter, barbar, magier, nekromant, assassine,
  spaher, priester, paladin, gildemeister, ranger, elementarmagier,
  illusionist, adept, cultist, monk, solarus, barbarian, priestess
- Add lichmagier.yaml, schattenklinge.yaml, inquisitor.yaml
- Add alchemist.yaml and druide.yaml
- Update krieger.yaml and schurke.yaml with stat ranges
- Remove old magier.yaml (now prestige class)
- Add prestige/prestige_tier/requirements fields across prestige classes
- Fix YAML formatting in schurke.yaml (description indentation)
- Note: alchemist.yaml and druid.yaml were placeholder commits,
  now replaced with full content

Signed-off-by: Kevin Mika <mika.kevin@nexus-6.eu>
Signed-off-by: Kevin Mika <mika.kevin@nexus-6.eu>
Signed-off-by: Kevin Mika <mika.kevin@nexus-6.eu>
kevin merged commit 86fac136cb into main 2026-05-11 10:02:43 +00:00
kevin deleted branch feature/classworkout 2026-05-11 10:02:44 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
kevin/nexus-rpg!15
No description provided.