Files
healer-man/docs/ROM_FIVE_VALIDATION.md
T

11 KiB

RoM five class validation

Status: Needs Testing. This is a targeted diagnostic for Priest healer, Knight tank, Scout DPS, Rogue DPS, and Mage DPS. The accepted pair elite skills have focused source and runtime checks, with specific unresolved mechanics listed below.

Cohort and rules

The five named builds and live NPCs use these race-legal pairings. Their secondary classes activate at level 10 and always share their primary class's level. RoM has no talent allocation; ordinary skills unlock by level, and the generated source's internal level variants do not create a player-facing spell-rank choice.

Role Class pair NPC name Race
Tank Knight / Scout Rorik Human
Healer Priest / Knight Serenna Human
DPS Rogue / Warrior Veyra Human
DPS Scout / Rogue Caelan Elf
DPS Mage / Warlock Durnik Dwarf

src/game/romFiveIdentities.ts owns these identities for the live NPC templates and targeted canonical builds. The manual party uses Priest as the active healer and the other four classes as companions. This explicit cohort does not change Ready-only random parties, bracket certification, or the companion readiness registry. Elite skills can appear in a paired kit through the existing RoM catalog; focused checks now cover their translated effects, selected live casts, and source-conditional procs.

npm run test:rom-five checks the named pairings, legal races, level-10 unlock, role-specific hybrid heirloom layouts and level growth, ordinary and pair-elite ability coverage, and focused runtime mechanics. Knight is a tank seat in RoM generated parties. The five loadouts use Knight mace/shield, Priest mace/shield, Scout dagger/bow, Rogue dual daggers, and Mage staff. Their equipment uses the same level budget and WoW-shaped fields as the WoW heirlooms, allocated by RoM role. src/game/wotlkStats.ts gives these five WoW-equivalent base attribute, HP, and Mana curves with a 10% same-level secondary contribution from level 10. Other RoM classes retain native growth. Mage/Warlock is a RoM dwarf with the Human Mage Wrath curve as its base reference because Dwarf Mage has no Wrath 3.3.5 row.

Findings and fixes in this pass

  • Player and companion casts now respect source out-of-combat restrictions for Resurrection and Rogue openers. Sneak Attack and Blind Spot carry behind-target rules for spatial combat.
  • Rogue Throw executes one projectile hit instead of two identical source attack components. Scout Shot executes its primary hit instead of five alternate attack components and unrelated target stat effects.
  • RoM character creation, Skills, and Spellbook screens present level-based skill unlocks without talent-point or spell-rank choices.
  • The RoM Knight party template is assigned to the tank pool rather than the damage pool.
  • Conditional combat payloads now resolve once per cast for both player and companion actors. Knight Holy Seals cap at four on each target, their bleed follows the stack count, and Punishment, Threaten, Shock, and Truth Shield Bash use the corresponding seal branch. Punishment consumes the seal bleed. Rogue Low Blow, Wound Attack, Shadowstab, and Sneak Attack use active self-applied bleeds and the equipped main-hand weapon; Wound Attack no longer invents a bleed. Mage Electric Explosion executes either its normal or Charged hit.
  • Rogue Premeditation now guarantees the next offensive critical hit and increases its critical power. Poison supplies the Poisonous state needed by Numbing Dagger. Vanish permits an out-of-combat Rogue opener while its stealth state lasts. Shadow Step moves behind the target; Knight Charge closes to melee range.
  • Priest Regenerate has one heal-over-time effect. Holy Candle and Scout Blood Arrow drain the caster's HP on their periodic ticks. Mage Flame and Fireball execute one hit, Meteor Shower five, and Thunderstorm three. Source helper summons and zero-damage effects no longer create extra combat actions for these skills.
  • Scout Lasso, Rogue Numbing Dagger, and Mage Static Field apply one break-on-damage control effect to one target at a time. Scout Joint Blow only slows; Mage Discharge applies its stun without unrelated control effects. Knight Shield of Discipline absorbs the documented damage types and reflects a spell hit after the caster is struck, not on cast. Shield-dependent Knight skills require an equipped shield.

Accepted pair skill checks

src/game/romPriestKnightOverrides.ts, src/game/romScoutRogueOverrides.ts, and src/game/romMageWarlockOverrides.ts specialize the five accepted pairs from source components. src/game/romCombatMechanics.ts selects their conditional cast effects; src/game/combatStore.ts handles proc actions, damage schools, conditional cooldowns, line and chain targeting, and timed effects. src/game/partyRuntime.ts installs learned NPC passive auras on their first cast and passes passive and target tags into the shared selector. The three pair validation files are part of npm run test:rom-five; the focused run passed 196 tests across ten files on 2026-09-23. These include direct healing, area healing and damage, taunts, resource changes, offensive and defensive auras, crowd control, and source-conditional skill checks. Pure effect tests are evidence for translation and selection, not proof that every NPC cast and encounter timing is correct.

Remaining source and runtime gaps:

  1. Source replacement skills referenced by several level-60/70 elites are absent from the playable generated catalog: Priest/Knight 499967/499966, Knight/Scout 499925/499924/499910, and Scout/Rogue or Rogue/Warrior 499535/499537/499477/499481. Toxic Splash and Poison Battle Technique cannot execute their replacement-skill proc payloads yet. Several known magnitudes and chances use explicitly tagged hybrid estimates.
  2. NPC passive tags now feed shared conditional casts. Player-side Poisonous Spit has a live proc test; companion proc execution and cooldown/resource side effects still need focused end-to-end coverage. This matters for paired NPCs even when the player-side tests pass.
  3. Holy Chains and Evil Shackles need creature-family data for their Undead/Demon rule. Numbing Dagger also needs living/Humanoid target classification and projectile inventory consumption. Poisonous Spit currently recognizes a Poisonous aura as a stand-in for carrying Poison Powder; an actual Powder inventory item is not modeled. Knight/Scout bow-specific effects need a legal ranged loadout; the current Knight heirloom uses mace/shield. Rogue/Warrior One-Hand Axe Mastery cannot benefit the current dual-dagger layout.
  4. Mage/Warlock damage remains low relative to Scout and Rogue. Check its AI rotation, cast cadence, and WoW-equivalent scaling before adjusting encounter tuning or promoting RoM.

Combat diagnostic

The following historical runs predate secondary-class assignment. They used scripts/balance_lab.py with --source rom --party-mode manual, exactly the five canonical build IDs for that level, and 180-second fights. Reports are under artifacts/balance-lab/rom-five-primary-*.

Level Encounter set Runs defeated Death events Median time to defeat
20 Cayus, two seeds 2/2 0 70.2 s
40 Cayus, two seeds 2/2 0 79.4 s
60 All 62 RoM bosses, one seed 62/62 0 101.5 s
60 Shadoj, three seeds 3/3 0 106.6 s
80 Cayus, two seeds 2/2 0 122.0 s

The table above also predates the conditional mechanics changes. The level-60 all-boss report measured approximately 1,036 Knight tank DPS, 831 Rogue DPS, 374 Mage DPS, 223 Scout DPS, and 35 Priest HPS. These are screening measurements, not balance targets: this cohort has only one healer seat, one tank seat, and one seed per boss. Ten bosses dealt no effective damage and therefore did not exercise healing.

After the mechanics corrections, the targeted Shadoj run at level 60 with the same five manual builds and seeds 1, 2, and 3 defeated the boss in 3/3 fights with no deaths. Its mean defeat time was 115.7 seconds. The report at artifacts/balance-lab/rom-five-primary-l60-mechanics-final/ measured about 1,186 Rogue DPS, 750 Knight DPS, 237 Scout DPS, 186 Mage DPS, and 334 Priest HPS. The changed output is expected from removing duplicate hits and enforcing source conditions; it is a diagnostic, not a promotion or tuning target.

Before Ready promotion

  1. Resolve the persistent damage spread: Rogue is now far ahead of Scout and Mage, while Knight tank damage remains above both. Review source formulas, resource cadence, and rotations before tuning coefficients.
  2. Finish source-specific restrictions that have no current inventory or creature-family authority. Numbing Dagger's projectile consumption and living/Humanoid target rule still need those systems. A source-row audit should continue beyond the corrected conditional skills; basic semantic coverage does not prove full tooltip parity.
  3. Exercise behind-target requirements in a live spatial scene. The headless balance runner has no spatial target provider, so its Rogue damage can include casts that a live scene would reject.
  4. Validate Priest throughput against encounters that actually demand sustained healing, and run RoM NPC seat tests after the mechanics above are resolved. The current manual run leaves Priest player-controlled.
  5. Verify both Rogue daggers visually from an unobstructed angle. The live roster and dungeon screenshots in artifacts/playtest/rom-five/ confirm rendered bodies and weapon silhouettes, but the off-hand dagger is unclear at their camera angles. Keep RoM entries at Needs Testing until the full class mechanics and role checks pass.

The RoM source catalog and generated data remain authoritative for ability descriptions and components. The older rom-five-primary-* results predate paired builds. The later rom-hybrid-* and rom-hybrid-wowbase-* manual reports contain the named secondary classes even though the report's specialization column reads "Primary" for the primary orientation.

The chosen gameplay model uses a WoW-stat hybrid instead of requiring native RoM equipment conversion for Ready promotion. docs/ROM_STATS_AND_GEARING.md records the source coefficients, active hybrid rules, remaining balance risks, and the players-only RoM online group boundary. Initial three-seed Shadoj screens at levels 20, 60, and 79 defeated the boss without a wipe, but Mage damage was far below the other two DPS builds and the Priest died once in each level-79 run. Those one-encounter results do not establish balance. Leveling bosses award cards but no items. docs/ROM_LEVELING_GEAR_PACKAGES.md records the source-confirmed package families; exact historical contents remain unverified and would need a WoW-stat translation before grant.

After the WoW-equivalent base change, one-seed manual Shadoj screens at levels 20, 60, and 79 defeated the boss with zero deaths. At level 60, Mage dealt about 185 DPS versus Scout 971 and Rogue 1,026; at level 79 the corresponding values were about 242, 1,418, and 1,538. Reports are under artifacts/balance-lab/rom-hybrid-wowbase-l20-shadoj, rom-hybrid-wowbase-l60-shadoj, and rom-hybrid-wowbase-l79-shadoj. These narrow screens do not certify class or dungeon balance.