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); }