1
0
This repository has been archived on 2026-08-25. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
tera/src/offices/operations/lumbridge-hq.ts
T

42 lines
2.8 KiB
TypeScript

import type { RobotOperationsDefinition } from "../../interiors/robotOperations.ts";
/** Authored, seeded demonstration operations for the compact SF studio. */
export const LUMBRIDGE_HQ_ROBOT_OPERATIONS = Object.freeze({
id: "lumbridge-hq-robot-operations",
version: 1,
officeId: "lumbridge-hq",
disclosure: "Seeded robot simulation — no live people, company activity, or operational data.",
stations: [
{
id: "sf-studio-dock",
label: "Studio charge dock",
role: "charge",
anchor: { kind: "point", levelId: "level-1", position: { x: 5.65, z: 5.3 }, facing: { x: 1, z: 0 } },
},
{ id: "sf-studio-entry", label: "Entry patrol point", role: "patrol", anchor: { kind: "point", levelId: "level-1", position: { x: 1.1, z: 7.5 }, facing: { x: 0, z: -1 } } },
{ id: "sf-studio-kitchen", label: "Kitchen patrol point", role: "patrol", anchor: { kind: "room", roomId: "kitchen" } },
{ id: "sf-studio-lounge", label: "Demo lounge patrol point", role: "patrol", anchor: { kind: "point", levelId: "level-1", position: { x: 7.0, z: 6.0 }, facing: { x: 1, z: 0 } } },
{ id: "sf-studio-pickup", label: "Entry shelf parcel pickup", role: "pickup", anchor: { kind: "prop", propId: "entry-shelf", standoffM: 0.8, side: -1 } },
{ id: "sf-studio-dropoff", label: "Lounge table parcel drop", role: "dropoff", anchor: { kind: "prop", propId: "lounge-table", standoffM: 0.8 } },
{ id: "sf-studio-display", label: "Demo display inspection", role: "inspect", anchor: { kind: "prop", propId: "open-display", standoffM: 0.72, side: -1 } },
{ id: "sf-studio-monitor", label: "Agent monitor inspection", role: "inspect", anchor: { kind: "prop", propId: "lobby-monitor", standoffM: 0.72, side: -1 } },
],
jobs: [
{ id: "sf-studio-patrol", label: "Studio safety patrol", kind: "patrol", stationIds: ["sf-studio-entry", "sf-studio-kitchen", "sf-studio-lounge"], dwellTicks: 6 },
{ id: "sf-studio-deliver", label: "Entry-to-lounge parcel", kind: "deliver", stationIds: ["sf-studio-pickup", "sf-studio-dropoff"], dwellTicks: 9 },
{ id: "sf-studio-inspect-display", label: "Demo display inspection", kind: "inspect", stationIds: ["sf-studio-display"], dwellTicks: 14 },
{ id: "sf-studio-inspect-monitor", label: "Agent monitor inspection", kind: "inspect", stationIds: ["sf-studio-monitor"], dwellTicks: 12 },
{ id: "sf-studio-charge", label: "Studio charge cycle", kind: "charge", stationIds: ["sf-studio-dock"], dwellTicks: 1 },
],
robots: [
{
id: "sf-studio-activity-01",
label: "SF studio support robot",
levelId: "level-1",
spawnStationId: "sf-studio-dock",
schedule: ["sf-studio-deliver", "sf-studio-inspect-display", "sf-studio-inspect-monitor", "sf-studio-patrol", "sf-studio-charge"],
initialBattery: 0.72,
},
],
} satisfies RobotOperationsDefinition);