PacerGM - вся игра в одном объекте

new PacerGM(initialState)

Конструктор может принимать объект с загруженным состоянием игры вида

{confidence, activities: [{}], quests: [{}], todos: [{}],}

Методы экземпляра

.start(confidence)

Устанавливает заданное количество очков веры в себя (2-10), избавляется от всех хранившихся действий, квестов и выполнений. Запоминает количество очков веры в себя также в качестве величины для расчёта вопроса насчёт сложности действий.

.getConfidence()

Возвращает текущее количество очков веры в себя.

.getDifficultyScale()

Возвращает расчётную величину, сохранённую при старте для последующей оценки сложности действий.

.useTime(providerFn)

Принимает функцию, которая должна возвращать объект даты. Начинает следить за временем с помощью неё.

.pause()

Прерывает слежение за временем.

.run()

Начинает/возобновляет слежение за временем с помощью последней функции, передававшейся в .useTime(providerFn), или new Date.

.setTime(date)

Прерывает слежение за временем и устанавливает заданное.

.getTime()

Возвращает последнее зафиксированное время.

.addActivity(text, size, difficulty)

Добавляет новое действие с заданным текстом, мерой и сложностью (от 1 до 10).

.updateActivity(actId, text, size, difficulty)

Обновляет действие с указанным идентификатором, устанавливая переданный текст, меру и сложность.

.getActivities()

Возвращает данные всех хранящихся действий.

.takeQuest(actId, dates)

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

.getQuests()

Возвращает данные всех хранящихся квестов.

.getTodos()

Возвращает данные всех хранящихся выполнений.

.markDone(todoId)

Если это возможно, отмечает действие с указанным идентификатором как выполненное.

.markFailed(todoId)

Если это возможно, отмечает действие с указанным идентификатором как проваленное.

.loadData({confidence, activities, quests, todos, time})

Заменяет все хранимые данные переданными.

События

"change.activities"

Сигнализирует об изменениях в действиях.

"change.quests"

Сигнализирует об изменениях в квестах.

"change.todos"

Сигнализирует об изменениях в выполнениях.

"change.confidence"

Сигнализирует об изменениях веры в себя.

"change.time"

Сигнализирует об изменении текущего времени.