using vnxbqy.UI;
|
using System.Collections.Generic;
|
using System.Linq;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
class WeddingRingStarSuccessWin : ILWindow
|
{
|
Button closeBtn;
|
Text upgrateName;
|
ScrollerController attrScroll;
|
List<Image> stars = new List<Image>();
|
float openTime = 0f;
|
|
#region Built-in
|
protected override void BindController()
|
{
|
closeBtn = proxy.GetWidgtEx<Button>("Btn_Close");
|
upgrateName = proxy.GetWidgtEx<Text>("upgratetxt");
|
attrScroll = proxy.GetWidgtEx<ScrollerController>("prolayout");
|
for (int i = 0; i < 10; i++)
|
{
|
stars.Add(proxy.GetWidgtEx<Image>("Img_Star_True" + i));
|
}
|
|
|
}
|
|
protected override void AddListeners()
|
{
|
closeBtn.SetListener(() => {
|
//打开x秒内不响应关闭
|
if (Time.time - openTime < 1)
|
{
|
return;
|
}
|
WindowCenter.Instance.CloseIL<WeddingRingStarSuccessWin>();
|
});
|
|
}
|
|
protected override void OnPreOpen()
|
{
|
openTime = Time.time;
|
upgrateName.text = Language.Get("LoveRing3", WeddingModel.Instance.m_ClassLV, WeddingModel.Instance.m_StarLV);
|
attrScroll.OnRefreshCell += OnRefreshCell;
|
|
}
|
|
protected override void OnPreClose()
|
{
|
attrScroll.OnRefreshCell -= OnRefreshCell;
|
}
|
|
protected override void OnAfterOpen()
|
{
|
CalcBeforeAttr();
|
attrScroll.Refresh();
|
|
var keyList = beforeAttrDict.Keys.ToList();
|
for (int i = 0; i < keyList.Count; i++)
|
{
|
attrScroll.AddCell(ScrollerDataType.Header, keyList[i]);
|
}
|
|
attrScroll.Restart();
|
attrScroll.m_Scorller.RefreshActiveCellViews();
|
|
for (int i = 0; i < stars.Count; i++)
|
{
|
stars[i].SetActiveIL(i < WeddingModel.Instance.m_StarLV);
|
}
|
}
|
#endregion
|
|
Dictionary<int, int> beforeAttrDict = new Dictionary<int, int>();
|
void CalcBeforeAttr()
|
{
|
beforeAttrDict.Clear();
|
var curConfig = ILLoveRingConfig.GetRingConfigByLVStar(WeddingModel.Instance.m_ClassLV, WeddingModel.Instance.m_StarLV);
|
var beforeConfig = ILLoveRingConfig.Get(ILLoveRingConfig.GetIndex(WeddingModel.Instance.m_ClassLV, WeddingModel.Instance.m_StarLV) - 1);
|
|
for (int i= 0; i < beforeConfig.UpItemAttrType.Length; i++)
|
{
|
var attrID = beforeConfig.UpItemAttrType[i];
|
beforeAttrDict[attrID] = WeddingModel.Instance.ringLVUPAttr[attrID] - beforeConfig.UpItemAttrValue[i];
|
}
|
|
for (int i = 0; i < curConfig.StarAttrType.Length; i++)
|
{
|
var attrID = curConfig.StarAttrType[i];
|
beforeAttrDict[attrID] = WeddingModel.Instance.ringLVUPAttr[attrID] - curConfig.StarAttrValue[i];
|
}
|
|
if (WeddingModel.Instance.m_CoupleID != 0)
|
{
|
for (int i = 0; i < curConfig.CoupleAttrType.Length; i++)
|
{
|
var attrID = curConfig.CoupleAttrType[i];
|
beforeAttrDict[attrID] = WeddingModel.Instance.ringLVUPAttr[attrID] - curConfig.CoupleAttrValue[i];
|
}
|
}
|
|
}
|
|
void OnRefreshCell(ScrollerDataType type, CellView cell)
|
{
|
var curText = cell.FindComponentEx<Text>("Txt_Current");
|
var nextText = cell.FindComponentEx<Text>("Txt_Next");
|
var id = cell.index;
|
|
curText.text = StringUtility.Contact(PlayerPropertyConfig.Get(id).Name, ": ", PlayerPropertyConfig.GetValueDescription(id, beforeAttrDict[id]), " ");
|
nextText.text = " " + PlayerPropertyConfig.GetValueDescription(id, WeddingModel.Instance.ringLVUPAttr[id]);
|
|
}
|
}
|