# 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).