//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Saturday, December 16, 2017 //-------------------------------------------------------- using System.Collections.Generic; using TableConfig; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class ItemOverdueBehaviour : MonoBehaviour { [SerializeField] RectTransform m_ItemOverdue; [SerializeField] ItemCell m_ItemBehaviour; [SerializeField] Text m_ItemName; [SerializeField] Button m_Close; [SerializeField] Button m_Look; [SerializeField] Button m_ViewItemDetail; ItemTipsModel itemTipsModel { get { return ModelCenter.Instance.GetModel(); } } PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel(); } } ItemOverdueModel model { get { return ModelCenter.Instance.GetModel(); } } private void OnEnable() { m_Close.AddListener(CloseItemShow); m_Look.AddListener(LookOverdueItem); m_ViewItemDetail.AddListener(ShowItemDetails); } private void OnDisable() { m_Close.RemoveAllListeners(); m_Look.RemoveAllListeners(); m_ViewItemDetail.RemoveAllListeners(); } public void ShowItem() { if (model.currentShowItem != default(ItemOverdueModel.OverdueItem)) { m_ItemOverdue.gameObject.SetActive(true); DrawItem(model.currentShowItem.guid, model.currentShowItem.itemId); } else { m_ItemOverdue.gameObject.SetActive(false); } } private void LookOverdueItem() { if (model.currentShowItem != default(ItemOverdueModel.OverdueItem)) { ItemConfig itemConfig = Config.Instance.Get(model.currentShowItem.itemId); switch ((ItemType)itemConfig.Type) { case ItemType.VipTools: WindowCenter.Instance.Open(); break; case ItemType.SpiritAnimal: model.guardOverdueIndex = model.currentShowItem.index; WindowCenter.Instance.Open(); break; } model.ReportConfirmUseItem(model.currentShowItem); } } private void ShowItemDetails() { if (model.currentShowItem != default(ItemOverdueModel.OverdueItem)) { ItemModel itemModel = playerPack.GetItemModelByGUID(model.currentShowItem.guid); if (itemModel != null) { itemTipsModel.SetItemTipsModel(itemModel.packType, itemModel.itemInfo.ItemGUID); } else { ItemAttrData attrData = new ItemAttrData(model.currentShowItem.itemId); itemTipsModel.SetItemTipsModel(attrData); } } } private void CloseItemShow() { model.ReportConfirmUseItem(model.currentShowItem); } private void DrawItem(string guid,int itemId) { var itemConfig = Config.Instance.Get(itemId); m_ItemName.gameObject.SetActive(true); switch ((ItemType)itemConfig.Type) { case ItemType.VipTools: if (itemId == model.VipExperirnceID) { m_ItemName.text = Language.Get("ItemOverdue108"); } else if (itemId == model.VipCardID) { m_ItemName.gameObject.SetActive(false); } break; case ItemType.SpiritAnimal: m_ItemName.text = Language.Get("ItemOverdue107"); break; } m_ItemName.color = UIHelper.GetUIColor(itemConfig.ItemColor, true); ItemModel itemModel = playerPack.GetItemModelByGUID(guid); if (itemModel != null) { m_ItemBehaviour.Init(itemModel, true); } else { ItemCellModel cellModel = new ItemCellModel(itemId); m_ItemBehaviour.Init(cellModel); } } } }