public EatResponse OnEvent(EventId id, object cookie) { if (id <= EventId.SquadScreenOpenedOrClosed) { if (id != EventId.GameStateChanged) { if (id == EventId.SquadScreenOpenedOrClosed) { this.UpdatePollFrequency(); } } else { SquadWarManager warManager = this.controller.WarManager; if (this.IsValidUpdateGameState() && warManager.WarExists()) { this.UpdateSquadWar(warManager.CurrentSquadWar.WarId, true); Service.Get <EventManager>().UnregisterObserver(this, EventId.GameStateChanged); } } } else if (id != EventId.SquadUpdated) { if (id != EventId.SquadServerMessage) { if (id == EventId.WarPhaseChanged) { SquadWarStatusType squadWarStatusType = (SquadWarStatusType)cookie; this.UpdateCurrentSquadWar(); if (squadWarStatusType == SquadWarStatusType.PhaseCooldown) { this.controller.UpdateCurrentSquad(); } } } else { SquadServerMessage squadServerMessage = (SquadServerMessage)cookie; if (squadServerMessage.Messages != null) { if (this.serverMessages == null) { this.serverMessages = new List <SquadMsg>(); } else { this.serverMessages.Clear(); } uint num = 0u; int i = 0; int count = squadServerMessage.Messages.Count; while (i < count) { SquadMsg squadMsg = SquadMsgUtils.GenerateMessageFromServerMessageObject(squadServerMessage.Messages[i]); if (squadMsg != null) { this.serverMessages.Add(squadMsg); if (!string.IsNullOrEmpty(squadMsg.NotifId) && squadMsg.TimeSent > num) { num = squadMsg.TimeSent; } } i++; } if (num > 0u) { this.notifAdapter.ResetPollTimer(num); } this.OnNewSquadMsgs(this.serverMessages); } } } else if (cookie == null) { this.DisablePolling(); } else { this.EnablePolling(); } return(EatResponse.NotEaten); }
private void UpdateSquadMember(SquadMember squadMember) { UXElement squadMemberElement = this.GetSquadMemberElement(squadMember); string id = "member_" + squadMember.MemberID; SquadMemberElements squadMemberElements = new SquadMemberElements(); SquadScreenMembersView.SquadMemberElementsSetup(this.squadMemberGrid, squadMemberElements, id); this.SetPromoteDemoteOnButton(squadMember, squadMemberElements.ButtonOne, squadMemberElements.ButtonOneLabel); squadMemberElements.ButtonOne.Tag = squadMember; if (squadMember.Role == SquadRole.Owner) { squadMemberElements.ButtonOne.Enabled = false; } else { this.SetupButtonBasedOnRole(squadMemberElements.ButtonOne, squadMember, true); } CurrentPlayer currentPlayer = Service.CurrentPlayer; SquadController squadController = Service.SquadController; SquadWarManager warManager = squadController.WarManager; bool flag = squadMember.MemberID == currentPlayer.PlayerId; int num = 0; int num2 = 0; squadMemberElements.ButtonTwoLabel.Text = this.lang.Get("s_View", new object[0]); if (flag) { squadMemberElements.ButtonTwo.Enabled = false; num = squadController.StateManager.NumTroopDonationsInSession; num2 = squadController.StateManager.NumRepDonatedInSession; } else { squadMemberElements.ButtonTwo.OnClicked = new UXButtonClickedDelegate(this.OnViewClicked); squadMemberElements.ButtonTwo.Tag = squadMember; } squadMemberElements.ButtonThreeLabel.Text = this.lang.Get("s_Remove", new object[0]); squadMemberElements.ButtonThree.OnClicked = new UXButtonClickedDelegate(this.OnRemoveClicked); squadMemberElements.ButtonThree.Tag = squadMember; this.SetupButtonBasedOnRole(squadMemberElements.ButtonThree, squadMember, false); squadMemberElements.MemberInfoGroup.Visible = true; squadMemberElements.MemberNameLabel.Text = this.lang.Get("WAR_MEMBER_NAME", new object[] { squadMember.MemberName, squadMember.HQLevel }); if (squadMemberElement != null) { squadMemberElements.MemberRankLabel.Text = (this.squadMemberGrid.GetSortedIndex(squadMemberElement) + 1).ToString(); } squadMemberElements.MemberRoleLabel.Text = LangUtils.GetSquadRoleDisplayName(squadMember.Role); if (warManager.IsMemberInWarParty(squadMember.MemberID) || warManager.IsSquadMemberInWarOrMatchmaking(squadMember)) { if (warManager.IsCurrentSquadMatchmaking()) { UXLabel expr_228 = squadMemberElements.MemberRoleLabel; expr_228.Text += this.lang.Get("WAR_IN_MATCHMAKING", new object[0]); } else if (warManager.WarExists()) { UXLabel expr_265 = squadMemberElements.MemberRoleLabel; expr_265.Text += this.lang.Get("WAR_IN_WAR", new object[0]); } } squadMemberElements.MemberScoreLabel.Text = ((!(squadMember.MemberID == Service.CurrentPlayer.PlayerId)) ? this.lang.ThousandsSeparated(squadMember.Score) : this.lang.ThousandsSeparated(Service.CurrentPlayer.PlayerMedals)); squadMemberElements.TroopsDonatedLabel.Text = this.lang.Get("TROOPS_DONATED", new object[] { this.lang.ThousandsSeparated(squadMember.TroopsDonated + num) }); squadMemberElements.TroopsReceivedLabel.Text = this.lang.Get("TROOPS_RECEIVED", new object[] { this.lang.ThousandsSeparated(squadMember.TroopsReceived) }); squadMemberElements.RepInvestedLabel.Text = this.lang.Get("REPUTATION_INVESTED", new object[] { this.lang.ThousandsSeparated(squadMember.ReputationInvested + num2) }); squadMemberElements.VictoriesLabel.Text = this.lang.Get("s_Victories", new object[0]); squadMemberElements.TroopsLabel.Text = this.lang.Get("s_Troops", new object[0]); squadMemberElements.AttacksWonLabel.Text = this.lang.Get("ATTACKS_WON", new object[] { this.lang.ThousandsSeparated(squadMember.AttacksWon) }); squadMemberElements.DefensesWonLabel.Text = this.lang.Get("DEFENSES_WON", new object[] { this.lang.ThousandsSeparated(squadMember.DefensesWon) }); if (squadMember.MemberID != currentPlayer.PlayerId) { squadMemberElements.LastLoginTimeLabel.Text = ChatTimeConversionUtils.GetFormattedAgeSinceLogin(squadMember.LastLoginTime, this.lang); } else { squadMemberElements.LastLoginTimeLabel.Visible = false; } if (squadMember.TournamentScore != null && squadMember.TournamentScore.Count > 0) { squadMemberElements.ConflictMedalsGroup.Visible = true; squadMemberElements.TournamentScoreLabel1.Visible = false; squadMemberElements.TournamentScoreSprite1.Visible = false; squadMemberElements.TournamentScoreLabel2.Visible = false; squadMemberElements.TournamentScoreSprite2.Visible = false; squadMemberElements.TournamentScoreLabel3.Visible = false; squadMemberElements.TournamentScoreSprite3.Visible = false; int num3 = 0; foreach (KeyValuePair <string, int> current in squadMember.TournamentScore) { if (num3 == 0) { this.UpdateTournamentScore(current, squadMemberElements.TournamentScoreLabel1, squadMemberElements.TournamentScoreSprite1); } else if (num3 == 1) { this.UpdateTournamentScore(current, squadMemberElements.TournamentScoreLabel2, squadMemberElements.TournamentScoreSprite2); } else if (num3 == 2) { this.UpdateTournamentScore(current, squadMemberElements.TournamentScoreLabel3, squadMemberElements.TournamentScoreSprite3); } num3++; } } else { squadMemberElements.ConflictMedalsGroup.Visible = false; } PlanetVO planetVO = null; if (!string.IsNullOrEmpty(squadMember.Planet)) { planetVO = Service.StaticDataController.GetOptional <PlanetVO>(squadMember.Planet); } if (planetVO == null) { planetVO = Service.StaticDataController.GetOptional <PlanetVO>("planet1"); } if (planetVO != null && squadMemberElements.PlanetBackgroundTexture != null) { squadMemberElements.PlanetBackgroundTexture.LoadTexture(planetVO.LeaderboardTileTexture, null); } if (Service.SquadController.WarManager.MatchMakingPrepMode) { bool flag2 = squadMember.HQLevel >= GameConstants.WAR_PARTICIPANT_MIN_LEVEL; if (flag2) { squadMemberElements.SpriteMemberSelect.Tag = true; squadMemberElements.SpriteMemberSelect.Visible = warManager.IsMemberInWarParty(squadMember.MemberID); } else { squadMemberElements.SpriteMemberSelect.Tag = false; squadMemberElements.SpriteMemberSelect.Visible = false; } squadMemberElements.GroupMemberSelect.Visible = true; squadMemberElements.SpriteMoreOptions.Visible = false; } else { squadMemberElements.GroupMemberSelect.Visible = false; squadMemberElements.SpriteMemberSelect.Visible = false; squadMemberElements.SpriteMoreOptions.Visible = true; } squadMemberElements.SpriteWarIcon.Visible = (squadMember.WarParty != 0); squadMemberElements.ButtonContainer.ResetPlayTweenTarget(); }