//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Tuesday, March 12, 2019
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace Snxxz.UI
|
{
|
|
public class ItemTipWin : Window
|
{
|
[SerializeField] Button m_Close;
|
[SerializeField] TipItemBaseInfoWidget m_BaseInfoWidget;
|
[SerializeField] TipItemDescriptionWidget m_DescriptionWidget;
|
[SerializeField] TipAuctionTipWidget m_AuctionWidget;
|
[SerializeField] OperateButton[] m_OperateButtons;
|
|
PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
|
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
m_Close.SetListener(CloseClick);
|
}
|
|
protected override void OnPreOpen()
|
{
|
}
|
|
protected override void OnAfterOpen()
|
{
|
packModel.refreshItemDayUseCountEvent += OnUseItem;
|
}
|
|
protected override void OnPreClose()
|
{
|
StopAllCoroutines();
|
packModel.refreshItemDayUseCountEvent += OnUseItem;
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
|
protected override void OnActived()
|
{
|
base.OnActived();
|
|
DisplayBaseInfo();
|
DisplayItemDescription();
|
DisplayItemUseState();
|
DisplayAuctionInfo();
|
DisplayOperateButton();
|
}
|
|
#endregion
|
|
private void DisplayBaseInfo()
|
{
|
var data = EquipTipUtility.mainTipData;
|
m_BaseInfoWidget.Display(data.baseInfo);
|
}
|
|
private void DisplayItemDescription()
|
{
|
var data = EquipTipUtility.mainTipData;
|
m_DescriptionWidget.Display(data.baseInfo.itemId);
|
}
|
|
private void OnUseItem(int itemId)
|
{
|
if (itemId == EquipTipUtility.mainTipData.itemId)
|
{
|
DisplayItemUseState();
|
}
|
}
|
|
private void DisplayItemUseState()
|
{
|
var data = EquipTipUtility.mainTipData;
|
var count = packModel.GetItemUsedTimesToday(data.itemId);
|
var config = ItemConfig.Get(data.itemId);
|
m_DescriptionWidget.DisplayUseState(count, config.MaxSkillCnt);
|
}
|
|
private void DisplayAuctionInfo()
|
{
|
var data = EquipTipUtility.mainTipData;
|
m_AuctionWidget.gameObject.SetActive(data.baseInfo.isAuction);
|
if (data.baseInfo.isAuction)
|
{
|
var overdueTime = DateTime.Now.AddSeconds((double)data.baseInfo.auctionSurplusTime);
|
m_AuctionWidget.Display(overdueTime);
|
}
|
}
|
|
private void DisplayOperateButton()
|
{
|
var operates = EquipTipUtility.mainTipData.operates;
|
var guid = EquipTipUtility.mainTipData.guid;
|
if (operates.IsNullOrEmpty())
|
{
|
for (int i = 0; i < m_OperateButtons.Length; i++)
|
{
|
var button = m_OperateButtons[i];
|
button.SetActive(false);
|
}
|
}
|
else
|
{
|
for (int i = 0; i < m_OperateButtons.Length; i++)
|
{
|
var button = m_OperateButtons[i];
|
if (i < operates.Count)
|
{
|
button.SetActive(true);
|
button.Bind(operates[i], guid);
|
}
|
else
|
{
|
button.SetActive(false);
|
}
|
}
|
|
}
|
}
|
|
[Serializable]
|
public class OperateButton
|
{
|
[SerializeField] RectTransform m_Container;
|
[SerializeField] Button m_Button;
|
[SerializeField] Text m_Title;
|
|
ItemOperateType operateType;
|
string guid;
|
|
public void SetActive(bool active)
|
{
|
this.m_Container.gameObject.SetActive(active);
|
}
|
|
public void Bind(ItemOperateType type, string guid)
|
{
|
operateType = type;
|
this.guid = guid;
|
switch (type)
|
{
|
case ItemOperateType.putAway:
|
this.m_Title.text = "上架";
|
break;
|
case ItemOperateType.sell:
|
this.m_Title.text = "出售";
|
break;
|
case ItemOperateType.makeUse:
|
this.m_Title.text = "使用";
|
break;
|
case ItemOperateType.split:
|
this.m_Title.text = "拆分";
|
break;
|
case ItemOperateType.inlay:
|
this.m_Title.text = "镶嵌";
|
break;
|
case ItemOperateType.putOut:
|
this.m_Title.text = "取出";
|
break;
|
case ItemOperateType.putIn:
|
this.m_Title.text = "放入";
|
break;
|
default:
|
this.m_Title.text = "";
|
break;
|
}
|
|
m_Button.SetListener(() =>
|
{
|
WindowCenter.Instance.Close<ItemTipWin>();
|
EquipTipUtility.Operate(operateType, this.guid);
|
});
|
}
|
|
|
}
|
}
|
}
|