SuitGuideScanner.cs 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. using System;
  2. using System.Collections.Generic;
  3. using GFGGame;
  4. namespace GFGEditor
  5. {
  6. public class SuitGuideScanner
  7. {
  8. private static List<int> suitIds = new List<int>();
  9. public static void StartScan()
  10. {
  11. suitIds.Clear();
  12. var dataArray = SuitGuideMenuCfgArray.Instance.dataArray;
  13. Dictionary<SuitCfg, List<string>> tagsDic = new Dictionary<SuitCfg, List<string>>();
  14. string strs = "";
  15. for (int i = 0; i < dataArray.Length; i++)
  16. {
  17. SuitGuideMenuCfg cfg = dataArray[i];
  18. string str = string.Format(";{0}", cfg.suitIds);
  19. strs += str;
  20. HandleItemAndSuitTags(cfg, tagsDic);
  21. }
  22. SQLiteHelper.Instance.OpenConnection();
  23. try
  24. {
  25. // foreach (var cfg in dataArray)
  26. // {
  27. //SuitGuideMenuCfg cfg = dataArray[0];
  28. //var names = new string[] { nameof(cfg.suitIds) };
  29. //var values = new string[] { strs };
  30. //SQLiteHelper.Instance.UpdateValues(nameof(SuitGuideMenuCfgArray), names, values, nameof(cfg.id), cfg.id.ToString());
  31. // }
  32. //²ÄÁ϶ÔÓ¦µÄÌ××°id
  33. foreach (var a in tagsDic)
  34. {
  35. var names = new string[] { nameof(a.Key.tagsArr).Replace("Arr", "") };
  36. var values = new string[] { string.Join(";", a.Value) };
  37. SQLiteHelper.Instance.UpdateValues(nameof(SuitCfgArray), names, values, nameof(a.Key), a.Value.ToString());
  38. }
  39. }
  40. catch (Exception e)
  41. {
  42. ET.Log.Error(e.ToString());
  43. }
  44. finally
  45. {
  46. SQLiteHelper.Instance.CloseConnection();
  47. }
  48. }
  49. private static void HandleItemAndSuitTags(SuitGuideMenuCfg cfg, Dictionary<SuitCfg, List<string>> tagsDic)
  50. {
  51. var suitIDList = new List<int>(SuitCfgArray.Instance.GetSuitItems(cfg.id, true));
  52. Dictionary<string, int> tagsArr = new Dictionary<string, int>();
  53. //Dictionary<int, Dictionary<string, int>> tagsSuitArr = new Dictionary<int, Dictionary<string, int>>();
  54. var suitCfg = SuitCfgArray.Instance.GetCfg(cfg.id);
  55. foreach (var id in suitIDList)
  56. {
  57. ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(id);
  58. for (int i = 0; i < itemCfg.tagsArr.Length; i++)
  59. {
  60. if (!tagsArr.ContainsKey(itemCfg.tagsArr[i][0]))
  61. tagsArr[itemCfg.tagsArr[i][0]] = Convert.ToInt32(itemCfg.tagsArr[i][1]);
  62. else
  63. tagsArr[itemCfg.tagsArr[i][0]] += Convert.ToInt32(itemCfg.tagsArr[i][1]);
  64. }
  65. }
  66. foreach (var info in tagsArr.Keys)
  67. {
  68. //Dictionary<string, int> suitArr = new Dictionary<string, int>();
  69. string str = info + "*" + tagsArr[info];
  70. tagsDic[suitCfg].Add(str);
  71. }
  72. }
  73. }
  74. }