Update Healer Man server
This commit is contained in:
1 parent
35dfdaed61
commit
4fb7a0b9c8
161 files changed
+24618
-529
No files matched your search
@@ -0,0 +1,67 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import {
|
||||
WOW335_WARRIOR_BLOOD_CRAZE_DURATION_MS,
|
||||
wow335WarriorBloodCrazeProfile,
|
||||
wow335WarriorSecondWindProfile,
|
||||
} from "./wow335WarriorTalentRuntime";
|
||||
|
||||
describe("WoW 3.3.5 Warrior Blood Craze tooltip mechanics", () => {
|
||||
it.each([
|
||||
[1, 3, 2],
|
||||
[2, 1.5, 4],
|
||||
[3, 1, 6],
|
||||
] as const)("distributes rank %i's base-health heal across its six-second duration", (rank, intervalSeconds, ticks) => {
|
||||
const profile = wow335WarriorBloodCrazeProfile(10_000, rank, false);
|
||||
|
||||
expect(profile).toMatchObject({
|
||||
rank,
|
||||
ticks,
|
||||
intervalMs: intervalSeconds * 1_000,
|
||||
totalHealing: rank * 100,
|
||||
healingPerTick: rank * 100 / ticks,
|
||||
});
|
||||
expect(profile!.ticks * profile!.intervalMs).toBe(WOW335_WARRIOR_BLOOD_CRAZE_DURATION_MS);
|
||||
});
|
||||
|
||||
it("triples the tooltip-defined total while an Enrage effect is active", () => {
|
||||
expect(wow335WarriorBloodCrazeProfile(10_000, 2, true)).toMatchObject({
|
||||
rank: 2,
|
||||
totalHealing: 600,
|
||||
healingPerTick: 150,
|
||||
});
|
||||
});
|
||||
|
||||
it("does not create a profile without an allocated rank or valid base health", () => {
|
||||
expect(wow335WarriorBloodCrazeProfile(10_000, 0, false)).toBeNull();
|
||||
expect(wow335WarriorBloodCrazeProfile(0, 3, false)).toBeNull();
|
||||
});
|
||||
});
|
||||
|
||||
describe("WoW 3.3.5 Warrior Second Wind tooltip mechanics", () => {
|
||||
it.each([
|
||||
[1, 8],
|
||||
[2, 16],
|
||||
[3, 24],
|
||||
] as const)("builds rank %i from its generated tooltip heal", (rank, healthPercent) => {
|
||||
const profile = wow335WarriorSecondWindProfile(10_000, rank);
|
||||
|
||||
expect(profile).toMatchObject({
|
||||
rank,
|
||||
healthThresholdPercent: 35,
|
||||
procChancePercent: 100,
|
||||
durationMs: 12_000,
|
||||
cooldownMs: 30_000,
|
||||
ticks: 6,
|
||||
intervalMs: 2_000,
|
||||
totalHealing: healthPercent * 100,
|
||||
healingPerTick: healthPercent * 100 / 6,
|
||||
});
|
||||
expect(profile!.ticks * profile!.intervalMs).toBe(profile!.durationMs);
|
||||
expect(profile!.tickAmounts.reduce((total, amount) => total + amount, 0)).toBe(profile!.totalHealing);
|
||||
});
|
||||
|
||||
it("does not create a profile without a learned rank or valid base health", () => {
|
||||
expect(wow335WarriorSecondWindProfile(10_000, 0)).toBeNull();
|
||||
expect(wow335WarriorSecondWindProfile(0, 3)).toBeNull();
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user