using UnityEngine; using FairyGUI; using UI.TurnTable; using System.Collections.Generic; namespace GFGGame { public class TurnSpecialTipsView : BaseWindow { private UI_TurnSpecialTipsUI _ui; public List rewardList = new List(); private EffectUI _effectUI1; private EffectUI _effectUI2; public override void Dispose() { EffectUIPool.Recycle(_effectUI1); _effectUI1 = null; EffectUIPool.Recycle(_effectUI2); _effectUI2 = null; base.Dispose(); if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void Init() { base.Init(); } protected override void OnInit() { base.OnInit(); packageName = UI_TurnSpecialTipsUI.PACKAGE_NAME; _ui = UI_TurnSpecialTipsUI.Create(); viewCom = _ui.target; modal = true; this.viewCom.Center(); viewAnimationType = EnumViewAnimationType.ZOOM_CENTER; _ui.m_list.itemRenderer = RenderTaskList; } protected override void OnShown() { base.OnShown(); //这里根据表来,看放哪 //int activityID = ActivityDataManager.Instance.GetCurOpenActiveByType(ActivityDataManager.Instance.TurnTableActivityType); int dropId = ActivityDataManager.Instance.TipsDropId;//TurntableLuckyBoxCfgArray.Instance.GetCfgByActivityId(activityID).ExtraIdDropId; rewardList = DropOutCfgArray.Instance.GetCfgsByid(dropId); _ui.m_list.numItems = rewardList.Count; } protected override void OnHide() { base.OnHide(); } private void RenderTaskList(int index, GObject obj) { int[] bonus = new int[] { rewardList[index].item, rewardList[index].maxNum }; ItemData reward = ItemUtil.createItemData(bonus); if (obj.data == null) { obj.data = new ItemView(obj as GComponent); } (obj.data as ItemView).SetData(reward); (obj.data as ItemView).ChangeTxtCountStyle(); if(isGetBag(reward.id)) { (obj.data as ItemView).ImgHasVisible = true; } else { (obj.data as ItemView).ImgHasVisible = false; } } private bool isGetGift(int id) { ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(id); if (itemCfg == null) { return false; } int targetCount = itemCfg.itemsArr.Length; int count = 0; for (int i = 0; i < itemCfg.itemsArr.Length; i++) { ItemData itemDate; if (BagDataManager.Instance.GetBagData().TryGetValue(itemCfg.itemsArr[i][0], out itemDate)) { if (itemDate.num >= itemCfg.itemsArr[i][1]) { count++; } } else { ItemCfg itemcfg = ItemCfgArray.Instance.GetCfg(itemCfg.itemsArr[i][0]); if(itemcfg.itemType == ConstItemType.CARD) { CardData data = CardDataManager.GetCardDataById(itemcfg.id); if(data !=null) { count++; } } else if(itemcfg.itemType == ConstItemType.ITEM && itemcfg.subType == 1) { } else { if (ItemDataManager.GetItemNum(itemCfg.itemsArr[i][0]) >= itemCfg.itemsArr[i][1]) { count++; } } } } if(count >= targetCount) { return true; } return false; } private bool isGetBag(int id) { foreach(var item in ActivityDataManager.Instance.GiftBagIdList) { if(item == id) { return true; } } return false; } } }