InstanceZonesScanner.cs 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using GFGGame;
  6. namespace GFGEditor
  7. {
  8. public class InstanceZonesScanner
  9. {
  10. //计算每个副本的关卡数
  11. private static Dictionary<int, int> levelCountDIc = new Dictionary<int, int>();
  12. public static void StartScan()
  13. {
  14. levelCountDIc.Clear();
  15. var dataArray = StoryLevelCfgArray.Instance.dataArray;
  16. SQLiteHelper.Instance.OpenConnection();
  17. try
  18. {
  19. foreach (var cfg in dataArray)
  20. {
  21. var key = CalculateHelper.GenerateInstanceZonesLevelStateKey(cfg.type, cfg.subType, cfg.chapterId);
  22. levelCountDIc.TryGetValue(key, out var count);
  23. count++;
  24. levelCountDIc[key] = count;
  25. var names = new string[] { nameof(cfg.order) };
  26. var values = new string[] { "" + count };
  27. SQLiteHelper.Instance.UpdateValues(nameof(StoryLevelCfgArray), names, values, nameof(cfg.id), cfg.id.ToString());
  28. }
  29. }
  30. catch (Exception e)
  31. {
  32. ET.Log.Error(e.ToString());
  33. }
  34. finally
  35. {
  36. SQLiteHelper.Instance.CloseConnection();
  37. }
  38. //写入
  39. WriteStoryChapter();
  40. WriteStudioChapter();
  41. }
  42. public static void WriteStoryChapter()
  43. {
  44. //写入
  45. var dataArray = StoryChapterCfgArray.Instance.dataArray;
  46. SQLiteHelper.Instance.OpenConnection();
  47. try
  48. {
  49. foreach (var cfg in dataArray)
  50. {
  51. var key = CalculateHelper.GenerateInstanceZonesLevelStateKey(cfg.type, cfg.subType, cfg.id);
  52. levelCountDIc.TryGetValue(key, out var count);
  53. var names = new string[] { nameof(cfg.levelCount) };
  54. var values = new string[] { "" + count };
  55. SQLiteHelper.Instance.UpdateValues(nameof(StoryChapterCfgArray), names, values, nameof(cfg.id), cfg.id.ToString());
  56. }
  57. }
  58. catch (Exception e)
  59. {
  60. ET.Log.Error(e.ToString());
  61. }
  62. finally
  63. {
  64. SQLiteHelper.Instance.CloseConnection();
  65. }
  66. }
  67. public static void WriteStudioChapter()
  68. {
  69. //写入
  70. var dataArray = StudioCfgArray.Instance.dataArray;
  71. SQLiteHelper.Instance.OpenConnection();
  72. try
  73. {
  74. foreach (var cfg in dataArray)
  75. {
  76. var key = CalculateHelper.GenerateInstanceZonesLevelStateKey(cfg.type, cfg.subType, cfg.id);
  77. levelCountDIc.TryGetValue(key, out var count);
  78. var names = new string[] { nameof(cfg.levelCount) };
  79. var values = new string[] { "" + count };
  80. SQLiteHelper.Instance.UpdateValues(nameof(StudioCfgArray), names, values, nameof(cfg.id), cfg.id.ToString());
  81. }
  82. }
  83. catch (Exception e)
  84. {
  85. throw (e);
  86. }
  87. finally
  88. {
  89. SQLiteHelper.Instance.CloseConnection();
  90. }
  91. }
  92. }
  93. }