// МОДУЛЬ БОЕВОЙ СИСТЕМЫ: урон, потери, исход. Документ: Docs/Modules/Battle.md // Без Unity и без float: этот же код без изменений сможет считать бои на сервере. // // Правила пока самые простые: побеждает тот, у кого больше солдат. // Потом сюда добавятся типы войск, герой, технологии -- остальные модули менять не придётся. public sealed class BattleSystem : IBattleSystem { public BattleOutcome Resolve(BattleRequest request) { int attackers = request.Attackers; int defenders = request.Defenders; bool victory = attackers > defenders; // ничья -- в пользу защитника // Проигравший теряет половину своего войска, победитель -- столько же int loserArmy = victory ? defenders : attackers; int losses = (loserArmy + 1) / 2; return new BattleOutcome { Victory = victory, AttackerLosses = losses, DefenderLosses = losses, Survivors = attackers - losses }; } }