private void OnQuitResult(object sender, MessagePanelResultEventArgs e) { if (e.Result == MessagePanelResult.Yes) { IRuntimeService service = Services.GetService <IRuntimeService>(); if (service != null) { ISessionService service2 = Services.GetService <ISessionService>(); Diagnostics.Assert(service2 != null); Diagnostics.Assert(service2.Session != null); Diagnostics.Assert(service.Runtime != null); Diagnostics.Assert(service.Runtime.FiniteStateMachine != null); if (!TutorialManager.IsActivated) { int lobbyData = service2.Session.GetLobbyData <int>("NumberOfMajorFactions", 0); EmpireInfo[] array = new EmpireInfo[lobbyData]; for (int i = 0; i < lobbyData; i++) { array[i] = EmpireInfo.Read(service2.Session, i); } service.Runtime.FiniteStateMachine.PostStateChange(typeof(RuntimeState_OutGame), new object[] { "GameEnded", array }); } else { service.Runtime.FiniteStateMachine.PostStateChange(typeof(RuntimeState_OutGame), new object[0]); } } } }
protected override IEnumerator OnShow(params object[] parameters) { yield return(base.OnShow(parameters)); ISessionService service = Services.GetService <ISessionService>(); int lobbyData = service.Session.GetLobbyData <int>("NumberOfMajorFactions", 0); this.scoreGraphsPanel.HideUnknownEmpires = true; EmpireInfo[] array = new EmpireInfo[lobbyData]; for (int i = 0; i < lobbyData; i++) { array[i] = EmpireInfo.Read(service.Session, i); if (array[i].IsActiveOrLocalPlayer && array[i].EmpireEliminated) { this.scoreGraphsPanel.HideUnknownEmpires = false; } } Services.GetService <IEndTurnService>().GameClientStateChange += this.EndTurnService_GameClientStateChange; DepartmentOfForeignAffairs agency = base.PlayerController.Empire.GetAgency <DepartmentOfForeignAffairs>(); if (agency != null) { agency.DiplomaticRelationStateChange += this.DepartmentOfForeignAffairs_DiplomaticRelationStateChange; } this.scoreGraphsPanel.Show(new object[] { array }); this.RefreshContent(); yield break; }