# 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. **Здоровье рекрута постоянно падает.** Это питание: он не ел сутки, а способа накормить его пока нет.