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"
Сигнализирует об изменении текущего времени.