Files
healer-man/src/game/combatDamageProfile.ts
T
2026-10-02 10:38:12 -04:00

24 lines
892 B
TypeScript

import type { DamageSchool } from "./combatAuras";
/**
* A damage packet can carry more than one school tag. This is distinct from a
* single DamageSchool: for example, CoA's "Physical Dark" must remain both
* physical and Dark (represented by the project's shadow school mapping).
*/
export interface CombatDamageProfile {
readonly schools: readonly DamageSchool[];
}
/** CoA Dark is represented by the simulator's existing shadow school. */
export const ROM_PHYSICAL_DARK_DAMAGE_PROFILE = Object.freeze({
schools: Object.freeze(["physical", "shadow"] as const),
}) satisfies CombatDamageProfile;
/** A school-specific modifier/absorb matches a composite packet by either tag. */
export function combatDamageProfileMatchesSchool(
profile: CombatDamageProfile,
school: DamageSchool | undefined,
): boolean {
return school === undefined || profile.schools.includes(school);
}