using vnxbqy.UI;
|
using System;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
public class CrossServerBattleFieldAchievementItemCell : ILBehaviour
|
{
|
Text successInfo;
|
IntensifySmoothSlider slider;
|
List<ItemCell> items = new List<ItemCell>();
|
Button getBtn;
|
Image getYet;
|
Text sliderText;
|
|
AchievementModel achievementModel { get { return ModelCenter.Instance.GetModel<AchievementModel>(); } }
|
|
protected override void Awake()
|
{
|
successInfo = proxy.GetWidgtEx<Text>("TextEx");
|
slider = proxy.GetWidgtEx<IntensifySmoothSlider>("Slider");
|
sliderText = proxy.GetWidgtEx<Text>("SliderText");
|
items.Add(proxy.GetWidgtEx<ItemCell>("itemCell0"));
|
items.Add(proxy.GetWidgtEx<ItemCell>("itemCell1"));
|
getBtn = proxy.GetWidgtEx<Button>("getBtn");
|
getYet = proxy.GetWidgtEx<Image>("getYet");
|
}
|
|
public void Display(int index)
|
{
|
var id = ILCrossServerModel.Instance.sortSueecssIDs[index];
|
Achievement sid;
|
achievementModel.TryGetAchievement(id, out sid);
|
successInfo.text = AchievementModel.ParseAchievementDescription(id);
|
var config = SuccessConfig.Get(id);
|
|
slider.value = (float)Math.Round((float)sid.progress / config.NeedCnt, 2, MidpointRounding.AwayFromZero);
|
sliderText.text = sid.progress + "/" + config.NeedCnt;
|
|
|
if (sid.completed)
|
{
|
getBtn.SetActiveIL(false);
|
getYet.SetActiveIL(true);
|
}
|
else if (Achievement.IsReach(id, sid.progress))
|
{
|
getBtn.SetActiveIL(true);
|
getYet.SetActiveIL(false);
|
getBtn.SetListener(()=>{
|
GetAwards(index);
|
});
|
}
|
else
|
{
|
|
getBtn.SetActiveIL(false);
|
getYet.SetActiveIL(false);
|
}
|
|
for (int i = 0; i < items.Count; i++)
|
{
|
if (i < sid.rewardItem.Length)
|
{
|
var itemID = sid.rewardItem[i].id;
|
items[i].SetActiveIL(true);
|
items[i].Init(new ItemCellModel(itemID, false, (ulong)sid.rewardItem[i].count));
|
items[i].button.AddListener(() => ItemTipUtility.Show(itemID));
|
}
|
else
|
{
|
items[i].SetActiveIL(false);
|
}
|
}
|
}
|
|
void GetAwards(int index)
|
{
|
var id = ILCrossServerModel.Instance.sortSueecssIDs[index];
|
var sendInfo = new CA542_tagMCGetSuccessAward();
|
sendInfo.SuccID = (uint)id;
|
sendInfo.IsPassport = 0;
|
GameNetSystem.Instance.SendInfo(sendInfo);
|
}
|
|
}
|