Files
healer-man/docs/BALANCE_TUNING.md
T
2026-09-20 21:50:50 -04:00

68 lines
3.0 KiB
Markdown

# Ability and Talent Tuning
The main-menu **GM Menu** exposes **Ability & Talent Tuning** to authenticated
GMs. It is a full-screen DOM tool intended for fast local combat iteration. The
catalog can be searched and filtered by class, and the selected entry exposes
its source values beside editable runtime percentages.
## Ability overrides
Ability overrides are keyed by stable ability ID. Each field is expressed as a
percentage of the source catalog value: `100` preserves the source, `50` halves
it, and `200` doubles it. The editor supports:
- cooldown;
- cast or channel time;
- resource cost;
- direct, periodic, finisher, and summon damage;
- direct, periodic, and absorb healing;
- aura, control, summon, and periodic duration;
- area radius, chain reach, and ground reach.
`src/game/balanceTuning.ts` normalizes and applies the policy.
`src/game/abilityCatalog.ts` retains the authored catalog separately and
rebuilds its live definitions whenever the GM applies a draft. This prevents
percentage changes from compounding when the editor is opened repeatedly.
## Talent overrides
Talent overrides can scale every supported passive modifier parsed from a
talent tooltip. They can also add a signed percentage-point modifier per learned
rank for damage, healing, critical chance, haste, costs, cooldowns, durations,
range, threat, attributes, defenses, or resources.
On-use talents are not passive modifiers. Inner Focus is explicitly excluded
from passive tooltip parsing. Activating its ability grants a temporary aura;
the next direct single-target or area heal costs no resource, gains 25
percentage points of critical chance, keeps its ordinary cast time, and consumes
the aura. Tune its cooldown and aura duration from the Abilities tab.
## Persistence and scope
The normalized policy is stored per device under
`healer-man:balance-tuning:v1`. Applying it updates player abilities, NPC
companion abilities, and client-side test runs that use the live browser
catalog. **Reset ability**, **Reset talent**, and **Reset all** remove overrides
without changing authored or generated source data.
This first editor is intentionally a local sandbox. Server Balance Lab jobs run
in a separate process and do not read browser local storage; permanent balance
changes should still be moved into authored source data after local validation.
## Heirloom ratings
Virtual heirlooms include specialization-aware critical-strike and haste
ratings for strength, agility, ranged, spell-damage, and healer profiles.
Protection tank gear instead prioritizes defense, avoidance, block, stamina,
and expertise. `src/game/wotlkStats.ts` converts the ratings at the character's
level into melee, ranged, and spell critical/haste percentages. Both player and
party heirlooms continue to cap at item level 79.
## Validation
```powershell
npx vitest run src/game/balanceTuning.test.ts src/game/talentModifiers.test.ts src/game/combatStore.test.ts src/game/heirloomEquipment.test.ts
npm run build
npm run release:check
```