26 lines
787 B
TypeScript
26 lines
787 B
TypeScript
import type { AuraDisposition, DispelCategory } from "../game/combatAuras";
|
|
|
|
export interface StatusEffectInspection {
|
|
readonly id: string;
|
|
readonly name: string;
|
|
readonly disposition: AuraDisposition;
|
|
readonly description: string;
|
|
readonly remainingLabel: string;
|
|
readonly stacks: number;
|
|
readonly targetLabel?: string;
|
|
readonly dispelCategory?: DispelCategory;
|
|
}
|
|
|
|
export type StatusEffectInspectHandler = (effect: StatusEffectInspection | null) => void;
|
|
|
|
export function timedEffectDescription(
|
|
kind: "dot" | "hot",
|
|
authoredDescription?: string,
|
|
): string {
|
|
const authored = authoredDescription?.trim();
|
|
if (authored) return authored;
|
|
return kind === "hot"
|
|
? "Restores health periodically while active."
|
|
: "Deals damage periodically while active.";
|
|
}
|