9.4 KiB
Enemy weapon utilities — 2026-10-05
Scope
This continuation implements the authorized Bloodlust, Disarm/Infected Wound and Dual Wield/Thrash groups. Separate GPT-6 Luna extra-high subprocesses own their source helpers and tests; shared runtime and catalog integration preserve the existing level-80 cap, loot scope and Ready-five certification. Routine browser proof uses Stormwind Stockade: Cellblock Rush and records the actual seeded boss. Full Stockade campaigns remain separately selected.
Source contracts
| Mechanic | Verified behavior |
|---|---|
| Bloodlust 6742 | One selected friendly creature, 30 seconds, +30% melee haste, Magic dispel. No party-wide aura radius. Separate source haste factors multiply: Bloodlust and Enrage give interval factor 100/169. |
| Disarm 6713, Ascension | Five seconds; main-hand and ranged channels. Offhand and casting remain available subject to exact equipped-item requirements. |
| Disarm 6713, Epoch | Five seconds; main-hand channel only. |
| Infected Wound 17230 | Five minutes; Disease dispel; +6 flat physical damage taken before armor, block and absorbs. Its own Nature school does not determine the damage modifier's school. |
| Dual Wield 674/29651 | Non-damaging persistent creature capability. Explicit enabled mode uses the source creature baseline for an independent offhand, with the core's 0.5 damage factor. |
| Thrash 3391 | Two queued main-hand extra swings on the next unit update, separate ordinary hit/mitigation results. The spell itself is not a direct-damage packet. |
The pinned Ascension and Epoch rows, shared support tables, core consumers and source limitations are in the subprocess audits:
Hamhock's raw SmartAI has a five-second, one-time self Bloodlust event with
SMARTCAST_AURA_NOT_PRESENT, plus an independent event-16 missing-buff check
within 30 yards and ten-second repeat. The latter selects one engaged living
friendly creature. Targorr's raw Dual Wield event is in combat; Bazil's is out
of combat, despite conflicting SQL comments. Numeric event IDs are authoritative.
Targorr's template lists Thrash but this source set does not supply a SmartAI
Thrash cast schedule. Any retained generic template cadence is simulator policy,
not a recovered source schedule.
Integration
The compiler emits source-bound utility effects instead of false direct hits. It retains both sourced Hamhock Bloodlust rules while suppressing the duplicate template fallback. Ordinary source auras use the shared authoritative aura array. Disarm state uses explicit channel tags; it does not become a blanket crowd-control state or remove equipped items. Weapon damage masking is temporary; non-weapon item stats and persisted equipment remain intact.
The WotLK ability importer had exported equipment metadata from fields 67/68. Independent raw Spell.dbc probes establish fields 68/69/70 for item class, subclass mask and inventory mask. The scoped refresh must preserve all other rank fields, including costs, effects, progression and spell-defense metadata. Classic Ascension equipment metadata requires the same field correction.
The metadata-only CoA refresh compares parsed current input/output before its write, allowing only the three equipment fields and synchronization timestamp. No persistent pre-refresh snapshot was retained; the former dirty working tree cannot now be independently reconstructed from HEAD. The final formatting-only rewrite was separately checked for parsed equality.
Timed direct Bloodlust, Disarm and Infected Wound auras on another actor survive caster death/removal or return-home cleanup. Removing the recipient and resetting the encounter still clears them. Existing cleanup for other aura families stays outside this change. Disarm target eligibility uses currently usable resolved weapons, so an unavailable weapon cannot refresh the debuff.
WoW-ruleset unarmed main-hand autos retain the core's 1–2 base, two-second delay, AP and other item stats. This includes RoM characters using WoW compatibility. Native RoM unarmed amounts, complete weapon-dependent aura removal and permitted generic weapon formulas remain source/runtime limits. Explicit source utility support does not supply missing automatic/flag-driven virtual equipment.
The existing enemy-team simulation does not model core faction hostility, map phase or object-size-expanded range. Selected friendly recipients therefore use the represented enemy team, engaged/living state, point distance and LOS. This is an explicit simulator boundary rather than an exact faction search.
Validation
Completed focused checks cover 360 distinct Vitest cases, five Node cases and twenty Python cases. Repeated regression runs do not inflate these totals.
| Scope | Result |
|---|---|
| Shared aura/source contracts, imported aura execution and Bloodlust (six files) | 32 Vitest |
| Selected source/Stockade campaign assertions | 11 Vitest; 22 unrelated cases skipped |
| Avatar and equipment rendering invariants | 56 Vitest |
| Shared combat results, stance/block/spell metadata and native exclusions (eight files) | 57 Vitest |
| Actual imported Disarm application, unusable reapplication and expiry | 2 Vitest |
| Dual Wield/Thrash helpers and imported runtime | 14 Vitest |
| Disarm contracts/runtime/player-party execution plus affected party/combat files | 171 Vitest |
| Actual imported Wound, physical packet kinds, mitigation, Cure Disease and caster removal | 10 Vitest |
| Ready-five | 7 Vitest + 20 Python |
| Equipment-column parser and pinned utility drift | 5 Node |
The standard 8GB TypeScript compilation passes. A default-output build reached
Vite but hit Windows EPERM clearing the shared dist/assets folder. The same
8GB TypeScript/Vite pipeline succeeds with the isolated output
artifacts/enemy-weapon-utilities-2026-10-05/production-dist; standard prebuild
asset audits, precompression and release-bundle verification pass. The shared
build already had a restored index when checked and was preserved.
Earlier test-fixture seed/timestamp type errors were corrected before this build.
The validated output is copied and checked before/after freezing. Its 5,964-file
aggregate SHA-256 is
58dfe50765b0635caeae50bd3eca2fd079cd69cce0e571ff6cb2dd5aeec77b39.
Entry is index-nDB7zewy.js; combat is combatStore-NW7YcPHP.js.
Frozen build/content live under
artifacts/enemy-weapon-utilities-2026-10-05/frozen-20261006-011726964/.
Content version is content-62324661bc5f7a0e, manifest SHA-256
36614a23f3b98b4289bc3726c8a9bdb075445ada50dfce6504ade4e36325be1f.
All 27,571 referenced objects (6,489,458,993 bytes; 21,597 logical files) were
copied and independently verified against their manifest hashes.
The final Luna review found missing attribute pins for 674/29651/3391. The compiler now rejects profile-specific attribute drift and Thrash die-roll drift; its three tests pass. Regeneration validates both clients and leaves campaign JSON and compressed TypeScript byte-identical. Source spell availability does not establish missing Thrash timing.
Frozen Cellblock Rush run 20261006-012123000 selects Hamhock
(entry-1717, creature-79098) and verifies its native 1/1 clear in 3:14.6.
The level-30 Discipline player and four Ready companions enter normally; there
are no observed player or party deaths. The build and content manifest remain
unchanged, and all 2,124 served manifest-referenced objects were independently
rehashed by root. The roster, dungeon equipment silhouettes and results capture
were visually inspected. There are no page exceptions; the console records one
favicon.ico 404.
This first run's checkpoint projection omits the new weapon fields even though the live-state reader captures them. All-null summarized weapon state therefore establishes a harness gap, not an absent game mechanic. The recorder now retains those fields through the checkpoint reducer and captures the three direct utility aura IDs globally, including player and party recipients.
Corrected run 20261006-013934624 uses the same frozen inputs and selects
Bazil Thredd (entry-1716, creature-79124). It verifies the native 1/1 clear
in 3:20.7 without player or party deaths. All 328 mob snapshots retain weapon
fields; 35 show Bazil's Dual Wield capability enabled. All captured offhand
timers are zero, no hand-specific swing is captured, and no nonempty extra
queue is observed. Capability evidence does not establish an offhand hit.
The global aura store supplies 26 snapshots of the tank's single Wound instance,
with four distinct source/application-time tuples. Each is one stack, Disease,
and exactly 300,000 ms; these are four observed applications/refreshes, not
26 applications. Bloodlust and Disarm auras remain unobserved in this retest.
Deterministic imported-runtime tests cover those mechanics and queued Thrash.
Root independently verifies unchanged build/content inputs, all 2,124 served
objects and the actual entry/combat/runtime chunks again, and inspects the
new roster, dungeon and native results captures. No page exceptions; one
favicon 404. Both runs' root-evidence-audit.json files retain the audit scope.
Final release hygiene passes, including untracked files; game and vault
changes are reviewed separately. No full-source campaign or readiness promotion
is inferred from these two ordinary one-boss routes.
See the scoped live report.