Как реализовать скил “Poison” ? Unity C#

210
13 июня 2018, 04:40

Есть абстрактный класс Creature от которого наследуются два класса: Rogue, Goblin(в этих классах пара скиллов и статы). Есть класс Fight(в нем реализован выбор скиллов и их применение) который наследуется от Monobehaviour. В общем хочу сделать скилл который при успешном срабатывании будет попускать противника каждый ход, с возможностью настакивать эффект, но не могу понять как его реализовать. Я так понял что нужно делать event в fight и подписыватся на него из классов существ. Я создаю event в классе Fight, но в классах Goblin/ Rogue не могу подписаться на него, так как его не видно. Если же делать event в родительском классе Creature - то не могу объявить событие в классе Fight. Как блин этот яд реализовать?))

Answer 1
  • Выделите здоровье в отдельный компонент с которым работают все классы. Это позволит стандартизировать обработку урона/лечения/баффов/дебаффов
  • Выделите обработчик эффектов в отдельный компонент, он будет работать со здоровьем, и обрабатывать все что навешено на существо, с учетом времени.
  • Добавьте эффект, яд, который можно передать в обработчик эффектов, на какое либо существо.

Это общая схема, детали очень зависят от архитектуры, жанра итд.

READ ALSO
Binding метода с параметрами на условиях

Binding метода с параметрами на условиях

Вот хотелось упростить код не много и у меня есть вот такой код XAML

200
C# - Как передать класс в метод

C# - Как передать класс в метод

Нужно создать метод, входным параметром которого будет класс

212
посчитать количество checkbox на панели

посчитать количество checkbox на панели

int count = (panel_admin_vivodControls as CheckBox)

207