using UnityEngine; using FairyGUI; using UI.LuckyBox; using UI.CommonGame; using System.Collections.Generic; namespace GFGGame { public class LuckyBoxBonusView : BaseWindow { private UI_LuckBoxBonusUI _ui; public override void Dispose() { base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_LuckBoxBonusUI.PACKAGE_NAME; _ui = UI_LuckBoxBonusUI.Create(); this.viewCom = _ui.target; isfullScreen = true; InitAllItem(); _ui.m_bg.touchable = false; _ui.m_bg.onClick.Add(OnClickBg); } protected override void OnShown() { base.OnShown(); List itemList = (viewData as object[])[0] as List; if (itemList != null) { _ui.m_bg.touchable = false; int count = itemList.Count; if (count == 10) { ShowBonusList(itemList); } else if (count > 0) { ShowBonus(itemList[0]); } else { _ui.m_bg.touchable = true; } } else { _ui.m_bg.touchable = true; } } protected override void OnHide() { base.OnHide(); } private void OnClickBg() { this.Hide(); ViewManager.Show(ViewName.LUCKY_BOX_VIEW); } private void ShowBonusList(List itemList) { HideAllItem(); for (int i = 0; i < 10; i++) { ItemData itemData = itemList[i]; GObject itemObject = _ui.target.GetChild("item" + i); if (itemObject != null) { UI_LuckyBoxBonusItem itemUI = UI_LuckyBoxBonusItem.Proxy(itemObject); UpdateItem(itemUI, itemData); Timers.inst.Add(0.1f * i, 1, (object param) => { itemObject.visible = true; if ((int)param == 9) { Timers.inst.Add(0.1f, 1, (object param) => { _ui.m_bg.touchable = true; List list = LuckyBoxDataManager.Instance.GetFirstClothingList(); if (list.Count > 0) { ViewManager.Show(ViewName.LUCKY_BOX_CARD_VIEW, new object[] { list, FirstGetCardViewType.CANNOT_JUMP_CANNOT_SUIT }); } else { int itemId = GetSuitItemController.TryShow(0); } }); } }, i); } } } private void ShowBonus(ItemData itemData) { HideAllItem(); _ui.m_itemOne.visible = true; UpdateItem(UI_LuckyBoxBonusItem.Proxy(_ui.m_itemOne), itemData); _ui.m_bg.touchable = true; } private void HideAllItem() { _ui.m_itemOne.visible = false; for (int i = 0; i < 10; i++) { GObject itemObject = _ui.target.GetChild("item" + i); if (itemObject != null) { itemObject.visible = false; } } } private void UpdateItem(UI_LuckyBoxBonusItem itemUI, ItemData itemData) { ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemData.id); itemUI.m_icon.url = ResPathUtil.GetIconPath(itemCfg); itemUI.m_imgNew.visible = ItemDataManager.GetItemNum(itemData.id) == 1 ? true : false; string itemName = itemCfg.name; if (itemData.num > 1) { itemName += "x" + itemData.num; } itemUI.m_txtName.text = itemName; RarityIconController.UpdateRarityIcon(itemUI.m_rarity, itemData.id, false); itemUI.target.data = itemData.id; } private void InitAllItem() { _ui.m_itemOne.onClick.Add(OnClickItemUI); for (int i = 0; i < 10; i++) { GObject itemObject = _ui.target.GetChild("item" + i); if (itemObject != null) { itemObject.onClick.Add(OnClickItemUI); } } } private void OnClickItemUI(EventContext context) { GComponent item = context.sender as GComponent; int itemID = (int)item.data; GoodsItemTipsController.ShowItemTips(itemID); } } }