Release v0.1.4 2026-07-12
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { createClassInventory } from "./healers";
|
||||
import { BOSS_ORDER } from "./bossCatalog";
|
||||
import { AVAILABLE_BOSS_IDS } from "./bossCatalog";
|
||||
import { useGameStore } from "./store";
|
||||
import type { BossId } from "./types";
|
||||
|
||||
@@ -26,15 +26,15 @@ function simulateControlledBattle(bossIds: readonly [BossId, BossId], maxSeconds
|
||||
}
|
||||
|
||||
describe("full-mechanics dual-boss battle simulations", () => {
|
||||
const combinations: readonly (readonly [BossId, BossId])[] = BOSS_ORDER.flatMap((first, index) =>
|
||||
BOSS_ORDER.slice(index + 1).map((second) => [first, second] as const),
|
||||
const combinations: readonly (readonly [BossId, BossId])[] = AVAILABLE_BOSS_IDS.flatMap((first, index) =>
|
||||
AVAILABLE_BOSS_IDS.slice(index + 1).map((second) => [first, second] as const),
|
||||
);
|
||||
|
||||
it.each(combinations)("party rotations defeat %s + %s", (first, second) => {
|
||||
const result = simulateControlledBattle([first, second]);
|
||||
expect(result.phase).toBe("victory");
|
||||
expect(result.time).toBeGreaterThan(70);
|
||||
expect(result.time).toBeLessThan(110);
|
||||
expect(result.time).toBeGreaterThanOrEqual(50);
|
||||
expect(result.time).toBeLessThanOrEqual(100);
|
||||
for (const memberId of ["brann", "nia", "orin", "vale"] as const) expect(result.damageBySource[memberId].damageDone).toBeGreaterThan(0);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user