using vnxbqy.UI;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
using LitJson;
|
|
public class ILAchievementActivityAwardCell : ILBehaviour
|
{
|
IntensifySmoothSlider slider;
|
Text successProcess;
|
Text title;
|
List<ItemCell> items = new List<ItemCell>();
|
ButtonEx awardBtn;
|
Image getImg;
|
|
int moneyID = 590;
|
|
AchievementModel model { get { return ModelCenter.Instance.GetModelEx<AchievementModel>(); } }
|
protected override void Awake()
|
{
|
|
slider = proxy.GetWidgtEx<IntensifySmoothSlider>("ExpSlider");
|
successProcess = proxy.GetWidgtEx<Text>("process");
|
title = proxy.GetWidgtEx<Text>("title");
|
for (int i = 0; i < 4; i++)
|
{
|
items.Add(proxy.GetWidgtEx<ItemCell>("itemCell" + i));
|
}
|
|
awardBtn = proxy.GetWidgtEx<ButtonEx>("getButton");
|
getImg = proxy.GetWidgtEx<Image>("getImageEx");
|
|
}
|
|
public void Display(int successID)
|
{
|
Achievement achievement;
|
if (!model.TryGetAchievement(successID, out achievement))
|
{
|
return;
|
}
|
var config = SuccessConfig.Get(successID);
|
|
title.text = AchievementModel.ParseAchievementDescription(successID);
|
int process = Mathf.Min(achievement.progress, config.NeedCnt);
|
if (achievement.completed)
|
{
|
//已领取完成的 服务端不通知,则根据领取算满值
|
process = config.NeedCnt;
|
}
|
|
slider.value = (float)process / config.NeedCnt;
|
successProcess.text = process + "/" + config.NeedCnt;
|
int lastIndex = -1;
|
for (int i = 0; i < items.Count; i++)
|
{
|
if (i < achievement.rewardItem.Length)
|
{
|
items[i].SetActive(true);
|
var _item = achievement.rewardItem[i];
|
ItemCellModel _ItemData = new ItemCellModel(_item.id, true, (ulong)_item.count);
|
items[i].Init(_ItemData);
|
items[i].button.RemoveAllListeners();
|
items[i].button.AddListener(() =>
|
{
|
ItemTipUtility.Show(_item.id);
|
});
|
lastIndex = i;
|
}
|
else
|
{
|
items[i].SetActive(false);
|
}
|
}
|
int moneyIndex = lastIndex + 1;
|
if (moneyIndex < items.Count)
|
{
|
items[moneyIndex].SetActiveIL(true);
|
var json = JsonMapper.ToObject(config.Money);
|
items[moneyIndex].Init(new ItemCellModel(moneyID, false, ulong.Parse(json["39"].ToJson())));
|
items[moneyIndex].button.AddListener(() =>
|
{
|
ItemTipUtility.Show(moneyID);
|
});
|
}
|
|
getImg.SetActiveIL(achievement.completed);
|
awardBtn.SetActiveIL(!achievement.completed);
|
awardBtn.interactable = process >= config.NeedCnt;
|
awardBtn.SetListener(()=> {
|
ILAchievementModel.Instance.GetAchievementReward(successID);
|
});
|
}
|
|
|
}
|