Release Healer Man 0.1.49

This commit is contained in:
phenom committed 2026-09-17 09:13:15 -04:00
1 parent 39425f2494
commit 612170afd0
91 files changed
+2278 -263

No files matched your search

+16
View File
@@ -24,6 +24,7 @@ import { defaultActionBindings } from "./actionBindings";
import { deriveCharacterStats, MANA_POOL_MULTIPLIER } from "./wotlkStats";
import { subscribeCombatPresentation, type CombatPresentationEvent } from "./combatPresentation";
import { loadCanonicalBenchmarkBuilds } from "./benchmark/benchmarkBuilds";
import { runtimePartyTalentRanksForLevel } from "./partyTalentRuntime";
function allocateTalentRanks(name: string, ranks: number): void {
const talent = TALENT_NODES.find((node) => node.name === name);
@@ -289,6 +290,8 @@ describe("combat store", () => {
equipment: {},
});
expect(useCombatStore.getState()).toMatchObject({
specializationId: "priest:holy",
gearRole: "healer",
resource: 3_285,
maxResource: 3_285,
});
@@ -414,6 +417,19 @@ describe("combat store", () => {
expect(useCombatStore.getState().actionBindings["primary:face-bottom"]).toBe("mage-frostbolt");
});
it("shows learned classic talent actions and clears their bindings after a talent reset", () => {
const talentRanks = runtimePartyTalentRanksForLevel("druid", "Balance", 80);
const talentAction = abilitiesForClass("druid").find((ability) => ability.talentNodeId
&& talentRanks[ability.talentNodeId] && !ability.passive)!;
expect(talentAction).toBeDefined();
useCombatStore.getState().initializeCharacter({ classId: "druid", specializationId: "druid:balance", level: 80, talentRanks });
expect(useCombatStore.getState().setActionBinding("secondary", "r2", talentAction.id)).toBe(true);
expect(useCombatStore.getState().actionBindings["secondary:r2"]).toBe(talentAction.id);
useCombatStore.getState().resetTalents();
expect(useCombatStore.getState().actionBindings["secondary:r2"]).toBeNull();
expect(useCombatStore.getState().setActionBinding("secondary", "r2", talentAction.id)).toBe(false);
});
it("grants the level-ten starter kit while retaining later ability gates", () => {
useCombatStore.getState().initializeCharacter({ classId: "mage", level: 1, xp: 0 });
expect(useCombatStore.getState().castAbility("mage-frost-nova", [0, 0, 0], 1_000).ok).toBe(true);