Update Healer Man server

This commit is contained in:
phenom committed 2026-10-04 13:13:35 -04:00
1 parent 39458d5de6
commit 6cc1b9217f
203 files changed
+133929 -31271

No files matched your search

+56
View File
@@ -0,0 +1,56 @@
import type { CoaClassId } from "../app/characterCatalog";
import type { PartyRole } from "./partyRoles";
export type CoaFirstPartySeatRole = "tank" | "healer" | "melee" | "ranged" | "caster";
export interface CoaFirstPartyMemberDefinition {
readonly classId: CoaClassId;
readonly specializationId: string;
readonly specialization: string;
/** Seat label; melee, ranged, and caster all use the shared damage role in combat. */
readonly role: CoaFirstPartySeatRole;
readonly partyRole: PartyRole;
}
/** Fixed targeted diagnostic roster. This does not affect readiness or party pools. */
export const COA_FIRST_PARTY_MEMBERS: readonly CoaFirstPartyMemberDefinition[] = Object.freeze([
Object.freeze({
classId: "guardian",
specializationId: "guardian:vanguard",
specialization: "Vanguard",
role: "tank",
partyRole: "tank",
}),
Object.freeze({
classId: "witch-doctor",
specializationId: "witch-doctor:brewing",
specialization: "Brewing",
role: "healer",
partyRole: "healer",
}),
Object.freeze({
classId: "barbarian",
specializationId: "barbarian:brutality",
specialization: "Brutality",
role: "melee",
partyRole: "damage",
}),
Object.freeze({
classId: "ranger",
specializationId: "ranger:archery",
specialization: "Archery",
role: "ranged",
partyRole: "damage",
}),
Object.freeze({
classId: "pyromancer",
specializationId: "pyromancer:incineration",
specialization: "Incineration",
role: "caster",
partyRole: "damage",
}),
]);
export const COA_FIRST_PARTY_CLASS_IDS: readonly CoaClassId[] = Object.freeze([
...new Set(COA_FIRST_PARTY_MEMBERS.map((member) => member.classId)),
]);