Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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();
        }