Skip to content

Surface pull punch / roll with impact / disarm bonuses on the character sheet #20

Description

@StreamDemon

P2 — confirmed 2/2 by adversarial review (see docs/reviews/2026-07-03-rules-layer-review.md, PR #19).

hthBonuses correctly accumulates every bonus key from hand-to-hand.json (test-asserted: hthBonuses("basic", 12) includes pullPunch: 4, rollWithImpact: 4, disarm: 1), but CombatProfile (combat.ts:144-162) and deriveSheet (character.ts) carry only strike/parry/dodge/damage. The content-backed bonuses never reach any sheet — and since the Convex layer (#6) and UI (#10) render exactly what deriveSheet returns, they can never reach the rendered sheet either.

Fix: carry all hthBonuses keys through CombatProfile (spread the record) or add explicit pullPunch/rollWithImpact/disarm/entangle fields. Basic grants pull punch +2 / roll +2 at level 1, so this affects every character from level 1.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:rulesRules engine (@riftforge/rules)

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions