private FleetState CheckFleetState() { if (Ships.AsList().Count == 0) { return(FleetState.Empty); } if (Expedition != null) { return(FleetState.Expedition); } if (ships.Any(s => s.IsRepairing)) { return(FleetState.Repairing); } if (Ships.Any(s => s.HP.DamageState >= ShipDamageState.HeavilyDamaged)) { return(FleetState.Damaged); } if (Ships.Any(s => !s.Fuel.IsMaximum || !s.Bullet.IsMaximum)) { return(FleetState.Insufficient); } if (Ships.Any(s => s.Morale < 40)) { return(FleetState.Fatigued); } if (owner.CombinedFleet > 0 && (Id == 1 || Id == 2)) { return(FleetState.Combined); } return(FleetState.Ready); }