hexiaojie 8 miesięcy temu
rodzic
commit
f6eb2d45bc

+ 6 - 5
GameClient/Assets/Game/HotUpdate/DressUp/DressUpLayerOperation.cs

@@ -1,5 +1,6 @@
 using ET;
 using System.Collections.Generic;
+using cfg.GfgCfg;
 using UnityEngine;
 using YooAsset;
 
@@ -81,7 +82,7 @@ namespace GFGGame
                 DressUpRemoveOperation removeOperation = t as DressUpRemoveOperation;
                 if(removeOperation != null && this.itemCfg != null)
                 {
-                    if(removeOperation.itemID == this.itemCfg.id)
+                    if(removeOperation.itemID == this.itemCfg.Id)
                     {
                         if(removeOperation.parentObj == this.parentObj)
                         {
@@ -249,13 +250,13 @@ namespace GFGGame
         private void UpdateLayer()
         {
             //LogUtil.LogEditor($"add UpdateLayer {itemCfg.id} layerId {layerId}");
-            int sortingOrder = ItemTypeCfgArray.Instance.GetSortingOrder(itemCfg.subType, layerId);
+            int sortingOrder = ItemTypeCfgArray.Instance.GetSortingOrder(itemCfg.SubType, layerId);
             //清理旧的
             var spritObjName = DressUpUtil.GetSpriteName(itemCfg, layerId);
             DressUpUtil.TryRemoveSprite(parentObj, spritObjName);
-            var aniObjName = string.Format(DressUpUtil.FORMAT_ANIMATION_NAME, itemCfg.id, layerId);
+            var aniObjName = string.Format(DressUpUtil.FORMAT_ANIMATION_NAME, itemCfg.Id, layerId);
             DressUpUtil.TryRemoveObj(parentObj, aniObjName);
-            string effectObjName = string.Format(DressUpUtil.FORMAT_EFFECT_OBJ_NAME, itemCfg.id, layerId);
+            string effectObjName = string.Format(DressUpUtil.FORMAT_EFFECT_OBJ_NAME, itemCfg.Id, layerId);
             DressUpUtil.TryRemoveObj(parentObj, effectObjName);
             //添加新的
             if(!string.IsNullOrEmpty(this.resPath))
@@ -266,7 +267,7 @@ namespace GFGGame
                 }
                 else
                 {
-                    string ext = ItemUtil.GetItemResExt(itemCfg.itemType, itemCfg.subType);
+                    string ext = ItemUtil.GetItemResExt(itemCfg.ItemType, itemCfg.SubType);
                     DressUpUtil.AddSpriteObj(resPath, spritObjName, parentObj, sortingOrder, needSetMask);
                 }
             }

+ 20 - 19
GameClient/Assets/Game/HotUpdate/DressUp/DressUpObj.cs

@@ -2,6 +2,7 @@ using System.Collections.Generic;
 using UnityEngine;
 using System;
 using System.Linq;
+using cfg.GfgCfg;
 using ET;
 using FairyGUI;
 using ProtoBuf.Meta;
@@ -154,12 +155,12 @@ namespace GFGGame
         /// <returns></returns>
         public bool CheckSuitIsOn(int id)
         {
-            SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(id);
+            SuitCfg suitCfg = CommonDataManager.Tables.TblSuitCfg.GetOrDefault(id);
             if (suitCfg == null)
             {
                 return false;
             }
-            int[] items = suitCfg.partsArr;
+            List<int> items = suitCfg.Parts;
             foreach (int itemId in items)
             {
                 if (_dressUpData.actionId == id)
@@ -236,7 +237,7 @@ namespace GFGGame
             {
                 checkDefaultItem();
             }
-            RoleLevelCfg roleLevelCfg = RoleLevelCfgArray.Instance.GetCfg(GameGlobal.myNumericComponent.GetAsInt(NumericType.Lvl));
+            //RoleLevelCfg roleLevelCfg = RoleLevelCfgArray.Instance.GetCfg(GameGlobal.myNumericComponent.GetAsInt(NumericType.Lvl));
             // FightDataManager.Instance.score = roleLevelCfg.baseScore;
             // foreach (int itemId in _dressUpData.itemList)
             // {
@@ -267,7 +268,7 @@ namespace GFGGame
         /// <param name="CheckOwn">是否只显示主角拥有的部件</param>
         public void PutOnSuitCfg(int suitId, bool tryShowAction, int[] excludeType = null, bool showOptional = true, bool CheckOwn = true,bool isDress = false)
         {
-            SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(suitId);
+            SuitCfg suitCfg = CommonDataManager.Tables.TblSuitCfg.GetOrDefault(suitId);
             if(suitCfg == null)
             {
                 return;
@@ -312,11 +313,11 @@ namespace GFGGame
             }
             if (changeToStand)
             {
-                SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(tempActionId);
-                List<int> items = new List<int>(suitCfg.partsArr);
-                if (suitCfg.partsOptionalArr != null && suitCfg.partsOptionalArr.Length > 0)
+                SuitCfg suitCfg = CommonDataManager.Tables.TblSuitCfg.GetOrDefault(tempActionId);
+                List<int> items = new List<int>(suitCfg.Parts);
+                if (suitCfg.PartsOptional != null && suitCfg.PartsOptional.Count > 0)
                 {
-                    items.AddRange(suitCfg.partsOptionalArr);
+                    items.AddRange(suitCfg.PartsOptional);
                 }
                 foreach (int itemId in items)
                 {
@@ -453,8 +454,8 @@ namespace GFGGame
 
                 if (actionId != 0)
                 {
-                    ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemId);
-                    Transform effGameobj = _sceneObj.transform.Find(string.Format("Role/Body_eff/{0}", itemCfg.res));
+                    ItemCfg itemCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(itemId);
+                    Transform effGameobj = _sceneObj.transform.Find(string.Format("Role/Body_eff/{0}", itemCfg.Res));
                     if (effGameobj != null)
                     {
                         if (effGameobj.gameObject != null)
@@ -487,8 +488,8 @@ namespace GFGGame
 
                 if (actionId != 0)
                 {
-                    ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemId);
-                    Transform effGameobj = _sceneObj.transform.Find(string.Format("Role/Body_eff/{0}", itemCfg.res));
+                    ItemCfg itemCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(itemId);
+                    Transform effGameobj = _sceneObj.transform.Find(string.Format("Role/Body_eff/{0}", itemCfg.Res));
                     if (effGameobj != null)
                     {
                         if (effGameobj.gameObject != null)
@@ -502,13 +503,13 @@ namespace GFGGame
 
         private void CheckRemoveSameType(int subType)
         {
-            ItemTypeCfg itemTypeCfg = ItemTypeCfgArray.Instance.GetCfg(subType);
+            ItemTypeCfg itemTypeCfg = CommonDataManager.Tables.TblItemTypeCfg.GetOrDefault(subType);
             int count = 0;
             int firstTeshuId = 0;
             int maxNum = 1;
-            if(itemTypeCfg != null && itemTypeCfg.maxNum > 0)
+            if(itemTypeCfg != null && itemTypeCfg.MaxNum > 0)
             {
-                maxNum = itemTypeCfg.maxNum;
+                maxNum = itemTypeCfg.MaxNum;
             }
             else if(subType > ConstDressUpItemType.TE_SHU)
             {
@@ -520,7 +521,7 @@ namespace GFGGame
                 int itemSubType = ItemUtilCS.GetItemSubType(itemID);
                 
                 bool isSameType = false;
-                if(itemTypeCfg != null && itemTypeCfg.maxNum > 0)
+                if(itemTypeCfg != null && itemTypeCfg.MaxNum > 0)
                 {
                     if(itemSubType == subType)
                     {
@@ -706,9 +707,9 @@ namespace GFGGame
             string actionRes = null;
             if (IsAction)
             {
-                SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(_dressUpData.actionId);
-                var hasAniRes = ResPathUtil.CheckDressUpAnimationResExist(suitCfg.aniRes);
-                actionRes = hasAniRes ? suitCfg.aniRes : null;
+                SuitCfg suitCfg = CommonDataManager.Tables.TblSuitCfg.GetOrDefault(_dressUpData.actionId);
+                var hasAniRes = ResPathUtil.CheckDressUpAnimationResExist(suitCfg.AniRes);
+                actionRes = hasAniRes ? suitCfg.AniRes : null;
             }
             var handler = DressUpUtil.UpdateBodyAsync(actionRes, _sceneObj, _needSetMask, _roleObj, itemIdLianYiQun);
             TryAddHandler(handler);

+ 1 - 1
GameClient/Assets/Game/HotUpdate/DressUp/DressUpRemoveOperation.cs

@@ -44,7 +44,7 @@ namespace GFGGame
             if (layerOperation != null && layerOperation.actionType == DressUpLayerOperation.EAction.Layer)
 {
                 return (layerOperation.itemCfg != null 
-                    && this.itemID == layerOperation.itemCfg.id
+                    && this.itemID == layerOperation.itemCfg.Id
                     && this.parentObj == layerOperation.parentObj);
             }
             var removeOperation = t as DressUpRemoveOperation;

+ 29 - 28
GameClient/Assets/Game/HotUpdate/DressUp/DressUpUtil.cs

@@ -5,6 +5,7 @@ using UnityEngine.Rendering;
 using YooAsset;
 using System.Collections.Generic;
 using System;
+using cfg.GfgCfg;
 
 namespace GFGGame
 {
@@ -24,12 +25,12 @@ namespace GFGGame
 
         public static List<DressUpLayerOperation> AddItemAsync(int itemID, GameObject sceneObj, bool needSetMask = false, bool showAni = true, GameObject parentObj = null, int resLayer = 0)
         {
-            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemID);
+            ItemCfg itemCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(itemID);
             if (itemCfg == null) return null;
 
             if (parentObj == null)
             {
-                if (itemCfg.subType == ConstDressUpItemType.BEI_JING || DressUpMenuItemCfg1Array.Instance.CheckIsSceneTypeBySubType(itemCfg.subType))
+                if (itemCfg.SubType == ConstDressUpItemType.BEI_JING || DressUpMenuItemCfg1Array.Instance.CheckIsSceneTypeBySubType(itemCfg.SubType))
                 {
                     parentObj = sceneObj;
                 }
@@ -40,7 +41,7 @@ namespace GFGGame
                     parentObj = role.gameObject;
                 }
             }
-            showAni = showAni || itemCfg.subType == ConstDressUpItemType.ZHUANG_RONG;
+            showAni = showAni || itemCfg.SubType == ConstDressUpItemType.ZHUANG_RONG;
             List<DressUpLayerOperation> handlers = new List<DressUpLayerOperation>();
             DressUpLayerOperation handler;
             if (resLayer > 0)
@@ -49,13 +50,13 @@ namespace GFGGame
                 switch (resLayer)
                 {
                     case 1:
-                        layerName = itemCfg.resLayer1;
+                        layerName = itemCfg.ResLayer1;
                         break;
                     case 2:
-                        layerName = itemCfg.resLayer2;
+                        layerName = itemCfg.ResLayer2;
                         break;
                     case 3:
-                        layerName = itemCfg.resLayer3;
+                        layerName = itemCfg.ResLayer3;
                         break;
                 }
                 if (!string.IsNullOrEmpty(layerName))
@@ -67,20 +68,20 @@ namespace GFGGame
             else
             {
                 //普通层
-                if (!string.IsNullOrEmpty(itemCfg.resLayer1))
+                if (!string.IsNullOrEmpty(itemCfg.ResLayer1))
                 {
                     handler = UpdateLayerResAsync(itemCfg, parentObj, 1, needSetMask, showAni);
                     if (handler != null) handlers.Add(handler);
                 }
                 //第二层
-                if (!string.IsNullOrEmpty(itemCfg.resLayer2))
+                if (!string.IsNullOrEmpty(itemCfg.ResLayer2))
                 {
 
                     handler = UpdateLayerResAsync(itemCfg, parentObj, 2, needSetMask, showAni);
                     if (handler != null) handlers.Add(handler);
                 }
                 //第三层
-                if (!string.IsNullOrEmpty(itemCfg.resLayer3))
+                if (!string.IsNullOrEmpty(itemCfg.ResLayer3))
                 {
 
                     handler = UpdateLayerResAsync(itemCfg, parentObj, 3, needSetMask, showAni);
@@ -96,58 +97,58 @@ namespace GFGGame
 
         public static string GetSpriteName(ItemCfg itemCfg, int layer)
         {
-            if(itemCfg.subType == ConstDressUpItemType.BEI_JING)
+            if(itemCfg.SubType == ConstDressUpItemType.BEI_JING)
             {
                 return "Bg";
             }
-            return string.Format(FORMAT_SPRITE_NAME, itemCfg.id, layer);
+            return string.Format(FORMAT_SPRITE_NAME, itemCfg.Id, layer);
         }
 
         public static void RemoveItem(int itemID, GameObject parentObj)
         {
-            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemID);
+            ItemCfg itemCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(itemID);
             if (itemCfg == null || parentObj== null) return;
             string spritObjName;
             string aniObjName;
             //默认层
-            if (!string.IsNullOrEmpty(itemCfg.resLayer1))
+            if (!string.IsNullOrEmpty(itemCfg.ResLayer1))
             {
                 spritObjName = GetSpriteName(itemCfg, 1);
                 TryRemoveSprite(parentObj, spritObjName);
-                aniObjName = string.Format(FORMAT_ANIMATION_NAME, itemCfg.id, 1);
+                aniObjName = string.Format(FORMAT_ANIMATION_NAME, itemCfg.Id, 1);
                 TryRemoveObj(parentObj, aniObjName);
-                aniObjName = string.Format(FORMAT_EFFECT_OBJ_NAME, itemCfg.id, 1);
+                aniObjName = string.Format(FORMAT_EFFECT_OBJ_NAME, itemCfg.Id, 1);
                 TryRemoveObj(parentObj, aniObjName);
             }
             //特殊层
-            if (!string.IsNullOrEmpty(itemCfg.resLayer2))
+            if (!string.IsNullOrEmpty(itemCfg.ResLayer2))
             {
                 spritObjName = GetSpriteName(itemCfg, 2);
                 TryRemoveSprite(parentObj, spritObjName);
-                aniObjName = string.Format(FORMAT_ANIMATION_NAME, itemCfg.id, 2);
+                aniObjName = string.Format(FORMAT_ANIMATION_NAME, itemCfg.Id, 2);
                 TryRemoveObj(parentObj, aniObjName);
-                aniObjName = string.Format(FORMAT_EFFECT_OBJ_NAME, itemCfg.id, 2);
+                aniObjName = string.Format(FORMAT_EFFECT_OBJ_NAME, itemCfg.Id, 2);
                 TryRemoveObj(parentObj, aniObjName);
             }
             //第三层
-            if (!string.IsNullOrEmpty(itemCfg.resLayer3))
+            if (!string.IsNullOrEmpty(itemCfg.ResLayer3))
             {
                 spritObjName = GetSpriteName(itemCfg, 3);
                 TryRemoveSprite(parentObj, spritObjName);
-                aniObjName = string.Format(FORMAT_ANIMATION_NAME, itemCfg.id, 3);
+                aniObjName = string.Format(FORMAT_ANIMATION_NAME, itemCfg.Id, 3);
                 TryRemoveObj(parentObj, aniObjName);
-                aniObjName = string.Format(FORMAT_EFFECT_OBJ_NAME, itemCfg.id, 3);
+                aniObjName = string.Format(FORMAT_EFFECT_OBJ_NAME, itemCfg.Id, 3);
                 TryRemoveObj(parentObj, aniObjName);
             }
         }
 
         public static DressUpRemoveOperation RemoveItemAsync(int itemID, GameObject sceneObj, GameObject parentObj = null)
         {
-            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemID);
+            ItemCfg itemCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(itemID);
             if (itemCfg == null) return null;
             if (parentObj == null)
             {
-                if (itemCfg.subType == ConstDressUpItemType.BEI_JING || DressUpMenuItemCfg1Array.Instance.CheckIsSceneTypeBySubType(itemCfg.subType))
+                if (itemCfg.SubType == ConstDressUpItemType.BEI_JING || DressUpMenuItemCfg1Array.Instance.CheckIsSceneTypeBySubType(itemCfg.SubType))
                 {
                     parentObj = sceneObj;
                 }
@@ -214,7 +215,7 @@ namespace GFGGame
                 bool hideBody = false;
                 if(itemIdLianYiQun > 0)
                 {
-                    ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemIdLianYiQun);
+                    ItemCfg itemCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(itemIdLianYiQun);
                     hideBody = itemCfg.HideBody > 0;
                 }
                 if(hideBody)
@@ -526,17 +527,17 @@ namespace GFGGame
 
         public static List<int> GetSuitItems(int suitId, bool isAction, int[] excludeType = null, bool showOptional = true, bool CheckOwn = true,bool isDress = false)
         {
-            SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(suitId);
+            SuitCfg suitCfg = CommonDataManager.Tables.TblSuitCfg.GetOrDefault(suitId);
             if (suitCfg == null)
             {
                 return null;
             }
-            List<int> items = new List<int>(suitCfg.partsArr);
+            List<int> items = new List<int>(suitCfg.Parts);
             if (showOptional)
             {
-                if (suitCfg.partsOptionalArr != null && suitCfg.partsOptionalArr.Length > 0)
+                if (suitCfg.PartsOptional != null && suitCfg.PartsOptional.Count > 0)
                 {
-                    items.AddRange(suitCfg.partsOptionalArr);
+                    items.AddRange(suitCfg.PartsOptional);
                 }
             }
             int subType = 0;

+ 51 - 50
GameClient/Assets/Game/HotUpdate/DressUp/MyDressUpHelper.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using cfg.GfgCfg;
 using ET;
 
 namespace GFGGame
@@ -56,25 +57,25 @@ namespace GFGGame
             for (int i = 0; i < equipDatas.Count; i++)
             {
                 var itemId = equipDatas[i];
-                ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemId);
+                ItemCfg itemCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(itemId);
                 if (itemCfg == null)
                 {
                     Log.Warning($"id为 {itemId} 的物品没有配置,请查找原因!");
                     continue;
                 }
-                if (itemCfg.subType == ConstDressUpItemType.LIAN_YI_QUN && itemCfg.id != ConstItemID.DEFULT_LIAN_YI_QUN)
+                if (itemCfg.SubType == ConstDressUpItemType.LIAN_YI_QUN && itemCfg.Id != ConstItemID.DEFULT_LIAN_YI_QUN)
                 {
                     isLianYiQun = true; break;
                 }
-                if (itemCfg.subType == ConstDressUpItemType.SHANG_YI)
+                if (itemCfg.SubType == ConstDressUpItemType.SHANG_YI)
                 {
                     isShangYi = true;
                 }
-                if (itemCfg.subType == ConstDressUpItemType.NEI_DA && itemCfg.id != ConstItemID.DEFULT_NEI_DA)
+                if (itemCfg.SubType == ConstDressUpItemType.NEI_DA && itemCfg.Id != ConstItemID.DEFULT_NEI_DA)
                 {
                     isShangYi = true;
                 }
-                if (itemCfg.subType == ConstDressUpItemType.XIA_ZHUANG && itemCfg.id != ConstItemID.DEFULT_XIA_ZHUANG)
+                if (itemCfg.SubType == ConstDressUpItemType.XIA_ZHUANG && itemCfg.Id != ConstItemID.DEFULT_XIA_ZHUANG)
                 {
                     isXiaZhuang = true;
                 }
@@ -84,15 +85,15 @@ namespace GFGGame
 
         public static bool CheckEquipedFightNeeded()
         {
-            StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(InstanceZonesDataManager.currentLevelCfgId);
-            StoryFightCfg fightCfg = StoryFightCfgArray.Instance.GetCfg(levelCfg.fightID);
-            if (fightCfg.needItemId > 0)
+            StoryLevelCfg levelCfg = CommonDataManager.Tables.TblStoryLevelCfg.GetOrDefault(InstanceZonesDataManager.currentLevelCfgId);
+            StoryFightCfg fightCfg = CommonDataManager.Tables.TblStoryFightCfg.GetOrDefault(int.Parse(levelCfg.FightID));
+            if (fightCfg.NeedItemId > 0)
             {
-                return dressUpObj.CheckDressUpItemIsOn(fightCfg.needItemId);
+                return dressUpObj.CheckDressUpItemIsOn(fightCfg.NeedItemId);
             }
-            else if (fightCfg.needSuitId > 0)
+            else if (fightCfg.NeedSuitId > 0)
             {
-                return dressUpObj.CheckSuitIsOn(fightCfg.needSuitId);
+                return dressUpObj.CheckSuitIsOn(fightCfg.NeedSuitId);
             }
             return true;
         }
@@ -126,24 +127,24 @@ namespace GFGGame
                 if (key == ConstDressUpItemType.SHANG_YI || key == ConstDressUpItemType.XIA_ZHUANG || key == ConstDressUpItemType.LIAN_YI_QUN) continue;
                 recommendList.AddRange(itemsDic[key]);
             }
-            StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(InstanceZonesDataManager.currentLevelCfgId);
+            StoryLevelCfg levelCfg = CommonDataManager.Tables.TblStoryLevelCfg.GetOrDefault(InstanceZonesDataManager.currentLevelCfgId);
             //StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(id);
-            StoryFightCfg fightCfg = StoryFightCfgArray.Instance.GetCfg(levelCfg.fightID);
-            SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(fightCfg.needSuitId);
-            int[] suitParts = suitCfg == null ? new int[] { } : suitCfg.partsArr;
+            StoryFightCfg fightCfg = CommonDataManager.Tables.TblStoryFightCfg.GetOrDefault(int.Parse(levelCfg.FightID));
+            SuitCfg suitCfg = CommonDataManager.Tables.TblSuitCfg.GetOrDefault(fightCfg.NeedSuitId);
+            int[] suitParts = suitCfg == null ? new int[] { } : suitCfg.Parts.ToArray();
             int shangyiId = itemsDic.ContainsKey(ConstDressUpItemType.SHANG_YI) && itemsDic[ConstDressUpItemType.SHANG_YI].Count > 0 ? itemsDic[ConstDressUpItemType.SHANG_YI][0] : 0;
             int xiazhuangId = itemsDic.ContainsKey(ConstDressUpItemType.XIA_ZHUANG) && itemsDic[ConstDressUpItemType.XIA_ZHUANG].Count > 0 ? itemsDic[ConstDressUpItemType.XIA_ZHUANG][0] : ConstItemID.DEFULT_XIA_ZHUANG;
             int neidaId = itemsDic.ContainsKey(ConstDressUpItemType.NEI_DA) && itemsDic[ConstDressUpItemType.NEI_DA].Count > 0 ? itemsDic[ConstDressUpItemType.NEI_DA][0] : ConstItemID.DEFULT_NEI_DA;
             int lianyiqunId = itemsDic.ContainsKey(ConstDressUpItemType.LIAN_YI_QUN) && itemsDic[ConstDressUpItemType.LIAN_YI_QUN].Count > 0 ? itemsDic[ConstDressUpItemType.LIAN_YI_QUN][0] : ConstItemID.DEFULT_LIAN_YI_QUN;
 
-            if (fightCfg.needItemId > 0 && (shangyiId == fightCfg.needItemId || xiazhuangId == fightCfg.needItemId || neidaId == fightCfg.needItemId) ||
-            fightCfg.needSuitId > 0 && (Array.IndexOf(suitParts, shangyiId) >= 0 || Array.IndexOf(suitParts, xiazhuangId) >= 0 || Array.IndexOf(suitParts, neidaId) >= 0))
+            if (fightCfg.NeedItemId > 0 && (shangyiId == fightCfg.NeedItemId || xiazhuangId == fightCfg.NeedItemId || neidaId == fightCfg.NeedItemId) ||
+            fightCfg.NeedSuitId > 0 && (Array.IndexOf(suitParts, shangyiId) >= 0 || Array.IndexOf(suitParts, xiazhuangId) >= 0 || Array.IndexOf(suitParts, neidaId) >= 0))
             {
                 if (shangyiId > 0) recommendList.Add(shangyiId);
                 recommendList.Add(xiazhuangId);
                 recommendList.Add(neidaId);
             }
-            else if (fightCfg.needItemId > 0 && lianyiqunId == fightCfg.needItemId || fightCfg.needSuitId > 0 && Array.IndexOf(suitParts, lianyiqunId) >= 0)
+            else if (fightCfg.NeedItemId > 0 && lianyiqunId == fightCfg.NeedItemId || fightCfg.NeedSuitId > 0 && Array.IndexOf(suitParts, lianyiqunId) >= 0)
             {
                 recommendList.Add(lianyiqunId);
             }
@@ -170,23 +171,23 @@ namespace GFGGame
         private static Dictionary<int, List<int>> GetRecommendItems( int id = 0)
         {
             GetClassifyDictionaty(out Dictionary<int, List<int>> needListBySubType, out Dictionary<int, List<int>> recommendListBySubType);
-            DressUpMenuItemCfg1[] menuCfg1s = DressUpMenuItemCfg1Array.Instance.dataArray;
+            List<DressUpMenuItemCfg1> menuCfg1s = CommonDataManager.Tables.TblDressUpMenuItemCfg1.DataList ;
             Dictionary<int, List<int>> itemsDic = new Dictionary<int, List<int>>();
-            for (int i = 0; i < menuCfg1s.Length - 4; i++)//最后四个不处理(套装、动作、道具、背景)
+            for (int i = 0; i < menuCfg1s.Count - 4; i++)//最后四个不处理(套装、动作、道具、背景)
             {
                 DressUpMenuItemCfg1 menuCfg1 = menuCfg1s[i];
                 List<int> recommendItems = new List<int>();
-                itemsDic[menuCfg1.id] = recommendItems;
-                if (menuCfg1.subMenusArr.Length == 0)//普通部件有必需品就用必需品,没有必需品就用推荐品
+                itemsDic[menuCfg1.Id] = recommendItems;
+                if (menuCfg1.SubMenus.Count == 0)//普通部件有必需品就用必需品,没有必需品就用推荐品
                 {
-                    if (needListBySubType.ContainsKey(menuCfg1.type) && needListBySubType[menuCfg1.type].Count > 0)
+                    if (needListBySubType.ContainsKey(menuCfg1.Type) && needListBySubType[menuCfg1.Type].Count > 0)
                     {
-                        recommendItems.Add(needListBySubType[menuCfg1.type][0]);
+                        recommendItems.Add(needListBySubType[menuCfg1.Type][0]);
                         continue;
                     }
-                    if (recommendListBySubType.ContainsKey(menuCfg1.type) && recommendListBySubType[menuCfg1.type].Count > 0)
+                    if (recommendListBySubType.ContainsKey(menuCfg1.Type) && recommendListBySubType[menuCfg1.Type].Count > 0)
                     {
-                        recommendItems.Add(recommendListBySubType[menuCfg1.type][0]);
+                        recommendItems.Add(recommendListBySubType[menuCfg1.Type][0]);
                         continue;
                     }
                 }
@@ -194,44 +195,44 @@ namespace GFGGame
                 {
                     List<int> needOrnament = new List<int>();//饰品的必需品列表
                     List<int> recommecdOrnament = new List<int>();//饰品的推荐品列表
-                    for (int j = 0; j < menuCfg1.subMenusArr.Length; j++)
+                    for (int j = 0; j < menuCfg1.SubMenus.Count; j++)
                     {
-                        DressUpMenuItemCfg2 menuCfg2 = DressUpMenuItemCfg2Array.Instance.GetCfg(menuCfg1.subMenusArr[j]);
+                        DressUpMenuItemCfg2 menuCfg2 = CommonDataManager.Tables.TblDressUpMenuItemCfg2.GetOrDefault(menuCfg1.SubMenus[j]);
 
-                        if (menuCfg2.type != (int)ConstDressUpItemType.TE_SHU)
+                        if (menuCfg2.Type != (int)ConstDressUpItemType.TE_SHU)
                         {
-                            if (needListBySubType.ContainsKey(menuCfg2.type) && needListBySubType[menuCfg2.type].Count > 0)
+                            if (needListBySubType.ContainsKey(menuCfg2.Type) && needListBySubType[menuCfg2.Type].Count > 0)
                             {
-                                needOrnament.AddRange(needListBySubType[menuCfg2.type]);
+                                needOrnament.AddRange(needListBySubType[menuCfg2.Type]);
                                 continue;
                             }
-                            if (recommendListBySubType.ContainsKey(menuCfg2.type) && recommendListBySubType[menuCfg2.type].Count > 0)
+                            if (recommendListBySubType.ContainsKey(menuCfg2.Type) && recommendListBySubType[menuCfg2.Type].Count > 0)
                             {
-                                recommecdOrnament.AddRange(recommendListBySubType[menuCfg2.type]);
+                                recommecdOrnament.AddRange(recommendListBySubType[menuCfg2.Type]);
                                 continue;
                             }
                         }
                         else
                         {
-                            if (needListBySubType.ContainsKey(menuCfg2.type) && needListBySubType[menuCfg2.type].Count > 0)
+                            if (needListBySubType.ContainsKey(menuCfg2.Type) && needListBySubType[menuCfg2.Type].Count > 0)
                             {
-                                needOrnament.AddRange(needListBySubType[menuCfg2.type]);
+                                needOrnament.AddRange(needListBySubType[menuCfg2.Type]);
                             }
-                            if (recommendListBySubType.ContainsKey(menuCfg2.type) && recommendListBySubType[menuCfg2.type].Count > 0)
+                            if (recommendListBySubType.ContainsKey(menuCfg2.Type) && recommendListBySubType[menuCfg2.Type].Count > 0)
                             {
-                                int needCount = Math.Min(recommendListBySubType[menuCfg2.type].Count, 3 - needListBySubType[menuCfg2.type].Count);
+                                int needCount = Math.Min(recommendListBySubType[menuCfg2.Type].Count, 3 - needListBySubType[menuCfg2.Type].Count);
                                 //特殊部件必需品不足三件,从推荐品里补足
-                                recommendListBySubType[menuCfg2.type] = recommendListBySubType[menuCfg2.type].GetRange(0, needCount);
-                                recommecdOrnament.AddRange(recommendListBySubType[menuCfg2.type]);
+                                recommendListBySubType[menuCfg2.Type] = recommendListBySubType[menuCfg2.Type].GetRange(0, needCount);
+                                recommecdOrnament.AddRange(recommendListBySubType[menuCfg2.Type]);
                             }
                         }
                     }
                     DressUpMenuItemDataManager.SortItemListByHighScore(needOrnament);
-                    needOrnament = needOrnament.GetRange(0, Math.Min(needOrnament.Count, GlobalCfgArray.globalCfg.dressLimitCount));
+                    needOrnament = needOrnament.GetRange(0, Math.Min(needOrnament.Count, CommonDataManager.Tables.TblGlobalCfg.DressLimitCount));
                     recommendItems.AddRange(needOrnament);
 
                     DressUpMenuItemDataManager.SortItemListByHighScore(recommecdOrnament);
-                    recommecdOrnament = recommecdOrnament.GetRange(0, Math.Min(recommecdOrnament.Count, GlobalCfgArray.globalCfg.dressLimitCount - needOrnament.Count));
+                    recommecdOrnament = recommecdOrnament.GetRange(0, Math.Min(recommecdOrnament.Count, CommonDataManager.Tables.TblGlobalCfg.DressLimitCount - needOrnament.Count));
                     recommendItems.AddRange(recommecdOrnament);
 
                 }
@@ -242,8 +243,8 @@ namespace GFGGame
         //获取本关卡所有必需品Dictionary和每个类型的最高分推荐Dictionary,两个Dictionary内部件互斥(必需品不会出现在推荐品里)
         private static void GetClassifyDictionaty(out Dictionary<int, List<int>> needListBySubType, out Dictionary<int, List<int>> recommendListBySubType)
         {
-            StoryLevelCfg levelCfg = StoryLevelCfgArray.Instance.GetCfg(InstanceZonesDataManager.currentLevelCfgId);
-            StoryFightCfg fightCfg = StoryFightCfgArray.Instance.GetCfg(levelCfg.fightID);
+            StoryLevelCfg levelCfg = CommonDataManager.Tables.TblStoryLevelCfg.GetOrDefault(InstanceZonesDataManager.currentLevelCfgId);
+            StoryFightCfg fightCfg = CommonDataManager.Tables.TblStoryFightCfg.GetOrDefault(int.Parse(levelCfg.FightID));
 
             needListBySubType = new Dictionary<int, List<int>>();
             recommendListBySubType = new Dictionary<int, List<int>>();
@@ -260,9 +261,9 @@ namespace GFGGame
                 List<int> itemDatas = new List<int>(itemDatasDic[subType]);
                 DressUpMenuItemDataManager.SortItemListByHighScore(itemDatas);
 
-                if (fightCfg.needSuitId > 0)
+                if (fightCfg.NeedSuitId > 0)
                 {
-                    int[] suitParts = SuitCfgArray.Instance.GetCfg(fightCfg.needSuitId).partsArr;
+                    int[] suitParts = CommonDataManager.Tables.TblSuitCfg.GetOrDefault(fightCfg.NeedSuitId).Parts.ToArray();
                     for (int i = 0; i < suitParts.Length; i++)
                     {
                         if (itemDatas.IndexOf(suitParts[i]) >= 0)//当前类型里是否包含此部件,
@@ -271,11 +272,11 @@ namespace GFGGame
                         }
                     }
                 }
-                if (fightCfg.needItemId > 0)
+                if (fightCfg.NeedItemId > 0)
                 {
-                    if (itemDatas.IndexOf(fightCfg.needItemId) >= 0 && needListBySubType[subType].IndexOf(fightCfg.needItemId) < 0)
+                    if (itemDatas.IndexOf(fightCfg.NeedItemId) >= 0 && needListBySubType[subType].IndexOf(fightCfg.NeedItemId) < 0)
                     {
-                        needListBySubType[subType].Add(fightCfg.needItemId);
+                        needListBySubType[subType].Add(fightCfg.NeedItemId);
                     }
                 }
                 DressUpMenuItemDataManager.SortItemListByHighScore(needListBySubType[subType]);
@@ -303,7 +304,7 @@ namespace GFGGame
         {
             List<int> items = new List<int>();
             List<int> ornamentItems = new List<int>();
-            int[] suitParts = SuitCfgArray.Instance.GetCfg(suitId).partsArr;
+            int[] suitParts = CommonDataManager.Tables.TblSuitCfg.GetOrDefault(suitId).Parts.ToArray();
             for (int i = 0; i < suitParts.Length; i++)
             {
                 if (DressUpMenuItemCfg1Array.Instance.CheckIsOrnamentsType(suitParts[i]))
@@ -316,7 +317,7 @@ namespace GFGGame
                 }
             }
             DressUpMenuItemDataManager.SortItemListByHighScore(ornamentItems);
-            int count = Math.Min(ornamentItems.Count, GlobalCfgArray.globalCfg.dressLimitCount);
+            int count = Math.Min(ornamentItems.Count, CommonDataManager.Tables.TblGlobalCfg.DressLimitCount);
             ornamentItems = ornamentItems.GetRange(0, count);
             items.AddRange(ornamentItems);
             return items;