Update Healer Man server

This commit is contained in:
phenom committed 2026-10-07 13:05:04 -04:00
1 parent 69809f7228
commit ff20ab8779
101 files changed
+16713 -945

No files matched your search

@@ -0,0 +1,87 @@
# WoW 3.3.5 Hunter Deterrence runtime contract — 2026-10-07
## Scope
`src/game/wow335DeterrenceRuntime.ts` binds the selected Hunter catalog row to
the audited Spell.dbc 19263 parent and its `spell_linked_spell` Aura link to
67801. It supplies source-shaped aura descriptors and a narrow post-hit
deflect gate. The shared combat store, party runtime, and combat-result paths
own cast execution, actual aura application/removal, and outcome recording.
The five source aura definitions are identified by their source spell/effect
IDs: parent 19263 Auras 47, 287, and 25; linked child 67801 Auras 288 and 185.
All five instances must belong to the same Hunter self-cast, target that Hunter,
share one application time, and expire exactly five seconds later. The runtime
contract returns no Deterrence package when any member is missing, duplicated,
expired, foreign-owned, or out of step with the other members. Removing or
expiring one member should remove the other members for that same owner,
target, and application time.
The helper exports the parent effects for the selected catalog mapping and the
linked-child effects for the original cast target. Aura 47 carries a flat +100
parry modifier. Aura 25 carries the pacify tag. Aura 287 supplies the 100-point
spell-deflect source aura. Aura 288 removes the attacker's frontal-arc
requirement for this package. Aura 185 carries the -100 incoming ranged-hit
modifier; the existing shared hit-stat path consumes it, so the combat caller
must not add a second copy of that penalty.
## Deflect gate
`resolveWow335DeterrenceIncoming` is a final gate after the existing combat
resolver has produced a landed `hit`, `crit`, or `block`. It preserves `miss`,
`resist`, `dodge`, and `parry`. For an otherwise eligible event it returns the
distinct `deflect` outcome; the source aura is 100%, so this gate adds no random
roll.
The input must identify a non-periodic WoW 3.3.5 spell source and match the
exact enemy damage-source row, including DamageClass, SchoolMask, and raw
AttributesEx0/3/7. Only Magic (DamageClass 1) and ranged (DamageClass 3) spells
qualify. DamageClass None, melee, unknown, foreign-profile, periodic, and
weapon-auto inputs remain unchanged. A stun suppresses deflection. The core's
source bypasses are preserved: AttributesEx3 `ALWAYS_HIT` (`0x00040000`)
suppresses both branches; ranged DamageClass also skips the deflect check for
AttributesEx0 `NO_ACTIVE_DEFENSE` (`0x00200000`); Magic DamageClass skips it for
AttributesEx7 `NO_ATTACK_MISS` (`0x02000000`). The front-arc gate applies unless
Aura 288 is active. A complete accepted Deterrence package always contains Aura
288, so an attacker behind the Hunter remains eligible.
Ordinary ranged autos never produce `deflect`. They receive Aura 185's separate
incoming ranged-hit modifier through the existing aura-stat path. The helper
does not calculate general miss/resist chances, and it does not widen the
simulator's existing combat table to other spells or profiles.
The shared combat path also uses this exact eligibility gate before applying
non-damage spell riders while the complete Deterrence package is active. For a
source event that is guaranteed to deflect if it lands, control, target-aura,
periodic, pull, and leech-healing riders are skipped while damage still goes
through the ordinary hit resolver and records `deflect` only after its normal
landed result. This suppression is package-specific; ordinary sourced attacks
outside Deterrence retain the simulator's existing rider behavior on miss or
resist. Same-update incoming events use the combat store's original-frame stun
snapshot, consistent with its simultaneous batch policy.
## Identity and provenance
The source contract continues to use the exact audited 19263, 67801, and
type-2 link signatures in `src/game/wow335Deterrence.ts`. The runtime ability
contract accepts only the selected `wow335-hunter-deterrence` Hunter mapping,
its `wow335-progression` source, DBC ID 19263, self target, and the three exact
parent source effects. Runtime activation is derived from the actual serializable
`ActiveAura` records; callers do not pass a copied source-package object as
proof. Incoming deflection independently checks its spell ID and hit attributes
against the exact WoW damage-source table. Missing or mismatched source fields
fail closed.
The pinned source evidence and the limits of the imported behavior are recorded
in [`WOW335_DETERRENCE_SOURCE_2026-10-06.md`](WOW335_DETERRENCE_SOURCE_2026-10-06.md).
The source row authenticates hit-class and bypass metadata; the game's current
miss/resist calculations remain its own policy. This contract does not create a
complete AzerothCore hit table.
## Focused verification
Run `npx vitest run src/game/wow335Deterrence.test.ts src/game/wow335DeterrenceRuntime.test.ts`
for the exact source rows, linked package identity and lifetime, cleanup scope,
branch-specific bypass bits, and unsupported-input exclusions. The mechanics
work remains within the project's Ready-five certification boundary, level-80
cap, and existing loot scope.