# WoW Killing Spree audit — 2026-10-04 ## Finding The `combatRotation.test.ts` failure was a stale generic effect-shape expectation, not a missing player strike handler. Its representative-signature assertion required every class's chosen action to expose a non-utility effect. Killing Spree's local 51690 row is a periodic-dummy aura and target selector; the catalog therefore exposes a `class-script` utility marker for the dedicated Rogue path instead of fabricating a generic direct-damage effect. The catalog unit test already checks this marker and its 2,000-ms duration. The representative test now requires that exact shape for Killing Spree while retaining the direct-effect requirement for every other signature. The audit also found a separate source-backed runtime defect: the player class script created a +1% damage aura, although Killing Spree's linked source child provides +20% damage. The runtime now applies +20% for the 2-second duration, and the Rogue mechanic regression checks the aura together with the existing ten strike events. ## Source evidence HealerMan's generated local ability data identifies Killing Spree as talent node `talent-2076`. Rank spell 51690 has a 500-ms periodic aura, a 10-yard hostile target-selection effect, a 2-second duration, and a description whose damage token references child 61851. The read-only local 3.3.5 Spell.dbc at `F:/Projects/wow-pvt-server-backups-2/build/bin/RelWithDebInfo/data/dbc/Spell.dbc` resolves child 61851 Effect 2 to AuraType 79 (`SPELL_AURA_MOD_DAMAGE_PERCENT_DONE`), 20 base points, and the all-schools mask. The local `spell_linked_spell.sql` links 51690 to 61851; `spell_script_names.sql` binds 51690 to `spell_rog_killing_spree`. The historical AzerothCore-derived [`spell_rogue.cpp`](F:/Projects/wow-pvt-server-backups-2/azerothcore-wotlk/src/server/scripts/Spells/spell_rogue.cpp) applies that buff and, on each periodic tick, chooses a valid target, teleports, and triggers the weapon-damage child. This server source corroborates the effect linkage and scripted shape; it is not claimed as pristine stock-core behavior. ## Player and companion boundary The player `combatStore` path has a dedicated Killing Spree class-script branch. It emits five two-hand assaults and moves the player behind the last selected target. `wow335RogueMechanics.test.ts` verifies that both weapons produce ten damage events against a reachable target; it now also verifies the 20% aura modifier and duration. `partyRuntime.executePartyAbility` has no Killing Spree branch. Its companion effect resolver handles other named scripts, but does not turn this utility marker into weapon strikes. Companion Killing Spree therefore remains unsupported; this pass makes no player/NPC parity claim and does not extend the companion runtime. The Combat Rogue policy naming Killing Spree does not establish that a party actor can resolve its scripted attacks. The player implementation is still a simulator approximation. It resolves the five assaults immediately on cast rather than at the source's 500-ms periodic cadence, selects candidate targets deterministically rather than using the source script's random choice, and applies a local weapon formula instead of executing the complete 57841/57842 child chain. Source teleport and cast-interruption timing are not modeled per assault. This audit fixes the stale catalog-shape expectation and the independently verified buff amount; it does not certify complete Killing Spree timing, target-selection, interruption, or damage parity. ## Validation `npx vitest run src/game/combatRotation.test.ts src/game/wow335AbilityCatalog.test.ts src/game/wow335RogueMechanics.test.ts` passed 81 tests across three files. The rotation test retains exact talent-node gating, rank/resource/cooldown checks, and a mechanism-specific class-script assertion for Killing Spree. The existing Rogue runtime test still requires all ten strikes; its added check asserts the source-backed +20% aura for 2 seconds. No broad class sweep, balance run, readiness change, loot wiring, cap change, or NPC behavior change was made.