public bool CanBuild() { if (_game == null) { return(true); } return((Type != ETechType.Construction && Type != ETechType.ShipyardConstruction) || (Type == ETechType.ShipyardConstruction && Name.Contains("Shipyard")) || (Type == ETechType.ShipyardConstruction && !Name.Contains("Shipyard") && _game.NumberOfActiveShips(Team, Name) < _game.Faction[Team - 1].CapitalMaxDrones) || (Name.Contains("Miner") && _game.NumberOfMinerDrones(Team) < _game.GameSettings.MinersMaxDrones) || (Name.Contains("Drone") && _game.NumberOfActiveShips(Team, Name) < _game.GameSettings.MaximumPilots) || (Name.Contains("Tower") && _game.NumberOfConstructionDrones(Name, Team) < _game.GameSettings.ConstructorsMaxTowerDrones) || (Name.Contains("Constructor") && _game.NumberOfConstructionDrones(Name, Team) < _game.GameSettings.ConstructorsMaxDrones && _game.AllAsteroids.Count(_ => _.IsVisibleToTeam(Team - 1) && _.Type == GetAsteroidType(Name)) > 0)); }