Alixx
@Alixx

Как запускать и отслеживать выполнение квестов в браузерке на laravel?

Здравствуйте.
В браузерной игре на laravel есть разнообразные квесты. Выдаются они в разных моментах игры –при выполнении каких-либо действий (прийти на локацию, запустить работу, завершить работу, собрать ресурсы и пр.), при выполнении каких-либо действий впервые, при достижении каких-либо значений по счётчикам (убить N других игроков построить N строений, достичь N уровня для персонажа/города/строения и пр.). Хотя по сути это всё выполнение каких-либо действий.
Как видите, действия могут быть абсолютно разными, в разных модулях обрабатываемы. Каким образом лучше запускать квесты? Самый вроде бы очевидный вариант, это просто в нужном месте вызывать некий метод, в котором много всяких если и, если все проверки выполняются, то запускаем соответствующий квест.
Например, (описываю условно) квест 1 запускается при третьем запуске работы в строении А. Значит в коде, где вызывается метод запуска работы для строения А, перед этим вызываем метод проверки на выполнение условий для запуска квеста 1? Там, если этот запуск третий по счёту и у игрока уровень такой-то, то запускаем квест 1, и в бд отмечаем, что у игрока запущен квест 1 на первом его этапе. Точно также пока что и с отслеживанием квестов…
Подскажите, есть ли более лаконичный вариант для выполнения таких вещей?
Может что-то наподобие событий в laravel сделать, но тоже получится, что вызывать эти «события» надо по всему коду игровых модулей…
  • Вопрос задан
  • 137 просмотров
Пригласить эксперта
Ответы на вопрос 1
delphinpro
@delphinpro
frontend developer
не знаю, как насчет лаконичности, но связанность излишняя. Методу запуска работы вообще не обязательно ничего знать про квесты. Ему достаточно просто опубликовать событие: В строении А запущена работа.
А там дальше, кому надо, тот и подпишется на это событие, и сделает, что ему нужно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы