using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
using System.Collections;
|
|
namespace vnxbqy.UI
|
{
|
|
public class FashionDetailsWin : Window
|
{
|
[SerializeField] GameObject container;
|
[SerializeField] CanvasGroup alpha;
|
[Header("顶部UI")]
|
[SerializeField] Text nameText;
|
[SerializeField] Text fashionPartText;
|
[SerializeField] Text jobText;
|
[SerializeField] ItemBehaviour itemBaisc;
|
[Header("中间UI")]
|
[SerializeField] GameObject midPartObj;
|
[SerializeField] FashionAttrBeh currentFashionAttr;
|
[SerializeField] FashionAttrBeh nextFashionAttr;
|
[Header("底部UI")]
|
[SerializeField] GameObject bottomPartObj;
|
[SerializeField] Text resourceText;
|
|
[SerializeField] TipGetWayEntranceWidget m_GetWayEntranceWidget;
|
[SerializeField] TipGetWaysWidget m_GetWaysWidget;
|
|
ItemTipUtility.GetWay getWay;
|
|
FashionDress fashionDress = null;
|
ItemConfig itemConfig = null;
|
FashionDressModel fashionModel { get { return ModelCenter.Instance.GetModel<FashionDressModel>(); } }
|
#region Built-in
|
protected override void BindController()
|
{
|
|
}
|
protected override void AddListeners()
|
{
|
}
|
protected override void OnPreOpen()
|
{
|
SetDisplay();
|
}
|
protected override void OnActived()
|
{
|
base.OnActived();
|
StartCoroutine(DelayShow());
|
}
|
protected override void OnAfterOpen()
|
{
|
|
}
|
|
protected override void OnPreClose()
|
{
|
|
}
|
|
protected override void OnAfterClose()
|
{
|
|
}
|
#endregion
|
|
private void SetDisplay()
|
{
|
|
fashionModel.TryGetFashionDress(fashionModel.viewFashionDressId, out fashionDress);
|
if (fashionDress == null) return;
|
|
container.SetActive(false);
|
int itemId = fashionDress.GetEquipItemId();
|
DebugEx.Log("物品ID:" + itemId);
|
alpha.alpha = 0;
|
itemConfig = ItemConfig.Get(itemId);
|
getWay = new ItemTipUtility.GetWay();
|
if (itemConfig != null && itemConfig.GetWay != null)
|
{
|
getWay.ways = new List<int>(itemConfig.GetWay);
|
}
|
SetTopUI();
|
SetMidUI();
|
SetBotttomUI();
|
DisplayGetWays();
|
}
|
|
#region 时装详情
|
private void SetTopUI()
|
{
|
if (itemConfig == null) return;
|
|
if (itemConfig.JobLimit != 0)
|
{
|
OccupationNameConfig jobNameConfig = OccupationNameConfig.Get(itemConfig.JobLimit);
|
jobText.text = jobNameConfig.name;
|
}
|
nameText.text = itemConfig.ItemName;
|
nameText.color = UIHelper.GetUIColor(itemConfig.ItemColor);
|
fashionPartText.text = itemConfig.ItemTypeName;
|
itemBaisc.SetItem(itemConfig.ID, 1);
|
}
|
|
private void SetMidUI()
|
{
|
//midPartObj.SetActive(true);
|
if (fashionDress == null) return;
|
int minStar = 1;
|
int curSatr = fashionModel.GetFashionDressLevel(fashionDress.id);
|
if (curSatr < minStar)
|
{
|
currentFashionAttr.SetActive(false);
|
nextFashionAttr.SetActive(true);
|
nextFashionAttr.SetDisplay(minStar, curSatr);
|
}
|
else if (curSatr >= fashionDress.maxLevel)
|
{
|
currentFashionAttr.SetActive(true);
|
nextFashionAttr.SetActive(false);
|
currentFashionAttr.SetDisplay(fashionDress.maxLevel, curSatr);
|
}
|
else
|
{
|
currentFashionAttr.SetActive(true);
|
nextFashionAttr.SetActive(true);
|
currentFashionAttr.SetDisplay(curSatr, curSatr);
|
nextFashionAttr.SetDisplay(curSatr + 1, curSatr);
|
}
|
}
|
|
private void SetBotttomUI()
|
{
|
if (itemConfig == null) return;
|
|
//bottomPartObj.SetActive(true);
|
resourceText.text = itemConfig.Description;
|
}
|
|
private void DisplayGetWays()
|
{
|
var hasGetWay = !getWay.ways.IsNullOrEmpty();
|
m_GetWayEntranceWidget.SetActive(hasGetWay);
|
m_GetWaysWidget.SetActive(false);
|
if (hasGetWay)
|
{
|
m_GetWayEntranceWidget.SetListener(() =>
|
{
|
if (!m_GetWaysWidget.gameObject.activeSelf)
|
{
|
m_GetWaysWidget.Display(getWay);
|
m_GetWaysWidget.Bind("FashionDetailsWin");
|
}
|
else
|
{
|
m_GetWaysWidget.Hide();
|
}
|
});
|
|
if (getWay.defaultUnfold)
|
{
|
m_GetWaysWidget.Display(getWay);
|
m_GetWaysWidget.Bind("FashionDetailsWin");
|
}
|
}
|
}
|
|
IEnumerator DelayShow()
|
{
|
yield return null;
|
container.SetActive(true);
|
StartCoroutine(DelayAlpha());
|
}
|
|
IEnumerator DelayShowMid()
|
{
|
yield return null;
|
midPartObj.SetActive(true);
|
StartCoroutine(DelayShowBottom());
|
}
|
|
IEnumerator DelayShowBottom()
|
{
|
yield return null;
|
bottomPartObj.SetActive(true);
|
StartCoroutine(DelayAlpha());
|
}
|
|
IEnumerator DelayAlpha()
|
{
|
yield return null;
|
alpha.alpha = 1;
|
}
|
#endregion
|
}
|
}
|