Клиент для Эвана Морриса

Спец режим позволяющий запускать уровень за уровнем. Клиент будет работать только с maze--breakout и только с новой прошивкой всех плат (>9.01.30).

Репозиторий maze_escape в gitlab.com, команде teslalasers. Не забудь добавить ключ деплоя, если клонируешь на устройство.

nano .ssh/config
//дописать к github, bitbucket еще и gitlab.com

Тонкости

  1. Клиент работает только в режиме оператор, в других режимах он будет работать некорректно.
  2. Клиент может влиять на работу основного лабиринта, то есть если запущен клиент, то в режиме для одного игрока могут переключатся уровни.
  3. Клиент работает по 192.168.50.2:1857
  4. У клиента ограничен количество уровней, он запускат их поочередно с 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