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; }
- }
- }
- }
|