少年修仙传客户端代码仓库
hch
2024-11-14 0e7cbfaef3b1445da4bf02fcfd80749d0caec1df
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
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();
        }
        return false;
    }
}