public static bool EvaluateAudienceCondition(AudienceCondition ac) { Squad currentSquad = Service.SquadController.StateManager.GetCurrentSquad(); string playerId = Service.CurrentPlayer.PlayerId; string conditionType = ac.ConditionType; switch (conditionType) { case "playerInSquadWar": { bool flag = ac.ConditionValue.ToLower() == "true"; if (currentSquad != null) { SquadMember squadMemberById = SquadUtils.GetSquadMemberById(currentSquad, playerId); if (squadMemberById != null) { SquadWarManager warManager = Service.SquadController.WarManager; return(warManager.IsSquadMemberInWarOrMatchmaking(squadMemberById) == flag); } } return(false); } case "squadWarParticipation": { uint num2 = Convert.ToUInt32(ac.ConditionValue) * 3600u; int serverTime = (int)Service.ServerAPI.ServerTime; return((long)serverTime - (long)((ulong)Service.CurrentPlayer.LastWarParticipationTime) >= (long)((ulong)num2)); } case "squadActiveMembers": case "squadMembers": { string[] array = ac.ConditionValue.Split(new char[] { '|' }); if (array == null || array.Length != 2) { Service.Logger.Error("Data error for SQUAD_MEMBER_CONDITION"); return(false); } int num3 = int.Parse(array[0]); int num4 = int.Parse(array[1]); if (currentSquad == null && num4 == 0) { return(true); } if (currentSquad != null) { if (ac.ConditionType == "squadMembers" && currentSquad.MemberCount >= num3 && currentSquad.MemberCount <= num4) { return(true); } if (ac.ConditionType == "squadActiveMembers" && currentSquad.ActiveMemberCount >= num3 && currentSquad.ActiveMemberCount <= num4) { return(true); } } return(false); } case "hasCountry": { string deviceCountryCode = Service.EnvironmentController.GetDeviceCountryCode(); string[] array2 = ac.ConditionValue.Split(new char[] { '|' }); if (Array.IndexOf <string>(array2, deviceCountryCode) == -1) { return(false); } break; } case "lacksCountry": { string deviceCountryCode2 = Service.EnvironmentController.GetDeviceCountryCode(); string[] array3 = ac.ConditionValue.Split(new char[] { '|' }); if (Array.IndexOf <string>(array3, deviceCountryCode2) != -1) { return(false); } break; } case "hasLanguage": { string locale = Service.Lang.Locale; string[] array4 = ac.ConditionValue.Split(new char[] { '|' }); if (Array.IndexOf <string>(array4, locale) == -1) { return(false); } break; } case "lacksLanguage": { string locale2 = Service.Lang.Locale; string[] array5 = ac.ConditionValue.Split(new char[] { '|' }); if (Array.IndexOf <string>(array5, locale2) != -1) { return(false); } break; } case "thirdParty": return(false); case "platform": { string[] array6 = ac.ConditionValue.Split(new char[] { '|' }); if (array6 != null) { string[] array7 = array6; for (int i = 0; i < array7.Length; i++) { string a = array7[i]; if (a == "a") { return(true); } } } return(false); } } return(true); }
public static bool IsValidForClient(List <AudienceCondition> audienceConditions) { Squad currentSquad = Service.Get <SquadController>().StateManager.GetCurrentSquad(); string playerId = Service.Get <CurrentPlayer>().PlayerId; int i = 0; int count = audienceConditions.Count; while (i < count) { AudienceCondition audienceCondition = audienceConditions[i]; string conditionType = audienceCondition.ConditionType; uint num = < PrivateImplementationDetails >.ComputeStringHash(conditionType); if (num <= 1979967659u) { if (num <= 709505714u) { if (num != 399293899u) { if (num == 709505714u) { if (conditionType == "platform") { string[] array = audienceCondition.ConditionValue.Split(new char[] { '|' }); if (array != null) { string[] array2 = array; int num2 = 0; if (num2 < array2.Length) { string text = array2[num2]; Service.Get <StaRTSLogger>().WarnFormat("Make sure to add #define for missing platfrom {0}", new object[] { text }); return(false); } } return(false); } } } else if (conditionType == "lacksLanguage") { string locale = Service.Get <Lang>().Locale; string[] array3 = audienceCondition.ConditionValue.Split(new char[] { '|' }); if (Array.IndexOf <string>(array3, locale) != -1) { return(false); } } } else if (num != 949377194u) { if (num != 1252504053u) { if (num == 1979967659u) { if (conditionType == "hasCountry") { string deviceCountryCode = Service.Get <EnvironmentController>().GetDeviceCountryCode(); string[] array4 = audienceCondition.ConditionValue.Split(new char[] { '|' }); if (Array.IndexOf <string>(array4, deviceCountryCode) == -1) { return(false); } } } } else if (conditionType == "hasLanguage") { string locale2 = Service.Get <Lang>().Locale; string[] array5 = audienceCondition.ConditionValue.Split(new char[] { '|' }); if (Array.IndexOf <string>(array5, locale2) == -1) { return(false); } } } else if (conditionType == "squadWarParticipation") { uint num3 = Convert.ToUInt32(audienceCondition.ConditionValue, CultureInfo.InvariantCulture) * 3600u; int serverTime = (int)Service.Get <ServerAPI>().ServerTime; return((long)serverTime - (long)((ulong)Service.Get <CurrentPlayer>().LastWarParticipationTime) >= (long)((ulong)num3)); } } else if (num <= 2708772247u) { if (num != 2704192874u) { if (num == 2708772247u) { if (conditionType == "playerInSquadWar") { bool flag = audienceCondition.ConditionValue.ToLower() == "true"; if (currentSquad != null) { SquadMember squadMemberById = SquadUtils.GetSquadMemberById(currentSquad, playerId); if (squadMemberById != null) { SquadWarManager warManager = Service.Get <SquadController>().WarManager; return(warManager.IsSquadMemberInWarOrMatchmaking(squadMemberById) == flag); } } return(false); } } } else if (conditionType == "thirdParty") { string conditionValue = audienceCondition.ConditionValue; return(conditionValue == "tapjoy" && Service.Get <TapjoyPlugin>().enabled); } } else if (num != 2846430817u) { if (num != 3759229686u) { if (num != 4133241044u) { goto IL_436; } if (!(conditionType == "squadMembers")) { goto IL_436; } } else if (!(conditionType == "squadActiveMembers")) { goto IL_436; } string[] array6 = audienceCondition.ConditionValue.Split(new char[] { '|' }); if (array6 == null || array6.Length != 2) { Service.Get <StaRTSLogger>().Error("Data error for SQUAD_MEMBER_CONDITION"); return(false); } int num4 = int.Parse(array6[0]); int num5 = int.Parse(array6[1]); if (currentSquad == null && num5 == 0) { return(true); } if (currentSquad != null) { if (audienceCondition.ConditionType == "squadMembers" && currentSquad.MemberCount >= num4 && currentSquad.MemberCount <= num5) { return(true); } if (audienceCondition.ConditionType == "squadActiveMembers" && currentSquad.ActiveMemberCount >= num4 && currentSquad.ActiveMemberCount <= num5) { return(true); } } return(false); } else if (conditionType == "lacksCountry") { string deviceCountryCode2 = Service.Get <EnvironmentController>().GetDeviceCountryCode(); string[] array7 = audienceCondition.ConditionValue.Split(new char[] { '|' }); if (Array.IndexOf <string>(array7, deviceCountryCode2) != -1) { return(false); } } IL_436: i++; } return(true); }
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(); }