Пример #1
0
        public override void Initialize()
        {
            CombatData       combat = this._app.Game.CombatData.GetCombat(this._app.GameDatabase, this._combatID, this._systemID, this._turn);
            PlayerCombatData player = combat.GetPlayer(this._app.LocalPlayer.ID);

            if (player == null)
            {
                this._app.UI.CloseDialog((Dialog)this, true);
            }
            else
            {
                this._app.GameDatabase.GetPlayerInfos();
                StarSystemInfo starSystemInfo = this._app.GameDatabase.GetStarSystemInfo(combat.SystemID);
                string         str            = App.Localize("@ADMIRAL_LOCATION_DEEP_SPACE");
                if (starSystemInfo != (StarSystemInfo)null)
                {
                    str = starSystemInfo.Name;
                }
                this._app.UI.SetPropertyString("title", "text", "Combat - " + player.VictoryStatus.ToString() + " at " + str);
                this.syncCombatantsLists();
                this.SyncPlayerSide(player.PlayerID);
                if (this.EnemyPlayers.Any <int>())
                {
                    this.SyncEnemySide(this.EnemyPlayers.First <int>());
                }
                StarSystemMapUI.Sync(this._app, this._systemID, "systemMapContent", false);
            }
        }
Пример #2
0
        public StellarBody.Params GetStellarBodyParams(GameSession game, int orbitalId)
        {
            OrbitalObjectInfo orbitalObjectInfo   = game.GameDatabase.GetOrbitalObjectInfo(orbitalId);
            ColonyInfo        colonyInfoForPlanet = game.GameDatabase.GetColonyInfoForPlanet(orbitalId);
            PlanetInfo        planetInfo          = game.GameDatabase.GetPlanetInfo(orbitalId);
            SystemColonyType  colonyType          = SystemColonyType.Normal;
            int        num;
            double     population;
            PlayerInfo povPlayerInfo;

            if (colonyInfoForPlanet != null)
            {
                num           = colonyInfoForPlanet.PlayerID;
                population    = colonyInfoForPlanet.ImperialPop;
                povPlayerInfo = game.GameDatabase.GetPlayerInfo(num);
                if (orbitalObjectInfo != null && povPlayerInfo != null)
                {
                    HomeworldInfo homeworldInfo = game.GameDatabase.GetHomeworlds().FirstOrDefault <HomeworldInfo>((Func <HomeworldInfo, bool>)(x => x.SystemID == orbitalObjectInfo.StarSystemID));

                    if (homeworldInfo != null && homeworldInfo.SystemID != 0 && homeworldInfo.PlayerID == povPlayerInfo.ID)
                    {
                        colonyType = SystemColonyType.Home;
                    }
                    else if (game.GameDatabase.GetProvinceInfos().Any <ProvinceInfo>((Func <ProvinceInfo, bool>)(x =>
                    {
                        if (x.CapitalSystemID != orbitalObjectInfo.StarSystemID || x.PlayerID != povPlayerInfo.ID)
                        {
                            return(false);
                        }
                        int capitalSystemId = x.CapitalSystemID;
                        int?homeworld = povPlayerInfo.Homeworld;
                        if (capitalSystemId == homeworld.GetValueOrDefault())
                        {
                            return(!homeworld.HasValue);
                        }
                        return(true);
                    })))
                    {
                        colonyType = SystemColonyType.Capital;
                    }
                }
            }
            else
            {
                num           = 0;
                population    = 0.0;
                povPlayerInfo = game.GameDatabase.GetPlayerInfo(game.LocalPlayer.ID);
            }
            FactionInfo factionInfo   = game.GameDatabase.GetFactionInfo(povPlayerInfo.FactionID);
            float       hazard        = Math.Abs(planetInfo.Suitability - factionInfo.IdealSuitability);
            float       stratModifier = (float)game.App.GetStratModifier <int>(StratModifiers.MaxColonizableHazard, povPlayerInfo.ID);
            float       radius        = StarSystemVars.Instance.SizeToRadius(planetInfo.Size);
            Matrix      transform     = orbitalObjectInfo.OrbitalPath.GetTransform(0.0);

            return(this.GetStellarBodyParams(StarSystemMapUI.SelectIcon(planetInfo, game.GameDatabase.GetStarSystemOrbitalObjectInfos(orbitalObjectInfo.StarSystemID), (IEnumerable <PlanetInfo>)game.GameDatabase.GetStarSystemPlanetInfos(orbitalObjectInfo.StarSystemID)), transform.Position, radius, orbitalId, num, planetInfo.Type, hazard, stratModifier, factionInfo.Name, (float)planetInfo.Biosphere, population, new int?(), Colony.GetColonyStage(game.GameDatabase, num, (double)hazard), colonyType));
        }