//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Friday, June 22, 2018 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; using System.Collections.Generic; namespace Snxxz.UI { public class OnlineRewardsOnTime:MonoBehaviour { [SerializeField] Text m_NeedTime;//需要时间 [SerializeField] Transform m_Group; [SerializeField] Button m_Receive;//领取按钮 [SerializeField] GameObject m_AlreadyReceive;//已领取 [SerializeField] GameObject m_NotReach;//未达成 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()); } } List MinutesList = new List(); public void GetMinutes(int minutes) { m_Receive.gameObject.SetActive(false); m_AlreadyReceive.SetActive(false); m_NotReach.SetActive(false); MinutesList.Clear(); m_NeedTime.text = string.Format(Language.Get("OnlineTime_Z"), minutes); if (!OnlineRewardsModel.OnlineRewards.ContainsKey(TimeUtility.CreateDays)) { return; } int[] TimeMinute = OnlineRewardsModel.OnlineRewards[TimeUtility.CreateDays].TimeMinute; for (int i = 0; i < TimeMinute.Length; i++) { MinutesList.Add(TimeMinute[i]); } int typeIndex = MinutesList.IndexOf(minutes) + 1; ImpactRankModel.RankAwardItem RankAwardItem = OnlineRewardsModel.OnlineRewards[TimeUtility.CreateDays].RankAwardItem; List itemList = RankAwardItem.GetAwardItem(typeIndex); for (int i = 0; i < m_Group.childCount; i++) { m_Group.GetChild(i).gameObject.SetActive(false); } int state = OnlineRewardsModel.AcceptDrizeAllDic[TimeUtility.CreateDays][TimeMinute[typeIndex-1]]; for (int j = 0; j < itemList.Count; j++) { m_Group.GetChild(j).gameObject.SetActive(true); OnliineRewardItemCell onliineRewardItemCell = m_Group.GetChild(j).GetComponent(); onliineRewardItemCell.CumulativeTime.gameObject.SetActive(false); if (state == 1) { onliineRewardItemCell.Image.SetActive(true); } else { onliineRewardItemCell.Image.SetActive(false); } AwardItem item = itemList[j]; 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); }); } if (state < 0) { m_NotReach.SetActive(true); } else if (state == 0) { m_Receive.gameObject.SetActive(true); m_Receive.RemoveAllListeners(); m_Receive.AddListener(() => { OnlineRewardsModel.SendReceiveAward(typeIndex); }); } else if (state > 0) { m_AlreadyReceive.SetActive(true); } } } }