maxcuso / flarum-roleplay
Roleplaying characters and character applications for Flarum
Requires
- php: ^8.3
- enshrined/svg-sanitize: ^0.22
- flarum/core: ^2.0.0-rc.8
- flarum/lock: ^2.0.0-rc.8
- flarum/tags: ^2.0.0-rc.8
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Расширение для ролевых форумов на Flarum 2.x. Пакет: maxcuso/flarum-roleplay.
Возможности
- Создание персонажа через мастер с сохранением черновика.
- Анкета выбранного персонажа в профиле пользователя.
- Раздельная проверка технической и литературной частей анкеты.
- Навыки, владения, перки, заклинания, предметы и экипировка.
- Числовые эффекты и расчёт параметров персонажа.
- Развитие за опыт, выдача и изъятие ресурсов и сущностей модератором.
- Ручное назначение рангов, история персонажа и статистика ролевика.
- Справочники и настройки в админке, импорт и экспорт JSON.
Обучение по книгам и крафт пока представлены вкладками «В разработке».
Требования
- PHP 8.3 или выше в пределах ограничения
^8.3. - Flarum в пределах ограничения
^2.0.0-rc.8. - Расширения
flarum/tagsиflarum/lockв пределах ограничения^2.0.0-rc.8.
Точные зависимости указаны в composer.json.
Установка и настройка
Первый публичный релиз готовится. После появления версии на Packagist установка выполняется из папки форума:
composer require maxcuso/flarum-roleplay
php flarum cache:clear
Для предварительных версий Composer может потребовать указать конкретную версию.
После установки включи расширение в админке, настрой права, заполни справочники и стартовые наборы. В настройках анкет укажи тег для литературных тем. Затем можно включить создание персонажей.
Новая и прежняя локальная версии используют одинаковые имя пакета и таблицы. Их нельзя устанавливать одновременно или запускать новые миграции поверх старой схемы без подготовки перехода. Порядок переноса справочников.
Разработка и публикация
Из папки js:
npm install
npm run typecheck
npm run build
Готовые файлы js/dist входят в релиз. Локальные зависимости, tests/.runtime и icons.local.json исключены из публикации.
Перед выпуском собирай интерфейс в чистой копии без icons.local.json: простое исключение этого файла из архива не убирает замены иконок из уже собранного JavaScript. Подготовка GitHub, Packagist и Floxum.
Автор: maxcuso, charomax11@gmail.com. Текущая лицензия в метаданных: proprietary.
Устройство расширения
Глобальная архитектура — границы подсистем, устройство кода, данные и порядок разработки.
Как работаем
Перед каждой подсистемой:
- Описываем пользовательский сценарий и ожидаемый результат.
- Даём план шага, архитектуру классов/компонентов и связи между ними.
- Разбираем данные, правила, права доступа и вопросы, влияющие на реализацию.
- Реализуем согласованный объём и проверяем его.
- Обновляем документацию: что сделано, где менять поведение, что остаётся следующим шагом.
Код пишем с понятными именами и комментариями на русском. В комментариях объясняем назначение участка, причины ограничений и место настройки. Избегаем сжатых строк с несколькими действиями.
Существующая папка ../roleplay служит источником согласованных сценариев и референсом. Новый проект не копирует её устаревшие поля и обходные решения автоматически.
Перенос данных рассматриваем отдельным шагом до включения новой версии. Архитектурный документ не является разрешением на очистку существующей базы. Каркас: перенос, архитектура и места редактирования.
Базовые справочники: схема, классы и проверки.
Иконки: где задавать и как менять.
Админка: архитектура, места настройки и проверки.
Согласованные таблицы развития.
Навыки и владения: каталоги, проверки и места настройки.
Калькулятор параметров: формулы, бонусы и отличие от старого расчёта.
Состояние персонажа: перенос, чтение и подготовка расчётов.
Назначения предмета и защита брони.
Эффекты: архитектура, порядок расчёта и места настройки.
Доступные атаки: владения, экипировка и места настройки.
Создание персонажа: сервер, черновики и места настройки.
Мастер: архитектура интерфейса, расовые владения и места настройки.
Анкета в профиле: видимость, эффекты и экипировка.
Литературная тема и проверка обеих частей.
Развитие, модераторские выдачи и стартовые настройки.
Перенос справочников, тестовая копия и оставшиеся настройки. Визуальный стенд мастера: запуск, редактирование и исправление сохранения.
Ранги: справочник, ручное назначение, история и места настройки.