|
@@ -0,0 +1,229 @@
|
|
|
+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();
|
|
|
+ _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);
|
|
|
+ }
|
|
|
+ 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; }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|