protected override void OnCommitMission()
        {
            if (this._selectedPlanetForInvasion == 0)
            {
                foreach (int starSystemPlanet in this.App.GameDatabase.GetStarSystemPlanets(this.TargetSystem))
                {
                    if (this.App.GameDatabase.CanInvadePlanet(this.App.LocalPlayer.ID, starSystemPlanet))
                    {
                        this._selectedPlanetForInvasion = starSystemPlanet;
                        break;
                    }
                }
            }
            if (this._selectedPlanetForInvasion == 0)
            {
                return;
            }
            Kerberos.Sots.StarFleet.StarFleet.SetInvasionMission(this.App.Game, this.SelectedFleet, this.TargetSystem, this._useDirectRoute, this._selectedPlanetForInvasion, this.GetDesignsToBuild());
            AdmiralInfo admiralInfo = this.App.GameDatabase.GetAdmiralInfo(this.App.GameDatabase.GetFleetInfo(this._selectedFleet).AdmiralID);

            if (admiralInfo != null)
            {
                this.App.PostRequestSpeech(string.Format("STRAT_010-01_{0}_{1}InvasionMissionConfirmation", (object)this.App.GameDatabase.GetFactionName(this.App.GameDatabase.GetPlayerFactionID(this.App.LocalPlayer.ID)), (object)admiralInfo.GetAdmiralSoundCueContext(this.App.AssetDatabase)), 50, 120, 0.0f);
            }
            this.App.GetGameState <StarMapState>().RefreshMission();
        }
Exemple #2
0
        protected override void OnCommitMission()
        {
            if (this._selectedPlanetToEvacuate == 0)
            {
                double num1 = 0.0;
                foreach (int num2 in this.App.GameDatabase.GetStarSystemPlanets(this.TargetSystem).ToList <int>())
                {
                    ColonyInfo colonyInfoForPlanet = this.App.GameDatabase.GetColonyInfoForPlanet(num2);
                    if (colonyInfoForPlanet != null && colonyInfoForPlanet.PlayerID == this.App.LocalPlayer.ID)
                    {
                        double civilianPopulation = this.App.GameDatabase.GetCivilianPopulation(num2, 0, false);
                        if (civilianPopulation > num1)
                        {
                            this._selectedPlanetToEvacuate = num2;
                            num1 = civilianPopulation;
                        }
                    }
                }
            }
            if (this._selectedPlanetToEvacuate == 0)
            {
                return;
            }
            Kerberos.Sots.StarFleet.StarFleet.SetEvacuationMission(this.App.Game, this.SelectedFleet, this.TargetSystem, this._useDirectRoute, this._selectedPlanetToEvacuate, this.GetDesignsToBuild());
            AdmiralInfo admiralInfo = this.App.GameDatabase.GetAdmiralInfo(this.App.GameDatabase.GetFleetInfo(this._selectedFleet).AdmiralID);

            if (admiralInfo != null)
            {
                this.App.PostRequestSpeech(string.Format("STRAT_002-01_{0}_{1}EvacuationMissionConfirmation", (object)this.App.GameDatabase.GetFactionName(this.App.GameDatabase.GetPlayerFactionID(this.App.LocalPlayer.ID)), (object)admiralInfo.GetAdmiralSoundCueContext(this.App.AssetDatabase)), 50, 120, 0.0f);
            }
            FleetUI.SyncPlanetListControl(this.App.Game, this.App.UI.Path(this.ID, "overlayPlanetList"), this.GetMissionTargetPlanets());
            this.App.GetGameState <StarMapState>().RefreshStarmap(StarMapState.StarMapRefreshType.REFRESH_NORMAL);
        }
Exemple #3
0
        public static void OnConstructionPlaced(
            GameSession sim,
            int selectedFleet,
            int targetSystem,
            bool useDirectRoute,
            int selectedPlanet,
            List <int> designsToBuild,
            StationType stationType,
            int?ReBaseTarget,
            bool AskForCompo)
        {
            if (selectedPlanet == 0)
            {
                return;
            }
            Kerberos.Sots.StarFleet.StarFleet.SetConstructionMission(sim, selectedFleet, targetSystem, useDirectRoute, selectedPlanet, designsToBuild, stationType, ReBaseTarget);
            FleetInfo   fleetInfo   = sim.GameDatabase.GetFleetInfo(selectedFleet);
            AdmiralInfo admiralInfo = sim.GameDatabase.GetAdmiralInfo(fleetInfo.AdmiralID);

            if (admiralInfo != null)
            {
                string cueName = string.Format("STRAT_007-01_{0}_{1}ConstructionMissionConfirmation", (object)sim.GameDatabase.GetFactionName(sim.GameDatabase.GetPlayerFactionID(sim.LocalPlayer.ID)), (object)admiralInfo.GetAdmiralSoundCueContext(sim.AssetDatabase));
                sim.App.PostRequestSpeech(cueName, 50, 120, 0.0f);
            }
            if (sim.LocalPlayer.Faction == sim.AssetDatabase.GetFaction("loa") && AskForCompo)
            {
                sim.UI.CreateDialog((Dialog) new DialogLoaFleetSelector(sim.App, MissionType.CONSTRUCT_STN, sim.GameDatabase.GetFleetInfo(selectedFleet), true), null);
            }
            sim.App.GetGameState <StarMapState>().RefreshMission();
        }
Exemple #4
0
        public override void Initialize()
        {
            this._app.UI.SetEnabled(this._app.UI.Path(this.ID, ReactionDialog.UIConfirmButton), false);
            AdmiralInfo admiralInfo = this._app.GameDatabase.GetAdmiralInfo(this._currentReaction.fleet.AdmiralID);

            if (admiralInfo != null)
            {
                this._app.UI.SetText(this._app.UI.Path(this.ID, ReactionDialog.UIAdmiralLabel), admiralInfo.Name);
            }
            this._sky   = new Sky(this._app, SkyUsage.StarMap, 0);
            this._crits = new GameObjectSet(this._app);
            this._crits.Add((IGameObject)this._sky);
            this._cameraReduced                 = new OrbitCameraController(this._app);
            this._cameraReduced.MinDistance     = 2.5f;
            this._cameraReduced.MaxDistance     = 100f;
            this._cameraReduced.DesiredDistance = 50f;
            this._cameraReduced.DesiredYaw      = MathHelper.DegreesToRadians(45f);
            this._cameraReduced.DesiredPitch    = -MathHelper.DegreesToRadians(25f);
            this._cameraReduced.SnapToDesiredPosition();
            this._starmapReduced = new StarMap(this._app, this._app.Game, this._sky);
            this._starmapReduced.Initialize(this._crits);
            this._starmapReduced.SetCamera(this._cameraReduced);
            this._starmapReduced.FocusEnabled = false;
            this._starmapReduced.SetFocus((IGameObject)this._starmapReduced.Systems.Reverse[this._currentReaction.fleet.SystemID]);
            this._starmapReduced.Select((IGameObject)this._starmapReduced.Systems.Reverse[this._currentReaction.fleet.SystemID]);
            this._starmapReduced.SelectEnabled = false;
            this._starmapReduced.PostSetProp("MissionTarget", (object)this._starmapReduced.Systems.Reverse[this._currentReaction.fleet.SystemID].ObjectID, (object)true);
            this._starmapReduced.PostSetProp("CullCenter", this._app.GameDatabase.GetStarSystemInfo(this._currentReaction.fleet.SystemID).Origin);
            this._starmapReduced.PostSetProp("CullRadius", 15f);
            this._app.UI.Send((object)"SetGameObject", (object)this._app.UI.Path(this.ID, "gameStarMapViewport"), (object)this._starmapReduced.ObjectID);
            this._app.UI.SetVisible(this._app.UI.Path(this.ID, "gameStarMapViewport"), true);
            this._app.PostRequestSpeech(string.Format("STRAT_014-01_{0}_{1}AdmiralGetsReactionPhase", (object)this._app.GameDatabase.GetFactionName(this._app.GameDatabase.GetPlayerFactionID(this._app.LocalPlayer.ID)), (object)admiralInfo.GetAdmiralSoundCueContext(this._app.AssetDatabase)), 50, 120, 0.0f);
            this._crits.Activate();
        }
        public static void RefreshFleetAdmiralDetails(App game, int fleetId)
        {
            FleetInfo fleetInfo = game.GameDatabase.GetFleetInfo(fleetId);
            string    str1      = game.GameDatabase.GetFactionName(game.GameDatabase.GetFleetFaction(fleetId));
            string    str2      = string.Empty;
            string    str3      = string.Empty;

            if (fleetInfo.AdmiralID != 0)
            {
                AdmiralInfo admiralInfo = game.GameDatabase.GetAdmiralInfo(fleetInfo.AdmiralID);
                str2 = admiralInfo.Name;
                str3 = StationPlacementState.GetAdmiralTraitsString(game, fleetInfo.AdmiralID);
                str1 = admiralInfo.Race;
            }
            string upperInvariant1 = string.Format(App.Localize("@MISSIONWIDGET_ADMIRAL"), (object)str2).ToUpperInvariant();

            game.UI.SetText("gameAdmiralName", upperInvariant1);
            string upperInvariant2 = string.Format(App.Localize("@MISSIONWIDGET_FLEET"), (object)fleetInfo.Name).ToUpperInvariant();

            game.UI.SetText("gameAdmiralFleet", upperInvariant2);
            string text = string.Format(App.Localize("@MISSIONWIDGET_ADMIRAL_TRAITS"), (object)str3);

            game.UI.SetText("gameAdmiralSkills", text);
            string propertyValue = string.Format("admiral_{0}", (object)str1);

            if (fleetInfo.AdmiralID != 0)
            {
                propertyValue = Kerberos.Sots.StarFleet.StarFleet.GetAdmiralAvatar(game, fleetInfo.AdmiralID);
            }
            game.UI.SetPropertyString("gameAdmiralAvatar", "sprite", propertyValue);
        }
Exemple #6
0
        protected override void OnCommitMission()
        {
            if (this._selectedPlanetForColonize == 0)
            {
                foreach (int starSystemPlanet in this.App.GameDatabase.GetStarSystemPlanets(this.TargetSystem))
                {
                    if (this.App.GameDatabase.CanColonizePlanet(this.App.LocalPlayer.ID, starSystemPlanet, this.App.GetStratModifier <int>(StratModifiers.MaxColonizableHazard, this.App.LocalPlayer.ID)))
                    {
                        this._selectedPlanetForColonize = starSystemPlanet;
                        break;
                    }
                }
            }
            if (this._selectedPlanetForColonize == 0)
            {
                return;
            }
            if (this._app.LocalPlayer.Faction.Name == "loa")
            {
                Kerberos.Sots.StarFleet.StarFleet.ConvertFleetIntoLoaCubes(this._app.Game, this._selectedFleet);
                Kerberos.Sots.StarFleet.StarFleet.BuildFleetFromComposition(this._app.Game, this._selectedFleet, MissionType.COLONIZATION);
                this.RebuildShipLists(this.SelectedFleet);
            }
            Kerberos.Sots.StarFleet.StarFleet.SetColonizationMission(this.App.Game, this.SelectedFleet, this.TargetSystem, this._useDirectRoute, this._selectedPlanetForColonize, this.GetDesignsToBuild(), this.RebaseTarget);
            AdmiralInfo admiralInfo = this.App.GameDatabase.GetAdmiralInfo(this.App.GameDatabase.GetFleetInfo(this._selectedFleet).AdmiralID);

            if (admiralInfo != null)
            {
                this.App.PostRequestSpeech(string.Format("STRAT_002-01_{0}_{1}ColonizationMissionConfirmation", (object)this.App.GameDatabase.GetFactionName(this.App.GameDatabase.GetPlayerFactionID(this.App.LocalPlayer.ID)), (object)admiralInfo.GetAdmiralSoundCueContext(this.App.AssetDatabase)), 50, 120, 0.0f);
            }
            FleetUI.SyncPlanetListControl(this.App.Game, this.App.UI.Path(this.ID, "overlayPlanetList"), this.GetMissionTargetPlanets());
            this.App.GetGameState <StarMapState>().RefreshMission();
        }
		protected override void OnCommitMission()
		{
			Kerberos.Sots.StarFleet.StarFleet.SetFleetInterceptMission(this.App.Game, this.SelectedFleet, this.TargetFleet, this._useDirectRoute, this.GetDesignsToBuild());
			AdmiralInfo admiralInfo = this.App.GameDatabase.GetAdmiralInfo(this.App.GameDatabase.GetFleetInfo(this._selectedFleet).AdmiralID);
			if (admiralInfo != null)
				this.App.PostRequestSpeech(string.Format("STRAT_010-01_{0}_{1}InterceptMissionConfirmation", (object)this.App.GameDatabase.GetFactionName(this.App.GameDatabase.GetPlayerFactionID(this.App.LocalPlayer.ID)), (object)admiralInfo.GetAdmiralSoundCueContext(this.App.AssetDatabase)), 50, 120, 0.0f);
			this.App.GetGameState<StarMapState>().RefreshMission();
		}
Exemple #8
0
 protected override void OnPanelMessage(string panelName, string msgType, string[] msgParams)
 {
     if (!(msgType == "button_clicked"))
     {
         return;
     }
     if (panelName == "btnOk")
     {
         if (this.mission != null)
         {
             FleetInfo fleetInfo = this._app.GameDatabase.GetFleetInfo(this.mission.FleetID);
             if (fleetInfo == null)
             {
                 this._app.GameDatabase.RemoveMission(this.mission.ID);
                 return;
             }
             AdmiralInfo admiralInfo = this._app.GameDatabase.GetAdmiralInfo(fleetInfo.AdmiralID);
             if (admiralInfo != null)
             {
                 this._app.PostRequestSpeech(string.Format("STRAT_009-01_{0}_{1}UniversalMissionComplete", (object)this._app.GameDatabase.GetFactionName(this._app.GameDatabase.GetPlayerFactionID(this._app.LocalPlayer.ID)), (object)admiralInfo.GetAdmiralSoundCueContext(this._app.AssetDatabase)), 50, 120, 0.0f);
             }
         }
         this._app.UI.CloseDialog((Dialog)this, true);
     }
     else
     {
         if (!(panelName == "btnSupport"))
         {
             return;
         }
         List <WaypointInfo> list = this._app.GameDatabase.GetWaypointsByMissionID(this.mission.ID).ToList <WaypointInfo>();
         foreach (WaypointInfo waypointInfo in list)
         {
             this._app.GameDatabase.RemoveWaypoint(waypointInfo.ID);
         }
         FleetInfo fleetInfo       = this._app.GameDatabase.GetFleetInfo(this.mission.FleetID);
         int       numSupportTrips = this._app.Game.GetNumSupportTrips(this.mission);
         for (int index = 0; index < numSupportTrips; ++index)
         {
             if (this.mission.TargetSystemID != fleetInfo.SupportingSystemID)
             {
                 this._app.GameDatabase.InsertWaypoint(this.mission.ID, WaypointType.TravelTo, new int?(this.mission.TargetSystemID));
             }
             this._app.GameDatabase.InsertWaypoint(this.mission.ID, WaypointType.DoMission, new int?());
             if (this.mission.TargetSystemID != fleetInfo.SupportingSystemID)
             {
                 this._app.GameDatabase.InsertWaypoint(this.mission.ID, WaypointType.ReturnHome, new int?());
             }
         }
         this._app.GameDatabase.InsertWaypoint(this.mission.ID, WaypointType.CheckSupportColony, new int?());
         foreach (WaypointInfo waypointInfo in list)
         {
             this._app.GameDatabase.InsertWaypoint(this.mission.ID, waypointInfo.Type, waypointInfo.SystemID);
         }
         this._app.UI.CloseDialog((Dialog)this, true);
     }
 }
        protected override void OnCommitMission()
        {
            if (this.CaravanMode && this.CaravanFleet.HasValue)
            {
                this.SelectedFleet = this.CaravanFleet.Value;
            }
            if (this._app.LocalPlayer.Faction.Name == "loa")
            {
                Kerberos.Sots.StarFleet.StarFleet.ConvertFleetIntoLoaCubes(this._app.Game, this._selectedFleet);
                Kerberos.Sots.StarFleet.StarFleet.BuildFleetFromComposition(this._app.Game, this._selectedFleet, MissionType.NO_MISSION);
                this.RebuildShipLists(this.SelectedFleet);
            }
            Kerberos.Sots.StarFleet.StarFleet.SetRelocationMission(this.App.Game, this.SelectedFleet, this.TargetSystem, this._useDirectRoute, this.GetDesignsToBuild());
            FleetInfo   fleetInfo   = this.App.GameDatabase.GetFleetInfo(this._selectedFleet);
            AdmiralInfo admiralInfo = this.App.GameDatabase.GetAdmiralInfo(fleetInfo.AdmiralID);

            if (admiralInfo != null)
            {
                this.App.PostRequestSpeech(string.Format("STRAT_011-01_{0}_{1}TransferMissionConfirmation", (object)this.App.GameDatabase.GetFactionName(this.App.GameDatabase.GetPlayerFactionID(this.App.LocalPlayer.ID)), (object)admiralInfo.GetAdmiralSoundCueContext(this.App.AssetDatabase)), 50, 120, 0.0f);
            }
            if (this.CaravanMode && this.CaravanFleet.HasValue)
            {
                List <FreighterInfo> list = this.App.GameDatabase.GetFreighterInfosForSystem(fleetInfo.SystemID).Where <FreighterInfo>((Func <FreighterInfo, bool>)(x =>
                {
                    if (x.PlayerId == this.App.LocalPlayer.ID)
                    {
                        return(x.IsPlayerBuilt);
                    }
                    return(false);
                })).ToList <FreighterInfo>();
                foreach (ShipInfo shipInfo in this.App.GameDatabase.GetShipInfoByFleetID(this.CaravanFleet.Value, false).ToList <ShipInfo>())
                {
                    ShipInfo ship = shipInfo;
                    if (list.Any <FreighterInfo>((Func <FreighterInfo, bool>)(x => x.ShipId == ship.ID)))
                    {
                        this.App.GameDatabase.RemoveFreighterInfo(list.First <FreighterInfo>((Func <FreighterInfo, bool>)(x => x.ShipId == ship.ID)).ID);
                    }
                }
            }
            this.App.GetGameState <StarMapState>().RefreshMission();
            this.CaravanFleet = new int?();
            this.SelectedCaravanSourceSystem = new int?();
            if (this._fleetWidget.SyncedFleets != null)
            {
                this._fleetWidget.SetSyncedFleets(this._fleetWidget.SyncedFleets);
            }
            if (this._RelocatefleetWidget.SyncedFleets != null)
            {
                this._RelocatefleetWidget.SetSyncedFleets(this._RelocatefleetWidget.SyncedFleets);
            }
            this.EnterAssetRelocateMode(false);
        }
        public static void OnSpecialConstructionPlaced(
            GameSession sim,
            int selectedFleet,
            int targetFleet,
            bool useDirectRoute,
            List <int> designsToBuild,
            StationType stationType)
        {
            Kerberos.Sots.StarFleet.StarFleet.SetSpecialConstructionMission(sim, selectedFleet, targetFleet, useDirectRoute, designsToBuild, stationType);
            FleetInfo   fleetInfo   = sim.GameDatabase.GetFleetInfo(selectedFleet);
            AdmiralInfo admiralInfo = sim.GameDatabase.GetAdmiralInfo(fleetInfo.AdmiralID);

            if (admiralInfo != null)
            {
                string cueName = string.Format("STRAT_007-01_{0}_{1}ConstructionMissionConfirmation", (object)sim.GameDatabase.GetFactionName(sim.GameDatabase.GetPlayerFactionID(sim.LocalPlayer.ID)), (object)admiralInfo.GetAdmiralSoundCueContext(sim.AssetDatabase));
                sim.App.PostRequestSpeech(cueName, 50, 120, 0.0f);
            }
            sim.App.GetGameState <StarMapState>().RefreshStarmap(StarMapState.StarMapRefreshType.REFRESH_NORMAL);
        }
        public void RefreshDisplay()
        {
            List <AdmiralInfo>       list1         = this._app.GameDatabase.GetAdmiralInfosForPlayer(this._playerID).ToList <AdmiralInfo>();
            IEnumerable <SuulkaInfo> playerSuulkas = this._app.GameDatabase.GetPlayerSuulkas(new int?(this._playerID));

            foreach (SuulkaInfo suulkaInfo in playerSuulkas)
            {
                if (suulkaInfo.AdmiralID != 0)
                {
                    list1.Add(this._app.GameDatabase.GetAdmiralInfo(suulkaInfo.AdmiralID));
                }
            }
            List <AdmiralInfo> list2 = list1.ToList <AdmiralInfo>();

            switch (this._currentFilterMode)
            {
            case AdmiralManagerDialog.AdmiralFilterMode.Age:
                list2 = list2.OrderBy <AdmiralInfo, float>((Func <AdmiralInfo, float>)(x => x.Age)).ToList <AdmiralInfo>();
                break;

            case AdmiralManagerDialog.AdmiralFilterMode.Name:
                list2 = list2.OrderBy <AdmiralInfo, string>((Func <AdmiralInfo, string>)(x => x.Name)).ToList <AdmiralInfo>();
                break;

            case AdmiralManagerDialog.AdmiralFilterMode.Location:
                list2 = list2.OrderBy <AdmiralInfo, string>((Func <AdmiralInfo, string>)(x => this.GetLocation(x.ID))).ToList <AdmiralInfo>();
                break;

            case AdmiralManagerDialog.AdmiralFilterMode.Fleet:
                list2 = list2.OrderBy <AdmiralInfo, string>((Func <AdmiralInfo, string>)(x => this.GetFleetName(x.ID))).ToList <AdmiralInfo>();
                break;
            }
            this._app.UI.ClearItemsTopLayer(this._app.UI.Path(this.ID, "pnlAdmirals.admiralList"));
            this._app.UI.SetPropertyString(this._app.UI.Path(this.ID, "currentNumAdmirals"), "text", string.Format(App.Localize("@NUMBER_OF_ADMIRALS"), (object)list2.Count <AdmiralInfo>().ToString(), (object)GameSession.GetPlayerMaxAdmirals(this._app.GameDatabase, this._playerID).ToString()));
            this._app.UI.SetPropertyString(this._app.UI.Path(this.ID, "capturedAdmirals"), "text", string.Format(App.Localize("@NUMBER_OF_CAPTURED_ADMIRALS"), (object)list2.Count <AdmiralInfo>().ToString()));
            this._app.UI.SetPropertyString(this._app.UI.Path(this.ID, "enemyAdmirals"), "text", string.Format(App.Localize("@NUMBER_OF_ENEMY_ADMIRALS")));
            int index = 0;

            foreach (AdmiralInfo admiralInfo in list2)
            {
                AdmiralInfo admiral = admiralInfo;
                if (index + 1 > this._buttonMap.Count)
                {
                    this._buttonMap.Add(admiral.ID);
                }
                else
                {
                    this._buttonMap[index] = admiral.ID;
                }
                this._app.UI.AddItem(this._app.UI.Path(this.ID, "pnlAdmirals.admiralList"), "", admiral.ID, "");
                string itemGlobalId1 = this._app.UI.GetItemGlobalID(this._app.UI.Path(this.ID, "pnlAdmirals.admiralList"), "", admiral.ID, "");
                this._app.UI.SetVisible(this._app.UI.Path(itemGlobalId1, "fleetitem.expand_button"), false);
                string str = "Deep Space";
                if (admiral.HomeworldID.HasValue)
                {
                    str = this._app.GameDatabase.GetOrbitalObjectInfo(admiral.HomeworldID.Value).Name;
                }
                this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId1, "dissolveButton"), "id", "dissolveButton" + index.ToString());
                this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId1, "cancelMissionButton"), "id", "cancelMissionButton" + index.ToString());
                this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId1, "createFleetButton"), "id", "createFleetButton" + index.ToString());
                this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId1, "createEngramButton"), "id", "createEngramButton" + index.ToString());
                if (!admiral.Engram && this._app.GameDatabase.PlayerHasTech(this._app.LocalPlayer.ID, "CCC_Personality_Engrams"))
                {
                    this._app.UI.SetVisible(this._app.UI.Path(itemGlobalId1, "createEngramButton" + index.ToString()), true);
                }
                else
                {
                    this._app.UI.SetVisible(this._app.UI.Path(itemGlobalId1, "createEngramButton" + index.ToString()), false);
                }
                FleetInfo fleetInfoByAdmiralId = this._app.GameDatabase.GetFleetInfoByAdmiralID(admiral.ID, FleetType.FL_NORMAL);
                if (fleetInfoByAdmiralId != null)
                {
                    this._app.UI.SetVisible(this._app.UI.Path(itemGlobalId1, "fleetitem.expand_button"), false);
                    this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId1, "fleetitem.header_idle.idle.list_item.listitem_name"), "text", fleetInfoByAdmiralId.Name);
                    this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId1, "fleetitem.header_idle.mouse_over.list_item.listitem_name"), "text", fleetInfoByAdmiralId.Name);
                    this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId1, "fleetitem.header_sel.idle.list_item.listitem_name"), "text", fleetInfoByAdmiralId.Name);
                    this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId1, "fleetitem.header_sel.mouse_over.list_item.listitem_name"), "text", fleetInfoByAdmiralId.Name);
                    PlayerInfo playerInfo = this._app.GameDatabase.GetPlayerInfo(fleetInfoByAdmiralId.PlayerID);
                    this._app.UI.SetPropertyColor(this._app.UI.Path(itemGlobalId1, "fleetitem.header_idle.idle.list_item.colony_insert.LC"), "color", playerInfo.PrimaryColor * (float)byte.MaxValue);
                    this._app.UI.SetPropertyColor(this._app.UI.Path(itemGlobalId1, "fleetitem.header_idle.idle.list_item.colony_insert.RC"), "color", playerInfo.PrimaryColor * (float)byte.MaxValue);
                    this._app.UI.SetPropertyColor(this._app.UI.Path(itemGlobalId1, "fleetitem.header_idle.idle.list_item.colony_insert.BG"), "color", playerInfo.PrimaryColor * (float)byte.MaxValue);
                    this._app.UI.SetPropertyColor(this._app.UI.Path(itemGlobalId1, "fleetitem.header_idle.mouse_over.list_item.colony_insert.LC"), "color", playerInfo.PrimaryColor * (float)byte.MaxValue);
                    this._app.UI.SetPropertyColor(this._app.UI.Path(itemGlobalId1, "fleetitem.header_idle.mouse_over.list_item.colony_insert.RC"), "color", playerInfo.PrimaryColor * (float)byte.MaxValue);
                    this._app.UI.SetPropertyColor(this._app.UI.Path(itemGlobalId1, "fleetitem.header_idle.mouse_over.list_item.colony_insert.BG"), "color", playerInfo.PrimaryColor * (float)byte.MaxValue);
                    this._app.UI.SetPropertyColor(this._app.UI.Path(itemGlobalId1, "fleetitem.header_idle.disabled.list_item.colony_insert.LC"), "color", playerInfo.PrimaryColor * (float)byte.MaxValue * 0.5f);
                    this._app.UI.SetPropertyColor(this._app.UI.Path(itemGlobalId1, "fleetitem.header_idle.disabled.list_item.colony_insert.RC"), "color", playerInfo.PrimaryColor * (float)byte.MaxValue * 0.5f);
                    this._app.UI.SetPropertyColor(this._app.UI.Path(itemGlobalId1, "fleetitem.header_idle.disabled.list_item.colony_insert.BG"), "color", playerInfo.PrimaryColor * (float)byte.MaxValue * 0.5f);
                    this._app.UI.SetPropertyColor(this._app.UI.Path(itemGlobalId1, "fleetitem.header_sel.idle.list_item.colony_insert.LC"), "color", playerInfo.PrimaryColor * (float)byte.MaxValue);
                    this._app.UI.SetPropertyColor(this._app.UI.Path(itemGlobalId1, "fleetitem.header_sel.idle.list_item.colony_insert.RC"), "color", playerInfo.PrimaryColor * (float)byte.MaxValue);
                    this._app.UI.SetPropertyColor(this._app.UI.Path(itemGlobalId1, "fleetitem.header_sel.idle.list_item.colony_insert.BG"), "color", playerInfo.PrimaryColor * (float)byte.MaxValue);
                    this._app.UI.SetPropertyColor(this._app.UI.Path(itemGlobalId1, "fleetitem.header_sel.mouse_over.list_item.colony_insert.LC"), "color", playerInfo.PrimaryColor * (float)byte.MaxValue);
                    this._app.UI.SetPropertyColor(this._app.UI.Path(itemGlobalId1, "fleetitem.header_sel.mouse_over.list_item.colony_insert.RC"), "color", playerInfo.PrimaryColor * (float)byte.MaxValue);
                    this._app.UI.SetPropertyColor(this._app.UI.Path(itemGlobalId1, "fleetitem.header_sel.mouse_over.list_item.colony_insert.BG"), "color", playerInfo.PrimaryColor * (float)byte.MaxValue);
                    StarSystemInfo starSystemInfo = this._app.GameDatabase.GetStarSystemInfo(fleetInfoByAdmiralId.SystemID);
                    str = !(starSystemInfo != (StarSystemInfo)null) ? "Deep Space" : starSystemInfo.Name;
                    MissionInfo missionByFleetId = this._app.GameDatabase.GetMissionByFleetID(fleetInfoByAdmiralId.ID);
                    if (missionByFleetId != null)
                    {
                        this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId1, "fleetitem.sub_title"), "text", fleetInfoByAdmiralId.Name);
                        this._app.UI.SetVisible(this._app.UI.Path(itemGlobalId1, "cancelMissionButton" + index.ToString()), true);
                    }
                    else
                    {
                        this._app.UI.SetVisible(this._app.UI.Path(itemGlobalId1, "fleetitem.on_mission"), false);
                        this._app.UI.SetVisible(this._app.UI.Path(itemGlobalId1, "cancelMissionButton" + index.ToString()), false);
                    }
                    this._app.UI.SetVisible(this._app.UI.Path(itemGlobalId1, "createFleetButton" + index.ToString()), false);
                    this._app.UI.SetVisible(this._app.UI.Path(itemGlobalId1, "fleetitem"), true);
                    this._app.UI.SetVisible(this._app.UI.Path(itemGlobalId1, "dissolveButton" + index.ToString()), (missionByFleetId != null ? 0 : (!playerSuulkas.Any <SuulkaInfo>((Func <SuulkaInfo, bool>)(x => x.AdmiralID == admiral.ID)) ? 1 : 0)) != 0);
                }
                else
                {
                    this._app.UI.SetVisible(this._app.UI.Path(itemGlobalId1, "fleetitem"), false);
                    this._app.UI.SetVisible(this._app.UI.Path(itemGlobalId1, "dissolveButton" + index.ToString()), false);
                    this._app.UI.SetVisible(this._app.UI.Path(itemGlobalId1, "createFleetButton" + index.ToString()), (!playerSuulkas.Any <SuulkaInfo>((Func <SuulkaInfo, bool>)(x => x.AdmiralID == admiral.ID)) ? 1 : 0) != 0);
                }
                this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId1, "admiralName"), "text", string.Format(App.Localize("@ADMIRAL_DIALOG_NAME_COLON"), (object)admiral.Name));
                this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId1, "admiralLocation"), "text", string.Format(App.Localize("@ADMIRAL_DIALOG_LOCATION_COLON"), (object)str));
                this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId1, "admiralAge"), "text", string.Format(App.Localize("@ADMIRAL_DIALOG_AGE_COLON"), (object)((int)admiral.Age).ToString()));
                string admiralAvatar = Kerberos.Sots.StarFleet.StarFleet.GetAdmiralAvatar(this._app, admiral.ID);
                this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId1, "admiralImage"), "sprite", admiralAvatar);
                IEnumerable <AdmiralInfo.TraitType> admiralTraits = this._app.GameDatabase.GetAdmiralTraits(admiral.ID);
                this._app.UI.ClearItems(this._app.UI.Path(itemGlobalId1, "admiralTraits"));
                int userItemId = 0;
                foreach (AdmiralInfo.TraitType traitType in admiralTraits)
                {
                    string admiralTraitText = OverlayMission.GetAdmiralTraitText(traitType);
                    if (traitType != admiralTraits.Last <AdmiralInfo.TraitType>())
                    {
                        admiralTraitText += ", ";
                    }
                    this._app.UI.AddItem(this._app.UI.Path(itemGlobalId1, "admiralTraits"), "", userItemId, "");
                    string itemGlobalId2 = this._app.UI.GetItemGlobalID(this._app.UI.Path(itemGlobalId1, "admiralTraits"), "", userItemId, "");
                    ++userItemId;
                    this._app.UI.SetPropertyString(itemGlobalId2, "text", admiralTraitText);
                    if (AdmiralInfo.IsGoodTrait(traitType))
                    {
                        this._app.UI.SetPropertyColorNormalized(itemGlobalId2, "color", new Vector3(0.0f, 1f, 0.0f));
                    }
                    else
                    {
                        this._app.UI.SetPropertyColorNormalized(itemGlobalId2, "color", new Vector3(1f, 0.0f, 0.0f));
                    }
                    this._app.UI.SetTooltip(itemGlobalId2, AdmiralInfo.GetTraitDescription(traitType, this._app.GameDatabase.GetLevelForAdmiralTrait(admiral.ID, traitType)));
                }
                string itemGlobalId3 = this._app.UI.GetItemGlobalID(this._app.UI.Path(itemGlobalId1, "infoList"), "", 0, "");
                this._app.UI.Send((object)"SetSelected", (object)itemGlobalId3, (object)true);
                string propertyValue = admiral.HomeworldID.HasValue ? string.Format(App.Localize("@ADMIRAL_BIRTHPLANET_X"), (object)this._app.GameDatabase.GetOrbitalObjectInfo(admiral.HomeworldID.Value).Name) : App.Localize("@ADMIRAL_BORN_IN_SPACE");
                this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId3, "admiralBirthPlanet"), "text", propertyValue);
                this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId3, "admiralYears"), "text", string.Format(App.Localize("@YEARS_AS_ADMIRAL"), (object)((this._app.GameDatabase.GetTurnCount() - admiral.TurnCreated) / 4).ToString()));
                this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId3, "admiralLoyalty"), "text", string.Format(App.Localize("@ADMIRAL_LOYALTY"), (object)admiral.Loyalty.ToString()));
                this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId3, "admiralReaction"), "text", string.Format(App.Localize("@ADMIRAL_REACTION"), (object)admiral.ReactionBonus.ToString()));
                this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId3, "admiralEvasion"), "text", string.Format(App.Localize("@ADMIRAL_EVASION"), (object)admiral.EvasionBonus.ToString()));
                string itemGlobalId4 = this._app.UI.GetItemGlobalID(this._app.UI.Path(itemGlobalId1, "infoList"), "", 1, "");
                this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId4, "battlesWon"), "text", string.Format(App.Localize("@ADMIRAL_BATTLES_WON"), (object)admiral.BattlesWon.ToString()));
                this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId4, "battlesFought"), "text", string.Format(App.Localize("@ADMIRAL_BATTLES_FOUGHT"), (object)admiral.BattlesFought.ToString()));
                this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId4, "missionsAssigned"), "text", string.Format(App.Localize("@ADMIRAL_MISSIONS_ASSIGNED"), (object)admiral.MissionsAssigned.ToString()));
                this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId4, "missionsAccomplished"), "text", string.Format(App.Localize("@ADMIRAL_MISSIONS_ACCOMPLISHED"), (object)admiral.MissionsAccomplished.ToString()));
                ++index;
            }
        }
 protected override void OnPanelMessage(string panelName, string msgType, string[] msgParams)
 {
     if (msgType == "button_clicked")
     {
         if (panelName == "okButton")
         {
             this._app.UI.CloseDialog((Dialog)this, true);
         }
         else if (panelName.StartsWith("createEngramButton"))
         {
             this._currentAdmiralID           = this._buttonMap[int.Parse(panelName.Substring(18))];
             this._confirmCreateAdmiralEngram = this._app.UI.CreateDialog((Dialog) new GenericQuestionDialog(this._app, App.Localize("@UI_FLEET_DIALOG_CREATE_ENGRAM_TITLE"), string.Format(App.Localize("@UI_FLEET_DIALOG_CREATE_ENGRAM_DESC"), (object)this._app.GameDatabase.GetAdmiralInfo(this._currentAdmiralID).Name), "dialogGenericQuestion"), null);
         }
         else if (panelName.StartsWith("cancelMissionButton"))
         {
             int index = int.Parse(panelName.Substring(19));
             this._fleetToCancel              = this._app.GameDatabase.GetFleetInfoByAdmiralID(this._buttonMap[index], FleetType.FL_NORMAL).ID;
             this._currentAdmiralID           = this._buttonMap[index];
             this._confirmCancelMissionDialog = this._app.UI.CreateDialog((Dialog) new GenericQuestionDialog(this._app, App.Localize("@UI_FLEET_DIALOG_CANCELMISSION_TITLE"), string.Format(App.Localize("@UI_FLEET_DIALOG_CANCELMISSION_DESC"), (object)this._app.GameDatabase.GetFleetInfo(this._fleetToCancel).Name), "dialogGenericQuestion"), null);
         }
         else if (panelName.StartsWith("dissolveButton"))
         {
             int index = int.Parse(panelName.Substring(14));
             this._fleetToDissolve  = this._app.GameDatabase.GetFleetInfoByAdmiralID(this._buttonMap[index], FleetType.FL_NORMAL).ID;
             this._currentAdmiralID = this._buttonMap[index];
             if (this._app.GameDatabase.GetMissionByFleetID(this._fleetToDissolve) == null && !Kerberos.Sots.StarFleet.StarFleet.IsSuulkaFleet(this._app.GameDatabase, this._app.GameDatabase.GetFleetInfo(this._fleetToDissolve)))
             {
                 this._confirmFleetDisolveDialog = this._app.UI.CreateDialog((Dialog) new GenericQuestionDialog(this._app, App.Localize("@UI_FLEET_DIALOG_DISSOLVEFLEET_TITLE"), string.Format(App.Localize("@UI_FLEET_DIALOG_DISSOLVEFLEET_DESC"), (object)this._app.GameDatabase.GetFleetInfo(this._fleetToDissolve).Name), "dialogGenericQuestion"), null);
             }
             else
             {
                 this._app.UI.CreateDialog((Dialog) new GenericTextDialog(this._app, App.Localize("@UI_FLEET_DIALOG_CANNOTDISSOLVE_TITLE"), App.Localize("@UI_FLEET_DIALOG_CANNOTDISSOLVE_DESC"), "dialogGenericMessage"), null);
             }
         }
         else
         {
             if (!panelName.StartsWith("createFleetButton"))
             {
                 return;
             }
             AdmiralInfo admiralInfo    = this._app.GameDatabase.GetAdmiralInfo(this._buttonMap[int.Parse(panelName.Substring(17))]);
             ShipInfo    shipInfo1      = (ShipInfo)null;
             DesignInfo  designInfo1    = (DesignInfo)null;
             int?        reserveFleetId = this._app.GameDatabase.GetReserveFleetID(this._playerID, this._currentSystemID);
             if (reserveFleetId.HasValue)
             {
                 if (this._app.LocalPlayer.Faction.Name == "loa")
                 {
                     Kerberos.Sots.StarFleet.StarFleet.ConvertFleetIntoLoaCubes(this._app.Game, reserveFleetId.Value);
                     int fleetLoaCubeValue = Kerberos.Sots.StarFleet.StarFleet.GetFleetLoaCubeValue(this._app.Game, reserveFleetId.Value);
                     designInfo1 = (DesignInfo)null;
                     foreach (DesignInfo designInfo2 in this._app.GameDatabase.GetDesignInfosForPlayer(this._playerID).Where <DesignInfo>((Func <DesignInfo, bool>)(x =>
                     {
                         if (x.Class == ShipClass.Cruiser)
                         {
                             return(x.GetCommandPoints() > 0);
                         }
                         return(false);
                     })).ToList <DesignInfo>())
                     {
                         if (designInfo1 == null)
                         {
                             designInfo1 = designInfo2;
                         }
                         else if (designInfo1.ProductionCost > designInfo2.ProductionCost)
                         {
                             designInfo1 = designInfo2;
                         }
                     }
                     if (designInfo1 != null && designInfo1.ProductionCost > fleetLoaCubeValue)
                     {
                         designInfo1 = (DesignInfo)null;
                     }
                 }
                 else
                 {
                     foreach (ShipInfo shipInfo2 in this._app.GameDatabase.GetShipInfoByFleetID(reserveFleetId.Value, false))
                     {
                         if (this._app.GameDatabase.GetShipCommandPointQuota(shipInfo2.ID) > 0)
                         {
                             shipInfo1 = shipInfo2;
                             break;
                         }
                     }
                 }
             }
             if (shipInfo1 == null && designInfo1 == null)
             {
                 this._app.UI.CreateDialog((Dialog) new GenericTextDialog(this._app, App.Localize("@UI_FLEET_DIALOG_CANNOTCREATEFLEET_TITLE"), App.Localize("@UI_FLEET_DIALOG_CANNOTCREATEFLEET_DESC"), "dialogGenericMessage"), null);
             }
             else
             {
                 this._currentAdmiralID = admiralInfo.ID;
                 if (shipInfo1 != null)
                 {
                     this._currentShipID = shipInfo1.ID;
                 }
                 if (designInfo1 != null)
                 {
                     this._currentDesignID = designInfo1.ID;
                 }
                 this._nameFleetDialog = this._app.UI.CreateDialog((Dialog) new GenericTextEntryDialog(this._app, App.Localize("@UI_FLEET_DIALOG_FLEETNAME_TITLE"), App.Localize("@UI_FLEET_DIALOG_FLEETNAME_DESC"), this._app.GameDatabase.ResolveNewFleetName(this._app, this._playerID, this._app.Game.NamesPool.GetFleetName(this._app.GameDatabase.GetFactionName(this._app.GameDatabase.GetPlayerFactionID(this._playerID)))), 24, 1, true, EditBoxFilterMode.None), null);
             }
         }
     }
     else if (msgType == "dialog_closed")
     {
         if (panelName == this._confirmCancelMissionDialog)
         {
             if (!bool.Parse(msgParams[0]))
             {
                 return;
             }
             FleetInfo fleetInfo = this._app.GameDatabase.GetFleetInfo(this._fleetToCancel);
             this._app.PostRequestSpeech(string.Format("STRAT_008-01_{0}_{1}UniversalMissionNegation", (object)this._app.GameDatabase.GetFactionName(this._app.GameDatabase.GetPlayerFactionID(this._app.LocalPlayer.ID)), (object)this._app.GameDatabase.GetAdmiralInfo(fleetInfo.AdmiralID).GetAdmiralSoundCueContext(this._app.AssetDatabase)), 50, 120, 0.0f);
             Kerberos.Sots.StarFleet.StarFleet.CancelMission(this._app.Game, fleetInfo, true);
         }
         else if (panelName == this._confirmCreateAdmiralEngram)
         {
             if (!bool.Parse(msgParams[0]))
             {
                 return;
             }
             AdmiralInfo admiralInfo = this._app.GameDatabase.GetAdmiralInfo(this._currentAdmiralID);
             if (admiralInfo != null)
             {
                 this._app.GameDatabase.UpdateEngram(admiralInfo.ID, true);
             }
             this.RefreshAdmiral(this._currentAdmiralID);
         }
         else if (panelName == this._confirmFleetDisolveDialog)
         {
             if (!bool.Parse(msgParams[0]))
             {
                 return;
             }
             FleetInfo fleetInfo      = this._app.GameDatabase.GetFleetInfo(this._fleetToDissolve);
             int?      reserveFleetId = this._app.GameDatabase.GetReserveFleetID(this._playerID, fleetInfo.SystemID);
             if (!reserveFleetId.HasValue)
             {
                 return;
             }
             foreach (ShipInfo shipInfo in (IEnumerable <ShipInfo>) this._app.GameDatabase.GetShipInfoByFleetID(fleetInfo.ID, false).ToList <ShipInfo>())
             {
                 this._app.GameDatabase.TransferShip(shipInfo.ID, reserveFleetId.Value);
             }
             this._app.GameDatabase.RemoveFleet(this._fleetToDissolve);
             this.RefreshAdmiral(this._currentAdmiralID);
         }
         else if (panelName == this._nameFleetDialog)
         {
             if (!bool.Parse(msgParams[0]))
             {
                 return;
             }
             int num = this._app.GameDatabase.InsertFleet(this._playerID, this._currentAdmiralID, this._currentSystemID, this._currentSystemID, this._app.GameDatabase.ResolveNewFleetName(this._app, this._playerID, msgParams[1]), FleetType.FL_NORMAL);
             if (this._app.LocalPlayer.Faction.Name == "loa")
             {
                 FleetInfo fleetInfo = this._app.GameDatabase.GetFleetsByPlayerAndSystem(this._playerID, this._currentSystemID, FleetType.FL_RESERVE).First <FleetInfo>();
                 if (fleetInfo != null)
                 {
                     ShipInfo   shipInfo   = this._app.GameDatabase.GetShipInfoByFleetID(fleetInfo.ID, true).FirstOrDefault <ShipInfo>((Func <ShipInfo, bool>)(x => x.DesignInfo.IsLoaCube()));
                     DesignInfo designInfo = this._app.GameDatabase.GetDesignInfo(this._currentDesignID);
                     if (shipInfo != null && designInfo != null)
                     {
                         this._transfercubesDialog = this._app.UI.CreateDialog((Dialog) new DialogLoaShipTransfer(this._app, num, fleetInfo.ID, shipInfo.ID, designInfo.ProductionCost), null);
                     }
                 }
             }
             else
             {
                 this._app.GameDatabase.TransferShip(this._currentShipID, num);
                 this._app.UI.CreateDialog((Dialog) new FleetCompositorDialog(this._app, this._currentSystemID, num, "dialogFleetCompositor"), null);
             }
             this.RefreshAdmiral(this._currentAdmiralID);
         }
         else
         {
             if (!(panelName == this._transfercubesDialog) || ((IEnumerable <string>)msgParams).Count <string>() != 4)
             {
                 return;
             }
             int fleetID = int.Parse(msgParams[0]);
             int.Parse(msgParams[1]);
             int      shipID    = int.Parse(msgParams[2]);
             int      Loacubes  = int.Parse(msgParams[3]);
             ShipInfo shipInfo1 = this._app.GameDatabase.GetShipInfo(shipID, true);
             ShipInfo shipInfo2 = this._app.GameDatabase.GetShipInfoByFleetID(fleetID, false).FirstOrDefault <ShipInfo>((Func <ShipInfo, bool>)(x => x.DesignInfo.IsLoaCube()));
             if (shipInfo2 == null)
             {
                 this._app.GameDatabase.InsertShip(fleetID, shipInfo1.DesignInfo.ID, "Cube", (ShipParams)0, new int?(), Loacubes);
             }
             else
             {
                 this._app.GameDatabase.UpdateShipLoaCubes(shipInfo2.ID, shipInfo2.LoaCubes + Loacubes);
             }
             if (shipInfo1.LoaCubes <= Loacubes)
             {
                 this._app.GameDatabase.RemoveShip(shipInfo1.ID);
             }
             else
             {
                 this._app.GameDatabase.UpdateShipLoaCubes(shipInfo1.ID, shipInfo1.LoaCubes - Loacubes);
             }
             if (!this.ComposeFleet)
             {
                 return;
             }
             if (this._app.LocalPlayer.Faction.Name != "loa")
             {
                 this._app.UI.CreateDialog((Dialog) new FleetCompositorDialog(this._app, this._currentSystemID, fleetID, "dialogFleetCompositor"), null);
             }
             else
             {
                 if (this._app.CurrentState == this._app.GetGameState <StarMapState>())
                 {
                     this._app.GetGameState <StarMapState>().RefreshStarmap(StarMapState.StarMapRefreshType.REFRESH_NORMAL);
                 }
                 if (this._app.CurrentState == this._app.GetGameState <FleetManagerState>())
                 {
                     this._app.GetGameState <FleetManagerState>().Refresh();
                 }
             }
             this._app.UI.CloseDialog((Dialog)this, true);
         }
     }
     else
     {
         if (!(msgType == "list_sel_changed") || !(panelName == "filterDropdown"))
         {
             return;
         }
         this._currentFilterMode = (AdmiralManagerDialog.AdmiralFilterMode) int.Parse(msgParams[0]);
         this.RefreshDisplay();
     }
 }
        public void RefreshAdmiral(int admiralID)
        {
            string      itemGlobalId1 = this._app.UI.GetItemGlobalID(this._app.UI.Path(this.ID, "pnlAdmirals.admiralList"), "", admiralID, "");
            AdmiralInfo admiralInfo   = this._app.GameDatabase.GetAdmiralInfo(admiralID);
            int         num1          = this._buttonMap.IndexOf(admiralID);

            this._app.UI.SetVisible(this._app.UI.Path(itemGlobalId1, "fleetitem.expand_button"), false);
            string    str = App.Localize("@ADMIRAL_IN_DEEP_SPACE");
            FleetInfo fleetInfoByAdmiralId = this._app.GameDatabase.GetFleetInfoByAdmiralID(admiralID, FleetType.FL_NORMAL);

            if (fleetInfoByAdmiralId != null)
            {
                this._app.UI.SetVisible(this._app.UI.Path(itemGlobalId1, "fleetitem.expand_button"), false);
                this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId1, "fleetitem.header_idle.idle.list_item.listitem_name"), "text", fleetInfoByAdmiralId.Name);
                this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId1, "fleetitem.header_idle.mouse_over.list_item.listitem_name"), "text", fleetInfoByAdmiralId.Name);
                this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId1, "fleetitem.header_sel.idle.list_item.listitem_name"), "text", fleetInfoByAdmiralId.Name);
                this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId1, "fleetitem.header_sel.mouse_over.list_item.listitem_name"), "text", fleetInfoByAdmiralId.Name);
                StarSystemInfo starSystemInfo = this._app.GameDatabase.GetStarSystemInfo(fleetInfoByAdmiralId.SystemID);
                str = !(starSystemInfo != (StarSystemInfo)null) ? App.Localize("@ADMIRAL_IN_DEEP_SPACE") : starSystemInfo.Name;
                MissionInfo missionByFleetId = this._app.GameDatabase.GetMissionByFleetID(fleetInfoByAdmiralId.ID);
                if (missionByFleetId != null)
                {
                    this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId1, "fleetitem.sub_title"), "text", fleetInfoByAdmiralId.Name);
                    this._app.UI.SetVisible(this._app.UI.Path(itemGlobalId1, "cancelMissionButton" + num1.ToString()), true);
                }
                else
                {
                    this._app.UI.SetVisible(this._app.UI.Path(itemGlobalId1, "fleetitem.on_mission"), false);
                    this._app.UI.SetVisible(this._app.UI.Path(itemGlobalId1, "cancelMissionButton" + num1.ToString()), false);
                }
                this._app.UI.SetVisible(this._app.UI.Path(itemGlobalId1, "createFleetButton" + num1.ToString()), false);
                this._app.UI.SetVisible(this._app.UI.Path(itemGlobalId1, "fleetitem"), true);
                this._app.UI.SetVisible(this._app.UI.Path(itemGlobalId1, "dissolveButton" + num1.ToString()), (missionByFleetId == null ? 1 : 0) != 0);
            }
            else
            {
                this._app.UI.SetVisible(this._app.UI.Path(itemGlobalId1, "fleetitem"), false);
                this._app.UI.SetVisible(this._app.UI.Path(itemGlobalId1, "dissolveButton" + num1.ToString()), false);
                this._app.UI.SetVisible(this._app.UI.Path(itemGlobalId1, "createFleetButton" + num1.ToString()), true);
            }
            this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId1, "admiralName"), "text", string.Format(App.Localize("@ADMIRAL_DIALOG_NAME_COLON"), (object)admiralInfo.Name));
            this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId1, "admiralLocation"), "text", string.Format(App.Localize("@ADMIRAL_DIALOG_LOCATION_COLON"), (object)str));
            this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId1, "admiralAge"), "text", string.Format(App.Localize("@ADMIRAL_DIALOG_AGE_COLON"), (object)((int)admiralInfo.Age).ToString()));
            string admiralAvatar = Kerberos.Sots.StarFleet.StarFleet.GetAdmiralAvatar(this._app, admiralInfo.ID);

            this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId1, "admiralImage"), "sprite", admiralAvatar);
            if (!admiralInfo.Engram && this._app.GameDatabase.PlayerHasTech(this._app.LocalPlayer.ID, "CCC_Personality_Engrams"))
            {
                this._app.UI.SetVisible(this._app.UI.Path(itemGlobalId1, "createEngramButton" + num1.ToString()), true);
            }
            else
            {
                this._app.UI.SetVisible(this._app.UI.Path(itemGlobalId1, "createEngramButton" + num1.ToString()), false);
            }
            IEnumerable <AdmiralInfo.TraitType> admiralTraits = this._app.GameDatabase.GetAdmiralTraits(admiralInfo.ID);

            this._app.UI.ClearItems(this._app.UI.Path(itemGlobalId1, "admiralTraits"));
            int userItemId = 0;

            foreach (AdmiralInfo.TraitType traitType in admiralTraits)
            {
                string admiralTraitText = OverlayMission.GetAdmiralTraitText(traitType);
                if (traitType != admiralTraits.Last <AdmiralInfo.TraitType>())
                {
                    admiralTraitText += ", ";
                }
                this._app.UI.AddItem(this._app.UI.Path(itemGlobalId1, "admiralTraits"), "", userItemId, "");
                string itemGlobalId2 = this._app.UI.GetItemGlobalID(this._app.UI.Path(itemGlobalId1, "admiralTraits"), "", userItemId, "");
                ++userItemId;
                this._app.UI.SetPropertyString(itemGlobalId2, "text", admiralTraitText);
                if (AdmiralInfo.IsGoodTrait(traitType))
                {
                    this._app.UI.SetPropertyColorNormalized(itemGlobalId2, "color", new Vector3(0.0f, 1f, 0.0f));
                }
                else
                {
                    this._app.UI.SetPropertyColorNormalized(itemGlobalId2, "color", new Vector3(1f, 0.0f, 0.0f));
                }
                this._app.UI.SetPropertyString(itemGlobalId2, "tooltip", AdmiralInfo.GetTraitDescription(traitType, this._app.GameDatabase.GetLevelForAdmiralTrait(admiralInfo.ID, traitType)));
            }
            string itemGlobalId3 = this._app.UI.GetItemGlobalID(this._app.UI.Path(itemGlobalId1, "infoList"), "", 0, "");

            this._app.UI.Send((object)"SetSelected", (object)itemGlobalId3, (object)true);
            string propertyValue = admiralInfo.HomeworldID.HasValue ? "Birth Planet: " + this._app.GameDatabase.GetOrbitalObjectInfo(admiralInfo.HomeworldID.Value).Name : "Born in Deep Space";

            this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId3, "admiralBirthPlanet"), "text", propertyValue);
            this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId3, "admiralYears"), "text", string.Format(App.Localize("@YEARS_AS_ADMIRAL"), (object)((this._app.GameDatabase.GetTurnCount() - admiralInfo.TurnCreated) / 4).ToString()));
            this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId3, "admiralLoyalty"), "text", string.Format(App.Localize("@ADMIRAL_LOYALTY"), (object)admiralInfo.Loyalty.ToString()));
            this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId3, "admiralReaction"), "text", string.Format(App.Localize("@ADMIRAL_REACTION"), (object)admiralInfo.ReactionBonus.ToString()));
            this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId3, "admiralEvasion"), "text", string.Format(App.Localize("@ADMIRAL_EVASION"), (object)admiralInfo.EvasionBonus.ToString()));
            string itemGlobalId4 = this._app.UI.GetItemGlobalID(this._app.UI.Path(itemGlobalId1, "infoList"), "", 1, "");

            this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId4, "battlesWon"), "text", string.Format(App.Localize("@ADMIRAL_BATTLES_WON"), (object)admiralInfo.BattlesWon.ToString()));
            this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId4, "battlesFought"), "text", string.Format(App.Localize("@ADMIRAL_BATTLES_FOUGHT"), (object)admiralInfo.BattlesFought.ToString()));
            this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId4, "missionsAssigned"), "text", string.Format(App.Localize("@ADMIRAL_MISSIONS_ASSIGNED"), (object)admiralInfo.MissionsAssigned.ToString()));
            this._app.UI.SetPropertyString(this._app.UI.Path(itemGlobalId4, "missionsAccomplished"), "text", string.Format(App.Localize("@ADMIRAL_MISSIONS_ACCOMPLISHED"), (object)admiralInfo.MissionsAccomplished.ToString()));
            int        num2       = num1 + 1;
            PlayerInfo playerInfo = this._app.GameDatabase.GetPlayerInfo(admiralInfo.PlayerID);

            this._app.UI.SetPropertyColor(this._app.UI.Path(itemGlobalId1, "fleetitem.header_idle.idle.list_item.colony_insert.LC"), "color", playerInfo.PrimaryColor * (float)byte.MaxValue);
            this._app.UI.SetPropertyColor(this._app.UI.Path(itemGlobalId1, "fleetitem.header_idle.idle.list_item.colony_insert.RC"), "color", playerInfo.PrimaryColor * (float)byte.MaxValue);
            this._app.UI.SetPropertyColor(this._app.UI.Path(itemGlobalId1, "fleetitem.header_idle.idle.list_item.colony_insert.BG"), "color", playerInfo.PrimaryColor * (float)byte.MaxValue);
            this._app.UI.SetPropertyColor(this._app.UI.Path(itemGlobalId1, "fleetitem.header_idle.mouse_over.list_item.colony_insert.LC"), "color", playerInfo.PrimaryColor * (float)byte.MaxValue);
            this._app.UI.SetPropertyColor(this._app.UI.Path(itemGlobalId1, "fleetitem.header_idle.mouse_over.list_item.colony_insert.RC"), "color", playerInfo.PrimaryColor * (float)byte.MaxValue);
            this._app.UI.SetPropertyColor(this._app.UI.Path(itemGlobalId1, "fleetitem.header_idle.mouse_over.list_item.colony_insert.BG"), "color", playerInfo.PrimaryColor * (float)byte.MaxValue);
            this._app.UI.SetPropertyColor(this._app.UI.Path(itemGlobalId1, "fleetitem.header_idle.disabled.list_item.colony_insert.LC"), "color", playerInfo.PrimaryColor * (float)byte.MaxValue * 0.5f);
            this._app.UI.SetPropertyColor(this._app.UI.Path(itemGlobalId1, "fleetitem.header_idle.disabled.list_item.colony_insert.RC"), "color", playerInfo.PrimaryColor * (float)byte.MaxValue * 0.5f);
            this._app.UI.SetPropertyColor(this._app.UI.Path(itemGlobalId1, "fleetitem.header_idle.disabled.list_item.colony_insert.BG"), "color", playerInfo.PrimaryColor * (float)byte.MaxValue * 0.5f);
            this._app.UI.SetPropertyColor(this._app.UI.Path(itemGlobalId1, "fleetitem.header_sel.idle.list_item.colony_insert.LC"), "color", playerInfo.PrimaryColor * (float)byte.MaxValue);
            this._app.UI.SetPropertyColor(this._app.UI.Path(itemGlobalId1, "fleetitem.header_sel.idle.list_item.colony_insert.RC"), "color", playerInfo.PrimaryColor * (float)byte.MaxValue);
            this._app.UI.SetPropertyColor(this._app.UI.Path(itemGlobalId1, "fleetitem.header_sel.idle.list_item.colony_insert.BG"), "color", playerInfo.PrimaryColor * (float)byte.MaxValue);
            this._app.UI.SetPropertyColor(this._app.UI.Path(itemGlobalId1, "fleetitem.header_sel.mouse_over.list_item.colony_insert.LC"), "color", playerInfo.PrimaryColor * (float)byte.MaxValue);
            this._app.UI.SetPropertyColor(this._app.UI.Path(itemGlobalId1, "fleetitem.header_sel.mouse_over.list_item.colony_insert.RC"), "color", playerInfo.PrimaryColor * (float)byte.MaxValue);
            this._app.UI.SetPropertyColor(this._app.UI.Path(itemGlobalId1, "fleetitem.header_sel.mouse_over.list_item.colony_insert.BG"), "color", playerInfo.PrimaryColor * (float)byte.MaxValue);
        }
Exemple #14
0
        public void AutoChooseAdmiral()
        {
            List <AdmiralInfo> list        = this._app.GameDatabase.GetAdmiralInfosForPlayer(this._app.LocalPlayer.ID).Where <AdmiralInfo>((Func <AdmiralInfo, bool>)(x => this._app.GameDatabase.GetFleetInfoByAdmiralID(x.ID, FleetType.FL_NORMAL) == null)).ToList <AdmiralInfo>();
            AdmiralInfo        admiralInfo = list.FirstOrDefault <AdmiralInfo>((Func <AdmiralInfo, bool>)(x => this.App.GameDatabase.GetAdmiralTraits(x.ID).Any <AdmiralInfo.TraitType>((Func <AdmiralInfo.TraitType, bool>)(j => AdmiralInfo.IsGoodTrait(j))))) ?? list.First <AdmiralInfo>();
            ShipInfo           shipInfo1   = (ShipInfo)null;
            DesignInfo         designInfo1 = (DesignInfo)null;
            int?reserveFleetId             = this._app.GameDatabase.GetReserveFleetID(this._app.LocalPlayer.ID, this._systemid);

            if (reserveFleetId.HasValue)
            {
                if (this._app.LocalPlayer.Faction.Name == "loa")
                {
                    Kerberos.Sots.StarFleet.StarFleet.ConvertFleetIntoLoaCubes(this._app.Game, reserveFleetId.Value);
                    int fleetLoaCubeValue = Kerberos.Sots.StarFleet.StarFleet.GetFleetLoaCubeValue(this._app.Game, reserveFleetId.Value);
                    foreach (DesignInfo designInfo2 in this._app.GameDatabase.GetDesignInfosForPlayer(this._app.LocalPlayer.ID).Where <DesignInfo>((Func <DesignInfo, bool>)(x =>
                    {
                        if (x.Class == ShipClass.Cruiser)
                        {
                            return(x.GetCommandPoints() > 0);
                        }
                        return(false);
                    })).ToList <DesignInfo>())
                    {
                        if (designInfo1 == null)
                        {
                            designInfo1 = designInfo2;
                        }
                        else if (designInfo1.ProductionCost > designInfo2.ProductionCost)
                        {
                            designInfo1 = designInfo2;
                        }
                    }
                    if (designInfo1 != null && designInfo1.ProductionCost > fleetLoaCubeValue)
                    {
                        designInfo1 = (DesignInfo)null;
                    }
                }
                else
                {
                    foreach (ShipInfo shipInfo2 in this._app.GameDatabase.GetShipInfoByFleetID(reserveFleetId.Value, false))
                    {
                        if (this._app.GameDatabase.GetShipCommandPointQuota(shipInfo2.ID) > 0)
                        {
                            shipInfo1 = shipInfo2;
                            break;
                        }
                    }
                }
            }
            if (shipInfo1 == null && designInfo1 == null)
            {
                this._app.UI.CreateDialog((Dialog) new GenericTextDialog(this._app, App.Localize("@UI_FLEET_DIALOG_CANNOTCREATEFLEET_TITLE"), App.Localize("@UI_FLEET_DIALOG_CANNOTCREATEFLEET_DESC"), "dialogGenericMessage"), null);
                this._app.UI.CloseDialog((Dialog)this, true);
            }
            else
            {
                this._currentAdmiralID = admiralInfo.ID;
                if (shipInfo1 != null)
                {
                    this._currentShipID = shipInfo1.ID;
                }
                if (designInfo1 != null)
                {
                    this._currentDesignID = designInfo1.ID;
                }
                this._nameFleetDialog = this._app.UI.CreateDialog((Dialog) new GenericTextEntryDialog(this._app, App.Localize("@UI_FLEET_DIALOG_FLEETNAME_TITLE"), App.Localize("@UI_FLEET_DIALOG_FLEETNAME_DESC"), this._app.GameDatabase.ResolveNewFleetName(this._app, this._app.LocalPlayer.ID, this._app.Game.NamesPool.GetFleetName(this._app.GameDatabase.GetFactionName(this._app.GameDatabase.GetPlayerFactionID(this._app.LocalPlayer.ID)))), 24, 1, true, EditBoxFilterMode.None), null);
            }
        }