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

188 lines
10 KiB
Markdown

# First Conquest of Azeroth party
Updated: 2026-10-04. The project owner selected these five classes as the first
CoA implementation milestone. Build and refine this party before expanding to
other CoA classes. CoA here means Conquest of Azeroth on Vol'Jin; the existing
RoM backlog's Chronicles of Arcadia references describe a different game.
| Seat | Class | Initial specialization | Responsibility |
| --- | --- | --- | --- |
| 1 | Guardian | Vanguard | Tank |
| 2 | Witch Doctor | Brewing | Healer |
| 3 | Barbarian | Brutality | Melee damage |
| 4 | Ranger | Archery | Ranged damage |
| 5 | Pyromancer | Incineration | Caster damage |
Begin with each class's core kit and the selected specialization so the full
party can enter targeted playtests early. Finish the remaining trees within
these five classes before expanding to the other classes. This selects work;
it does not certify the current implementations.
## Implementation order and acceptance
1. Freeze the five class/spec identities and reproducible diagnostic inputs.
Inventory every node, rank, source spell, and current runtime mapping. Author
reviewed talent allocations instead of treating generated role-weighted
allocations as an intended CoA build.
2. Establish the tank and healer loops together, including their resource and
persistent state. Check damage, mitigation, threat, healing recipients,
periodic effects, and party utility against the captured evidence.
3. Implement the three distinct damage loops and their talent interactions.
Share combat primitives where their semantics match, while keeping class
state and learned-rank ownership on the correct actor.
4. Test the same party against explicitly selected encounters. Repeat with
each class as the active player and the other four as companions. Include
single-target and multiple-target pulls, incoming party damage, interrupts,
dispels, cooldown use, resource exhaustion, death, and resurrection where
the selected kits provide them.
5. Fix observed mechanic and AI defects, then inspect live dungeon play and
record evidence in `PLAYTEST_NOTES.md`. Compare balance only after mechanic
correctness. Expand the selected classes' other trees before other classes.
The completion gate is verified behavior for the reviewed core/initial-tree
builds on players and companions, a coherent 1-tank/1-healer/3-damage party in
live playtests, and an explicit record of any unresolved source limitations.
Catalog counts, a boss kill, or passing preparation tests are insufficient.
## Source-backed priorities
The following anchors are from the August Vol'Jin capture in
`src/game/coaLiveData.generated.json`. They identify work to verify; they are
not claims that these mechanics are implemented.
- Guardian: Footman's Calling (node 4019, spell 92105) establishes formation
behavior; Vanguard's Shield (34417, 804383) builds stacks through blocks and
auto attacks; Paragon (29969, 706514) transforms Heavy Blow at 10 stacks and
interacts with Brace. Audit formation gates, actor-owned stacks, block events,
threat, and defensive sequencing together.
- Witch Doctor: Cauldron Brewer (4005, 92085), Ingredient: Jungle Shrooms
(12645, 801660), Potion Toss (12646, 801661), and Mixologist (6645, 561069)
establish cauldron/ingredient state, nearby ally effects, and ingredient-based
changes to a targeted heal. Verify recipient, radius, periodic cadence,
ingredient exclusivity/capacity, and healing formulas before adding interactions.
- Barbarian: Decapitate (5744, 804414) requires a target below 35% health and
converts additional Energy into damage; Beheader (6744, 705222) refunds Energy
after an eligible kill; Battle Rhythm (14303, 800193) generates Energy on
ability critical hits. Verify event origin and payment/refund ordering.
- Ranger: Precision Shot (31178, 500075), Hunting Shot (29660, 801191), and
Masterful Archery (7794, 680469) depend on Advantage, Elude, ricochet hits,
and stacking effects. Audit the state and target selection before AI priorities.
- Pyromancer: Ignite (6985, 800791), Combustion (29854, 520884), and Pyroclasm
(7174, 520019) depend on Heat, Embers, and the caster's burning effects on a
specific target. Verify periodic generation, spending, effect counting, and
effect consumption. The August Agonizing Burns/Timed Attacks payload exchange
also requires explicit saved-build review.
Current generated resource profiles and generic effects do not prove these
stateful loops are supported. Unspecified proc timing, missing coefficients,
and unknown server rules remain evidence gaps; never invent their values.
Use the cached Vol'Jin capture and global Spell data described in
[COA_REFERENCE_PIPELINE.md](COA_REFERENCE_PIPELINE.md).
## Repeatable preparation and targeted diagnostics
`src/game/coaFirstPartyRoster.ts` owns the exact roster. The benchmark helper at
`src/game/benchmark/coaFirstParty.ts` owns build selection, companion construction,
and explicitly scoped Balance Lab configurations.
`scripts/coa-first-party/prepare.ts` produces the review inventory and five
active-player configurations, retaining the same party build IDs in each.
```sh
npm run coa:party:prepare -- --list-bosses ragefire-chasm
npm run coa:party:prepare -- --level 60 --boss <exact-key-from-list>
npm run coa:party:test
```
Preparation writes ignored local artifacts to
`artifacts/coa-first-party/level-60/`: `audit.json`, `audit.md`, `config.json`,
and `seat-1.json` through `seat-5.json`. It records the source capture/hash,
legal generated talent allocations, source gaps, and runtime representations.
Every mechanic begins as `needs-review`; mapping is not verification.
It downloads nothing and runs no encounter simulations.
Once an explicit diagnostic is appropriate, the existing runtime consumes a
prepared configuration without changing the ordinary companion pool:
```sh
npx vite-node --mode balance-lab scripts/balance-lab/runtime.ts simulate --config artifacts/coa-first-party/level-60/seat-2.json --output artifacts/coa-first-party/level-60/seat-2-runs.json
```
Only the selected five and explicitly named bosses belong to this milestone's
diagnostics. All five remain **Needs Testing**. Do not change Ready policy,
random/eligible pools, default regression scope, or all-class sweep coverage.
Ordinary live party generation currently uses the Ready WoW pool, including
for a CoA player; a complete CoA party must be configured explicitly.
For implementation changes, run the smallest affected tests plus the existing
Ready-five checks, build, and `npm run release:check`. Record each mechanic's
source, player/companion checks, and live evidence as it is completed.
## Initial implementation and evidence limits
The first catalog fix exposes sourced active Talent entries for these five
classes. Talent Essence purchase type no longer prevents an active spell from
becoming a usable action. The action retains its talent-node/rank gate. DBC
passive flags and rank metadata keep passive Talent nodes on the existing
modifier path; missing DBC rows cannot create a new action. The other 16 classes
retain their previous action catalogs.
This fixes action availability, not the complete effect of each spell. Initial
Potion Toss checks cover its base targeted heal and mana payment for a player
and companion; ingredient riders and its full authored scaling remain work.
Decapitate's target-health gate is a separate first mechanic; additional Energy
conversion and the Beheader refund remain pending.
Ranger's primary resource is now Focus, matching its spell costs. Player and
companion checks cover spending, the displayed/authoritative pool, and recovery.
The existing authored 100-point pool and 10-per-second recovery are retained;
this correction does not establish source-verified regeneration or implement
Advantage/Elude.
Brewing has specific evidence limits beyond the node-rank source inventory:
Mojo Beam's capture describes eight seconds while the selected DBC says four;
Spirit Link Idol's tooltip says fourteen seconds while its DBC says 8.5. The
current promoted catalog omits the Loa's Blessing empowerment payloads
802207/802208/802215/802216 and Spirit in a Bottle's referenced
504606/707172 payloads. Resolve those exact references against the local/raw
cache before implementing their full behavior. Zero missing node-rank DBC rows
does not establish that every mentioned payload or server rule is known.
## Kickoff validation and diagnostic baseline
On 2026-10-04, 87 focused tests across 15 files pass, including the exact roster,
learned Talent actions, Potion Toss delivery, Decapitate's health restriction,
Ranger Focus, source scope, and classic catalog preservation. Ready-five checks
pass seven game tests and twenty Python tests. The production build passes
TypeScript, asset audits, bundling, compression, and bundle verification.
`npm run release:check` passes, including untracked files. A before/after digest
also confirms the other 16 CoA action catalogs are unchanged.
The targeted automated baseline uses the same five generated level-60 builds,
seed 1, and Taragaman the Hungerer (`ragefire-chasm/entry-11520`). Each run has a
30-second limit and moves only the active player seat. Results after the Focus
correction are:
| Active player | Outcome | Elapsed seconds | Boss health remaining | Deaths |
| --- | --- | ---: | ---: | ---: |
| Guardian | Time limit | 30.0 | 80,065 | 0 |
| Witch Doctor | Time limit | 30.0 | 79,292 | 0 |
| Barbarian | Defeated | 12.6 | 0 | 0 |
| Ranger | Time limit | 30.0 | 12,782 | 0 |
| Pyromancer | Time limit | 30.0 | 14,724 | 0 |
Raw runs are local ignored artifacts at
`artifacts/coa-first-party/level-60/seat-1-runs.json` through `seat-5-runs.json`.
Companion action counts are substantially lower than player counts; Ranger and
Pyromancer companions each cast only three times in the healer-seat run. That
run's Ranger still records 32.3% Focus starvation. The profile correction alone
does not resolve their rotations, stateful costs, or generic effect semantics.
The large player-seat differences require mechanic and AI investigation before
balance changes. This low-pressure encounter also provides limited evidence
for tank/healer interactions.
These are explicitly scoped automated diagnostics, with no live browser
playtest or balance certification in this kickoff. All five remain Needs
Testing. The next implementation pass is Guardian's Vanguard state together
with Witch Doctor's cauldron/ingredient loop and reviewed talent allocations,
followed by the three damage loops and companion rotation parity.