using System.Collections;  
 | 
using System.Collections.Generic;  
 | 
using UnityEngine;  
 | 
using UnityEngine.UI;  
 | 
using vnxbqy.UI;  
 | 
  
 | 
namespace EnhancedUI.EnhancedScroller  
 | 
{  
 | 
    public class OSAchieveCell : ScrollerUI  
 | 
    {  
 | 
        [SerializeField] AvatarCell avatarCell;  
 | 
        [SerializeField] Text m_AchieveName;  
 | 
        [SerializeField] Button m_AchiveGoto;  
 | 
        [SerializeField] Image m_AchiveComplete;  
 | 
        [SerializeField] Text m_AchieveDesc;  
 | 
        [SerializeField] Text m_AchieveProgress;  
 | 
        [SerializeField] Button m_RedPack;  
 | 
  
 | 
        OSRedEnvelopeModel m_Model;  
 | 
        OSRedEnvelopeModel model  
 | 
        {  
 | 
            get  
 | 
            {  
 | 
                return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<OSRedEnvelopeModel>());  
 | 
            }  
 | 
        }  
 | 
  
 | 
        AchievementModel m_AchievementModel;  
 | 
        AchievementModel achieveModel  
 | 
        {  
 | 
            get  
 | 
            {  
 | 
                return m_AchievementModel ?? (m_AchievementModel = ModelCenter.Instance.GetModel<AchievementModel>());  
 | 
            }  
 | 
        }  
 | 
  
 | 
        public override void Refresh(CellView cell)  
 | 
        {  
 | 
            var _key = model.m_OSRedAchieves[cell.index];  
 | 
            OSRedEnvelopeModel.OSRedAchieve _achieve = model.m_OSRedAchieveDict[_key];  
 | 
            if (_achieve != null)  
 | 
            {  
 | 
                var _cfg = OSRedAchieveConfig.Get(_achieve.id);  
 | 
                avatarCell.bgImage.SetActive(false);  
 | 
                avatarCell.avatarFrameImage.SetActive(false);  
 | 
                avatarCell.avatarImage.SetSprite(_cfg.Icon);  
 | 
                m_AchieveName.text = _cfg.typeName;  
 | 
                m_AchiveGoto.onClick.RemoveAllListeners();  
 | 
                m_RedPack.onClick.RemoveAllListeners();  
 | 
                var _currentAchieve = _achieve.CurrentAchieve;  
 | 
                bool _isReach = false;  
 | 
                var _achieveCfg = SuccessConfig.Get(_currentAchieve);  
 | 
                Achievement achievement;  
 | 
                if (achieveModel.TryGetAchievement(_currentAchieve, out achievement))  
 | 
                {  
 | 
                    _isReach = Achievement.IsReach(_currentAchieve, achievement.progress) || achievement.completed;  
 | 
                    m_AchieveDesc.text = _achieveCfg.Describe;  
 | 
                    var _progress = achievement.completed ? _achieveCfg.NeedCnt : achievement.progress;  
 | 
                    m_AchieveProgress.text = StringUtility.Contact(Mathf.Min(_progress, _achieveCfg.NeedCnt),  
 | 
                        "/", _achieveCfg.NeedCnt);  
 | 
                    m_AchiveComplete.SetActive(achievement.completed);  
 | 
                    m_AchiveGoto.SetActive(!_isReach);  
 | 
                    m_RedPack.SetActive(_isReach && !achievement.completed);  
 | 
                    if (_isReach && !achievement.completed)  
 | 
                    {  
 | 
                        m_RedPack.onClick.AddListener(() =>  
 | 
                        {  
 | 
                            model.RequestSendAchieveEnvelope(_currentAchieve);  
 | 
                        });  
 | 
                    }  
 | 
                }  
 | 
                if (!_isReach)  
 | 
                {  
 | 
                    m_AchiveGoto.onClick.AddListener((UnityEngine.Events.UnityAction)(() =>  
 | 
                    {  
 | 
                        if (TimeUtility.OpenDay >= model.openDays)  
 | 
                        {  
 | 
                            SysNotifyMgr.Instance.ShowTip("ActiveOutTime");  
 | 
                            return;  
 | 
                        }  
 | 
                        achieveModel.GotoCompleteAchievement(_currentAchieve);  
 | 
                        WindowCenter.Instance.Close<OpenServerActivityWin>();  
 | 
                    }));  
 | 
                }  
 | 
            }  
 | 
        }  
 | 
    }  
 | 
}  
 | 
  
 | 
  
 |