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 { // 所有充值豪礼子窗口信息 public Dictionary RechargeGenerousGiftInfoDict = new Dictionary(); public List winIDList = new List(); public List disposableWinIDList = new List(); 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>(FuncConfigConfig.Get("RechargeGenerousGiftEntryPoint").Numerical2); disposableWinIDList = JsonMapper.ToObject>(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().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().IsFinish(); } else if (winID == 14) { return ModelCenter.Instance.GetModel().IsFinish(); } return false; } }