//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Tuesday, December 05, 2017 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TableConfig; using Snxxz.UI; namespace Snxxz.UI { public class BetterItemGetBehaviour : MonoBehaviour { [SerializeField] RectTransform m_ContainerBetterEquip; [SerializeField] ItemCell m_EquipBehaviour; [SerializeField] Text m_EquipName; [SerializeField] Button m_Close; [SerializeField] Text m_FunctionTitle; [SerializeField] Button m_Puton; [SerializeField] Button m_BetterEquipDetail; ItemTipsModel itemTipsModel { get { return ModelCenter.Instance.GetModel(); } } PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel(); } } BetterEquipGetModel model { get { return ModelCenter.Instance.GetModel(); } } private void OnEnable() { m_Close.AddListener(CloseBetterEquip); m_Puton.AddListener(PutOnBetterEquip); m_BetterEquipDetail.AddListener(ShowBetterEquipDetails); } private void OnDisable() { m_Close.RemoveAllListeners(); m_Puton.RemoveAllListeners(); m_BetterEquipDetail.RemoveAllListeners(); } public void ShowBetterEquip() { m_ContainerBetterEquip.gameObject.SetActive(false); if (!string.IsNullOrEmpty(model.currentEquipGuid)) { ItemModel betterEquip; if (model.TryGetBetterEquip(model.currentEquipGuid, out betterEquip)) { DrawBetterEquip(betterEquip); m_ContainerBetterEquip.gameObject.SetActive(true); } } } private void PutOnBetterEquip() { ItemModel betterEquip; if (model.TryGetBetterEquip(model.currentEquipGuid, out betterEquip)) { var itemConfig = ConfigManager.Instance.GetTemplate(betterEquip.itemInfo.ItemID); if (NewBieCenter.Instance.inGuiding) { playerPack.SetLookIndex(betterEquip.itemInfo.ItemGUID); WindowCenter.Instance.Close(); WindowCenter.Instance.Open(); StartCoroutine(Co_Delay(model.currentEquipGuid)); } else { if (itemConfig.ItemColor >= 3) { playerPack.SetLookIndex(betterEquip.itemInfo.ItemGUID); WindowCenter.Instance.Close(); WindowCenter.Instance.Open(); if ((itemConfig.LV == 1 || itemConfig.LV == 2) && (itemConfig.EquipPlace == 1 || itemConfig.EquipPlace == 2)) { StartCoroutine(Co_Delay(model.currentEquipGuid)); } else { model.ReportConfirmBetterEquip(model.currentEquipGuid); } } else { PackSendQuestMgr.Instance.SendPutOnQuest(ItemWinBtnType.putOn, model.currentEquipGuid); model.ReportConfirmBetterEquip(model.currentEquipGuid); } } } } private void ShowBetterEquipDetails() { ItemModel betterEquip; if (model.TryGetBetterEquip(model.currentEquipGuid, out betterEquip)) { var itemConfig = ConfigManager.Instance.GetTemplate(betterEquip.itemInfo.ItemID); itemTipsModel.SetItemTipsModel(PackType.rptItem, betterEquip.itemInfo.ItemGUID); } } private void CloseBetterEquip() { model.ReportConfirmBetterEquip(model.currentEquipGuid); } private void DrawBetterEquip(ItemModel betterModel) { var itemConfig = ConfigManager.Instance.GetTemplate(betterModel.itemInfo.ItemID); m_EquipName.text = itemConfig.ItemName; m_EquipName.color = UIHelper.GetUIColor(itemConfig.ItemColor, true); m_FunctionTitle.text = Language.Get(itemConfig.ItemColor >= 3 ? "GoodEquip_See" : "GoodEquip_FitUp"); m_EquipBehaviour.Init(betterModel, true); } IEnumerator Co_Delay(string _guid) { yield return null; yield return null; yield return WaitingForSecondConst.WaitMS300; itemTipsModel.SetItemTipsModel(PackType.rptItem, _guid, false, true); itemTipsModel.SetBagTipsBtn(itemTipsModel.curAttrData); itemTipsModel.ShowUICtrl(); model.ReportConfirmBetterEquip(model.currentEquipGuid); } } }