//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Tuesday, March 12, 2019
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
|
public class ItemTipWin : Window
|
{
|
[SerializeField] Button m_Close;
|
[SerializeField] TipItemBaseInfoWidget m_BaseInfoWidget;
|
[SerializeField] TipItemDescriptionWidget m_DescriptionWidget;
|
[SerializeField] TipAuctionTipWidget m_AuctionWidget;
|
[SerializeField] TipModelWidget m_ModelWidget;
|
[SerializeField] TipBuyItemWidget m_BuyItemWidget;
|
[SerializeField] TipGetWayEntranceWidget m_GetWayEntranceWidget;
|
[SerializeField] TipGetWaysWidget m_GetWaysWidget;
|
[SerializeField] TipExchangesWidget m_ExchangeWidget;
|
|
[SerializeField] TipOperateButton[] m_OperateButtons;
|
|
[SerializeField] Transform rawObj;
|
[SerializeField] RawImage rawImage;
|
|
PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
|
EquipModel equipModel { get { return ModelCenter.Instance.GetModel<EquipModel>(); } }
|
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
m_Close.SetListener(CloseClick);
|
}
|
|
protected override void OnPreOpen()
|
{
|
this.transform.localScale = Vector3.zero;
|
}
|
|
protected override void OnAfterOpen()
|
{
|
packModel.refreshItemDayUseCountEvent += OnUseItem;
|
}
|
|
protected override void OnPreClose()
|
{
|
m_BuyItemWidget.Dispose();
|
StopAllCoroutines();
|
packModel.refreshItemDayUseCountEvent -= OnUseItem;
|
UI3DModelExhibition.InstanceClone7.StopShow();
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
|
protected override void OnActived()
|
{
|
base.OnActived();
|
|
StartCoroutine(Co_DelayOneFrame());
|
}
|
|
#endregion
|
|
IEnumerator Co_DelayOneFrame()
|
{
|
this.transform.localScale = new Vector3(0, 1, 0);
|
DisplayBaseInfo();
|
DisplayItemDescription();
|
DisplayItemUseState();
|
DisplayAuctionInfo();
|
DisplayBuyItem();
|
DisplayGetWays();
|
DisplayExchanges();
|
DisplayOperateButton();
|
DisplayModel();
|
|
yield return null;
|
yield return null;
|
this.transform.localScale = Vector3.one;
|
}
|
|
private void DisplayBaseInfo()
|
{
|
var data = ItemTipUtility.mainTipData;
|
m_BaseInfoWidget.Display(data.baseInfo, data.guid);
|
}
|
|
private void DisplayItemDescription()
|
{
|
var data = ItemTipUtility.mainTipData;
|
m_DescriptionWidget.Display(data.baseInfo.itemId);
|
}
|
|
private void OnUseItem(int itemId)
|
{
|
if (itemId == ItemTipUtility.mainTipData.itemId)
|
{
|
DisplayItemUseState();
|
}
|
}
|
|
private void DisplayItemUseState()
|
{
|
var data = ItemTipUtility.mainTipData;
|
var count = packModel.GetItemUsedTimesToday(data.itemId);
|
var config = ItemConfig.Get(data.itemId);
|
m_DescriptionWidget.DisplayUseState(count, config.MaxSkillCnt);
|
}
|
|
private void DisplayAuctionInfo()
|
{
|
var data = ItemTipUtility.mainTipData;
|
m_AuctionWidget.SetActive(false);// data.baseInfo.isAuction);
|
//if (data.baseInfo.isAuction)
|
//{
|
// var overdueTime = TimeUtility.ServerNow.AddSeconds((double)data.baseInfo.auctionSurplusTime);
|
// m_AuctionWidget.Display(overdueTime);
|
//}
|
}
|
|
private void DisplayModel()
|
{
|
var baseInfo = ItemTipUtility.mainTipData.baseInfo;
|
var config = ItemConfig.Get(baseInfo.itemId);
|
|
m_ModelWidget.SetActive(config.Type == 124 || config.Type == 125);
|
switch (config.Type)
|
{
|
case 124:
|
var horseId = HorseConfig.GetItemUnLockHorse(config.EffectValueA1);
|
var horseConfig = HorseConfig.Get(horseId);
|
m_ModelWidget.Display(horseConfig.Model, ModelShowType.Mount, horseConfig.ShowFightPower);
|
break;
|
case 125:
|
var petId = PetInfoConfig.GetItemUnLockPet(config.EffectValueA1);
|
var petConfig = PetInfoConfig.Get(petId);
|
m_ModelWidget.Display(petId, ModelShowType.Pet, petConfig.ShowFightPower);
|
break;
|
}
|
|
if (config.Type != 4)
|
{
|
rawObj.SetActive(false);
|
}
|
else if (config.Effect1 == 204)
|
{
|
ShowPlayerBodyEffect(config.EffectValueA1);
|
}
|
}
|
|
void ShowPlayerBodyEffect(int titleID)
|
{
|
if (!equipModel.equipAddEffect.ContainsKey(titleID))
|
{
|
rawObj.SetActive(false);
|
return;
|
}
|
rawObj.SetActive(true);
|
|
UI3DModelExhibition.InstanceClone7.ShowPlayer(rawImage, PlayerDatas.Instance.baseData.Job, false, 0.4f);
|
UI3DModelExhibition.InstanceClone7.ShowPlayerBodyEffect(equipModel.equipAddEffect[titleID], 0.4f);
|
rawImage.raycastTarget = false;
|
}
|
|
private void DisplayBuyItem()
|
{
|
m_BuyItemWidget.SetActive(ItemTipUtility.mainTipData.goodId > 0);
|
if (ItemTipUtility.mainTipData.goodId > 0)
|
{
|
m_BuyItemWidget.Display(ItemTipUtility.mainTipData.goodId);
|
}
|
}
|
|
private void DisplayGetWays()
|
{
|
var getWay = ItemTipUtility.mainTipData.getWay;
|
var hasGetWay = !getWay.ways.IsNullOrEmpty();
|
m_GetWayEntranceWidget.SetActive(hasGetWay);
|
m_GetWaysWidget.SetActive(false);
|
if (hasGetWay)
|
{
|
m_GetWaysWidget.Display(getWay);
|
m_GetWaysWidget.Bind("ItemTipWin");
|
m_GetWayEntranceWidget.SetListener(() =>
|
{
|
if (!m_GetWaysWidget.gameObject.activeSelf)
|
{
|
m_GetWaysWidget.Display(getWay);
|
m_GetWaysWidget.Bind("ItemTipWin");
|
}
|
else
|
{
|
m_GetWaysWidget.Hide();
|
}
|
});
|
|
if (getWay.defaultUnfold)
|
{
|
m_GetWaysWidget.Display(getWay);
|
m_GetWaysWidget.Bind("ItemTipWin");
|
}
|
}
|
}
|
|
private void DisplayExchanges()
|
{
|
var itemId = ItemTipUtility.mainTipData.exchangeItemId;
|
var hasExchange = ItemExchangeConfig.Has(itemId);
|
m_ExchangeWidget.SetActive(hasExchange);
|
if (hasExchange)
|
{
|
m_ExchangeWidget.Display(itemId);
|
m_ExchangeWidget.Bind("ItemTipWin");
|
}
|
}
|
|
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("ItemTipWin", operates[i], guid);
|
}
|
else
|
{
|
button.SetActive(false);
|
}
|
}
|
}
|
}
|
|
}
|
}
|
|
|
|
|