using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
public class SuccessBPCell : CellView
|
{
|
[SerializeField] ItemCell[] m_Items;
|
[SerializeField] ItemCell[] m_BPItems;
|
[SerializeField] Image[] m_GotImages;
|
[SerializeField] Text SuccessCond;
|
[SerializeField] Text SuccessProcess;
|
[SerializeField] Button m_GetBtn;
|
[SerializeField] Text m_GetText;
|
[SerializeField] Image m_GetYetImg;
|
[SerializeField] UIEffect m_GetEffect;
|
|
AchievementModel model { get { return ModelCenter.Instance.GetModel<AchievementModel>(); } }
|
VipModel vipModel { get { return ModelCenter.Instance.GetModel<VipModel>(); } }
|
public void Display(int successID)
|
{
|
Achievement achievement;
|
if (!model.TryGetAchievement(successID, out achievement))
|
{
|
return;
|
}
|
var config = SuccessConfig.Get(successID);
|
|
SuccessCond.text = AchievementModel.ParseAchievementDescription(successID);
|
int process = Mathf.Min(achievement.progress, config.NeedCnt);
|
if (achievement.completed)
|
{
|
//已领取完成的 服务端不通知,则根据领取算满值
|
process = config.NeedCnt;
|
}
|
if (process >= config.NeedCnt)
|
{
|
SuccessProcess.text = "(" + UIHelper.AppendColor(TextColType.DarkGreen, process.ToString()) + "/" + config.NeedCnt + ")";
|
}
|
else
|
{
|
SuccessProcess.text = "(" + UIHelper.AppendColor(TextColType.Red, process.ToString()) + "/" + config.NeedCnt + ")";
|
}
|
for (int i = 0; i < m_Items.Length; i++)
|
{
|
if (i < achievement.rewardItem.Length)
|
{
|
m_Items[i].SetActive(true);
|
m_GotImages[i].SetActive(achievement.completed);
|
var _item = achievement.rewardItem[i];
|
ItemCellModel _ItemData = new ItemCellModel(_item.id, true, (ulong)_item.count);
|
m_Items[i].Init(_ItemData);
|
m_Items[i].button.RemoveAllListeners();
|
m_Items[i].button.AddListener(() =>
|
{
|
ItemTipUtility.Show(_item.id);
|
});
|
}
|
else
|
{
|
m_Items[i].SetActive(false);
|
}
|
}
|
|
//战令道具
|
for (int i = 0; i < m_BPItems.Length; i++)
|
{
|
if (i < achievement.rewardItemBP.Length)
|
{
|
m_BPItems[i].SetActive(true);
|
m_GotImages[achievement.rewardItem.Length + i].SetActive(achievement.completedBP);
|
var _item = achievement.rewardItemBP[i];
|
ItemCellModel _ItemData = new ItemCellModel(_item.id, true, (ulong)_item.count);
|
m_BPItems[i].Init(_ItemData);
|
m_BPItems[i].button.RemoveAllListeners();
|
m_BPItems[i].button.AddListener(() =>
|
{
|
ItemTipUtility.Show(_item.id);
|
});
|
}
|
else
|
{
|
m_BPItems[i].SetActive(false);
|
}
|
}
|
|
m_GetYetImg.SetActive(achievement.completedBP && achievement.completed);
|
m_GetBtn.SetActive(!(achievement.completedBP && achievement.completed));
|
// 1. 提交不满足两个奖励都不可领取 - 灰色(滚动遮挡bug改不显示)
|
// 2. 可以领取1-2个奖励 -亮+特效
|
// 3. 普通及奖励已领取 但不能领取高级 显示继续领取 - 亮无特效
|
|
bool isBuy = model.isBuyBP();
|
|
m_GetText.text = Language.Get("Z1043");
|
m_GetEffect.SetActive(false);
|
m_GetEffect.Stop();
|
bool isReach = false;
|
if (!achievement.completed && !Achievement.IsReach(successID, achievement.progress))
|
{
|
//m_GetBtn.SetColorful(m_GetText, false);
|
m_GetBtn.SetActive(false);
|
}
|
else
|
{
|
isReach = true;
|
//m_GetBtn.SetColorful(m_GetText, true);
|
//m_GetBtn.SetActive(true);
|
if (!achievement.completed || (isBuy && !achievement.completedBP))
|
{
|
m_GetEffect.SetActive(true);
|
m_GetEffect.Play();
|
}
|
if (achievement.completed && !achievement.completedBP)
|
{
|
m_GetText.text = Language.Get("Z1049");
|
}
|
}
|
|
m_GetBtn.SetListener(()=> {
|
GetGift(successID, isBuy, isReach, achievement.completed, achievement.completedBP);
|
}
|
);
|
}
|
|
private void GetGift(int successID, bool isBuy, bool isReach, bool completed, bool completedBP)
|
{
|
if (!isReach)
|
{
|
return;
|
}
|
if (!completed)
|
{
|
//GetAchievementReward(successID, 0);
|
ILAchievementModel.Instance.GetAchievementReward(successID, 0);
|
}
|
if (isBuy && !completedBP)
|
{
|
//GetAchievementReward(successID, 1);
|
ILAchievementModel.Instance.GetAchievementReward(successID, 1);
|
}
|
if (completed && !isBuy)
|
{
|
ConfirmCancel.ShowPopConfirm(
|
Language.Get("Mail101"),
|
Language.Get("SuccessBuyTip"),
|
(bool _ok) =>
|
{
|
if (_ok)
|
{
|
vipModel.CTG(model.BPCTGID);
|
}
|
}
|
);
|
}
|
}
|
|
//public void GetAchievementReward(int _achievementId, byte getBP)
|
//{
|
// var sendInfo = new CA542_tagMCGetSuccessAward();
|
// sendInfo.SuccID = (uint)_achievementId;
|
// sendInfo.IsPassport = getBP;
|
// GameNetSystem.Instance.SendInfo(sendInfo);
|
//}
|
|
}
|
}
|