67 lines
1.8 KiB
TypeScript
67 lines
1.8 KiB
TypeScript
// Игра
|
||
export type Game = {
|
||
// Статус игры (NEW, RUN, STOP)
|
||
state: string
|
||
// Время начала игры
|
||
startAt: string
|
||
// Время окончания игры
|
||
endAt: string
|
||
}
|
||
|
||
// Команда
|
||
export type Team = {
|
||
// Название
|
||
name: string
|
||
// Совершенные действия
|
||
actions: Action[]
|
||
}
|
||
|
||
// Действие
|
||
// Посещение точки игры
|
||
export type Action = {
|
||
// Идентификатор действия
|
||
id: string
|
||
// Код точки
|
||
place: string
|
||
// Название точки
|
||
name: string
|
||
// Текст точки
|
||
text: string
|
||
// Ссылка на картинку
|
||
image: string
|
||
// Список приложений
|
||
applications: Application[]
|
||
// Видимость/доступность точки
|
||
hidden: boolean
|
||
// Двери точки
|
||
doors: Door[]
|
||
|
||
// Поля для интерфейса
|
||
// Сворачивание
|
||
isOpen: boolean
|
||
// Кнопки
|
||
buttons: Door[]
|
||
}
|
||
|
||
// Приложение
|
||
// Улики найденые игроками (Карта, фотография...)
|
||
export type Application = {
|
||
// Наименование
|
||
name: string
|
||
// Номер
|
||
number: number
|
||
}
|
||
|
||
// Дверь
|
||
// Выбор пути в диалоге с игроком
|
||
// Или действие игрока которое можно не использовать
|
||
// Или открытие действия без участия игрока
|
||
export type Door = {
|
||
// Код точки куда открывается дверь (Целевая точка должна существовать)
|
||
code: string
|
||
// Текст кнопки (Должен совпадать с названием целевой точки)
|
||
name: string
|
||
// Видимость кнопки
|
||
show: boolean
|
||
}
|