Files
mod_recruiting/docs/ru.md
T

51 lines
5.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Recruiting — побеждённые враги, вступающие в отряд
Recruiting позволяет захватить врага, побеждённого в бою, и позже сражаться на стороне игрока. После победы у каждого поверженного врага есть шанс быть захваченным; захваченные персонажи попадают в панель **Рекруты**, и любого из них можно добавить в отряд или снова убрать. Пока рекрут в плену, он живёт по своим правилам — в Cthangover он проголодается.
Мод не зависит ни от одной боевой системы: он слушает событие платформы «персонажи побеждены», поэтому работает с FF Battle, Card Battle и с чем угодно ещё, что сообщает побеждённых персонажей. Кто может быть захвачен и при каких условиях — решают данные игры и другие моды.
## Панель «Рекруты»
Открывается кнопкой на панели инструментов. В начале Cthangover ещё никто не захвачен:
![Панель «Рекруты»: заголовок «Рекруты», строка «Захваченные враги · любого можно добавить в отряд», «Пока нет захваченных рекрутов», а внизу «Захвачено: 0 · в отряде: 0».](assets/recruits-panel.jpg)
Каждый захваченный рекрут получает строку с портретом, именем и здоровьем, а также кнопку: **В отряд** или **Из отряда**. Внизу счётчик показывает, сколько рекрутов захвачено и сколько из них в отряде.
## Как происходит захват
После победы для каждого поверженного врага:
1. В файле персонажа врага `RecruitmentChance` должен быть больше 0.
2. Рекрут каждого типа — только один: если этот тип уже захвачен, он пропускается.
3. Каждое зарегистрированное **условие** должно позволить захват. Этот мод приносит одно такое: у игрока должен быть навык `slave_master` (в Cthangover он у Марао есть с самого начала).
4. Бросок от 1 до 100 не должен превысить шанс.
Тогда враг попадает в ростер с 10 здоровья. В Cthangover единственный персонаж, которого можно захватить, встречается позже по сюжету, с шансом 50%:
```json
{ "Id": "werewolf_girl_1", "RecruitmentChance": 50 }
```
## В отряде
**В отряд** делает рекрута обычным членом отряда: он появляется на панели персонажей, сражается в боях своими действиями, может быть целью предметов и сохраняется вместе с отрядом. Потерянное в бою здоровье остаётся у рекрута. **Из отряда** сохраняет его действия и опыт до следующего возвращения.
## Нужды рекрутов
Каждый рекрут запускает зарегистрированные **поведения** на каждом тике игровых часов. Этот мод приносит одно — питание: рекрут, который не ел 24 игровых часа, теряет 1 здоровья за тик. В нынешней игре кормить рекрута пока нечем, поэтому захваченный рекрут начинает голодать через день после захвата.
Ростер, здоровье и состояние поведений сохраняются вместе с игрой.
## Авторам модов
- **Условие** — это класс, реализующий `IRecruitCondition`; мод recruiting находит его в любом загруженном моде. Верните false, чтобы запретить захват.
- **Поведение** реализует `IRecruitBehaviour`: оно настраивается при захвате рекрута, вызывается на каждом тике и удаляется вместе с рекрутом. Его состояние живёт в свойствах рекрута.
- Код может реагировать на `RecruitJoinedEvent` и `RecruitLeftEvent`.
## Если что-то пошло не так
1. **Никого не удаётся захватить.** У врага `RecruitmentChance` равен 0, условие запрещает (у игрока нет навыка `slave_master`) или бросок не удался.
2. **Тот же враг не захватывается дважды.** Один рекрут на тип врага — так задумано.
3. **Здоровье рекрута постоянно падает.** Это питание: он не ел сутки, а способа накормить его пока нет.