Update Healer Man server
This commit is contained in:
1 parent
f8314e7de1
commit
1fedb9368d
76 files changed
+20556
-2523
No files matched your search
@@ -3,16 +3,55 @@ import {
|
||||
PARTY_TALENT_SPECIALIZATIONS,
|
||||
partyTalentRanksForLevel,
|
||||
} from "./partyTalents";
|
||||
import { runtimePartyTalentRanksForLevel } from "./partyTalentRuntime";
|
||||
import {
|
||||
runtimePartyTalentProvenanceForLevel,
|
||||
runtimePartyTalentProfiles,
|
||||
runtimePartyTalentRanksForLevel,
|
||||
} from "./partyTalentRuntime";
|
||||
|
||||
describe("generated party talent runtime plans", () => {
|
||||
it("match the catalog-validated authoring plans at every player level", () => {
|
||||
it("keeps the prior catalog-validated authoring plans as named profiles", () => {
|
||||
for (const { classId, specialization } of PARTY_TALENT_SPECIALIZATIONS) {
|
||||
const executable = runtimePartyTalentProfiles(classId, specialization)
|
||||
.find((profile) => profile.source === "healer-man-generated");
|
||||
expect(executable).toBeDefined();
|
||||
for (let level = 1; level <= 80; level += 1) {
|
||||
expect(runtimePartyTalentRanksForLevel(classId, specialization, level)).toEqual(
|
||||
expect(runtimePartyTalentRanksForLevel(classId, specialization, level, executable!.id)).toEqual(
|
||||
partyTalentRanksForLevel(classId, specialization, level),
|
||||
);
|
||||
}
|
||||
}
|
||||
}, 15_000);
|
||||
|
||||
it("provides a default Playerbots profile and a distinct character for every build", () => {
|
||||
const names = new Set<string>();
|
||||
for (const { classId, specialization } of PARTY_TALENT_SPECIALIZATIONS) {
|
||||
const profiles = runtimePartyTalentProfiles(classId, specialization);
|
||||
expect(profiles).toHaveLength(2);
|
||||
const playerbots = profiles.find((profile) => profile.defaultForSpecialization);
|
||||
expect(playerbots?.source).toBe("azerothcore-playerbots");
|
||||
expect(playerbots?.sourceVersion).toBe("531282e");
|
||||
expect(playerbots?.milestones.length).toBeGreaterThan(0);
|
||||
expect(playerbots?.levelPlans.length).toBe(playerbots?.milestones.length);
|
||||
expect(playerbots?.levelPlans[0]?.minimumLevel).toBe(1);
|
||||
expect(playerbots!.sourcePointsRetained).toBeLessThanOrEqual(playerbots!.sourcePointCount!);
|
||||
expect(playerbots!.sourcePointsRetained! + playerbots!.fallbackPointCount).toBe(71);
|
||||
const level79 = runtimePartyTalentProvenanceForLevel(playerbots!, 79);
|
||||
const level80 = runtimePartyTalentProvenanceForLevel(playerbots!, 80);
|
||||
expect(level79.sourceLevels[0]).toBeLessThanOrEqual(79);
|
||||
expect(level80.sourceLevels).toEqual([80]);
|
||||
expect(level79.sourcePointsRetained! + level79.fallbackPointCount).toBe(70);
|
||||
expect(level80.sourcePointsRetained! + level80.fallbackPointCount).toBe(71);
|
||||
for (const profile of profiles) {
|
||||
expect(names.has(profile.characterName)).toBe(false);
|
||||
names.add(profile.characterName);
|
||||
for (const level of [1, 10, 20, 40, 60, 70, 79, 80]) {
|
||||
const ranks = runtimePartyTalentRanksForLevel(classId, specialization, level, profile.id);
|
||||
expect(Object.values(ranks).reduce((total, rank) => total + rank, 0))
|
||||
.toBe(Math.max(0, level - 9));
|
||||
}
|
||||
}
|
||||
}
|
||||
expect(names.size).toBe(PARTY_TALENT_SPECIALIZATIONS.length * 2);
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user