Browse Source

配表里累加计算物品套装属性的数值

huangxiaoyue 1 year ago
parent
commit
0ebc34c2b7

+ 1 - 1
GameClient/Assets/Editor/Excel/ExcelScanner.cs

@@ -16,7 +16,7 @@
             GiftBagScanner.StartScan();
             FieldScanner.StartScan();
             LeagueScanner.StartScan();
-            // SuitGuideScanner.StartScan();
+            SuitGuideScanner.StartScan();
         }
     }
 }

+ 40 - 4
GameClient/Assets/Editor/Excel/Scanner/SuitGuideScanner.cs

@@ -12,6 +12,7 @@ namespace GFGEditor
         {
             suitIds.Clear();
             var dataArray = SuitGuideMenuCfgArray.Instance.dataArray;
+            Dictionary<SuitCfg, List<string>> tagsDic = new Dictionary<SuitCfg, List<string>>();
 
             string strs = "";
             for (int i = 0; i < dataArray.Length; i++)
@@ -19,6 +20,8 @@ namespace GFGEditor
                 SuitGuideMenuCfg cfg = dataArray[i];
                 string str = string.Format(";{0}", cfg.suitIds);
                 strs += str;
+
+                HandleItemAndSuitTags(cfg, tagsDic);
             }
 
             SQLiteHelper.Instance.OpenConnection();
@@ -27,11 +30,19 @@ namespace GFGEditor
                 // foreach (var cfg in dataArray)
                 // {
 
-                SuitGuideMenuCfg cfg = dataArray[0];
-                var names = new string[] { nameof(cfg.suitIds) };
-                var values = new string[] { strs };
-                SQLiteHelper.Instance.UpdateValues(nameof(SuitGuideMenuCfgArray), names, values, nameof(cfg.id), cfg.id.ToString());
+                //SuitGuideMenuCfg cfg = dataArray[0];
+                //var names = new string[] { nameof(cfg.suitIds) };
+                //var values = new string[] { strs };
+                //SQLiteHelper.Instance.UpdateValues(nameof(SuitGuideMenuCfgArray), names, values, nameof(cfg.id), cfg.id.ToString());
                 // }
+
+                //²ÄÁ϶ÔÓ¦µÄÌ××°id
+                foreach (var a in tagsDic)
+                {
+                    var names = new string[] { nameof(a.Key.tagsArr).Replace("Arr", "") };
+                    var values = new string[] { string.Join(";", a.Value) };
+                    SQLiteHelper.Instance.UpdateValues(nameof(SuitCfgArray), names, values, nameof(a.Key), a.Value.ToString());
+                }
             }
             catch (Exception e)
             {
@@ -42,5 +53,30 @@ namespace GFGEditor
                 SQLiteHelper.Instance.CloseConnection();
             }
         }
+
+        private static void HandleItemAndSuitTags(SuitGuideMenuCfg cfg, Dictionary<SuitCfg, List<string>> tagsDic)
+        {
+            var suitIDList = new List<int>(SuitCfgArray.Instance.GetSuitItems(cfg.id, true));
+            Dictionary<string, int> tagsArr = new Dictionary<string, int>();
+            //Dictionary<int, Dictionary<string, int>> tagsSuitArr = new Dictionary<int, Dictionary<string, int>>();
+            var suitCfg = SuitCfgArray.Instance.GetCfg(cfg.id);
+            foreach (var id in suitIDList)
+            {
+                ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(id);
+                for (int i = 0; i < itemCfg.tagsArr.Length; i++)
+                {
+                    if (!tagsArr.ContainsKey(itemCfg.tagsArr[i][0]))
+                        tagsArr[itemCfg.tagsArr[i][0]] = Convert.ToInt32(itemCfg.tagsArr[i][1]);
+                    else
+                        tagsArr[itemCfg.tagsArr[i][0]] += Convert.ToInt32(itemCfg.tagsArr[i][1]);
+                }
+            }
+            foreach (var info in tagsArr.Keys)
+            {
+                //Dictionary<string, int> suitArr = new Dictionary<string, int>();
+                string str = info + "*" + tagsArr[info];
+                tagsDic[suitCfg].Add(str);
+            }
+        }
     }
 }