docs(mystery): spec for engine prereqs (verbs, disambiguation, ending UI) #1
+4
-4
@@ -35,13 +35,13 @@ export type Theme = 'amber' | 'ansi'
|
|||||||
export interface ItemInstance {
|
export interface ItemInstance {
|
||||||
id: ItemId
|
id: ItemId
|
||||||
/** Per-instance state: lit/unlit, broken/whole, etc. */
|
/** Per-instance state: lit/unlit, broken/whole, etc. */
|
||||||
state: Record<string, string | boolean | number>
|
state: Record<string, string | boolean | number | string[]>
|
||||||
}
|
}
|
||||||
|
|
||||||
export type EncounterPhase = string // phase names are encounter-specific
|
export type EncounterPhase = string // phase names are encounter-specific
|
||||||
|
|
||||||
export interface TranscriptLine {
|
export interface TranscriptLine {
|
||||||
kind: 'narration' | 'player' | 'system'
|
kind: 'narration' | 'player' | 'system' | 'ending'
|
||||||
text: string
|
text: string
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -56,9 +56,9 @@ export interface GameState {
|
|||||||
location: RoomId
|
location: RoomId
|
||||||
inventory: ItemInstance[]
|
inventory: ItemInstance[]
|
||||||
/** Per-room state: visited, items dropped, descriptive flags. */
|
/** Per-room state: visited, items dropped, descriptive flags. */
|
||||||
roomState: Record<RoomId, Record<string, string | boolean | number>>
|
roomState: Record<RoomId, Record<string, string | boolean | number | string[]>>
|
||||||
/** Story-wide flags (e.g. 'gateOpened', 'mirrorTarnished'). */
|
/** Story-wide flags (e.g. 'gateOpened', 'mirrorTarnished'). */
|
||||||
flags: Record<string, string | boolean | number>
|
flags: Record<string, string | boolean | number | string[]>
|
||||||
resolveLevel: ResolveLevel
|
resolveLevel: ResolveLevel
|
||||||
/** Active encounter phase by encounter id, or null if no encounter is mid-flight. */
|
/** Active encounter phase by encounter id, or null if no encounter is mid-flight. */
|
||||||
encounterState: Record<EncounterId, EncounterPhase>
|
encounterState: Record<EncounterId, EncounterPhase>
|
||||||
|
|||||||
Reference in New Issue
Block a user