# ДнД Менеджер
> Браузерное приложение для более комфортной игры в днд.
>
> 1. Может стать дополнением к тейблтопу:
> - замена тетради: оставляй персональные заметки про события/квесты/персонажей и быстро их находи (теги/категории/даты)
> - хаб со всеми параметрами твоего персонажа — сверяйся с ними во время боя, не отводя камеры с поля битвы `(правда с новым столом это уже не так релевантно...)`
> - калькулятор атаки и защиты (подробнее в Вид/Действия Игрока)
>> Вероятнее всего, становясь дополнением к тейблтопу, некоторый функционал становится лишь головной болью для ГМа (и игроков)
>> Проблемы:
>> - чтобы атака/защита считалась корректно, нужно учитывать все (как минимум надетые) предметы => предметы нуджно добавлять в двух местах. Частичное решение: позволить игрокам самим вписывать себе предметы (с последующим аппрувом ГМа?)
> 2. Становится (должен стать) полной заменой `Гугл дока` при игре в реале
> - реализация инвентаря
> - модифицирование ХПшек и других параметров "прям как в тейблтопе"
> - учет параметров врагов/союзников в панеле ГМа
> - какие-нибудь еще фишечки, которые должны облегчить ГМу жизнь и сберечь некоторое количество бумаги
---
## Виды/Действия
> Общее описание того, что должно быть реализованно, присутствовать на страницах пользователей
### Вид игрока:
* чат `[1]`
* статы
* скиллы
* инвентарь
* перки/умения
* взятые квесты (кастомное описание + "свои" квесты)
* журнал
* если правильно типизировать вещи, то динамические параметры брони и атаки и их вариации тоже можно реализовать
* ...
### Действия игрока:
* +/- стат/хп/энергия/мана
* передать предмет (разрешение ГМа?)
* активировать/деактивировать скилл/перк/предмет (для динамических параметров)
* запросить скилл/перк у ГМа (при левел апе) (?)
* добавить/изменить квест/событие/запись в журнале
* ...
### Вид ГМа:
* чат`[1]`
* краткая статистика игроков/персонажей/ноунейм нпц (Серег)/пинаемых оболтусов //`AJAX?`
* ...что должен видеть ГМ?
### Действия ГМа:
* создать(по шаблону/без)/дать игроку/найти в созданных предмет/скилл
* создать(по шаблону/без)/найти в созданных пресонажа/нпц/врага для дальнейшего использования в битве/событии/другой хуйне
* дать быстрый`[2]`/рандомный квест
* ...что должен делать ГМ?
---
### Мысли, по поводу и без
- Нужны ли квесты отдельно, или достаточно того, чтобы каждый игрок записывал сам, что считает нужным?
- Система опыта (бои, скиллы, песонажи)
- Чем более универсальным делать приложение, тем больше придется<ins> программировать логики для программирования </ins>кастомной <ins>логики</ins> игры. И вот тогда настанет moment he knew he fucked up
------
### Секция непонятной хуйни
> ###### `[1]` Че за хуйня? Какой Чат? Нахуя?
> Прикол в том, что обновить данные на странице можно
> - обновив страницу
> - прикрутив асинхронное обновление с помощью JavaScript (активация триггерами / каждые ***n*** сек)
>
> Но нам нужно, чтобы игрок мог посылать "запросы" ГМу, и у ГМа они отображались в реальном времени, без обновления страницы.
> И по факту я вообще не ебу, как это сделать правильно (да и вообще, как это накодить),
> но можно сделать что-то на подобии чата,
> - куда будут приходить запросы от игроков, которые надо аппрувнуть (например: передача предмета другому игроку, или там еще что)
> - события от ГМа (например: из врага выпал предмет, его в "чат", кто-то его забирает)
>
> ###### `[2]` Какой такой быстрый квест, блять?
>
> Ну, если конечно ГМ не решит иначе, не всякий квест из очередного Подзалупинска обязательно должен быть в базе данных. Поэтому ГМ может просто инициировать квест с одним лишь названием в системе и описать его устно, а игроки уже запишут, кто как услышал и запомнил.