InstanceZonesScanner.cs 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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. var dataArray = StoryLevelCfgArray.Instance.dataArray;
  15. SQLiteHelper.Instance.OpenConnection();
  16. try
  17. {
  18. foreach (var cfg in dataArray)
  19. {
  20. var key = CalculateHelper.GenerateInstanceZonesLevelStateKey(cfg.type, cfg.subType, cfg.chapterId);
  21. levelCountDIc.TryGetValue(key, out var count);
  22. count++;
  23. levelCountDIc[key] = count;
  24. var names = new string[] { "_" + nameof(cfg.order) };
  25. var values = new string[] { "" + count };
  26. SQLiteHelper.Instance.UpdateValues(nameof(StoryLevelCfgArray), names, values, "_" + nameof(cfg.id), "=", cfg.id.ToString());
  27. }
  28. }
  29. catch (Exception e)
  30. {
  31. throw (e);
  32. }
  33. finally
  34. {
  35. SQLiteHelper.Instance.CloseConnection();
  36. }
  37. //写入
  38. WriteStoryChapter();
  39. WriteStudioChapter();
  40. }
  41. public static void WriteStoryChapter()
  42. {
  43. //写入
  44. var dataArray = StoryChapterCfgArray.Instance.dataArray;
  45. SQLiteHelper.Instance.OpenConnection();
  46. try
  47. {
  48. foreach (var cfg in dataArray)
  49. {
  50. var key = CalculateHelper.GenerateInstanceZonesLevelStateKey(cfg.type,cfg.subType, cfg.id);
  51. levelCountDIc.TryGetValue(key, out var count);
  52. var names = new string[] { "_" + nameof(cfg.levelCount) };
  53. var values = new string[] { "" + count };
  54. SQLiteHelper.Instance.UpdateValues(nameof(StoryChapterCfgArray), names, values, "_" + nameof(cfg.id), "=", cfg.id.ToString());
  55. }
  56. }
  57. catch (Exception e)
  58. {
  59. throw (e);
  60. }
  61. finally
  62. {
  63. SQLiteHelper.Instance.CloseConnection();
  64. }
  65. }
  66. public static void WriteStudioChapter()
  67. {
  68. //写入
  69. var dataArray = StudioCfgArray.Instance.dataArray;
  70. SQLiteHelper.Instance.OpenConnection();
  71. try
  72. {
  73. foreach (var cfg in dataArray)
  74. {
  75. var key = CalculateHelper.GenerateInstanceZonesLevelStateKey(cfg.type, cfg.subType, cfg.id);
  76. levelCountDIc.TryGetValue(key, out var count);
  77. var names = new string[] { "_" + nameof(cfg.levelCount) };
  78. var values = new string[] { "" + count };
  79. SQLiteHelper.Instance.UpdateValues(nameof(StudioCfgArray), names, values, "_" + nameof(cfg.id), "=", cfg.id.ToString());
  80. }
  81. }
  82. catch (Exception e)
  83. {
  84. throw (e);
  85. }
  86. finally
  87. {
  88. SQLiteHelper.Instance.CloseConnection();
  89. }
  90. }
  91. }
  92. }