forked from phenom/healer-man
Update Healer Man server
This commit is contained in:
1 parent
1fedb9368d
commit
cc3b2fa4d5
27 files changed
+1988
-83
No files matched your search
@@ -0,0 +1,51 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import {
|
||||
BOSS_BALANCE_OVERRIDES,
|
||||
resolveBossBalanceOverride,
|
||||
type BossBalanceOverride,
|
||||
} from "./bossBalanceOverrides";
|
||||
|
||||
const overrides: readonly BossBalanceOverride[] = [
|
||||
{ id: "all-levels", dungeonId: "test-dungeon", entityId: "test-boss",
|
||||
healthScale: 0.9, damageScale: 0.8, reason: "test" },
|
||||
{ id: "level-80", dungeonId: "test-dungeon", entityId: "test-boss",
|
||||
minimumLevel: 80, maximumLevel: 80, damageScale: 0.5, reason: "test" },
|
||||
];
|
||||
|
||||
describe("boss-specific balance overrides", () => {
|
||||
it("composes broad and exact-level corrections for one boss", () => {
|
||||
expect(resolveBossBalanceOverride("test-dungeon", "test-boss", 80, overrides)).toEqual({
|
||||
healthScale: 0.9,
|
||||
damageScale: 0.4,
|
||||
matchedOverrideIds: ["all-levels", "level-80"],
|
||||
});
|
||||
expect(resolveBossBalanceOverride("test-dungeon", "test-boss", 70, overrides)).toEqual({
|
||||
healthScale: 0.9,
|
||||
damageScale: 0.8,
|
||||
matchedOverrideIds: ["all-levels"],
|
||||
});
|
||||
});
|
||||
|
||||
it("matches the source dungeon while running in an isolated boss-testing room", () => {
|
||||
expect(resolveBossBalanceOverride(
|
||||
"boss-testing:test-dungeon:test-boss", "test-boss", 80, overrides,
|
||||
).matchedOverrideIds).toEqual(["all-levels", "level-80"]);
|
||||
});
|
||||
|
||||
it("leaves unrelated bosses and levels unchanged", () => {
|
||||
expect(resolveBossBalanceOverride("another-dungeon", "test-boss", 80, overrides)).toEqual({
|
||||
healthScale: 1,
|
||||
damageScale: 1,
|
||||
matchedOverrideIds: [],
|
||||
});
|
||||
});
|
||||
|
||||
it("ships the Drakos correction only at its audited level", () => {
|
||||
expect(resolveBossBalanceOverride(
|
||||
"boss-testing:the-oculus:entry-27654", "entry-27654", 80, BOSS_BALANCE_OVERRIDES,
|
||||
)).toMatchObject({ damageScale: 0.45, matchedOverrideIds: ["level-80-drakos-pressure"] });
|
||||
expect(resolveBossBalanceOverride(
|
||||
"the-oculus", "entry-27654", 79, BOSS_BALANCE_OVERRIDES,
|
||||
)).toMatchObject({ healthScale: 1, damageScale: 1, matchedOverrideIds: [] });
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user