using UnityEngine;
|
using UnityEngine.UI;
|
|
|
namespace vnxbqy.UI
|
{
|
public class XMZZAchieveCell : CellView
|
{
|
[SerializeField] Image itemIcon;
|
[SerializeField] Button itemIconBtn;
|
[SerializeField] Text numText;
|
[SerializeField] Text achieveNameText;
|
[SerializeField] Slider progressSlider;
|
[SerializeField] Text progressText;
|
[SerializeField] Button recieveBtn;
|
[SerializeField] UIEffect receiveEffect;
|
|
private Achievement achieve = null;
|
private SuccessConfig successConfig = null;
|
HeavenBattleModel battleModel { get { return ModelCenter.Instance.GetModel<HeavenBattleModel>(); } }
|
AchievementModel achievementModel { get { return ModelCenter.Instance.GetModel<AchievementModel>(); } }
|
|
public void Init(int achieveId)
|
{
|
achieve = null;
|
progressSlider.minValue = 0;
|
progressSlider.maxValue = 1;
|
achievementModel.TryGetAchievement(achieveId, out achieve);
|
if (achieve == null)
|
{
|
progressSlider.value = 0;
|
return;
|
}
|
|
successConfig = SuccessConfig.Get(achieve.id);
|
|
achieveNameText.text = AchievementModel.ParseAchievementDescription(achieve.id);
|
string s = "";
|
if (!achieve.completed)
|
{
|
progressSlider.value = (float)achieve.progress / successConfig.NeedCnt;
|
s = StringUtility.Contact(UIHelper.ReplaceLargeNum(achieve.progress), "/", UIHelper.ReplaceLargeNum(successConfig.NeedCnt));
|
}
|
progressText.text = s;
|
itemIconBtn.RemoveAllListeners();
|
if (achieve.rewardItem != null)
|
{
|
ItemConfig itemConfig = ItemConfig.Get(achieve.rewardItem[0].id);
|
itemIcon.SetSprite(itemConfig.IconKey);
|
numText.text = UIHelper.ReplaceLargeNum(achieve.rewardItem[0].count);
|
itemIconBtn.AddListener(()=> {
|
ItemTipUtility.Show(itemConfig.ID);
|
});
|
}
|
else if(achieve.rewardCurrency != null)
|
{
|
UIHelper.SetIconWithMoneyType(itemIcon, achieve.rewardCurrency[0].id);
|
numText.text = UIHelper.ReplaceLargeNum(achieve.rewardCurrency[0].count);
|
}
|
|
RefreshTaskState();
|
}
|
|
private void RefreshTaskState()
|
{
|
recieveBtn.onClick.RemoveAllListeners();
|
if (!IsReachAchieve())
|
{
|
recieveBtn.SetActive(false);
|
receiveEffect.SetActive(false);
|
}
|
else
|
{
|
recieveBtn.SetActive(true);
|
receiveEffect.SetActive(true);
|
recieveBtn.onClick.AddListener(() => { OnClickReceiveReward(achieve.id); });
|
}
|
}
|
|
private void OnClickReceiveReward(int id)
|
{
|
battleModel.AchieveModel.GetAchievementReward(id);
|
}
|
|
public bool IsReachAchieve()
|
{
|
if (achieve == null) return false;
|
bool isReach = false;
|
|
if (!achieve.completed)
|
{
|
if (Achievement.IsReach(achieve.id, achieve.progress))
|
{
|
isReach = true;
|
}
|
}
|
return isReach;
|
}
|
}
|
}
|