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(); } } VipModel vipModel { get { return ModelCenter.Instance.GetModel(); } } 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); //} } }