Add config-driven game host updates
This commit is contained in:
@@ -17,6 +17,7 @@ export interface GameControl {
|
||||
kind: GameControlKind
|
||||
point: LonLatPoint
|
||||
sequence: number | null
|
||||
score: number | null
|
||||
displayContent: GameControlDisplayContent | null
|
||||
}
|
||||
|
||||
@@ -27,6 +28,10 @@ export interface GameDefinition {
|
||||
controlRadiusMeters: number
|
||||
punchRadiusMeters: number
|
||||
punchPolicy: PunchPolicyType
|
||||
requiresFocusSelection: boolean
|
||||
skipEnabled: boolean
|
||||
skipRadiusMeters: number
|
||||
skipRequiresConfirm: boolean
|
||||
controls: GameControl[]
|
||||
autoFinishOnLastControl: boolean
|
||||
audioConfig?: GameAudioConfig
|
||||
|
||||
@@ -2,5 +2,6 @@ export type GameEvent =
|
||||
| { type: 'session_started'; at: number }
|
||||
| { type: 'gps_updated'; at: number; lon: number; lat: number; accuracyMeters: number | null }
|
||||
| { type: 'punch_requested'; at: number }
|
||||
| { type: 'skip_requested'; at: number; lon: number | null; lat: number | null }
|
||||
| { type: 'control_focused'; at: number; controlId: string | null }
|
||||
| { type: 'session_ended'; at: number }
|
||||
|
||||
@@ -65,6 +65,7 @@ export class GameRuntime {
|
||||
startedAt: null,
|
||||
endedAt: null,
|
||||
completedControlIds: [],
|
||||
skippedControlIds: [],
|
||||
currentTargetControlId: null,
|
||||
inRangeControlId: null,
|
||||
score: 0,
|
||||
|
||||
@@ -7,6 +7,7 @@ export interface GameSessionState {
|
||||
startedAt: number | null
|
||||
endedAt: number | null
|
||||
completedControlIds: string[]
|
||||
skippedControlIds: string[]
|
||||
currentTargetControlId: string | null
|
||||
inRangeControlId: string | null
|
||||
score: number
|
||||
|
||||
Reference in New Issue
Block a user