Update Healer Man server
This commit is contained in:
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.
|
||||
Reference in new issue
Block a user