少年修仙传客户端代码仓库
hch
3 天以前 600733c8f592cb9e65f2b7a3e110ac1d686e6bfe
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
129
130
131
132
133
134
135
using vnxbqy.UI;
using System;
using System.Collections.Generic;
using LitJson;
using System.Linq;
 
public class MapLevelModel : ILModel<MapLevelModel>
{
    public List<int> realmMaps = new List<int>(); //可选境界地图
    public List<int> realmSelects = new List<int>();  //可选境界
 
 
    //确认选则后的难度
    public event Action OnSelectUpdate;
    int m_SelectIndex = 0;
    public int selectIndex
    {
        get { return m_SelectIndex; }
        set
        {
            if (m_SelectIndex != value)
            {
                m_SelectIndex = value;
                OnSelectUpdate?.Invoke();
            }
        }
    }
 
    //点击某个难度
    public event Action OnClickUpdate;
    int m_ClickIndex = 0;
    public int clickIndex
    {
        get { return m_ClickIndex; }
        set
        {
            if (m_ClickIndex != value)
            {
                m_ClickIndex = value;
                OnClickUpdate?.Invoke();
            }
        }
    }
 
    protected override void Init()
    {
        ParseConfig();
        GameEvent.playerDataRefreshEvent += OnPlayerDataRefreshEvent;
        GameEvent.afterPlayerDataInitializeEvent += OnAfterPlayerDataInitializeEvent;
    }
 
    protected override void UnInit()
    {
        GameEvent.playerDataRefreshEvent -= OnPlayerDataRefreshEvent;
        GameEvent.afterPlayerDataInitializeEvent -= OnAfterPlayerDataInitializeEvent;
    }
 
 
    void ParseConfig()
    {
        var config = FuncConfigConfig.Get("RealmDifficulty");
 
        realmMaps = JsonMapper.ToObject<int[]>(config.Numerical1).ToList();
        realmSelects = JsonMapper.ToObject<int[]>(config.Numerical2).ToList();
    }
 
    //index 对应显示列表 第一个为普通模式 m_SelectIndex
    public int GetRealmByIndex(int index)
    {
        if (index == 0)
        {
            return 0;
        }
        if (index >= realmSelects.Count)
            return realmSelects[realmSelects.Count - 1];
        return realmSelects[index - 1];
    }
 
 
    void OnPlayerDataRefreshEvent(PlayerDataType dataType)
    {
        if (dataType != PlayerDataType.default9)
        {
            return;
        }
        var selectRealm = (int)PlayerDatas.Instance.GetPlayerDataByType(PlayerDataType.default9);
        if (selectRealm == 0)
        {
            selectIndex = 0;
        }
        else
        {
            selectIndex = realmSelects.IndexOf(selectRealm - 1000) + 1;
            SysNotifyMgr.Instance.ShowTip("MapLevelSelect1", RealmConfig.Get(selectRealm - 1000).Name);
            WindowCenter.Instance.CloseIL<MapLevelSelectWin>();
            WindowCenter.Instance.CloseEx<LocalMapWin>();
        }
    }
 
    //服务端的境界难度选择保存在ExAttr18;上线要通过0102获取,改变通过0418
    void OnAfterPlayerDataInitializeEvent()
    {
        var selectRealm = PlayerDatas.Instance.baseData.mapRealmSelect;
        if (selectRealm == 0)
        {
            selectIndex = 0;
        }
        else
        {
            selectIndex = realmSelects.IndexOf(selectRealm - 1000) + 1;
        }
    }
 
    public int GetSelectIndex()
    {
        return selectIndex;
    }
 
    public int GetSelectLowLV(int npcID)
    {
        var realm = GetRealmByIndex(selectIndex);
        var config = ILNPCRealmStrengthenConfig.GetConfig(new Int2(npcID, realm));
        if (config == null) return 0;
        return config.LowLV;
    }
 
    public int GetSelectHighestLV(int npcID)
    {
        var realm = GetRealmByIndex(selectIndex);
        var config = ILNPCRealmStrengthenConfig.GetConfig(new Int2(npcID, realm));
        if (config == null) return 0;
        return config.HighestLV;
    }
 
}