Release Healer Man 0.1.14
This commit is contained in:
1 parent
67d7a8ebe7
commit
7b41b102fa
147 files changed
+169892
-1342
No files matched your search
@@ -167,6 +167,7 @@ describe("generated dungeon campaign catalog", () => {
|
||||
"Fear",
|
||||
"Magic's Bane",
|
||||
"Corrupt Soul",
|
||||
"Soulstorm",
|
||||
]);
|
||||
expect(attackNames(culling!, "Mal'Ganis")).toEqual([
|
||||
"Basic Attack",
|
||||
@@ -204,6 +205,49 @@ describe("generated dungeon campaign catalog", () => {
|
||||
});
|
||||
});
|
||||
|
||||
it("compiles Archaedas's timed and health-based encounter mechanics", () => {
|
||||
const uldaman = generated.definitions.find((dungeon) => dungeon.id === "uldaman")!;
|
||||
const archaedas = Object.values(uldaman.entities).find(
|
||||
(entity) => entity.name === "Archaedas",
|
||||
) as unknown as {
|
||||
readonly combat: {
|
||||
readonly mechanicIds: readonly string[];
|
||||
readonly attacks: ReadonlyArray<{
|
||||
readonly id: string;
|
||||
readonly initialCooldownMs?: readonly [number, number];
|
||||
readonly repeatCooldownMs?: readonly [number, number];
|
||||
readonly condition?: { readonly kind: string; readonly maximum?: number };
|
||||
readonly effect?: { readonly kind: string; readonly creatureEntry?: number; readonly count?: number };
|
||||
readonly telegraph?: { readonly shape: string; readonly anchor: string; readonly radius?: number };
|
||||
}>;
|
||||
};
|
||||
};
|
||||
expect(archaedas.combat.mechanicIds).toEqual([
|
||||
"archaedas-awaken-earthen-custodian",
|
||||
"archaedas-ground-tremor",
|
||||
"archaedas-awaken-earthen-guardians",
|
||||
"archaedas-awaken-vault-warders",
|
||||
]);
|
||||
expect(archaedas.combat.attacks.find((attack) => attack.id === "archaedas-ground-tremor"))
|
||||
.toMatchObject({
|
||||
initialCooldownMs: [0, 10_000],
|
||||
repeatCooldownMs: [14_000, 20_000],
|
||||
telegraph: { shape: "circle", anchor: "source", radius: 18 },
|
||||
});
|
||||
expect(archaedas.combat.attacks.find(
|
||||
(attack) => attack.id === "archaedas-awaken-earthen-guardians",
|
||||
)).toMatchObject({
|
||||
condition: { kind: "self-health-percent", maximum: 70 },
|
||||
effect: { kind: "summon", creatureEntry: 7076, count: 6 },
|
||||
});
|
||||
expect(archaedas.combat.attacks.find(
|
||||
(attack) => attack.id === "archaedas-awaken-vault-warders",
|
||||
)).toMatchObject({
|
||||
condition: { kind: "self-health-percent", maximum: 40 },
|
||||
effect: { kind: "summon", creatureEntry: 10120, count: 2 },
|
||||
});
|
||||
});
|
||||
|
||||
it("does not leak outdoor zones, arenas, or raids into the dungeon browser", () => {
|
||||
const ids = new Set(generated.definitions.map((dungeon) => dungeon.id));
|
||||
for (const excluded of [
|
||||
|
||||
Reference in new issue
Block a user