Files
healer-man/docs/DETERRENCE_INTEGRATION_2026-10-07.md
T
2026-10-07 13:05:04 -04:00

156 lines
9.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Hunter Deterrence integration — 2026-10-07
Hunter Deterrence 19263 is available at level 60 to players and configured
Hunter companions. It grants its three parent auras and the two linked 67801
auras to the same caster for five seconds, costs no Mana, preserves the existing
global cooldown and starts its sourced 90-second cooldown. The selected source
requires a matching equipped weapon. The existing Training Gear staff satisfies
that mask; a source Disarm does not remove the matching item, and the pinned
nonpassive aura-spell exception still permits this cast.
## Source and ownership
The pinned Spell.dbc SHA-256 is
`57011d528fd66cf39f5ab6fb168e389ab9e4cc1b8050f7201a54239d489b415c`;
AzerothCore is `e822d718322289dd036fb2daf8867ba41283bf9a`. The exact type-2
`spell_linked_spell` row binds 19263 to 67801. Same-name 65871 and child 67801
remain unavailable as independent Hunter actions. The older
[source audit](WOW335_DETERRENCE_SOURCE_2026-10-06.md) records the raw package.
- `scripts/dungeon-pipeline/export-enemy-damage-types.mjs` owns generated raw
Attributes0/3/7 (DBC fields 4/7/11). `mobDamageTypes.ts` and
`enemyAttacks.ts` retain them on normalized, source-identified WoW attacks.
All 671 existing WoW source rows and RuneWaker mappings are retained. Unknown,
native and omitted non-damage rows do not acquire invented zero attributes.
- `wow335AbilityCatalog.ts` supplies a narrow fallback for selected 19263,
which the generator's class-mask filter omitted despite its Hunter skill-line
row. Its pinned PreventionType lookup covers all 190 selected Hunter rank IDs
and the public merged ability aliases.
- `wow335DeterrenceRuntime.ts` validates the selected ability and all five real
aura instances: exact behavior, owner, target, application time and lifetime.
- `combatStore.ts` applies the linked children after accepted parent effects,
forces this self cast to the caster even when a caller supplies a foreign
target, synchronizes malformed/expired packages and resolves incoming results.
- `partyRuntime.ts` selects a learned, ready self defense while a live enemy
targets the Hunter and health is below its configured defensive threshold
(default 55%), or a recognized defensive mechanic is imminent. It rejects an
active cast and respects equipment, cooldown, resources and existing GCD.
## Defense and attack behavior
The parent supplies +100 parry percentage points, sourced spell deflection and
pacify. Linked 67801 supplies ignore-facing and -100 incoming ranged-hit
percentage points. Simultaneous Hunters keep separate owner-local packages.
Incomplete, foreign and expired packages cannot lend parry or ranged-hit stats
to incoming resolution; the shared tick removes their package members.
Eligible landed, direct WoW Magic/ranged spell packets become an explicit
`deflect` outcome with zero effective damage. Raw damage remains diagnostic;
critical/block/resistance mitigation is discarded, no absorb is consumed and
no landed-hit proc is credited. Earlier miss/full resist remains the actual
outcome. Ordinary ranged autos use Aura185's miss modifier, and melee uses
parry. Known source flags are matched against the complete source row tuple
before applying AlwaysHit, NoActiveDefense, NoAttackMiss or defense exclusions.
The complete package rejects the front-arc requirement through its linked aura.
The exact 100% deflect package also suppresses eligible hostile control, aura,
periodic application, pull and leech-healing riders. Damage retains its real
roll. Stun is read from the original combat-update snapshot, before a newly
queued slow changes control state. Source bypasses, stunned defenders, periodic
ticks, autos and unknown/native source records do not borrow spell deflection.
Pacify stops owner weapon autos and selected Hunter PACIFY=2 attacks, including
Arcane Shot and Steady Shot. SILENCE=1 actions such as traps and Mend Pet remain
eligible under their ordinary prerequisites. This does not pacify the pet.
## Verification
The final focused run passes **110/110 checks in 15 files**, including 12
actual cast/defense integration cases. The exporter Node test and two selected
catalog/prevention checks pass. Ready-five passes seven Vitest and twenty Python
checks. Final 8 GB TypeScript, normal prebuild hooks, isolated Vite output,
precompression and release-bundle verification pass; the isolated output avoids
the previously observed shared `dist` lock. Build logs and JSON reports are in
`artifacts/deterrence-continuation-2026-10-07/`. Actual player/NPC fixtures are
`wow335DeterrenceCast.integration.test.ts` and
`wow335DeterrenceDefense.integration.test.ts`.
The required avatar scope also passes **56 checks in 11 files**, following the
equipped-item requirement change. No character/gear rendering code changed.
The fixtures prove actual player and NPC Frostbolt deflection, no newly applied
slow on a deflected spell, existing stun exclusion, melee parry, periodic and
AlwaysHit exclusions, source-bound cast requirements, linked expiry and
simultaneous owners. Source ranged spell 2643 truthfully misses under Aura185;
the helper separately verifies its eligible deflect branch for a landed input.
Arcane/Steady casts reject while Freezing Trap succeeds under pacify. A torn
Aura185 package matches the same-seed auto baseline; regular tick cleanup leaves
the second Hunter's valid package intact. Native/unknown source rejection is
helper evidence, not a new native live encounter.
The final frozen build contains 5,967 files / 118,501,108 bytes; aggregate SHA-256
`a30787cafc7e1421e872cb37f883147177981b6627dc4238bf89f46ffb850ec2`.
Fresh content `content-151109efcb20cc00` has manifest SHA-256
`40d5c9e16d8045b8c240d57ca52017aaf95e423c44f96507aceb02285dca693c`;
all 27,587 referenced objects / 6,554,643,247 bytes verify against that captured
manifest before entry. The isolated snapshot is
`artifacts/deterrence-continuation-2026-10-07/frozen-20261007-161003375/`.
One ordinary Cellblock Rush run, `20261007-161404213`, selects **Hamhock 1717**
(`creature-79098`) and clears native **1/1 in 03:13.6**, with no deaths. The
isolated UI-created Discipline Priest enters at level 30 with four asserted
Ready companions; normal progression finishes the Priest at 32 and companions
at 31. Six attributed Lesser Heal events supply **1,952 effective healing**,
zero overheal. No live combat-state seeding or Boss Testing is used.
Root independently verifies the unchanged frozen build/manifest, all seven
loaded chunks and 2,124 served manifest objects / 77,019,550 bytes with zero
integrity failures. Event coverage is **745 consecutive IDs 9–753**, with no
gaps, discarded events or recorder errors. There are zero page exceptions;
the only console error is the existing favicon 404. The audit matches immutable
local bytes to captured successful response URLs/status and manifest references;
raw response bodies are not retained or independently hashed.
Root inspects the actual roster, equipped entrance, route-50 and results PNGs
under `playtest-artifacts/stockade-weapon-utilities/20261007-161404213/campaign/`.
Bodies and visible equipment render; entrance overlap and partly offscreen
companions limit certification of every gear/race silhouette. The file named
`bite-sized-stormwind-stockade-boss-arrival.png` shows the native results overlay.
No camera-drag proof or level-60 live Deterrence claim is credited. This is the
one selected boss slice, despite the results screen's generic full-clear label.
The harness cleans up its browser/helper/server. No gameplay change or second
live run follows the freeze.
The independent Luna extra-high evidence review confirms those fingerprints,
event coverage and native result without launching another run or rehashing
content. Native completion ends traversal at checkpoint 75/86 before the
dedicated boss handler (`bossClearAttempted:false`); observed boss death and
persisted kill progress prove the clear. Do not claim a completed scripted boss
handler or every route checkpoint. Its report is
`artifacts/deterrence-continuation-2026-10-07/luna-evidence-review.md`.
Final release hygiene passes all 101 changed paths, including untracked files;
the user Git index remains empty.
## Remaining boundaries
The underlying miss/resist/armor formulas remain the existing simulator model,
not a complete AzerothCore hit table or RNG reproduction. The exported enemy
table excludes unsupported/non-damage rows, so general shout/utility deflection
remains unproven. Ordinary miss/resist control riders without this exact
Deterrence package retain their earlier behavior. Same-update controls use the
original-frame simultaneous policy; source server event ordering is not claimed.
The always-equipped Training Gear fixture does not exercise a truly empty
matching-equipment branch. Unknown/custom/native rates and equipment remain
separate source gaps.
The routine level-30 Ready-only live party does not unlock level-60 Deterrence;
its player/NPC behavior is actual store-fixture evidence. Cellblock Rush proves
only the selected one-boss route and regression behavior. Level cap 80, saved
stat/profile compatibility, loot wiring and readiness policy remain intact.
No full suite, expanded balance sweep, staging, commit or deployment is part of
this continuation. All subprocesses use GPT-6 Luna extra-high.
Related: [catalog](DETERRENCE_CATALOG_2026-10-07.md),
[runtime contract](DETERRENCE_RUNTIME_CONTRACT_2026-10-07.md),
[hit source inputs](ENEMY_HIT_SOURCE_INPUTS_2026-10-07.md).