//--------------------------------------------------------
|
// [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] TipBuyItemWidget m_BuyItemWidget;
|
[SerializeField] TipGetWayEntranceWidget m_GetWayEntranceWidget;
|
[SerializeField] TipGetWaysWidget m_GetWaysWidget;
|
[SerializeField] TipModelWidget m_Model;
|
[SerializeField] TipOperateButton[] 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()
|
{
|
m_BuyItemWidget.Dispose();
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
|
protected override void OnActived()
|
{
|
base.OnActived();
|
|
StartCoroutine("Co_DelayDisplay");
|
}
|
|
#endregion
|
|
private void DisplayBaseInfo()
|
{
|
var baseInfo = ItemTipUtility.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(ItemTipUtility.mainTipData.petMountBaseProperty);
|
}
|
|
private void DisplaySkills()
|
{
|
var baseInfo = ItemTipUtility.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 = ItemTipUtility.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 = ItemTipUtility.mainTipData.baseInfo;
|
m_DescriptionWidget.gameObject.SetActive(!baseInfo.isAuction);
|
if (!baseInfo.isAuction)
|
{
|
m_DescriptionWidget.Display(baseInfo.itemId);
|
}
|
}
|
|
private void DisplayBuyItem()
|
{
|
m_BuyItemWidget.gameObject.SetActive(ItemTipUtility.mainTipData.goodId > 0);
|
if (ItemTipUtility.mainTipData.goodId > 0)
|
{
|
m_BuyItemWidget.Display(ItemTipUtility.mainTipData.goodId);
|
}
|
}
|
|
private void DisplayModel()
|
{
|
var baseInfo = ItemTipUtility.mainTipData.baseInfo;
|
var config = ItemConfig.Get(baseInfo.itemId);
|
|
m_Model.gameObject.SetActive(config.Type == 26 || config.Type == 41 || config.Type == 42);
|
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 = ItemTipUtility.mainTipData.operates;
|
var guid = ItemTipUtility.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("PetMountTipWin", operates[i], guid);
|
}
|
else
|
{
|
button.SetActive(false);
|
}
|
}
|
|
}
|
}
|
|
private void DisplayGetWays()
|
{
|
var getWay = ItemTipUtility.mainTipData.getWay;
|
var hasGetWay = !getWay.ways.IsNullOrEmpty();
|
m_GetWayEntranceWidget.gameObject.SetActive(hasGetWay);
|
m_GetWaysWidget.gameObject.SetActive(false);
|
if (hasGetWay)
|
{
|
m_GetWayEntranceWidget.SetListener(() =>
|
{
|
if (!m_GetWaysWidget.gameObject.activeSelf)
|
{
|
m_GetWaysWidget.Display(getWay);
|
}
|
else
|
{
|
m_GetWaysWidget.Hide();
|
}
|
});
|
}
|
}
|
|
IEnumerator Co_DelayDisplay()
|
{
|
yield return null;
|
yield return null;
|
m_Pivot.localScale = Vector3.one;
|
DisplayBaseInfo();
|
DisplayBaseProperty();
|
DisplaySkills();
|
DisplayAuctionInfo();
|
DisplayDescription();
|
DisplayBuyItem();
|
DisplayGetWays();
|
DisplayModel();
|
DisplayOperateButton();
|
}
|
|
public enum ShowType
|
{
|
None,
|
Pet,
|
Mount,
|
}
|
}
|
|
}
|