Maneuvers

class Maneuvers
devtools/src/maneuvers.ts:168

Members

constructor

constructor(host: Host, stage: Stage) → Maneuvers

stage is the harness's cutscene and observatory, which the walker asks about and the pad fixture clears; a bare session has neither.

hostHost
Undocumented
stageStage
Undocumented

onFootreadonly

onFoot: OnFoot

Stepping out and back in; the verbs board through it.

burnToward

burnToward(address: string, throttle: number) → ManeuverResult

Aim the ship at a body and light the main drive.

addressstring
Undocumented
throttlenumber
Undocumented

face

face(address: string) → ManeuverResult

Point the nose at a body without touching its trajectory.

Separate from burnToward because looking and burning are different acts: this one is free, and it is what you want when setting up a screenshot or checking that a body is where the HUD says it is.

addressstring
Undocumented

goTo

goTo(destination: string, options: { altitudeKm?: number; distanceAu?: number }) → ManeuverResult

Go anywhere, given anything that names it.

The god-mode front door, and the only travel verb that does not require you to already know what kind of thing you are naming. A body address arrives in a circular orbit framing that body; a system designation arrives in a close orbit of the star itself, looking at it — you asked for the star, and the star is what fills the view.

Passing distanceAu asks for the other thing — a hold-off in the system frame, out in the dark, which is where goToSystem alone leaves you. That is a real place to want to be and a terrible place to arrive by default: at 40 AU a red dwarf is a sub-pixel point, so "travel to Proxima" appeared to do nothing at all.

orbit, land, goToSystem and face are still the primitives and still take exactly one kind of argument each — this dispatches to them rather than reimplementing them, so there is one placement rule per maneuver.

destinationstring
Undocumented
options{ altitudeKm?: number; distanceAu?: number }
Undocumented

goToSystem

goToSystem(system: string, distanceAu: number) → ManeuverResult

Drop the player into interstellar space near a system.

systemstring
Undocumented
distanceAunumber
Undocumented

land

land(address: string, latitude: Degrees, longitude: Degrees) → ManeuverResult

Park the player on the ground at a latitude and longitude, ready to fly.

The angles default to the prime meridian at the equator because ir is typed at a console, where the brand checks nothing and a missing angle is undefined. A non-finite angle is refused before the ship is touched: a surface frame at NaN is a world every later step throws in.

addressstring
Undocumented
latitudeDegrees
Undocumented
longitudeDegrees
Undocumented

orbit

orbit(address: string, altitudeKm?: number) → ManeuverResult

Put the player in a circular orbit around a body — or, given a system address, around its star.

Named for what it does physically rather than "teleport": it sets a state that is a valid solution of the two-body problem, so the ship stays there.

addressstring
Undocumented
altitudeKmnumber
Undocumented

shot

shot(name: string, address?: string) → ManeuverResult

Frame a named, repeatable composition of a body — a camera bookmark.

orbit places you for flying; this places you for looking, at the distances and phase angles the reference photographs were taken from. The ship is left in a circular orbit through the bookmark position so the composition holds instead of falling, and the nose — which is the camera — is aimed by the shot itself: the body's center, the sunward horizon, or the star's reflection off the surface.

With no address it re-frames the body whose frame the player is already in, so ir.shot('crescent') after any arrival does what it sounds like.

namestring
Undocumented
addressstring
Undocumented