using System;  
 | 
using System.Collections;  
 | 
using System.Collections.Generic;  
 | 
using UnityEngine;  
 | 
namespace vnxbqy.UI  
 | 
{  
 | 
      
 | 
    public class LoginAdModel : Model, IPlayerLoginOk,IBeforePlayerDataInitialize  
 | 
    {  
 | 
        FairyJadeInvestmentModel moneyInvestModel { get { return ModelCenter.Instance.GetModel<FairyJadeInvestmentModel>(); } }  
 | 
        VipInvestModel vipInvestModel { get { return ModelCenter.Instance.GetModel<VipInvestModel>(); } }  
 | 
        ImpactRankModel impactRankModel { get { return ModelCenter.Instance.GetModel<ImpactRankModel>(); } }  
 | 
  
 | 
        VipModel vipModel { get { return ModelCenter.Instance.GetModel<VipModel>(); } }  
 | 
  
 | 
        public override void Init()  
 | 
        {  
 | 
        }  
 | 
  
 | 
        public override void UnInit()  
 | 
        {  
 | 
  
 | 
        }  
 | 
  
 | 
        public void OnBeforePlayerDataInitialize()  
 | 
        {  
 | 
            if (!(StageLoad.Instance.currentStage is DungeonStage))  
 | 
            {  
 | 
                login = true;  
 | 
            }  
 | 
            else  
 | 
            {  
 | 
                login = false;  
 | 
            }  
 | 
        }  
 | 
  
 | 
        public void OnPlayerLoginOk()  
 | 
        {  
 | 
  
 | 
        }  
 | 
  
 | 
        private bool login = false;  
 | 
  
 | 
        public bool todayRemind  
 | 
        {  
 | 
            get  
 | 
            {  
 | 
                return LocalSave.GetBool(StringUtility.Contact(PlayerDatas.Instance.baseData.PlayerID, "_LoginAd"), true);  
 | 
            }  
 | 
            set  
 | 
            {  
 | 
                LocalSave.SetBool(StringUtility.Contact(PlayerDatas.Instance.baseData.PlayerID, "_LoginAd"), value);  
 | 
            }  
 | 
        }  
 | 
        public int presentAdId { get; set; }  
 | 
  
 | 
        public bool CheckOpen()  
 | 
        {  
 | 
            if (CheckOpenLoginAd())  
 | 
            {  
 | 
                DayRemind.Instance.SetDayRemind(DayRemind.LOGIN_AD_TIP, true);  
 | 
                var _id = 0;  
 | 
                if (TryGetLoginAd(-1, out _id))  
 | 
                {  
 | 
                    presentAdId = _id;  
 | 
                    todayRemind = true;  
 | 
                    PopupWindowsProcessor.Instance.Add("LoginAdWin");  
 | 
                }  
 | 
                login = false;  
 | 
                return true;  
 | 
            }  
 | 
            login = false;  
 | 
            return false;  
 | 
        }  
 | 
  
 | 
        public bool CheckOpenLoginAd()  
 | 
        {  
 | 
            if (!login)  
 | 
            {  
 | 
                return false;  
 | 
            }  
 | 
            if (MapUtility.IsDungeon(PlayerDatas.Instance.baseData.MapID))  
 | 
            {  
 | 
                return false;  
 | 
            }  
 | 
            if (!todayRemind && DayRemind.Instance.GetDayRemind(DayRemind.LOGIN_AD_TIP))  
 | 
            {  
 | 
                return false;  
 | 
            }  
 | 
            if (!FuncOpen.Instance.IsFuncOpen(129))  
 | 
            {  
 | 
                return false;  
 | 
            }  
 | 
            var _id = 0;  
 | 
            if (!TryGetLoginAd(-1, out _id))  
 | 
            {  
 | 
                return false;  
 | 
            }  
 | 
            return true;  
 | 
        }  
 | 
  
 | 
        public bool TryGetLoginAd(int _presentId, out int _id)  
 | 
        {  
 | 
            _id = 0;  
 | 
            var configs = LoginAdConfig.GetValues();  
 | 
            for (int i = 0; i < configs.Count; i++)  
 | 
            {  
 | 
                var config = configs[i];  
 | 
                if (config.condition != null && config.condition.Length > 0)  
 | 
                {  
 | 
                    switch ((LoginAdCondition)config.condition[0])  
 | 
                    {  
 | 
                        case LoginAdCondition.MoneyInvest:  
 | 
                            int InvestmentGrade = moneyInvestModel.GetFairyInvestGear();  
 | 
                            if (InvestmentGrade > 0 || PlayerDatas.Instance.baseData.LV >= 500)  
 | 
                            {  
 | 
                                continue;  
 | 
                            }  
 | 
                            break;  
 | 
                        case LoginAdCondition.VipInvest:  
 | 
                            if (vipInvestModel.GetInvestInfoByType(2).investGold > 0)  
 | 
                            {  
 | 
                                continue;  
 | 
                            }  
 | 
                            break;  
 | 
                        case LoginAdCondition.ImpactRank:  
 | 
                            if (!impactRankModel.IsInImpactRank)  
 | 
                            {  
 | 
                                continue;  
 | 
                            }  
 | 
                            break;  
 | 
                        case LoginAdCondition.FirstRecharge:  
 | 
                            if (!vipModel.RequireLoginAd())  
 | 
                            {  
 | 
                                continue;  
 | 
                            }  
 | 
                            break;  
 | 
                    }  
 | 
                }  
 | 
                if (config.id > _presentId)  
 | 
                {  
 | 
                    _id = config.id;  
 | 
                    return true;  
 | 
                }  
 | 
            }  
 | 
            return false;  
 | 
        }  
 | 
  
 | 
        public void Goto(int _id)  
 | 
        {  
 | 
            var config = LoginAdConfig.Get(_id);  
 | 
            if (config != null)  
 | 
            {  
 | 
                WindowJumpMgr.Instance.WindowJumpTo((JumpUIType)config.jump);  
 | 
            }  
 | 
        }  
 | 
  
 | 
        public enum LoginAdCondition  
 | 
        {  
 | 
            MoneyInvest,  
 | 
            VipInvest,  
 | 
            ImpactRank,  
 | 
            FirstRecharge,  
 | 
            //后续IL开发添加预设  
 | 
            default1,  
 | 
            default2,  
 | 
            default3,  
 | 
            default4,  
 | 
            default5,  
 | 
            default6,  
 | 
            default7,  
 | 
            default8,  
 | 
            default9,  
 | 
            default10,  
 | 
        }  
 | 
    }  
 | 
}  
 | 
  
 |