Verify selected-player dual-wield autos and virtual gear assignments #17

Open
opened 2026-10-14 00:05:31 -07:00 by Codex · 5 comments

Coordinator/discovery: Root /root, session 01a12399-cfab-7c72-8455-e0e4cb7e156c, native issue #439, branch feature/automated-combat-sweeps. Read-only auditor /root/issue439_catalog_audit (GPT-6.1 Sol xhigh). This is an unassigned source/reference investigation; no source fix or combat-policy change is claimed.

The selected-player auto-attack path in pinned src/game/combatStore.ts:24358–24365 excludes Warrior from supportsPlayerOffhandSwings. Rogue offhand swings require explicit weapon inventory assignments. The sweep's automatic virtual-heirloom reference provides stats, but preserved actor equipment/inventory are empty; it does not physically assign both weapons. heirloomEquipment.ts:142–154,321–343 includes dual-wield reference loadouts, while combatStore.ts:2370–2386 applies virtual stats separately. Consequently selected Fury/Rogue reference totals can omit offhand auto contributions and cannot establish dual-wield balance.

Frozen combatStore SHA256 5afefb58b9a02b564cf07140c19388163a8423d22695f3619d196a9d603eeb7d. Saved Fury L20/L30 and Rogue samples preserve empty equipment/inventory; main-hand packets still exist and remain counted. This is separate from unnamed auto ability attribution in source #15.

Acceptance for investigation:

  • Establish intended selected-player dual-wield behavior for this exact source mode/class/weapon setup, with original-client or source-design evidence and explicit WoW-versus-Ascension provenance.
  • Exercise real explicit main/offhand assignments and automatic virtual stats separately for Warrior/Rogue/Shaman; identify whether missing offhand is a design restriction, setup limitation or defect.
  • If warranted, implement/test the approved source rule without inventing weapon eligibility or damage coefficients.
  • Preserve native category gear boundaries; publish evidence and source review before adopting a new native engine.

Status is needs-reference until intended behavior is authenticated. The once-only campaign is diagnostic, not certification of optimal gear or original-client DPS. Full evidence: /Volumes/backup1tb-2/Projects/Issue-Fixes/automated-combat-sweeps-2026-10-14.

Coordinator/discovery: Root `/root`, session `01a12399-cfab-7c72-8455-e0e4cb7e156c`, native issue [#439](https://git.whoagland.com/Codex/healer-man-godot/issues/439), branch `feature/automated-combat-sweeps`. Read-only auditor `/root/issue439_catalog_audit` (GPT-6.1 Sol xhigh). This is an unassigned source/reference investigation; no source fix or combat-policy change is claimed. The selected-player auto-attack path in pinned `src/game/combatStore.ts:24358–24365` excludes Warrior from `supportsPlayerOffhandSwings`. Rogue offhand swings require explicit weapon inventory assignments. The sweep's automatic virtual-heirloom reference provides stats, but preserved actor equipment/inventory are empty; it does not physically assign both weapons. `heirloomEquipment.ts:142–154,321–343` includes dual-wield reference loadouts, while `combatStore.ts:2370–2386` applies virtual stats separately. Consequently selected Fury/Rogue reference totals can omit offhand auto contributions and cannot establish dual-wield balance. Frozen combatStore SHA256 `5afefb58b9a02b564cf07140c19388163a8423d22695f3619d196a9d603eeb7d`. Saved Fury L20/L30 and Rogue samples preserve empty equipment/inventory; main-hand packets still exist and remain counted. This is separate from unnamed auto ability attribution in source [#15](https://git.whoagland.com/phenom/healer-man/issues/15). Acceptance for investigation: - Establish intended selected-player dual-wield behavior for this exact source mode/class/weapon setup, with original-client or source-design evidence and explicit WoW-versus-Ascension provenance. - Exercise real explicit main/offhand assignments and automatic virtual stats separately for Warrior/Rogue/Shaman; identify whether missing offhand is a design restriction, setup limitation or defect. - If warranted, implement/test the approved source rule without inventing weapon eligibility or damage coefficients. - Preserve native category gear boundaries; publish evidence and source review before adopting a new native engine. Status is needs-reference until intended behavior is authenticated. The once-only campaign is diagnostic, not certification of optimal gear or original-client DPS. Full evidence: `/Volumes/backup1tb-2/Projects/Issue-Fixes/automated-combat-sweeps-2026-10-14`.

Owner requested combat fixes. Root /root session 01a12399-cfab-7c72-8455-e0e4cb7e156c will investigate actual/virtual offhand rules alongside implementation. This remains a reference investigation until exact source-design or client evidence supports a change; no invented weapon assignment or coefficient. Other fixes #15/#16/#18/#19/#20 proceed in isolated source worktrees.

Owner requested combat fixes. Root /root session 01a12399-cfab-7c72-8455-e0e4cb7e156c will investigate actual/virtual offhand rules alongside implementation. This remains a reference investigation until exact source-design or client evidence supports a change; no invented weapon assignment or coefficient. Other fixes #15/#16/#18/#19/#20 proceed in isolated source worktrees.

Claimed scoped source implementation. Coordinator Root /root, Codex session 01a12399-cfab-7c72-8455-e0e4cb7e156c; worker /root/combat_events_luna, GPT-6 Luna xhigh. Branch newfix/17-explicit-warrior-offhand, based on #15/#16 commits f3e041280ae03f2d4c8d3766a50b67ef3c444576 (parent a9322a389709df5fb87c2423a825f09580a2d8fe). Scope: enable selected-player offhand autos only for WoW Warrior at level 20+ with explicitly assigned, class-legal one-hand main-hand and offhand weapons; reject shield, missing assignment, and a two-hand main hand; do not alter virtual-heirloom swings, CoA rules, damage values, RNG, timing, threat, or other classes. Tests cover level 19/20 and excluded cases.

Local AzerothCore 3.3.5 evidence: Warrior trainer 1 lists spell 674 at required level 20 (sql/old/3.3.5/0.0.3/2014_01_12_00_world_creature_template.sql / trainer_spell data); core removes CanDualWield without spell 674 (src/server/game/Entities/Player/Player.cpp) and gates offhand placement on CanDualWield (PlayerStorage.cpp). This resolves explicit WoW Warrior training eligibility only. The broader virtual-equipment behavior and any CoA/Ascension rule remain unresolved pending exact policy evidence; issue stays open for those questions and no virtual swings are added.

Claimed scoped source implementation. Coordinator Root `/root`, Codex session `01a12399-cfab-7c72-8455-e0e4cb7e156c`; worker `/root/combat_events_luna`, GPT-6 Luna xhigh. Branch `newfix/17-explicit-warrior-offhand`, based on #15/#16 commits `f3e041280ae03f2d4c8d3766a50b67ef3c444576` (parent `a9322a389709df5fb87c2423a825f09580a2d8fe`). Scope: enable selected-player offhand autos only for WoW Warrior at level 20+ with explicitly assigned, class-legal one-hand main-hand and offhand weapons; reject shield, missing assignment, and a two-hand main hand; do not alter virtual-heirloom swings, CoA rules, damage values, RNG, timing, threat, or other classes. Tests cover level 19/20 and excluded cases. Local AzerothCore 3.3.5 evidence: Warrior trainer 1 lists spell 674 at required level 20 (`sql/old/3.3.5/0.0.3/2014_01_12_00_world_creature_template.sql` / trainer_spell data); core removes CanDualWield without spell 674 (`src/server/game/Entities/Player/Player.cpp`) and gates offhand placement on CanDualWield (`PlayerStorage.cpp`). This resolves explicit WoW Warrior training eligibility only. The broader virtual-equipment behavior and any CoA/Ascension rule remain unresolved pending exact policy evidence; issue stays open for those questions and no virtual swings are added.

Progress (2026-10-15): implementation and focused regression coverage are in place for the narrow WoW Warrior off-hand rule. A level-20+ Warrior gets selected off-hand auto-attacks only when both explicitly assigned items are class-legal one-hand melee weapons. Coverage rejects level 19, missing assignments, a shield, a two-hand main hand, and a class-illegal wand; the existing Rogue and Death Knight event-lineage cases still pass. The focused integration file passes (4 tests). npm run release:check passes, although this partial checkout reports 21,227 candidate paths because its materialized index is noisy; I will record the exact scoped commit and clean-tree evidence in the final update.

Coordinator: Root. Implementer: /root/combat_source_finish_luna (GPT-6 Luna, xhigh), session 01a12399-cfab-7c72-8455-e0e4cb7e156c. Branch: newfix/17-explicit-warrior-offhand. Scope: this issue's explicit WoW Warrior off-hand auto-attack behavior only. Delegated workers: none. The earlier named claim was respected; Root explicitly reassigned this implementation to me for takeover. Root coordinates publication and notes integration.

Progress (2026-10-15): implementation and focused regression coverage are in place for the narrow WoW Warrior off-hand rule. A level-20+ Warrior gets selected off-hand auto-attacks only when both explicitly assigned items are class-legal one-hand melee weapons. Coverage rejects level 19, missing assignments, a shield, a two-hand main hand, and a class-illegal wand; the existing Rogue and Death Knight event-lineage cases still pass. The focused integration file passes (4 tests). `npm run release:check` passes, although this partial checkout reports 21,227 candidate paths because its materialized index is noisy; I will record the exact scoped commit and clean-tree evidence in the final update. Coordinator: Root. Implementer: /root/combat_source_finish_luna (GPT-6 Luna, xhigh), session 01a12399-cfab-7c72-8455-e0e4cb7e156c. Branch: `newfix/17-explicit-warrior-offhand`. Scope: this issue's explicit WoW Warrior off-hand auto-attack behavior only. Delegated workers: none. The earlier named claim was respected; Root explicitly reassigned this implementation to me for takeover. Root coordinates publication and notes integration.

Local implementation complete (2026-10-15). WoW Warriors level 20+ now receive off-hand auto-attacks only when both main hand and off hand contain explicitly assigned, class-legal one-hand melee weapons. Shields, a two-hand main hand, missing assignments, class-illegal weapons, and generated Fury heirloom off-hands do not produce a Warrior off-hand swing. Existing Rogue and Death Knight off-hand event behavior remains covered.

Scoped local commit: 6339732c03838e53fdf00f609f53924dc211043e on newfix/17-explicit-warrior-offhand, parent f3e041280ae03f2d4c8d3766a50b67ef3c444576. Only src/game/combatStore.ts and src/game/playerAutoAttackEventLineage.integration.test.ts are included.

Validation: focused event-lineage integration test passes (4/4); tsc -b --pretty false passes after restoring the exact missing Manastorm archive fixture in the temporary checkout (blob hash matches this base); npm run release:check passes. The partial checkout reports 21,227 candidate paths due its incomplete materialized index, so the commit was written from a separate index explicitly constrained to the two files above.

Publication and review are still pending: this commit is local and has not been pushed or merged. Root is importing it and coordinating source publication and notes integration. Issue remains open pending that work.

Local implementation complete (2026-10-15). WoW Warriors level 20+ now receive off-hand auto-attacks only when both main hand and off hand contain explicitly assigned, class-legal one-hand melee weapons. Shields, a two-hand main hand, missing assignments, class-illegal weapons, and generated Fury heirloom off-hands do not produce a Warrior off-hand swing. Existing Rogue and Death Knight off-hand event behavior remains covered. Scoped local commit: `6339732c03838e53fdf00f609f53924dc211043e` on `newfix/17-explicit-warrior-offhand`, parent `f3e041280ae03f2d4c8d3766a50b67ef3c444576`. Only `src/game/combatStore.ts` and `src/game/playerAutoAttackEventLineage.integration.test.ts` are included. Validation: focused event-lineage integration test passes (4/4); `tsc -b --pretty false` passes after restoring the exact missing Manastorm archive fixture in the temporary checkout (blob hash matches this base); `npm run release:check` passes. The partial checkout reports 21,227 candidate paths due its incomplete materialized index, so the commit was written from a separate index explicitly constrained to the two files above. Publication and review are still pending: this commit is local and has not been pushed or merged. Root is importing it and coordinating source publication and notes integration. Issue remains open pending that work.

Source implementation independently reviewed and published in #21 at exact head 2f8cb8a510. Combined validation: 94 focused tests, Ready-five 7 JavaScript +20 Python, full source TypeScript and required release check passed. Root /root session01a12399-cfab-7c72-8455-e0e4cb7e156c coordinates the named Luna xhigh workers. Native source composition/engine adoption is tracked separately by Codex/healer-man-godot#457; historical 873-cell evidence remains unchanged. Memory and final source/main/adoption states will be recorded before acceptance closure.

Source implementation independently reviewed and published in https://git.whoagland.com/phenom/healer-man/pulls/21 at exact head 2f8cb8a5104978e66077523202b4d7f9ec24ff60. Combined validation: 94 focused tests, Ready-five 7 JavaScript +20 Python, full source TypeScript and required release check passed. Root /root session01a12399-cfab-7c72-8455-e0e4cb7e156c coordinates the named Luna xhigh workers. Native source composition/engine adoption is tracked separately by Codex/healer-man-godot#457; historical 873-cell evidence remains unchanged. Memory and final source/main/adoption states will be recorded before acceptance closure.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: phenom/healer-man#17