using vnxbqy.UI;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using UnityEngine.UI;
|
|
class PetHorseAwakingDevourWin : ILWindow
|
{
|
|
CyclicScroll cyclicScroll;
|
Text txt_name;
|
Text txt_level;
|
SmoothSlider expSlider;
|
Text txt_exp;
|
Button btn_close;
|
|
int cacheLevel;
|
|
List<PetHorseDevourBehaviour> devourBehaviours;
|
|
PetHorseAwakingModel model { get { return PetHorseAwakingModel.Instance; } }
|
PackModel packModel;
|
|
protected override void BindController()
|
{
|
base.BindController();
|
|
packModel = ModelCenter.Instance.GetModelEx<PackModel>();
|
|
this.cyclicScroll = this.transform.FindComponentEx<CyclicScroll>("Container_Common/Scroller");
|
var smoothmask = this.transform.FindComponentEx<SmoothMask>("Container_Common/Scroller");
|
|
devourBehaviours = new List<PetHorseDevourBehaviour>();
|
for (var i = 1; i <= 5; i++)
|
{
|
var behaviour = new PetHorseDevourBehaviour();
|
behaviour.Bind(this.transform.Find("Container_Common/Scroller/Content/" + i), smoothmask);
|
this.devourBehaviours.Add(behaviour);
|
}
|
|
this.txt_name = this.transform.FindComponentEx<Text>("Container_Common/Container_Progress/Txt_Name");
|
this.txt_level = this.transform.FindComponentEx<Text>("Container_Common/Container_Progress/Txt_Level");
|
this.expSlider = this.transform.FindComponentEx<SmoothSlider>("Container_Common/Container_Progress/ExpSlider");
|
this.txt_exp = this.transform.FindComponentEx<Text>("Container_Common/Container_Progress/ExpSlider/ExpNum");
|
this.btn_close = this.transform.FindComponentEx<Button>("Container_Common/Btn_Close");
|
}
|
|
protected override void AddListeners()
|
{
|
base.AddListeners();
|
this.btn_close.SetListener(() =>
|
{
|
WindowCenter.Instance.CloseIL<PetHorseAwakingDevourWin>();
|
});
|
}
|
|
protected override void OnPreOpen()
|
{
|
base.OnPreOpen();
|
model.dataDirtys[1] = false;
|
this.DisplayItems();
|
this.DisplayBase();
|
this.DisplayExp(true);
|
packModel.refreshItemCountEvent += RefreshItemCountEvent;
|
}
|
|
protected override void OnPreClose()
|
{
|
base.OnPreClose();
|
packModel.refreshItemCountEvent -= RefreshItemCountEvent;
|
}
|
|
protected override void LateUpdate()
|
{
|
base.LateUpdate();
|
if (model.dataDirtys[1])
|
{
|
model.dataDirtys[1] = false;
|
this.OnDataUpdate();
|
}
|
}
|
|
void RefreshItemCountEvent(PackType packType, int index, int itemId)
|
{
|
var items = model.GetDevourItems();
|
if (packType == PackType.Item && items.Contains(itemId))
|
this.RefreshBehaviours();
|
}
|
|
void RefreshBehaviours()
|
{
|
for (int i = 0; i < devourBehaviours.Count; i++)
|
{
|
devourBehaviours[i].DisplayItem();
|
}
|
}
|
|
void DisplayItems()
|
{
|
var items = model.GetDevourItems();
|
this.cyclicScroll.LuaInit(items.ToArray(), false);
|
}
|
|
void DisplayBase()
|
{
|
var data = model.GetData(model.selectId);
|
if (data.Type == 1)
|
{
|
var config = HorseConfig.Get(data.Id);
|
this.txt_name.text = config.Name;
|
}
|
else if (data.Type == 2)
|
{
|
var config = PetInfoConfig.Get(data.Id);
|
this.txt_name.text = config.Name;
|
}
|
}
|
|
void DisplayExp(bool force)
|
{
|
var data = model.GetData(model.selectId);
|
var isMax = data.IsMaxLevel;
|
if (isMax)
|
{
|
this.txt_exp.text = Language.Get("PetHorseAwaking_2");
|
this.expSlider.value = 1;
|
}
|
else
|
{
|
var config = model.GetPetHorseAwakeConfig(model.selectId, data.Level);
|
this.txt_exp.text = data.Exp + "/" + config.NeedExp;
|
var progress = (float)data.Exp / config.NeedExp;
|
if (force)
|
this.expSlider.ResetValue(progress);
|
else
|
this.expSlider.value = progress;
|
}
|
this.txt_level.text = Language.Get("PetHorseAwaking_3", data.Level);
|
this.cacheLevel = data.Level;
|
}
|
|
void OnDataUpdate()
|
{
|
var data = model.GetData(model.selectId);
|
if (data.IsMaxLevel)
|
WindowCenter.Instance.CloseIL<PetHorseAwakingDevourWin>();
|
this.DisplayExp(false);
|
}
|
|
|
}
|