forked from phenom/healer-man
Update Healer Man server
This commit is contained in:
1 parent
4c768fbec6
commit
b16821e92e
330 files changed
+35406
-1760
No files matched your search
@@ -0,0 +1,58 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { talentModifiersForRanks } from "./talentModifiers";
|
||||
import {
|
||||
WOW335_DRUID_PREDATORY_INSTINCTS_TALENT_ID,
|
||||
wow335DruidPredatoryInstinctsAreaDamageMultiplier,
|
||||
wow335DruidPredatoryInstinctsCriticalDamageMultiplier,
|
||||
wow335DruidPredatoryInstinctsRankProfile,
|
||||
} from "./wow335DruidPredatoryInstinctsRuntime";
|
||||
|
||||
describe("WoW Druid Predatory Instincts generated ranks", () => {
|
||||
it.each([
|
||||
[1, 5, 4],
|
||||
[2, 10, 7],
|
||||
[3, 15, 10],
|
||||
] as const)("reads rank %i's critical and area-damage values from the generated tooltip", (
|
||||
rank,
|
||||
criticalDamageBonusPercent,
|
||||
areaDamageTakenReductionPercent,
|
||||
) => {
|
||||
expect(wow335DruidPredatoryInstinctsRankProfile(rank)).toEqual({
|
||||
criticalDamageBonusPercent,
|
||||
areaDamageTakenReductionPercent,
|
||||
});
|
||||
});
|
||||
|
||||
it("adds the generated bonus to critical damage only while in Cat Form", () => {
|
||||
expect(wow335DruidPredatoryInstinctsCriticalDamageMultiplier(2, 1, "cat")).toBeCloseTo(2.05);
|
||||
expect(wow335DruidPredatoryInstinctsCriticalDamageMultiplier(2, 2, "cat")).toBeCloseTo(2.1);
|
||||
expect(wow335DruidPredatoryInstinctsCriticalDamageMultiplier(2, 3, "cat")).toBeCloseTo(2.15);
|
||||
expect(wow335DruidPredatoryInstinctsCriticalDamageMultiplier(2, 3, "bear")).toBe(2);
|
||||
expect(wow335DruidPredatoryInstinctsCriticalDamageMultiplier(2, 3, null)).toBe(2);
|
||||
expect(wow335DruidPredatoryInstinctsCriticalDamageMultiplier(1.5, 1, "cat")).toBeCloseTo(1.525);
|
||||
});
|
||||
|
||||
it("reduces only area-attack damage received in Cat Form", () => {
|
||||
expect(wow335DruidPredatoryInstinctsAreaDamageMultiplier(1, "cat", true)).toBeCloseTo(0.96);
|
||||
expect(wow335DruidPredatoryInstinctsAreaDamageMultiplier(2, "cat", true)).toBeCloseTo(0.93);
|
||||
expect(wow335DruidPredatoryInstinctsAreaDamageMultiplier(3, "cat", true)).toBeCloseTo(0.9);
|
||||
expect(wow335DruidPredatoryInstinctsAreaDamageMultiplier(3, "cat", false)).toBe(1);
|
||||
expect(wow335DruidPredatoryInstinctsAreaDamageMultiplier(3, "bear", true)).toBe(1);
|
||||
expect(wow335DruidPredatoryInstinctsAreaDamageMultiplier(3, null, true)).toBe(1);
|
||||
});
|
||||
|
||||
it("clamps malformed rank values and leaves the multiplier unchanged", () => {
|
||||
expect(wow335DruidPredatoryInstinctsRankProfile(0)).toBeNull();
|
||||
expect(wow335DruidPredatoryInstinctsRankProfile(Number.NaN)).toBeNull();
|
||||
expect(wow335DruidPredatoryInstinctsRankProfile(99)).toEqual({
|
||||
criticalDamageBonusPercent: 15,
|
||||
areaDamageTakenReductionPercent: 10,
|
||||
});
|
||||
expect(wow335DruidPredatoryInstinctsAreaDamageMultiplier(-1, "cat", true)).toBe(1);
|
||||
});
|
||||
|
||||
it("keeps Cat Form and area-delivery clauses out of always-on scalar modifiers", () => {
|
||||
expect(talentModifiersForRanks({ [WOW335_DRUID_PREDATORY_INSTINCTS_TALENT_ID]: 3 }, "druid"))
|
||||
.toEqual([]);
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user