Update Healer Man server

This commit is contained in:
phenom committed 2026-10-02 10:38:12 -04:00
1 parent 4c768fbec6
commit b16821e92e
330 files changed
+35406 -1760

No files matched your search

+41
View File
@@ -0,0 +1,41 @@
# WoW Shaman Remaining Talent Audit
**Audit date:** 2026-10-01
**Scope:** generated WoW Shaman talent rows and player/companion combat paths. The initial audit was read-only; its recommended Flurry follow-up is now implemented in isolated runtime hooks and covered by focused tests.
The source model and combat integration are in [`src/game/wow335ShamanFlurryRuntime.ts`](../src/game/wow335ShamanFlurryRuntime.ts), [`src/game/combatStore.ts`](../src/game/combatStore.ts), and [`src/game/partyRuntime.ts`](../src/game/partyRuntime.ts). Focused source and player/companion integration regressions are in [`src/game/wow335ShamanFlurryRuntime.test.ts`](../src/game/wow335ShamanFlurryRuntime.test.ts) and [`src/game/wow335ShamanFlurry.integration.test.ts`](../src/game/wow335ShamanFlurry.integration.test.ts).
## Implemented candidate: Flurry (`talent-602`)
The generated Enhancement talent row has three explicit ranks:
| Rank | Melee attack speed | Charges |
| --- | ---: | ---: |
| 1 | 4% | 3 swings |
| 2 | 6% | 3 swings |
| 3 | 10% | 3 swings |
The proc begins after a melee critical strike. The local generated DBC row and rank text are in [`src/game/wow335Talents.generated.ts`](../src/game/wow335Talents.generated.ts) (`talent-602`, “Flurry”); the generated Shaman talent UI row mirrors those rank descriptions in [`src/game/generated/talentUi/shaman.json`](../src/game/generated/talentUi/shaman.json).
### Why this was a bounded candidate
- The generic talent parser does not interpret “attack speed” as haste, so rank-specific timing needed an explicit temporary melee-haste effect.
- Player main-hand and off-hand autos resolve through the common melee hit path in [`src/game/combatStore.ts`](../src/game/combatStore.ts). Companion Shaman weapon autos resolve through [`src/game/partyRuntime.ts`](../src/game/partyRuntime.ts). Both paths produce the combat result needed to distinguish a landed melee critical from a miss or non-critical hit.
- Player weapon intervals are derived from melee haste, and companion Shaman swing intervals read the actor's melee-haste aura. An actor-local temporary melee-haste aura can therefore affect the already modeled swing timing without inventing a new weapon or attack system.
- `Flurry` supplies the trigger, all three rank values, and the number of affected swings locally. Its generated 100% proc chance avoids an unsupported random roll. WotLKDB is only a secondary reference when local child-spell details are unavailable.
### Implemented behavior and source notes
The runtime gates by each source actor's generated `talent-602` rank; a landed direct melee critical applies that rank's value and three charges to the actor. Each completed melee autoattack attempt consumes one charge; the triggering hit does not. Existing player and companion Shaman swing schedulers read the aura when scheduling the following interval.
The generated rank spells are `16256`, `16281`, and `16282`, with displayed values `4%`, `6%`, and `10%`. Local rank two's expanded tooltip says 6% while its raw child effect has `basePoints: 7`; WotLKDB child effects report 12% (`16277`) and 18% (`16278`). Runtime follows the generated expanded tooltip values. Local rank spells' duration index 21 resolves to `-1` (permanent); triggered child spells `16257`, `16277`, and `16278` each use local duration index 8, which resolves to 15,000 ms. Runtime uses this local duration mapping; WotLKDB rank-two and rank-three child aura rows corroborate 15 seconds. The local `Spell.dbc` and `SpellDuration.dbc` rows were parsed from the extracted client files under `F:\Projects\LadiksMPQEditor\client-current\patch-T\DBFilesClient` and `patch-S\DBFilesClient`, respectively.
Repeated procs currently replace remaining charges with three and restart the timer. The source pages do not state whether stock reapplication restores used charges or expose proc-phase flags, so those are documented implementation choices. The runtime counts resolved melee autoattack attempts, including misses, as swings; special direct melee hits can trigger Flurry, while periodic packets cannot. Both hands consume a shared actor aura. If hands are due at the same simulation timestamp, existing loop order resolves main-hand then off-hand. A special ability's proc does not retime an already-pending swing; exact fractional swing progress is outside the combat model.
Focused validation passed for the source helper and player/companion integration (8 tests total). The tests cover generated ranks, landed-crit gating, player haste scheduling, companion rank ownership, three subsequent autoattack charges, charge expiry, and the implementation refresh policy. Equal-time dual-wield order and server-confirmed refresh/proc flags remain open.
## Other candidates reviewed
- **Static Shock (`talent-2055`, Enhancement, 3 ranks):** the generated rows specify rank-based Lightning Shield damage/charge increases and melee-hit proc chances, but leave the internal cooldown unresolved as `the listed amount[1 second][1.5 seconds]`. Resolve that rank mapping from the local spell data before implementing the full talent; the unresolved text is why this was not selected as the source-complete candidate.
- **Nature's Guardian (`talent-1699`, Restoration, capstone rider):** its threshold and cooldown are named, but the self-heal is only “a small amount (increased by healing power).” The generated tooltip does not provide its base amount or scaling formula, so do not guess those values.