Release Healer Man 0.1.21

This commit is contained in:
phenom committed 2026-09-08 10:40:26 -04:00
1 parent 699fc858c9
commit f6f2375145
210 files changed
+976039 -6247

No files matched your search

+42
View File
@@ -172,6 +172,48 @@ describe("server-backed enemy ability runtime", () => {
expect(summonIds.every((id) => getMobPosition(id) === null)).toBe(true);
});
it("uses content-authored summon namespaces and spawn-group ownership", () => {
useCombatStore.getState().registerMob("wave-controller", {
name: "Wave Controller",
maxHealth: 1_000,
attacks: [{
id: "release-wave",
name: "Release Wave",
delivery: "area",
target: "self",
school: "shadow",
animation: "cast",
range: 0,
cooldownMs: 60_000,
initialCooldownMs: [0, 0],
repeatCooldownMs: [60_000, 60_000],
maximumCasts: 1,
damageMultiplier: 0,
effect: {
kind: "summon",
creatureEntry: 5048,
count: 2,
entityId: "forsaken-abbey:necromage:add",
spawnGroupId: "forsaken-abbey:necromage:wave-one",
},
}],
});
setMobPosition("wave-controller", [2, 0, 0]);
useCombatStore.getState().damageMob("wave-controller", 1, 1_000);
useCombatStore.getState().advanceMobCombat(1_000, [0, 0, 0]);
useCombatStore.getState().advanceMobCombat(2_500, [0, 0, 0]);
const summonIds = Object.keys(useCombatStore.getState().mobs)
.filter((id) => id.startsWith("forsaken-abbey:necromage:add:"));
expect(summonIds).toEqual([
"forsaken-abbey:necromage:add:1:1",
"forsaken-abbey:necromage:add:1:2",
]);
expect(summonIds.every((id) => (
useCombatStore.getState().mobs[id].spawnGroupId === "forsaken-abbey:necromage:wave-one"
))).toBe(true);
});
it("applies a modular target aura as a dispellable player debuff", () => {
useCombatStore.getState().registerMob("runewaker-debuffer", {
name: "RuneWaker Debuffer",