gameDefinition.ts 732 B

12345678910111213141516171819202122232425262728293031
  1. import { type LonLatPoint } from '../../utils/projection'
  2. export type GameMode = 'classic-sequential'
  3. export type GameControlKind = 'start' | 'control' | 'finish'
  4. export type PunchPolicyType = 'enter' | 'enter-confirm'
  5. export interface GameControlDisplayContent {
  6. title: string
  7. body: string
  8. }
  9. export interface GameControl {
  10. id: string
  11. code: string
  12. label: string
  13. kind: GameControlKind
  14. point: LonLatPoint
  15. sequence: number | null
  16. displayContent: GameControlDisplayContent | null
  17. }
  18. export interface GameDefinition {
  19. id: string
  20. mode: GameMode
  21. title: string
  22. controlRadiusMeters: number
  23. punchRadiusMeters: number
  24. punchPolicy: PunchPolicyType
  25. controls: GameControl[]
  26. autoFinishOnLastControl: boolean
  27. }