Давно не выкладывал сообщений об обновлениях, практически год, на новой работе поначалу было непривычно много задач, но с введением удаленки стал чуть меньше уставать по будням без толп в метро, так что на выходных (а иногда и по вечерам за счет освободившегося от дороги времени) стала появляться возможность что-то допилить. В итоге, с начала прошлого декабря набралось не так уж и мало решенных задач.
В декабре был ряд доработок по ролевой, которые всплывали в процессе игры - список "Кто онлайн", фоны для страницы, редактирование-удаление сообщений для чата.
Весной были восстановлены Награды, обретя вторую жизнь - оповещение, отображение в отдельных списках, в профиле, активностях, оповещения по почте. Также были украшены гости и добавлены аватары по-умолчанию на форум в зависимости от выбранного зверя - в очередной раз спасибо @Фортуната за них.
С новой архитектурой ролевой процесс восстановления, казалось бы, старого рабочего функционала оказался не самой тривиальной задачей - в процессе находилось много тонкостей, которые приходилось менять и дорабатывать, уже больше года этим занимался, но на этих выходных наконец-то удалось закончить (кроме, разве что, комментариев для мастеров - их при необходимости добавлю позже).
Из старого - восстановлено создание персонажей (пока без возможности использования одних и тех же персонажей в разных ролевых) в тех ролевых, где это можно (например, в главной Ролевой и в Праздниках). Чаще всего потребуется модерация после добавления нового героя (или - важно - изменения уже существующего, кроме аватара), но мастера теперь смогут получать оповещения о требующих модерации анкетах в тех ролевых, где они мастерят. Восстановлены локации и ходы в них.
Из нового - доработан процесс загрузки аватара для ролевого профиля. Теперь при загрузке можно его обрезать в нужном виде и формате, в котором он будет отображаться в игре. Переработана главная страница и форма хода. Добавлена кнопка "Загрузить ещё" для загрузки порции предыдущих сообщений. Теперь ходы на ней отображаются с привязкой к локации, где они были сделаны. В Праздниках на главной отображаются все сообщения, начиная с последнего. В основной Ролевой - только те ходы, которые были сделаны в локациях в тот момент, когда там находился Ваш персонаж, что позволит отследить весь ход игры.
Важно! Считается, что персонаж переходит из локации в локацию только с помощью Действия перехода. В стародавние времена персонажи "телепортировались" в другие локации, не используя действия из ролевой, поэтому может оказаться, что для старых ходов старых персонажей главная будет отображать только одну локацию, а то и совсем ничего. Через некоторое количество ходов с переходами все должно придти в порядок (возможно, позже я сконвертирую старые ходы для удобства), при наличии иных багов можно писать мне - я буду разбираться, все ли работает как надо или что-то можно поправить.
В качестве предварительной работы была полностью изменена интеграция авторизации сайта и форума. Теперь после захода на форум вход на сайте не будет осуществлен автоматически, и при первом входе на сайте будет уведомление об использовании аккаунта форума. Это может создать чуточку неудобств, но зато система работает гораздо стабильнее, и не будет тех внезапных вылетов при долгом написании сообщения на сайте (после которых также приходилось нажимать на Вход на сайте).
Основная работа была проведена с клиентской частью ролевой. Основные страницы были воссозданы заново в качестве одностраничного приложения, переход между страницами которого теперь осуществляется без полной перезагрузки страницы.
Был создан ролевой чат. Есть две версии чата - на весь экран и в окне. После десятков часов, потраченных на его разработку, даже нечего особо сказать о нём) Я старался сделать его похожим на то, как это выглядит в мессенджерах типа ВК (кроме, скажем, бросков кубиков мастерами), но тем не менее - в отличии от команд этих мессенджеров я один, поэтому удалось пока реализовать не всё. В частности, на текущий момент отсутствуют оповещения, не реализована возможность удаления или редактирования сообщений. Большая часть работы ушла на ядро, в частности поведение при изменении выбранных персонажей или игры в приложении.
Для ролевой игры по Походу Матиаса реализован выбор персонажа из сетки ролей. Также реализовано отображение квестов с основными событиями на главной страницы для тех персонажей, кто в этом квесте участвует. В начале игровой сессии Мастер создает делает активным новое событие, и у игрока появится возможность зайти в соответствующий канал чата - в котором и будет происходить игровой процесс. После игровой сессии мастер или один из игроков сможет заполнить Хронику этого события квеста.
Для праздников реализована главная страница с последними ходами. Форма хода модифицирована, но пока отсутствует возможность выбора действий или локации. Зато при ходе другого игрока его сообщение будет добавляться на страницу автоматически, без необходимости обновления, как это было ранее.
Система автосохранения сообщений тоже изменена. Она работает в рамках одного устройства (или браузера) и сессии, и работает более стабильно и естественно, чем ранее.
Если будут какие-то вопросы или пожелания - пишите!
P.S. С технической стороны - давно собирался попробовать что-то сделать на вебсокетах, пусть даже средствами фреймворка. Пока я доволен, как это получилось реализовать.
Практически полностью переделал теги героев и книг. Теперь ори работают стабильнее, отображают лучше, чем раньше, и более информативны (во всплывающем окне есть ссылка). Также теперь проще с технической стороны добавлять аналогичные подсказки и теги для других сущностей, например, были добавлены теги рецептов.
Кроме того, поменял систему загрузки изображений на сайте (в героях, рецептах, профиле ролевой). Теперь нет необходимости заранее вводить название, по которому будет формироваться имя файла картинки, она сохраняется во временное хранилище и будет переименована и перемещена уже после отправки формы. Кроме того, изображения уменьшаются уже на стороне клиента, поэтому загрузка больших изображений должна работать значительно лучше.
Добавлены или восстановлены основные блоки на форуме. Также добавлены ходы ролевой в основную ленту активности (в профиле пользователя отображаются только те ходы, которые он сделал от своего имени (например, на празднике), а не от имени мастера или персонажа.
В блоке цитат теперь есть кнопка для загрузки другой случайной цитаты.
Вернулись заполненные шапки в фанфиках и ссылках.
Пожертвуем, пожертвуем,
И сердцем мы пожертвуем!(с) Shingeki no Kyojin
Иконки интерфейса на сайте (в меню и множестве элементов управления) заменены на соотвествующие аналоги из Font Awesome 5.