Update Healer Man server

This commit is contained in:
phenom committed 2026-09-30 09:57:13 -04:00
1 parent 35dfdaed61
commit 4fb7a0b9c8
161 files changed
+24618 -529

No files matched your search

+25 -25
View File
@@ -350,26 +350,26 @@ describe("accepted RoM Mage/Warlock dwarf pair", () => {
});
it("keeps Elemental Extraction's defense debuff on a critical-hit target", () => {
for (const id of ["rom-mage-primary-1", "rom-mage-primary-54"]) {
const attack = abilityById(id)!;
expect(romMageWarlockCriticalEffects(attack, new Set())).toEqual([]);
expect(romMageWarlockCriticalEffects(attack,
new Set([ROM_MAGE_WARLOCK_PASSIVE_TAGS.elementalExtraction]))).toEqual([
expect.objectContaining({
kind: "apply-aura", recipient: "ability-target",
aura: expect.objectContaining({
disposition: "debuff", durationMs: 10_000,
modifiers: expect.arrayContaining([
expect.objectContaining({ stat: "armor", value: -0.3 }),
expect.objectContaining({ stat: "magical-defense", value: -0.3 }),
]),
}),
const passive = new Set([ROM_MAGE_WARLOCK_PASSIVE_TAGS.elementalExtraction]);
expect(romMageWarlockCriticalEffects(abilityById("rom-mage-primary-1")!, passive)).toEqual([]);
const electricExplosion = abilityById("rom-mage-primary-54")!;
expect(romMageWarlockCriticalEffects(electricExplosion, new Set())).toEqual([]);
expect(romMageWarlockCriticalEffects(electricExplosion, passive)).toEqual([
expect.objectContaining({
kind: "apply-aura", recipient: "ability-target",
aura: expect.objectContaining({
disposition: "debuff", durationMs: 10_000,
modifiers: expect.arrayContaining([
expect.objectContaining({ stat: "armor", value: -0.3 }),
expect.objectContaining({ stat: "magical-defense", value: -0.3 }),
]),
}),
]);
}
}),
]);
});
it("triggers Elemental Extraction's target debuff on a live critical Flame hit", () => {
it("triggers Elemental Extraction's target debuff on a live critical Electric Explosion hit", () => {
initialize(79);
registerTarget("critical-extraction-dummy");
useCombatStore.setState((state) => ({
@@ -386,7 +386,7 @@ describe("accepted RoM Mage/Warlock dwarf pair", () => {
now: 1_000,
}).auras,
}));
expect(useCombatStore.getState().castAbility("rom-mage-primary-1", undefined, 1_000))
expect(useCombatStore.getState().castAbility("rom-mage-primary-54", undefined, 1_000))
.toMatchObject({ ok: true });
useCombatStore.getState().tick(0.1, 4_100);
expect(useCombatStore.getState().auras.some((aura) => aura.targetId === "critical-extraction-dummy"
@@ -448,19 +448,19 @@ describe("accepted RoM Mage/Warlock dwarf pair", () => {
expect((reduced.threat - 1) / (baseline.threat - 1)).toBeCloseTo(0.9, 5);
});
it("applies Elemental Extraction's defense reduction to the target's live magic mitigation", () => {
it("applies Elemental Extraction's defense reduction to Electric Explosion's live magic mitigation", () => {
const targetId = "extraction-defense-dummy";
const castFlame = (useDebuff: boolean) => {
const castElectricExplosion = (useDebuff: boolean) => {
initialize(60);
useCombatStore.getState().registerMob(targetId, {
name: targetId,
maxHealth: 100_000,
resistances: { fire: 1_000 },
resistances: { nature: 1_400 },
});
setMobPosition(targetId, [3, 0, 0]);
useCombatStore.getState().selectMob(targetId);
if (useDebuff) {
const rider = romMageWarlockCriticalEffects(abilityById("rom-mage-primary-1")!,
const rider = romMageWarlockCriticalEffects(abilityById("rom-mage-primary-54")!,
new Set([ROM_MAGE_WARLOCK_PASSIVE_TAGS.elementalExtraction]))[0];
expect(rider.kind).toBe("apply-aura");
if (rider.kind !== "apply-aura") throw new Error("Elemental Extraction debuff missing");
@@ -473,14 +473,14 @@ describe("accepted RoM Mage/Warlock dwarf pair", () => {
}).auras,
}));
}
expect(useCombatStore.getState().castAbility("rom-mage-primary-1", undefined, 1_000))
expect(useCombatStore.getState().castAbility("rom-mage-primary-54", undefined, 1_000))
.toMatchObject({ ok: true });
useCombatStore.getState().tick(0.1, 4_100);
return useCombatStore.getState().mobs[targetId]!.maxHealth
- useCombatStore.getState().mobs[targetId]!.health;
};
const baselineDamage = castFlame(false);
const reducedDefenseDamage = castFlame(true);
const baselineDamage = castElectricExplosion(false);
const reducedDefenseDamage = castElectricExplosion(true);
expect(baselineDamage).toBeGreaterThan(0);
expect(reducedDefenseDamage).toBeGreaterThan(baselineDamage);
});