From 612170afd0e8a117e0f34f258e1edd2ba3779ab7 Mon Sep 17 00:00:00 2001 From: phenom Date: Thu, 17 Sep 2026 09:13:15 -0400 Subject: [PATCH] Release Healer Man 0.1.49 --- PLAYTEST_NOTES.md | 16 + docs/COMBAT_ROTATION_MATRIX.md | 65 +++ package-lock.json | 4 +- package.json | 2 +- public/assets/ui/spells/ability_devour.png | Bin 0 -> 4442 bytes .../ui/spells/ability_druid_forceofnature.png | Bin 0 -> 5146 bytes .../ui/spells/ability_golemstormbolt.png | Bin 0 -> 4456 bytes .../ui/spells/ability_hunter_chimerashot2.png | Bin 0 -> 4500 bytes .../ui/spells/ability_hunter_pet_bat.png | Bin 0 -> 4044 bytes .../ui/spells/ability_mage_deepfreeze.png | Bin 0 -> 5224 bytes .../ui/spells/ability_paladin_divinestorm.png | Bin 0 -> 4522 bytes .../ability_paladin_hammeroftherighteous.png | Bin 0 -> 4892 bytes .../ui/spells/ability_rogue_murderspree.png | Bin 0 -> 4155 bytes .../ui/spells/ability_rogue_shadowstep.png | Bin 0 -> 4437 bytes .../ui/spells/ability_shaman_lavalash.png | Bin 0 -> 4724 bytes .../ui/spells/ability_theblackarrow.png | Bin 0 -> 4848 bytes .../ability_warlock_demonicempowerment.png | Bin 0 -> 3669 bytes ..._helm_plate_naxxramas_raidwarrior_c_01.png | Bin 0 -> 2382 bytes .../assets/ui/spells/inv_chest_leather_13.png | Bin 0 -> 5084 bytes .../spells/inv_relics_idolofrejuvenation.png | Bin 0 -> 4863 bytes public/assets/ui/spells/inv_staff_15.png | Bin 0 -> 4706 bytes public/assets/ui/spells/inv_sword_07.png | Bin 0 -> 4566 bytes .../ui/spells/spell_frost_coldhearted.png | Bin 0 -> 5185 bytes .../ui/spells/spell_holy_crusaderstrike.png | Bin 0 -> 5272 bytes .../spells/spell_holy_divineillumination.png | Bin 0 -> 4853 bytes .../ui/spells/spell_holy_painsupression.png | Bin 0 -> 4811 bytes .../ui/spells/spell_nature_forceofnature.png | Bin 0 -> 4686 bytes .../assets/ui/spells/spell_shadow_curse.png | Bin 0 -> 5034 bytes .../ui/spells/spell_shadow_dispersion.png | Bin 0 -> 4524 bytes .../ui/spells/spell_shadow_psychichorrors.png | Bin 0 -> 5171 bytes .../ui/spells/spell_shadow_summonfelguard.png | Bin 0 -> 4506 bytes release-version.json | 4 +- scripts/arena-pipeline/combat-runtime.ts | 9 +- scripts/balance-lab/runtime.ts | 23 +- scripts/balance_lab.py | 32 +- scripts/combat-benchmark/run.ts | 2 + scripts/generate-wow335-abilities.mjs | 61 ++- scripts/playtest-dungeon-simulation.cjs | 12 + scripts/playtest-rotation-overhaul.cjs | 240 +++++++++ src/app/accountRepository.ts | 4 +- src/game/PartyBridge.tsx | 3 + src/game/abilityCatalog.test.ts | 2 +- src/game/abilityCatalog.ts | 60 ++- src/game/abilityRules.ts | 29 +- src/game/arenaCharacter.ts | 12 +- src/game/azerothCoreReference.test.ts | 2 + src/game/azerothCoreReference.ts | 16 +- src/game/benchmark/benchmarkBuilds.ts | 5 +- src/game/benchmark/benchmarkController.ts | 84 ++- src/game/benchmark/benchmarkRecorder.ts | 2 + src/game/benchmark/benchmarkReport.test.ts | 3 + src/game/benchmark/benchmarkReport.ts | 6 +- src/game/benchmark/benchmarkRunner.ts | 6 + src/game/benchmark/benchmarkTypes.ts | 2 + src/game/benchmark/dungeonBossBenchmark.ts | 2 + src/game/bossTesting.test.ts | 4 +- src/game/coaHealerBalance.test.ts | 4 +- src/game/combatActorAuthority.ts | 8 +- src/game/combatAnimation.test.ts | 57 ++- src/game/combatAnimation.ts | 23 +- src/game/combatAuraRuntime.test.ts | 55 +- src/game/combatRotation.test.ts | 427 +++++++++++++++ src/game/combatRotation.ts | 484 ++++++++++++++++++ src/game/combatStore.test.ts | 16 + src/game/combatStore.ts | 144 +++++- src/game/dungeonBossScaling.test.ts | 22 +- src/game/dungeonBossScaling.ts | 33 +- src/game/dungeonLevelScaling.test.ts | 21 +- src/game/dungeonLevelScaling.ts | 28 +- src/game/dungeonRunCombatIntegration.test.ts | 2 +- src/game/manastormSpellLoadout.ts | 13 +- src/game/partyAbilityAi.ts | 121 +++-- src/game/partyRuntime.ts | 91 +++- src/game/partyStore.ts | 4 + src/game/romAbilityCatalog.ts | 24 + src/game/romAbilityCatalogSemantics.test.ts | 19 + src/game/romDungeonHealth.test.ts | 12 +- src/game/spectatorCameraMath.test.ts | 16 + src/game/spectatorCameraMath.ts | 22 +- src/game/wow335AbilityCatalog.test.ts | 42 +- src/game/wow335AbilityCatalog.ts | 27 +- src/game/wow335AbilityData.generated.json | 2 +- src/platform/dualScreenSync.ts | 6 +- src/scene/DungeonSpectatorCamera.tsx | 22 +- src/scene/PartyPopulation.tsx | 38 +- src/ui/AbilityBindingsPanel.tsx | 14 +- src/ui/ArenaPanels.tsx | 4 +- src/ui/DungeonSimulationHud.tsx | 4 +- src/ui/GameplayPanels.tsx | 10 +- src/ui/Hud.tsx | 8 +- src/ui/UiLayoutEditor.tsx | 6 +- 91 files changed, 2278 insertions(+), 263 deletions(-) create mode 100644 docs/COMBAT_ROTATION_MATRIX.md create mode 100644 public/assets/ui/spells/ability_devour.png create mode 100644 public/assets/ui/spells/ability_druid_forceofnature.png create mode 100644 public/assets/ui/spells/ability_golemstormbolt.png create mode 100644 public/assets/ui/spells/ability_hunter_chimerashot2.png create mode 100644 public/assets/ui/spells/ability_hunter_pet_bat.png create mode 100644 public/assets/ui/spells/ability_mage_deepfreeze.png create mode 100644 public/assets/ui/spells/ability_paladin_divinestorm.png create mode 100644 public/assets/ui/spells/ability_paladin_hammeroftherighteous.png create mode 100644 public/assets/ui/spells/ability_rogue_murderspree.png create mode 100644 public/assets/ui/spells/ability_rogue_shadowstep.png create mode 100644 public/assets/ui/spells/ability_shaman_lavalash.png create mode 100644 public/assets/ui/spells/ability_theblackarrow.png create mode 100644 public/assets/ui/spells/ability_warlock_demonicempowerment.png create mode 100644 public/assets/ui/spells/inv_armor_helm_plate_naxxramas_raidwarrior_c_01.png create mode 100644 public/assets/ui/spells/inv_chest_leather_13.png create mode 100644 public/assets/ui/spells/inv_relics_idolofrejuvenation.png create mode 100644 public/assets/ui/spells/inv_staff_15.png create mode 100644 public/assets/ui/spells/inv_sword_07.png create mode 100644 public/assets/ui/spells/spell_frost_coldhearted.png create mode 100644 public/assets/ui/spells/spell_holy_crusaderstrike.png create mode 100644 public/assets/ui/spells/spell_holy_divineillumination.png create mode 100644 public/assets/ui/spells/spell_holy_painsupression.png create mode 100644 public/assets/ui/spells/spell_nature_forceofnature.png create mode 100644 public/assets/ui/spells/spell_shadow_curse.png create mode 100644 public/assets/ui/spells/spell_shadow_dispersion.png create mode 100644 public/assets/ui/spells/spell_shadow_psychichorrors.png create mode 100644 public/assets/ui/spells/spell_shadow_summonfelguard.png create mode 100644 scripts/playtest-rotation-overhaul.cjs create mode 100644 src/game/combatRotation.test.ts create mode 100644 src/game/combatRotation.ts diff --git a/PLAYTEST_NOTES.md b/PLAYTEST_NOTES.md index 1df85b6a..1fbb6be1 100644 --- a/PLAYTEST_NOTES.md +++ b/PLAYTEST_NOTES.md @@ -3529,3 +3529,19 @@ Vite's existing large-chunk advisory remains informational. displayed `Server runtime ready · Python 3.14.0`, submitted a real Eck run, generated all reports, and completed desktop/mobile QA without browser errors. Evidence is in `playtest-artifacts/balance-lab/02-server-job-config.png`. + +## Party melee animation cadence (2026-09-16) + +- Party character animation now follows authoritative combat-presentation + phases instead of treating every `nextActionAt` retry timestamp as an attack. + Auto-attacks produce one ordinary attack event, while real abilities retain + their cast-start, release, and cancel identities. +- Warrior and Paladin auto-attacks now prefer the normal one-handed/two-handed + attack clips before special clips. Special/spinning clips remain available to + explicitly matched abilities rather than every weapon swing. +- The focused combat-animation suite passed 10 tests, all 47 avatar tests + passed, and the production build plus texture/performance and release-bundle + audits passed. The live level-three Stockades pass completed without browser + errors; all five bodies and their equipped weapon/staff silhouettes rendered + intact. Evidence is in + `playtest-artifacts/dungeon-health-scaling/stockades-level-three.png`. diff --git a/docs/COMBAT_ROTATION_MATRIX.md b/docs/COMBAT_ROTATION_MATRIX.md new file mode 100644 index 00000000..eae0a0f2 --- /dev/null +++ b/docs/COMBAT_ROTATION_MATRIX.md @@ -0,0 +1,65 @@ +# Combat rotation matrix + +Healer Man uses AzerothCore playerbots commit `531282e` as a read-only behavioral reference. The implementation is an independent TypeScript policy over Healer Man's executable catalog, not a port of playerbots C++. + +| Concern | Playerbots behavior translated into Healer Man | +| --- | --- | +| Core rotation | One deterministic priority profile for each of the 31 Wrath specializations. | +| Maintenance | DoTs, debuffs, buffs, pets, and summons are refreshed only after their existing effect ends. | +| Execute | Execute-category abilities move ahead of the normal profile below 20% target health. | +| Multiple targets | Cleave gains value at two hostiles; area damage moves ahead at three or more. | +| Healing | Critical, medium, and light triage bands begin below 30%, 60%, and 90% health. Area healing requires three injured allies. | +| Threat | Tanks interrupt first and taunt a hostile that is not attacking them; non-tanks drop dangerous threat before continuing their profile. | +| Control | Interrupts are reactive. Long crowd control is used only when an encounter requests control. | +| Defense | Mitigation is used below 55% actor health and receives emergency priority below 35%. | +| Resources | Low-resource generators are favored below 30%; spenders still have to pass runtime cost and rune validation. | +| Combo points | Builders run below four points; finishers require at least four points on the current target. | +| Major cooldowns | Offensive cooldowns of 60 seconds or longer are held for bosses or durable targets. | + +CoA and Runes of Magic builds use the same semantic rules when no classic profile applies. Runes of Magic candidates include primary, secondary-general, and primary/secondary elite skills through `abilitiesForCharacter`. + +## Classic specialization profiles + +The leftmost available action wins after reactive rules, learned-talent gating, resource checks, maintenance checks, execute/AoE adjustments, and major-cooldown conservation. Maintenance entries are intentionally listed first; an active aura or pet removes that entry from consideration. + +| Class | Specialization | Maintenance and core priority | +| --- | --- | --- | +| Warrior | Arms | Battle Stance; Mortal Strike; Rend; Overpower; Execute; Slam; Heroic Strike | +| Warrior | Fury | Berserker Stance; Bloodthirst; Whirlwind; Execute; Sunder Armor; Heroic Strike | +| Warrior | Protection | Defensive Stance; Shield Slam; Revenge; Devastate; Thunder Clap; Sunder Armor; Heroic Strike | +| Paladin | Holy | Concentration Aura; Blessing of Might; Holy Shock; Flash of Light; Holy Light; Sacred Shield; Judgement of Light | +| Paladin | Protection | Devotion Aura; Blessing of Might; Hammer of the Righteous; Shield of Righteousness; Holy Shield; Consecration; Judgement of Wisdom | +| Paladin | Retribution | Retribution Aura; Blessing of Might; Divine Storm; Crusader Strike; Judgement of Wisdom; Consecration; Exorcism; Hammer of Wrath | +| Hunter | Beast Mastery | Aspect of the Dragonhawk/Hawk; Call Pet; Kill Command; Bestial Wrath; Serpent Sting; Arcane Shot; Multi-Shot; Steady Shot | +| Hunter | Marksmanship | Aspect of the Dragonhawk/Hawk; Call Pet; Kill Shot; Chimera Shot; Aimed Shot; Serpent Sting; Arcane Shot; Steady Shot | +| Hunter | Survival | Aspect of the Dragonhawk/Hawk; Call Pet; Kill Shot; Explosive Shot; Black Arrow; Serpent Sting; Aimed Shot; Arcane Shot; Steady Shot | +| Rogue | Assassination | Envenom; Rupture; Mutilate; Eviscerate; Sinister Strike | +| Rogue | Combat | Killing Spree; Blade Flurry; Eviscerate; Sinister Strike | +| Rogue | Subtlety | Shadow Dance; Rupture; Eviscerate; Hemorrhage; Backstab | +| Priest | Discipline | Inner Fire; Penance; Power Word: Shield; Flash Heal; Greater Heal; Renew | +| Priest | Holy | Inner Fire; Circle of Healing; Prayer of Mending; Flash Heal; Greater Heal; Renew | +| Priest | Shadow | Shadowform; Inner Fire; Vampiric Touch; Devouring Plague; Shadow Word: Pain; Mind Blast; Mind Flay; Shadow Word: Death | +| Death Knight | Blood | Frost Presence (Blood Presence fallback); Heart Strike; Death Strike; Icy Touch; Plague Strike; Death Coil | +| Death Knight | Frost | Blood Presence; Howling Blast; Obliterate; Frost Strike; Icy Touch; Plague Strike | +| Death Knight | Unholy | Unholy Presence (Blood Presence fallback); Raise Dead; Scourge Strike; Death and Decay; Plague Strike; Icy Touch; Death Coil | +| Shaman | Elemental | Flametongue Weapon (Rockbiter fallback); Lightning Shield; Flame Shock; Lava Burst; Chain Lightning; Lightning Bolt | +| Shaman | Enhancement | Windfury Weapon (Rockbiter fallback); Lightning Shield; Feral Spirit; Stormstrike; Lava Lash; Earth Shock; Lightning Bolt | +| Shaman | Restoration | Water Shield; Rockbiter Weapon; Lightning Shield; Riptide; Chain Heal; Lesser Healing Wave; Healing Wave; Earth Shield | +| Mage | Arcane | Mage Armor; Arcane Barrage; Arcane Blast; Arcane Missiles | +| Mage | Fire | Molten Armor; Living Bomb; Pyroblast; Fireball; Scorch; Fire Blast | +| Mage | Frost | Frost Armor; Deep Freeze; Frostbolt; Ice Lance; Cone of Cold | +| Warlock | Affliction | Fel Armor; Felhunter; Haunt; Unstable Affliction; Corruption; Curse of Agony; Drain Soul; Shadow Bolt | +| Warlock | Demonology | Fel Armor; Felguard; Metamorphosis; Immolate; Corruption; Shadow Bolt | +| Warlock | Destruction | Fel Armor; Imp; Chaos Bolt; Conflagrate; Immolate; Incinerate; Shadow Bolt | +| Druid | Balance | Moonkin Form; Starfall; Moonfire; Insect Swarm; Starfire; Wrath | +| Druid | Feral Bear | Dire Bear/Bear Form; Mangle; Lacerate; Swipe; Maul | +| Druid | Feral Cat | Cat Form; Rip; Savage Roar; Mangle; Rake; Shred; Claw | +| Druid | Restoration | Tree of Life; Wild Growth; Swiftmend; Lifebloom; Rejuvenation; Regrowth; Healing Touch | + +## Ability audit classification + +Active abilities fall into one of three audit buckets: + +- **Conditional:** executable but selected only by a semantic trigger, such as interrupts, dispels, resurrection, threat control, movement, crowd control, executes, defensives, and long cooldowns. +- **Unsupported:** the catalog has only `unsupported`, `scripted`, or noncombat `utility` payloads, or represents a noncombat summon such as a scouting eye, ritual object, portal, or mount. These remain player-visible when valid but are deliberately excluded from autonomous rotations. +- **Rotation defect:** an executable learned ability with combat semantics that cannot be selected in its valid state. Profile-reference tests, shared-policy scenario tests, party damage audits, and the expanded-class audit treat these as failures. diff --git a/package-lock.json b/package-lock.json index bc50e30f..cb859927 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "healer-man", - "version": "0.1.48", + "version": "0.1.49", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "healer-man", - "version": "0.1.48", + "version": "0.1.49", "dependencies": { "@capacitor/android": "8.4.1", "@capacitor/core": "8.4.1", diff --git a/package.json b/package.json index 87764818..dc9a5398 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "healer-man", "private": true, - "version": "0.1.48", + "version": "0.1.49", "type": "module", "scripts": { "dev": "vite --host 0.0.0.0", diff --git a/public/assets/ui/spells/ability_devour.png b/public/assets/ui/spells/ability_devour.png new file mode 100644 index 0000000000000000000000000000000000000000..9beddbaa764b11fb7c7dac1c36b5fdab068b1059 GIT binary patch literal 4442 zcmWlddpy(MAICqR*_itXE5yt#*U6=FiJ5DBBlk+7qFi#R#8l&BhKfQdNp4LPp(5ly za;s#DZf=`a<`T19m&aTNGwu}?!@jhY4<{}@~}fdv`A>kUr+X0enQ zYC_J*dL?Qq0alpQfJ_-gc(dxKkDW|QTaQ{3Z&gcU+@%Epc?(=he8YwlCl4OXOqkzEh{ zM%Xj2MwEW~htyrGG4_o=@=$MwhqxK9&z96(DYn}@L?tfp17Wf=J(;~#Ebs1W%OdIg zo~I;7B|Kb=Ntu5h9xZOE{jW54B z!92$spKvbR&~>&^7Begk$b3{G-#f;>rq+F>J~_oi{J+_5x$ZgRkf?+^))Q~K`_@SD z-7Vvl21(XG>PUG!D=62|sKWn(ICn2?WPahDD|%s?Nt-dLIM%+ls4I&4SYR5$M4xlj zlD^?5k-_NFiPMOUxf3T1-uRWx3Jlf~Fkm~O;YtwlO2|L5^L;Nhgz?F+;u2Z;;= zEbJZt7U&h5$K?I-GT}XAez?Q6mc`@!Ej}^_w-)XD2@2}{cHM%5iu9P^0?N?sPy0@N(< zR!SnzUKpV-+D?4%Rl5$|5J>VgGji!W>Ef!`KY5oa#r zf&Mr+Ri@c{-Y9r!6W;HS8|<{|cbm>Jeb-!{vv*`OS~vf3@*BfTi%}^&?5T@QkGw{2 z5_Rp9b>id|%$@A>Xn|HA4ViyVX-G?aE-oy2lPt6A#3k1|$H$Eq@PM8sz-CTuN9Wj} zOZDAW*vK8@5r$nA9&+Hts4M&H?j}(YC;$Us#nP`(KVyrs+j^NQFs4dz0pxUJDtG+g zUO9-4dJ!3=Tz^qaTDTFo?<22Z+~@W__DfUQ|md$nFR6@jdD z#s?!IBnBp@?%9!-7;qBo7EJ22f&Yk1(xoXkpa%$lQol zA}E;K($d0;T)mXnmPyUUrG0qYxA*3sIhBOG;+^XThnI5Ve)HN653+iWnLUulbQ(0| zZw&`+eRrPH3}!JfcJ+DD^Ft2VGYJ`5htcf6VL5w#gnx2SwMmaJICmmKBvO2km3zUd zOi+t+7P6Z7>msTC@2-rPpw^-v`BhKNsMAMQ&)vY*yrX_V@Wh-K4Ya)uP=t{B%yq}n zv-HUAP3_cbS-=+Ppc>jjjt1r%>Bxrd%ehH5FitpEUkA7jU|^4Kxkzjug{d`r;-_n{ zs`nuJcU4sNmT%3Z8cVSgkqi~Ga_~R&eg}Y;m#0t#3tL^$R$-m%v)}M ze!RT7*?;@n)=cWH+cMI{Bf18&sM&3qWk;W1JTmv=hu!x<-TDLh&L5X@6_d9t-+1B| z=6B+bCI5I*p|mwL&>j4{1||SzCURhK%(ay$`$YPId~3k+{yQKO1A`;+#99{$3ACITx57?jVa7G}nAT|~y_upU_i{M~^EbFAsm#mqH3)UVW zRe}}U%T5C*Xb@1vT?gQ)fTsYQjWO;>qiFIqAl;fC23d`IQYA~4>;S?no4FSeiWu^K zFk!GWyUi0)9HRHg&=Y~8QbJyFIUdgTdSQ!ac8iJc_LYJB)zTE}S9+A?6&Xps(={-= zSo@(YlNQZ)LYk(i$*V~U2W!vV%^8Wx%b47)@p=3cp`i3^Y1rKyx37PzUmMI{*57Ja zeyzb(h%oev_0hlMSN$PjTca8)FX49DHC=e?g<({tJm=pY)69~Bd?_Uv`tWd<%gZF`&j)U9)4}ls1SzU5h37uCGrR=rRYf2h=bY1EgzJpILR_y}Is0ZiN}0 zR7nsiN&i|Q07IFLDfF%pIwmUf zv_)@)zDYKNr86&bC)LIi-6DV0wFE6bjcjEW6CEI49o+N5d9@FBJd>N}H3rPe5MOn| z`rec#hFomy9d5Y)tMX(`%0E;<#EO2EjQL^1k>uWz8%IyF{563OW76rwIqX%Wq$IQQR!>?rM)g~h0-TE1|52x<2qPM^zNU#Wlyu3K$qVDs^~G$7ZTz5mS#MJ2s>IU2|t z@Pq>VnE@EskO-cL!9Lys1i;`RmK{00)v^64-w`iUED>rAo@CENKT~XR74$;^o1k}w zx~sLxXurA5l%?q*^9hN+xVOqO+k=zpI{MM4%~i{9wd`P`tP3+}hqGH==9hOJ&N}K! z!Q~Im8ypsiFeHv8ewkY2h!5S@K%c2o82U6++i;}ZX>ELhRE=e*n|m~yIBd;xYIYRO zYndsE!SNI&CCn1X)m;umR=H%T+GMvGJX6C%qt1?hW<6j44=E|kM_Ka1381`~_yqs+ z`xz&Ahk%5?Dxe34j`IaJ+4NXWSX#;B@h5M4ze7(&j<#G`{ws@-Mk!wBU%z?7HJz)N zkX%7zm2;*RK+oZ#mud)zGJZBue3}$c34QX34T$^7~_^&k-IqEd5L zQAhDV`jprHLxVXa;r?6tXQvyB$UVchiQ;;!keJ2kFKKDoId_kLF%9{%>a$l4te@&_ zTQ(JG$HkiEmz%MMv}o4OHNFVBW(5mv3tqu;ghoKEAyT3vTu?NV5v1O5H6fF$qCKIZ_Y@mkwlMe&M81@*a42(HsJa56%JtS#|*V zj7Sjz3s@9DGja`6F=D}yQ>nR~LZ1T@`dsEO_p>6G4cQB9q~YScL4EV{d1Eb33hjI+ zHq_<`Vo;CP6_%lAEfUTx&k#^J7&v)qS~AM%ME_M8+jiD#>9~#Gf6)-VbGYY6W@6lJ zPQzz0usLc*LIyQn|1NkWVAcvhj8D*0>w$;e(HGg|8pN6p?1bi9nTLbN2KHFOTpl}f>E~F zzLkxAIB(qJ<~;Ft{vQ`*ODvGT>;_g);j_p+QH2=`2VSo?WH|g~%vbKxSe%b|od>5} zP-yLZuITYF?^#Ix-3pP)_`TVtg=LNjGfilNWgJ=$W>B8l?wVQ-17b*c+k;>uoL|^) zvKp{4XkKf`8&GpZP(sU#yxZBXpZ}jlU+G0Guli{D9RQzs-a)Xv_}Pu$Q^zA( z(xBp@BI!(Xt137^;scCKm8Sb+12&FlU9tLL(Uug@fA~w6;CF z<4%sOrs&6CIVRkYQ1QG2r->;vFN2o|@v?zhWc+r_`nqsK^p;{|nXe1^m#Ga?#0TOt z_wTnDAHFv%!%u9Kd5H1p3DL3EaA;|ZG~fdq-~2o7owO=*3Ww{UK55f^0eC`|h!PR{ zj0XV@NI`?>Xz)$V&(WN7d71`Pip|-hzn_o-W%nl1u z{PImRMzIxF(k5MT?3c!~^VdFgZgV@1J=BsNwhYMJCC_>RY|`sc;`7e*wMDVjF=EH_ z;(dp9D{EegU8s?TQtvkcM_k+4#VYEjOhG~=lsYkbPWY#$w!&j-R;C?{EQ-n;l|6G` zio=NX2C1o^MjfJ%jvC`Z;9viVAdn2-{<9=&Kd~x=k~bfq6JTT;$P*@a01L92V+vvt zh1=`!v6j7^;RnIhf_nhOa0l5oK!*)kA72PVK{3pM*x~y=-`DoQZ29zsOBE$Cq?Pmt zX+ZB&si+>gdDn@z?`^qQn#aV_QD)Jol?#1rBuKF7plkkt?u;_}_;&e!9_WGc{GhI| zI3D{OGGX_h(epR-3k!=9x8TaPg8x>ytH^H#2lu_m;P%usGtI`&(s72VGB4*dCxfxp zcT;PI(6_R_)@04;%xRxHpKx; z!U#!6qcszD(^T+kMedkWlY#erzlTUjoi*7=*!nH{I2jQkWtMP&ieEbp5}B{G1L!H} zRE~SGC+#x@cM^9onBt(0ryw)6+w)Jr(cqe5M;egc$oCvGckt5;RnitX?wN>WaCGL7 z{V@J|1 zdexuy88^D5!8e0C%i7jnT0LxAzIC)IU$|BF@y0E~Aj^W1(ys^0W?Rgf+;cd(w}o+J zC`pt50)paAHr@sKW4fa=&%iEW&Zxu_M`3mOvkXHIq56X8&+;S^~ zMi7k53=0r_EG?6&I6H4_yL|H7qg!;RDRb$gDvxL0%a9pYpb8o)VOzI@& zo2GaAHtMQ5^ymgm+)jR2-+xt7?AUdN_(k!#?MiO@>%oQ{*L0$VX}e?oRY?5%gl2D} Y0U=kg7dUs0|7QXmvU9PmA_S2C2f>C52><{9 literal 0 HcmV?d00001 diff --git a/public/assets/ui/spells/ability_druid_forceofnature.png b/public/assets/ui/spells/ability_druid_forceofnature.png new file mode 100644 index 0000000000000000000000000000000000000000..4df2256653cb0f36caf9812cdc0ae289da24d0c8 GIT binary patch literal 5146 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 literal 0 HcmV?d00001 diff --git a/public/assets/ui/spells/ability_golemstormbolt.png b/public/assets/ui/spells/ability_golemstormbolt.png new file mode 100644 index 0000000000000000000000000000000000000000..a62ebe1cf27c3964025898b8d800b31c825fcc0d GIT binary patch literal 4456 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 literal 0 HcmV?d00001 diff --git a/public/assets/ui/spells/ability_hunter_pet_bat.png b/public/assets/ui/spells/ability_hunter_pet_bat.png new file mode 100644 index 0000000000000000000000000000000000000000..8608b4e5558ac62e527ea235c3cccfe107636c5c GIT binary patch literal 4044 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 yyyI_dfzOyeLn$f;I^N0000JOU$ literal 0 HcmV?d00001 diff --git a/public/assets/ui/spells/ability_mage_deepfreeze.png b/public/assets/ui/spells/ability_mage_deepfreeze.png new file mode 100644 index 0000000000000000000000000000000000000000..e99f66950a77bf7ddec0a2e8240736e3a9d7b18a GIT binary patch literal 5224 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 G;Qs@6RdS>N literal 0 HcmV?d00001 diff --git a/public/assets/ui/spells/ability_paladin_divinestorm.png b/public/assets/ui/spells/ability_paladin_divinestorm.png new file mode 100644 index 0000000000000000000000000000000000000000..8999355154a453ef1e798bfd98e6810e2083a752 GIT binary patch literal 4522 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 literal 0 HcmV?d00001 diff --git a/public/assets/ui/spells/ability_paladin_hammeroftherighteous.png b/public/assets/ui/spells/ability_paladin_hammeroftherighteous.png new file mode 100644 index 0000000000000000000000000000000000000000..3d079dbf2683d989e615857dbb917e055c0d19cd GIT binary patch literal 4892 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 O0000iGsd3o)OeiPf+i5qU3-mY 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 literal 0 HcmV?d00001 diff --git a/public/assets/ui/spells/inv_staff_15.png b/public/assets/ui/spells/inv_staff_15.png new file mode 100644 index 0000000000000000000000000000000000000000..1077ea6c1be22eaaea78b90bcc4c9a8177ce9c17 GIT binary patch literal 4706 zcmW-lc|6q5AIE3cv5uS(lC{Wvr$VlEf8C1QvN=;C5mt^*xpOS*ju4@o6-6vdIabP% zGdZ)aO4!KFZ~HywF*E1kVsOiblP`lN3^>6RTd&PuuZ0xiJ7eM?QdqK-)IuBBUjRBjEnX( zB$qNR#Yj_%lHU)~%M^WLmbDvrh?~6P)HHcQM!7DdPa^t~v5A-V&}k`^0B%*=%Y#UN zlznl!X8CsaQP`jG0u}$sL;s<3Et`i~otLlGu5Du}>K146rhFS##(m!IUd&78+WwmO z-naelaf;cJcHY(pPH4ex$@R4V$qj9##r|ZoonvtYYp7jVay|6${yf7)6I!!~cT>LQ z0=2()5?Nl(zY%y{CsS#j>?l8)vcsl@uw z`oh(#SBLgu#gM&7$r3!CGsbQAWc{3Bo|*c7*h#m#Y|G%rY=Lmi!suMTp#^P4%Jxho z5kIqI!N1isd~{b0!9e7{sQ)q|IVQ2!jDtc4g}LdLFwK6OXy;%DUw$uXs0-_?d{{_A zg6~~VP8hOVaKm6yg;k3T1dm4y3T|B|hFH-c-hz9!)>9L6D&Je&qAptmW$^WYj%jJ= zjSLHx5%|-Bcp(@q2isvW?m;8#Ga;8b}MGymq2ea?U_MiuzAuHkKjp9K4 z_TG>R#3l*LH={ekS7G#DUgYt`$l;!(DnoT;vFfq~#lh&mXI0I2w|je5Ys%5HpfiqB zz3C@^Zj8yt7w$m`p;H9IQPE5dPFdp31sq@7i5(RhqXv%GBQ%U*Nu*K3klUxs+yohae;u&daZZk94`lA?|yQ7WXb$*EX ziU6z1vF=}A`JWZcb5P#wb05)g=&$+3W-Q0#ZRa#ZYJBYQW5*S|*w!> zjBGJ*0!k=A!P-hqjEemvq^k!n1ZIn1^Z<#5WCDe$p^4`U&Y^elrGza-8_fl4X|_8m zRn83$Hg0bz?bs);7WyGjke>-6iot3XkW4^4vv7(t^Z``jz-t;55j(aX4fJA}6k7Mv z>F$iKD<`U&8>cK(l2#62R*sIn8J}dXOP$i{tE#T_dgXk7+v;HcEUwS%=8FTxxc7gG zv#*7gru!?0@LJ>*G9p(!ikCPuc4Rs+1wHIaVSjLeXZ>--f-_~#-3C1^qCJ0x$M_!Q z3y9k4CM|7fM@{~G&twsh!AejxjlDk5)^^XBU$6UkUM5raj)L7;O-9YtPqL3iAvqkj z6VF7?5mLac5D`Ca%7LmD`3{6o8k>V2F(jI>c*3?%EC)8VFO>=62#muUA7y6uFR;vd zPjyjv6PaeOEqQuZsl#VucHzq$I^8LCDh4l)?%!)b5>jGRaQH0r3r@?9MOETf zsq0g8!7_zfD^Bo@cn9>xq~1z4dB6~`)VC1XeWtLX;ck|c-wUgwE zgez9MN!~smIhRjg-|I_S_kGV0w91n9Gmbxmc75HKa%ENNO*-O^${DG)3Zi{!-?|lD z>V9CnNp$;MG@b_)?z((xC}Oz+-z@>tyT&%4cD@T8+Pf%Zz{akoe9;3M$2^kcMH7=U zO|Jg}(P*gYO}{w<%EFr+RI>Uf6!m)jcDDwkW{2 z-WAtAd?se=OVP31wHBTE*84`QtrK5aQ*iP88+=1`)Pb}1kKF}HGW)atF{k-@1iLOwl3QXc!piZKIY&;F16Xk4m%TU#8D8BFh} zBktIwmgsc{BtRf_jAk>xrIW&|-x}bDr$JNY8$Y9XXl-CYoV z+8`;#Lz?L~6b4fWBHWVj=hJN|kpihBaq84q7%4OdBoUoffwtzNaRI78`I}`-&?*ja zYG)&w)CX(@6;W~&-dB{)U(gGb6-^jbXNZzyiDXKDofma!)!+b)!<^qzZdka=~Y&R=%5m zQ-@YQ$<<$g)LHB3QyHX>-aZn+WB_4YC7PrASb+!Y;%H0&Ohw9bYIv7^yn0r-07h^Mu2T;&t5Ao$nHWV8<$Tk}xEQh`(aS^?1 zEN&vw_J|rm1#0!o^a>htxmGuuI_XAr+fD;%!DSOAhN3n2*S*y4aqM~pK3KWijIs-l z#_`FdfcpnV6L0(u9!D)@0d^h=;^ns&i+ns<<85K>u5l}TMG@6(-1>37OdF05=`RwI&wQ%EUQV$K)BfLA&`Gj)W9yF2zwf4Ek zf*W;jNP!M&ynqh2h+ZIGrJk9G(d_<~+fFAHQmTQD-U**KFqbZlG(78JKv zk)9}O1&{&QhtZ%W)NdNhK3&T)mj_3eg+m%18e*T zzj#QSS~O|osasn)rZ@k7Ma|roH?GI5@bJe!?WM5~Cy5h}N;tc3O!hnEV zNQnEcCl*7&C!u3)A3M4mk#DT%fXyxeR&kd{CuhEvg#v%k*AL1NmPW?u zwTvGWxxcN+-L{#>U)7O(|IGWi=9YYQo%JWVVtyX$k~jU(6iMrt1ZjH_K_nYHIBarR4+z=D;6?LNs(0ZR$cc8^H=JfbPZb8ab8 z5k_8NBTsE1v$99VXwa?m?vG2U{DRhGt1OfUHZu)s-VWhOsejj)rBSsA1|(xZbQo;? zP}e~ilR_uM+m_(s?o08c`6To7#}9{_e^xPsRqfNQfywPb7BfAZE%{HK%a74h#DgoZ z78VkR$2rSqB0>_i5N@+Rv2T5ddIe>6L6aGldh@ZD5~EsYoQtQ2c(@+ua{L$jJ0bwDesiVVv&77S1?TOFX8qzDVHk+`&+G| z5GigtnG!+{A>y-vF!hrEU6pW-Dh&HSoVD6Xc-j*+hik=rQDzYfJg^>weMHLI!cfW7 zAcr>|O=oIBRRr3B1sIunQgDj?vL!+BdgK0qfljTGp41JqwFIxiHU%IMQf1=S!xlr6(Hwl92i)rhOO5jzadFN>}ru|l3f4DFac^F z4U25E;}bV;~-*WcK1wyiItmGe!G*oLG7A=*me`cE^FzI@@tyx zHA>jA<2)O>Kf-n3>kRG-Pf5e>EjLpqBc+z`sQU8CJXXR;ud@C1Q-9KrlYJi*Bw8)& z3HJL(1(EIC55$(yIivUACTV>jwZzy8&nD;Yuw)UmhYIdXI9Qbw(#lflg8Cqcs{ERV zOtawU^Tc2>I_YkKcoBFXg%jQS_Me1pDH?IA0NIFw^hi8KuGo=i5K2psygva8!~(2+ zxL!z$^b4}$*h2d^BHug}&OpaM802kIPaP?g0uo%P!mvS@La?CX@DI1>#t2@!f0r^e zvXt4c4>gkF`p()rMEDp1lAAc7g+dfzXW`QtnscAO#=uED$fgLK`r7HhAHgL*qGR6q znNSH{c$hLD(KU6(>X)X<`?XI=&aGz2&fcD62Zt7WzCSzV_7NM>@$|c{COP{p=kC_n zSFZa^80@n>v22F_*^(!aNWwys)@$zB?+BlRCtwek*6sr5X=k3NTm9Sqw6{Q3H{&1k zSa`YLD|MatkYfy~(b?N;%&+QM$*W2x%=7~@GgZW%W(;sfDhBSFAHOt0Qf1$<`+J5%P^rfa z5wFrVc^Z6)M^OO`vHHaCTxz$H5y?UsJ*~Bo%iCtqcT*g@<4H2`i$(Ch!>x^Hqk_$H zCchNPTAC8&{V%6vD>jk zkDz*^qk;H$F&gAWHuY{MXGYGn3su2TM?0^@yJiZj=;HI$^|@0jv^3CP56&GSFb!%~ zp{6A@`-#(NGAsy?72*F3lDb{LGi?5{=Ez;fiIDN&Jp4IB7GV3FYikWQqU&fC^r7>@ z7}_Rv_FZ)Uy?YGHXovMx<~l-^W>;9H%W^-3LVXxT6_afp$!ki-+_J~8XtxEXuD@Oz zhPaqxg@Dmtabo(%ANsFK+bZ1oMAs9czWxNkb%1QolqOwWa#iTwe;C+UZ2o!J&P9u( zJR!kl=7Q+xnB#-`=DtphFTVdI6e*)a*qpD#`}h}jRAI>H_omCV}DZ0<4sK1Kjn54lTj SoGR46BVeR&u2-XjdH6pR4%DOo literal 0 HcmV?d00001 diff --git a/public/assets/ui/spells/inv_sword_07.png b/public/assets/ui/spells/inv_sword_07.png new file mode 100644 index 0000000000000000000000000000000000000000..6b0b824be51a505d15117d3246fe60b2685ad3c4 GIT binary patch literal 4566 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 AyZ`_I literal 0 HcmV?d00001 diff --git a/public/assets/ui/spells/spell_frost_coldhearted.png b/public/assets/ui/spells/spell_frost_coldhearted.png new file mode 100644 index 0000000000000000000000000000000000000000..7ff1a024a8df8e8cb95a3cd0cb3094a12a0c9464 GIT binary patch literal 5185 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 a%psJAImk~IfdBXR2r@UdIoF6IkpB;aXp-Fk literal 0 HcmV?d00001 diff --git a/public/assets/ui/spells/spell_holy_divineillumination.png b/public/assets/ui/spells/spell_holy_divineillumination.png new file mode 100644 index 0000000000000000000000000000000000000000..e755b5de014db3908289530c4472779740cdea2d GIT binary patch literal 4853 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 literal 0 HcmV?d00001 diff --git a/public/assets/ui/spells/spell_nature_forceofnature.png b/public/assets/ui/spells/spell_nature_forceofnature.png new file mode 100644 index 0000000000000000000000000000000000000000..dd91d7c7777d2f4322625ed523f4fb5e3e80c5ef GIT binary patch literal 4686 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 QYXATM07*qoM6N<$f)=f?1^@s6 literal 0 HcmV?d00001 diff --git a/public/assets/ui/spells/spell_shadow_curse.png b/public/assets/ui/spells/spell_shadow_curse.png new file mode 100644 index 0000000000000000000000000000000000000000..bc29ccd1409cd88a2cd8aac14ab8f5c5e430fbde GIT binary patch literal 5034 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 literal 0 HcmV?d00001 diff --git a/public/assets/ui/spells/spell_shadow_dispersion.png b/public/assets/ui/spells/spell_shadow_dispersion.png new file mode 100644 index 0000000000000000000000000000000000000000..8b16f3a01e26c226c237e7b1da1caa0d87ec36dd GIT binary patch literal 4524 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 KMNUMnLSTY#C?2~2 literal 0 HcmV?d00001 diff --git a/public/assets/ui/spells/spell_shadow_psychichorrors.png b/public/assets/ui/spells/spell_shadow_psychichorrors.png new file mode 100644 index 0000000000000000000000000000000000000000..b2be3fc5893396316a75006e9a942377abdbfcff GIT binary patch literal 5171 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 !ability.passive && isAbilityUnlocked(ability, state.level) - && (ability.talentEntryId === undefined || (state.talentRanks[`coa-entry-${ability.talentEntryId}`] ?? 0) > 0)) - .map((ability: any) => { const resolved = abilityAtLevel(ability, state.level, ability.talentEntryId === undefined ? undefined : state.talentRanks[`coa-entry-${ability.talentEntryId}`]); return { ...resolved, targeting: targetingRulesForAbility(resolved) }; }); + const abilities = state.abilities.filter((ability: any) => !ability.passive) + .map((ability: any) => learnedAbilityForBuild(ability, state.level, state.talentRanks)) + .filter((ability: any) => ability !== null) + .map((ability: any) => ({ ...ability, targeting: targetingRulesForAbility(ability) })); actor.characterKit = { ...kit, seed, classId: state.classId, level: state.level, resource: { ...resourceProfileForClass(state.classId), maximum: state.maxResource, initial: state.resource }, abilities: Object.fromEntries(abilities.map((ability: any) => [ability.id, ability])), actionBindings: state.actionBindings }; diff --git a/scripts/balance-lab/runtime.ts b/scripts/balance-lab/runtime.ts index b9bcb142..488691d5 100644 --- a/scripts/balance-lab/runtime.ts +++ b/scripts/balance-lab/runtime.ts @@ -9,9 +9,8 @@ import { } from "../../src/app/characterCatalog"; import type { ContentCategoryId } from "../../src/app/contentCategories"; import { - abilitiesForClass, - abilityAtLevel, - isAbilityUnlocked, + abilitiesForCharacter, + learnedAbilityForBuild, preloadAbilityCatalogsForClasses, } from "../../src/game/abilityCatalog"; import { aiHintsForAbility } from "../../src/game/abilityRules"; @@ -44,7 +43,8 @@ import { type PartyMember, } from "../../src/game/partyStore"; import { specializationsForClass } from "../../src/game/specializationCatalog"; -import { BenchmarkController } from "../../src/game/benchmark/benchmarkController"; +import { BENCHMARK_POLICY_ID, BenchmarkController } from "../../src/game/benchmark/benchmarkController"; +import { COMBAT_ROTATION_VERSION } from "../../src/game/combatRotation"; import { loadSelectableBenchmarkBuilds, selectableBenchmarkBuildCatalog, @@ -157,6 +157,8 @@ function catalogPayload(source: PartyCatalogSource, level: number) { const builds = selectableBenchmarkBuildCatalog(level, classIdsForSource(source)); return { schemaVersion: 1, + policyId: BENCHMARK_POLICY_ID, + rotationVersion: COMBAT_ROTATION_VERSION, level: builds[0]?.level ?? level, source, builds: builds.map((build) => ({ @@ -243,14 +245,11 @@ function currentHealth(actorId: string): readonly [number, number] { } function availableAbilities(build: BenchmarkBuildDefinition) { - return abilitiesForClass(build.classId) - .filter((ability) => !ability.passive && isAbilityUnlocked(ability, build.level)) + return abilitiesForCharacter(build.classId, build.secondaryClassId) + .filter((ability) => !ability.passive) .map((ability) => { - const learnedRank = ability.talentEntryId === undefined - ? undefined - : build.talentRanks[`coa-entry-${ability.talentEntryId}`] ?? 0; - if (ability.talentEntryId !== undefined && !learnedRank) return null; - const ranked = abilityAtLevel(ability, build.level, learnedRank); + const ranked = learnedAbilityForBuild(ability, build.level, build.talentRanks); + if (!ranked) return null; if (ranked.effects.every((effect) => effect.kind === "unsupported" || effect.kind === "scripted")) return null; return { abilityId: ranked.id, @@ -573,6 +572,8 @@ async function simulateConfig(config: BalanceLabConfig, output: string): Promise schemaVersion: 1, generatedAt: new Date().toISOString(), engine: "live-typescript-runtime", + policyId: BENCHMARK_POLICY_ID, + rotationVersion: COMBAT_ROTATION_VERSION, config: { ...config, level: builds[0]?.level ?? config.level, diff --git a/scripts/balance_lab.py b/scripts/balance_lab.py index fe836061..63a43375 100644 --- a/scripts/balance_lab.py +++ b/scripts/balance_lab.py @@ -443,6 +443,8 @@ def aggregate(raw: dict[str, Any]) -> dict[str, Any]: "schemaVersion": 1, "generatedAt": raw["generatedAt"], "engine": raw["engine"], + "policyId": raw["policyId"], + "rotationVersion": raw["rotationVersion"], "config": raw["config"], "party": raw["party"], "summary": { @@ -508,6 +510,8 @@ def markdown_report(report: dict[str, Any]) -> str: "", f"Generated: {report['generatedAt']}", "", + f"Policy: `{report['policyId']}` · rotation: `{report['rotationVersion']}`", + "", f"Party source: **{config['source']}** · level **{config['level']}** · " f"{report['summary']['bosses']} bosses · {report['summary']['runs']} simulations", "", @@ -614,7 +618,7 @@ input {{ width:min(420px,90%); padding:9px 12px; margin:0 0 12px; color:inherit; th,td {{ padding:8px 10px; border-bottom:1px solid #21262d; text-align:right; white-space:nowrap; }} th {{ position:sticky; top:0; cursor:pointer; background:#161b22; }} th:first-child,td:first-child,th:nth-child(2),td:nth-child(2) {{ text-align:left; }} tr:hover {{ background:#161b22; }}

Healer Man Balance Lab

-

{html.escape(report['generatedAt'])} · level {report['config']['level']} {html.escape(report['config']['source'])} party · {report['summary']['bosses']} bosses · {report['summary']['runs']} simulations. Click a heading to sort; filter boxes keep every row accessible.

+

{html.escape(report['generatedAt'])} · policy {html.escape(report['policyId'])} · rotation {html.escape(report['rotationVersion'])} · level {report['config']['level']} {html.escape(report['config']['source'])} party · {report['summary']['bosses']} bosses · {report['summary']['runs']} simulations. Click a heading to sort; filter boxes keep every row accessible.

{member_table}{boss_table}