public void OnClickMailCell(MailItemData mailData) { if (SelectMail(mailData)) { MailBoxManager.Instance.MailList.DataUpdated = true; GameDataSparxManager.Instance.SetDirty(MailBoxManager.ListDataId); } }
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); }
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); }
public MailItemData Find(string mailId) { MailItemData item = Mails.Where(m => m.MailId == mailId).FirstOrDefault(); return(item); }
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; }
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); } }