少年修仙传客户端代码仓库
lcy
2024-12-16 a39c35fc6449430cd02bccb681c4a0a880e46cd9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
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;
    }
 
}