/
expens1ve
/
project_war
Обзор
Документация
Войти
/
expens1ve
/
project_war
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
solid
Models/Interfaces/IUnit.cs
62 строки
3 KB
Vadim
add solid vibes
02 июн 2026, 01:09
02 июн 2026, 01:09
573f19e
Код
Авторство
О чём код?
using System; namespace project_war.Models.Interfaces { /// <summary> /// Представляет абстракцию боевой единицы (юнита) на поле боя. /// Этот интерфейс определяет базовые характеристики и действия юнитов: /// уровень здоровья, урон, защиту, стоимость и механику получения урона. /// </summary> public interface IUnit { /// <summary> /// Текущее здоровье юнита. Изменение этого значения напрямую не рекомендуется, /// для нанесения урона используйте метод TakeDamage. /// </summary> int Health { get; set; } /// <summary> /// Максимальное здоровье юнита. /// </summary> int MaxHealth { get; } /// <summary> /// Сила атаки юнита. /// </summary> int AttackDamage { get; } /// <summary> /// Показатель защиты юнита (броня). Уменьшает получаемый урон. /// </summary> int Defense { get; } /// <summary> /// Стоимость юнита. Используется фабрикой при наборе армии на заданный бюджет. /// </summary> int Cost { get; } /// <summary> /// Инициирует атаку по указанной цели. /// Внутри этого метода не должно быть вывода в консоль. /// </summary> /// <param name="target">Юнит, по которому наносится удар.</param> void Hit(IUnit target); /// <summary> /// Обрабатывает получение прямого урона юнитом (с учетом брони или других модификаторов). /// </summary> /// <param name="amount">Количество входящего урона до применения модификаторов защиты.</param> void TakeDamage(int damage); /// <summary> /// Событие, срабатывающее при смерти юнита. /// </summary> event Action<IUnit> OnDied; /// <summary> /// Событие, срабатывающее при изменении здоровья (урон или лечение). /// Передает самого юнита и дельту изменения здоровья. /// </summary> event Action<IUnit, int> OnHealthChanged; } }