Game

new Game(queue, players, Classes, config, rules)

Базовый класс игры.
Предоставляет игровой цикл. Предоставляет методы для ожидания и получения действий от игроков. Создает игровые компоненты и управляет ими.

Source:
Parameters:
Name Type Description
queue Queue

очередь, к которой принадлежит игра

players Array.<Player>

массив игроков.

Classes object.<class>

классы, из которых создаются игровые компоненты

config object

настройки игры

rules object

правила игры

Members

(static) maxPlayers :Number

Максимальное кол-во игроков в игре.

Source:

(static) minPlayers :Number

Минимальное кол-во игроков в игре.

Source:

(static) modeName :string

Название режима игры.

Default Value:
  • 'game'
Source:

actions :GameActions

Обработчик ответа от игроков.

Source:

active :Boolean

Активна ли игра. Неактивные игры удаляются из менеджера игры, но ссылки на них могут оставаться у ботов.

Source:

BotClass :Player

Класс ботов для добавления, если не хватает игроков, и для замены вышедших игроков.

Source:

cards :GameCards

Менеджер игровых карт.

Source:

config :Object

Игровые настройки.

Source:

deck :array

Колода карт из Game#cards.

Source:

directives :GameDirectives

Методы, позволяющие игрокам выполнять действия.

Source:

discardPile :array

Стопка сброса из Game#cards.

Source:

disconnectTimeout :number

Время после которого игрок будет отключен от игры.

Source:

fakeDecisionTimer :number

Время ответа ботов. Уменьшается, если стоит флаг simulating.

Source:

hands :array

Руки игроков из Game#cards.

Source:

id :String

id игры

Source:

index :Number

Индекс игры.

Source:

isRunning

Запущена ли игра. Игра не запущена, когда идет голосование о рестарте. Это не тоже самое, что game.states.current == 'STARTED'

Source:

isTest :Boolean

Является ли игра тестом.

Source:

log :winston.Logger

Логгер игры.

Source:

players :GamePlayers

Менеджер игроков и ботов, учавствующих в игре.

Source:

queue :Queue

Очередь, создавшая игру.

Source:

reactions :GameReactions

Методы, выполняемые в ответ на действия от игроков.

Source:

result :object

Результаты игры.

Source:

rules :Object

Правила игры.

Source:

simulating :Boolean

Находится ли игра в ускоренном режиме.

Source:

states :GameStates

Игровые состояния.

Source:

table :array

Стол из Game#cards.

Source:

timer :Timer

Таймер ожидания ответа от игроков.

Source:

turnIndex :Number

Индекс хода.

Source:

turnStages :GameTurnStages

Стадии ходов игры.

Source:

turnStartTime :number

Время начала текущего хода.

Source:

Methods

backToQueue(voteResults)

Возвращает игру в лобби. Оповещает игроков о результатах голосования.

Source:
Parameters:
Name Type Description
voteResults object

результаты голосования за рематч.

continue() → {boolean}

Выполняет следующую стадию игры.

Source:
Returns:
Type:
boolean

Возвращает нужно ли продолжать игру, или ждать игроков.

doTurn() → {boolean}

Выполняет следующую стадию хода

Source:
Returns:
Type:
boolean

Возвращает нужно ли продолжать игру, или ждать игроков.

end()

Заканчивает игру, оповещает игроков и позволяет им голосовать за рематч

Source:

getDefaultResults() → {objec}

Возвращает объект, в который будут записываться результаты игры.

Source:
Returns:
Type:
objec

getResults() → {object}

Возвращает результаты игры для передачи игрокам.

Source:
Returns:
Type:
object

hoverOutCard(player, cidopt)

Сообщает игрокам, что игрок убрал курсор с карты.

Source:
Parameters:
Name Type Attributes Description
player Player
cid string <optional>

id карты

hoverOverCard(player, cid)

Сообщает игрокам, что игрок держит курсор над определенной картой.

Source:
Parameters:
Name Type Description
player Player
cid string

id карты

init()

Инициализация и запуск первой игры.

Source:

let(dirName, …players) → {boolean}

Позволяет игроку выполнить действие

Source:
Parameters:
Name Type Attributes Description
dirName string

название выполняемого действия

players Player <repeatable>

игроки, которым разрешено действовать

Returns:
Type:
boolean

Возвращает нужно ли продолжать игру, или ждать игроков.

recieveResponse(player, action)

Получает ответ от игрока асинхронно.

Source:
Parameters:
Name Type Description
player Player
action object

выполненное игроком действие

recieveResponseSync(player, action)

Получает ответ от игрока синхронно.
Используется для тестов, асинхронность должна быть добавлена при вызове функции для корректной работы.

Source:
Parameters:
Name Type Description
player Player
action object

выполненное игроком действие

rematch(voteResults)

Перезапускает игру. Оповещает игроков о результатах голосования.

Source:
Parameters:
Name Type Description
voteResults object

результаты голосования за рематч.

reset()

Ресет игры

Source:

resetSimulating()

Убирает статус симуляции, оповещает игроков.

Source:

resetTurn()

Сбрасываем счетчики и стадию игры

Source:

shutdown()

Преждевременное завершение игры. Не производит правильное отключение игроков, используется только, если все игроки боты.

Source:

start()

Подготовка и начало игры

Source:

startTurn()

Начинает ход

Source:

timeOut()

Выполняется по окончании таймера ответа игроков Выполняет случайное действие или продолжает игру

Source:

trySimulating()

Если остались только боты, убираем игроков из списка ожидания ответа, чтобы ускорить игру.

Source:

waitForResponse(time, players)

Ждет ответа от игроков.

Source:
Parameters:
Name Type Description
time number

время ожидания в секундах

players Array.<Player>

игроки, которых нужно ждать