Files
healer-man/docs/WOW_KILLING_SPREE_AUDIT_2026-10-04.md
2026-10-04 13:13:35 -04:00

4.0 KiB

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