Files

5.6 KiB
Raw Permalink Blame History

Recruiting — побеждённые враги, вступающие в отряд

Recruiting позволяет захватить врага, побеждённого в бою, и позже сражаться на стороне игрока. После победы у каждого поверженного врага есть шанс быть захваченным; захваченные персонажи попадают в панель Рекруты, и любого из них можно добавить в отряд или снова убрать. Пока рекрут в плену, он живёт по своим правилам — в Cthangover он проголодается.

Мод не зависит ни от одной боевой системы: он слушает событие платформы «персонажи побеждены», поэтому работает с FF Battle, Card Battle и с чем угодно ещё, что сообщает побеждённых персонажей. Кто может быть захвачен и при каких условиях — решают данные игры и другие моды.

Панель «Рекруты»

Открывается кнопкой на панели инструментов. В начале Cthangover ещё никто не захвачен:

Панель «Рекруты»: заголовок «Рекруты», строка «Захваченные враги · любого можно добавить в отряд», «Пока нет захваченных рекрутов», а внизу «Захвачено: 0 · в отряде: 0».

Каждый захваченный рекрут получает строку с портретом, именем и здоровьем, а также кнопку: В отряд или Из отряда. Внизу счётчик показывает, сколько рекрутов захвачено и сколько из них в отряде.

Как происходит захват

После победы для каждого поверженного врага:

  1. В файле персонажа врага RecruitmentChance должен быть больше 0.
  2. Рекрут каждого типа — только один: если этот тип уже захвачен, он пропускается.
  3. Каждое зарегистрированное условие должно позволить захват. Этот мод приносит одно такое: у игрока должен быть навык slave_master (в Cthangover он у Марао есть с самого начала).
  4. Бросок от 1 до 100 не должен превысить шанс.

Тогда враг попадает в ростер с 10 здоровья. В Cthangover единственный персонаж, которого можно захватить, встречается позже по сюжету, с шансом 50%:

{ "Id": "werewolf_girl_1", "RecruitmentChance": 50 }

В отряде

В отряд делает рекрута обычным членом отряда: он появляется на панели персонажей, сражается в боях своими действиями, может быть целью предметов и сохраняется вместе с отрядом. Потерянное в бою здоровье остаётся у рекрута. Из отряда сохраняет его действия и опыт до следующего возвращения.

Нужды рекрутов

Каждый рекрут запускает зарегистрированные поведения на каждом тике игровых часов. Этот мод приносит одно — питание: рекрут, который не ел 24 игровых часа, теряет 1 здоровья за тик. В нынешней игре кормить рекрута пока нечем, поэтому захваченный рекрут начинает голодать через день после захвата.

Ростер, здоровье и состояние поведений сохраняются вместе с игрой.

Авторам модов

  • Условие — это класс, реализующий IRecruitCondition; мод recruiting находит его в любом загруженном моде. Верните false, чтобы запретить захват.
  • Поведение реализует IRecruitBehaviour: оно настраивается при захвате рекрута, вызывается на каждом тике и удаляется вместе с рекрутом. Его состояние живёт в свойствах рекрута.
  • Код может реагировать на RecruitJoinedEvent и RecruitLeftEvent.

Если что-то пошло не так

  1. Никого не удаётся захватить. У врага RecruitmentChance равен 0, условие запрещает (у игрока нет навыка slave_master) или бросок не удался.
  2. Тот же враг не захватывается дважды. Один рекрут на тип врага — так задумано.
  3. Здоровье рекрута постоянно падает. Это питание: он не ел сутки, а способа накормить его пока нет.