Клиент для Эвана Морриса
Спец режим позволяющий запускать уровень за уровнем.
Клиент будет работать только с maze--breakout и только с новой прошивкой всех плат (>9.01.30).
Репозиторий maze_escape в gitlab.com, команде teslalasers.
Не забудь добавить ключ деплоя, если клонируешь на устройство.
nano .ssh/config
//дописать к github, bitbucket еще и gitlab.com
Тонкости
- Клиент работает только в режиме оператор, в других режимах он будет работать некорректно.
- Клиент может влиять на работу основного лабиринта, то есть если запущен клиент, то в режиме для одного игрока могут переключатся уровни.
- Клиент работает по 192.168.50.2:1857
- У клиента ограничен количество уровней, он запускат их поочередно с 1 по 20.
Api Reference
game
game - объект переменных для синхронизации
is_play - есть игра или нет. если есть показывает таймер, фейл, задетые, позволяет остановить игру, иначе показывает выбор игроков.
players - количество игроков (уровень сложности в кастомном режиме игры)
level - уровень текущий 0-20 (кастомный режим игры)
level_name - строка типа 00r, 01, 01r, 02 и т.д.
time - время
time_left - время осталось
fail - количество проигрышей
wins - колиество побед (нужно было для дебага)
crosses - количество пересеченных
step - текущий шаг в кнопках (нужен был для дебага)
after_rlevel - флаг recovery level (только из кнопок)
gameplay
Объект gameplay управляет геймплеем внутренним.
setLevel - выбирает уровень с параметром id.
start - запускает уровень
stop - останавливает уровень
` next - скипает уровень <br/>
timesup - останавливает время<br/>
win` - победа
timer
Объект timer - таймер отсчета. Внутри хранится инфа о текущем состояние. Обновляется примерно раз в секунду.
IO
Объект io. Управляет сокетом внутри 1857.
События:
update - запрос апдейта инфы. высылает текущее состояние объекта game
setPlayers - устновить количество игроков (параметр номером)
start - запустить игру
reset - остановить игру
start-game - запустить игру (апи для чуваков), аналогичная функция start
socket
Объект socket отвечает за управление сокетом с 1856.
При коннекте отправляет client_init и попадает на сервере в группу screen.
События
update - синхронизируется с серваком и запускает процесс победы, или перехода на новый уровень игры. Обновляет переменную game.
end-game - отсылает level-completed (api для чуваков), инкрементирует количество проигрышей запускает снова уровень текущий.
beam-crossed - увеличивает количество пересеченных лучей обновляет game.
io_update
Синхронизирует game со вьюхой.
API Websocket
Events
level-started
Отправляет payload с параметрами level, buttons, beams.
level - номер уровня buttons - массив кнопок, которые нужно нажать игроку. beams - массив лучей, который загорится
level-completed
Отправляет payload с level и result.
level - номер уровня result - win / fail в зависимости от результата.
calibration_result
Отправляет payload с результатами калибровки. Это массив из объектов статичных и движущихся лазеров.
Пример объекта статичного луча:
{ id: 14,
type: 'static',
dark: 0,
light: 3407,
x: 2384,
calibrated: true },
Пример движ луча:
{ id: 'm1', type: 'moving', error: 7, calibrated: true }
checkpoint-pressed
Отправляет payload при нажатии на кнопку, с параметром id.
id - номер кнопки (от 0)
beam-crossed
Отправляет payload при пересечение луча, с параметром id.
id - номер луча (от 0)
transition-crossed
Отправляет payload при пересечение луча в transition моде, с параметром id.
id - номер луча (от 0)
Methods
Для того, чтобы запустить метод необходимо отправить socket запрос.
start-game
Запустить игру. Доступный параметр - player_count (2-6).
skip-level
Пропустить текущий уровень.
start-calibration
Запустить калибровку.
end-game
Остановить весь игровой процесс.
Posts
subscribe via RSS