forked from phenom/healer-man
Release Healer Man 0.1.49
This commit is contained in:
1 parent
39425f2494
commit
612170afd0
91 files changed
+2278
-263
No files matched your search
@@ -10,6 +10,7 @@ import { clearPartyRuntimeRegistry, registerPartyRuntimePosition, updatePartyRun
|
||||
import { advanceDungeonPartyCombat, partyCombatRangeBand, resetPartyRuntimeClock } from "./partyRuntime";
|
||||
import { subscribeCombatEvents } from "./combatEvents";
|
||||
import { bossDifficultyMultipliers } from "./dungeonDifficulty";
|
||||
import { dungeonEnemyHealthBaseline } from "./dungeonLevelScaling";
|
||||
import { abilitiesForClass } from "./abilityCatalog";
|
||||
import type { ContentCategoryId } from "../app/contentCategories";
|
||||
|
||||
@@ -80,11 +81,28 @@ describe("dungeon boss durability and difficulty", () => {
|
||||
const stockadesBoss = stockades.bosses[0];
|
||||
const stockadesEntity = stockades.entities[stockades.staticSpawns.find((entry) => entry.id === stockadesBoss.id)!.entityId];
|
||||
|
||||
it("uses the party health curve for trash regardless of dungeon catalog", () => {
|
||||
const abbey = requireDungeonDefinition("forsaken-abbey");
|
||||
const trashFrom = (definition: typeof stockades) => {
|
||||
const spawn = definition.staticSpawns.find((entry) => definition.entities[entry.entityId].kind === "mob")!;
|
||||
return { entity: definition.entities[spawn.entityId], instanceId: spawn.id };
|
||||
};
|
||||
const stockadesTrash = trashFrom(stockades);
|
||||
const abbeyTrash = trashFrom(abbey);
|
||||
for (const source of ["wow", "rom", "coa"] as const) {
|
||||
const expected = dungeonEnemyHealthBaseline(5, source);
|
||||
expect(dungeonEnemyScaling(stockades, stockadesTrash.entity, stockadesTrash.instanceId,
|
||||
5, "normal", 1, source)).toMatchObject({ level: 5, maxHealth: expected });
|
||||
expect(dungeonEnemyScaling(abbey, abbeyTrash.entity, abbeyTrash.instanceId,
|
||||
5, "normal", 1, source)).toMatchObject({ level: 5, maxHealth: expected });
|
||||
}
|
||||
});
|
||||
|
||||
it("gives each level-three Stockades party its source-calibrated health minimum", () => {
|
||||
const easy = dungeonEnemyScaling(stockades, stockadesEntity, stockadesBoss.id, 3, "normal", 1, "wow");
|
||||
expect(easy).toMatchObject({ level: 4, maxHealth: 1300 });
|
||||
expect(easy).toMatchObject({ level: 4, maxHealth: 1365 });
|
||||
expect(dungeonEnemyScaling(stockades, stockadesEntity, stockadesBoss.id, 3, "normal", 10, "wow").maxHealth)
|
||||
.toBe(1300 * bossDifficultyMultipliers(10).health);
|
||||
.toBe(1365 * bossDifficultyMultipliers(10).health);
|
||||
// The dungeon catalog must not choose the companion power curve.
|
||||
expect(dungeonEnemyScaling(stockades, stockadesEntity, stockadesBoss.id, 3, "normal", 1, "rom").maxHealth).toBeCloseTo(7074.8);
|
||||
expect(dungeonEnemyScaling(stockades, stockadesEntity, stockadesBoss.id, 3, "normal", 1, "coa").maxHealth).toBe(10766);
|
||||
|
||||
Reference in new issue
Block a user