154 lines
9.2 KiB
Markdown
154 lines
9.2 KiB
Markdown
# Enemy utility and control completion — 2026-10-06
|
||
|
||
## Implemented behavior
|
||
|
||
Ordinary source Creature self-casts can import Critical Block 47294–47296
|
||
through a separate guarded path. The known template, identical caster/target,
|
||
complete profile/rank signature and default-core aura 107 applicability proof
|
||
are required. Aura107 spell modifiers are no-ops for non-player targets on
|
||
that audited default path; aura 253 supplies critical-block chance. The generic
|
||
importer and Deterrence remain gated. No source creature assignment was found,
|
||
so this pass assigns no new NPC cast. A labeled synthetic runtime fixture
|
||
proves permanent application, critical blocking, no damage and reset cleanup.
|
||
|
||
Exact WoW335 Shield Bash 72 now rolls one ordinary-NPC block stage before the
|
||
player and companion utility effect loops. Full blocking cancels the entire
|
||
recipient effect list while retaining the accepted cast's cost and cooldown.
|
||
A zero-amount cast result carries the block flag; no damage packet is
|
||
fabricated. Existing facing, casting, control, no-block, native, summon and
|
||
character-defender gates remain authoritative. An actively casting NPC cannot
|
||
block, so an unblocked interrupt still uses the existing interruption path.
|
||
This stage adds block only; other utility hit/avoidance behavior is unchanged.
|
||
Additional ranks, profiles and unknown custom attributes are not inferred.
|
||
|
||
Source shouts 5246/19134 apply parent aura 31's +25% movement speed alongside
|
||
their caster-centered fear. Player and companion movement consume the
|
||
strongest active target-local tagged bonus. Fear and speed share the parent
|
||
aura's adjusted lifetime, source-caster refresh and caster-removal persistence.
|
||
Baseline durations remain 5/4 seconds in Ascension and 8/6 seconds in Epoch.
|
||
The source core adjusts one shared parent aura duration; a fear-duration
|
||
modifier therefore shortens its speed rider too.
|
||
|
||
All four parent/child rows carry spell-level MECHANIC_FEAR. Whole-spell fear
|
||
immunity rejects their controls and riders before per-effect immunity checks.
|
||
Stun immunity alone strips 20511's stun effect while preserving Ascension's
|
||
separate +15% physical-damage-taken rider. Epoch has no such physical rider.
|
||
Compiler pins now include spell mechanic and all eight raw attribute words;
|
||
regenerated campaign JSON is byte-for-byte identical to the starting snapshot.
|
||
|
||
## Source boundaries
|
||
|
||
The stance/Thrash audit rechecks four active world tables against both locks
|
||
at world commit 4d9d1d4b5723e819c5c390f6ca1177283dbfb8e3, separately from the
|
||
read-only historical core e822d718 behavior reference. Ascension passive 7376's
|
||
third effect is fixed DUMMY +42, with no recovered handler/registration; the
|
||
core correction only suppresses caster procs. It remains metadata-only.
|
||
Targorr 1696 is SmartAI. Its three source rows cast 674, cast 8599 at low health,
|
||
and talk; no row schedules 3391. The template spell list establishes Thrash
|
||
availability, and CombatAI's separate scheduler cannot supply SmartAI timing.
|
||
The existing simulator cadence is retained and remains explicitly approximate.
|
||
|
||
The existing player/party/summon fear policy immobilizes rather than reproducing
|
||
source fleeing AI. Eligible summons can receive the source aura, but their
|
||
control loop returns before movement for that shared lifetime. General Magic hit/resist/deflect, already-active aura purge
|
||
on an unidentified immunity grant, wider utility full hit tables, Deterrence
|
||
siblings, native custom equipment/rates/prerequisites and broader weapon/proc
|
||
formulas remain separate gaps. The shout rows alone do not prove an immunity
|
||
grant's `IMMUNITY_PURGES_EFFECT` flag. Shield Bash retains trigger 29703 in its
|
||
parent descriptor, but the Daze child is absent from the runtime catalog;
|
||
this pass cancels trigger execution on full block without claiming a live
|
||
child application.
|
||
|
||
Source reports:
|
||
[Critical Block imports](NPC_CRITICAL_BLOCK_IMPORTS_2026-10-06.md),
|
||
[utility blocking](UTILITY_SPELL_BLOCKING_2026-10-06.md),
|
||
[shout speed/immunity](ENEMY_SHOUT_SPEED_IMMUNITY_2026-10-06.md), and
|
||
[stance/Thrash audit](STANCE_THRASH_SOURCE_AUDIT_2026-10-06.md).
|
||
|
||
## Validation
|
||
|
||
The directly affected helper/runtime selection covers 96 passing tests across
|
||
15 files, including the final 15-test shout file and four new actual utility
|
||
runtime tests. Runs overlap and are not additive. The player utility fixture
|
||
proves one block result, normal completion telemetry, retained cost/cooldown
|
||
and no damage. The companion fixture is a synthetic accepted pending cast
|
||
completed through the real executor. Casting-defender interruption and all
|
||
excluded defender types are covered. Six compiler source-pin Node tests pass,
|
||
including all shout attribute words and Critical Block sibling drift.
|
||
Ready-five passes 7 Vitest and
|
||
20 Python tests, and avatar checks pass 56 tests. The production build passes
|
||
TypeScript with 8GB memory, Vite, environment audits, compression and release
|
||
bundle verification. Existing prehooks regenerate the same 9-boss/23-item loot
|
||
catalog; this task adds no loot wiring. No full suite or all-class sweep runs.
|
||
|
||
Luna's read-only review finds no confirmed defect in the shared block,
|
||
Critical Block, shout or compiler integration. Final utility tests and an
|
||
8GB TypeScript check pass after adding their fixtures. No production source
|
||
changes follow the final build/freeze.
|
||
|
||
## One final live check
|
||
|
||
Run `playtest-artifacts/stockade-weapon-utilities/20261006-141251022/` enters
|
||
Cellblock Rush normally with a UI-created Discipline Priest and four Ready
|
||
companions. Isolated pre-entry preparation sets level 30; gameplay uses ordinary
|
||
movement, targeting, healing and party commands with read-only telemetry.
|
||
No Boss Testing, teleports, combat-state writes or enemy/aura seeding occur.
|
||
|
||
The seeded boss is **Targorr the Dread**, entry 1696, source/live
|
||
`creature-84027`. Native killed-boss progress and the visible results overlay
|
||
agree on **1/1** in **03:09.2**. No player or party deaths occur. Seven effective
|
||
player healing events total 2,337, with 95 overheal. The result certifies this
|
||
one-boss slice; the harness's historical full-clear field names do not mean
|
||
the five-boss full Stockade campaign was tested.
|
||
|
||
The committed recorder retains 749 consecutive events, IDs 9–757, with no gaps,
|
||
errors, discarded events/states or coverage issues. Source NPC hand results
|
||
include 56 mainhand, four offhand and two Thrash extra-mainhand outcomes; the
|
||
extra swings retain source 3391. They demonstrate the existing simulator
|
||
schedule/effect, not a source-proven Targorr cadence. Player/party hand results
|
||
total 172. Three committed Disarm windows contain seven hand results; this
|
||
overlap is evidence of actual events, not independent proof of contribution
|
||
formulas. Three Disarm and 42 Wound snapshots are observed. Block/shout and
|
||
Bloodlust aura applications are unobserved; no live claim is made for them.
|
||
Critical Block has no real source creature assignment in this catalog.
|
||
|
||
Root inspects roster, dungeon equipment silhouette, mid-route and the native
|
||
results image (`bite-sized-stormwind-stockade-boss-arrival.png`). Player/party
|
||
bodies and staff, shield and blade silhouettes are visible. Overlap and HUD
|
||
occlusion prevent a complete per-companion gear inspection. There are no page
|
||
exceptions; the sole outer console item is a favicon 404.
|
||
|
||
The build freeze is
|
||
`artifacts/enemy-utility-control-2026-10-06/corrected-build-20261006-140236745/`:
|
||
5,967 files, 118,061,079 bytes, aggregate SHA-256
|
||
`8cf9513613aa3ef6a0a64de392e90521b0349d85311f930ba8808e868d6867d9`.
|
||
The unchanged isolated content copy is reused from the earlier fully verified
|
||
freeze: 27,571 objects, 6,489,632,021 bytes, manifest SHA-256
|
||
`ac0fa2a867ba0a495c172de2b89532d69b32d56d032482b26020ce2d189f074b`.
|
||
The new freeze rehashes the complete build and both content manifests; it does
|
||
not recopy unchanged content objects. Before/after fingerprints agree. The
|
||
harness verifies 2,124 actually served manifest-referenced hash-addressed
|
||
objects with zero integrity failures. Raw network bodies are not retained;
|
||
evidence joins recorded URLs/status with the immutable local source files.
|
||
|
||
The independent evidence-audit follow-up also fails with Luna capacity. Root
|
||
runs `root-evidence-audit.cjs` in the current live evidence folder, rehashing
|
||
all 5,967 frozen files, seven recorded loaded chunks and all 2,124 served
|
||
manifest objects (77,019,550 bytes), with zero failures. It independently
|
||
recomputes consecutive event IDs, native one-boss completion, zero deaths and
|
||
the error boundary from retained artifacts. `root-evidence-audit.json` labels
|
||
this root fallback explicitly; it is not presented as a completed subprocess
|
||
audit. No higher-tier subprocess is selected.
|
||
|
||
All subprocesses use GPT-6 Luna with extra-high reasoning. The utility runtime
|
||
follow-up failed because that model was at capacity; root completed its four
|
||
tests directly without upgrading a subprocess. Level cap 80,
|
||
Ready-five certification and loot scope remain unchanged. The shared workspace
|
||
contains concurrent edits; no staging, commit or deployment is part of this
|
||
pass. Historical source trees remain read-only.
|
||
|
||
Final `npm run release:check` passes 478 changed paths, including untracked
|
||
files. Game and vault diffs are checked separately; all 13 task documents
|
||
pass EOF and trailing-whitespace checks. Canonical notes and the closed
|
||
worklog record the implemented behavior and remaining boundaries.
|