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(); } } VipInvestModel vipInvestModel { get { return ModelCenter.Instance.GetModel(); } } ImpactRankModel impactRankModel { get { return ModelCenter.Instance.GetModel(); } } VipModel vipModel { get { return ModelCenter.Instance.GetModel(); } } 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, } } }