29 lines
930 B
TypeScript
29 lines
930 B
TypeScript
export interface RuneWakerBossObjectiveSource {
|
|
readonly id: string;
|
|
readonly sourceSpawnId: number;
|
|
readonly position: readonly [number, number, number];
|
|
readonly [key: string]: unknown;
|
|
}
|
|
|
|
export interface RuneWakerSourceAuthoredObjectiveOrder {
|
|
readonly kind: "source-authored";
|
|
readonly spawnIds: readonly number[];
|
|
readonly evidence: readonly string[];
|
|
}
|
|
|
|
export interface RuneWakerObjectiveOrderProvenance {
|
|
readonly authoritative: boolean;
|
|
readonly kind: "source-authored" | "healerMan-distance-derived";
|
|
readonly evidence: readonly string[];
|
|
readonly sourceSpawnIds?: readonly number[];
|
|
}
|
|
|
|
export function orderBossObjectives<T extends RuneWakerBossObjectiveSource>(
|
|
rawBosses: readonly T[],
|
|
entrance: readonly [number, number, number],
|
|
configuredOrder?: RuneWakerSourceAuthoredObjectiveOrder,
|
|
): {
|
|
readonly ordered: readonly T[];
|
|
readonly provenance: RuneWakerObjectiveOrderProvenance;
|
|
};
|