private void OnMailClick(RectTransform tr, PMail data) { moduleMailbox.currentMail = data; int lastSelectIndex = selectIndex; selectIndex = moduleMailbox.allMails.FindIndex((p) => p.mailId == data.mailId); if (lastSelectIndex != selectIndex) { dataSource.SetItem(moduleMailbox.allMails[lastSelectIndex], lastSelectIndex); } dataSource.SetItem(data, selectIndex); OnClick(data); }
void _Packet(ScSystemMailNew p) { PMail mail = null; p.mail.CopyTo(ref mail); var _mail = m_allMails.Find(o => o.mailId == mail.mailId); if (_mail == null && m_allMails.Count < 100) { m_allMails.Add(mail); } SortList(); }
private void OnSetItemInfo(RectTransform node, PMail data) { if (data == null) { return; } MailItem item = new MailItem(node); item.RefreshUi(data); Transform select = node.Find("selectImage"); if (select && moduleMailbox.currentMail != null) { select.SafeSetActive(data.mailId == moduleMailbox.currentMail.mailId); } }
public void RefreshUi(PMail mail) { if (mail.type > 200) { if (mail.type >= 204 && mail.type <= 207) { var info = ConfigManager.Get <ConfigText>(mail.type - 204 + 33); //映射多语言文本 Util.SetText(title, info.text[0]); } else { var info = ConfigManager.Get <ConfigText>(mail.type); if (info != null) { title.text = info.text[1]; } } } else { title.text = mail.title; } //奖励为空 看未读已读显示 奖励有,看是否领取 bool isShowAlready = (mail.attachment == null || mail.attachment.Length < 1) || (mail.attachment.Length > 0 && mail.isGet == 1); readTran.SafeSetActive(mail.isRead == 1); noReadTran.SafeSetActive(mail.isRead != 1); //已读的情况下 ,看是否领取了奖励来管理 if (mail.isRead == 1) { alreadyGet.SafeSetActive(isShowAlready); noGet.SafeSetActive(!isShowAlready); } else { alreadyGet.SafeSetActive(false); noGet.SafeSetActive(true); } attachment.SafeSetActive(!isShowAlready); int num = 0; for (int i = 0; i < mail.attachment.Length; i++) { var prop = ConfigManager.Get <PropItemInfo>(mail.attachment[i].itemTypeId); if (!prop || !prop.IsValidVocation(modulePlayer.proto)) { continue; } num++; } Util.SetText(attachment, (int)TextForMatType.LabyrinthMailText, 2, num);//{0}个附件 //剩余时间 DateTime localdt = Util.GetDateTime(mail.time); DateTime now = Util.GetServerLocalTime(); TimeSpan remaining = now - localdt; int day = moduleGlobal.system.mailDaysLimit - remaining.Days - 1; day = day < 0 ? 0 : day; int hours = 24 - remaining.Hours; hours = hours < 0 ? 0 : hours; Util.SetText(remainingTime, (int)TextForMatType.LabyrinthMailText, 3, day, 24 - remaining.Hours); }
private void OnGetGoods(PMail obj) { moduleMailbox.SendGetOneAttachment(obj.mailId); }
private void OnClick(PMail data) { if (data.type == 201) { var info = ConfigManager.Get <ConfigText>(data.type); if (info != null) { mailTitle.text = info.text[1]; mailSender.text = info.text[0]; //显示内容 if (data.type == (byte)TextForMatType.LabyrinthMailText) { string[] strs = data.content.Split('-');//0:迷宫ID 1:在迷宫的几层 2:晋级情况(1:晋级 2:保级 3:降级) 3:小组排名 var labInfo = ConfigManager.Get <LabyrinthInfo>(Util.Parse <int>(strs[0])); if (labInfo == null) { Logger.LogError("LabyrinthInfo config id=={0} is null", strs[0]); return; } var allLabInfo = ConfigManager.GetAll <LabyrinthInfo>(); int maxId = allLabInfo?[allLabInfo.Count - 1].ID ?? 0; string maxStr = string.Empty; if (strs[0].Equals(maxId.ToString())) { maxStr = info.text[10]; } else { var nextLabInfo = ConfigManager.Get <LabyrinthInfo>(Util.Parse <int>(strs[0]) + 1); if (nextLabInfo != null) { maxStr = Util.Format(info.text[7], nextLabInfo.labyrinthName); } } int minId = allLabInfo?[0].ID ?? 0; string minStr = string.Empty; if (strs[0].Equals(minId.ToString())) { minStr = Util.Format(info.text[9], labInfo.labyrinthName); } else { var lastLabyInfo = ConfigManager.Get <LabyrinthInfo>(Util.Parse <int>(strs[0]) - 1); if (lastLabyInfo != null) { minStr = Util.Format(info.text[9], lastLabyInfo.labyrinthName); } } string str = strs[2] == null ? "" : strs[2] == "1" ? maxStr : strs[2] == "2" ? info.text[8] : minStr; mailContent.text = Util.Format(info.text[5].Replace("\\n", "\n").Replace("\\t", "\t"), labInfo.labyrinthName, strs[1], strs[3], str); } } } else if (data.type >= 204 && data.type <= 207) { var info = ConfigManager.Get <ConfigText>(data.type - 204 + 33); //映射多语言文本 if (info != null) { Util.SetText(mailTitle, info.text[0]); Util.SetText(mailSender, info.text[1]); switch (data.type) { case 204: Util.SetText(mailContent, Util.Format(info.text[2], data.content)); break; case 205: case 206: Util.SetText(mailContent, Util.Format(info.text[2], Module_FactionBattle.FactionName((Module_FactionBattle.Faction)Util.Parse <int>(data.content)))); break; case 207: Util.SetText(mailContent, Util.Format(info.text[2], Module_FactionBattle.GetKillString(Util.Parse <int>(data.content)))); break; } } } else { mailTitle.text = data.title; mailContent.text = data.content; string text = ConfigText.GetDefalutString(TextForMatType.PublicUIText, 32); if (!string.IsNullOrEmpty(text)) { string str = Util.Format(text, data.name); mailSender.text = str; } } DateTime localdt = Util.GetDateTime(data.time); Util.SetText(mailTitleTime, (int)TextForMatType.LabyrinthMailText, 4, localdt.Year, localdt.Month, localdt.Day); if (data.isGet == 0 && data.attachment != null && data.attachment.Length > 0)//有附件并且未领取的情况 { getBtn.SafeSetActive(true); awardGoods.SafeSetActive(true); if (awardGoods.childCount > 0) { for (int i = 0; i < awardGoods.childCount; i++) { awardGoods.GetChild(i).SafeSetActive(false); } } for (int i = 0; i < data.attachment.Length; i++) { var prop = ConfigManager.Get <PropItemInfo>(data.attachment[i].itemTypeId); if (!prop || !prop.IsValidVocation(modulePlayer.proto)) { continue; } Transform tran = awardGoods.childCount > i?awardGoods.GetChild(i) : null; if (tran == null) { tran = awardGoods.AddNewChild(itemObj); } tran.SafeSetActive(true); Util.SetItemInfo(tran, prop, 0, (int)data.attachment[i].num, false); var btn = tran?.GetComponentDefault <Button>(); btn.onClick.RemoveAllListeners(); btn.onClick.AddListener(() => moduleGlobal.UpdateGlobalTip((ushort)prop.ID, true, false)); } getBtn.onClick.RemoveAllListeners(); getBtn.onClick.AddListener(() => { OnGetGoods(moduleMailbox.currentMail); }); } else //没有附件的情况 { awardGoods.SafeSetActive(false); getBtn.SafeSetActive(false); } if (moduleMailbox.alreadySendRead != null && !moduleMailbox.alreadySendRead.ContainsKey(data.mailId)) { moduleMailbox.AddAlreadySendDic(data.mailId); moduleMailbox.SendReadMail(data.mailId); } SetButtonEnable(); }