少年修仙传客户端代码仓库
lcy
2024-11-12 b4cb10463bc1b1d5fa68a7bffc6ce20946ff3e37
10271 优化仙盟徽章UpdateFamilyAction和TryGetfamilyAction方法
1个文件已修改
25 ■■■■■ 已修改文件
System/FairyEmblem/FairyEmblemModel.cs 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyEmblem/FairyEmblemModel.cs
@@ -31,8 +31,8 @@
            }
        }
        //<FamilyID,<ActionType,<EmblemId,FamilyAction>>>
        public Dictionary<int, Dictionary<int, Dictionary<int, HA403_tagGCFamilyActionInfo.tagGCFamilyAction>>> familyActions = new Dictionary<int, Dictionary<int, Dictionary<int, HA403_tagGCFamilyActionInfo.tagGCFamilyAction>>>();
        //<EmblemId,FamilyAction>
        Dictionary<int, HA403_tagGCFamilyActionInfo.tagGCFamilyAction> familyActions = new Dictionary<int, HA403_tagGCFamilyActionInfo.tagGCFamilyAction>();
        public event Action ChooseEmblemIdChangeEvent;      //切换标签页
        public event Action<int, int> UpdateFamilyActionEvent;
@@ -244,12 +244,7 @@
        private bool TryGetfamilyAction(int emblemId, out HA403_tagGCFamilyActionInfo.tagGCFamilyAction familyAction)
        {
            familyAction = new HA403_tagGCFamilyActionInfo.tagGCFamilyAction();
            int familyId = (int)PlayerDatas.Instance.baseData.FamilyId;
            if (!familyActions.TryGetValue((int)PlayerDatas.Instance.baseData.FamilyId, out var familyActionDict) || familyActionDict == null)
                return false;
            if (!familyActionDict.TryGetValue(FamilyActionsType, out var infoDict) || infoDict == null)
                return false;
            if (!infoDict.TryGetValue(emblemId, out var info) || info == null)
            if (!familyActions.TryGetValue(emblemId, out var info) || info == null)
                return false;
            familyAction = info;
            return true;
@@ -281,20 +276,14 @@
            return true;
        }
        internal void UpdateFamilyAction(HA403_tagGCFamilyActionInfo vNetData)
        public void UpdateFamilyAction(HA403_tagGCFamilyActionInfo vNetData)
        {
            if (!familyActions.ContainsKey((int)vNetData.FamilyID))
            {
                familyActions[(int)vNetData.FamilyID] = new Dictionary<int, Dictionary<int, HA403_tagGCFamilyActionInfo.tagGCFamilyAction>>();
            }
            if (!familyActions[(int)vNetData.FamilyID].ContainsKey(vNetData.ActionType))
            {
                familyActions[(int)vNetData.FamilyID][vNetData.ActionType] = new Dictionary<int, HA403_tagGCFamilyActionInfo.tagGCFamilyAction>();
            }
            if (vNetData.ActionType != FamilyActionsType || PlayerDatas.Instance.baseData == null || (int)vNetData.FamilyID != (int)PlayerDatas.Instance.baseData.FamilyId)
                return;
            for (int i = 0; i < vNetData.FamilyActionList.Length; i++)
            {
                HA403_tagGCFamilyActionInfo.tagGCFamilyAction familyAction = vNetData.FamilyActionList[i];
                familyActions[(int)vNetData.FamilyID][vNetData.ActionType][(int)familyAction.Value1] = familyAction;
                familyActions[(int)familyAction.Value1] = familyAction;
            }
            UpdateFamilyActionEvent?.Invoke((int)vNetData.FamilyID, vNetData.ActionType);
        }