Example #1
0
 public static SquadMsg GenerateMessageFromChatMessage(string message)
 {
     return(new SquadMsg
     {
         Type = SquadMsgType.Chat,
         TimeSent = ChatTimeConversionUtils.GetUnixTimestamp(),
         OwnerData = new SqmOwnerData
         {
             PlayerId = Service.CurrentPlayer.PlayerId,
             PlayerName = Service.CurrentPlayer.PlayerName
         },
         ChatData = new SqmChatData
         {
             Message = message
         }
     });
 }
 public void StartSession(ChatType chatType, string channelId)
 {
     if (this.sessionState == ChatSessionState.Disconnected)
     {
         this.sessionState = ChatSessionState.Connecting;
         uint          unixTimestamp = ChatTimeConversionUtils.GetUnixTimestamp();
         uint          num           = unixTimestamp + 86400u;
         CurrentPlayer currentPlayer = Service.Get <CurrentPlayer>();
         string        locale        = Service.Get <Lang>().ExtractLanguageFromLocale();
         string        json          = ChatSessionUtils.CreateSessionString(currentPlayer.PlayerId, currentPlayer.PlayerName, locale, num.ToString(), chatType, channelId);
         this.signedSession = ChatSessionUtils.GetSignedString(json);
         this.channelUrl    = string.Format("https://startswin-prod-chat-manager.playdom.com/dsg/chat/v1/strtw/getChannel?session={0}", new object[]
         {
             this.signedSession
         });
         Service.Get <Engine>().StartCoroutine(this.ConnectToChannel());
     }
 }
Example #3
0
        private void HandleFilterSelection(ChatFilterType type, bool forceViewTimeUpdate)
        {
            SquadController squadController = Service.SquadController;

            squadController.StateManager.SetSquadScreenChatFilterType(type);
            this.SetSquadPlayerPref("ChatFilterType", (uint)type);
            this.RefreshView();
            uint unixTimestamp = ChatTimeConversionUtils.GetUnixTimestamp();

            if (type == ChatFilterType.ShowAll)
            {
                this.SetLastViewedTime(ChatFilterType.Messages, unixTimestamp, forceViewTimeUpdate);
                this.SetLastViewedTime(ChatFilterType.Requests, unixTimestamp, forceViewTimeUpdate);
                this.SetLastViewedTime(ChatFilterType.Replays, unixTimestamp, forceViewTimeUpdate);
                this.SetLastViewedTime(ChatFilterType.Updates, unixTimestamp, forceViewTimeUpdate);
            }
            this.SetLastViewedTime(type, unixTimestamp, forceViewTimeUpdate);
            this.UpdateBadges();
        }
Example #4
0
        public override void RefreshView()
        {
            this.gridWarLog.Clear();
            SquadController squadController = Service.SquadController;
            Squad           currentSquad    = squadController.StateManager.GetCurrentSquad();

            if (currentSquad == null)
            {
                return;
            }
            uint serverTime = Service.ServerAPI.ServerTime;
            SquadMemberWarData currentMemberWarData = squadController.WarManager.GetCurrentMemberWarData();
            int i     = 0;
            int count = currentSquad.WarHistory.Count;

            while (i < count)
            {
                SquadWarHistoryEntry squadWarHistoryEntry = currentSquad.WarHistory[i];
                UXElement            uXElement            = this.gridWarLog.CloneTemplateItem(squadWarHistoryEntry.WarId);
                this.gridWarLog.AddItem(uXElement, i);
                uXElement.Tag = squadWarHistoryEntry.WarId;
                SquadWarRewardData rewardForWar = SquadUtils.GetRewardForWar(squadWarHistoryEntry.WarId, currentMemberWarData);
                UXButton           subElement   = this.gridWarLog.GetSubElement <UXButton>(squadWarHistoryEntry.WarId, "BtnCollectWarReward");
                UXLabel            subElement2  = this.gridWarLog.GetSubElement <UXLabel>(squadWarHistoryEntry.WarId, "LabelBtnCollectWarReward");
                subElement2.Text = this.lang.Get("SQUAD_WAR_LOG_COLLECT_REWARD", new object[0]);
                UXLabel subElement3 = this.gridWarLog.GetSubElement <UXLabel>(squadWarHistoryEntry.WarId, "LabelWarlogTimestamp");
                subElement3.Text = this.lang.Get("TIME_AGO", new object[]
                {
                    ChatTimeConversionUtils.GetFormattedAge(squadWarHistoryEntry.EndDate, this.lang)
                });
                UXLabel subElement4 = this.gridWarLog.GetSubElement <UXLabel>(squadWarHistoryEntry.WarId, "LabelWarlogScore");
                subElement4.Text = this.lang.Get("SQUAD_WAR_LOG_SCORE", new object[]
                {
                    squadWarHistoryEntry.Score,
                    squadWarHistoryEntry.OpponentScore
                });
                UXLabel subElement5 = this.gridWarLog.GetSubElement <UXLabel>(squadWarHistoryEntry.WarId, "LabelWarlogOpponent");
                string  text        = string.Empty;
                if (!string.IsNullOrEmpty(squadWarHistoryEntry.OpponentName))
                {
                    text = this.lang.Get("SQUAD_WAR_LOG_OPPONENT_VS", new object[]
                    {
                        squadWarHistoryEntry.OpponentName
                    });
                }
                subElement5.Text = text;
                UXLabel subElement6 = this.gridWarLog.GetSubElement <UXLabel>(squadWarHistoryEntry.WarId, "LabelWarlogExpires");
                bool    flag        = rewardForWar != null && rewardForWar.ExpireDate > serverTime;
                if (flag)
                {
                    int    num   = (int)(rewardForWar.ExpireDate - serverTime);
                    string text2 = LangUtils.FormatTime((long)num);
                    subElement6.Visible = true;
                    text2 = this.lang.Get("expires_in", new object[]
                    {
                        text2
                    });
                    subElement6.Text     = text2;
                    subElement.Visible   = true;
                    subElement.OnClicked = new UXButtonClickedDelegate(this.OnCollectButtonClicked);
                    subElement.Tag       = rewardForWar.WarId;
                }
                else
                {
                    subElement6.Visible = false;
                    subElement.Visible  = false;
                }
                UXSprite subElement7 = this.gridWarLog.GetSubElement <UXSprite>(squadWarHistoryEntry.WarId, "SpriteWarlogBgDraw");
                subElement7.Visible = false;
                UXSprite subElement8 = this.gridWarLog.GetSubElement <UXSprite>(squadWarHistoryEntry.WarId, "SpriteWarlogBgLost");
                subElement8.Visible = false;
                UXSprite subElement9 = this.gridWarLog.GetSubElement <UXSprite>(squadWarHistoryEntry.WarId, "SpriteWarlogBgWon");
                subElement9.Visible = false;
                UXLabel subElement10 = this.gridWarLog.GetSubElement <UXLabel>(squadWarHistoryEntry.WarId, "LabelWarlogResult");
                if (squadWarHistoryEntry.Score > squadWarHistoryEntry.OpponentScore)
                {
                    subElement9.Visible = true;
                    subElement10.Text   = this.lang.Get("SQUAD_WAR_LOG_WIN", new object[0]);
                }
                else if (squadWarHistoryEntry.Score < squadWarHistoryEntry.OpponentScore)
                {
                    subElement8.Visible = true;
                    subElement10.Text   = this.lang.Get("SQUAD_WAR_LOG_LOSS", new object[0]);
                }
                else
                {
                    subElement7.Visible = true;
                    subElement10.Text   = this.lang.Get("SQUAD_WAR_LOG_DRAW", new object[0]);
                }
                i++;
            }
            this.gridWarLog.RepositionItemsFrameDelayed();
            if (currentSquad.WarHistory.Count == 0)
            {
                this.labelEmptyWarlog.Visible = true;
                if (SquadUtils.SquadMeetsMatchmakingRequirements(squadController))
                {
                    this.labelEmptyWarlog.Text = this.lang.Get("SQUAD_WAR_LOG_EMPTY_HAS_REQUIREMENTS", new object[0]);
                }
                else
                {
                    this.labelEmptyWarlog.Text = this.lang.Get("SQUAD_WAR_LOG_EMPTY_LACKS_REQUIREMENTS", new object[0]);
                }
            }
            else
            {
                this.labelEmptyWarlog.Visible = false;
            }
            this.RefreshBadge();
        }
Example #5
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();
        }