forked from phenom/healer-man
188 lines
10 KiB
Markdown
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.
|