using System; using System.Collections.Generic; using UnityEngine; public class MailUI : MonoBehaviourSingletonuScrollViewMgr { public GameObject[] gos; // 0 child, 1 μš°νŽΈμ—†μŒ public override void Set() { ServerInfo.Ins.Get_MailList(() => { Set_UI(ServerInfo.Ins.m_Mail); }); base.Set(); CardBase_AllOff(); DSUtil.ActivateGameObjects(gos); } void Set_UI(SC_Mail mail) { if (mail == null || mail.Mail == null || mail.Mail.Count == 0) { CardBase_AllOff(); gos[1].SetActive(true); NewGameUI.Ins.gos_noti[0].SetActive(false); } else { gos[1].SetActive(false); Set_ScrollView(mail.Mail); NewGameUI.Ins.gos_noti[0].SetActive(true); } } public void Del_Mail(ServerMailData _smd) { var MailData = ServerInfo.Ins.m_Mail; if (MailData != null) MailData.Mail.Remove(_smd); Set_UI(MailData); } public void Get_AllMail() { var MailData = ServerInfo.Ins.m_Mail; if (MailData == null || MailData.Mail == null || MailData.Mail.Count <= 0) return; ServerInfo.Ins.Get_AllMail(mail => { var obtainlist = new List(); var sdata = ServerInfo.Ins.m_ServerData; for (int i = 0; i < mail.Mail.Count; i++) { var temp = MailData.Mail.Find(f => DateTime.Compare(f.RemnantTime, mail.Mail[i].RemnantTime) == 0); if (temp != null) { obtainlist.Add(new ItemSimpleData { itemid = temp.ItemID, amount = temp.Amount }); } } obtainlist = Get_MailReward(obtainlist); if (obtainlist.Count > 0) ObtainItemUI.Ins.Set(obtainlist); MailData = null; Set_UI(MailData); NewGameUI.Ins.gos_noti[0].SetActive(false); }); } public List Get_MailReward(List rewards) { var obtainlist = new List(); for (int i = 0; i < rewards.Count; i++) { var temp = rewards[i]; var itemdata = table_itemlist.Ins.Get_Data(temp.itemid); if (itemdata.e_ItemType == eItem.Shop) { var shopdata = table_shopitemlist.Ins.Get_Data(temp.itemid); var bag = table_randombag.Ins.Get_DataList(shopdata.n_RandomBagID); for (int j = 0; j < bag.Count; j++) obtainlist.Add(new ItemSimpleData { itemid = bag[j].n_ItemId, amount = bag[j].n_DropCount }); } else obtainlist.Add(new ItemSimpleData { itemid = temp.itemid, amount = temp.amount }); } var sdata = ServerInfo.Ins.m_ServerData; for (int i = 0; i < obtainlist.Count; i++) sdata.Add_Item(obtainlist[i].itemid, obtainlist[i].amount); return obtainlist; } public override void OnClick_Back() { var MailData = ServerInfo.Ins.m_Mail; Del_BackKey(); DSUtil.InActivateGameObjects(gos); NewGameUI.Ins.gos_noti[0].SetActive(MailData != null && MailData.Mail.Count > 0); } }