Ejemplo n.º 1
0
 public void OnClickMailCell(MailItemData mailData)
 {
     if (SelectMail(mailData))
     {
         MailBoxManager.Instance.MailList.DataUpdated = true;
         GameDataSparxManager.Instance.SetDirty(MailBoxManager.ListDataId);
     }
 }
Ejemplo n.º 2
0
        bool SelectMail(MailItemData mailData)
        {
            if (mailData.IsSelect)
            {
                return(false);
            }

            MailBoxManager.Instance.MailList.Mails.ForEach(m => m.IsSelect = false);
            mailData.IsSelect = true;
            if (!mailData.HasRead)
            {
                MailBoxManager.Instance.HasRead(mailData.MailId);
                mailData.HasRead = true;
            }
            SetMailContent(mailData);
            return(true);
        }
Ejemplo n.º 3
0
        private MailItemData Parse(object value, int mailId)
        {
            if (value == null)
            {
                return(null);
            }

            MailItemData item = Find(mailId.ToString()) ?? new MailItemData();

            item.MailId      = EB.Dot.String("mailId", value, item.MailId);
            item.HasRead     = EB.Dot.Bool("hasRead", value, item.HasRead);
            item.Title       = EB.Dot.String("mailTitle", value, item.Title);
            item.Text        = EB.Dot.String("mailText", value, item.Text);
            item.TextParams  = Hotfix_LT.EBCore.Dot.Array <string>("param", value, null, delegate(object val) { return(val.ToString()); });
            item.Sender      = EB.Dot.String("senderName", value, item.Sender);
            item.Time        = EB.Dot.Long("createTime", value, item.Time);
            item.HasReceived = EB.Dot.Bool("hasReceived", value, item.HasReceived);
            item.ReMainTime  = EB.Dot.Integer("remaing_time", value, item.ReMainTime);
            ArrayList giftArr = Hotfix_LT.EBCore.Dot.Array("gift", value, null);

            if (giftArr != null)
            {
                item.Rewards.Clear();
                //item.Reward.Hc = 0;
                //item.Reward.Gold = 0;
                for (int i = 0; i < giftArr.Count; ++i)
                {
                    IDictionary    dic     = giftArr[i] as IDictionary;
                    string         type    = EB.Dot.String("t", dic, "");
                    string         id      = EB.Dot.String("n", dic, "");
                    int            quality = EB.Dot.Integer("q", dic, 0);
                    LTShowItemData reward  = new LTShowItemData(id, quality, type, false);
                    item.Rewards.Add(reward);
                }
            }
            item.IsContainReward = !(giftArr == null);
            return(item);
        }
Ejemplo n.º 4
0
        public MailItemData Find(string mailId)
        {
            MailItemData item = Mails.Where(m => m.MailId == mailId).FirstOrDefault();

            return(item);
        }
Ejemplo n.º 5
0
        private void OnMailListListener(string path, INodeData data)
        {
            MailList mails = data as MailList;

            if (mails == null || !mails.DataUpdated)
            {
                return;
            }

            mails.DataUpdated = false;

            if (mFirstOpen && mails.Mails != null)
            {
                for (int i = 0; i < mails.Mails.Count - 1; i++)
                {
                    for (int j = 0; j < mails.Mails.Count - 1 - i; j++)
                    {
                        if (mails.Mails[j].Time < mails.Mails[j + 1].Time)
                        {
                            var bottle = mails.Mails[j];
                            mails.Mails[j]     = mails.Mails[j + 1];
                            mails.Mails[j + 1] = bottle;
                        }
                    }
                }
                for (int i = 0; i < mails.Mails.Count - 1; i++)
                {
                    for (int j = 0; j < mails.Mails.Count - 1 - i; j++)
                    {
                        if (mails.Mails[j].HasRead == true &&
                            mails.Mails[j + 1].HasRead == false)
                        {
                            var bottle = mails.Mails[j];
                            mails.Mails[j]     = mails.Mails[j + 1];
                            mails.Mails[j + 1] = bottle;
                        }
                    }
                }
            }

            if (mails.Mails != null)
            {
                System.Array   sourceArr    = mails.Mails.ToArray();
                int            sourceLength = sourceArr.Length;
                int            copyLength   = sourceLength > MailBoxManager.Instance.CapacityNum ? MailBoxManager.Instance.CapacityNum : sourceLength;
                MailItemData[] targetArr    = new MailItemData[copyLength];
                System.Array.Copy(sourceArr, targetArr, copyLength);
                if (targetArr.Length > 0)
                {
                    //如果在邮件界面 服务器主动推送就不会刷新右侧界面的Bug
                    if (mFirstOpen || targetArr.Length == 1)
                    {
                        OnClickMailCell(targetArr[0]);
                    }

                    if (MailListScroll != null)
                    {
                        MailListScroll.SetItemDatas(targetArr);
                    }

                    LTUIUtil.SetText(controller.UiLabels["UnReadLabel"], mails.Mails.FindAll(m => !m.HasRead).Count.ToString());
                    LTUIUtil.SetText(controller.UiLabels["MailCapacityLabel"], string.Format("{0}/{1}", mails.Mails.Count, MailBoxManager.Instance.CapacityNum));
                    controller.GObjects["ContentFrame"].gameObject.SetActive(true);
                }
                else
                {
                    controller.GObjects["ContentFrame"].gameObject.SetActive(false);
                }
            }

            bool HaveUnReceivedMail = false;

            if (MailBoxManager.Instance.MailList != null && MailBoxManager.Instance.MailList.Mails != null)
            {
                for (var i = 0; i < MailBoxManager.Instance.MailList.Mails.Count; i++)
                {
                    var mail = MailBoxManager.Instance.MailList.Mails[i];

                    if (!mail.HasReceived && mail.ItemCount > 0)
                    {
                        HaveUnReceivedMail = true;
                    }
                }
            }

            controller.GObjects["OneKeyRec"].SetActive(HaveUnReceivedMail);
            controller.GObjects["OneKeyDel"].SetActive(!HaveUnReceivedMail);
            mFirstOpen = false;
        }
Ejemplo n.º 6
0
        public void SetMailContent(MailItemData data)
        {
            MailItemData = data;
            LTUIUtil.SetText(controller.UiLabels["Title"], EB.Localizer.GetString(MailItemData.Title));
            string mailText = EB.Localizer.GetString(MailItemData.Text);
            int    count    = ContainLeftBraceNum(mailText);

            string[] args = data.TextParams;

            if (args.Length < count)
            {
                List <string> list = new List <string>(args);
                list.AddRange(new string[count - args.Length]);
                args = list.ToArray();
            }

            LTUIUtil.SetText(controller.UiLabels["ContentLabel"], string.Format(mailText, args));
            LTUIUtil.SetText(controller.UiLabels["ValidTime"], (MailItemData.ReMainTime / 86400).ToString() + EB.Localizer.GetString("ID_codefont_in_MailController_5921"));

            if (controller.UiScrollViews["ContentScrollView"] != null)
            {
                controller.UiScrollViews["ContentScrollView"].SetDragAmount(0, 0, false);

                var uiPanel = controller.UiScrollViews["ContentScrollView"].GetComponent <UIPanel>();

                if (uiPanel != null)
                {
                    controller.UiScrollViews["ContentScrollView"].enabled = controller.UiLabels["ContentLabel"].height > uiPanel.GetViewSize().y;
                }
            }

            var bc = controller.UiLabels["ContentLabel"].GetComponent <BoxCollider>();

            if (bc != null)
            {
                bc.size   = new Vector3(controller.UiLabels["ContentLabel"].width, controller.UiLabels["ContentLabel"].height, 0);
                bc.center = new Vector3(0, -controller.UiLabels["ContentLabel"].height / 2, 0);
            }

            if (MailItemData.ItemCount > 0)
            {
                controller.UiWidgets["DescBg"].height = 305;
                RewardItems[0].mDMono.transform.parent.gameObject.SetActive(true);
                controller.GObjects["RewardBGRoot"].gameObject.SetActive(true);

                int itemCount = MailItemData.ItemCount;
                for (int i = 0; i < 5; ++i)
                {
                    if (i >= itemCount)
                    {
                        RewardItems[i].mDMono.gameObject.SetActive(false);
                    }
                    else
                    {
                        var item = MailItemData.Rewards.GetItem(i);
                        RewardItems[i].LTItemData = new LTShowItemData(item.id, item.count, item.type, false);
                        RewardItems[i].mDMono.gameObject.SetActive(true);
                    }
                }


                controller.Transforms["ReceiveBtn"].gameObject.SetActive(!MailItemData.HasReceived);
                controller.UiSprites["HasReceivedBtn"].gameObject.SetActive(MailItemData.HasReceived);
            }
            else
            {
                controller.UiWidgets["DescBg"].height = 450;
                RewardItems[0].mDMono.transform.parent.gameObject.SetActive(false);
                controller.GObjects["RewardBGRoot"].gameObject.SetActive(false);

                controller.Transforms["ReceiveBtn"].gameObject.SetActive(false);
                controller.UiSprites["HasReceivedBtn"].gameObject.SetActive(true);
            }
        }