24 lines
1.2 KiB
TypeScript
24 lines
1.2 KiB
TypeScript
import type { RomClassId, RomRaceId } from "../app/characterCatalog";
|
|
import type { PartyRole } from "./partyRoles";
|
|
|
|
interface RomFiveIdentity {
|
|
readonly name: string;
|
|
readonly classId: RomClassId;
|
|
readonly secondaryClassId: RomClassId;
|
|
readonly raceId: RomRaceId;
|
|
readonly role: PartyRole;
|
|
}
|
|
|
|
/** Named, race-legal identities shared by live NPCs and the targeted RoM builds. */
|
|
export const ROM_FIVE_IDENTITIES: readonly RomFiveIdentity[] = Object.freeze([
|
|
{ name: "Rorik", classId: "rom-knight", secondaryClassId: "rom-scout", raceId: "rom-human", role: "tank" },
|
|
{ name: "Serenna", classId: "rom-priest", secondaryClassId: "rom-knight", raceId: "rom-human", role: "healer" },
|
|
{ name: "Veyra", classId: "rom-rogue", secondaryClassId: "rom-warrior", raceId: "rom-human", role: "damage" },
|
|
{ name: "Caelan", classId: "rom-scout", secondaryClassId: "rom-rogue", raceId: "rom-elf", role: "damage" },
|
|
{ name: "Durnik", classId: "rom-mage", secondaryClassId: "rom-warlock", raceId: "rom-dwarf", role: "damage" },
|
|
]);
|
|
|
|
export function romFiveIdentity(classId: RomClassId, role: PartyRole): RomFiveIdentity | undefined {
|
|
return ROM_FIVE_IDENTITIES.find((identity) => identity.classId === classId && identity.role === role);
|
|
}
|