Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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);
                }
            }
        }