forked from phenom/healer-man
Release Healer Man 0.1.46
This commit is contained in:
1 parent
f82daf1c13
commit
9ff574ac0b
73 files changed
+33486
-174
No files matched your search
@@ -0,0 +1,172 @@
|
||||
import type { Vector3Tuple } from "./dungeonTypes";
|
||||
|
||||
export type DungeonSessionMode = "play" | "spectate-live" | "spectate-replay";
|
||||
export type DungeonSimulationMode = "full-combat" | "navigation-only";
|
||||
export type DungeonSimulationSpeed = 0.5 | 1 | 2 | 4;
|
||||
export type DungeonSpectatorCameraMode = "follow-leader" | "free-fly";
|
||||
export type DungeonRouteReviewStatus = "Candidate" | "Approved" | "NeedsWork";
|
||||
export type DungeonSimulationResult = "completed" | "wiped" | "stopped" | "recording-limit";
|
||||
export type DungeonSimulationFindingSeverity = "info" | "warning" | "critical";
|
||||
|
||||
export interface DungeonRouteAction {
|
||||
readonly id: string;
|
||||
readonly checkpointIndex: number;
|
||||
readonly kind: "interact-world-object";
|
||||
readonly objectId: string;
|
||||
}
|
||||
|
||||
export interface DungeonRouteLeg {
|
||||
readonly id: string;
|
||||
readonly objectiveId: string;
|
||||
readonly objectiveName: string;
|
||||
readonly checkpoints: readonly Vector3Tuple[];
|
||||
readonly expectedDistance: number;
|
||||
readonly corridorPlanarDistance: number;
|
||||
readonly corridorVerticalDistance: number;
|
||||
readonly actions: readonly DungeonRouteAction[];
|
||||
}
|
||||
|
||||
export interface DungeonRouteDefinitionV1 {
|
||||
readonly schemaVersion: 1;
|
||||
readonly id: string;
|
||||
readonly dungeonId: string;
|
||||
readonly mapId: number;
|
||||
readonly hash: string;
|
||||
readonly generationStatus: "Candidate" | "Rejected";
|
||||
readonly generationIssues: readonly string[];
|
||||
readonly legs: readonly DungeonRouteLeg[];
|
||||
}
|
||||
|
||||
export interface DungeonRouteCatalogV1 {
|
||||
readonly schemaVersion: 1;
|
||||
readonly generatedAt: string;
|
||||
readonly source: {
|
||||
readonly kind: "playerbots-landmark-reference";
|
||||
readonly auditReport: string;
|
||||
readonly note: string;
|
||||
};
|
||||
readonly routes: readonly DungeonRouteDefinitionV1[];
|
||||
}
|
||||
|
||||
export interface DungeonRouteApproval {
|
||||
readonly dungeonId: string;
|
||||
readonly routeId: string;
|
||||
readonly routeHash: string;
|
||||
readonly reviewedAt: number;
|
||||
}
|
||||
|
||||
export interface DungeonRouteReview {
|
||||
readonly dungeonId: string;
|
||||
readonly routeId: string;
|
||||
readonly routeHash: string;
|
||||
readonly status: DungeonRouteReviewStatus;
|
||||
readonly note: string | null;
|
||||
readonly criticalOverrideNote: string | null;
|
||||
readonly reviewedBy: string;
|
||||
readonly reviewedAt: number;
|
||||
readonly revision: number;
|
||||
}
|
||||
|
||||
export interface DungeonSimulationFinding {
|
||||
readonly id: string;
|
||||
readonly atMs: number;
|
||||
readonly severity: DungeonSimulationFindingSeverity;
|
||||
readonly code: string;
|
||||
readonly message: string;
|
||||
readonly position?: Vector3Tuple;
|
||||
readonly actorId?: string;
|
||||
readonly objectiveId?: string;
|
||||
readonly checkpointIndex?: number;
|
||||
readonly actionId?: string;
|
||||
}
|
||||
|
||||
export interface DungeonSimulationPull {
|
||||
readonly atMs: number;
|
||||
readonly mobIds: readonly string[];
|
||||
readonly routeLegId: string | null;
|
||||
readonly position: Vector3Tuple;
|
||||
readonly classification: "expected" | "off-route" | "theoretical";
|
||||
}
|
||||
|
||||
export interface DungeonSimulationActorSnapshot {
|
||||
readonly id: string;
|
||||
readonly position: Vector3Tuple;
|
||||
readonly yaw: number;
|
||||
readonly health: number;
|
||||
readonly maxHealth: number;
|
||||
readonly targetId: string | null;
|
||||
readonly status: string;
|
||||
}
|
||||
|
||||
export interface DungeonReplayFrame {
|
||||
readonly atMs: number;
|
||||
readonly keyframe: boolean;
|
||||
readonly actors: readonly DungeonSimulationActorSnapshot[];
|
||||
readonly objectiveId: string | null;
|
||||
readonly checkpointIndex: number;
|
||||
}
|
||||
|
||||
export interface DungeonSimulationReportV1 {
|
||||
readonly schemaVersion: 1;
|
||||
readonly dungeonId: string;
|
||||
readonly routeId: string;
|
||||
readonly routeHash: string;
|
||||
readonly seed: string;
|
||||
readonly mode: DungeonSimulationMode;
|
||||
readonly startedAt: number;
|
||||
readonly durationMs: number;
|
||||
readonly result: DungeonSimulationResult;
|
||||
readonly roster: readonly { readonly id: string; readonly name: string; readonly role: string; readonly classId: string }[];
|
||||
readonly findings: readonly DungeonSimulationFinding[];
|
||||
readonly pulls: readonly DungeonSimulationPull[];
|
||||
readonly recoveries: number;
|
||||
readonly objectiveTimings: readonly {
|
||||
readonly objectiveId: string;
|
||||
readonly startedAtMs: number;
|
||||
readonly completedAtMs: number | null;
|
||||
}[];
|
||||
readonly actionTimings: readonly {
|
||||
readonly actionId: string;
|
||||
readonly objectiveId: string | null;
|
||||
readonly atMs: number;
|
||||
}[];
|
||||
readonly pathDistances: readonly {
|
||||
readonly objectiveId: string;
|
||||
readonly actualDistance: number;
|
||||
}[];
|
||||
readonly finalObjectiveId: string | null;
|
||||
readonly finalCheckpointIndex: number;
|
||||
readonly finalState: readonly DungeonSimulationActorSnapshot[];
|
||||
}
|
||||
|
||||
export interface DungeonReplayV1 {
|
||||
readonly schemaVersion: 1;
|
||||
readonly dungeonId: string;
|
||||
readonly routeId: string;
|
||||
readonly routeHash: string;
|
||||
readonly mode: DungeonSimulationMode;
|
||||
readonly seed: string;
|
||||
readonly result: DungeonSimulationResult;
|
||||
readonly startedAt: number;
|
||||
readonly durationMs: number;
|
||||
readonly report: DungeonSimulationReportV1;
|
||||
readonly frames: readonly DungeonReplayFrame[];
|
||||
readonly events: readonly DungeonSimulationFinding[];
|
||||
}
|
||||
|
||||
export interface DungeonReplaySummary {
|
||||
readonly id: string;
|
||||
readonly dungeonId: string;
|
||||
readonly routeId: string;
|
||||
readonly routeHash: string;
|
||||
readonly mode: DungeonSimulationMode;
|
||||
readonly seed: string;
|
||||
readonly result: DungeonSimulationResult;
|
||||
readonly startedAt: number;
|
||||
readonly durationMs: number;
|
||||
readonly criticalFindings: number;
|
||||
readonly submittedBy: string;
|
||||
readonly createdAt: number;
|
||||
readonly expiresAt: number;
|
||||
readonly compressedBytes: number;
|
||||
}
|
||||
Reference in new issue
Block a user