/
expens1ve
/
project_war
Обзор
Документация
Войти
/
expens1ve
/
project_war
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
solid
Engine/Interfaces/IBattleFormation.cs
43 строки
2 KB
Alan Uzdenov
fixed ability using
29 апр 2026, 18:23
29 апр 2026, 18:23
89099dc
Код
Авторство
О чём код?
using System.Collections.Generic; using project_war.Models.Interfaces; namespace project_war.Engine.Interfaces { /// <summary> /// Паттерн Стратегия — стратегия построения армии. /// Определяет кто атакует, как закрываются бреши после гибели юнитов /// и когда разрешено использовать SpecialAbility. /// </summary> public interface IBattleFormation { /// <summary> /// Название построения для отображения в меню. /// </summary> string DisplayName { get; } /// <summary> /// Возвращает список фронтовых юнитов по линиям/сегментам построения. /// Для "Узкого моста" — 1 элемент. /// Для "Широкого моста" — 3 элемента (колонки). /// Для "Стенка на стенку" — все живые юниты армии, потому что вся армия стоит фронтом. /// </summary> IReadOnlyList<IUnit?> GetFrontUnits(IArmy army); /// <summary> /// Удобный метод для получения одного фронтового юнита. /// </summary> IUnit? GetFrontUnit(IArmy army); /// <summary> /// Вызывается сразу после гибели юнита. /// Стратегия сама решает, как перестроить армию. /// </summary> void OnUnitDied(IUnit deadUnit, IArmy army); /// <summary> /// Возвращает true, если юнит может использовать SpecialAbility в этом раунде. /// Проверка идет с учетом собственной армии и армии противника. /// </summary> bool CanUseSpecialAbility(IUnit unit, IArmy ownArmy, IArmy enemyArmy); } }