five-on-it / packages/missions/src/phone / PhoneContext
Interface: PhoneContext
Defined in: packages/missions/src/phone.ts:200
The runtime's view of a player's step, which the phone acts through.
Properties
at
at:
Point
Defined in: packages/missions/src/phone.ts:206
Where the player is.
has
has:
boolean
Defined in: packages/missions/src/phone.ts:204
Whether the player carries a phone.
mission
mission: {
actors: ({at:string;class:string|string[];id:string;key?:string;locked:boolean;owner:"nobody"|"npc"|"mission";tags:string[];type:"vehicle"; } | {armed:boolean;at:string;class?:string;count:number;crew:number;id:string;max?:number;mode:"car"|"foot";profile:"guard"|"pursuit"|"tail"|"aggressive";tags:string[];targets?: {team:string; };type:"chasers"; } | {at:string;count:number;id:string;item:string;type:"item"; } | {at:string;id:string;items:object[];kind:"crate"|"locker";lock?:string;type:"container"; } | {at:string;code?:string;id:string;lock?:string;locked?:boolean;type:"door"; } | {at:string;id:string;loop:boolean;path?:string;patrol?:string[];pockets:object[];role:"guard"|"civilian";schedule?:object[];tags:string[];turn?:number;type:"npc";weapon:"none"|"pistol"|"shotgun"|"rifle"|"fists"; } | {at:string;follow?:string;id:string;loop:boolean;path?:string;role:"driver";route?:string[];speed?:number;tags:string[];type:"npc";vehicle:string; } | {at:string;id:string;loop:boolean;path?:string;patrol?:string[];pockets:object[];refuge?:string;role:"target";schedule?:object[];tags:string[];type:"npc"; } | {at:string;id:string;role:"vip";tags:string[];type:"npc"; } | {at:string;contact:string;dialogue:string;id:string;role:"contact";type:"npc"; } | {at:string;id:string;on?:boolean;type:"camera"; } | {app:string;at:string;id:string;kind:"atm"|"terminal"|"keypad"|"vending"|"counter";prompt:"use"|"hack";screen?:string;type:"terminal"; } | {at:string;id:string;type:"garage"; } | {at:string;id:string;kind:"terminal"|"vending"|"counter";sells:object[];type:"shop"; } | {at:string;id:string;type:"prop"; })[];apps:object[];blurb?:string;contacts:object[];counters:Record<string,number>;dialogues:object[];helpline?:string;id:string;items:object[];objectives: ({checkpoint?:boolean;failText?:string;hint?:string;id:string;marker?:string;next?: {done?:string;failed?:string; };team?:string;text?:string;timeLimit?:number;to:string;verb:"goto"; } | {checkpoint?:boolean;failText?:string;hint?:string;id:string;marker?:string;next?: {done?:string;failed?:string; };target:string;team?:string;text?:string;timeLimit?:number;verb:"steal_vehicle"; } | {checkpoint?:boolean;count?:number;failText?:string;hint?:string;id:string;item?:string;marker?:string;maxDamage?:number;next?: {done?:string;failed?:string; };team?:string;text?:string;timeLimit?:number;to:string;vehicle?:string;verb:"deliver"; } | {checkpoint?:boolean;failText?:string;hint?:string;id:string;item:string;marker?:string;next?: {done?:string;failed?:string; };team?:string;text?:string;timeLimit?:number;verb:"pickup"; } | {checkpoint?:boolean;count:number;failText?:string;hint?:string;id:string;marker?:string;next?: {done?:string;failed?:string; };tag:string;team?:string;text?:string;timeLimit?:number;verb:"collect"; } | {checkpoint?:boolean;failText?:string;hint?:string;id:string;interactable:string;marker?:string;next?: {done?:string;failed?:string; };team?:string;text?:string;timeLimit?:number;verb:"use"; } | {checkpoint?:boolean;failText?:string;hint?:string;id:string;marker?:string;next?: {done?:string;failed?:string; };seconds:number;team?:string;text?:string;timeLimit?:number;verb:"survive"; } | {checkpoint?:boolean;failIf?:Condition;failText?:string;hint?:string;id:string;marker?:string;next?: {done?:string;failed?:string; };seconds:number;team?:string;text?:string;timeLimit?:number;verb:"defend";zone:string; } | {checkpoint?:boolean;distance:number;failText?:string;group:string;hint?:string;id:string;marker?:string;next?: {done?:string;failed?:string; };seconds:number;team?:string;text?:string;timeLimit?:number;verb:"lose"; } | {checkpoint?:boolean;failText?:string;group?:string;hint?:string;id:string;marker?:string;next?: {done?:string;failed?:string; };nonLethal:boolean;targets?: {team:string; };team?:string;text?:string;timeLimit?:number;verb:"eliminate"; } | {checkpoint?:boolean;failText?:string;hint?:string;id:string;marker?:string;next?: {done?:string;failed?:string; };nonLethal:boolean;targets:string[];team?:string;text?:string;timeLimit?:number;verb:"incapacitate"; } | {checkpoint?:boolean;failText?:string;hint?:string;id:string;marker?:string;maxPhase:"search"|"normal"|"alert"|"caution"|"suspicious";next?: {done?:string;failed?:string; };team?:string;text?:string;timeLimit?:number;verb:"sneak";zone:string; } | {actor?:string;checkpoint?:boolean;choice?:string;contact?:string;dialogue:string;failText?:string;hint?:string;id:string;marker?:string;next?: {done?:string;failed?:string; };team?:string;text?:string;timeLimit?:number;verb:"talk"; } | {checkpoint?:boolean;failText?:string;hint?:string;id:string;marker?:string;next?: {done?:string;failed?:string; };target:string;team?:string;text?:string;timeLimit?:number;verb:"unlock"; } | {checkpoint?:boolean;countdown:number;failText?:string;hint?:string;id:string;laps?:number;marker?:string;next?: {done?:string;failed?:string; };path:string;rivals:string[];team?:string;text?:string;timeLimit?:number;verb:"race"; } | {checkpoint?:boolean;count:number;failText?:string;hint?:string;id:string;item:string;marker?:string;next?: {done?:string;failed?:string; };team?:string;text?:string;timeLimit?:number;to:string;verb:"give"; } | {actor:string;checkpoint?:boolean;failText?:string;hint?:string;id:string;marker?:string;maxDamage?:number;next?: {done?:string;failed?:string; };team?:string;text?:string;timeLimit?:number;to:string;verb:"escort"; } | {checkpoint?:boolean;failText?:string;hint?:string;id:string;marker?:string;next?: {done?:string;failed?:string; };radius:number;target:string;team?:string;text?:string;timeLimit?:number;to?:string;verb:"chase"; } | {actor?:string;checkpoint?:boolean;failText?:string;from:string;hint?:string;id:string;marker?:string;next?: {done?:string;failed?:string; };place?:string;team?:string;text?:string;timeLimit?:number;verb:"photograph"; } | {checkpoint?:boolean;failText?:string;hint?:string;id:string;marker?:string;next?: {done?:string;failed?:string; };seconds:number;team?:string;text?:string;timeLimit?:number;verb:"wait";zone?:string; } | {checkpoint?:boolean;distance?:number;failText?:string;from:string[] |"police";hint?:string;id:string;marker?:string;next?: {done?:string;failed?:string; };seconds?:number;team?:string;text?:string;timeLimit?:number;verb:"escape"; } | {checkpoint?:boolean;failText?:string;hint?:string;id:string;marker?:string;next?: {done?:string;failed?:string; };targets:string[];team?:string;text?:string;timeLimit?:number;verb:"destroy"; } | {checkpoint?:boolean;count?:number;failText?:string;hint?:string;id:string;marker?:string;next?: {done?:string;failed?:string; };radius:number;seconds:number;targets: {team:string; };team?:string;text?:string;timeLimit?:number;verb:"catch"; } | {checkpoint?:boolean;failIf?:Condition;failText?:string;hint?:string;id:string;marker?:string;need?:number;next?: {done?:string;failed?:string; };objectives: ({checkpoint?:boolean;failText?:string;hint?:string;id:string;marker?:string;next?: {done?: ... | ...;failed?: ... | ...; };team?:string;text?:string;timeLimit?:number;to:string;verb:"goto"; } | {checkpoint?:boolean;failText?:string;hint?:string;id:string;marker?:string;next?: {done?: ... | ...;failed?: ... | ...; };target:string;team?:string;text?:string;timeLimit?:number;verb:"steal_vehicle"; } | {checkpoint?:boolean;count?:number;failText?:string;hint?:string;id:string;item?:string;marker?:string;maxDamage?:number;next?: {done?: ... | ...;failed?: ... | ...; };team?:string;text?:string;timeLimit?:number;to:string;vehicle?:string;verb:"deliver"; } | {checkpoint?:boolean;failText?:string;hint?:string;id:string;item:string;marker?:string;next?: {done?: ... | ...;failed?: ... | ...; };team?:string;text?:string;timeLimit?:number;verb:"pickup"; } | {checkpoint?:boolean;count:number;failText?:string;hint?:string;id:string;marker?:string;next?: {done?: ... | ...;failed?: ... | ...; };tag:string;team?:string;text?:string;timeLimit?:number;verb:"collect"; } | {checkpoint?:boolean;failText?:string;hint?:string;id:string;interactable:string;marker?:string;next?: {done?: ... | ...;failed?: ... | ...; };team?:string;text?:string;timeLimit?:number;verb:"use"; } | {checkpoint?:boolean;failText?:string;hint?:string;id:string;marker?:string;next?: {done?: ... | ...;failed?: ... | ...; };seconds:number;team?:string;text?:string;timeLimit?:number;verb:"survive"; } | {checkpoint?:boolean;failIf?:Condition;failText?:string;hint?:string;id:string;marker?:string;next?: {done?: ... | ...;failed?: ... | ...; };seconds:number;team?:string;text?:string;timeLimit?:number;verb:"defend";zone:string; } | {checkpoint?:boolean;distance:number;failText?:string;group:string;hint?:string;id:string;marker?:string;next?: {done?: ... | ...;failed?: ... | ...; };seconds:number;team?:string;text?:string;timeLimit?:number;verb:"lose"; } | {checkpoint?:boolean;failText?:string;group?:string;hint?:string;id:string;marker?:string;next?: {done?: ... | ...;failed?: ... | ...; };nonLethal:boolean;targets?: {team:string; };team?:string;text?:string;timeLimit?:number;verb:"eliminate"; } | {checkpoint?:boolean;failText?:string;hint?:string;id:string;marker?:string;next?: {done?: ... | ...;failed?: ... | ...; };nonLethal:boolean;targets:string[];team?:string;text?:string;timeLimit?:number;verb:"incapacitate"; } | {checkpoint?:boolean;failText?:string;hint?:string;id:string;marker?:string;maxPhase:"search"|"normal"|"alert"|"caution"|"suspicious";next?: {done?: ... | ...;failed?: ... | ...; };team?:string;text?:string;timeLimit?:number;verb:"sneak";zone:string; } | {actor?:string;checkpoint?:boolean;choice?:string;contact?:string;dialogue:string;failText?:string;hint?:string;id:string;marker?:string;next?: {done?: ... | ...;failed?: ... | ...; };team?:string;text?:string;timeLimit?:number;verb:"talk"; } | {checkpoint?:boolean;failText?:string;hint?:string;id:string;marker?:string;next?: {done?: ... | ...;failed?: ... | ...; };target:string;team?:string;text?:string;timeLimit?:number;verb:"unlock"; } | {checkpoint?:boolean;countdown:number;failText?:string;hint?:string;id:string;laps?:number;marker?:string;next?: {done?: ... | ...;failed?: ... | ...; };path:string;rivals:string[];team?:string;text?:string;timeLimit?:number;verb:"race"; } | {checkpoint?:boolean;count:number;failText?:string;hint?:string;id:string;item:string;marker?:string;next?: {done?: ... | ...;failed?: ... | ...; };team?:string;text?:string;timeLimit?:number;to:string;verb:"give"; } | {actor:string;checkpoint?:boolean;failText?:string;hint?:string;id:string;marker?:string;maxDamage?:number;next?: {done?: ... | ...;failed?: ... | ...; };team?:string;text?:string;timeLimit?:number;to:string;verb:"escort"; } | {checkpoint?:boolean;failText?:string;hint?:string;id:string;marker?:string;next?: {done?: ... | ...;failed?: ... | ...; };radius:number;target:string;team?:string;text?:string;timeLimit?:number;to?:string;verb:"chase"; } | {actor?:string;checkpoint?:boolean;failText?:string;from:string;hint?:string;id:string;marker?:string;next?: {done?: ... | ...;failed?: ... | ...; };place?:string;team?:string;text?:string;timeLimit?:number;verb:"photograph"; } | {checkpoint?:boolean;failText?:string;hint?:string;id:string;marker?:string;next?: {done?: ... | ...;failed?: ... | ...; };seconds:number;team?:string;text?:string;timeLimit?:number;verb:"wait";zone?:string; } | {checkpoint?:boolean;distance?:number;failText?:string;from:string[] |"police";hint?:string;id:string;marker?:string;next?: {done?: ... | ...;failed?: ... | ...; };seconds?:number;team?:string;text?:string;timeLimit?:number;verb:"escape"; } | {checkpoint?:boolean;failText?:string;hint?:string;id:string;marker?:string;next?: {done?: ... | ...;failed?: ... | ...; };targets:string[];team?:string;text?:string;timeLimit?:number;verb:"destroy"; } | {checkpoint?:boolean;count?:number;failText?:string;hint?:string;id:string;marker?:string;next?: {done?: ... | ...;failed?: ... | ...; };radius:number;seconds:number;targets: {team:string; };team?:string;text?:string;timeLimit?:number;verb:"catch"; })[];team?:string;text?:string;timeLimit?:number;verb:"group"; })[];play?: {ambient?: {pedestrians?:number;traffic?:number; };friendlyFire:boolean;joinInProgress:"never"|"untilCheckpoint"|"always";lives?: {count:number;per:"player"|"team"; };mode:"solo"|"coop"|"versus";onDeath?:"checkpoint"|"spectate"|"teamSpawn";players?: {max:number;min:number; };respect?: {min:number; };retries?:number;teams?:"each"|object[]; };reward?: {cash:number;rep:number; };rules: ({do: ({showText:string; } | {sendMessage: {from:string;id?:string;text:string; }; } | {setFlag:string; } | {clearFlag:string; } | {startTimer: {id:string;seconds:number; }; } | {stopTimer:string; } | {add: {counter:string;value:number| {counter: ...; } | {timeLeft: ...; } | {elapsed: ...; } | {count: ...; } | {distance: ...; } | {health: ...; } | {wanted: ...; } | {phaseOf: ...; } | {phase: ...; } | {kills: ...; } | {alerts: ...; } | {seen: ...; } | {form: ...; } | {time: ...; }; }; } | {set: {counter:string;value:number| {counter: ...; } | {timeLeft: ...; } | {elapsed: ...; } | {count: ...; } | {distance: ...; } | {health: ...; } | {wanted: ...; } | {phaseOf: ...; } | {phase: ...; } | {kills: ...; } | {alerts: ...; } | {seen: ...; } | {form: ...; } | {time: ...; }; }; } | {spawn: {at?:string;count?:number;group:string; }; } | {setWanted:number; } | {give: {count:number;item:string; }; } | {take: {count?:number;tag:string; }; } | {lock: {door:string; }; } | {unlock: {door:string; }; } | {lockVehicle:string; } | {unlockVehicle:string; } | {giveKey:string; } | {spawnItem: {at:string;count:number;item:string; }; } | {alert: {npc?:string; }; } | {calm: {npc?:string; }; } | {cameraOff: {camera:string; }; } | {cameraOn: {camera:string; }; } | {reward: {cash:number;rep:number; }; } | {complete:true; } | {fail:true| {text:string; }; } | {win:string; } | {message: {choices?: ...[];from:string;id?:string;text:string; }; } | {call: {dialogue:string;from:string; }; } | {addContact: {contact:string;dialogue?:string; }; } | {removeContact:string; } | {installApp:string; } | {removeApp:string; } | {waypoint:string; } | {clearWaypoint:true; } | {setClock:string; } | {setPace:number; } | {setWeather: {intensity:number;kind:"clear"|"overcast"|"rain"|"storm"|"fog"|"snow";minutes?:number;over:number; }; } | {skipTime: {hours:number;text?:string; }; } | {setSignal: {group?:"north-south"|"east-west";junction:string;seconds?:number;state:"green"|"red"|"flashing"|"auto"; }; })[];if?:Condition;repeat:boolean;when:string; } | {enter?: ({showText:string; } | {sendMessage: {from:string;id?: ... | ...;text:string; }; } | {setFlag:string; } | {clearFlag:string; } | {startTimer: {id:string;seconds:number; }; } | {stopTimer:string; } | {add: {counter:string;value: ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ...; }; } | {set: {counter:string;value: ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ...; }; } | {spawn: {at?: ... | ...;count?: ... | ...;group:string; }; } | {setWanted:number; } | {give: {count:number;item:string; }; } | {take: {count?: ... | ...;tag:string; }; } | {lock: {door:string; }; } | {unlock: {door:string; }; } | {lockVehicle:string; } | {unlockVehicle:string; } | {giveKey:string; } | {spawnItem: {at:string;count:number;item:string; }; } | {alert: {npc?: ... | ...; }; } | {calm: {npc?: ... | ...; }; } | {cameraOff: {camera:string; }; } | {cameraOn: {camera:string; }; } | {reward: {cash:number;rep:number; }; } | {complete:true; } | {fail:true| {text: ...; }; } | {win:string; } | {message: {choices?: ... | ...;from:string;id?: ... | ...;text:string; }; } | {call: {dialogue:string;from:string; }; } | {addContact: {contact:string;dialogue?: ... | ...; }; } | {removeContact:string; } | {installApp:string; } | {removeApp:string; } | {waypoint:string; } | {clearWaypoint:true; } | {setClock:string; } | {setPace:number; } | {setWeather: {intensity:number;kind: ... | ... | ... | ... | ... | ...;minutes?: ... | ...;over:number; }; } | {skipTime: {hours:number;text?: ... | ...; }; } | {setSignal: {group?: ... | ... | ...;junction:string;seconds?: ... | ...;state: ... | ... | ... | ...; }; })[];every?: {do: ({showText:string; } | {sendMessage: {from: ...;id?: ...;text: ...; }; } | {setFlag:string; } | {clearFlag:string; } | {startTimer: {id: ...;seconds: ...; }; } | {stopTimer:string; } | {add: {counter: ...;value: ...; }; } | {set: {counter: ...;value: ...; }; } | {spawn: {at?: ...;count?: ...;group: ...; }; } | {setWanted:number; } | {give: {count: ...;item: ...; }; } | {take: {count?: ...;tag: ...; }; } | {lock: {door: ...; }; } | {unlock: {door: ...; }; } | {lockVehicle:string; } | {unlockVehicle:string; } | {giveKey:string; } | {spawnItem: {at: ...;count: ...;item: ...; }; } | {alert: {npc?: ...; }; } | {calm: {npc?: ...; }; } | {cameraOff: {camera: ...; }; } | {cameraOn: {camera: ...; }; } | {reward: {cash: ...;rep: ...; }; } | {complete:true; } | {fail: ... | ...; } | {win:string; } | {message: {choices?: ...;from: ...;id?: ...;text: ...; }; } | {call: {dialogue: ...;from: ...; }; } | {addContact: {contact: ...;dialogue?: ...; }; } | {removeContact:string; } | {installApp:string; } | {removeApp:string; } | {waypoint:string; } | {clearWaypoint:true; } | {setClock:string; } | {setPace:number; } | {setWeather: {intensity: ...;kind: ...;minutes?: ...;over: ...; }; } | {skipTime: {hours: ...;text?: ...; }; } | {setSignal: {group?: ...;junction: ...;seconds?: ...;state: ...; }; })[];if?:Condition;seconds:number; };exit?: ({showText:string; } | {sendMessage: {from:string;id?: ... | ...;text:string; }; } | {setFlag:string; } | {clearFlag:string; } | {startTimer: {id:string;seconds:number; }; } | {stopTimer:string; } | {add: {counter:string;value: ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ...; }; } | {set: {counter:string;value: ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ...; }; } | {spawn: {at?: ... | ...;count?: ... | ...;group:string; }; } | {setWanted:number; } | {give: {count:number;item:string; }; } | {take: {count?: ... | ...;tag:string; }; } | {lock: {door:string; }; } | {unlock: {door:string; }; } | {lockVehicle:string; } | {unlockVehicle:string; } | {giveKey:string; } | {spawnItem: {at:string;count:number;item:string; }; } | {alert: {npc?: ... | ...; }; } | {calm: {npc?: ... | ...; }; } | {cameraOff: {camera:string; }; } | {cameraOn: {camera:string; }; } | {reward: {cash:number;rep:number; }; } | {complete:true; } | {fail:true| {text: ...; }; } | {win:string; } | {message: {choices?: ... | ...;from:string;id?: ... | ...;text:string; }; } | {call: {dialogue:string;from:string; }; } | {addContact: {contact:string;dialogue?: ... | ...; }; } | {removeContact:string; } | {installApp:string; } | {removeApp:string; } | {waypoint:string; } | {clearWaypoint:true; } | {setClock:string; } | {setPace:number; } | {setWeather: {intensity:number;kind: ... | ... | ... | ... | ... | ...;minutes?: ... | ...;over:number; }; } | {skipTime: {hours:number;text?: ... | ...; }; } | {setSignal: {group?: ... | ... | ...;junction:string;seconds?: ... | ...;state: ... | ... | ... | ...; }; })[];while:Condition; })[];start: {on:"join"; } | {on:"enter";zone:string; };stealth?: {bonus?: {cash:number;rep:number; };unseen?:"fail"|"bonus";withoutAlerts?:"fail"|"bonus";withoutKills?:"fail"|"bonus"; };title:string; } |undefined
Defined in: packages/missions/src/phone.ts:208
The mission running, and its run (0 for none).
run
run:
number
Defined in: packages/missions/src/phone.ts:209
tick
tick:
number
Defined in: packages/missions/src/phone.ts:202
The tick.
Methods
act()
act(
actions,form?):void
Defined in: packages/missions/src/phone.ts:213
Runs actions in the mission, with a form's fields.
Parameters
actions
readonly ({ showText: string; } | { sendMessage: { from: string; id?: string; text: string; }; } | { setFlag: string; } | { clearFlag: string; } | { startTimer: { id: string; seconds: number; }; } | { stopTimer: string; } | { add: { counter: string; value: number | { counter: string; } | { timeLeft: true; } | { elapsed: true; } | { count: { players: { caught?: true; group?: string; in?: string; near?: { place: ...; radius: ...; }; tag?: string; team?: string; }; } | { enemies: { caught?: true; group?: string; in?: string; near?: { place: ...; radius: ...; }; tag?: string; team?: string; }; } | { vehicles: { caught?: true; group?: string; in?: string; near?: { place: ...; radius: ...; }; tag?: string; team?: string; }; } | { items: { caught?: true; group?: string; in?: string; near?: { place: ...; radius: ...; }; tag?: string; team?: string; }; }; } | { distance: ["player" | { actor: string; } | { place: string; } | { team: string; }, "player" | { actor: string; } | { place: string; } | { team: string; }]; } | { health: "player" | { actor: string; } | { place: string; } | { team: string; }; } | { wanted: true; } | { phaseOf: string; } | { phase: "search" | "normal" | "alert" | "caution" | "suspicious"; } | { kills: true; } | { alerts: true; } | { seen: true; } | { form: string; } | { time: true; }; }; } | { set: { counter: string; value: number | { counter: string; } | { timeLeft: true; } | { elapsed: true; } | { count: { players: { caught?: true; group?: string; in?: string; near?: { place: ...; radius: ...; }; tag?: string; team?: string; }; } | { enemies: { caught?: true; group?: string; in?: string; near?: { place: ...; radius: ...; }; tag?: string; team?: string; }; } | { vehicles: { caught?: true; group?: string; in?: string; near?: { place: ...; radius: ...; }; tag?: string; team?: string; }; } | { items: { caught?: true; group?: string; in?: string; near?: { place: ...; radius: ...; }; tag?: string; team?: string; }; }; } | { distance: ["player" | { actor: string; } | { place: string; } | { team: string; }, "player" | { actor: string; } | { place: string; } | { team: string; }]; } | { health: "player" | { actor: string; } | { place: string; } | { team: string; }; } | { wanted: true; } | { phaseOf: string; } | { phase: "search" | "normal" | "alert" | "caution" | "suspicious"; } | { kills: true; } | { alerts: true; } | { seen: true; } | { form: string; } | { time: true; }; }; } | { spawn: { at?: string; count?: number; group: string; }; } | { setWanted: number; } | { give: { count: number; item: string; }; } | { take: { count?: number; tag: string; }; } | { lock: { door: string; }; } | { unlock: { door: string; }; } | { lockVehicle: string; } | { unlockVehicle: string; } | { giveKey: string; } | { spawnItem: { at: string; count: number; item: string; }; } | { alert: { npc?: string; }; } | { calm: { npc?: string; }; } | { cameraOff: { camera: string; }; } | { cameraOn: { camera: string; }; } | { reward: { cash: number; rep: number; }; } | { complete: true; } | { fail: true | { text: string; }; } | { win: string; } | { message: { choices?: Reply[]; from: string; id?: string; text: string; }; } | { call: { dialogue: string; from: string; }; } | { addContact: { contact: string; dialogue?: string; }; } | { removeContact: string; } | { installApp: string; } | { removeApp: string; } | { waypoint: string; } | { clearWaypoint: true; } | { setClock: string; } | { setPace: number; } | { setWeather: { intensity: number; kind: "clear" | "overcast" | "rain" | "storm" | "fog" | "snow"; minutes?: number; over: number; }; } | { skipTime: { hours: number; text?: string; }; } | { setSignal: { group?: "north-south" | "east-west"; junction: string; seconds?: number; state: "green" | "red" | "flashing" | "auto"; }; })[]
form?
Readonly<Record<string, string>>
Returns
void
actorAt()
actorAt(
actor):Point&object|undefined
Defined in: packages/missions/src/phone.ts:221
Where one of the mission's actors (a person, a terminal, a door) stands now, and whether a person is down; nothing once it is gone.
Parameters
actor
string
Returns
Point & object | undefined
emit()
emit(
event):void
Defined in: packages/missions/src/phone.ts:215
An event for the mission's rules (handled on its next step).
Parameters
event
string
Returns
void
fill()
fill(
text):string
Defined in: packages/missions/src/phone.ts:227
A text with its counters filled in.
Parameters
text
string
Returns
string
give()
give(
actor):boolean
Defined in: packages/missions/src/phone.ts:231
The interaction key at a person: hands over what a give to them asks for; whether it did (else they talk).
Parameters
actor
string
Returns
boolean
hint()
hint():
string|undefined
Defined in: packages/missions/src/phone.ts:235
What the mission's help line says about the step under way; nothing without a help line.
Returns
string | undefined
holds()
holds(
condition,form?):boolean
Defined in: packages/missions/src/phone.ts:211
Whether a condition holds in the mission's scope, with a form's fields.
Parameters
condition
form?
Readonly<Record<string, string>>
Returns
boolean
objectiveDialogue()
objectiveDialogue(
who):string|undefined
Defined in: packages/missions/src/phone.ts:223
The dialogue a call to a contact (or a talk to an NPC actor) plays now: a talk objective's, when one is under way with them.
Parameters
who
actor?
string
contact?
string
Returns
string | undefined
openDoor()
openDoor(
actor):void
Defined in: packages/missions/src/phone.ts:225
Unlocks a door actor and opens it away from the player (the keypad's right code).
Parameters
actor
string
Returns
void
photo()
photo():
PhotoNote
Defined in: packages/missions/src/phone.ts:233
What the player's photo of this step says (the host framed it).
Returns
place()
place(
id):Point|undefined
Defined in: packages/missions/src/phone.ts:229
A place by id.
Parameters
id
string
Returns
Point | undefined
talked()
talked(
key):void
Defined in: packages/missions/src/phone.ts:217
Counts a conversation ended (<dialogue>) or a choice picked (<dialogue>.<choice>) for talk.
Parameters
key
string
Returns
void
used()
used(
actor):void
Defined in: packages/missions/src/phone.ts:219
Counts a terminal used, for use.
Parameters
actor
string
Returns
void