//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Tuesday, December 05, 2017
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
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] GameObject coolObj;
|
[SerializeField] Text coolTimeText;
|
[SerializeField] Button m_Puton;
|
[SerializeField] Button m_BetterEquipDetail;
|
[SerializeField] GameObject equipLvObj;
|
[SerializeField] Text equipLvText;
|
|
ItemTipsModel itemTipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } }
|
PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } }
|
BetterEquipGetModel model { get { return ModelCenter.Instance.GetModel<BetterEquipGetModel>(); } }
|
|
private void OnEnable()
|
{
|
m_Close.AddListener(CloseBetterEquip);
|
m_Puton.AddListener(PutOnBetterEquip);
|
m_BetterEquipDetail.AddListener(ShowBetterEquipDetails);
|
KnapsackTimeCDMgr.Instance.RefresCoolTimeAct += UpdateCoolTime;
|
}
|
|
private void OnDisable()
|
{
|
m_Close.RemoveAllListeners();
|
m_Puton.RemoveAllListeners();
|
m_BetterEquipDetail.RemoveAllListeners();
|
KnapsackTimeCDMgr.Instance.RefresCoolTimeAct -= UpdateCoolTime;
|
}
|
|
private void UpdateCoolTime(string guid)
|
{
|
if (!string.IsNullOrEmpty(model.currentEquipGuid))
|
{
|
ItemModel betterEquip;
|
if (model.TryGetBetterEquip(model.currentEquipGuid, out betterEquip))
|
{
|
var coolData = KnapsackTimeCDMgr.Instance.GetItemCoolById(model.currentEquipGuid);
|
bool isCoolEnd = !model.CheckIsAutoEquip(betterEquip) || coolData == null || coolData.GetRemainTime() <= 0 ? true : false;
|
coolObj.SetActive(!isCoolEnd);
|
m_FunctionTitle.gameObject.SetActive(isCoolEnd);
|
if (!isCoolEnd)
|
{
|
int remainTime = (int)coolData.GetRemainTime();
|
coolTimeText.text = StringUtility.Contact("(",remainTime,")");
|
}
|
}
|
}
|
}
|
|
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);
|
|
var coolData = KnapsackTimeCDMgr.Instance.GetItemCoolById(model.currentEquipGuid);
|
if (model.CheckIsAutoEquip(betterEquip) && coolData == null)
|
{
|
KnapsackTimeCDMgr.Instance.Register(betterEquip.itemInfo.ItemGUID, betterEquip.itemId, model.autoEquipCoolTime);
|
}
|
}
|
}
|
}
|
|
private void PutOnBetterEquip()
|
{
|
ItemModel betterEquip;
|
if (model.TryGetBetterEquip(model.currentEquipGuid, out betterEquip))
|
{
|
switch(betterEquip.packType)
|
{
|
case PackType.Item:
|
ToOpenRoleKanpsack(betterEquip);
|
break;
|
case PackType.JadeDynastyItem:
|
ToOpenJadeDynastyKnapsack(betterEquip);
|
break;
|
}
|
|
}
|
|
}
|
|
private void ToOpenRoleKanpsack(ItemModel betterEquip)
|
{
|
var itemConfig = ItemConfig.Get(betterEquip.itemInfo.ItemID);
|
if (NewBieCenter.Instance.inGuiding)
|
{
|
playerPack.SetLookIndex(betterEquip.itemInfo.ItemGUID);
|
WindowCenter.Instance.Close<MainInterfaceWin>();
|
WindowCenter.Instance.Open<KnapSackWin>();
|
|
StartCoroutine(Co_Delay(model.currentEquipGuid));
|
}
|
else
|
{
|
if (itemConfig.ItemColor >= 3)
|
{
|
playerPack.SetLookIndex(betterEquip.itemInfo.ItemGUID);
|
WindowCenter.Instance.Close<MainInterfaceWin>();
|
WindowCenter.Instance.Open<KnapSackWin>();
|
|
if ((itemConfig.LV == 1 || itemConfig.LV == 2) && (itemConfig.EquipPlace == 1 || itemConfig.EquipPlace == 2))
|
{
|
StartCoroutine(Co_Delay(model.currentEquipGuid));
|
}
|
else
|
{
|
model.ReportConfirmBetterEquip(model.currentEquipGuid);
|
}
|
}
|
else
|
{
|
ItemLogicUtility.Instance.PutOnItem(ItemOperateType.putOn, model.currentEquipGuid);
|
model.ReportConfirmBetterEquip(model.currentEquipGuid);
|
}
|
}
|
|
}
|
|
private void ToOpenJadeDynastyKnapsack(ItemModel betterEquip)
|
{
|
var equipModel = ModelCenter.Instance.GetModel<JadeDynastyEquipModel>();
|
equipModel.SetLookItemModel(betterEquip.itemInfo.ItemGUID);
|
model.ReportConfirmBetterEquip(model.currentEquipGuid);
|
}
|
|
private void ShowBetterEquipDetails()
|
{
|
ItemModel betterEquip;
|
if (model.TryGetBetterEquip(model.currentEquipGuid, out betterEquip))
|
{
|
var itemConfig = ItemConfig.Get(betterEquip.itemInfo.ItemID);
|
var packType = GeneralDefine.GetPackTypeByItemType(itemConfig.Type);
|
itemTipsModel.SetItemTipsModel(packType, betterEquip.itemInfo.ItemGUID);
|
}
|
}
|
|
private void CloseBetterEquip()
|
{
|
model.ReportConfirmBetterEquip(model.currentEquipGuid);
|
}
|
|
private void DrawBetterEquip(ItemModel betterModel)
|
{
|
var itemConfig = ItemConfig.Get(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);
|
UpdateCoolTime(betterModel.itemInfo.ItemGUID);
|
|
if(betterModel.packType == PackType.JadeDynastyItem && betterModel.config.EquipPlace > 0)
|
{
|
equipLvObj.SetActive(true);
|
string equipLvSB = Language.Get(StringUtility.Contact("Num_CHS_", betterModel.config.LV));
|
equipLvText.text = Language.Get("L1091", equipLvSB);
|
}
|
else
|
{
|
equipLvObj.SetActive(false);
|
}
|
}
|
|
IEnumerator Co_Delay(string _guid)
|
{
|
yield return null;
|
yield return null;
|
yield return WaitingForSecondConst.WaitMS300;
|
|
itemTipsModel.SetItemTipsModel(PackType.Item, _guid, false, true);
|
itemTipsModel.SetBagTipsBtn(itemTipsModel.curAttrData);
|
itemTipsModel.ShowUICtrl();
|
|
model.ReportConfirmBetterEquip(model.currentEquipGuid);
|
}
|
}
|
}
|
|
|
|
|
|