Beispiel #1
0
 public static PlayerIdRequest GeneratePlayerIdRequest(SquadMsg message)
 {
     return(new PlayerIdRequest
     {
         PlayerId = message.OwnerData.PlayerId
     });
 }
Beispiel #2
0
        public static SquadMsg CreatePromoteMemberMessage(string memberId, SquadController.ActionCallback callback, object cookie)
        {
            SquadMsg squadMsg = SquadMsgUtils.CreateMemberIdMessage(memberId, SquadAction.PromoteMember, callback, cookie);

            squadMsg.MemberData.MemberRole = SquadRole.Officer;
            return(squadMsg);
        }
Beispiel #3
0
        public static SquadMsg CreateAcceptJoinRequestMessage(string requesterId, string biSource, SquadController.ActionCallback callback, object cookie)
        {
            SquadMsg squadMsg = SquadMsgUtils.CreateMemberIdMessage(requesterId, SquadAction.AcceptApplicationToJoin, callback, cookie);

            squadMsg.BISource = biSource;
            return(squadMsg);
        }
Beispiel #4
0
        private void TrimMessages(List <SquadMsg> msgs, List <SquadMsg> msgsToProcess)
        {
            List <SquadMsg> list = new List <SquadMsg>();

            for (int i = msgs.Count - 1 - this.controller.MessageLimit; i >= 0; i--)
            {
                SquadMsg squadMsg = msgs[i];
                if (squadMsg.Type != SquadMsgType.TroopDonation)
                {
                    list.Add(squadMsg);
                    if (!string.IsNullOrEmpty(squadMsg.NotifId) && this.linkedMsgs.ContainsKey(squadMsg.NotifId))
                    {
                        List <SquadMsg> list2 = this.linkedMsgs[squadMsg.NotifId];
                        if (list2 != null)
                        {
                            list.AddRange(list2);
                        }
                    }
                }
            }
            int j     = 0;
            int count = list.Count;

            while (j < count)
            {
                SquadMsg squadMsg2 = list[j];
                this.RemoveMsg(squadMsg2, false);
                msgsToProcess.Remove(squadMsg2);
                j++;
            }
        }
Beispiel #5
0
        public static SquadMsg CreateJoinSquadMessage(string squadId, string biSource, SquadController.ActionCallback callback, object cookie)
        {
            SquadMsg squadMsg = SquadMsgUtils.CreateSquadMessage(squadId, SquadAction.Join, callback, cookie);

            squadMsg.BISource = biSource;
            return(squadMsg);
        }
Beispiel #6
0
 private void OnSetupChatDisplayTimer(uint timerId, object cookie)
 {
     if (this.chatDisplay != null)
     {
         List <SquadMsg> existingMessages = Service.SquadController.MsgManager.GetExistingMessages();
         int             count            = existingMessages.Count;
         int             num = count - this.numExistingMsgsProcessed;
         if (num > 10)
         {
             num = 10;
         }
         if (num > 0)
         {
             int i    = this.numExistingMsgsProcessed;
             int num2 = this.numExistingMsgsProcessed + num;
             while (i < num2)
             {
                 SquadMsg item = existingMessages[i];
                 if (!this.existingMsgsProcessed.Contains(item))
                 {
                     this.numExistingMsgsProcessed++;
                     this.chatDisplay.ProcessMessage(existingMessages[i], false);
                     this.existingMsgsProcessed.Add(existingMessages[i]);
                 }
                 i++;
             }
         }
         else
         {
             this.KillExistingTimers();
             this.chatDisplay.OnExistingMessagesSetup();
             ProcessingScreen.Hide();
         }
     }
 }
Beispiel #7
0
        private void OnPerkUpgraded(SquadMsg msg)
        {
            StaticDataController staticDataController = Service.StaticDataController;
            Squad currentSquad = Service.SquadController.StateManager.GetCurrentSquad();

            if (currentSquad == null)
            {
                Service.Logger.Error("SquadController.OnPerkUpgraded: Current Squad Null");
                return;
            }
            SquadPerks perks    = currentSquad.Perks;
            string     perkUId  = msg.PerkData.PerkUId;
            PerkVO     optional = staticDataController.GetOptional <PerkVO>(perkUId);

            if (optional == null)
            {
                Service.Logger.ErrorFormat("SquadController.OnPerkUpgraded: Given Perk is Null {0}", new object[]
                {
                    perkUId
                });
                return;
            }
            perks.UpdateUnlockedPerk(perkUId);
            Service.PerkViewController.AddToPerkBadgeList(perkUId);
            Service.EventManager.SendEvent(EventId.SquadPerkUpdated, null);
            Service.EventManager.SendEvent(EventId.PerkUpgraded, optional);
        }
Beispiel #8
0
        public void PublishMessage(string message)
        {
            if (string.IsNullOrEmpty(message))
            {
                return;
            }
            string message2 = message;

            if (this.filter != null)
            {
                message2 = this.filter.Filter(message);
            }
            SquadMsg item = SquadMsgUtils.GenerateMessageFromChatMessage(message2);

            this.list.Clear();
            this.list.Add(item);
            this.callback(this.list);
            this.queuedMessagesToPublish.Enqueue(item);
            if (this.photonChatWrapper.SessionState == PhotonChatSessionState.Disconnected)
            {
                this.ReconnectSession();
            }
            else if (this.photonChatWrapper.SessionState == PhotonChatSessionState.Connected)
            {
                this.StartPublishTimer();
            }
        }
Beispiel #9
0
        private void OnUpdateSquadWarSuccess(GetSquadWarStatusResponse response, object cookie)
        {
            SquadMsg squadMsg = SquadMsgUtils.GenerateMessageFromGetSquadWarStatusResponse(response);

            this.controller.InitSquadWarState(squadMsg.CurrentSquadWarData);
            Service.Get <EventManager>().SendEvent(EventId.SquadUpdateCompleted, null);
        }
Beispiel #10
0
        private bool IsMsgValid(SquadMsg msg)
        {
            CurrentPlayer currentPlayer = Service.CurrentPlayer;

            if (msg.OwnerData != null && this.encryptedPlayerId == msg.OwnerData.PlayerId && currentPlayer.LoginTime < msg.TimeSent)
            {
                return(false);
            }
            if (GameConstants.PHOTON_CHAT_COMPLEX_COMPARE_ENABLED)
            {
                if (this.latestMsg != null)
                {
                    bool flag  = msg.TimeSent < this.latestMsg.TimeSent;
                    bool flag2 = msg.TimeSent == this.latestMsg.TimeSent;
                    bool flag3 = msg.ChatData != null && this.latestMsg.ChatData != null && msg.ChatData.Message == this.latestMsg.ChatData.Message;
                    bool flag4 = msg.OwnerData != null && this.latestMsg.OwnerData != null && msg.OwnerData.PlayerId == this.latestMsg.OwnerData.PlayerId;
                    if (flag || (flag2 && flag3 && flag4))
                    {
                        return(false);
                    }
                }
            }
            else if (this.latestMsg != null && msg.TimeSent <= this.latestMsg.TimeSent)
            {
                return(false);
            }
            return(true);
        }
Beispiel #11
0
 public void RemoveMsgsByType(string playerId, SquadMsgType[] types)
 {
     if (types == null)
     {
         return;
     }
     for (int i = this.msgs.Count - 1; i >= 0; i--)
     {
         SquadMsg squadMsg = this.msgs[i];
         if (squadMsg.OwnerData != null && squadMsg.OwnerData.PlayerId == playerId)
         {
             int j   = 0;
             int num = types.Length;
             while (j < num)
             {
                 if (squadMsg.Type == types[j])
                 {
                     this.RemoveMsg(squadMsg, true);
                     break;
                 }
                 j++;
             }
         }
     }
 }
        private void CountChatMessages()
        {
            this.msgCount       = 0;
            this.requestCount   = 0;
            this.replayCount    = 0;
            this.updateCount    = 0;
            this.videoCount     = 0;
            this.totalChatCount = 0;
            SquadController squadController  = Service.Get <SquadController>();
            List <SquadMsg> existingMessages = squadController.MsgManager.GetExistingMessages();
            CurrentPlayer   currentPlayer    = Service.Get <CurrentPlayer>();
            int             i     = 0;
            int             count = existingMessages.Count;

            while (i < count)
            {
                SquadMsg squadMsg = existingMessages[i];
                if (squadMsg != null && squadMsg.OwnerData != null && squadMsg.OwnerData.PlayerId != currentPlayer.PlayerId && squadMsg.TimeSent > this.GetLastViewedTimeByMessageType(squadMsg.Type))
                {
                    this.IncrementBadgeByMessageType(squadMsg.Type);
                }
                i++;
            }
            this.totalChatCount = this.msgCount + this.requestCount + this.replayCount + this.updateCount + this.videoCount;
        }
Beispiel #13
0
 public static MemberIdRequest GenerateMemberIdRequest(SquadMsg message)
 {
     return(new MemberIdRequest
     {
         PlayerId = message.OwnerData.PlayerId,
         MemberId = message.MemberData.MemberId
     });
 }
Beispiel #14
0
 public static SquadIDRequest GenerateSquadIdRequest(SquadMsg message)
 {
     return(new SquadIDRequest
     {
         SquadId = message.SquadData.Id,
         PlayerId = message.OwnerData.PlayerId
     });
 }
Beispiel #15
0
        private void OnRejectClicked(UXButton button)
        {
            SquadMsg message = SquadMsgUtils.CreateRejectSquadInviteMessage(this.invite.SquadId, new SquadController.ActionCallback(this.OnRejectSquadInviteComplete), null);

            Service.SquadController.TakeAction(message);
            Service.EventManager.SendEvent(EventId.SquadNext, null);
            ProcessingScreen.Show();
        }
Beispiel #16
0
        private void PopulateSquadMsgsReceivedFromPhoton(string channelName, string[] senders, object[] messages)
        {
            if (senders == null && messages == null && senders.Length != messages.Length)
            {
                Service.Logger.Error("Cannot populate squad messages, senders and messages count mismatch!");
                return;
            }
            if (messages.Length == 0)
            {
                return;
            }
            if (string.IsNullOrEmpty(this.messageEncryptionKey))
            {
                Service.Logger.Error("Failed to update received messages, message encryption key is null or blank!");
                return;
            }
            int i   = 0;
            int num = messages.Length;

            while (i < num)
            {
                string messageAndIV = messages[i] as string;
                string text         = ChatCryptographyUtils.DecryptMessageWithIV(messageAndIV, this.messageEncryptionKey);
                object obj          = null;
                if (!string.IsNullOrEmpty(text) && text.StartsWith("{"))
                {
                    obj = new JsonParser(text).Parse();
                }
                if (obj == null)
                {
                    Service.Logger.WarnFormat("Decrypted chat message is invalid:{0}", new object[]
                    {
                        (text != null) ? text : string.Empty
                    });
                }
                else
                {
                    PhotonChatMessageTO photonChatMessageTO = new PhotonChatMessageTO(obj);
                    if (this.filter != null)
                    {
                        photonChatMessageTO.Text = this.filter.Filter(photonChatMessageTO.Text);
                    }
                    SquadMsg squadMsg = SquadMsgUtils.GenerateMessageFromPhotonChatMessage(senders[i], photonChatMessageTO);
                    if (squadMsg != null)
                    {
                        if (this.IsMsgValid(squadMsg))
                        {
                            this.list.Add(squadMsg);
                            if (this.latestMsg == null || squadMsg.TimeSent > this.latestMsg.TimeSent)
                            {
                                this.latestMsg = squadMsg;
                            }
                        }
                    }
                }
                i++;
            }
        }
Beispiel #17
0
 public static TroopSquadRequest GenerateTroopRequest(SquadMsg message)
 {
     return(new TroopSquadRequest
     {
         PlayerId = message.OwnerData.PlayerId,
         PayToSkip = message.RequestData.PayToSkip,
         Message = WWW.EscapeURL(message.RequestData.Text)
     });
 }
Beispiel #18
0
 public static ShareReplayRequest GenerateShareReplayRequest(SquadMsg message)
 {
     return(new ShareReplayRequest
     {
         PlayerId = message.OwnerData.PlayerId,
         BattleId = message.ReplayData.BattleId,
         Message = WWW.EscapeURL(message.ReplayData.Text)
     });
 }
Beispiel #19
0
 public static SquadInvite GenerateSquadInvite(SquadMsg message)
 {
     return(new SquadInvite
     {
         SquadId = message.SquadData.Id,
         SenderId = message.FriendInviteData.SenderId,
         SenderName = message.FriendInviteData.SenderName
     });
 }
Beispiel #20
0
 public static ApplyToSquadRequest GenerateApplyToSquadRequest(SquadMsg message)
 {
     return(new ApplyToSquadRequest
     {
         SquadId = message.SquadData.Id,
         PlayerId = message.OwnerData.PlayerId,
         Message = WWW.EscapeURL(message.RequestData.Text)
     });
 }
Beispiel #21
0
        public static CreateSquadRequest GenerateCreateSquadRequest(SquadMsg message)
        {
            SqmSquadData squadData = message.SquadData;

            return(new CreateSquadRequest(WWW.EscapeURL(squadData.Name), WWW.EscapeURL(squadData.Desc), squadData.Icon, squadData.MinTrophies, squadData.Open)
            {
                PlayerId = message.OwnerData.PlayerId
            });
        }
Beispiel #22
0
 private void OnLeaveAndCreateSquad(object result, object cookie)
 {
     if (result != null)
     {
         ProcessingScreen.Show();
         SquadMsg message = SquadMsgUtils.CreateLeaveSquadMessage(new SquadController.ActionCallback(this.OnLeaveComplete), null);
         Service.SquadController.TakeAction(message);
     }
 }
Beispiel #23
0
        private void OnActionCommandFailure(uint status, object cookie)
        {
            SquadMsg squadMsg = (SquadMsg)cookie;

            this.controller.OnPlayerActionFailure(squadMsg, status);
            if (squadMsg.ActionData.Callback != null)
            {
                squadMsg.ActionData.Callback(false, cookie);
            }
        }
Beispiel #24
0
        private SquadMsg GetParentMsg(SquadMsg msg)
        {
            SquadMsg result = null;

            if (msg.Type == SquadMsgType.TroopDonation && msg.DonationData != null && !string.IsNullOrEmpty(msg.DonationData.RequestId) && this.msgsByIds.ContainsKey(msg.DonationData.RequestId))
            {
                result = this.msgsByIds[msg.DonationData.RequestId];
            }
            return(result);
        }
Beispiel #25
0
        private static SquadMsg CreateSquadMessage(string squadId, SquadAction action, SquadController.ActionCallback callback, object cookie)
        {
            SqmSquadData sqmSquadData = new SqmSquadData();

            sqmSquadData.Id = squadId;
            SquadMsg squadMsg = SquadMsgUtils.CreateActionMessage(action, callback, cookie);

            squadMsg.SquadData = sqmSquadData;
            return(squadMsg);
        }
Beispiel #26
0
        public static SquadMsg CreateApplyToJoinSquadMessage(string squadId, string message, SquadController.ActionCallback callback, object cookie)
        {
            SqmRequestData sqmRequestData = new SqmRequestData();

            sqmRequestData.Text = message;
            SquadMsg squadMsg = SquadMsgUtils.CreateSquadMessage(squadId, SquadAction.ApplyToJoin, callback, cookie);

            squadMsg.RequestData = sqmRequestData;
            return(squadMsg);
        }
Beispiel #27
0
 public static TroopDonateRequest GenerateTroopDonateRequest(SquadMsg message)
 {
     return(new TroopDonateRequest
     {
         PlayerId = message.OwnerData.PlayerId,
         RecipientId = message.DonationData.RecipientId,
         RequestId = message.DonationData.RequestId,
         Donations = new Dictionary <string, int>(message.DonationData.Donations)
     });
 }
 private void OnLeaveAndJoinSquad(object result, object cookie)
 {
     if (result != null)
     {
         ProcessingScreen.Show();
         SquadMsg message = SquadMsgUtils.CreateLeaveSquadMessage(new SquadController.ActionCallback(this.OnLeaveComplete), null);
         Service.Get <SquadController>().TakeAction(message);
         return;
     }
     this.button.Enabled = true;
 }
Beispiel #29
0
        public static SquadMsg CreateSendReplayMessage(string battleId, string message)
        {
            SqmReplayData sqmReplayData = new SqmReplayData();

            sqmReplayData.BattleId = battleId;
            sqmReplayData.Text     = message;
            SquadMsg squadMsg = SquadMsgUtils.CreateActionMessage(SquadAction.ShareReplay, null, null);

            squadMsg.ReplayData = sqmReplayData;
            return(squadMsg);
        }
Beispiel #30
0
        public static SquadMsg CreateShareReplayMessage(string message, BattleEntry entry)
        {
            SqmReplayData sqmReplayData = new SqmReplayData();

            sqmReplayData.BattleId = entry.RecordID;
            sqmReplayData.Text     = message;
            SquadMsg squadMsg = SquadMsgUtils.CreateActionMessage(SquadAction.ShareReplay, null, null);

            squadMsg.ReplayData = sqmReplayData;
            return(squadMsg);
        }