Files
healer-man/src/game/rotationTelemetry.ts
T
2026-09-19 21:01:51 -04:00

24 lines
785 B
TypeScript

export interface RotationDecisionTelemetryEvent {
readonly occurredAt: number;
readonly actorId: string;
readonly abilityId: string;
readonly targetId: string | null;
readonly profileId: string;
readonly ruleId: string;
readonly reason: string;
}
type RotationDecisionListener = (event: RotationDecisionTelemetryEvent) => void;
const listeners = new Set<RotationDecisionListener>();
export function subscribeRotationDecisions(listener: RotationDecisionListener): () => void {
listeners.add(listener);
return () => listeners.delete(listener);
}
/** Observational only: listeners cannot alter or delay the selected action. */
export function emitRotationDecision(event: RotationDecisionTelemetryEvent): void {
for (const listener of listeners) listener(event);
}