using System; using System.Collections.Generic; using System.Linq; namespace Babushka.scripts.CSharp.Common.Fight; public static class FightUtils { public static int GetEnteredAmount(this FightWorld.FighterGroup self) { return self.enemies.Count(e => e.IsAlive() && e.entered); } public static IEnumerable GetUptoUnenteredFighters( this FightWorld.FighterGroup self, int maxFighters) { if (maxFighters <= self.enemies.Count) return self.enemies .Where(e => !e.entered && e.IsAlive()); return self.enemies .Where(e => !e.entered && e.IsAlive()) .Take(maxFighters); } public static bool IsAlive(this FightWorld.Fighter self) { return self.GetHealth() > 0; } public static bool IsDead(this FightWorld.Fighter self) { return !self.IsAlive(); } public static int GetHealth(this FightWorld.Fighter self) { return Math.Max(self.health ?? self.maxHealth, 0); } public static void AddHealth(this FightWorld.Fighter self, int addHealth) { self.health = self.GetHealth() + addHealth; } public static bool AreAllDead(this FightWorld.FighterGroup self) { return self.enemies.All(e => e.IsDead()); } }