using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
namespace Snxxz.UI
|
{
|
[XLua.LuaCallCSharp]
|
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,
|
}
|
}
|
}
|
|