using vnxbqy.UI;
|
using System.Collections.Generic;
|
using System.Linq;
|
using LitJson;
|
|
public class RechargeGenerousGiftWinInfo
|
{
|
public string WinName;
|
public string IconFileName;
|
public string TitleFileName;
|
public int RedPointID;
|
public int FuncID;
|
}
|
|
public class RechargeGenerousGiftModel : ILModel<RechargeGenerousGiftModel>
|
{
|
//<winID,子窗口信息> 所有充值豪礼子窗口信息
|
public Dictionary<int, RechargeGenerousGiftWinInfo> RechargeGenerousGiftInfoDict = new Dictionary<int, RechargeGenerousGiftWinInfo>();
|
public List<int> winIDList = new List<int>();
|
public List<int> disposableWinIDList = new List<int>();
|
Redpoint redpointEntryPoint = new Redpoint(MainRedPoint.RechargeGenerousGiftWinRedpoint);
|
protected override void Init()
|
{
|
var tempDict = JsonMapper.ToObject(FuncConfigConfig.Get("RechargeGenerousGiftEntryPoint").Numerical1);
|
var arr = tempDict.Keys.ToArray();
|
for (int i = 0; i < arr.Length; i++)
|
{
|
string winID = arr[i];
|
string[] splitStrings = tempDict[winID].ToString().Split('|');
|
RechargeGenerousGiftWinInfo info = new RechargeGenerousGiftWinInfo();
|
info.WinName = splitStrings[0];
|
info.IconFileName = splitStrings[1];
|
info.TitleFileName = splitStrings[2];
|
info.RedPointID = int.Parse(splitStrings[3]);
|
info.FuncID = int.Parse(splitStrings[4]);
|
RechargeGenerousGiftInfoDict[int.Parse(winID)] = info;
|
}
|
winIDList = JsonMapper.ToObject<List<int>>(FuncConfigConfig.Get("RechargeGenerousGiftEntryPoint").Numerical2);
|
disposableWinIDList = JsonMapper.ToObject<List<int>>(FuncConfigConfig.Get("RechargeGenerousGiftEntryPoint").Numerical3);
|
}
|
protected override void UnInit()
|
{
|
|
}
|
|
//这个子窗口是否可进入
|
public bool IsOpen(int winID)
|
{
|
if (!RechargeGenerousGiftInfoDict.TryGetValue(winID, out var info))
|
return false;
|
//这个子窗口功能/活动开启了吗
|
if (!IsFuncOpen(info.FuncID))
|
return false;
|
//这个子窗口是一次性奖励 且 子窗口所有奖励都以领取
|
if (disposableWinIDList.Contains(winID) && IsDisposableFinish(winID))
|
return false;
|
return true;
|
}
|
|
//这个子窗口功能/活动开启了吗
|
public bool IsFuncOpen(int funcID)
|
{
|
if (funcID == -1)
|
{
|
return Buy1Free5Model.Instance.IsOpen();
|
}
|
else if (funcID == -2)
|
{
|
if (OperationTimeHepler.Instance.SatisfyOpenCondition(Operation.CZBMGift))
|
{
|
return true;
|
}
|
return false;
|
}
|
else if (funcID == -3)
|
{
|
return ModelCenter.Instance.GetModel<FuyuanSumRechargeModel>().IsOpen;
|
}
|
else if (funcID == -4)
|
{
|
OperationBase operationBase;
|
if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.default35, out operationBase))
|
{
|
OperationRechargeGiftAct operation = operationBase as OperationRechargeGiftAct;
|
if (PlayerDatas.Instance.baseData.LV >= operationBase.limitLv)
|
return true;
|
}
|
return false;
|
}
|
else if (funcID > 0)
|
{
|
return FuncOpen.Instance.IsFuncOpen(funcID);
|
}
|
return false;
|
}
|
|
//是否这个子窗口所有奖励都以领取
|
public bool IsDisposableFinish(int winID)
|
{
|
if (winID == 1)
|
{
|
return LvZhanlingModel.Instance.IsFinish();
|
}
|
else if (winID == 2)
|
{
|
return RealmLVZhanlingModel.Instance.IsFinish();
|
}
|
else if (winID == 3)
|
{
|
return CelestialStarTowerModel.Instance.IsFinish();
|
}
|
else if (winID == 4)
|
{
|
return GuBaoTotalStarsModel.Instance.IsFinish();
|
}
|
else if (winID == 13)
|
{
|
return ModelCenter.Instance.GetModel<LoginZhanLingModel>().IsFinish();
|
}
|
else if (winID == 14)
|
{
|
return ModelCenter.Instance.GetModel<PhantasmPavilionZhanLingModel>().IsFinish();
|
}
|
return false;
|
}
|
|
}
|
|