forked from phenom/healer-man
updating buff and debuff icons. separated COA classes from WoW classes on the character creation screen
This commit is contained in:
1 parent
b5c9bce1aa
commit
c00f3211ea
39 files changed
+2037
-208
No files matched your search
@@ -8,12 +8,14 @@ import {
|
||||
classIconUrl,
|
||||
classesForRace,
|
||||
clampAppearance,
|
||||
contentCategoryForClass,
|
||||
normalizeCharacterName,
|
||||
randomAppearance,
|
||||
supportedGenders,
|
||||
totalRaceClassCombinations,
|
||||
validateCharacterName,
|
||||
} from "./characterCatalog";
|
||||
import { CONTENT_CATEGORIES } from "./contentCategories";
|
||||
|
||||
describe("wow335a character catalog", () => {
|
||||
it("limits normal play to the live-verified race roster", () => {
|
||||
@@ -34,9 +36,13 @@ describe("wow335a character catalog", () => {
|
||||
|
||||
it("matches the extracted Ascension playable catalog", () => {
|
||||
const wowRaces = RACES.filter((race) => race.categoryId !== "rom");
|
||||
const wowClasses = CLASSES.filter((characterClass) => characterClass.categoryId !== "rom");
|
||||
const azerothClasses = CLASSES.filter((characterClass) => characterClass.categoryId !== "rom");
|
||||
const wowClasses = CLASSES.filter((characterClass) => contentCategoryForClass(characterClass.id) === "wow");
|
||||
const coaClasses = CLASSES.filter((characterClass) => contentCategoryForClass(characterClass.id) === "coa");
|
||||
expect(wowRaces).toHaveLength(27);
|
||||
expect(wowClasses).toHaveLength(31);
|
||||
expect(azerothClasses).toHaveLength(31);
|
||||
expect(wowClasses).toHaveLength(10);
|
||||
expect(coaClasses).toHaveLength(21);
|
||||
expect(COA_CLASS_IDS).toHaveLength(21);
|
||||
expect(wowRaces.reduce((total, race) => total + classesForRace(race.id).length, 0)).toBe(740);
|
||||
expect(totalRaceClassCombinations()).toBe(758);
|
||||
@@ -48,7 +54,7 @@ describe("wow335a character catalog", () => {
|
||||
"Forest Troll", "Taunka", "Northrend Skeleton", "Ice Troll", "Earthen",
|
||||
"Human Cultist",
|
||||
]);
|
||||
expect(COA_CLASS_IDS.map((id) => wowClasses.find((entry) => entry.id === id)?.name)).toEqual([
|
||||
expect(COA_CLASS_IDS.map((id) => coaClasses.find((entry) => entry.id === id)?.name)).toEqual([
|
||||
"Barbarian", "Witch Doctor", "Felsworn", "Witch Hunter", "Stormbringer",
|
||||
"Knight of Xoroth", "Guardian", "Templar", "Bloodmage", "Ranger",
|
||||
"Chronomancer", "Necromancer", "Pyromancer", "Cultist", "Starcaller",
|
||||
@@ -56,16 +62,25 @@ describe("wow335a character catalog", () => {
|
||||
]);
|
||||
});
|
||||
|
||||
it("separates default WoW, custom CoA, and RoM character creation categories", () => {
|
||||
expect(CONTENT_CATEGORIES.map((category) => category.id)).toEqual(["wow", "rom", "coa"]);
|
||||
expect(classesForRace("human", "wow").map((entry) => entry.id)).toContain("priest");
|
||||
expect(classesForRace("human", "wow").map((entry) => entry.id)).not.toContain("barbarian");
|
||||
expect(classesForRace("human", "coa").map((entry) => entry.id)).toContain("barbarian");
|
||||
expect(classesForRace("human", "coa").map((entry) => entry.id)).not.toContain("priest");
|
||||
expect(classesForRace("rom-human", "rom").map((entry) => entry.id)).toContain("rom-priest");
|
||||
});
|
||||
|
||||
it("applies the race eligibility rows from CharBaseInfo.dbc", () => {
|
||||
const wowClassCount = CLASSES.filter((characterClass) => characterClass.categoryId !== "rom").length;
|
||||
expect(classesForRace("human").map((entry) => entry.id)).toContain("barbarian");
|
||||
expect(classesForRace("human").map((entry) => entry.id)).not.toContain("felsworn");
|
||||
expect(classesForRace("draenei").map((entry) => entry.id)).toContain("felsworn");
|
||||
expect(classesForRace("draenei").map((entry) => entry.id)).toContain("knight-of-xoroth");
|
||||
expect(classesForRace("troll").map((entry) => entry.id)).toContain("venomancer");
|
||||
expect(classesForRace("troll").map((entry) => entry.id)).not.toContain("knight-of-xoroth");
|
||||
expect(classesForRace("goblin")).toHaveLength(wowClassCount);
|
||||
expect(classesForRace("human-cultist")).toHaveLength(wowClassCount);
|
||||
expect(classesForRace("human", "coa").map((entry) => entry.id)).toContain("barbarian");
|
||||
expect(classesForRace("human", "coa").map((entry) => entry.id)).not.toContain("felsworn");
|
||||
expect(classesForRace("draenei", "coa").map((entry) => entry.id)).toContain("felsworn");
|
||||
expect(classesForRace("draenei", "coa").map((entry) => entry.id)).toContain("knight-of-xoroth");
|
||||
expect(classesForRace("troll", "coa").map((entry) => entry.id)).toContain("venomancer");
|
||||
expect(classesForRace("troll", "coa").map((entry) => entry.id)).not.toContain("knight-of-xoroth");
|
||||
expect(classesForRace("goblin", "wow")).toHaveLength(10);
|
||||
expect(classesForRace("goblin", "coa")).toHaveLength(21);
|
||||
expect(classesForRace("human-cultist")).toHaveLength(31);
|
||||
expect(supportedGenders("vrykul")).toEqual(["male"]);
|
||||
expect(supportedGenders("earthen")).toEqual(["male", "female"]);
|
||||
});
|
||||
|
||||
Reference in new issue
Block a user