Esempio n. 1
0
 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);
 }