//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Tuesday, March 06, 2018 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; using System.Collections.Generic; namespace Snxxz.UI { public class OnlineRewards : MonoBehaviour { [SerializeField] Text m_Award; [SerializeField] Transform m_Group; [SerializeField] Text m_NextTime; OnlineRewardsModel m_OnlineRewardsModel; OnlineRewardsModel OnlineRewardsModel { get { return m_OnlineRewardsModel ?? (m_OnlineRewardsModel = ModelCenter.Instance.GetModel()); } } ItemTipsModel _itemTipsModel; ItemTipsModel itemTipsModel { get { return _itemTipsModel ?? (_itemTipsModel = ModelCenter.Instance.GetModel()); } } public void IsReceiveAward(int Day) { DayText(Day); int NowDay = TimeUtility.CreateDays; if (Day < NowDay) { UsedDay(Day); m_NextTime.gameObject.SetActive(false); } else if (Day == NowDay) { ToDay(Day); m_NextTime.gameObject.SetActive(false); } else if (Day > NowDay) { NoShow(Day); m_NextTime.gameObject.SetActive(true); if (Day - NowDay == 1) { m_NextTime.text = Language.Get("Tomorrow_Draw"); } else { m_NextTime.text = string.Format(Language.Get("Rest_Time"), Day - NowDay); } } } private void UsedDay(int Day) { for (int i = 0; i < m_Group.childCount; i++) { m_Group.GetChild(i).gameObject.SetActive(false); } int[] TimeMinute = OnlineRewardsModel.OnlineRewards[Day].TimeMinute; ImpactRankModel.RankAwardItem RankAwardItem = OnlineRewardsModel.OnlineRewards[Day].RankAwardItem; int type = 0; for (int i = 0; i < TimeMinute.Length; i++) { int Inedx = 0; m_Group.GetChild(i).gameObject.SetActive(true); type += 1; OnliineRewardItemCell onliineRewardItemCell = m_Group.GetChild(i).GetComponent(); onliineRewardItemCell.CumulativeTime.gameObject.SetActive(true); onliineRewardItemCell.UIeffect.SetActive(false); List itemList = RankAwardItem.GetAwardItem(type); AwardItem item = itemList[0]; ItemCell itemCell = onliineRewardItemCell.ItemCell; int getType = i; if (!OnlineRewardsModel.AcceptDrizeAllDic.ContainsKey(Day)) { return; } int state = OnlineRewardsModel.AcceptDrizeAllDic[Day][TimeMinute[getType]]; ; if (state == -1) { onliineRewardItemCell.Image.SetActive(false); onliineRewardItemCell.CumulativeTime.text = Language.Get("TheCumulativeOnlineMiss"); } else if (state == 0) { onliineRewardItemCell.Image.SetActive(false); onliineRewardItemCell.CumulativeTime.text = Language.Get("TheCumulativeOnlineMiss"); Inedx = i + 1; } else if (state == 1) { onliineRewardItemCell.Image.SetActive(true); onliineRewardItemCell.CumulativeTime.text = Language.Get("RealmPractice110"); } ItemCellModel cellModel = new ItemCellModel(item.item.id, true, (ulong)item.item.count, item.isBind); itemCell.Init(cellModel); itemCell.cellBtn.RemoveAllListeners(); itemCell.cellBtn.AddListener(() => { ItemAttrData attrData = new ItemAttrData(item.item.id, false, (ulong)item.item.count, -1, item.isBind); itemTipsModel.SetItemTipsModel(attrData); }); } } private void NoShow(int Day) { for (int i = 0; i < m_Group.childCount; i++) { m_Group.GetChild(i).gameObject.SetActive(false); } int[] TimeMinute = OnlineRewardsModel.OnlineRewards[Day].TimeMinute; ImpactRankModel.RankAwardItem RankAwardItem = OnlineRewardsModel.OnlineRewards[Day].RankAwardItem; int type = 0; for (int i = 0; i < TimeMinute.Length; i++) { type += 1; m_Group.GetChild(i).gameObject.SetActive(true); OnliineRewardItemCell onliineRewardItemCell = m_Group.GetChild(i).GetComponent(); onliineRewardItemCell.CumulativeTime.gameObject.SetActive(true); onliineRewardItemCell.UIeffect.SetActive(false); onliineRewardItemCell.CumulativeTime.text =Language.Get("L1057"); List itemList = RankAwardItem.GetAwardItem(type); AwardItem item = itemList[0]; onliineRewardItemCell.Image.SetActive(false); ItemCell itemCell = onliineRewardItemCell.ItemCell; ItemCellModel cellModel = new ItemCellModel(item.item.id, true, (ulong)item.item.count, item.isBind); itemCell.Init(cellModel); itemCell.cellBtn.RemoveAllListeners(); itemCell.cellBtn.AddListener(() => { ItemAttrData attrData = new ItemAttrData(item.item.id, false, (ulong)item.item.count, -1, item.isBind); itemTipsModel.SetItemTipsModel(attrData); }); } } private void ToDay(int Day)//这是今天的 { for (int i = 0; i < m_Group.childCount; i++) { m_Group.GetChild(i).gameObject.SetActive(false); } int[] TimeMinute = OnlineRewardsModel.OnlineRewards[Day].TimeMinute; ImpactRankModel.RankAwardItem RankAwardItem = OnlineRewardsModel.OnlineRewards[Day].RankAwardItem; int type = 0; for (int i = 0; i < TimeMinute.Length; i++) { int Inedx = 0; m_Group.GetChild(i).gameObject.SetActive(true); type += 1; OnliineRewardItemCell onliineRewardItemCell = m_Group.GetChild(i).GetComponent(); onliineRewardItemCell.CumulativeTime.gameObject.SetActive(true); onliineRewardItemCell.CumulativeTime.text = string.Format(Language.Get("TheCumulativeOnline"), TimeMinute[i]); List itemList = RankAwardItem.GetAwardItem(type); AwardItem item = itemList[0]; ItemCell itemCell = onliineRewardItemCell.ItemCell; int getType = i; if (!OnlineRewardsModel.AcceptDrizeAllDic.ContainsKey(Day)) { return; } int state = OnlineRewardsModel.AcceptDrizeAllDic[Day][TimeMinute[getType]]; onliineRewardItemCell.UIeffect.SetActive(false); if (state == -1) { onliineRewardItemCell.Image.SetActive(false); } else if (state == 0) { onliineRewardItemCell.UIeffect.SetActive(true); onliineRewardItemCell.Image.SetActive(false); onliineRewardItemCell.CumulativeTime.text = Language.Get("TheCumulativeOnlineRewards"); Inedx = i + 1; } else if (state == 1) { onliineRewardItemCell.Image.SetActive(true); onliineRewardItemCell.CumulativeTime.text = Language.Get("RealmPractice110"); } ItemCellModel cellModel = new ItemCellModel(item.item.id, true, (ulong)item.item.count, item.isBind); itemCell.Init(cellModel); itemCell.cellBtn.RemoveAllListeners(); itemCell.cellBtn.AddListener(() => { if (state == 0) { OnlineRewardsModel.SendReceiveAward(Inedx); } else { ItemAttrData attrData = new ItemAttrData(item.item.id, false, (ulong)item.item.count, -1, item.isBind); itemTipsModel.SetItemTipsModel(attrData); } }); } } private void DayText(int day) { switch (day) { case 1: m_Award.text = Language.Get("One_day"); break; case 2: m_Award.text = Language.Get("Two_day"); break; case 3: m_Award.text = Language.Get("Three_day"); break; case 4: m_Award.text = Language.Get("Four_day"); break; case 5: m_Award.text = Language.Get("Five_day"); break; case 6: m_Award.text = Language.Get("Six_day"); break; case 7: m_Award.text = Language.Get("Seven_day"); break; } } } }