//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Tuesday, April 16, 2019
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace Snxxz.UI
|
{
|
|
public class PetMountTipWin : Window
|
{
|
[SerializeField] RectTransform m_Pivot;
|
[SerializeField] ImageEx m_Label;
|
[SerializeField] Text m_ItemName;
|
[SerializeField] TipBasePropertyWidget m_BaseProperty;
|
[SerializeField] TipPetMountSkillWidget m_PetMountSkill;
|
[SerializeField] TipAuctionTipWidget m_AuctionWidget;
|
[SerializeField] TipPetMountDescriptionWidget m_DescriptionWidget;
|
[SerializeField] TipModelWidget m_Model;
|
[SerializeField] OperateButton[] m_OperateButtons;
|
|
[SerializeField] Button m_Close;
|
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
m_Close.SetListener(() => { WindowCenter.Instance.Close<PetMountTipWin>(); });
|
}
|
|
protected override void OnPreOpen()
|
{
|
m_Pivot.localScale = Vector3.zero;
|
}
|
|
protected override void OnAfterOpen()
|
{
|
}
|
|
protected override void OnPreClose()
|
{
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
|
protected override void OnActived()
|
{
|
base.OnActived();
|
|
StartCoroutine("Co_DelayDisplay");
|
}
|
|
#endregion
|
|
private void DisplayBaseInfo()
|
{
|
var baseInfo = EquipTipUtility.mainTipData.baseInfo;
|
|
var config = ItemConfig.Get(baseInfo.itemId);
|
m_ItemName.text = config.ItemName;
|
m_ItemName.color = UIHelper.GetUIColor(config.ItemColor);
|
|
if (baseInfo.isAuction)
|
{
|
m_Label.gameObject.SetActive(true);
|
m_Label.SetSprite("Item_Auction_2");
|
m_Label.gray = baseInfo.auctionSurplusTime <= 0;
|
}
|
else
|
{
|
m_Label.gameObject.SetActive(false);
|
}
|
}
|
|
private void DisplayBaseProperty()
|
{
|
m_BaseProperty.Display(EquipTipUtility.mainTipData.petMountBaseProperty);
|
}
|
|
private void DisplaySkills()
|
{
|
var baseInfo = EquipTipUtility.mainTipData.baseInfo;
|
var config = ItemConfig.Get(baseInfo.itemId);
|
switch (config.Type)
|
{
|
case 26:
|
m_PetMountSkill.Display(ShowType.Pet, baseInfo.itemId);
|
break;
|
case 41:
|
case 42:
|
m_PetMountSkill.Display(ShowType.Mount, baseInfo.itemId);
|
break;
|
}
|
}
|
|
private void DisplayAuctionInfo()
|
{
|
var baseInfo = EquipTipUtility.mainTipData.baseInfo;
|
m_AuctionWidget.gameObject.SetActive(baseInfo.isAuction);
|
if (baseInfo.isAuction)
|
{
|
var overdueTime = DateTime.Now.AddSeconds((double)baseInfo.auctionSurplusTime);
|
m_AuctionWidget.Display(overdueTime);
|
}
|
}
|
|
private void DisplayDescription()
|
{
|
var baseInfo = EquipTipUtility.mainTipData.baseInfo;
|
m_DescriptionWidget.gameObject.SetActive(!baseInfo.isAuction);
|
if (!baseInfo.isAuction)
|
{
|
m_DescriptionWidget.Display(baseInfo.itemId);
|
}
|
}
|
|
private void DisplayModel()
|
{
|
var baseInfo = EquipTipUtility.mainTipData.baseInfo;
|
var config = ItemConfig.Get(baseInfo.itemId);
|
switch (config.Type)
|
{
|
case 26:
|
var petId = PetInfoConfig.GetItemUnLockPet(baseInfo.itemId);
|
var petConfig = PetInfoConfig.Get(petId);
|
m_Model.Display(petId, ModelShowType.Pet, petConfig.ShowFightPower);
|
break;
|
case 41:
|
case 42:
|
var horseId = HorseConfig.GetItemUnLockHorse(baseInfo.itemId);
|
var horseConfig = HorseConfig.Get(horseId);
|
m_Model.Display(horseConfig.Model, ModelShowType.Mount, horseConfig.ShowFightPower);
|
break;
|
}
|
}
|
|
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);
|
}
|
}
|
|
}
|
}
|
|
IEnumerator Co_DelayDisplay()
|
{
|
yield return null;
|
yield return null;
|
m_Pivot.localScale = Vector3.one;
|
DisplayBaseInfo();
|
DisplayBaseProperty();
|
DisplaySkills();
|
DisplayAuctionInfo();
|
DisplayDescription();
|
DisplayModel();
|
DisplayOperateButton();
|
}
|
|
[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.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);
|
});
|
}
|
|
}
|
|
public enum ShowType
|
{
|
None,
|
Pet,
|
Mount,
|
}
|
}
|
|
}
|