//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Saturday, December 16, 2017 //-------------------------------------------------------- using System.Collections; using System.Collections.Generic; using TableConfig; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class PreciousItemGetBehaviour : MonoBehaviour { [SerializeField] RectTransform m_PreciousItem; [SerializeField] ItemCell m_ItemBehaviour; [SerializeField] Text m_ItemName; [SerializeField] Button m_Close; [SerializeField] Button m_Use; [SerializeField] Button m_ViewItemDetail; [SerializeField] float delayShowTime = 2f; ItemTipsModel itemTipsModel { get { return ModelCenter.Instance.GetModel(); } } PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel(); } } PreciousItemGetModel model { get { return ModelCenter.Instance.GetModel(); } } private void OnEnable() { m_Close.AddListener(CloseItemShow); m_Use.AddListener(UseItem); m_ViewItemDetail.AddListener(ShowItemDetails); } private void OnDisable() { m_Close.RemoveAllListeners(); m_Use.RemoveAllListeners(); m_ViewItemDetail.RemoveAllListeners(); model.isGetNewItem = false; } public void ShowItem() { if (model.currentShowItem != default(PreciousItemGetModel.PreciousItem)) { var itemModel = playerPack.GetItemModelByGUID(model.currentShowItem.guid); if (itemModel != null && itemModel.packType == PackType.rptItem) { DrawItem(itemModel); List sourcelist = itemModel.GetUseDataModel((int)ItemUseDataKey.Def_IudetSource); if (sourcelist != null && sourcelist[0] == 4 && model.isGetNewItem) { StartCoroutine(VirtualDropDelay()); } else { m_PreciousItem.gameObject.SetActive(true); } } else { m_PreciousItem.gameObject.SetActive(false); } } else { m_PreciousItem.gameObject.SetActive(false); } model.isGetNewItem = false; } IEnumerator VirtualDropDelay() { yield return new WaitForSeconds(delayShowTime); m_PreciousItem.gameObject.SetActive(true); } private void UseItem() { if (model.currentShowItem != default(PreciousItemGetModel.PreciousItem)) { var itemModel = playerPack.GetItemModelByGUID(model.currentShowItem.guid); model.ReportConfirmPreciousItem(model.currentShowItem); if (itemModel != null && itemModel.packType == PackType.rptItem) { PackSendQuestMgr.Instance.SendUseItemQuest(ItemWinBtnType.makeUse, itemModel.itemInfo.ItemPlace); } } } private void ShowItemDetails() { if (model.currentShowItem != default(PreciousItemGetModel.PreciousItem)) { itemTipsModel.SetItemTipsModel(model.currentShowItem.packType, model.currentShowItem.guid); //model.ReportConfirmPreciousItem(model.currentShowItem); } } private void CloseItemShow() { model.ReportConfirmPreciousItem(model.currentShowItem); } private void DrawItem(ItemModel _item) { if (_item != null) { var itemConfig = Config.Instance.Get(_item.itemInfo.ItemID); m_ItemName.text = itemConfig.ItemName; m_ItemName.color = UIHelper.GetUIColor(itemConfig.ItemColor, true); m_ItemBehaviour.Init(_item, true); } } } }