| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235 | using System.Collections;using UnityEngine;using UI.MatchingCompetition;using FairyGUI;using System.Collections.Generic;using System;namespace GFGGame{    public class MatchingCompetitionRewardView : BaseWindow    {        private UI_MatchingCompetitionRewardUI _ui;        private List<ItemData> _listItemDatas;        private Action onSuccess = null;        private List<EffectUI> _effects = new List<EffectUI>();        private const int maxHeight = 1030;        private EffectUI _effectUI1;        private EffectUI _effectUI2;        private int counTime = 0;  //定时器计数        public override void Dispose()        {            if (_ui != null)            {                _ui.Dispose();                _ui = null;            }            base.Dispose();        }        protected override void OnInit()        {            base.OnInit();            packageName = UI_MatchingCompetitionRewardUI.PACKAGE_NAME;            _ui = UI_MatchingCompetitionRewardUI.Create();            this.viewCom = _ui.target;            //this.viewCom.Center();            //this.modal = true;            //viewAnimationType = EnumViewAnimationType.ZOOM_CENTER;            isfullScreen = true;            _ui.m_comList.m_listReward.itemRenderer = RenderListRewardItem;            _ui.m_mask.onClick.Add(this.Hide);        }        protected override void OnShown()        {            base.OnShown();            _ui.m_mask.touchable = false;            if ((this.viewData as object[]).Length > 0)            {                _listItemDatas = (this.viewData as object[])[0] as List<ItemData>;                onSuccess = (this.viewData as object[])[1] as Action;            }            else            {                _listItemDatas = this.viewData as List<ItemData>;            }            List<ItemData> suitPart = new List<ItemData>(); ;            for (int i = _listItemDatas.Count - 1; i >= 0; i--)            {                SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(_listItemDatas[i].id);                if (suitCfg != null)                {                    for (int j = 0; j < suitCfg.partsArr.Length; j++)                    {                        suitPart.Add(ItemUtil.createItemData(suitCfg.partsArr[j], _listItemDatas[i].num));                    }                    _listItemDatas.RemoveAt(i);                }            }            _listItemDatas.AddRange(suitPart);            //_ui.m_listReward.SetVirtual();  //有虚拟列表的时候,没有办法居中显示列表            _ui.m_downTipsText.visible = false;            _ui.m_comList.m_listReward.numItems = 0;            counTime = 0;            Timers.inst.Add(0.1f, 3, OnTimerUpdate, 1);            Timers.inst.Add(0.5f, 1, OnTimerClick);        }        private void OnTimerClick(object param)        {            _ui.m_mask.touchable = true;        }        private void OnTimerUpdate(object param)        {            counTime += 1;            if (counTime == 1)            {                _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderTitle, "ui_hd", "GXHD_Text");                _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holderBgCom, "ui_hd", "TC_Quad_ALL");            }            else if (counTime == 2)            {                _ui.m_comList.m_listReward.numItems = _listItemDatas.Count;                _ui.m_comList.m_listReward.ResizeToFit();                if (_ui.m_comList.m_listReward.height > maxHeight)                {                    _ui.m_comList.m_listReward.height = maxHeight;                }            }            else if (counTime == 3)            {                _ui.m_downTipsText.visible = true;                Timers.inst.Remove(OnTimerUpdate);            }        }        protected override void OnHide()        {            EffectUIPool.Recycle(_effectUI1);            _effectUI1 = null;            EffectUIPool.Recycle(_effectUI2);            _effectUI2 = null;            Timers.inst.Remove(OnTimerUpdate);            Timers.inst.Remove(OnTimerClick);            _ui.m_mask.touchable = true;            for (int i = 0; i < _effects.Count; i++)            {                if (_effects[i] != null)                {                    EffectUIPool.Recycle(_effects[i]);                    _effects[i] = null;                }            }            _effects.Clear();            if (onSuccess != null)            {                onSuccess();            }            base.OnHide();            //_effects.Clear();            //EventAgent.DispatchEvent(ConstMessage.REWARDVIEW_CLOTHER);            GetSuitItemController.TryShow(0);            if(ActivityDataManager.Instance.StartDropId != ActivityDataManager.Instance.TipsDropId)            {                PromptController.Instance.ShowFloatTextPrompt("特殊奖励已改变!");                ActivityDataManager.Instance.StartDropId = ActivityDataManager.Instance.TipsDropId;            }        }        private void RenderListRewardItem(int index, GObject obj)        {            // obj.data = _listItemDatas[index];            UI.CommonGame.UI_ComItem item = UI.CommonGame.UI_ComItem.Proxy(obj);            string name = "";            string iconRes = "";            string ext = "png";            int rarity = 0;            int id = 0;            bool isSuit = false;            SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(_listItemDatas[index].id);            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(_listItemDatas[index].id);            if (suitCfg != null)            {                name = suitCfg.name;                iconRes = suitCfg.res;                rarity = suitCfg.rarity;                id = suitCfg.id;                isSuit = true;            }            else            {                name = itemCfg.name;                ext = ItemUtil.GetItemResExt(itemCfg.itemType, itemCfg.subType, true);                iconRes = itemCfg.res;                id = itemCfg.id;                isSuit = false;                //if (itemCfg.itemType == ConstItemType.DRESS_UP)                rarity = itemCfg.rarity;            }            item.m_txtName.text = name;            // item.m_txtCount.text = _listItemDatas[index].num==1?"": string.Format("{0}", _listItemDatas[index].num);            item.m_txtCount.text = string.Format("{0}", _listItemDatas[index].num);            item.m_loaIcon.url = ResPathUtil.GetIconPath(iconRes, ext);            if (rarity > 0)            {                item.m_QualityType.selectedIndex = rarity - 1;            }            else            {                item.m_QualityType.selectedIndex = 0;            }            RarityIconController.UpdateRarityIcon(item.m_loaRarity, id, false, isSuit);            item.m_imgOnceBonus.visible = _listItemDatas[index].isOnceBonus;            //特效("ui_ck", "ui_ck_zl");            int childIndex = _ui.m_comList.m_listReward.ItemIndexToChildIndex(index);            if (_effects.Count <= childIndex)            {                EffectUI _effectUI = EffectUIPool.CreateEffectUI(item.m_holderReware, "ui_hd", "GXHD_WuPin", 120);                _effects.Add(_effectUI);            }            if (item.target.data == null)            {                item.target.onClick.Add(OnClickListReward);            }            item.target.data = _listItemDatas[index];            UI.CommonGame.UI_ComItem.ProxyEnd();        }        private void OnClickListReward(EventContext context)        {            if (this.ShowTips)            {                ItemData data = (context.sender as GObject).data as ItemData;                GoodsItemTipsController.ShowItemTips(data.id);            }        }        private bool _showTips = true;        /// <summary>        /// 是否展示物品详情,默认展示        /// </summary>        private bool ShowTips        {            get { return _showTips; }            set { _showTips = value; }        }    }}
 |