private void GetKnownPlanetsWithAtLeastOneUnitOf(WorldSideType sideType, string Tag) { Galaxy galaxy = Engine_AIW2.Instance.NonSim_GetGalaxyBeingCurrentlyViewed(); for (int i = 0; i < galaxy.Planets.Count; i++) { Planet planet = galaxy.Planets[i]; if (!planet.HumansHaveBasicIntel) { continue; } if (planet.Combat.GetFirstMatching(sideType, Tag) == null) { continue; } this.RelatedPlanets.Add(planet); } }
private void GetKnownPlanetsWithAtLeastOneUnitOf(WorldSideType sideType, EntityRollupType rollup) { Galaxy galaxy = Engine_AIW2.Instance.NonSim_GetGalaxyBeingCurrentlyViewed(); for (int i = 0; i < galaxy.Planets.Count; i++) { Planet planet = galaxy.Planets[i]; if (!planet.HumansHaveBasicIntel) { continue; } if (planet.Combat.GetNumberIn(sideType, rollup) <= 0) { continue; } this.RelatedPlanets.Add(planet); } }
private static void CenteringHelperForPlanetList(List <Planet> planets, ObjectiveType Type, ObjectiveSubType SubType) { if (planets.Count <= 0) { return; } { Planet planetToCenterOn = null; Planet currentPlanet = Engine_AIW2.Instance.NonSim_GetPlanetBeingCurrentlyViewed(); bool foundCurrent = false; for (int i = 0; i < planets.Count; i++) { Planet planet = planets[i]; if (foundCurrent) { planetToCenterOn = planet; break; } if (currentPlanet == planet) { foundCurrent = true; } } if (planetToCenterOn == null) { planetToCenterOn = planets[0]; } if (planetToCenterOn == currentPlanet) { WorldSideType sideType = WorldSideType.Length; string tag = string.Empty; switch (Type) { case ObjectiveType.ClaimFlagship: tag = "Flagship"; sideType = WorldSideType.NaturalObject; break; case ObjectiveType.DestroyAIPReducer: tag = "DataCenter"; sideType = WorldSideType.AI; break; case ObjectiveType.ExploreGalaxy: tag = "SensorScrambler"; sideType = WorldSideType.AI; break; case ObjectiveType.GetBonusShipType: tag = "AdvancedResearchStation"; sideType = WorldSideType.AI; break; case ObjectiveType.GainFleetStrength: switch (SubType) { case ObjectiveSubType.GainFleetStrength_ThroughFuel: tag = "FuelGenerator"; sideType = WorldSideType.NaturalObject; break; case ObjectiveSubType.GainFleetStrength_ThroughScience: tag = "FuelGenerator"; sideType = WorldSideType.NaturalObject; break; } break; } if (tag.Length > 0) { GameEntity entity = currentPlanet.Combat.GetFirstMatching(sideType, tag); CenteringHelper(currentPlanet, entity); } } else { CenteringHelper(planetToCenterOn, null); } } }