Release Healer Man 0.1.40

This commit is contained in:
phenom committed 2026-09-13 13:21:27 -04:00
1 parent ed0d2fea3d
commit 197a64117c
215 files changed
+5131 -181

No files matched your search

+28 -8
View File
@@ -798,7 +798,7 @@ describe("combat store", () => {
expect(useCombatStore.getState().lootMob("lootable", 30_000)).toBe(false);
});
it("rolls SQL boss loot at the killing player's level and grants it automatically exactly once", () => {
it("suppresses leveling equipment while granting boss cards automatically exactly once", () => {
useCombatStore.getState().initializeCharacter({
classId: "priest",
level: 1,
@@ -825,11 +825,9 @@ describe("combat store", () => {
looted: true,
corpseDespawnAt: 5_000 + MINIMUM_CORPSE_VISIBLE_MS,
});
expect(corpse.pendingLoot).toHaveLength(1);
expect(corpse.pendingLoot[0]).toMatchObject({
itemLevel: 1,
sourceBossKey: "lady-anacondra",
});
expect(corpse.pendingLoot).toEqual([]);
expect(corpse.bossCardDrop?.rarities).toContain("normal");
expect(useCombatStore.getState().bossCards.counts["wow:lady anacondra"]?.normal).toBe(1);
expect(useCombatStore.getState().inventory).toEqual(corpse.pendingLoot);
expect(useCombatStore.getState().bossLootRewards).toEqual([
@@ -846,7 +844,8 @@ describe("combat store", () => {
expect(useCombatStore.getState().bossLootRewards).toEqual([]);
expect(useCombatStore.getState().lootMob("anacondra-spawn", 5_100)).toBe(false);
expect(useCombatStore.getState().lootMob("anacondra-spawn", 5_200)).toBe(false);
expect(useCombatStore.getState().inventory).toHaveLength(1);
expect(useCombatStore.getState().inventory).toHaveLength(0);
expect(useCombatStore.getState().bossCards.counts["wow:lady anacondra"]?.normal).toBe(1);
});
it("aggros every surviving packmate even when the pulled mob dies to the opening hit", () => {
@@ -1073,6 +1072,26 @@ describe("combat store", () => {
}));
});
it("prevents Death Pact from instantly killing an encounter boss", () => {
useCombatStore.getState().initializeCharacter({ classId: "death-knight", level: 80 });
registerTarget("pact-boss", [2, 0, 0], 1_000_000, 0);
useCombatStore.getState().registerMob("pact-boss", { name: "Pact boss", boss: true, maxHealth: 1_000_000, xpReward: 0 });
useCombatStore.setState({ resource: 100, resourcePools: { "runic-power": 100 } });
expect(useCombatStore.getState().castAbility("wow335-death-knight-death-pact", undefined, 1_000).ok).toBe(true);
expect(useCombatStore.getState().mobs["pact-boss"]).toMatchObject({ dead: false, health: 1_000_000 });
});
it("prevents repeated Favor activations across branches of one Guardian hit", async () => {
const build = (await loadCanonicalBenchmarkBuilds(80, ["guardian"]))
.find((candidate) => candidate.role === "damage")!;
useCombatStore.getState().initializeCharacter({ classId: build.classId, level: build.level, talentRanks: build.talentRanks });
registerTarget("guardian-proc-dummy", [2, 0, 0], 1_000_000, 0);
expect(useCombatStore.getState().castAbility("coa-18-reprisal-69-800316", undefined, 1_000).ok).toBe(true);
const hits = useCombatStore.getState().combatEvents.filter((event) => event.kind === "damage"
&& event.abilityId === "coa-triggered-712476");
expect(hits.length).toBeLessThanOrEqual(2);
});
it("resets encounter health without erasing earned progression", () => {
registerTarget("mob", [2, 0, 0], 1, 100);
useCombatStore.getState().damageMob("mob", 5, 1000);
@@ -1478,6 +1497,7 @@ describe("combat store", () => {
});
useCombatStore.getState().damageMob("storm-boss", 10_000, 30_000);
expect(useCombatStore.getState().mobs["storm-boss"].pendingLoot).toHaveLength(2);
expect(useCombatStore.getState().mobs["storm-boss"].pendingLoot).toHaveLength(0);
expect(useCombatStore.getState().mobs["storm-boss"].bossCardDrop?.rarities).toContain("normal");
});
});