Skip to content

Combat disciplines: add Wizardry and Divine Magic mastery trees #14

Description

@zoeyrose

Important

This issue is implemented in the fresh MIT-licensed Go server under the replacement program. Its gameplay and content-design decisions remain authoritative. C, CPython, classic packet, file-path, and enum details in the preserved specification are historical evidence only; do not copy, translate, or structurally port GPL implementation code.

Replacement implementation contract

Preserve the Wizardry and Divine Magic branch/acquisition design. Implement Go spell/mastery services, compiled definitions, generated UI contracts, and native quest/dialogue integration.

The server remains authoritative, consumes versioned compiled content, and exposes bounded generated Game Protocol 1 messages. Pure rules may use a specifically approved typed CEL environment. Starlark is not part of this issue unless the separate residual-scripting decision explicitly approves it.

Required verification

  • Preserve every observable rule, balance decision, disclosure boundary, and anti-exploit invariant from the specification below.
  • Add deterministic Go unit/property tests and wrapper-managed scenario coverage at the appropriate integration boundary.
  • Add bounded malformed-input and persistence-failure cases where this feature accepts content, network, or stored data.
  • Add Go/Rust protocol conformance fixtures for every new cross-process field; the client must not reconstruct authoritative rules from prose.
  • Demonstrate that implementation and tests contain no copied GPL source/test material and execute no runtime Python.
Preserved product/design specification and historical implementation notes

Parent and roadmap

Outcome

Build initial spell Mastery branches and integrate Divine Magic with current instructional, temple, book, merchant, and deity-aware content.

Scope

  • Add approved Wizardry branches and Divine Restoration, Warding, and Turning/Judgment branches through the common tree/action framework.
  • Preserve explicit casting tradition independently of effect path and state device/scroll source-skill behavior.
  • Update John Aldman, relevant tutorials, temples, books, merchants, descriptions, and deity-required exceptions.
  • Validate learning, scaling, mana, XP, points, cooldowns, quickslots, and delayed spell attribution.

Superseded path / cleanup target

Remove remaining Wizardry-default assumptions and any spell-only tree/persistence implementation outside the common discipline framework.

Acceptance criteria

  • Wizardry and Divine Magic have distinct usable trees, UI grouping, point ownership, and content.
  • Every direct cast, scroll, device, and delayed effect credits the declared/action-source skill.
  • Divine casting does not require worship globally; deity requirements remain explicit per effect.
  • Tutorial and acquisition content aligns with Redesign divine cleansing and group-healing acquisition content#18 and passes focused map/content checks.

Validation baseline

Before: spell traditions exist but have no shared Mastery trees or complete content integration.

After: arcane and divine progression are explicit, teachable, and mechanically integrated.

Run full spell/action-source matrices, tree persistence/UI tests, tutorial/merchant/map checks, delayed effect tests, and native builds.

This issue is a bounded child of #27. The parent remains open until every sibling child is complete.

Metadata

Metadata

Assignees

No one assigned

    Fields

    Priority

    None yet

    Start date

    None yet

    Target date

    None yet

    Effort

    None yet

    Projects

    Status
    Backlog

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions