Преглед изворни кода

关卡表有个自动生成的字段做兼容

hexiaojie пре 6 месеци
родитељ
комит
d1fbc732d3
48 измењених фајлова са 1916 додато и 596 уклоњено
  1. 1 0
      GameClient/.idea/.idea.GameClient/.idea/projectSettingsUpdater.xml
  2. 7 0
      GameClient/.idea/.idea.GameClient/.idea/vcs.xml
  3. 849 0
      GameClient/.idea/.idea.GameClient/.idea/workspace.xml
  4. 0 1
      GameClient/Assets/Game/HotUpdate/Assets/PrefabManager.cs
  5. 6 5
      GameClient/Assets/Game/HotUpdate/Controller/GameController.cs
  6. 1 2
      GameClient/Assets/Game/HotUpdate/Controller/LoginController.cs
  7. 5 2
      GameClient/Assets/Game/HotUpdate/Controller/MainController.cs
  8. 5 4
      GameClient/Assets/Game/HotUpdate/Data/PhotographSceneManager.cs
  9. 39 20
      GameClient/Assets/Game/HotUpdate/Data/RedDotDataManager.cs
  10. 103 56
      GameClient/Assets/Game/HotUpdate/Data/ScoreSystemData.cs
  11. 47 20
      GameClient/Assets/Game/HotUpdate/Data/ShopDataManager.cs
  12. 42 27
      GameClient/Assets/Game/HotUpdate/Data/StudioDataManager.cs
  13. 65 28
      GameClient/Assets/Game/HotUpdate/Data/TimeTracingDataManager.cs
  14. 3 13
      GameClient/Assets/Game/HotUpdate/FairyGUI/GFGUIPackage.cs
  15. 6 3
      GameClient/Assets/Game/HotUpdate/Platform/QDJGameManager.cs
  16. 0 1
      GameClient/Assets/Game/HotUpdate/UGUI/UGUIManager.cs
  17. 9 2
      GameClient/Assets/Game/HotUpdate/Views/ActivityMainTips/ActivityZCJBChapterView.cs
  18. 2 1
      GameClient/Assets/Game/HotUpdate/Views/ClothingDecompose/ClothingDecomposeView.cs
  19. 0 2
      GameClient/Assets/Game/HotUpdate/Views/CommonGame/ApproachView.cs
  20. 27 20
      GameClient/Assets/Game/HotUpdate/Views/Field/FieldFightInfoView.cs
  21. 11 2
      GameClient/Assets/Game/HotUpdate/Views/Field/FieldView.cs
  22. 48 18
      GameClient/Assets/Game/HotUpdate/Views/MainStory/ActivityStoryChapterView.cs
  23. 91 55
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryChapterListView.cs
  24. 98 63
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryChapterView.cs
  25. 44 17
      GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryController.cs
  26. 25 10
      GameClient/Assets/Game/HotUpdate/Views/OpenServerActivity/OpenServerFightView.cs
  27. 41 15
      GameClient/Assets/Game/HotUpdate/Views/OpenServerActivity/OpenServerStoryView.cs
  28. 21 12
      GameClient/Assets/Game/HotUpdate/Views/RoleInfo/GMPanelView.cs
  29. 35 13
      GameClient/Assets/Game/HotUpdate/Views/Store/StoreBrocadeWeavView.cs
  30. 19 6
      GameClient/Assets/Game/HotUpdate/Views/Store/StoreChargeView.cs
  31. 103 38
      GameClient/Assets/Game/HotUpdate/Views/Store/StoreView.cs
  32. 34 16
      GameClient/Assets/Game/HotUpdate/Views/Studio/StudioActivityView.cs
  33. 7 6
      GameClient/Assets/Game/HotUpdate/Views/Studio/StudioFabricView.cs
  34. 47 19
      GameClient/Assets/Game/HotUpdate/Views/Studio/StudioFilingView.cs
  35. 7 5
      GameClient/Assets/Game/HotUpdate/Views/Studio/StudioMetalView.cs
  36. 18 6
      GameClient/Assets/Game/HotUpdate/Views/Studio/StudioPorcelainView.cs
  37. 31 11
      GameClient/Assets/Game/HotUpdate/Views/Studio/StudioPropertyView.cs
  38. 12 6
      GameClient/Assets/Game/HotUpdate/Views/TimeTracing/TimeTracingLevelView.cs
  39. 0 5
      GameClient/Assets/Game/HotUpdate/Views/ViewGlobal.cs
  40. 0 5
      GameClient/Assets/Game/Launcher/HotUpdateProxy/HotUpdateCodeLoader.cs
  41. 2 2
      GameClient/Assets/Game/Launcher/LauncherConfig.cs
  42. 1 14
      GameClient/Assets/Game/Launcher/LauncherController.cs
  43. 1 1
      GameClient/Assets/Game/Launcher/Net/Http/HttpTool.cs
  44. 0 1
      GameClient/Assets/Game/Launcher/Platform/QDManagerInit.cs
  45. 2 19
      GameClient/Assets/Game/Launcher/Version/VersionController.cs
  46. 0 12
      GameClient/Assets/ResIn/UI/Login/Login_atlas0!a.png.meta
  47. 0 12
      GameClient/Assets/ResIn/UI/Login/Login_atlas0.png.meta
  48. 1 0
      GameClient/GameClient.sln.DotSettings.user

+ 1 - 0
GameClient/.idea/.idea.GameClient/.idea/projectSettingsUpdater.xml

@@ -2,6 +2,7 @@
 <project version="4">
   <component name="RiderProjectSettingsUpdater">
     <option name="singleClickDiffPreview" value="1" />
+    <option name="unhandledExceptionsIgnoreList" value="1" />
     <option name="vcsConfiguration" value="3" />
   </component>
 </project>

+ 7 - 0
GameClient/.idea/.idea.GameClient/.idea/vcs.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$/.." vcs="Git" />
+    <mapping directory="$PROJECT_DIR$/Assets/Game/CSShare" vcs="Git" />
+  </component>
+</project>

+ 849 - 0
GameClient/.idea/.idea.GameClient/.idea/workspace.xml

@@ -0,0 +1,849 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="AutoImportSettings">
+    <option name="autoReloadType" value="SELECTIVE" />
+  </component>
+  <component name="ChangeListManager">
+    <list default="true" id="a4ba9278-cb87-4453-ad49-365f16b0a709" name="更改" comment="">
+      <change afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/ExcelConfig/Partical/StoryLevelCfg.cs" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/ExcelConfig/Partical/StoryLevelCfg.cs.meta" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/ExcelConfig/Partical/StoryLevelCfgArray.cs" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/ExcelConfig/Partical/StoryLevelCfgArray.cs.meta" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/.idea.GameClient/.idea/projectSettingsUpdater.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.GameClient/.idea/projectSettingsUpdater.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/ExcelConfig/Partical/ShopConfigManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/ExcelConfig/Partical/ShopConfigManager.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/ExcelConfig/Partical/StoryLevelConfigManager.cs" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/ExcelConfig/Partical/StoryLevelConfigManager.cs.meta" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/StoryLevelCfg.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/Luban/GfgCfg/StoryLevelCfg.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/LubanData/gfgcfg_tblshopcfg.json" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/LubanData/gfgcfg_tblshopcfg.json" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/LubanData/gfgcfg_tblstorylevelcfg.json" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/LubanData/gfgcfg_tblstorylevelcfg.json" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Assets/PrefabManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Assets/PrefabManager.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Controller/GameController.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Controller/GameController.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Controller/LoginController.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Controller/LoginController.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Controller/MainController.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Controller/MainController.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/PhotographSceneManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/PhotographSceneManager.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/RedDotDataManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/RedDotDataManager.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/ScoreSystemData.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/ScoreSystemData.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/ShopDataManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/ShopDataManager.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/StudioDataManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/StudioDataManager.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/TimeTracingDataManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Data/TimeTracingDataManager.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GFGUIPackage.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GFGUIPackage.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/Login/UI_Button2.cs.meta" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/Login/UI_Button2.cs.meta" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/Login/UI_ComContent.cs.meta" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/Login/UI_ComContent.cs.meta" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/Login/UI_ComboBox1_popup.cs.meta" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/Login/UI_ComboBox1_popup.cs.meta" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/Login/UI_LoginInputUI.cs.meta" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/Login/UI_LoginInputUI.cs.meta" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/Login/UI_LoginUI.cs.meta" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/Login/UI_LoginUI.cs.meta" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/Login/UI_NoticeUI.cs.meta" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/Login/UI_NoticeUI.cs.meta" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/Login/UI_QieHuanUI.cs.meta" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/Login/UI_QieHuanUI.cs.meta" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/Login/UI_RegisterUI.cs.meta" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/Login/UI_RegisterUI.cs.meta" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/Login/UI_RegisterUIBackup.cs.meta" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/Login/UI_RegisterUIBackup.cs.meta" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/Login/UI_RoleInfoRegisterUI.cs.meta" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/Login/UI_RoleInfoRegisterUI.cs.meta" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/Login/UI_ServerListUI.cs.meta" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/Login/UI_ServerListUI.cs.meta" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Platform/QDJGameManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Platform/QDJGameManager.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/UGUI/UGUIManager.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/UGUI/UGUIManager.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityMainTips/ActivityZCJBChapterView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ActivityMainTips/ActivityZCJBChapterView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ClothingDecompose/ClothingDecomposeView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ClothingDecompose/ClothingDecomposeView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/CommonGame/ApproachView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/CommonGame/ApproachView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Field/FieldFightInfoView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Field/FieldFightInfoView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Field/FieldView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Field/FieldView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/ActivityStoryChapterView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/ActivityStoryChapterView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/StoryChapterListView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/StoryChapterListView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/StoryChapterView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/StoryChapterView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/StoryController.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/StoryController.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/OpenServerActivity/OpenServerFightView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/OpenServerActivity/OpenServerFightView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/OpenServerActivity/OpenServerStoryView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/OpenServerActivity/OpenServerStoryView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/RoleInfo/GMPanelView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/RoleInfo/GMPanelView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Store/StoreBrocadeWeavView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Store/StoreBrocadeWeavView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Store/StoreChargeView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Store/StoreChargeView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Store/StoreView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Store/StoreView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Studio/StudioActivityView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Studio/StudioActivityView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Studio/StudioFabricView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Studio/StudioFabricView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Studio/StudioFilingView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Studio/StudioFilingView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Studio/StudioMetalView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Studio/StudioMetalView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Studio/StudioPorcelainView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Studio/StudioPorcelainView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Studio/StudioPropertyView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Studio/StudioPropertyView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/TimeTracing/TimeTracingLevelView.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/TimeTracing/TimeTracingLevelView.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ViewGlobal.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ViewGlobal.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/Launcher/HotUpdateProxy/HotUpdateCodeLoader.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/Launcher/HotUpdateProxy/HotUpdateCodeLoader.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/Launcher/LauncherConfig.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/Launcher/LauncherConfig.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/Launcher/LauncherController.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/Launcher/LauncherController.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/Launcher/Net/Http/HttpTool.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/Launcher/Net/Http/HttpTool.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/Launcher/Platform/QDManagerInit.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/Launcher/Platform/QDManagerInit.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/Game/Launcher/Version/VersionController.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Game/Launcher/Version/VersionController.cs" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/ResIn/UI/Login/Login_atlas0!a.png.meta" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/ResIn/UI/Login/Login_atlas0!a.png.meta" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/ResIn/UI/Login/Login_atlas0.png.meta" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/ResIn/UI/Login/Login_atlas0.png.meta" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Assets/ResIn/UI/Login/Login_fui.bytes.meta" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/ResIn/UI/Login/Login_fui.bytes.meta" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/GameClient.sln.DotSettings.user" beforeDir="false" afterPath="$PROJECT_DIR$/GameClient.sln.DotSettings.user" afterDir="false" />
+    </list>
+    <option name="SHOW_DIALOG" value="false" />
+    <option name="HIGHLIGHT_CONFLICTS" value="true" />
+    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
+    <option name="LAST_RESOLUTION" value="IGNORE" />
+  </component>
+  <component name="DpaMonitoringSettings">
+    <option name="firstShow" value="false" />
+  </component>
+  <component name="Git.Settings">
+    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/Assets/Game/CSShare" />
+  </component>
+  <component name="HighlightingSettingsPerFile">
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/02365bcde6734ac8ae92f51eed8d7a5a3200/58/2dcb948b/JsonUtility.cs" root0="FORCE_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/27d9b60c5b794cb2a1577bb267b886a828600/7f/3f3ccdfb/GUIUtility.cs" root0="SKIP_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/3789ee403a53437cbb6b5d9ab6311f51573620/35/ad9431c0/MemoryStream.cs" root0="FORCE_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/3789ee403a53437cbb6b5d9ab6311f51573620/4e/aad6c3b2/IEnumerator`1.cs" root0="FORCE_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/3789ee403a53437cbb6b5d9ab6311f51573620/56/27c54aae/Activator.cs" root0="FORCE_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/3789ee403a53437cbb6b5d9ab6311f51573620/81/60297759/Action.cs" root0="FORCE_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/3789ee403a53437cbb6b5d9ab6311f51573620/99/0ea27859/String.cs" root0="FORCE_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/3789ee403a53437cbb6b5d9ab6311f51573620/a1/2cd9437b/SynchronizationContext.cs" root0="FORCE_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/3789ee403a53437cbb6b5d9ab6311f51573620/a3/60d291b6/List`1.cs" root0="FORCE_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/3789ee403a53437cbb6b5d9ab6311f51573620/a4/44ebb4e8/Task`1.cs" root0="FORCE_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/3789ee403a53437cbb6b5d9ab6311f51573620/b6/20ac76a5/TaskCompletionSource`1.cs" root0="SKIP_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/5a2009c85b134970925993880e2ecb2e29fa00/c4/1c942964/WebSocket.cs" root0="FORCE_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/683a2b31bf9142429c44f02c75dbc6c913ce00/1a/53ed0524/Vector3.cs" root0="FORCE_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/683a2b31bf9142429c44f02c75dbc6c913ce00/3f/aa010310/MonoBehaviour.cs" root0="SKIP_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/683a2b31bf9142429c44f02c75dbc6c913ce00/6d/b884eed9/Object.cs" root0="FORCE_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/683a2b31bf9142429c44f02c75dbc6c913ce00/75/d87ba9d0/LogType.cs" root0="FORCE_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/683a2b31bf9142429c44f02c75dbc6c913ce00/f7/323a5d44/Application.cs" root0="SKIP_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/695d1cc93cca45069c528c15c9fdd7493e2800/01/46970b32/Action.cs" root0="FORCE_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/695d1cc93cca45069c528c15c9fdd7493e2800/20/3a0a5fc0/Activator.cs" root0="FORCE_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/695d1cc93cca45069c528c15c9fdd7493e2800/57/429a851a/NotImplementedException.cs" root0="FORCE_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/695d1cc93cca45069c528c15c9fdd7493e2800/5f/0c6d83c7/Task.cs" root0="FORCE_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/695d1cc93cca45069c528c15c9fdd7493e2800/63/e50b2d41/KeyValuePair`2.cs" root0="SKIP_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/695d1cc93cca45069c528c15c9fdd7493e2800/ba/d47fe324/Task`1.cs" root0="FORCE_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/695d1cc93cca45069c528c15c9fdd7493e2800/c3/83d8926e/File.cs" root0="FORCE_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/695d1cc93cca45069c528c15c9fdd7493e2800/cf/c7a06b28/Type.cs" root0="FORCE_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/695d1cc93cca45069c528c15c9fdd7493e2800/dc/a749e100/TaskCompletionSource`1.cs" root0="FORCE_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/695d1cc93cca45069c528c15c9fdd7493e2800/e0/4c18b32c/ArraySortHelper`1.cs" root0="FORCE_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/695d1cc93cca45069c528c15c9fdd7493e2800/fb/1c396fb8/CancellationTokenSource.cs" root0="SKIP_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/8d4895b259be41298a685a0c9b42357576b400/9d/a1138e9c/AssetDatabase.cs" root0="FORCE_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/c0c221501f3a41f8ac0af9d6a9dc9ff335fd90/1e/dd8639eb/Stack`1.cs" root0="FORCE_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/d6e153aa051345dc96d9a55ee3adc812360448/12/1006b26e/Stopwatch.cs" root0="SKIP_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/d6e153aa051345dc96d9a55ee3adc812360448/95/f824ec98/HttpListenerContext.cs" root0="FORCE_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/d6e153aa051345dc96d9a55ee3adc812360448/a6/47eb89a0/IPEndPoint.cs" root0="FORCE_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/d6e153aa051345dc96d9a55ee3adc812360448/b6/1bebb6b7/Dns.cs" root0="FORCE_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/d6e153aa051345dc96d9a55ee3adc812360448/f3/47536ad5/ClientWebSocket.cs" root0="FORCE_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/d6e153aa051345dc96d9a55ee3adc812360448/fb/90be827d/WebSocket.cs" root0="FORCE_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/db7fe3a37f9a4b359b9caec748d31b8333e00/66/c73eee40/Syscall.cs" root0="SKIP_HIGHLIGHTING" />
+    <setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/db7fe3a37f9a4b359b9caec748d31b8333e00/91/a2dc5212/UnixStream.cs" root0="SKIP_HIGHLIGHTING" />
+    <setting file="file://$PROJECT_DIR$/Assets/Game/CSShare/GFG/HotUpdate/LuBanConfig/LubanConfigFiles.cs" root0="FORCE_HIGHLIGHTING" />
+    <setting file="file://$PROJECT_DIR$/Assets/Game/HotUpdate/GameConfig.cs" root0="FORCE_HIGHLIGHTING" />
+    <setting file="file://$PROJECT_DIR$/Assets/Game/Launcher/LauncherConfig.cs" root0="FORCE_HIGHLIGHTING" />
+    <setting file="file://$PROJECT_DIR$/Assets/ThirdParty/FairyGUI/Scripts/UI/UIObjectFactory.cs" root0="SKIP_HIGHLIGHTING" />
+    <setting file="file://$PROJECT_DIR$/Assets/ThirdParty/JHGame/AbJHGameSDKHandler.cs" root0="FORCE_HIGHLIGHTING" />
+    <setting file="file://$PROJECT_DIR$/Assets/YooAsset/Editor/AssetBundleBuilder/BuildTasks/SBPBuildTasks.cs" root0="FORCE_HIGHLIGHTING" />
+  </component>
+  <component name="MarkdownSettingsMigration">
+    <option name="stateVersion" value="1" />
+  </component>
+  <component name="MetaFilesCheckinStateConfiguration" checkMetaFiles="true" />
+  <component name="ProjectColorInfo">{
+  &quot;associatedIndex&quot;: 5
+}</component>
+  <component name="ProjectId" id="2gN0sA4wvEgAIbP3vtDUFqkU8QW" />
+  <component name="ProjectViewState">
+    <option name="hideEmptyMiddlePackages" value="true" />
+    <option name="showLibraryContents" value="true" />
+  </component>
+  <component name="PropertiesComponent"><![CDATA[{
+  "keyToString": {
+    "Attach to Unity Editor.Attach to Unity Editor.executor": "Debug",
+    "ModuleVcsDetector.initialDetectionPerformed": "true",
+    "RunOnceActivity.OpenProjectViewOnStart": "true",
+    "RunOnceActivity.ShowReadmeOnStart": "true",
+    "RunOnceActivity.git.unshallow": "true",
+    "WebServerToolWindowFactoryState": "false",
+    "XThreadsFramesViewSplitterKey": "0.50924784",
+    "git-widget-placeholder": "master",
+    "node.js.detected.package.eslint": "true",
+    "node.js.detected.package.tslint": "true",
+    "node.js.selected.package.eslint": "(autodetect)",
+    "node.js.selected.package.tslint": "(autodetect)",
+    "nodejs_package_manager_path": "npm",
+    "settings.editor.selected.configurable": "preferences.sourceCode.XML",
+    "vue.rearranger.settings.migration": "true",
+    "附加到 Unity 编辑器.附加到 Unity 编辑器.executor": "Debug"
+  }
+}]]></component>
+  <component name="RunManager" selected="附加到 Unity 编辑器.附加到 Unity 编辑器">
+    <configuration name="启动 Unity" type="RunUnityExe" factoryName="Unity Executable">
+      <option name="EXE_PATH" value="E:\ruanJian\2020.3.33f1c2\Editor\Unity.exe" />
+      <option name="PROGRAM_PARAMETERS" value="-projectPath E:\0ARsyncData\E\work\GFG\gfg\client\GameClient -debugCodeOptimization" />
+      <option name="WORKING_DIRECTORY" value="E:\0ARsyncData\E\work\GFG\gfg\client\GameClient" />
+      <option name="PASS_PARENT_ENVS" value="1" />
+      <option name="USE_EXTERNAL_CONSOLE" value="0" />
+      <option name="ENV_FILE_PATHS" value="" />
+      <option name="REDIRECT_INPUT_PATH" value="" />
+      <option name="PTY_MODE" value="Auto" />
+      <method v="2" />
+    </configuration>
+    <configuration name="Start Unity" type="RunUnityExe" factoryName="Unity Executable">
+      <option name="EXE_PATH" value="C:\Program Files\Unity\Hub\Editor\2020.3.33f1c2\Editor\Unity.exe" />
+      <option name="PROGRAM_PARAMETERS" value="-projectPath D:\gfgProject\gfg_dev\work\GFG\gfg\client\GameClient -debugCodeOptimization" />
+      <option name="WORKING_DIRECTORY" value="D:\gfgProject\gfg_dev\work\GFG\gfg\client\GameClient" />
+      <option name="PASS_PARENT_ENVS" value="1" />
+      <option name="USE_EXTERNAL_CONSOLE" value="0" />
+      <option name="ENV_FILE_PATHS" value="" />
+      <option name="REDIRECT_INPUT_PATH" value="" />
+      <option name="PTY_MODE" value="Auto" />
+      <method v="2" />
+    </configuration>
+    <configuration name="Unit Tests (batch mode)" type="RunUnityExe" factoryName="Unity Executable">
+      <option name="EXE_PATH" value="C:\Program Files\Unity\Hub\Editor\2020.3.33f1c2\Editor\Unity.exe" />
+      <option name="PROGRAM_PARAMETERS" value="-runTests -batchmode -projectPath D:\gfgProject\gfg_dev\work\GFG\gfg\client\GameClient -testResults Logs/results.xml -testPlatform EditMode -debugCodeOptimization" />
+      <option name="WORKING_DIRECTORY" value="D:\gfgProject\gfg_dev\work\GFG\gfg\client\GameClient" />
+      <option name="PASS_PARENT_ENVS" value="1" />
+      <option name="USE_EXTERNAL_CONSOLE" value="0" />
+      <option name="ENV_FILE_PATHS" value="" />
+      <option name="REDIRECT_INPUT_PATH" value="" />
+      <option name="PTY_MODE" value="Auto" />
+      <method v="2" />
+    </configuration>
+    <configuration name="单元测试(批处理模式)" type="RunUnityExe" factoryName="Unity Executable">
+      <option name="EXE_PATH" value="E:\ruanJian\2020.3.33f1c2\Editor\Unity.exe" />
+      <option name="PROGRAM_PARAMETERS" value="-runTests -batchmode -projectPath E:\0ARsyncData\E\work\GFG\gfg\client\GameClient -testResults Logs/results.xml -testPlatform EditMode -debugCodeOptimization" />
+      <option name="WORKING_DIRECTORY" value="E:\0ARsyncData\E\work\GFG\gfg\client\GameClient" />
+      <option name="PASS_PARENT_ENVS" value="1" />
+      <option name="USE_EXTERNAL_CONSOLE" value="0" />
+      <option name="ENV_FILE_PATHS" value="" />
+      <option name="REDIRECT_INPUT_PATH" value="" />
+      <option name="PTY_MODE" value="Auto" />
+      <method v="2" />
+    </configuration>
+    <configuration name="附加到 Unity 编辑器" type="UNITY_DEBUG_RUN_CONFIGURATION" factoryName="Unity Debug" show_console_on_std_err="false" show_console_on_std_out="false" port="50000" address="localhost">
+      <option name="allowRunningInParallel" value="false" />
+      <option name="listenPortForConnections" value="false" />
+      <option name="pid" />
+      <option name="projectPathOnTarget" />
+      <option name="runtimes">
+        <list />
+      </option>
+      <option name="selectedOptions">
+        <list />
+      </option>
+      <option name="useMixedMode" value="false" />
+      <method v="2" />
+    </configuration>
+    <configuration name="附加到 Unity 编辑器并运行" type="UNITY_DEBUG_RUN_CONFIGURATION" factoryName="UNITY_ATTACH_AND_PLAY" show_console_on_std_err="false" show_console_on_std_out="false" port="50000" address="localhost">
+      <option name="allowRunningInParallel" value="false" />
+      <option name="listenPortForConnections" value="false" />
+      <option name="pid" />
+      <option name="projectPathOnTarget" />
+      <option name="runtimes">
+        <list />
+      </option>
+      <option name="selectedOptions">
+        <list />
+      </option>
+      <option name="useMixedMode" value="false" />
+      <method v="2" />
+    </configuration>
+  </component>
+  <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="应用程序级" UseSingleDictionary="true" transferred="true" />
+  <component name="TaskManager">
+    <task active="true" id="Default" summary="默认任务">
+      <changelist id="a4ba9278-cb87-4453-ad49-365f16b0a709" name="更改" comment="" />
+      <created>1715522934959</created>
+      <option name="number" value="Default" />
+      <option name="presentableId" value="Default" />
+      <updated>1715522934959</updated>
+      <workItem from="1715522937112" duration="5653000" />
+      <workItem from="1715612240806" duration="1322000" />
+      <workItem from="1716012292391" duration="1160000" />
+      <workItem from="1716018250968" duration="531000" />
+      <workItem from="1716043342314" duration="3036000" />
+      <workItem from="1716048330884" duration="2575000" />
+      <workItem from="1716186199934" duration="811000" />
+      <workItem from="1716207203918" duration="1926000" />
+      <workItem from="1716265917110" duration="718000" />
+      <workItem from="1716267458036" duration="1558000" />
+      <workItem from="1716273591958" duration="2527000" />
+      <workItem from="1716281441007" duration="3100000" />
+      <workItem from="1716546429301" duration="760000" />
+      <workItem from="1716547612290" duration="1185000" />
+      <workItem from="1716645615573" duration="3316000" />
+      <workItem from="1716657610899" duration="761000" />
+      <workItem from="1716892421001" duration="2353000" />
+      <workItem from="1717054135770" duration="2420000" />
+      <workItem from="1717149881189" duration="1071000" />
+      <workItem from="1717240306581" duration="3519000" />
+      <workItem from="1717847834897" duration="1004000" />
+      <workItem from="1718102650498" duration="3432000" />
+      <workItem from="1718182257882" duration="2594000" />
+      <workItem from="1718371267014" duration="3888000" />
+      <workItem from="1718441655977" duration="4687000" />
+      <workItem from="1718465305279" duration="1147000" />
+      <workItem from="1718472581367" duration="288000" />
+      <workItem from="1718606627001" duration="2282000" />
+      <workItem from="1718611114327" duration="1568000" />
+      <workItem from="1718617444348" duration="5124000" />
+      <workItem from="1718623388194" duration="2119000" />
+      <workItem from="1718692441070" duration="1060000" />
+      <workItem from="1718727166400" duration="166000" />
+      <workItem from="1718813110121" duration="2591000" />
+      <workItem from="1719046359931" duration="1935000" />
+      <workItem from="1719299716048" duration="4608000" />
+      <workItem from="1719382146372" duration="3433000" />
+      <workItem from="1719479860520" duration="1643000" />
+      <workItem from="1719774778641" duration="2380000" />
+      <workItem from="1719824080269" duration="1663000" />
+      <workItem from="1719826048328" duration="1288000" />
+      <workItem from="1720001798407" duration="2987000" />
+      <workItem from="1720432947709" duration="1407000" />
+      <workItem from="1720541743628" duration="1261000" />
+      <workItem from="1720699493026" duration="4305000" />
+      <workItem from="1721145240022" duration="2021000" />
+      <workItem from="1721284828226" duration="1721000" />
+      <workItem from="1721747224054" duration="2859000" />
+      <workItem from="1721795722614" duration="1529000" />
+      <workItem from="1722256537540" duration="1224000" />
+      <workItem from="1722412652167" duration="745000" />
+      <workItem from="1722849479912" duration="2620000" />
+      <workItem from="1722944670149" duration="32000" />
+      <workItem from="1722945622269" duration="4258000" />
+      <workItem from="1723203782512" duration="343000" />
+      <workItem from="1723204611281" duration="2082000" />
+      <workItem from="1723537309656" duration="101000" />
+      <workItem from="1723808643030" duration="1652000" />
+      <workItem from="1724055969323" duration="2235000" />
+      <workItem from="1724490405860" duration="741000" />
+      <workItem from="1724492729797" duration="127000" />
+      <workItem from="1724500686653" duration="939000" />
+      <workItem from="1724519854363" duration="741000" />
+      <workItem from="1724526517259" duration="3525000" />
+      <workItem from="1724602600962" duration="487000" />
+      <workItem from="1724657612345" duration="611000" />
+      <workItem from="1724659251273" duration="1598000" />
+      <workItem from="1724661534213" duration="7184000" />
+      <workItem from="1724763752889" duration="637000" />
+      <workItem from="1724776547167" duration="1247000" />
+      <workItem from="1724779079121" duration="10833000" />
+      <workItem from="1724925232925" duration="1439000" />
+      <workItem from="1725446885131" duration="611000" />
+      <workItem from="1726056745126" duration="1061000" />
+      <workItem from="1726325740773" duration="6625000" />
+      <workItem from="1726981865113" duration="75000" />
+      <workItem from="1727161970067" duration="2125000" />
+      <workItem from="1727355968129" duration="1640000" />
+      <workItem from="1727536827972" duration="4472000" />
+      <workItem from="1727635416199" duration="3030000" />
+      <workItem from="1728472301241" duration="2088000" />
+      <workItem from="1728571497957" duration="4813000" />
+      <workItem from="1728754048473" duration="3303000" />
+      <workItem from="1729066721784" duration="1035000" />
+      <workItem from="1729655359556" duration="3543000" />
+      <workItem from="1729677801214" duration="1883000" />
+      <workItem from="1730085272492" duration="1786000" />
+      <workItem from="1730107191139" duration="1430000" />
+      <workItem from="1730810723751" duration="1135000" />
+      <workItem from="1732721828431" duration="1190000" />
+      <workItem from="1732793420286" duration="599000" />
+      <workItem from="1733205815073" duration="72000" />
+      <workItem from="1733207982515" duration="4345000" />
+      <workItem from="1735205138264" duration="907000" />
+      <workItem from="1735206071589" duration="5556000" />
+      <workItem from="1735244196870" duration="2787000" />
+      <workItem from="1735835276250" duration="1855000" />
+      <workItem from="1736167358633" duration="1326000" />
+      <workItem from="1736430369300" duration="5547000" />
+      <workItem from="1736527250272" duration="4949000" />
+      <workItem from="1736539417764" duration="14188000" />
+      <workItem from="1737378887162" duration="11644000" />
+      <workItem from="1737621882718" duration="5780000" />
+      <workItem from="1738909604253" duration="7565000" />
+      <workItem from="1738987680803" duration="2915000" />
+      <workItem from="1739763423865" duration="3380000" />
+      <workItem from="1739863468598" duration="3158000" />
+      <workItem from="1739957525149" duration="3147000" />
+      <workItem from="1739968046109" duration="6000" />
+      <workItem from="1740553871039" duration="27000" />
+      <workItem from="1742394342252" duration="10401000" />
+      <workItem from="1742925443284" duration="863000" />
+      <workItem from="1743001037166" duration="1376000" />
+      <workItem from="1744017983829" duration="1906000" />
+      <workItem from="1744035099892" duration="6382000" />
+      <workItem from="1744120024367" duration="1425000" />
+      <workItem from="1744126463471" duration="5586000" />
+      <workItem from="1744215581505" duration="1691000" />
+      <workItem from="1744260610923" duration="571000" />
+      <workItem from="1744261198764" duration="1718000" />
+      <workItem from="1744639256925" duration="10682000" />
+      <workItem from="1744689232403" duration="7426000" />
+      <workItem from="1744736680520" duration="6574000" />
+      <workItem from="1745507553032" duration="4767000" />
+      <workItem from="1745594601713" duration="1116000" />
+      <workItem from="1745934668284" duration="3651000" />
+      <workItem from="1746172267227" duration="776000" />
+      <workItem from="1746280674874" duration="4309000" />
+      <workItem from="1746718100169" duration="1587000" />
+      <workItem from="1747546968109" duration="19860000" />
+      <workItem from="1747631210299" duration="20721000" />
+      <workItem from="1747749075322" duration="10493000" />
+      <workItem from="1747835571983" duration="67733000" />
+      <workItem from="1748959873535" duration="1387000" />
+      <workItem from="1748961285774" duration="12166000" />
+      <workItem from="1749221881842" duration="3780000" />
+      <workItem from="1749361696604" duration="10805000" />
+      <workItem from="1749484582722" duration="2074000" />
+      <workItem from="1749531700334" duration="5306000" />
+      <workItem from="1749660968067" duration="4908000" />
+      <workItem from="1749968308888" duration="12498000" />
+      <workItem from="1750084197729" duration="3654000" />
+      <workItem from="1750347210288" duration="9443000" />
+      <workItem from="1750524389018" duration="1354000" />
+      <workItem from="1750526016978" duration="11807000" />
+      <workItem from="1750645527934" duration="7588000" />
+      <workItem from="1750743985189" duration="516000" />
+      <workItem from="1750773422409" duration="37455000" />
+      <workItem from="1751175348156" duration="11020000" />
+      <workItem from="1751208279732" duration="781000" />
+      <workItem from="1751219030935" duration="1269000" />
+    </task>
+    <servers />
+  </component>
+  <component name="TypeScriptGeneratedFilesManager">
+    <option name="version" value="3" />
+  </component>
+  <component name="UnityCheckinConfiguration" checkUnsavedScenes="true" />
+  <component name="UnityProjectConfiguration" hasMinimizedUI="true" />
+  <component name="UnityProjectDiscoverer">
+    <option name="hasUnityReference" value="true" />
+    <option name="unityProject" value="true" />
+    <option name="unityProjectFolder" value="true" />
+  </component>
+  <component name="UnityUnitTestConfiguration" currentTestLauncher="Both" />
+  <component name="VcsManagerConfiguration">
+    <option name="CLEAR_INITIAL_COMMIT_MESSAGE" value="true" />
+  </component>
+  <component name="XDebuggerManager">
+    <breakpoint-manager>
+      <breakpoints>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Studio/StudioBuyNumView.cs</url>
+          <line>121</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\work\GFG\gfg\client\GameClient\Assets\Game\HotUpdate\Views\Studio\StudioBuyNumView.cs" containingFunctionPresentation="方法 'OnClickBtnBuy'">
+            <startOffsets>
+              <option value="4291" />
+            </startOffsets>
+            <endOffsets>
+              <option value="4335" />
+            </endOffsets>
+          </properties>
+          <option name="timeStamp" value="15" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Studio/StudioBuyNumView.cs</url>
+          <line>146</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\work\GFG\gfg\client\GameClient\Assets\Game\HotUpdate\Views\Studio\StudioBuyNumView.cs" containingFunctionPresentation="方法 'OnLimitChanged'">
+            <startOffsets>
+              <option value="5533" />
+            </startOffsets>
+            <endOffsets>
+              <option value="5577" />
+            </endOffsets>
+          </properties>
+          <option name="timeStamp" value="16" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/ServerProxy/MatchingCompetitionSproxy.cs</url>
+          <line>301</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\work\GFG\gfg\client\GameClient\Assets\Game\HotUpdate\ServerProxy\MatchingCompetitionSproxy.cs" containingFunctionPresentation="方法 'ReqBeforeRank'">
+            <startOffsets>
+              <option value="13835" />
+            </startOffsets>
+            <endOffsets>
+              <option value="13978" />
+            </endOffsets>
+          </properties>
+          <option name="timeStamp" value="33" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/Common/UI_ComHolder.cs</url>
+          <line>17</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\GameClient\Assets\Game\HotUpdate\FairyGUI\GenCode\Common\UI_ComHolder.cs" containingFunctionPresentation="方法 'Create'">
+            <startOffsets>
+              <option value="532" />
+            </startOffsets>
+            <endOffsets>
+              <option value="560" />
+            </endOffsets>
+          </properties>
+          <option name="timeStamp" value="74" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/FairyGUI/GenCode/Common/UI_ComHolder.cs</url>
+          <line>57</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\GameClient\Assets\Game\HotUpdate\FairyGUI\GenCode\Common\UI_ComHolder.cs" containingFunctionPresentation="方法 'Init'">
+            <startOffsets>
+              <option value="1595" />
+            </startOffsets>
+            <endOffsets>
+              <option value="1638" />
+            </endOffsets>
+          </properties>
+          <option name="timeStamp" value="75" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Assets/ThirdParty/FairyGUI/Scripts/UI/UIPackage.cs</url>
+          <line>452</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\GameClient\Assets\ThirdParty\FairyGUI\Scripts\UI\UIPackage.cs" containingFunctionPresentation="方法 'CreateObject'">
+            <startOffsets>
+              <option value="16118" />
+            </startOffsets>
+            <endOffsets>
+              <option value="16153" />
+            </endOffsets>
+          </properties>
+          <option name="timeStamp" value="79" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Assets/ThirdParty/FairyGUI/Scripts/UI/UIPackage.cs</url>
+          <line>436</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\GameClient\Assets\ThirdParty\FairyGUI\Scripts\UI\UIPackage.cs" containingFunctionPresentation="方法 'CreateObject'">
+            <startOffsets>
+              <option value="15509" />
+            </startOffsets>
+            <endOffsets>
+              <option value="15544" />
+            </endOffsets>
+          </properties>
+          <option name="timeStamp" value="88" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/UGUI/UGUIManager.cs</url>
+          <line>125</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\GameClient\Assets\Game\HotUpdate\UGUI\UGUIManager.cs" containingFunctionPresentation="lambda 表达式内 方法 'GetGameCfg'">
+            <startOffsets>
+              <option value="4434" />
+            </startOffsets>
+            <endOffsets>
+              <option value="4462" />
+            </endOffsets>
+          </properties>
+          <option name="timeStamp" value="90" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ViewManager.cs</url>
+          <line>424</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\GameClient\Assets\Game\HotUpdate\Views\ViewManager.cs" containingFunctionPresentation="方法 'Show'" />
+          <option name="timeStamp" value="91" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/Views/ViewManager.cs</url>
+          <line>278</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\GameClient\Assets\Game\HotUpdate\Views\ViewManager.cs" containingFunctionPresentation="方法 'Show'" />
+          <option name="timeStamp" value="92" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Packages/BestHTTP/Source/WebSocket/Implementations/OverHTTP1.cs</url>
+          <line>105</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\Client\GameClient\Packages\BestHTTP\Source\WebSocket\Implementations\OverHTTP1.cs" containingFunctionPresentation="方法 'InternalRequest_OnBeforeRedirection'">
+            <startOffsets>
+              <option value="5147" />
+            </startOffsets>
+            <endOffsets>
+              <option value="5332" />
+            </endOffsets>
+          </properties>
+          <option name="timeStamp" value="199" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Login/LoginInputView.cs</url>
+          <line>50</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\Client\GameClient\Assets\Game\HotUpdate\Views\Login\LoginInputView.cs" containingFunctionPresentation="方法 'OnShown'">
+            <startOffsets>
+              <option value="1338" />
+            </startOffsets>
+            <endOffsets>
+              <option value="1353" />
+            </endOffsets>
+          </properties>
+          <option name="timeStamp" value="207" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Login/LoginInputView.cs</url>
+          <line>52</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\Client\GameClient\Assets\Game\HotUpdate\Views\Login\LoginInputView.cs" containingFunctionPresentation="方法 'OnShown'">
+            <startOffsets>
+              <option value="1452" />
+            </startOffsets>
+            <endOffsets>
+              <option value="1472" />
+            </endOffsets>
+          </properties>
+          <option name="timeStamp" value="208" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Login/LoginInputView.cs</url>
+          <line>38</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\Client\GameClient\Assets\Game\HotUpdate\Views\Login\LoginInputView.cs" containingFunctionPresentation="方法 'OnInit'">
+            <startOffsets>
+              <option value="936" />
+            </startOffsets>
+            <endOffsets>
+              <option value="981" />
+            </endOffsets>
+          </properties>
+          <option name="timeStamp" value="209" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Login/LoginInputView.cs</url>
+          <line>105</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\Client\GameClient\Assets\Game\HotUpdate\Views\Login\LoginInputView.cs" containingFunctionPresentation="方法 'OnClickBtnSure'">
+            <startOffsets>
+              <option value="3034" />
+            </startOffsets>
+            <endOffsets>
+              <option value="3079" />
+            </endOffsets>
+          </properties>
+          <option name="timeStamp" value="210" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/Views/Task/OpenBattlePassView.cs</url>
+          <line>71</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\Client\GameClient\Assets\Game\HotUpdate\Views\Task\OpenBattlePassView.cs" containingFunctionPresentation="方法 'SpecialRewardRender'">
+            <startOffsets>
+              <option value="1912" />
+            </startOffsets>
+            <endOffsets>
+              <option value="2043" />
+            </endOffsets>
+          </properties>
+          <option name="timeStamp" value="214" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/Controller/LoginController.cs</url>
+          <line>30</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\Client\GameClient\Assets\Game\HotUpdate\Controller\LoginController.cs" containingFunctionPresentation="方法 'LoginTest'">
+            <startOffsets>
+              <option value="1293" />
+            </startOffsets>
+            <endOffsets>
+              <option value="1395" />
+            </endOffsets>
+          </properties>
+          <option name="timeStamp" value="242" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/Controller/LoginController.cs</url>
+          <line>21</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\Client\GameClient\Assets\Game\HotUpdate\Controller\LoginController.cs" containingFunctionPresentation="方法 'LoginTest'">
+            <startOffsets>
+              <option value="874" />
+            </startOffsets>
+            <endOffsets>
+              <option value="912" />
+            </endOffsets>
+          </properties>
+          <option name="timeStamp" value="244" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/Controller/LoginController.cs</url>
+          <line>50</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\Client\GameClient\Assets\Game\HotUpdate\Controller\LoginController.cs" containingFunctionPresentation="方法 'Login'">
+            <startOffsets>
+              <option value="2068" />
+            </startOffsets>
+            <endOffsets>
+              <option value="2112" />
+            </endOffsets>
+          </properties>
+          <option name="timeStamp" value="246" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/Data/PhotographSceneManager.cs</url>
+          <line>120</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\Client\GameClient\Assets\Game\HotUpdate\Data\PhotographSceneManager.cs" containingFunctionPresentation="方法 'AddItemToScene'">
+            <startOffsets>
+              <option value="4468" />
+            </startOffsets>
+            <endOffsets>
+              <option value="4521" />
+            </endOffsets>
+          </properties>
+          <option name="timeStamp" value="272" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/Data/PhotographSceneManager.cs</url>
+          <line>114</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\Client\GameClient\Assets\Game\HotUpdate\Data\PhotographSceneManager.cs" containingFunctionPresentation="方法 'AddItemToScene'">
+            <startOffsets>
+              <option value="4155" />
+            </startOffsets>
+            <endOffsets>
+              <option value="4230" />
+            </endOffsets>
+          </properties>
+          <option name="timeStamp" value="275" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/Views/DressUp/PhotographView.cs</url>
+          <line>468</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\Client\GameClient\Assets\Game\HotUpdate\Views\DressUp\PhotographView.cs" containingFunctionPresentation="方法 'AddSceneItem'">
+            <startOffsets>
+              <option value="18541" />
+            </startOffsets>
+            <endOffsets>
+              <option value="18586" />
+            </endOffsets>
+          </properties>
+          <option name="timeStamp" value="276" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/Views/CreateRole/CreateRoleView.cs</url>
+          <line>64</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\Client\GameClient\Assets\Game\HotUpdate\Views\CreateRole\CreateRoleView.cs" containingFunctionPresentation="方法 'ChangeAnimationState'">
+            <startOffsets>
+              <option value="1684" />
+            </startOffsets>
+            <endOffsets>
+              <option value="1698" />
+            </endOffsets>
+          </properties>
+          <option name="timeStamp" value="293" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/Views/MainStory/StoryDialogView.cs</url>
+          <line>562</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\Client\GameClient\Assets\Game\HotUpdate\Views\MainStory\StoryDialogView.cs" containingFunctionPresentation="方法 'ShowDialog'">
+            <startOffsets>
+              <option value="17743" />
+            </startOffsets>
+            <endOffsets>
+              <option value="17754" />
+            </endOffsets>
+          </properties>
+          <option name="timeStamp" value="295" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/UGUI/UICGView.cs</url>
+          <line>184</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\Client\GameClient\Assets\Game\HotUpdate\UGUI\UICGView.cs" containingFunctionPresentation="方法 'Hide'">
+            <startOffsets>
+              <option value="6966" />
+            </startOffsets>
+            <endOffsets>
+              <option value="7007" />
+            </endOffsets>
+          </properties>
+          <option name="timeStamp" value="296" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/UGUI/UICGView.cs</url>
+          <line>159</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\Client\GameClient\Assets\Game\HotUpdate\UGUI\UICGView.cs" containingFunctionPresentation="方法 'Hide'">
+            <startOffsets>
+              <option value="6375" />
+            </startOffsets>
+            <endOffsets>
+              <option value="6395" />
+            </endOffsets>
+          </properties>
+          <option name="timeStamp" value="297" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/Controller/GameController.cs</url>
+          <line>198</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\Client\GameClient\Assets\Game\HotUpdate\Controller\GameController.cs" containingFunctionPresentation="方法 'EnterGame'">
+            <startOffsets>
+              <option value="6117" />
+            </startOffsets>
+            <endOffsets>
+              <option value="7577" />
+            </endOffsets>
+          </properties>
+          <option name="timeStamp" value="299" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/Controller/GameController.cs</url>
+          <line>205</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\Client\GameClient\Assets\Game\HotUpdate\Controller\GameController.cs" containingFunctionPresentation="lambda 表达式内 方法 'EnterGame'">
+            <startOffsets>
+              <option value="6405" />
+            </startOffsets>
+            <endOffsets>
+              <option value="6406" />
+            </endOffsets>
+          </properties>
+          <option name="timeStamp" value="301" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/Controller/GameController.cs</url>
+          <line>210</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\Client\GameClient\Assets\Game\HotUpdate\Controller\GameController.cs" containingFunctionPresentation="lambda 表达式内 方法 'EnterGame'">
+            <startOffsets>
+              <option value="6536" />
+            </startOffsets>
+            <endOffsets>
+              <option value="6585" />
+            </endOffsets>
+          </properties>
+          <option name="timeStamp" value="302" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/Data/InstanceZonesDataManager.cs</url>
+          <line>297</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\Client\GameClient\Assets\Game\HotUpdate\Data\InstanceZonesDataManager.cs" containingFunctionPresentation="方法 'CheckLevelPass'">
+            <startOffsets>
+              <option value="10503" />
+            </startOffsets>
+            <endOffsets>
+              <option value="10585" />
+            </endOffsets>
+          </properties>
+          <option name="timeStamp" value="303" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/Data/InstanceZonesDataManager.cs</url>
+          <line>261</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\Client\GameClient\Assets\Game\HotUpdate\Data\InstanceZonesDataManager.cs" containingFunctionPresentation="方法 'GetPassLevelCfgId'">
+            <startOffsets>
+              <option value="9318" />
+            </startOffsets>
+            <endOffsets>
+              <option value="9405" />
+            </endOffsets>
+          </properties>
+          <option name="timeStamp" value="305" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/Data/InstanceZonesDataManager.cs</url>
+          <line>300</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\Client\GameClient\Assets\Game\HotUpdate\Data\InstanceZonesDataManager.cs" containingFunctionPresentation="方法 'CheckLevelPass'">
+            <startOffsets>
+              <option value="10650" />
+            </startOffsets>
+            <endOffsets>
+              <option value="10742" />
+            </endOffsets>
+          </properties>
+          <option name="timeStamp" value="307" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="DotNet Breakpoints">
+          <url>file://$PROJECT_DIR$/Assets/Game/HotUpdate/Data/InstanceZonesDataManager.cs</url>
+          <line>277</line>
+          <properties documentPath="D:\gfgProject\gfg_dev\0A-GFGClient\5client_webgl\Client\GameClient\Assets\Game\HotUpdate\Data\InstanceZonesDataManager.cs" containingFunctionPresentation="方法 'GetPassLevelOrder'">
+            <startOffsets>
+              <option value="9890" />
+            </startOffsets>
+            <endOffsets>
+              <option value="9951" />
+            </endOffsets>
+          </properties>
+          <option name="timeStamp" value="308" />
+        </line-breakpoint>
+        <breakpoint enabled="true" type="DotNet_Exception_Breakpoints">
+          <properties exception="System.OperationCanceledException" breakIfHandledByOtherCode="false" displayValue="System.OperationCanceledException" />
+          <option name="timeStamp" value="57" />
+        </breakpoint>
+        <breakpoint enabled="true" type="DotNet_Exception_Breakpoints">
+          <properties exception="System.Threading.Tasks.TaskCanceledException" breakIfHandledByOtherCode="false" displayValue="System.Threading.Tasks.TaskCanceledException" />
+          <option name="timeStamp" value="58" />
+        </breakpoint>
+        <breakpoint enabled="true" type="DotNet_Exception_Breakpoints">
+          <properties exception="System.Threading.ThreadAbortException" breakIfHandledByOtherCode="false" displayValue="System.Threading.ThreadAbortException" />
+          <option name="timeStamp" value="59" />
+        </breakpoint>
+      </breakpoints>
+    </breakpoint-manager>
+  </component>
+</project>

+ 0 - 1
GameClient/Assets/Game/HotUpdate/Assets/PrefabManager.cs

@@ -101,7 +101,6 @@ namespace GFGGame
                     // 需要将 AsyncOperationBase 转换为具体的 SpawnHandle
                     if (op is SpawnHandle handle && handle.IsDone)
                     {
-                        Log.Debug(resPath);
                         AssetReleaserHelper.AddReleaserToSpawnObj(handle.GameObj, resPath, handle);
                         callback?.Invoke(handle.GameObj);
                     }

+ 6 - 5
GameClient/Assets/Game/HotUpdate/Controller/GameController.cs

@@ -72,6 +72,7 @@ namespace GFGGame
                 {
                     // 配置加载完成后的回调
                     Debug.Log("Luban配置加载完成!");
+                    
                     //界面
                     try
                     {
@@ -89,10 +90,8 @@ namespace GFGGame
                 Debug.LogError($"Luban配置加载失败: {e}");
                 throw;
             }
-            
-            Debug.Log("Init2 加载!");
+
             await FontLoader.Instance.Init2();
-            Debug.Log("Init2 加载完成!");
         }
 
         public static bool CheckLoginCache(bool doLogin)
@@ -202,7 +201,8 @@ namespace GFGGame
                 ViewManager.Hide<LoadingView>();
 
                 GameGlobal.isEnterGame = true;
-                if (MainStoryDataManager.CheckOpenMainUI() || GameGlobal.skipGuide)
+                var isFa = MainStoryDataManager.CheckOpenMainUI();
+                if (isFa || GameGlobal.skipGuide)
                 {
                     ViewManager.Show<MainUIView>();
                 }
@@ -236,6 +236,7 @@ namespace GFGGame
         {
             if (GameGlobal.AfterDataInited) return;
 
+            ItemCfgArray.Instance.InitSyntheticSuitDic();
             await ActivitySProxy.ReqSevenDayLoginInfos();
 
             await ActivityGlobalSProxy.GetActivityInfo();
@@ -387,7 +388,7 @@ namespace GFGGame
             NewYearRedEnvelopeDataManager.Instance.Clear();
             MatchingCompetitionDataManager.Instance.MyNtextture = null;
             MatchingCompetitionDataManager.Instance.MathingDressDate.bgId = 0;
-           // FieldWorkDataManager.Instance.IsAutoStart = false;
+            // FieldWorkDataManager.Instance.IsAutoStart = false;
             GameGlobal.zoneScene.GetComponent<SessionComponent>()?.Disconnect();
             GameGlobal.zoneScene.GetComponent<ServerInfosComponent>()?.ServerInfoList?.Clear();
             GameGlobal.zoneScene.GetComponent<AccountInfoComponent>()?.Clear();

+ 1 - 2
GameClient/Assets/Game/HotUpdate/Controller/LoginController.cs

@@ -102,8 +102,7 @@ namespace GFGGame
             }
 
             await ReqNoticeInfo();
-            LoginController.GetRoles().Coroutine();
-
+            
             ViewManager.Hide<ModalStatusView>();
         }
 

+ 5 - 2
GameClient/Assets/Game/HotUpdate/Controller/MainController.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using System.Linq;
 using cfg.GfgCfg;
 using ET;
 using UnityEngine;
@@ -37,8 +38,10 @@ namespace GFGGame
                 {
                     StoryChapterCfg chapterTowCfg = _chapterCfgs[Mathf.Max(0, i - 1)];
                     StoryChapterCfg chaptersuitCfg = _chapterCfgs[Mathf.Max(0, i - 2)];
-                    var list = StoryLevelConfigManager.GetConfigs(chapterTowCfg.Type, chapterTowCfg.SubType,
-                        chapterTowCfg.Id);
+                    var list = CommonDataManager.Tables.TblStoryLevelCfg.DataList.Where(a =>
+                        a.Type == chapterTowCfg.Type && a.SubType == chapterTowCfg.SubType &&
+                        a.ChapterId == chapterTowCfg.Id).ToList();
+
                     StoryLevelCfg lastLevelCfg = list[list.Count - 1];
                     //这里是当下一章没解锁,但是上一章的最后一关已经通过了
                     if (lastLevelCfg != null && InstanceZonesDataManager.CheckLevelPass(lastLevelCfg.Id))

+ 5 - 4
GameClient/Assets/Game/HotUpdate/Data/PhotographSceneManager.cs

@@ -103,8 +103,8 @@ namespace GFGGame
 
             await AddItemToScene(sceneObject, parentGameObj, itemCfg.Id, layer);
 
-            string layerName = string.Format("resLayer{0}", layer);
-            string value = typeof(ItemCfg).GetField(layerName).GetValue(itemCfg).ToString();
+            //string layerName = string.Format("ResLayer{0}", layer);
+            //string value = typeof(ItemCfg).GetField(layerName).GetValue(itemCfg).ToString();
 
             AddItemGameObjectToList(parentGameObj, setLayer);
         }
@@ -116,8 +116,9 @@ namespace GFGGame
             parentGameObj.transform.SetParent(sceneObj.transform.Find("Scene"), false);
 
 
-            string layerName = string.Format("resLayer{0}", resLayer);
-            string value = typeof(ItemCfg).GetField(layerName).GetValue(itemCfg).ToString();
+            string layerName = string.Format("ResLayer{0}", resLayer);
+            var typeItem = typeof(ItemCfg).GetField(layerName);
+            string value = typeItem.GetValue(itemCfg).ToString();
             string res = value == "n" ? itemCfg.Res : string.Format("{0}_{1}", itemCfg.Res, value);
 
             string resPath = ResPathUtil.GetDressUpAnimationPath(res);

+ 39 - 20
GameClient/Assets/Game/HotUpdate/Data/RedDotDataManager.cs

@@ -447,10 +447,10 @@ namespace GFGGame
 
             PassivitySkillLvlCfg skillLvlCfg =
                 CommonDataManager.Tables.TblPassivitySkillLvlCfg.Get(skillLv, skillId);
-            
+
             PassivitySkillLvlCfg nextSkillLvlCfg =
                 CommonDataManager.Tables.TblPassivitySkillLvlCfg.Get(skillLv + 1, skillId);
-            
+
             if (nextSkillLvlCfg == null || skillLvlCfg.Materiars.Count == 0) return false;
             long itemHas = ItemDataManager.GetItemNum(skillLvlCfg.Materiars[0].ItemId);
             int itemNeed = skillLvlCfg.Materiars[0].Count;
@@ -684,7 +684,8 @@ namespace GFGGame
                 return false;
             }
 
-            List<ItemData> materiarsOfSelectedItem = ItemUtil.CreateItemDataList(itemCfg.SyntheticMateriars.ToGfgGameItemParam());
+            List<ItemData> materiarsOfSelectedItem =
+                ItemUtil.CreateItemDataList(itemCfg.SyntheticMateriars.ToGfgGameItemParam());
             for (int i = 0; i < materiarsOfSelectedItem.Count; i++)
             {
                 ItemData itemData = materiarsOfSelectedItem[i];
@@ -721,7 +722,8 @@ namespace GFGGame
                 return false;
             }
 
-            List<ItemData> materiarsOfSelectedItem = ItemUtil.CreateItemDataList(itemCfg.SyntheticMateriars.ToGfgGameItemParam());
+            List<ItemData> materiarsOfSelectedItem =
+                ItemUtil.CreateItemDataList(itemCfg.SyntheticMateriars.ToGfgGameItemParam());
             for (int i = 0; i < materiarsOfSelectedItem.Count; i++)
             {
                 ItemData itemData = materiarsOfSelectedItem[i];
@@ -776,7 +778,8 @@ namespace GFGGame
         //商店-礼包-活动礼包
         public bool GetGiftBagRewardRed()
         {
-            List<ShopCfg> shopCfgs = CommonDataManager.Tables.TblShopCfg.GetGroup1ByMenu1AndMenu2(ConstStoreTabId.STORE_GIFT_BAG,
+            List<ShopCfg> shopCfgs = CommonDataManager.Tables.TblShopCfg.GetGroup1ByMenu1AndMenu2(
+                ConstStoreTabId.STORE_GIFT_BAG,
                 ConstStoreSubId.STORE_GIFT_BAG_ACTIVITY);
             shopCfgs = ShopDataManager.Instance.RemoveNotOpenCfg(shopCfgs);
             for (int i = 0; i < shopCfgs.Count; i++)
@@ -791,7 +794,8 @@ namespace GFGGame
         //商店-礼包-返利商城
         public bool GetGiftBagRebateRed()
         {
-            List<ShopCfg> shopCfgs = CommonDataManager.Tables.TblShopCfg.GetGroup1ByMenu1AndMenu2(ConstStoreTabId.STORE_GIFT_BAG,
+            List<ShopCfg> shopCfgs = CommonDataManager.Tables.TblShopCfg.GetGroup1ByMenu1AndMenu2(
+                ConstStoreTabId.STORE_GIFT_BAG,
                 ConstStoreSubId.STORE_GIFT_BAG_REBATE);
             foreach (var info in shopCfgs)
             {
@@ -809,7 +813,9 @@ namespace GFGGame
         /// <returns></returns>
         public bool GetGrowthFundBuy()
         {
-            ShopCfg shopCfg = CommonDataManager.Tables.TblShopCfg.GetOrDefault( CommonDataManager.Tables.TblActivityOpenCfg.GetOrDefault(3002).Params1[0]);
+            ShopCfg shopCfg =
+                CommonDataManager.Tables.TblShopCfg.GetOrDefault(CommonDataManager.Tables.TblActivityOpenCfg
+                    .GetOrDefault(3002).Params1[0]);
             var remainBuyNum = shopCfg.MaxBuyNum - ShopDataManager.Instance.GetGoodsBuyNumById(shopCfg.Id);
             if (remainBuyNum == 0)
             {
@@ -825,7 +831,8 @@ namespace GFGGame
 
         public bool GetGrowthFundRewardRed()
         {
-            if (ShopDataManager.Instance.GrowthFundRewardList.Count == CommonDataManager.Tables.TblGrowthFundCfg.DataList.Count )
+            if (ShopDataManager.Instance.GrowthFundRewardList.Count ==
+                CommonDataManager.Tables.TblGrowthFundCfg.DataList.Count)
             {
                 return false;
             }
@@ -847,7 +854,8 @@ namespace GFGGame
                 }
             }
 
-            if (RoleDataManager.lvl >= CommonDataManager.Tables.TblGrowthFundCfg.DataList[CommonDataManager.Tables.TblGrowthFundCfg.DataList.Count - 1].Level)
+            if (RoleDataManager.lvl >= CommonDataManager.Tables.TblGrowthFundCfg
+                    .DataList[CommonDataManager.Tables.TblGrowthFundCfg.DataList.Count - 1].Level)
             {
                 return true;
             }
@@ -916,7 +924,8 @@ namespace GFGGame
         /// <returns></returns>
         public bool GetLeagueMemberJoinRed()
         {
-            LeagueHotelCfg hotelCfg = CommonDataManager.Tables.TblLeagueHotelCfg.GetOrDefault(LeagueDataManager.Instance.HotelLevel);
+            LeagueHotelCfg hotelCfg =
+                CommonDataManager.Tables.TblLeagueHotelCfg.GetOrDefault(LeagueDataManager.Instance.HotelLevel);
             int myPos = LeagueDataManager.Instance.GetMyPos();
             return LeagueDataManager.Instance.Type == LeagueJoinType.Join &&
                    (myPos == LeaguePos.Owner || myPos == LeaguePos.SubOwner) &&
@@ -981,7 +990,8 @@ namespace GFGGame
             }
 
             if (_activityId <= 0) return false;
-            List<ActivityLuckybonusCfg> _bonueCfgs = CommonDataManager.Tables.TblIActivityLuckybonusCfg.GetGroup1ById(_activityId);
+            List<ActivityLuckybonusCfg> _bonueCfgs =
+                CommonDataManager.Tables.TblIActivityLuckybonusCfg.GetGroup1ById(_activityId);
             for (int i = 0; i < _bonueCfgs.Count; i++)
             {
                 int key = _bonueCfgs[i].Num;
@@ -1060,7 +1070,8 @@ namespace GFGGame
             bool isSoldOut = true;
             foreach (var activityInfo in list)
             {
-                ActivityOpenCfg activityOpenCfg = CommonDataManager.Tables.TblActivityOpenCfg.GetOrDefault(activityInfo.ActivityId);
+                ActivityOpenCfg activityOpenCfg =
+                    CommonDataManager.Tables.TblActivityOpenCfg.GetOrDefault(activityInfo.ActivityId);
                 var paramsArr = activityOpenCfg.Params1;
                 foreach (var shopCfgId in paramsArr)
                 {
@@ -1101,8 +1112,10 @@ namespace GFGGame
                     ActivityStoryCfg activityStoryCfg =
                         CommonDataManager.Tables.TblActivityStoryCfg.GetOrDefault(activityCfg.Params4[i]);
                     var storyLevelCfg =
-                        StoryLevelConfigManager.GetConfigs(activityStoryCfg.Type,activityStoryCfg.SubType, activityCfg.Params4[i]);
-                            
+                        CommonDataManager.Tables.TblStoryLevelCfg.DataList.Where(a =>
+                            a.Type == activityStoryCfg.Type && a.SubType == activityStoryCfg.SubType &&
+                            a.ChapterId == activityCfg.Params4[i]).ToList();
+
                     storyLevelCfgs.Add(i, storyLevelCfg);
                     if ((i == 0 && !InstanceZonesDataManager.CheckLevelPass(storyLevelCfgs[i][0].Id)) || (i > 0 &&
                             InstanceZonesDataManager.CheckLevelPass(storyLevelCfgs[i - 1][0].Id) &&
@@ -1176,7 +1189,8 @@ namespace GFGGame
         {
             ActivityInfo _activityInfo = ActivityGlobalDataManager.Instance.GetActivityInfo(activityId);
             if (_activityInfo == null) return false;
-            List<ActivityRechargeCfg> _rechargeCfgs = CommonDataManager.Tables.TblActivityRechargeCfg.GetGroup1ByActivityId(activityId);
+            List<ActivityRechargeCfg> _rechargeCfgs =
+                CommonDataManager.Tables.TblActivityRechargeCfg.GetGroup1ByActivityId(activityId);
             for (int i = 0; i < _rechargeCfgs.Count; i++)
             {
                 if (_activityInfo.CountValue >= _rechargeCfgs[i].Value &&
@@ -1205,7 +1219,8 @@ namespace GFGGame
         public bool DailySignRed()
         {
             int _signCount = MathUtil.CountOnes2(GameGlobal.myNumericComponent.GetAsLong(NumericType.SignDay));
-            List<DailySignCfg> signCfgs = CommonDataManager.Tables.TblDailySignCfg.GetGroup1ByMonth(TimeUtil.GetCurMonth());
+            List<DailySignCfg> signCfgs =
+                CommonDataManager.Tables.TblDailySignCfg.GetGroup1ByMonth(TimeUtil.GetCurMonth());
             for (int i = 0; i < signCfgs.Count; i++)
             {
                 bool isGot = MathUtil.isBitSet(GameGlobal.myNumericComponent.GetAsLong(NumericType.SignReward),
@@ -1269,7 +1284,8 @@ namespace GFGGame
         /// <returns></returns>
         public bool GetGoldRed()
         {
-            var shopCfgList = CommonDataManager.Tables.TblShopCfg.GetGroup1ByMenu1AndMenu2(ConstStoreTabId.ENDURING_GIFT_BOX, ConstStoreSubId.ENDURING_GIFT_BOX_GOLD)
+            var shopCfgList = CommonDataManager.Tables.TblShopCfg
+                .GetGroup1ByMenu1AndMenu2(ConstStoreTabId.ENDURING_GIFT_BOX, ConstStoreSubId.ENDURING_GIFT_BOX_GOLD)
                 .OrderBy(a => a.RefreshType).ToList();
             foreach (var shopCfg in shopCfgList)
             {
@@ -1289,7 +1305,8 @@ namespace GFGGame
         /// <returns></returns>
         public bool GetPowerRed()
         {
-            var shopCfgList = CommonDataManager.Tables.TblShopCfg.GetGroup1ByMenu1AndMenu2(ConstStoreTabId.ENDURING_GIFT_BOX, ConstStoreSubId.ENDURING_GIFT_BOX_POWER)
+            var shopCfgList = CommonDataManager.Tables.TblShopCfg
+                .GetGroup1ByMenu1AndMenu2(ConstStoreTabId.ENDURING_GIFT_BOX, ConstStoreSubId.ENDURING_GIFT_BOX_POWER)
                 .OrderBy(a => a.RefreshType).ToList();
             foreach (var shopCfg in shopCfgList)
             {
@@ -1350,8 +1367,10 @@ namespace GFGGame
             int chapterID = CommonDataManager.Tables.TblActivityOpenCfg.GetOrDefault(activityID).Params3[0];
             ActivityFightCfg chapterCfg = CommonDataManager.Tables.TblActivityFightCfg.GetOrDefault(chapterID);
 
-            var list = StoryLevelConfigManager.GetConfigs(chapterCfg.Type,chapterCfg.SubType, chapterCfg.Id);
-                
+            var list = CommonDataManager.Tables.TblStoryLevelCfg.DataList.Where(a =>
+                a.Type == chapterCfg.Type && a.SubType == chapterCfg.SubType &&
+                a.ChapterId ==  chapterCfg.Id).ToList();
+
             RoleLimitData limitData = RoleLimitDataManager.GetLimitData(limit);
             int times = limitData.TotalPlayMax - limitData.PlayTimes;
 

+ 103 - 56
GameClient/Assets/Game/HotUpdate/Data/ScoreSystemData.cs

@@ -12,26 +12,25 @@ namespace GFGGame
         public const int GOOD_CLICK = 1;
         public const int PERFECT_CLICK = 2;
     }
+
     public class SkillBeginTime
     {
-        public const int ROUND_1 = 1;//作用第一回合
-        public const int ROUND_2 = 2;//作用第二回合
-        public const int ROUND_3 = 3;//作用第三回合
-        public const int ROUND_4 = 4;//作用第四回合
-        public const int ROUND_5 = 5;//作用第五回合
-        public const int ROUND_6 = 6;//作用第六回合
-        public const int FIGHT_BEGIN = 7;//对战开始
-        public const int PERFECT_CLICK = 8;//每次完美点击
-        public const int ERVERY_ROUND_BEGIN = 9;//每回合开始
-        public const int ERVERY_ROUND_END = 10;//每回合结束
-        public const int ALL_PERFECT_START = 11;//登封造极开始(所有点击完美才会出现登峰造极)
+        public const int ROUND_1 = 1; //作用第一回合
+        public const int ROUND_2 = 2; //作用第二回合
+        public const int ROUND_3 = 3; //作用第三回合
+        public const int ROUND_4 = 4; //作用第四回合
+        public const int ROUND_5 = 5; //作用第五回合
+        public const int ROUND_6 = 6; //作用第六回合
+        public const int FIGHT_BEGIN = 7; //对战开始
+        public const int PERFECT_CLICK = 8; //每次完美点击
+        public const int ERVERY_ROUND_BEGIN = 9; //每回合开始
+        public const int ERVERY_ROUND_END = 10; //每回合结束
+        public const int ALL_PERFECT_START = 11; //登封造极开始(所有点击完美才会出现登峰造极)
     }
 
 
-
     public class ScoreSystemData : SingletonBase<ScoreSystemData>
     {
-
         /// <summary>
         /// 将穿戴部件分组
         /// </summary>
@@ -47,11 +46,13 @@ namespace GFGGame
                 {
                     roleData.partScoreListDic.Add(cfg.Id, new List<float>());
                 }
+
                 if (roleData.partListDic.ContainsKey(cfg.Id) == false)
                 {
                     roleData.partListDic.Add(cfg.Id, new List<int>());
                 }
             }
+
             for (int i = 0; i < roleData.itemList.Count; i++)
             {
                 for (int j = 0; j < typeCfgs.Count; j++)
@@ -62,7 +63,7 @@ namespace GFGGame
                     for (int k = 0; k < cfg.SubTypes.Count; k++)
                     {
                         ItemCfg itemCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(roleData.itemList[i]);
-                        if (itemCfg !=null && itemCfg.SubType == cfg.SubTypes[k])
+                        if (itemCfg != null && itemCfg.SubType == cfg.SubTypes[k])
                         {
                             roleData.partListDic[cfg.Id].Add(roleData.itemList[i]);
                             roleData.partScoreListDic[cfg.Id].Add(roleData.itemScoreList[i]);
@@ -70,6 +71,7 @@ namespace GFGGame
                             break;
                         }
                     }
+
                     if (isCheckFinish) break;
                 }
             }
@@ -94,8 +96,8 @@ namespace GFGGame
             }
 
 
-
-            return (baseScore + roleData.baseScore + roleData.leagueSkillScore + roleData.cardScore) * ConstScoreSystem.MAIN_SCORE;
+            return (baseScore + roleData.baseScore + roleData.leagueSkillScore + roleData.cardScore) *
+                   ConstScoreSystem.MAIN_SCORE;
         }
 
         public double GetRobotMainScore(FightData robotData)
@@ -108,7 +110,9 @@ namespace GFGGame
             {
                 partScore += GetRobotRoundBaseScore(robotData, i + 1);
             }
-            return (partScore + robotData.baseScore + robotData.leagueSkillScore + robotData.cardScore) * ConstScoreSystem.MAIN_SCORE;
+
+            return (partScore + robotData.baseScore + robotData.leagueSkillScore + robotData.cardScore) *
+                   ConstScoreSystem.MAIN_SCORE;
         }
 
 
@@ -123,7 +127,6 @@ namespace GFGGame
         /// <returns></returns>
         public int GetRoundScore(FightData roleData, int roundId, int clickType, double skillScore = 0)
         {
-
             //部件评分=部件基础分*部件系数
             //词牌评分=总属性*技能配表百分比
             double partBaseScore = GetroundBaseScore(roleData, roundId);
@@ -142,9 +145,10 @@ namespace GFGGame
             //end--------------------------------------------------------
             //改为 点击评分 =(部件基础分+人物基础分)*点击系数
             double clickScore = (partBaseScore + roleScore) * clickCoefficient;
-            int score = (int)Math.Ceiling(partScore + clickScore );
+            int score = (int)Math.Ceiling(partScore + clickScore);
             return Math.Max(0, score);
         }
+
         /// <summary>
         /// 根据搭配学院获得服装分类基础分加成
         /// CollectPartDataManager.partIndex: 1.连衣裙或者上衣、下装及内搭 2.发型 3.外套4.袜子 5.鞋子6.饰品7.手持物
@@ -156,7 +160,7 @@ namespace GFGGame
             switch (roundId)
             {
                 case 1:
-                    additionNum += CollectPartDataManager.Instance.CollectPartDataDic[2][2]/10000;
+                    additionNum += CollectPartDataManager.Instance.CollectPartDataDic[2][2] / 10000;
                     break;
                 case 2:
                     break;
@@ -167,14 +171,18 @@ namespace GFGGame
                     additionNum += CollectPartDataManager.Instance.CollectPartDataDic[7][2] / 10000;
                     break;
                 case 5:
-                    additionNum += CollectPartDataManager.Instance.CollectPartDataDic[4][2] / 10000 + CollectPartDataManager.Instance.CollectPartDataDic[5][2] / 10000;
+                    additionNum += CollectPartDataManager.Instance.CollectPartDataDic[4][2] / 10000 +
+                                   CollectPartDataManager.Instance.CollectPartDataDic[5][2] / 10000;
                     break;
                 case 6:
-                    additionNum += CollectPartDataManager.Instance.CollectPartDataDic[1][2] / 10000 + CollectPartDataManager.Instance.CollectPartDataDic[3][2] / 10000;
+                    additionNum += CollectPartDataManager.Instance.CollectPartDataDic[1][2] / 10000 +
+                                   CollectPartDataManager.Instance.CollectPartDataDic[3][2] / 10000;
                     break;
             }
+
             return additionNum;
         }
+
         public int GetRobotRoundScore(FightData robotData, int roundId, int clickType, double skillScore)
         {
             //部件评分=部件基础分*部件系数
@@ -209,7 +217,8 @@ namespace GFGGame
             double partScore = 0;
             double tagScore = 0;
             int tagCount = 0;
-            if (!roleData.partListDic.ContainsKey(roundId) || roleData.partListDic[roundId].Count == 0) return partScore;
+            if (!roleData.partListDic.ContainsKey(roundId) || roleData.partListDic[roundId].Count == 0)
+                return partScore;
 
             List<int> partList = roleData.partListDic[roundId];
             for (int i = 0; i < partList.Count; i++)
@@ -218,15 +227,18 @@ namespace GFGGame
                 tagScore += ItemDataManager.GetItemTagScore(partList[i], roleData.tags);
                 // if (ItemDataManager.CheckItemTagsRight(partList[i], roleData.tags)) tagCount++;
             }
-            if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.Arena || InstanceZonesDataManager.FightScene == ConstInstanceZonesType.FieldWork)
+
+            if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.Arena ||
+                InstanceZonesDataManager.FightScene == ConstInstanceZonesType.FieldWork)
             {
                 tagCount = ArenaDataManager.Instance.GetTagsCount(roleData.itemList, roleData.tags);
-                tagCount = Math.Min( CommonDataManager.Tables.TblArenaTagCfg.DataList.Count, tagCount);
+                tagCount = Math.Min(CommonDataManager.Tables.TblArenaTagCfg.DataList.Count, tagCount);
                 float addition = 0;
                 if (tagCount > 0)
                 {
                     addition = CommonDataManager.Tables.TblArenaTagCfg.GetOrDefault(tagCount).Addition / 10000f;
                 }
+
                 return (partScore + tagScore) * (1 + addition);
             }
             else
@@ -248,16 +260,19 @@ namespace GFGGame
             {
                 baseScore += GetroundBaseScore(roleData, i + 1);
             }
+
             return baseScore;
         }
 
         private double GetRobotRoundBaseScore(FightData robotData, int roundId)
         {
             double partBaseScore = robotData.itemScoreList[roundId - 1];
-            if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.Arena || InstanceZonesDataManager.FightScene == ConstInstanceZonesType.FieldWork)
+            if (InstanceZonesDataManager.FightScene == ConstInstanceZonesType.Arena ||
+                InstanceZonesDataManager.FightScene == ConstInstanceZonesType.FieldWork)
             {
                 partBaseScore = partBaseScore * (1 + robotData.tagAddition / 10000f);
             }
+
             return partBaseScore;
         }
 
@@ -278,6 +293,7 @@ namespace GFGGame
                     clickCoefficient = ConstScoreSystem.PERFECT_SCORE;
                     break;
             }
+
             return clickCoefficient;
         }
 
@@ -290,13 +306,16 @@ namespace GFGGame
             List<int> roundTimes = new List<int>();
 
 
-            List<PassivitySkillCfg> targetSkillCfgs = CommonDataManager.Tables.TblPassivitySkillCfg.GetGroup1ByCardId(cardId);
+            List<PassivitySkillCfg> targetSkillCfgs =
+                CommonDataManager.Tables.TblPassivitySkillCfg.GetGroup1ByCardId(cardId);
             for (int i = 0; i < targetSkillCfgs.Count; i++)
             {
                 if (skillLvs.Count <= i) continue;
                 int skillLv = skillLvs[i];
-                PassivitySkillLvlCfg skillLvlCfg = CommonDataManager.Tables.TblPassivitySkillLvlCfg.Get(skillLv, targetSkillCfgs[i].SkillId);
-                if (skillLvlCfg.BeginTime == SkillBeginTime.FIGHT_BEGIN && UnityEngine.Random.Range(0, 10000) < skillLvlCfg.Probability)
+                PassivitySkillLvlCfg skillLvlCfg =
+                    CommonDataManager.Tables.TblPassivitySkillLvlCfg.Get(skillLv, targetSkillCfgs[i].SkillId);
+                if (skillLvlCfg.BeginTime == SkillBeginTime.FIGHT_BEGIN &&
+                    UnityEngine.Random.Range(0, 10000) < skillLvlCfg.Probability)
                 {
                     roundTimes.Add(skillLvlCfg.RoundTime);
                 }
@@ -305,6 +324,7 @@ namespace GFGGame
                     roundTimes.Add(0);
                 }
             }
+
             return roundTimes;
         }
 
@@ -313,38 +333,50 @@ namespace GFGGame
         /// 获取有效技能配置,过滤掉:被对方失效的、不符合作用时机、未满足触发概率的技能
         /// </summary>
         /// <returns></returns>
-        public List<PassivitySkillLvlCfg> GetValidSkills(int currentTime, int roundId, int cardId, List<int> skillLvs, int targetCardId, List<int> targetSkillLvs, List<int> roundTimes, List<int> targetRoundTimes)
+        public List<PassivitySkillLvlCfg> GetValidSkills(int currentTime, int roundId, int cardId, List<int> skillLvs,
+            int targetCardId, List<int> targetSkillLvs, List<int> roundTimes, List<int> targetRoundTimes)
         {
             List<PassivitySkillLvlCfg> skillCfgs = new List<PassivitySkillLvlCfg>();
 
-            List<PassivitySkillCfg> targetSkillCfgs = CommonDataManager.Tables.TblPassivitySkillCfg.GetGroup1ByCardId(targetCardId);
+            List<PassivitySkillCfg> targetSkillCfgs =
+                CommonDataManager.Tables.TblPassivitySkillCfg.GetGroup1ByCardId(targetCardId);
             //找到敌方对我的减益技能
             List<int> nullifySkillIndex = new List<int>();
-            for (int i = 0; i < targetSkillCfgs.Count; i++)
+            if (targetSkillCfgs != null)
             {
-                if (targetSkillLvs.Count <= i) continue;
-                PassivitySkillLvlCfg targetSkillLvlCfg = CommonDataManager.Tables.TblPassivitySkillLvlCfg.Get(targetSkillLvs[i], targetSkillCfgs[i].SkillId);
-                if (CheckIsRightTime(targetSkillLvlCfg, currentTime, roundId))
+                for (int i = 0; i < targetSkillCfgs.Count; i++)
                 {
-                    bool isProbability = targetSkillLvlCfg.NullifySkillIndex > 0 && UnityEngine.Random.Range(0, 10000) < targetSkillLvlCfg.Probability;
-                    if (targetSkillLvlCfg.BeginTime == SkillBeginTime.FIGHT_BEGIN && targetRoundTimes.Count > i && roundId < targetRoundTimes[i]) isProbability = true;
-                    if (isProbability) nullifySkillIndex.Add(targetSkillLvlCfg.NullifySkillIndex);
+                    if (targetSkillLvs.Count <= i) continue;
+                    PassivitySkillLvlCfg targetSkillLvlCfg =
+                        CommonDataManager.Tables.TblPassivitySkillLvlCfg.Get(targetSkillLvs[i],
+                            targetSkillCfgs[i].SkillId);
+                    if (CheckIsRightTime(targetSkillLvlCfg, currentTime, roundId))
+                    {
+                        bool isProbability = targetSkillLvlCfg.NullifySkillIndex > 0 &&
+                                             UnityEngine.Random.Range(0, 10000) < targetSkillLvlCfg.Probability;
+                        if (targetSkillLvlCfg.BeginTime == SkillBeginTime.FIGHT_BEGIN && targetRoundTimes.Count > i &&
+                            roundId < targetRoundTimes[i]) isProbability = true;
+                        if (isProbability) nullifySkillIndex.Add(targetSkillLvlCfg.NullifySkillIndex);
+                    }
                 }
             }
-
-            List<PassivitySkillCfg> mySkillCfgs = CommonDataManager.Tables.TblPassivitySkillCfg.GetGroup1ByCardId(cardId);
+            
+            List<PassivitySkillCfg> mySkillCfgs =
+                CommonDataManager.Tables.TblPassivitySkillCfg.GetGroup1ByCardId(cardId);
 
             for (int i = 0; i < mySkillCfgs.Count; i++)
             {
                 if (skillLvs.Count <= i) continue;
-                PassivitySkillLvlCfg mySkillLvlCfg = CommonDataManager.Tables.TblPassivitySkillLvlCfg.Get(skillLvs[i], mySkillCfgs[i].SkillId);
+                PassivitySkillLvlCfg mySkillLvlCfg =
+                    CommonDataManager.Tables.TblPassivitySkillLvlCfg.Get(skillLvs[i], mySkillCfgs[i].SkillId);
 
-                if (nullifySkillIndex.IndexOf(i + 1) >= 0) continue;//技能被对手失效
+                if (nullifySkillIndex.IndexOf(i + 1) >= 0) continue; //技能被对手失效
 
                 if (CheckIsRightTime(mySkillLvlCfg, currentTime, roundId))
                 {
                     bool isProbability = UnityEngine.Random.Range(0, 10000) < mySkillLvlCfg.Probability;
-                    if ((mySkillLvlCfg.BeginTime == currentTime || roundId == mySkillLvlCfg.BeginTime) && roundTimes != null /*&& roundId < roundTimes[i]*/) 
+                    if ((mySkillLvlCfg.BeginTime == currentTime || roundId == mySkillLvlCfg.BeginTime) &&
+                        roundTimes != null /*&& roundId < roundTimes[i]*/)
                         isProbability = true;
                     else
                         isProbability = false;
@@ -352,53 +384,62 @@ namespace GFGGame
                     if (isProbability) skillCfgs.Add(mySkillLvlCfg);
                 }
             }
+
             return skillCfgs;
         }
 
         private bool CheckIsRightTime(PassivitySkillLvlCfg skillLvlCfg, int currentTime, int roundId)
         {
-
             if (skillLvlCfg.BeginTime == SkillBeginTime.FIGHT_BEGIN && currentTime == SkillBeginTime.ERVERY_ROUND_BEGIN
-          || skillLvlCfg.BeginTime == SkillBeginTime.PERFECT_CLICK && currentTime == SkillBeginTime.PERFECT_CLICK
-          || skillLvlCfg.BeginTime == SkillBeginTime.ERVERY_ROUND_BEGIN && currentTime == SkillBeginTime.ERVERY_ROUND_BEGIN
-          || skillLvlCfg.BeginTime == SkillBeginTime.ERVERY_ROUND_END && currentTime == SkillBeginTime.ERVERY_ROUND_END
-          || skillLvlCfg.BeginTime == SkillBeginTime.ALL_PERFECT_START && currentTime == SkillBeginTime.ALL_PERFECT_START
-          || skillLvlCfg.BeginTime == SkillBeginTime.FIGHT_BEGIN && currentTime == SkillBeginTime.FIGHT_BEGIN
-          || skillLvlCfg.BeginTime <= SkillBeginTime.ROUND_6 && currentTime == SkillBeginTime.ERVERY_ROUND_BEGIN && roundId == skillLvlCfg.BeginTime)
+                || skillLvlCfg.BeginTime == SkillBeginTime.PERFECT_CLICK && currentTime == SkillBeginTime.PERFECT_CLICK
+                || skillLvlCfg.BeginTime == SkillBeginTime.ERVERY_ROUND_BEGIN &&
+                currentTime == SkillBeginTime.ERVERY_ROUND_BEGIN
+                || skillLvlCfg.BeginTime == SkillBeginTime.ERVERY_ROUND_END &&
+                currentTime == SkillBeginTime.ERVERY_ROUND_END
+                || skillLvlCfg.BeginTime == SkillBeginTime.ALL_PERFECT_START &&
+                currentTime == SkillBeginTime.ALL_PERFECT_START
+                || skillLvlCfg.BeginTime == SkillBeginTime.FIGHT_BEGIN && currentTime == SkillBeginTime.FIGHT_BEGIN
+                || skillLvlCfg.BeginTime <= SkillBeginTime.ROUND_6 &&
+                currentTime == SkillBeginTime.ERVERY_ROUND_BEGIN && roundId == skillLvlCfg.BeginTime)
             {
                 return true;
             }
+
             return false;
         }
+
         /// <summary>
         /// 本轮技能分数
         /// </summary>
         /// <param name="validSkills">有效技能列表</param>
         /// <param name="mainScore">总主属性</param>
         /// <returns></returns>
-        public void GetRoundItemSkillScore(List<PassivitySkillLvlCfg> validSkills, double mainScore, double targetMainScore, out int skillScore, out int targetScore, out Dictionary<int, int> skillsToShowDic)
+        public void GetRoundItemSkillScore(List<PassivitySkillLvlCfg> validSkills, double mainScore,
+            double targetMainScore, out int skillScore, out int targetScore, out Dictionary<int, int> skillsToShowDic)
         {
             double _skillScore = 0;
             double _targetSkillScore = 0;
             skillsToShowDic = new Dictionary<int, int>();
             for (int i = 0; i < validSkills.Count; i++)
             {
-                if (validSkills[i].Target == 1 && mainScore > 0)//作用自身
+                if (validSkills[i].Target == 1 && mainScore > 0) //作用自身
                 {
                     double score = mainScore * validSkills[i].Ratio / 10000;
                     _skillScore += score;
                     skillsToShowDic.Add(validSkills[i].SkillId, (int)Math.Ceiling(score));
                 }
-                else if (validSkills[i].Target == 2 && targetMainScore > 0)//作用对方
+                else if (validSkills[i].Target == 2 && targetMainScore > 0) //作用对方
                 {
                     double score = mainScore * validSkills[i].Ratio / 10000;
                     _targetSkillScore += score;
                     skillsToShowDic.Add(validSkills[i].SkillId, (int)Math.Ceiling(score));
                 }
             }
+
             skillScore = (int)Math.Ceiling(_skillScore);
             targetScore = (int)Math.Ceiling(_targetSkillScore);
         }
+
         /// <summary>
         /// 是否展示词牌效果
         /// </summary>
@@ -407,8 +448,8 @@ namespace GFGGame
         /// <returns></returns>
         public bool IsShowCard(int cardId, List<PassivitySkillLvlCfg> validSkills)
         {
-            if (cardId <= 0) return false;//未选卡
-            if (validSkills.Count == 0) return false;//本轮没有技能被触发不显示词牌
+            if (cardId <= 0) return false; //未选卡
+            if (validSkills.Count == 0) return false; //本轮没有技能被触发不显示词牌
             List<PassivitySkillCfg> skillCfgs = CommonDataManager.Tables.TblPassivitySkillCfg.GetGroup1ByCardId(cardId);
             for (int i = 0; i < skillCfgs.Count; i++)
             {
@@ -417,8 +458,10 @@ namespace GFGGame
                     return true;
                 }
             }
+
             return false;
         }
+
         /// <summary>
         /// 登峰造极额外加分
         /// </summary>
@@ -428,7 +471,8 @@ namespace GFGGame
         {
             //登峰造极评分 = (部件基础分之和 + 人物基础分)*卓越点击系数 * 3
             double allPartsBaseScore = GetAllRoundBaseScore(fightData);
-            return (int)Math.Ceiling((allPartsBaseScore + (double)fightData.baseScore)* ConstScoreSystem.PERFECT_SCORE * ConstScoreSystem.ALL_CIRCLE_SCORE);
+            return (int)Math.Ceiling((allPartsBaseScore + (double)fightData.baseScore) *
+                                     ConstScoreSystem.PERFECT_SCORE * ConstScoreSystem.ALL_CIRCLE_SCORE);
         }
 
 
@@ -454,6 +498,7 @@ namespace GFGGame
                     return skillCfgs[i];
                 }
             }
+
             return null;
         }
 
@@ -473,6 +518,7 @@ namespace GFGGame
                 Debug.LogWarning(cardId + " 这张卡片没有配置技能");
                 return null;
             }
+
             // foreach (int key in cfgs.Keys)
             // {
             for (int i = 0; i < skillCfgs.Count; i++)
@@ -485,6 +531,7 @@ namespace GFGGame
                     return skillCfgs[i];
                 }
             }
+
             return null;
         }
     }

+ 47 - 20
GameClient/Assets/Game/HotUpdate/Data/ShopDataManager.cs

@@ -6,7 +6,6 @@ using ET;
 
 namespace GFGGame
 {
-
     public class ShopDataManager : SingletonBase<ShopDataManager>
     {
         public string[] refreshType = { "永久限购", "每日限购", "每周限购", "每月限购" };
@@ -14,6 +13,7 @@ namespace GFGGame
         private Dictionary<int, int> _goodsDic = new Dictionary<int, int>();
 
         public List<int> GrowthFundRewardList = new List<int>();
+
         public void Clear()
         {
             _goodsDic.Clear();
@@ -32,24 +32,28 @@ namespace GFGGame
         }
 
         /************************************************************************************************************/
-        
+
         public List<ShopCfg> GetList(int storeId, int typeIndex, int scoreType)
         {
             List<ShopCfg> shopCfgs = null;
             switch (storeId)
             {
                 case ConstStoreId.CLOTHING_STORE_ID:
-                    shopCfgs =  ShopConfigManager.GetConfigs(ConstStoreTabId.FU_ZHUANG_DIAN, ConstStoreSubId.FU_ZHUANG_DIAN, typeIndex.ToString());
+                    shopCfgs = ShopConfigManager.Instance.GetConfigs(ConstStoreTabId.FU_ZHUANG_DIAN,
+                        ConstStoreSubId.FU_ZHUANG_DIAN, typeIndex.ToString());
                     break;
                 case ConstStoreId.GALLERY_STORE_ID:
-                    shopCfgs = ShopConfigManager.GetConfigs(ConstStoreTabId.STORE_EXCHANGE, ConstStoreSubId.STORE_EXCHANGE_GALLERY, typeIndex.ToString());
+                    shopCfgs = ShopConfigManager.Instance.GetConfigs(ConstStoreTabId.STORE_EXCHANGE,
+                        ConstStoreSubId.STORE_EXCHANGE_GALLERY, typeIndex.ToString());
                     break;
             }
+
             SortItemListByScore(shopCfgs, scoreType);
             return shopCfgs;
         }
 
-        public void GetMoneyIdAndNum(int buyId, int count, int shopType, out int costId, out int costNum, out int buyNum)
+        public void GetMoneyIdAndNum(int buyId, int count, int shopType, out int costId, out int costNum,
+            out int buyNum)
         {
             ShopCfg shopCfg = CommonDataManager.Tables.TblShopCfg.GetOrDefault(buyId);
 
@@ -113,17 +117,20 @@ namespace GFGGame
             List<ShopCfg> shopCfgs = new List<ShopCfg>();
             for (int i = shop.Count - 1; i >= 0; i--)
             {
-                if (!string.IsNullOrEmpty(shop[i].StartTime) && !TimeUtil.IsBeforeCurTime(shop[i].StartTime) || !string.IsNullOrEmpty(shop[i].EndTime) && !TimeUtil.IsLaterCurTime(shop[i].EndTime))
+                if (!string.IsNullOrEmpty(shop[i].StartTime) && !TimeUtil.IsBeforeCurTime(shop[i].StartTime) ||
+                    !string.IsNullOrEmpty(shop[i].EndTime) && !TimeUtil.IsLaterCurTime(shop[i].EndTime))
                 {
                     continue;
                 }
+
                 shopCfgs.Add(shop[i]);
             }
+
             return shopCfgs;
         }
 
         //移除原价商品
-        public List<ShopCfg> RemoveNotSaleCfg(List<ShopCfg> shop,List<int> idList)
+        public List<ShopCfg> RemoveNotSaleCfg(List<ShopCfg> shop, List<int> idList)
         {
             List<ShopCfg> shopCfgs = new List<ShopCfg>();
             for (int i = 0; i < idList.Count; i++)
@@ -131,8 +138,10 @@ namespace GFGGame
                 ShopCfg shopcfg = CommonDataManager.Tables.TblShopCfg.GetOrDefault(idList[i]);
                 shopCfgs.Add(shopcfg);
             }
+
             return shopCfgs;
         }
+
         //商品排序
         public List<ShopCfg> SortShopGoodsCfgs(List<ShopCfg> shopCfgs)
         {
@@ -144,13 +153,14 @@ namespace GFGGame
                 if (buyTypeA > buyTypeB) return -1;
                 if (buyTypeA < buyTypeB) return 1;
                 int sortTypeA = a.Sort == 0 ? 999 : a.Sort;
-                int sortTypeB = b.Sort == 0 ? 999 : b.Sort; 
+                int sortTypeB = b.Sort == 0 ? 999 : b.Sort;
                 if (sortTypeA > sortTypeB) return 1;
                 if (sortTypeA < sortTypeB) return -1;
                 return a.Id - b.Id;
             });
             return shopCfgs;
         }
+
         //获取商店所有消耗品id列表
         public List<int> GetShopCostIds(List<ShopCfg> shopCfgs)
         {
@@ -163,8 +173,10 @@ namespace GFGGame
                     costIds.Add(shopCfgs[i].CostIdReal);
                 }
             }
+
             return costIds;
         }
+
         /// <summary>
         /// 根据商品Id获取商品是否已解锁
         /// /// </summary>
@@ -193,15 +205,22 @@ namespace GFGGame
             else if (shopCfg.LockType == LockType.AREND_GRADE)
             {
                 int lockValue = shopCfg.LockValue;
-                if (shopCfg.Menu1 == ConstStoreTabId.STORE_ARENA && shopCfg.Menu2 != ConstStoreSubId.STORE_ARENA_ITEM && shopCfg.Menu2 < ArenaDataManager.Instance.SeasonId)
+                if (shopCfg.Menu1 == ConstStoreTabId.STORE_ARENA && shopCfg.Menu2 != ConstStoreSubId.STORE_ARENA_ITEM &&
+                    shopCfg.Menu2 < ArenaDataManager.Instance.SeasonId)
                 {
-                    bool isDown = ArenaDataManager.Instance.SeasonId - CommonDataManager.Tables.TblGlobalCfg.SeasonReduce > 0;
-                    lockValue = isDown ? Math.Max(1, shopCfg.LockValue - CommonDataManager.Tables.TblGlobalCfg.RankReduce) : shopCfg.LockValue;
+                    bool isDown = ArenaDataManager.Instance.SeasonId -
+                        CommonDataManager.Tables.TblGlobalCfg.SeasonReduce > 0;
+                    lockValue = isDown
+                        ? Math.Max(1, shopCfg.LockValue - CommonDataManager.Tables.TblGlobalCfg.RankReduce)
+                        : shopCfg.LockValue;
                 }
+
                 return ArenaDataManager.Instance.HighestGrade >= lockValue;
             }
+
             return true;
         }
+
         /// <summary>
         /// 根据商品Id获取商品解锁提示
         /// /// </summary>
@@ -213,7 +232,8 @@ namespace GFGGame
             if (shopCfg.LockType == LockType.STORY_LV)
             {
                 StoryLevelCfg storyLevelCfg = CommonDataManager.Tables.TblStoryLevelCfg.GetOrDefault(shopCfg.LockValue);
-                return string.Format("通关{0}-{1}解锁", StoryUtil.GetChapterOrder(storyLevelCfg.ChapterId), storyLevelCfg.Order);
+                return string.Format("通关{0}-{1}解锁", StoryUtil.GetChapterOrder(storyLevelCfg.ChapterId),
+                    storyLevelCfg.Order);
             }
             else if (shopCfg.LockType == LockType.ROLE_LV)
             {
@@ -226,17 +246,24 @@ namespace GFGGame
             else if (shopCfg.LockType == LockType.AREND_GRADE)
             {
                 int lockValue = shopCfg.LockValue;
-                if (shopCfg.Menu1 == ConstStoreTabId.STORE_ARENA && shopCfg.Menu2 != ConstStoreSubId.STORE_ARENA_ITEM && shopCfg.Menu2 < ArenaDataManager.Instance.SeasonId)
+                if (shopCfg.Menu1 == ConstStoreTabId.STORE_ARENA && shopCfg.Menu2 != ConstStoreSubId.STORE_ARENA_ITEM &&
+                    shopCfg.Menu2 < ArenaDataManager.Instance.SeasonId)
                 {
-                    bool isDown = ArenaDataManager.Instance.SeasonId - CommonDataManager.Tables.TblGlobalCfg.SeasonReduce > 0;
-                    lockValue = isDown ? Math.Max(1, shopCfg.LockValue - CommonDataManager.Tables.TblGlobalCfg.RankReduce) : shopCfg.LockValue;
+                    bool isDown = ArenaDataManager.Instance.SeasonId -
+                        CommonDataManager.Tables.TblGlobalCfg.SeasonReduce > 0;
+                    lockValue = isDown
+                        ? Math.Max(1, shopCfg.LockValue - CommonDataManager.Tables.TblGlobalCfg.RankReduce)
+                        : shopCfg.LockValue;
                 }
+
                 ArenaRankCfg arenaRankCfg = CommonDataManager.Tables.TblArenaRankCfg.GetOrDefault(lockValue);
 
                 return string.Format("飞花令段位达到{0}解锁", arenaRankCfg.GradeName);
             }
+
             return "";
         }
+
         /// <summary>
         /// 根据商品id获取下架时间
         /// </summary>
@@ -261,8 +288,6 @@ namespace GFGGame
         }
 
 
-
-
         // public List<ShopCfg> SortGiftBagCfgs(List<ShopCfg> shopCfgs)
         // {
         //     shopCfgs.Sort((ShopCfg a, ShopCfg b) =>
@@ -369,7 +394,7 @@ namespace GFGGame
         /// <summary>
         /// 返回活动商城是否显示
         /// /// </summary>
-        public bool GetShopActivityIsShow(int shopType,int menuType)
+        public bool GetShopActivityIsShow(int shopType, int menuType)
         {
             List<ShopCfg> shopCfgs = CommonDataManager.Tables.TblShopCfg.GetGroup1ByMenu1AndMenu2(shopType, menuType);
             if (ShopDataManager.Instance.RemoveNotOpenCfg(shopCfgs).Count == 0)
@@ -378,9 +403,10 @@ namespace GFGGame
                 return true;
         }
 
-        public bool GetShopIdCanBuyInShop(int menuType,List<int> shopListId)
+        public bool GetShopIdCanBuyInShop(int menuType, List<int> shopListId)
         {
-            List<ShopCfg> shopCfgs = CommonDataManager.Tables.TblShopCfg.GetGroup1ByMenu1AndMenu2(ConstStoreTabId.STORE_GIFT_BAG, menuType);
+            List<ShopCfg> shopCfgs =
+                CommonDataManager.Tables.TblShopCfg.GetGroup1ByMenu1AndMenu2(ConstStoreTabId.STORE_GIFT_BAG, menuType);
             if (ShopDataManager.Instance.RemoveNotOpenCfg(shopCfgs).Count == 0)
                 return false;
 
@@ -393,6 +419,7 @@ namespace GFGGame
                         return true;
                 }
             }
+
             return false;
         }
     }

+ 42 - 27
GameClient/Assets/Game/HotUpdate/Data/StudioDataManager.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using System.Linq;
 using cfg.GfgCfg;
 using ET;
 using GFGGame;
@@ -10,23 +11,22 @@ namespace GFGGame
     public class StudioDataManager : SingletonBase<StudioDataManager>
     {
         private Dictionary<int, StudioData> _StudioInfoById = new Dictionary<int, StudioData>();
+
         // public int TYPE_SELECT_INDEX = 0;//界面类型0无属性选择,1有属性选择
-        public int PROPERTY_SELECT_INDEX = 0;//属性类型
-        public string VIEW_NAME = "";//界面名称
+        public int PROPERTY_SELECT_INDEX = 0; //属性类型
+        public string VIEW_NAME = ""; //界面名称
 
-        public int filingChapterId;//查阅建档当前副本Id
-        public int npcFilingChapterId;//记录查阅建档工作室入口id,为与限时活动章节做区分。
-        private int luckyBoxFilingChapterId;//查阅建档这个章节是限时抽奖活动专属
+        public int filingChapterId; //查阅建档当前副本Id
+        public int npcFilingChapterId; //记录查阅建档工作室入口id,为与限时活动章节做区分。
+        private int luckyBoxFilingChapterId; //查阅建档这个章节是限时抽奖活动专属
 
-        public int PorcelainTheme = 1;//瓷器修复当天主题
+        public int PorcelainTheme = 1; //瓷器修复当天主题
 
         public List<StudioCfg> FilingDatas
         {
-            get
-            {
-                return CommonDataManager.Tables.TblStudioCfg.GetGroup1ByFunId(typeof(StudioFilingView).Name);
-            }
+            get { return CommonDataManager.Tables.TblStudioCfg.GetGroup1ByFunId(typeof(StudioFilingView).Name); }
         }
+
         public void Clear()
         {
             _StudioInfoById.Clear();
@@ -39,13 +39,13 @@ namespace GFGGame
             {
                 _StudioInfoById.Add(studioData.ChapterId, studioData);
             }
+
             _StudioInfoById[studioData.ChapterId] = studioData;
         }
 
         public void RspFilingScoreReward(int chapterId, int index)
         {
             _StudioInfoById[chapterId].RewardsStatus[index] = ConstBonusStatus.GOT;
-
         }
 
         public void NoticeFilingScoreBonusChanged(int chapterId, int chapterScore, List<int> rewardsStatus)
@@ -80,19 +80,19 @@ namespace GFGGame
             {
                 isLastPast = InstanceZonesDataManager.CheckLevelPass(storyLevelCfgs[index - 1].Id);
             }
+
             content = "";
             if (!isRoleLv) content = string.Format("主角等级达到{0}级解锁", storyLevelCfg.NeedRoleLv);
             if (!isLastPast) content = "需通关前置关卡";
-            StoryLevelCfg needStoryLevelCfg = CommonDataManager.Tables.TblStoryLevelCfg.GetOrDefault(storyLevelCfg.NeedStoryLevelId);
+            StoryLevelCfg needStoryLevelCfg =
+                CommonDataManager.Tables.TblStoryLevelCfg.GetOrDefault(storyLevelCfg.NeedStoryLevelId);
             if (!isPass) content = string.Format("完成主线{0}-{1}解锁", needStoryLevelCfg.ChapterId, needStoryLevelCfg.Order);
             canFight = isPass && isRoleLv && isLastPast;
         }
 
 
-
         public void IsCanFight(int levelId, out bool canFight, out string content)
         {
-
             StoryLevelCfg storyLevelCfg = CommonDataManager.Tables.TblStoryLevelCfg.GetOrDefault(levelId);
             StudioCfg cfg = CommonDataManager.Tables.TblStudioCfg.GetOrDefault(storyLevelCfg.ChapterId);
             int needStoryLevelId = 0;
@@ -114,9 +114,10 @@ namespace GFGGame
             {
                 isPass = InstanceZonesDataManager.CheckLevelPass(needStoryLevelId);
             }
-            
+
             StoryLevelCfg needStoryLevelCfg = CommonDataManager.Tables.TblStoryLevelCfg.GetOrDefault(needStoryLevelId);
-            if (!isPass && needStoryLevelCfg != null) content = string.Format("完成主线{0}-{1}解锁", needStoryLevelCfg.ChapterId, needStoryLevelCfg.Order);
+            if (!isPass && needStoryLevelCfg != null)
+                content = string.Format("完成主线{0}-{1}解锁", needStoryLevelCfg.ChapterId, needStoryLevelCfg.Order);
 
 
             bool isRoleLv = GameGlobal.myNumericComponent.GetAsInt(NumericType.Lvl) >= storyLevelCfg.NeedRoleLv;
@@ -124,12 +125,15 @@ namespace GFGGame
 
             bool isLastPast = true;
             int lastIndex = storyLevelCfg.Order - 1 - 1;
-            List<StoryLevelCfg> storyLevelCfgs = StoryLevelConfigManager.GetConfigs(storyLevelCfg.Type, storyLevelCfg.SubType, storyLevelCfg.ChapterId);
+            List<StoryLevelCfg> storyLevelCfgs = CommonDataManager.Tables.TblStoryLevelCfg.DataList.Where(a =>
+                a.Type == storyLevelCfg.Type && a.SubType == storyLevelCfg.SubType &&
+                a.ChapterId == storyLevelCfg.ChapterId).ToList();
+
             if (lastIndex >= 0)
             {
                 isLastPast = InstanceZonesDataManager.CheckLevelPass(storyLevelCfgs[lastIndex].Id);
-
             }
+
             if (!isLastPast) content = string.Format("需通关{0}", storyLevelCfgs[lastIndex].Name);
 
             content = "";
@@ -146,9 +150,11 @@ namespace GFGGame
         {
             ViewManager.Show<ActivityZCJBChapterView>(new object[] { ActivityDataManager.Instance.activityZCJBId, 2 });
         }
+
         public void OnFinishTimeTracingLevel(int levelCfgId, bool firstPass, bool success)
         {
-            ViewManager.Show<TimeTracingLevelView>(new object[] { TimeTracingDataManager._currentChapterId, TimeTracingDataManager.SuitID});
+            ViewManager.Show<TimeTracingLevelView>(new object[]
+                { TimeTracingDataManager._currentChapterId, TimeTracingDataManager.SuitID });
         }
 
         public void OnFinishFilingStoryLevel(int levelCfgId, bool firstPass, bool success)
@@ -168,6 +174,7 @@ namespace GFGGame
                     addition += itemCfg.Addition;
                 }
             }
+
             return addition;
         }
 
@@ -178,6 +185,7 @@ namespace GFGGame
             {
                 addition += GetAdditionBySuitId(suitIds[i]);
             }
+
             return addition;
         }
 
@@ -185,11 +193,13 @@ namespace GFGGame
         {
             float addition;
             // 开服活动
-            if (type == ConstInstanceZonesType.PureFight) {
+            if (type == ConstInstanceZonesType.PureFight)
+            {
                 ActivityFightCfg fightCfg = CommonDataManager.Tables.TblActivityFightCfg.GetOrDefault(filingChapterId);
                 addition = GetAdditionBySuitIds(fightCfg.ActivitySuitId);
             }
-            else {
+            else
+            {
                 StudioCfg filingCfg = CommonDataManager.Tables.TblStudioCfg.GetOrDefault(filingChapterId);
                 // 活动
                 if (IsluckyBoxFilingChapter())
@@ -198,6 +208,7 @@ namespace GFGGame
                 else
                     addition = GetAdditionBySuitId(filingCfg.SuitId);
             }
+
             return addition;
         }
 
@@ -213,16 +224,17 @@ namespace GFGGame
                 }
                 else if (studioData.RewardsStatus[i] == ConstBonusStatus.CAN_NOT_GET)
                 {
-                    return false;//奖励按顺序领取,第一个不可领则没有可领奖励
+                    return false; //奖励按顺序领取,第一个不可领则没有可领奖励
                 }
             }
+
             return false;
         }
+
         public int GetFilingRewardStateByIndex(int chapterId, int index)
         {
             StudioData studioData = GetStudioDataById(chapterId);
             return studioData.RewardsStatus.Count > index ? studioData.RewardsStatus[index] : 0;
-
         }
 
         public List<int> GetFilingRewardList(int id)
@@ -240,11 +252,14 @@ namespace GFGGame
         {
             if (luckyBoxFilingChapterId == 0)
             {
-                int activityId = ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitLuckyBox);
+                int activityId =
+                    ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitLuckyBox);
 
                 ActivityOpenCfg activityCfg = CommonDataManager.Tables.TblActivityOpenCfg.GetOrDefault(activityId);
-                luckyBoxFilingChapterId = (activityCfg != null && activityCfg.Params3 != null) ? activityCfg.Params3[0] : 0;
+                luckyBoxFilingChapterId =
+                    (activityCfg != null && activityCfg.Params3 != null) ? activityCfg.Params3[0] : 0;
             }
+
             return luckyBoxFilingChapterId;
         }
 
@@ -252,7 +267,8 @@ namespace GFGGame
         public bool GetStudioFilingRewardRed()
         {
             var rewardList = StudioDataManager.Instance.GetFilingRewardList(StudioDataManager.Instance.filingChapterId);
-            for (int i = 0; i < rewardList.Count; i++) { 
+            for (int i = 0; i < rewardList.Count; i++)
+            {
                 if (i < rewardList.Count && rewardList[i] == ConstBonusStatus.CAN_GET)
                 {
                     return true;
@@ -261,6 +277,5 @@ namespace GFGGame
 
             return false;
         }
-
     }
 }

+ 65 - 28
GameClient/Assets/Game/HotUpdate/Data/TimeTracingDataManager.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using System.Linq;
 using cfg.GfgCfg;
 using UnityEngine;
 using ET;
@@ -9,42 +10,56 @@ namespace GFGGame
     public class TimeTracingDataManager : SingletonBase<TimeTracingDataManager>
     {
         public List<int> IdList = new List<int>() { 5017, 5018 };
+
         public List<int> chapterIdList = new List<int>();
+
         //时光回溯,关卡编号
         public static int _currentChapterId = 62001;
+
         //时光回溯,合成套装副本当前展示套装
         public static int SuitID = 201030;
+
         //时光回溯刷新时间
         public static long RefreshTime = 0;
+
         //章节积分奖励列表
         public static List<int> ChapterRewardDic = new List<int>();
+
         //关卡评分奖励列表
-        public static Dictionary<int , Dictionary<int, int>> LevelRewardDic = new Dictionary<int, Dictionary<int, int>>();
+        public static Dictionary<int, Dictionary<int, int>>
+            LevelRewardDic = new Dictionary<int, Dictionary<int, int>>();
+
         //关卡信息
-        public static Dictionary<int, Dictionary<int, LevelRoleInfoProto>> _LevelMaxInfoDic = new Dictionary<int, Dictionary<int, LevelRoleInfoProto>>();
+        public static Dictionary<int, Dictionary<int, LevelRoleInfoProto>> _LevelMaxInfoDic =
+            new Dictionary<int, Dictionary<int, LevelRoleInfoProto>>();
 
         public Dictionary<int, SuitCollectRankProto> mySuitRankInfo = new Dictionary<int, SuitCollectRankProto>()
         {
-            {0,new SuitCollectRankProto()},
-            {1,new SuitCollectRankProto()},
+            { 0, new SuitCollectRankProto() },
+            { 1, new SuitCollectRankProto() },
         };
+
         public Dictionary<int, LevelRankProto> myLevelRankInfo = new Dictionary<int, LevelRankProto>()
         {
-            { 0,new LevelRankProto() },
-            { 1,new LevelRankProto() },
+            { 0, new LevelRankProto() },
+            { 1, new LevelRankProto() },
         };
+
         //套装排行榜数据
-        public Dictionary<int, List<SuitCollectRankProto>> SuitRankDatasDic = new Dictionary<int, List<SuitCollectRankProto>>()
-        {
-            {0,new List<SuitCollectRankProto>() },
-            {1,new List<SuitCollectRankProto>() },
-        };
+        public Dictionary<int, List<SuitCollectRankProto>> SuitRankDatasDic =
+            new Dictionary<int, List<SuitCollectRankProto>>()
+            {
+                { 0, new List<SuitCollectRankProto>() },
+                { 1, new List<SuitCollectRankProto>() },
+            };
+
         //关卡排行榜数据
-        public Dictionary<int, List<LevelRankProto>> LevelRankDatasDic = new Dictionary<int, List<LevelRankProto>>() 
+        public Dictionary<int, List<LevelRankProto>> LevelRankDatasDic = new Dictionary<int, List<LevelRankProto>>()
         {
-            {0,new List<LevelRankProto>()},
-            {1,new List<LevelRankProto>()},
+            { 0, new List<LevelRankProto>() },
+            { 1, new List<LevelRankProto>() },
         };
+
         public void InitRewardDic()
         {
             chapterIdList.Clear();
@@ -52,28 +67,32 @@ namespace GFGGame
             {
                 return;
             }
+
             foreach (int i in IdList)
             {
-                chapterIdList.Add( CommonDataManager.Tables.TblActivityOpenCfg.GetOrDefault(i).Params3[0]);
+                chapterIdList.Add(CommonDataManager.Tables.TblActivityOpenCfg.GetOrDefault(i).Params3[0]);
             }
         }
+
         //获取关卡奖励状态
         public bool GetLevelRewardStatus(int levelID = 0)
         {
-            if(ActivityDataManager.Instance.GetCurOpenActiveByType(21) == 0)
+            if (ActivityDataManager.Instance.GetCurOpenActiveByType(21) == 0)
             {
                 return false;
             }
+
             if (levelID == 0)
             {
                 return GetAllLevelRewardStatus(true);
             }
             else
             {
-                if(!LevelRewardDic.ContainsKey(levelID))
+                if (!LevelRewardDic.ContainsKey(levelID))
                 {
                     return false;
                 }
+
                 foreach (var status in LevelRewardDic[levelID])
                 {
                     if (status.Value == ConstBonusStatus.CAN_GET)
@@ -82,24 +101,28 @@ namespace GFGGame
                     }
                 }
             }
+
             return false;
         }
+
         //获取套装奖励状态
-        public bool GetChapterRewardStatus(int levelID,int rewardID,int itemID)
+        public bool GetChapterRewardStatus(int levelID, int rewardID, int itemID)
         {
             //这里对已领取的id进行判断
             if (levelID != 0)
             {
                 foreach (var item in ChapterRewardDic)
                 {
-                    if(rewardID == item)
+                    if (rewardID == item)
                     {
                         return false;
                     }
                 }
             }
+
             return true;
         }
+
         //获取对应id奖励状态
         public int GetChapterRewardIDStatus(int rewardID, int itemID)
         {
@@ -114,10 +137,12 @@ namespace GFGGame
             {
                 num = 0;
             }
-            if(num < comCfg.Count)
+
+            if (num < comCfg.Count)
             {
                 return ConstBonusStatus.CAN_NOT_GET;
             }
+
             //这里对已领取的id进行判断
             foreach (var item in ChapterRewardDic)
             {
@@ -126,8 +151,10 @@ namespace GFGGame
                     return ConstBonusStatus.GOT;
                 }
             }
+
             return ConstBonusStatus.CAN_GET;
         }
+
         //获取所有奖励(只用于红点判断)
         public bool GetAllLevelRewardStatus(bool isLevel = true)
         {
@@ -146,6 +173,7 @@ namespace GFGGame
                         }
                     }
                 }
+
                 return false;
             }
             else
@@ -157,22 +185,28 @@ namespace GFGGame
         //通过章节id判断所有奖励状态
         public bool GetChapterIDRewardStatus(int chapID)
         {
-            List<CompositebonusCfg> comBonusList = CommonDataManager.Tables.TblCompositebonusCfg.GetGroup1ByChapterId(chapID);
-            foreach(CompositebonusCfg item in comBonusList)
+            List<CompositebonusCfg> comBonusList =
+                CommonDataManager.Tables.TblCompositebonusCfg.GetGroup1ByChapterId(chapID);
+            foreach (CompositebonusCfg item in comBonusList)
             {
                 if (GetChapterRewardIDStatus(item.Id, item.Params1[0]) == 1)
                 {
                     return true;
                 }
             }
-            List<StoryLevelCfg> levelList = StoryLevelConfigManager.GetConfigs(6, 2, chapID);
-            foreach(StoryLevelCfg levelItem in levelList)
+
+            List<StoryLevelCfg> levelList = CommonDataManager.Tables.TblStoryLevelCfg.DataList.Where(a =>
+                a.Type == 6 && a.SubType == 2 &&
+                a.ChapterId == chapID).ToList();
+
+            foreach (StoryLevelCfg levelItem in levelList)
             {
-               if(GetLevelRewardStatus(levelItem.Id))
+                if (GetLevelRewardStatus(levelItem.Id))
                 {
                     return true;
                 }
             }
+
             return false;
         }
 
@@ -182,13 +216,15 @@ namespace GFGGame
             {
                 return false;
             }
+
             foreach (int i in chapterIdList)
             {
-                if(GetChapterIDRewardStatus(i))
+                if (GetChapterIDRewardStatus(i))
                 {
                     return true;
                 }
             }
+
             return false;
         }
 
@@ -196,11 +232,11 @@ namespace GFGGame
         {
             string timeStr = "";
             TimeSpan t = TimeSpan.FromSeconds(totalSeconds);
-            if(t.Days != 0)
+            if (t.Days != 0)
             {
                 timeStr = string.Format("{0}天{1}时", t.Days, t.Hours);
             }
-            else if(t.Hours != 0)
+            else if (t.Hours != 0)
             {
                 timeStr = string.Format("{0}时{1}分", t.Hours, t.Minutes);
             }
@@ -208,6 +244,7 @@ namespace GFGGame
             {
                 timeStr = string.Format("{0}分{1}秒", t.Minutes, t.Seconds);
             }
+
             return timeStr;
         }
     }

+ 3 - 13
GameClient/Assets/Game/HotUpdate/FairyGUI/GFGUIPackage.cs

@@ -47,8 +47,6 @@ namespace GFGGame
         public static void AddPackage(string descFilePath, Action onComplete = null, Action<string> onError = null)
         {
             // 打印开始加载信息
-            Debug.Log($"开始加载UI包: {descFilePath}");
-
             _assetCount.TryGetValue(descFilePath, out var count);
             if (count > 0)
             {
@@ -61,7 +59,6 @@ namespace GFGGame
             _assetCount.Add(descFilePath, count + 1);
 
             // 加载主资源
-            Debug.Log($"正在加载描述文件: {descFilePath}_fui.bytes");
             var handle = YooAssets.LoadAssetAsync<TextAsset>($"{descFilePath}_fui.bytes");
 
             handle.Completed += (mainHandle) =>
@@ -73,18 +70,15 @@ namespace GFGGame
                     onError?.Invoke(error);
                     return;
                 }
-
-                Debug.Log($"描述文件加载成功: {descFilePath}_fui.bytes");
+                
                 TextAsset textAsset = mainHandle.AssetObject as TextAsset;
                 CacheAssetHandle(descFilePath, mainHandle);
 
                 // 添加UI包
-                Debug.Log($"正在添加UI包: {descFilePath}");
                 var uiPackage = UIPackage.AddPackage(textAsset.bytes, descFilePath,
                     (string name, string extension, System.Type type, PackageItem item) =>
                     {
                         string location = name + extension;
-                        Debug.Log($"正在加载依赖资源: {location}");
 
                         if (!YooAssets.CheckResExist(location))
                         {
@@ -107,13 +101,11 @@ namespace GFGGame
                                 Debug.LogWarning($"依赖资源为空: {location}");
                                 return;
                             }
-
-                            Debug.Log($"依赖资源加载成功: {location}");
+                            
                             Texture tex = depHandle.AssetObject as Texture;
                             if (tex != null)
                             {
                                 string alphaLocation = name + "!a" + extension;
-                                Debug.Log($"检测透明通道资源: {alphaLocation}");
 
                                 if (YooAssets.CheckResExist(alphaLocation))
                                 {
@@ -132,8 +124,7 @@ namespace GFGGame
                                             Debug.LogWarning($"透明通道资源为空: {alphaLocation}");
                                             return;
                                         }
-
-                                        Debug.Log($"透明通道资源加载成功: {alphaLocation}");
+                                        
                                         Texture alphaTex = alphaHandle.AssetObject as Texture;
                                         item.owner.SetItemAsset(item, tex, alphaTex, DestroyMethod.None);
                                     };
@@ -146,7 +137,6 @@ namespace GFGGame
                     });
 
                 _packages.Add(descFilePath, uiPackage);
-                Debug.Log($"UI包添加完成: {descFilePath}");
                 CheckRemovePackage(descFilePath);
                 onComplete?.Invoke();
             };

+ 6 - 3
GameClient/Assets/Game/HotUpdate/Platform/QDJGameManager.cs

@@ -22,12 +22,15 @@ namespace GFGGame
 
         public void Init()
         {
-            Debug.Log("实例化JHGameSDKListener");
             QDJHGameManagerInit.Instance._jhGameSDKListener = new JHGameSDKListener();
 
-            // string url =
-            //     "https://webgltest.goufuguiwxw.com/?user_id=990995130122501&user_name=mq96l27z74m9&timestamp=1750743882&sign=88cc86dd40f78dfbbf6ee46add3e8eaa9dac3ba8&cp_ext=&partner=platform";
             string url = Application.absoluteURL;
+            if (LauncherConfig.IsTest)
+            {
+                url =
+                    "https://webgltest.goufuguiwxw.com/?user_id=1234589&user_name=1237459&timestamp=175074382&sign=88cc86dd40f78dfbbfe46add3e8eaa9dac3ba8&cp_ext=&partner=platform";
+            }
+
             Debug.Log($"unity init 2 absoluteURL:{url}");
             Dictionary<string, object> sdkParams = WebUrlUtil.ParseSDKParamsFromUrl(url);
             UserId = sdkParams.TryGetValue("user_id", out object userId) ? userId.ToString() : null;

+ 0 - 1
GameClient/Assets/Game/HotUpdate/UGUI/UGUIManager.cs

@@ -91,7 +91,6 @@ namespace GFGGame
         {
             var url = LauncherConfig.cfgUrl.Replace("{cfgName}", GameGlobal.cfgName);
             url = url + "?t=" + TimeHelper.ClientNow();
-            Debug.Log($"正在解压数据");
             LauncherView.Instance.SetDesc("正在解压数据...");
             HttpTool.Instance.Get(url, (string data) =>
             {

+ 9 - 2
GameClient/Assets/Game/HotUpdate/Views/ActivityMainTips/ActivityZCJBChapterView.cs

@@ -4,6 +4,7 @@ using UI.Main;
 using System.Collections.Generic;
 using UnityEngine;
 using System.Collections;
+using System.Linq;
 using Assets.Game.HotUpdate.Data;
 using cfg.GfgCfg;
 using ET;
@@ -136,8 +137,11 @@ namespace GFGGame
             ActivityFightCfg chapterCfg = CommonDataManager.Tables.TblActivityFightCfg.GetOrDefault(_chapterID);
 
             indexY = 111.0f * Mathf.Max(0,
-                (float)StoryLevelConfigManager.GetConfigs(chapterCfg.Type, chapterCfg.SubType, chapterCfg.Id).Count -
+                (float)CommonDataManager.Tables.TblStoryLevelCfg.DataList.Where(a =>
+                    a.Type == chapterCfg.Type && a.SubType == chapterCfg.SubType &&
+                    a.ChapterId == chapterCfg.Id).ToList().Count -
                 5);
+
             gamey = GameObject.Find("Stage/GRoot/Window - StoryChapterUI/ContentPane/CompChapter/Container/Container");
             _ui.m_chapter.m_compChapterScroll.m_imgBegin.visible = false;
             _ui.m_chapter.m_compChapterScroll.m_nextEffect.visible = false;
@@ -205,7 +209,10 @@ namespace GFGGame
         private IEnumerator InitChapter()
         {
             ActivityFightCfg chapterCfg = CommonDataManager.Tables.TblActivityFightCfg.GetOrDefault(_chapterID);
-            var list = StoryLevelConfigManager.GetConfigs(chapterCfg.Type, chapterCfg.SubType, chapterCfg.Id);
+            var list = CommonDataManager.Tables.TblStoryLevelCfg.DataList.Where(a =>
+                a.Type == chapterCfg.Type && a.SubType == chapterCfg.SubType &&
+                a.ChapterId == chapterCfg.Id).ToList();
+
             int endLevel = 0;
             int UnlockCount = 0;
             _compChapter = _ui.m_chapter.m_compChapterScroll.target;

+ 2 - 1
GameClient/Assets/Game/HotUpdate/Views/ClothingDecompose/ClothingDecomposeView.cs

@@ -306,9 +306,10 @@ namespace GFGGame
             ItemCfg itemCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(consumeId);
             _ui.m_listReward.numItems = (_decomposeCount + _decoNormalCount) > 0 ? arrLength : 0;
             _ui.m_txtShow.text = string.Format("*  分解{0}件{1}可获得  *", StringUtil.GetColorText((_decomposeCount + _decoNormalCount).ToString(), "#DA826E"), ConstDressRarity.DressRarityList()[_curRarity]);
-            ET.Log.Debug("分解消耗:  " + consumeId + "   找不到物品配置");
+ 
             if (itemCfg == null)
             {
+                ET.Log.Debug("分解消耗:  " + consumeId + "   找不到物品配置");
                 _ui.m_txtConsume.visible = false;
                 return;
             }

+ 0 - 2
GameClient/Assets/Game/HotUpdate/Views/CommonGame/ApproachView.cs

@@ -266,8 +266,6 @@ namespace GFGGame
                         {
                             break;
                         }
-                        //TO DO
-                        List<StoryLevelCfg> storyLevelCfgs = StoryLevelConfigManager.GetConfigs(studioCfg.Type, studioCfg.SubType, studioCfg.Id);
                         StudioDataManager.Instance.IsCanFight(levelCfg.Id, out bool canFight, out string content);
                         if (!canFight)
                         {

+ 27 - 20
GameClient/Assets/Game/HotUpdate/Views/Field/FieldFightInfoView.cs

@@ -1,4 +1,4 @@
-
+using System.Linq;
 using cfg.GfgCfg;
 using FairyGUI;
 using UI.Field;
@@ -13,6 +13,7 @@ namespace GFGGame
         // private StoryFightCfg _storyFightCfg;
 
         private int _time = 3;
+
         public override void Dispose()
         {
             if (_ui != null)
@@ -20,6 +21,7 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -43,23 +45,29 @@ namespace GFGGame
 
             UpdateView();
         }
+
         private void UpdateView()
         {
             FieldDataManager dataManager = FieldDataManager.Instance;
             FieldCfg fieldCfg = CommonDataManager.Tables.TblFieldCfg.GetOrDefault(dataManager.chapterId);
-            StoryLevelCfg storyLevelCfg = StoryLevelConfigManager.GetConfigs(fieldCfg.Type, 0, fieldCfg.Id)[dataManager.currFightLv];
-            StoryFightCfg storyFightCfg = CommonDataManager.Tables.TblStoryFightCfg.GetOrDefault(int.Parse(storyLevelCfg.FightID));
+            StoryLevelCfg storyLevelCfg = CommonDataManager.Tables.TblStoryLevelCfg.DataList
+                .Where(a => a.Type == fieldCfg.Type &&
+                            a.SubType == 0 &&
+                            a.ChapterId == fieldCfg.Id).ToList()[dataManager.currFightLv];
+
+            StoryFightCfg storyFightCfg =
+                CommonDataManager.Tables.TblStoryFightCfg.GetOrDefault(int.Parse(storyLevelCfg.FightID));
             dataManager.currFightLv++;
             FieldFightDataManager.Instance.currentLevelCfgId = storyLevelCfg.Id;
 
             _ui.m_txtName.text = storyFightCfg.TargetName;
             _ui.m_txtDesc.text = storyLevelCfg.Desc;
-            string num = StringUtil.GetColorText(string.Format("{0}/{1}", dataManager.currFightLv, fieldCfg.Num), "#BB674E");
+            string num = StringUtil.GetColorText(string.Format("{0}/{1}", dataManager.currFightLv, fieldCfg.Num),
+                "#BB674E");
             _ui.m_txtNum.text = string.Format("第{0}轮", num);
             _ui.m_loaNpc.url = ResPathUtil.GetNpcHeadPath(storyFightCfg.TargetRes);
             _ui.m_txtTime.text = string.Format("{0}秒后自动进入下一轮", _time);
             Timers.inst.Add(1, _time, OnTimerUpdate, 1);
-
         }
 
         private void OnTimerUpdate(object param)
@@ -73,34 +81,33 @@ namespace GFGGame
                 InstanceZonesDataManager.currentScoreType = FieldFightDataManager.Instance.CurrentScoreType;
                 InstanceZonesDataManager.currentLevelCfgId = FieldFightDataManager.Instance.currentLevelCfgId;
 
-                ViewManager.Show<StoryFightTargetView>(null,true);
+                ViewManager.Show<StoryFightTargetView>(null, true);
                 this.Hide();
             }
+
             _ui.m_txtTime.text = string.Format("{0}秒后自动进入下一轮", _time);
         }
+
         private void OnBtnStopClick()
         {
             Timers.inst.Remove(OnTimerUpdate);
             AlertUI.Show("确认中止本轮挑战?")
-            .SetLeftButton(true, "取消", (object data) =>
-            {
-                Timers.inst.Add(1, _time, OnTimerUpdate, 1);
-            })
-            .SetRightButton(true, "中止", async (object data) =>
-            {
-                this.Hide();
-                bool result = await FieldSProxy.ReqFieldInstanceResult();
-                if (result)
+                .SetLeftButton(true, "取消", (object data) => { Timers.inst.Add(1, _time, OnTimerUpdate, 1); })
+                .SetRightButton(true, "中止", async (object data) =>
                 {
-                    FieldDataManager.Instance.accumulateReward = 0;
-                    ViewManager.Show<FieldFightEndView>();
-                }
-            });
+                    this.Hide();
+                    bool result = await FieldSProxy.ReqFieldInstanceResult();
+                    if (result)
+                    {
+                        FieldDataManager.Instance.accumulateReward = 0;
+                        ViewManager.Show<FieldFightEndView>();
+                    }
+                });
         }
+
         protected override void OnHide()
         {
             base.OnHide();
         }
-
     }
 }

+ 11 - 2
GameClient/Assets/Game/HotUpdate/Views/Field/FieldView.cs

@@ -1,3 +1,4 @@
+using System.Linq;
 using cfg.GfgCfg;
 using ET;
 using FairyGUI;
@@ -193,7 +194,11 @@ namespace GFGGame
                             FieldCfg _curCfg =
                                 CommonDataManager.Tables.TblFieldCfg.DataList[FieldDataManager.Instance.difficulty];
                             LogServerHelper.SendPlayParticipationLog((int)PlayParticipationEnum.TIAN_YE_DIAO_CHA, 2);
-                            int curLevelId = StoryLevelConfigManager.GetConfigs(_curCfg.Type, 0, _curCfg.Id)[0].Id;
+                            int curLevelId = CommonDataManager.Tables.TblStoryLevelCfg.DataList
+                                .Where(a => a.Type == _curCfg.Type &&
+                                            a.SubType == 0 &&
+                                            a.ChapterId == _curCfg.Id).ToList()[0].Id;
+                            ;
                             DressUpFightType dressUpFightType = new DressUpFightType();
                             dressUpFightType.levelID = curLevelId;
                             dressUpFightType.teaPartID = 0;
@@ -267,7 +272,11 @@ namespace GFGGame
         private void StartFight()
         {
             LogServerHelper.SendPlayParticipationLog((int)PlayParticipationEnum.TIAN_YE_DIAO_CHA, 2);
-            int curLevelId = StoryLevelConfigManager.GetConfigs(_curCfg.Type, 0, _curCfg.Id)[0].Id;
+            int curLevelId = CommonDataManager.Tables.TblStoryLevelCfg.DataList
+                .Where(a => a.Type == _curCfg.Type &&
+                            a.SubType == 0 &&
+                            a.ChapterId == _curCfg.Id).ToList()[0].Id;
+
             DressUpFightType dressUpFightType = new DressUpFightType();
             dressUpFightType.levelID = curLevelId;
             dressUpFightType.teaPartID = 0;

+ 48 - 18
GameClient/Assets/Game/HotUpdate/Views/MainStory/ActivityStoryChapterView.cs

@@ -4,6 +4,7 @@ using UI.Main;
 using System.Collections.Generic;
 using UnityEngine;
 using System.Collections;
+using System.Linq;
 using cfg.GfgCfg;
 using ET;
 
@@ -29,9 +30,12 @@ namespace GFGGame
 
         //当前章节索引
         private int newIndex;
+
         //y轴移动索引
         private float indexY;
+
         private GameObject gamey;
+
         //特效类型数组,这里后面可以二维数组,放向左和向右的
         private string[] effArray = new string[2] { "ZJ_JuQing", "ZJ_ZD" };
 
@@ -52,21 +56,25 @@ namespace GFGGame
                 _comEff.RemoveFromParent();
                 _comEff.Dispose();
             }
+
             if (_effFirst != null)
             {
                 _effFirst.RemoveFromParent();
                 _effFirst.Dispose();
             }
+
             if (_valueBarController != null)
             {
                 _valueBarController.Dispose();
                 _valueBarController = null;
             }
+
             if (_ui != null)
             {
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -91,8 +99,8 @@ namespace GFGGame
             _effFirst = new GComponent();
             _effFirst = UIPackage.CreateObject(UI_MainUI.PACKAGE_NAME, "ComEff").asCom;
             _effectUI3 = EffectUIPool.CreateEffectUI(_ui.m_bgEffect, "ui_zj", "ZX_BG_TX");
-            _effectUI4 = EffectUIPool.CreateEffectUI(_ui.m_chapter.m_compChapterScroll.m_nextEffect, "ui_zj", "ZX_Next_Boat");
-
+            _effectUI4 =
+                EffectUIPool.CreateEffectUI(_ui.m_chapter.m_compChapterScroll.m_nextEffect, "ui_zj", "ZX_Next_Boat");
         }
 
         protected override void OnShown()
@@ -102,7 +110,7 @@ namespace GFGGame
             GRoot.inst.touchable = false;
             SuitFosterProxy.SendGetSuitInfos().Coroutine();
             MusicManager.Instance.PlayCroutine(ResPathUtil.GetMusicPath(ConstMusicName.DEFAULT));
-            
+
             _activityID = (int)viewData;
             _activityCfg = CommonDataManager.Tables.TblActivityOpenCfg.GetOrDefault(_activityID);
             _chapterID = _activityCfg.Params3[0];
@@ -132,6 +140,7 @@ namespace GFGGame
         {
             base.RemoveEventListener();
         }
+
         private void OnClickBtnBack()
         {
             ViewManager.GoBackFrom(typeof(StoryChapterView).FullName);
@@ -150,7 +159,10 @@ namespace GFGGame
 
             StoryChapterCfg chapterCfg = CommonDataManager.Tables.TblStoryChapterCfg.GetOrDefault(_chapterID);
             newIndex = StoryUtil.GetChapterOrder(chapterCfg.Id);
-            indexY = 111.0f * Mathf.Max(0, (float)StoryLevelConfigManager.GetConfigs(chapterCfg.Type, chapterCfg.SubType, chapterCfg.Id).Count - 5);
+            indexY = 111.0f * Mathf.Max(0, (float)CommonDataManager.Tables.TblStoryLevelCfg.DataList.Count(a =>
+                a.Type == chapterCfg.Type && a.SubType == chapterCfg.SubType &&
+                a.ChapterId == chapterCfg.Id) - 5);
+
             gamey = GameObject.Find("Stage/GRoot/Window - StoryChapterUI/ContentPane/CompChapter/Container/Container");
             _ui.m_chapter.m_compChapterScroll.m_imgBegin.visible = false;
             _ui.m_chapter.m_compChapterScroll.m_nextEffect.visible = false;
@@ -167,7 +179,8 @@ namespace GFGGame
                 valueBar.m_c1.selectedIndex = 12;
                 UI_ComponentValueBar.ProxyEnd();
                 _valueBarController.UpdateList(new List<int>() { ConstItemID.DIAMOND_PURPLE, ConstItemID.DIAMOND_RED });
-                long timeActivity = ActivityGlobalDataManager.Instance.GetActivityInfoOneByType(17).EndTime - TimeHelper.ServerNow();
+                long timeActivity = ActivityGlobalDataManager.Instance.GetActivityInfoOneByType(17).EndTime -
+                                    TimeHelper.ServerNow();
             }
             else
             {
@@ -180,7 +193,8 @@ namespace GFGGame
         private void OnClickNext()
         {
             StoryChapterCfg chapterSuitCfg = CommonDataManager.Tables.TblStoryChapterCfg.GetOrDefault(_chapterID);
-            if (MainStoryDataManager.CheckChapterUnlock(_chapterID + 1) && StoryController.CheckSuitGot(chapterSuitCfg.SuitId))
+            if (MainStoryDataManager.CheckChapterUnlock(_chapterID + 1) &&
+                StoryController.CheckSuitGot(chapterSuitCfg.SuitId))
             {
                 Timers.inst.Remove(SetContainerY);
                 _chapterID += 1;
@@ -199,14 +213,16 @@ namespace GFGGame
                 {
                     PromptController.Instance.ShowFloatTextPrompt(string.Format("角色等级达到{0}级开启", chapterCfg.Lvl));
                 }
-
             }
         }
 
         private IEnumerator InitChapter()
         {
             ActivityFightCfg chapterCfg = CommonDataManager.Tables.TblActivityFightCfg.GetOrDefault(_chapterID);
-            var list = StoryLevelConfigManager.GetConfigs(chapterCfg.Type, chapterCfg.SubType, chapterCfg.Id);
+            var list = CommonDataManager.Tables.TblStoryLevelCfg.DataList.Where(a =>
+                a.Type == chapterCfg.Type && a.SubType == chapterCfg.SubType &&
+                a.ChapterId == chapterCfg.Id).ToList();
+
             int endLevel = 0;
             int UnlockCount = 0;
             _compChapter = _ui.m_chapter.m_compChapterScroll.target;
@@ -226,12 +242,14 @@ namespace GFGGame
                 currentDifficulty = 0;
                 _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("bg_zhuxian");
             }
+
             //_comEff.visible = false;
             //_effFirst.visible = false;
             for (int i = 0; i < 20; i++)
             {
                 GObject obj = _ui.m_chapter.m_compChapterScroll.target.GetChild("g" + (19 - i + 1));
-                obj.SetPosition(obj.x, starPosY - lineGap * i - 300, 0); ;
+                obj.SetPosition(obj.x, starPosY - lineGap * i - 300, 0);
+                ;
                 StoryLevelCfg levelCfg = i < list.Count ? list[i] : null;
                 UI_CompStoryLevelItem levelItem = UI_CompStoryLevelItem.Proxy(obj);
                 levelItem.m_fightBg.visible = true;
@@ -266,7 +284,8 @@ namespace GFGGame
                     {
                         levelItem.m_loaDialogBg.url = "ui://Main/zxian_btn_jq_jy";
                         levelItem.m_fightBg.url = "ui://Main/zxian_btn_zd_jy";
-                        levelItem.m_txtFightOrder.text = string.Format("{0}", StringUtil.GetColorText(showId.ToString(), "#E3F8FF"));
+                        levelItem.m_txtFightOrder.text =
+                            string.Format("{0}", StringUtil.GetColorText(showId.ToString(), "#E3F8FF"));
                         levelItem.m_fightIconA.alpha = 0;
                         levelItem.m_fightIconB.alpha = 0;
                     }
@@ -274,7 +293,8 @@ namespace GFGGame
                     {
                         levelItem.m_loaDialogBg.url = "ui://Main/zxian_btn_jq";
                         levelItem.m_fightBg.url = "ui://Main/zxian_btn_zd";
-                        levelItem.m_txtFightOrder.text = string.Format("{0}", StringUtil.GetColorText(showId.ToString(), "#FFEABF"));
+                        levelItem.m_txtFightOrder.text =
+                            string.Format("{0}", StringUtil.GetColorText(showId.ToString(), "#FFEABF"));
                         levelItem.m_fightIconA.alpha = 0;
                         levelItem.m_fightIconB.alpha = 0;
                     }
@@ -298,22 +318,26 @@ namespace GFGGame
                         {
                             effName = effArray[levelItem.m_c1.selectedIndex];
                         }
+
                         if (levelItem.m_c1.selectedIndex == 0)
                         {
                             if (levelItem.m_c2.selectedIndex == 0)
                             {
-                                _effectUI2 = EffectUIPool.CreateEffectUI(_effFirst.GetChild("effect_jq_left").asGraph, "ui_zj", effName);
+                                _effectUI2 = EffectUIPool.CreateEffectUI(_effFirst.GetChild("effect_jq_left").asGraph,
+                                    "ui_zj", effName);
                                 _effFirst.GetChild("effect_jq_left").rotationY = 180;
                             }
                             else
                             {
-                                _effectUI2 = EffectUIPool.CreateEffectUI(_effFirst.GetChild("effect_jq").asGraph, "ui_zj", effName);
+                                _effectUI2 = EffectUIPool.CreateEffectUI(_effFirst.GetChild("effect_jq").asGraph,
+                                    "ui_zj", effName);
                                 _effFirst.GetChild("effect_jq").rotationY = 0;
                             }
                         }
                         else
                         {
-                            _effectUI2 = EffectUIPool.CreateEffectUI(_effFirst.GetChild("effect_zd").asGraph, "ui_zj", effName);
+                            _effectUI2 = EffectUIPool.CreateEffectUI(_effFirst.GetChild("effect_zd").asGraph, "ui_zj",
+                                effName);
                             if (levelItem.m_c2.selectedIndex == 0)
                             {
                                 _effFirst.GetChild("effect_zd").rotationY = 0;
@@ -323,6 +347,7 @@ namespace GFGGame
                                 _effFirst.GetChild("effect_zd").rotationY = 180;
                             }
                         }
+
                         levelItem.target.AddChild(_effFirst);
                         levelItem.m_fightBg.visible = false;
                         levelItem.m_loaDialogBg.visible = false;
@@ -330,6 +355,7 @@ namespace GFGGame
                         _effFirst.visible = true;
                         //Timers.inst.Add(1.7f, 1, HideEffect, obj);
                     }
+
                     if (levelCfg.Order > endLevel)
                     {
                         endLevel = levelCfg.Order;
@@ -340,11 +366,14 @@ namespace GFGGame
                 {
                     levelItem.target.visible = false;
                 }
+
                 UI_CompStoryLevelItem.ProxyEnd();
             }
+
             yield return new WaitForEndOfFrame();
 
-            _ui.m_chapter.m_compChapterScroll.target.y = 0; //Mathf.Max(0, _ui.m_chapter.target.height - _ui.m_chapter.m_compChapterScroll.target.height);
+            _ui.m_chapter.m_compChapterScroll.target.y =
+                0; //Mathf.Max(0, _ui.m_chapter.target.height - _ui.m_chapter.m_compChapterScroll.target.height);
 
             if (gamey != null)
                 gamey.transform.position = new Vector3(0, indexY, 0);
@@ -352,7 +381,8 @@ namespace GFGGame
 
         private void SetContainerY(object param = null)
         {
-            _ui.m_chapter.m_compChapterScroll.target.y = 1; //Mathf.Max(0, _ui.m_chapter.target.height - _ui.m_chapter.m_compChapterScroll.target.height - 1);
+            _ui.m_chapter.m_compChapterScroll.target.y =
+                1; //Mathf.Max(0, _ui.m_chapter.target.height - _ui.m_chapter.m_compChapterScroll.target.height - 1);
         }
 
         private void HideEffect(object param = null)
@@ -378,10 +408,10 @@ namespace GFGGame
                 Timers.inst.Remove(UpdateTime);
                 return;
             }
+
             TimeUtil.FormattingTime(curTime, endTime, out int num, out string str);
             string timeStr = TimeUtil.FormattingTimeTo_DDHHmm(endTime - curTime);
             _ui.m_txtTime.text = timeStr;
         }
     }
-}
-
+}

+ 91 - 55
GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryChapterListView.cs

@@ -1,6 +1,7 @@
 using ET;
 using FairyGUI;
 using System.Collections.Generic;
+using System.Linq;
 using cfg.GfgCfg;
 using UI.Main;
 using UnityEngine;
@@ -16,6 +17,7 @@ namespace GFGGame
         private List<StoryChapterCfg> _chapterCfgs;
         private int chapterIndex = 1;
         private int rewardID = 0;
+
         public override void Dispose()
         {
             if (_ui != null)
@@ -23,6 +25,7 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -50,10 +53,9 @@ namespace GFGGame
             _ui.m_listType.selectedIndex = 0;
             _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("zhangjie_bg");
 
-            _ui.m_listChapter.scrollPane.onScroll.Add(DoSpecialEffect);//滚动时派发事件
-
-
+            _ui.m_listChapter.scrollPane.onScroll.Add(DoSpecialEffect); //滚动时派发事件
         }
+
         protected override void AddEventListener()
         {
             base.AddEventListener();
@@ -63,14 +65,14 @@ namespace GFGGame
         protected override void RemoveEventListener()
         {
             base.RemoveEventListener();
-            EventAgent.RemoveEventListener(ConstMessage.STORYCHAPREDUPDATE,UpdateChapterRed);
+            EventAgent.RemoveEventListener(ConstMessage.STORYCHAPREDUPDATE, UpdateChapterRed);
         }
 
         protected override void OnShown()
         {
             base.OnShown();
 
-            subType = 0;//MainStoryDataManager.GetChapterSubType(MainStoryDataManager.currentChapterCfgId);
+            subType = 0; //MainStoryDataManager.GetChapterSubType(MainStoryDataManager.currentChapterCfgId);
             if (this.viewData != null && (this.viewData as object[]).Length == 1)
             {
                 subType = (int)(this.viewData as object[])[0];
@@ -80,16 +82,15 @@ namespace GFGGame
                 subType = (int)(this.viewData as object[])[0];
                 chapterIndex = Mathf.Max(1, (int)(this.viewData as object[])[1]);
             }
+
             subType = MainStoryDataManager.currentChapterType;
             CheckChapterIndex();
             _ui.m_listType.selectedIndex = subType;
             _ui.m_listChapter.touchable = false;
             UpdateList();
-            DoSpecialEffect();//初始化调用
+            DoSpecialEffect(); //初始化调用
             Timers.inst.AddUpdate(CheckGuide);
             _ui.m_openViewAction.Play();
-            
-
         }
 
         protected override void OnHide()
@@ -114,16 +115,19 @@ namespace GFGGame
         {
             GameController.GoBackToMainView();
         }
+
         private void OnClickListTabItem()
         {
             this.curTab = _ui.m_listTab.selectedIndex;
         }
+
         private void OnClickListTypeItem()
         {
             this.subType = _ui.m_listType.selectedIndex;
             MainStoryDataManager.currentChapterType = _ui.m_listType.selectedIndex;
             UpdateList(true);
         }
+
         private void OnClickListChapterItem(EventContext context)
         {
             // GuideController.TryCompleteGuide(ConstGuideId.MAIN_UI_BTN_STORY);
@@ -141,7 +145,8 @@ namespace GFGGame
             else
             {
                 StoryChapterCfg previousChapterCfg = _chapterCfgs[Mathf.Max(0, index - 1)];
-                if (MainStoryDataManager.CheckChapterUnlock(chapterID) && StoryController.CheckSuitGot(previousChapterCfg.SuitId))
+                if (MainStoryDataManager.CheckChapterUnlock(chapterID) &&
+                    StoryController.CheckSuitGot(previousChapterCfg.SuitId))
                 {
                     //if (chapterIndex == chapterCfg.order)
                     //{
@@ -151,9 +156,8 @@ namespace GFGGame
                     //{
                     MainStoryDataManager.currentChapterCfgId = chapterID;
                     ViewManager.Show<StoryChapterView>(new object[] { chapterID, _ui.m_listType.selectedIndex });
-                        this.Hide();
+                    this.Hide();
                     //}
-
                 }
                 else
                 {
@@ -168,19 +172,19 @@ namespace GFGGame
                     }
                 }
             }
-
         }
+
         private async void OnClickReward(EventContext context)
         {
             GObject chapterItem = context.sender as GObject;
             int chapterID = (int)chapterItem.data;
             rewardID = chapterID;
             int status;
-            if(MainStoryDataManager.ChapterRewardStatusDic.TryGetValue(chapterID,out status) && status == 1)
+            if (MainStoryDataManager.ChapterRewardStatusDic.TryGetValue(chapterID, out status) && status == 1)
             {
                 //领取奖励
                 bool result = await MainStorySProxy.GetStoryBonusReward(chapterID);
-                if(result)
+                if (result)
                 {
                     EventAgent.DispatchEvent(ConstMessage.STORYCHAPREDUPDATE);
                     return;
@@ -195,14 +199,13 @@ namespace GFGGame
             {
                 if (item.ChapterId == rewardID)
                 {
-                    UI_ListChapterItem listItem = UI_ListChapterItem.Proxy(_ui.m_listChapter.GetChildAt(item.Id%10));
+                    UI_ListChapterItem listItem = UI_ListChapterItem.Proxy(_ui.m_listChapter.GetChildAt(item.Id % 10));
                     listItem.m_content.m_reward.m_isGetted.visible = true;
                     listItem.m_content.m_reward.m_gettedBg.visible = true;
                     RedDotController.Instance.SetComRedDot(listItem.m_content.m_reward.target, false, "");
                     UI_ListChapterItem.ProxyEnd();
                 }
             }
-
         }
 
         private void ListChapterItem(int index, GObject item)
@@ -211,6 +214,7 @@ namespace GFGGame
             {
                 return;
             }
+
             index -= 1;
             UI_ListChapterItem listItem = UI_ListChapterItem.Proxy(item);
             if (subType == 1)
@@ -242,7 +246,6 @@ namespace GFGGame
                 listItem.m_content.m_txtChapter.strokeColor = new Color(1.000f, 0.686f, 0.318f, 1.000f);
                 //listItem.m_content.m_txtCurProgress.color = new Color(0.514f, 0.345f, 0.220f, 1.000f); 
                 //listItem.m_content.m_txtMaxProgress.color = new Color(0.514f, 0.345f, 0.220f, 1.000f);
-
             }
 
             // if (index % 2 == 0)
@@ -269,13 +272,18 @@ namespace GFGGame
             {
                 listItem.m_content.m_compPic.target.onClick.Add(OnClickListChapterItem);
             }
+
             listItem.target.data = chapterCfg.Id;
             listItem.m_content.m_compPic.target.data = chapterCfg.Id;
-            RedDotController.Instance.SetComRedDot(listItem.m_content.target, RedDotDataManager.Instance.GetChapterRed(chapterCfg.Id), "", -100, (int)listItem.m_content.m_txtCurProgress.y - 20);
+            RedDotController.Instance.SetComRedDot(listItem.m_content.target,
+                RedDotDataManager.Instance.GetChapterRed(chapterCfg.Id), "", -100,
+                (int)listItem.m_content.m_txtCurProgress.y - 20);
             UI_ListChapterItem.ProxyEnd();
         }
+
         int _time = 0;
         int _timeCount = 0;
+
         private void OnTimerUpdate(object param)
         {
             _timeCount += (int)param;
@@ -291,53 +299,65 @@ namespace GFGGame
                     Timers.inst.Remove(OnTimerUpdate);
                     return;
                 }
+
                 i = _time - _ui.m_listChapter.numChildren;
             }
+
             if (i > 0 && i < _ui.m_listChapter.numItems - 1)
             {
                 _ui.m_listChapter.GetChildAt(i).visible = true;
                 UI_ListChapterItem listItem = UI_ListChapterItem.Proxy(_ui.m_listChapter.GetChildAt(i));
                 listItem.m_openListAction.Play();
             }
+
             _time += (int)param;
         }
 
-        private void UpdateList( bool isView = false)
+        private void UpdateList(bool isView = false)
         {
             _chapterCfgs = CommonDataManager.Tables.TblStoryChapterCfg.GetGroup1BySubType(subType);
             //这里+2,只是为了list左右两边为空白的表现,对于数据没啥意义
             _ui.m_listChapter.numItems = _chapterCfgs.Count + 2;
             //_ui.m_listChapter.numItems = MainStoryDataManager.CheckChapterPassIndex(subType) + 2;
             int currentChapterIndex = 0;
-            for (int i = 0; i < _ui.m_listChapter.numChildren; i++) 
+            for (int i = 0; i < _ui.m_listChapter.numChildren; i++)
             {
                 if (i == 0 || i == _ui.m_listChapter.numItems - 1)
                 {
                     _ui.m_listChapter.GetChildAt(i).visible = false;
                     continue;
                 }
+
                 UI_ListChapterItem listItem = UI_ListChapterItem.Proxy(_ui.m_listChapter.GetChildAt(i));
                 int index = i - 1;
                 int chapterID = (int)listItem.target.data;
                 StoryChapterCfg chapterCfg = _chapterCfgs[index];
                 StoryChapterCfg previousChapterCfg = _chapterCfgs[Mathf.Max(0, index - 1)];
-                int starCountChapter = InstanceZonesDataManager.GetChapterStarCount(chapterCfg.Id, chapterCfg.Type, chapterCfg.SubType);
+                int starCountChapter =
+                    InstanceZonesDataManager.GetChapterStarCount(chapterCfg.Id, chapterCfg.Type, chapterCfg.SubType);
                 listItem.m_content.m_txtCurProgress.text = starCountChapter.ToString();
                 listItem.m_content.m_txtMaxProgress.text = chapterCfg.BonusStar3.ToString();
                 _ui.m_listChapter.GetChildAt(i).visible = false;
                 //暂定精英关卡不显示
                 if (subType != 1)
                 {
-                    ChapterRewardCfg chapterReward = CommonDataManager.Tables.TblChapterRewardCfg.GetGroup1ByChapterId(chapterID)[0];
-                    listItem.m_content.m_reward.m_rewardIcon.url = ResPathUtil.GetIconPath(CommonDataManager.Tables.TblItemCfg.GetOrDefault(chapterReward.BonusOnce[0].ItemId).Res, "png");
-                    listItem.m_content.m_reward.m_rewardNum.text = string.Format("x{0}", chapterReward.BonusOnce[0].Count.ToString());
+                    ChapterRewardCfg chapterReward =
+                        CommonDataManager.Tables.TblChapterRewardCfg.GetGroup1ByChapterId(chapterID)[0];
+                    listItem.m_content.m_reward.m_rewardIcon.url = ResPathUtil.GetIconPath(
+                        CommonDataManager.Tables.TblItemCfg.GetOrDefault(chapterReward.BonusOnce[0].ItemId).Res, "png");
+                    listItem.m_content.m_reward.m_rewardNum.text =
+                        string.Format("x{0}", chapterReward.BonusOnce[0].Count.ToString());
                 }
-                if (MainStoryDataManager.CheckChapterUnlock(chapterCfg.Id) && StoryController.CheckSuitGot(previousChapterCfg.SuitId))
+
+                if (MainStoryDataManager.CheckChapterUnlock(chapterCfg.Id) &&
+                    StoryController.CheckSuitGot(previousChapterCfg.SuitId))
                 {
                     listItem.m_content.m_imgLockBg.visible = false;
                     listItem.m_content.m_txtLockDesc.visible = false;
                     currentChapterIndex = i;
-                    List<StoryLevelCfg> storylevelList = StoryLevelConfigManager.GetConfigs(chapterCfg.Type,chapterCfg.SubType,chapterCfg.Id);
+                    List<StoryLevelCfg> storylevelList = CommonDataManager.Tables.TblStoryLevelCfg.DataList.Where(a =>
+                        a.Type == chapterCfg.Type && a.SubType == chapterCfg.SubType &&
+                        a.ChapterId == chapterCfg.Id).ToList();
                     if (InstanceZonesDataManager.CheckLevelPass(storylevelList[storylevelList.Count - 1].Id))
                     {
                         listItem.m_content.m_reward.target.visible = true;
@@ -345,11 +365,14 @@ namespace GFGGame
                         listItem.m_content.m_reward.m_gettedBg.visible = false;
                         RedDotController.Instance.SetComRedDot(listItem.m_content.m_reward.target, false, "");
                         int status;
-                        if (MainStoryDataManager.ChapterRewardStatusDic.TryGetValue(chapterID, out status) && status == 1)
+                        if (MainStoryDataManager.ChapterRewardStatusDic.TryGetValue(chapterID, out status) &&
+                            status == 1)
                         {
-                            RedDotController.Instance.SetComRedDot(listItem.m_content.m_reward.target, true, "",-50,20);
+                            RedDotController.Instance.SetComRedDot(listItem.m_content.m_reward.target, true, "", -50,
+                                20);
                         }
-                        else if (MainStoryDataManager.ChapterRewardStatusDic.TryGetValue(chapterID, out status) && status == 2)
+                        else if (MainStoryDataManager.ChapterRewardStatusDic.TryGetValue(chapterID, out status) &&
+                                 status == 2)
                         {
                             listItem.m_content.m_reward.m_isGetted.visible = true;
                             listItem.m_content.m_reward.m_gettedBg.visible = true;
@@ -359,6 +382,7 @@ namespace GFGGame
                         {
                             listItem.m_content.m_reward.target.onClick.Add(OnClickReward);
                         }
+
                         listItem.m_content.m_reward.target.data = chapterID;
                     }
                 }
@@ -372,9 +396,12 @@ namespace GFGGame
                     }
                     else
                     {
-                        if (MainStoryDataManager.CheckChapterIsHard(chapterID) && !MainStoryDataManager.CheckNeedChapterPass(chapterID, out var needChapterId) && StoryController.CheckSuitGot(needChapterId))
+                        if (MainStoryDataManager.CheckChapterIsHard(chapterID) &&
+                            !MainStoryDataManager.CheckNeedChapterPass(chapterID, out var needChapterId) &&
+                            StoryController.CheckSuitGot(needChapterId))
                         {
-                            var needChapterCfg = CommonDataManager.Tables.TblStoryChapterCfg.GetOrDefault(needChapterId);
+                            var needChapterCfg =
+                                CommonDataManager.Tables.TblStoryChapterCfg.GetOrDefault(needChapterId);
                             listItem.m_content.m_txtLockDesc.text = $"通关第{needChapterCfg.Order}章普通剧情后开启";
                         }
                         else
@@ -383,6 +410,7 @@ namespace GFGGame
                         }
                     }
                 }
+
                 //暂定精英关卡不显示
                 if (subType == 1)
                 {
@@ -392,17 +420,19 @@ namespace GFGGame
                 {
                     listItem.m_content.m_reward.target.visible = true;
                 }
+
                 UI_ListChapterItem.ProxyEnd();
             }
+
             if (isView)
             {
-                _ui.m_listChapter.ScrollToView(Mathf.Max(0, currentChapterIndex -1), false, true);
+                _ui.m_listChapter.ScrollToView(Mathf.Max(0, currentChapterIndex - 1), false, true);
             }
             else
             {
-                _ui.m_listChapter.ScrollToView(Mathf.Max(0,chapterIndex - 1), false, true);
+                _ui.m_listChapter.ScrollToView(Mathf.Max(0, chapterIndex - 1), false, true);
             }
-            
+
             int childrenCount = _ui.m_listChapter.numChildren - 1;
             if (currentChapterIndex >= 1 && currentChapterIndex <= childrenCount - 1)
             {
@@ -414,27 +444,28 @@ namespace GFGGame
                 {
                     _time = chapterIndex - 2;
                 }
-                
             }
             else
             {
                 _time = chapterIndex;
             }
+
             _timeCount = 0;
-            Timers.inst.Add(0.1f, _ui.m_listChapter.numChildren , OnTimerUpdate, 1);
+            Timers.inst.Add(0.1f, _ui.m_listChapter.numChildren, OnTimerUpdate, 1);
             DoSpecialEffect();
         }
+
         private void CheckGuide(object param)
         {
             if (GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER) <= 0
-             || GuideDataManager.IsGuideFinish(ConstGuideId.STUDIO_PORCELAIN) <= 0
-             || GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER_1) <= 0
-             || GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER_2) <= 0
-             //|| GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER_3) <= 0
-             //|| GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER_4) <= 0
-             || GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER_5) <= 0
-             || GuideDataManager.IsGuideFinish(ConstGuideId.ARENA_OPEN) <= 0
-             || GuideDataManager.IsGuideFinish(ConstGuideId.STUDIO_FILING) <= 0)
+                || GuideDataManager.IsGuideFinish(ConstGuideId.STUDIO_PORCELAIN) <= 0
+                || GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER_1) <= 0
+                || GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER_2) <= 0
+                //|| GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER_3) <= 0
+                //|| GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER_4) <= 0
+                || GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER_5) <= 0
+                || GuideDataManager.IsGuideFinish(ConstGuideId.ARENA_OPEN) <= 0
+                || GuideDataManager.IsGuideFinish(ConstGuideId.STUDIO_FILING) <= 0)
             {
                 UpdateToCheckGuide(null);
             }
@@ -442,6 +473,7 @@ namespace GFGGame
             {
                 Timers.inst.Remove(CheckGuide);
             }
+
             _ui.m_listChapter.touchable = true;
         }
 
@@ -455,7 +487,7 @@ namespace GFGGame
             //GuideController.TryGuide(_ui.m_listChapter, ConstGuideId.ENTER_CHAPTER_4, 3, "", 1, true, _ui.target.height / 2);
             //GuideController.TryGuide(_ui.m_listChapter, ConstGuideId.ENTER_CHAPTER_5, 3, "", 1, true, _ui.target.height / 2);
             GuideController.TryGuide(_ui.m_btnHome, ConstGuideId.STUDIO_PORCELAIN, 1, "点击返回主界面。");
-            GuideController.TryGuide(_ui.m_listType, ConstGuideId.ENTER_CHAPTER_2, 4, "切换精英关卡。",1);
+            GuideController.TryGuide(_ui.m_listType, ConstGuideId.ENTER_CHAPTER_2, 4, "切换精英关卡。", 1);
             GuideController.TryGuide(_ui.m_listChapter, ConstGuideId.ENTER_CHAPTER_2, 5, "选择精英关卡。", 1);
         }
 
@@ -463,17 +495,18 @@ namespace GFGGame
         {
             //scrollPane.scrollingPosX这个实时变化,。scrollPane.posX这个使用ScrlootoVIew直接取终值
             float listCenter = _ui.m_listChapter.scrollPane.scrollingPosX + _ui.m_listChapter.viewWidth / 2;
-            float listLeft = _ui.m_listChapter.scrollPane.posX + _ui.m_listChapter.viewWidth / 2; ;
+            float listLeft = _ui.m_listChapter.scrollPane.posX + _ui.m_listChapter.viewWidth / 2;
+            ;
             for (int i = 0; i < _ui.m_listChapter.numChildren; i++)
             {
                 GObject item = _ui.m_listChapter.GetChildAt(i);
-                float itemCenter = item.x + item.width / 2;//循环列表内元素的中心x值
-                float itemWidth = item.width;//列表元素的宽度
+                float itemCenter = item.x + item.width / 2; //循环列表内元素的中心x值
+                float itemWidth = item.width; //列表元素的宽度
                 float distance = Mathf.Abs(listCenter - itemCenter);
-               // if (distance < item.width)
+                // if (distance < item.width)
                 {
-                    float distanceRange = 1 + (1 - distance / itemWidth) * 0.3f;//使放大动画有渐进效果
-                    item.SetScale(distanceRange, distanceRange);//设置放大比例
+                    float distanceRange = 1 + (1 - distance / itemWidth) * 0.3f; //使放大动画有渐进效果
+                    item.SetScale(distanceRange, distanceRange); //设置放大比例
                     //设置颜色变化
                     if (distance < item.width / 2)
                     {
@@ -486,22 +519,25 @@ namespace GFGGame
                         listItem.m_content.m_compPic.m_pic.color = new Color(0.4f, 0.4f, 0.4f, 1.000f);
                     }
                 }
-                float distanceX = ((1 - (listCenter - itemCenter)) / itemWidth) * 0.05f;//使y轴移动有渐进效果
+                float distanceX = ((1 - (listCenter - itemCenter)) / itemWidth) * 0.05f; //使y轴移动有渐进效果
                 item.y = -_ui.m_listChapter.height * distanceX;
             }
         }
+
         private void CheckChapterIndex()
         {
             chapterIndex = 0;
-            List<StoryChapterCfg> storyChapterList = CommonDataManager.Tables.TblStoryChapterCfg.GetGroup1BySubType(MainStoryDataManager.currentChapterType);
+            List<StoryChapterCfg> storyChapterList =
+                CommonDataManager.Tables.TblStoryChapterCfg.GetGroup1BySubType(MainStoryDataManager.currentChapterType);
             foreach (StoryChapterCfg item in storyChapterList)
-            {  
+            {
                 if (!MainStoryDataManager.CheckChapterUnlock(item.Id))
                 {
                     return;
                 }
+
                 chapterIndex++;
             }
         }
-      }
+    }
 }

+ 98 - 63
GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryChapterView.cs

@@ -4,13 +4,14 @@ using UI.Main;
 using System.Collections.Generic;
 using UnityEngine;
 using System.Collections;
+using System.Linq;
 using cfg.GfgCfg;
 using ET;
 
 namespace GFGGame
 {
     public class StoryChapterView : BaseWindow
-{
+    {
         private UI_StoryChapterUI _ui;
         private int _chapterID;
         private GComponent _compChapter;
@@ -29,13 +30,17 @@ namespace GFGGame
 
         //当前章节索引
         private int newIndex;
+
         //y轴移动索引
         private float indexY;
+
         private GameObject gamey;
+
         //特效类型数组,这里后面可以二维数组,放向左和向右的
         private string[] effArray = new string[2] { "ZJ_JuQing", "ZJ_ZD" };
 
         private int currentDifficulty;
+
         public override void Dispose()
         {
             EffectUIPool.Recycle(_effectUI1);
@@ -57,21 +62,25 @@ namespace GFGGame
                 _comEff.RemoveFromParent();
                 _comEff.Dispose();
             }
+
             if (_effFirst != null)
             {
                 _effFirst.RemoveFromParent();
                 _effFirst.Dispose();
             }
+
             if (_valueBarController != null)
             {
                 _valueBarController.Dispose();
                 _valueBarController = null;
             }
+
             if (_ui != null)
             {
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -94,18 +103,9 @@ namespace GFGGame
             _ui.m_switchChapter.target.onClick.Add(OnClickSwitchBack);
             _ui.m_chapter.m_compChapterScroll.m_imgBegin.onClick.Add(OnClickNext);
             _ui.m_suitIcon.onClick.Add(OnClickGotoView);
-            _ui.m_bonusBox1.target.onClick.Add(() =>
-            {
-                OnClickBonusBox(_ui.m_bonusBox1, 0);
-            });
-            _ui.m_bonusBox2.target.onClick.Add(() =>
-            {
-                OnClickBonusBox(_ui.m_bonusBox2, 1);
-            });
-            _ui.m_bonusBox3.target.onClick.Add(() =>
-            {
-                OnClickBonusBox(_ui.m_bonusBox3, 2);
-            });
+            _ui.m_bonusBox1.target.onClick.Add(() => { OnClickBonusBox(_ui.m_bonusBox1, 0); });
+            _ui.m_bonusBox2.target.onClick.Add(() => { OnClickBonusBox(_ui.m_bonusBox2, 1); });
+            _ui.m_bonusBox3.target.onClick.Add(() => { OnClickBonusBox(_ui.m_bonusBox3, 2); });
             _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("zxian_bg3");
 
             //_comEff = new GComponent();
@@ -115,16 +115,18 @@ namespace GFGGame
             _effFirst = new GComponent();
             _effFirst = UIPackage.CreateObject(UI_MainUI.PACKAGE_NAME, "ComEff").asCom;
             _effectUI3 = EffectUIPool.CreateEffectUI(_ui.m_bgEffect, "ui_zj", "ZX_BG_TX");
-            _effectUI4 = EffectUIPool.CreateEffectUI(_ui.m_chapter.m_compChapterScroll.m_nextEffect, "ui_zj", "ZX_Next_Boat");
+            _effectUI4 =
+                EffectUIPool.CreateEffectUI(_ui.m_chapter.m_compChapterScroll.m_nextEffect, "ui_zj", "ZX_Next_Boat");
             _effectUI5 = EffectUIPool.CreateEffectUI(_ui.m_bonusBox1.m_effect, "ui_zj", "Claimed");
             _effectUI6 = EffectUIPool.CreateEffectUI(_ui.m_bonusBox2.m_effect, "ui_zj", "Claimed");
             _effectUI7 = EffectUIPool.CreateEffectUI(_ui.m_bonusBox3.m_effect, "ui_zj", "Claimed");
-
         }
+
         protected override void AddEventListener()
         {
             EventAgent.AddEventListener(ConstMessage.NOTICE_MAINSTORY_BOXBONUS_STATE, UpdateBonusBox);
         }
+
         protected override void OnShown()
         {
             base.OnShown();
@@ -160,7 +162,6 @@ namespace GFGGame
 
 
             //
-
         }
 
         protected override void OnHide()
@@ -180,6 +181,7 @@ namespace GFGGame
             base.RemoveEventListener();
             EventAgent.RemoveEventListener(ConstMessage.NOTICE_MAINSTORY_BOXBONUS_STATE, UpdateBonusBox);
         }
+
         private void OnClickBtnBack()
         {
             ViewManager.GoBackFrom(typeof(StoryChapterView).FullName);
@@ -198,7 +200,11 @@ namespace GFGGame
 
             StoryChapterCfg chapterCfg = CommonDataManager.Tables.TblStoryChapterCfg.GetOrDefault(_chapterID);
             newIndex = StoryUtil.GetChapterOrder(chapterCfg.Id);
-            indexY = 111.0f * Mathf.Max(0, (float)StoryLevelConfigManager.GetConfigs(chapterCfg.Type, chapterCfg.SubType, chapterCfg.Id).Count - 5);
+            indexY = 111.0f * Mathf.Max(0,
+                (float)CommonDataManager.Tables.TblStoryLevelCfg.DataList.Count(a =>
+                    a.Type == chapterCfg.Type && a.SubType == chapterCfg.SubType &&
+                    a.ChapterId == chapterCfg.Id) - 5);
+
             gamey = GameObject.Find("Stage/GRoot/Window - StoryChapterUI/ContentPane/CompChapter/Container/Container");
             _ui.m_chapter.m_compChapterScroll.m_imgBegin.visible = false;
             _ui.m_chapter.m_compChapterScroll.m_nextEffect.visible = false;
@@ -220,8 +226,11 @@ namespace GFGGame
                 _ui.m_switchChapter.target.visible = false;
                 _ui.m_bonusBox.visible = false;
                 _ui.m_ActivityZCJB.visible = true;
-                long timeActivity = ActivityGlobalDataManager.Instance.GetActivityInfoOneByType(17).EndTime - TimeHelper.ServerNow();
-                _ui.m_ZCJBTimeText.text = timeActivity > TimeUtil.SECOND_PER_DAY * 1000 ? TimeUtil.FormattingTimeTo_DDHHmm(timeActivity) : TimeUtil.FormattingTimeTo_HHmmss(timeActivity);
+                long timeActivity = ActivityGlobalDataManager.Instance.GetActivityInfoOneByType(17).EndTime -
+                                    TimeHelper.ServerNow();
+                _ui.m_ZCJBTimeText.text = timeActivity > TimeUtil.SECOND_PER_DAY * 1000
+                    ? TimeUtil.FormattingTimeTo_DDHHmm(timeActivity)
+                    : TimeUtil.FormattingTimeTo_HHmmss(timeActivity);
             }
             else
             {
@@ -241,10 +250,12 @@ namespace GFGGame
             Timers.inst.Remove(SetContainerY);
             ViewManager.Show<StoryChapterListView>(new object[] { Mathf.Max(0, currentDifficulty), newIndex });
         }
+
         private void OnClickGotoView()
         {
             StoryChapterCfg chapterSuitCfg = CommonDataManager.Tables.TblStoryChapterCfg.GetOrDefault(_chapterID);
-            ViewManager.Show<ClothingSyntheticView>(new object[] { chapterSuitCfg.SuitId, 0, _chapterID }, false, false);
+            ViewManager.Show<ClothingSyntheticView>(new object[] { chapterSuitCfg.SuitId, 0, _chapterID }, false,
+                false);
         }
 
         private void OnClickBtnHome()
@@ -255,7 +266,8 @@ namespace GFGGame
         private void OnClickNext()
         {
             StoryChapterCfg chapterSuitCfg = CommonDataManager.Tables.TblStoryChapterCfg.GetOrDefault(_chapterID);
-            if (MainStoryDataManager.CheckChapterUnlock(_chapterID + 1) && StoryController.CheckSuitGot(chapterSuitCfg.SuitId))
+            if (MainStoryDataManager.CheckChapterUnlock(_chapterID + 1) &&
+                StoryController.CheckSuitGot(chapterSuitCfg.SuitId))
             {
                 Timers.inst.Remove(SetContainerY);
                 _chapterID += 1;
@@ -274,7 +286,6 @@ namespace GFGGame
                 {
                     PromptController.Instance.ShowFloatTextPrompt(string.Format("角色等级达到{0}级开启", chapterCfg.Lvl));
                 }
-
             }
         }
 
@@ -288,13 +299,19 @@ namespace GFGGame
             _ui.m_txtChapterName4.text = chapterCfg.Name.Length > 4 ? chapterCfg.Name[4].ToString() : "";
             int order = StoryUtil.GetChapterOrder(chapterCfg.Id);
             _ui.m_txtChapter.text = order < 10 ? "0" + order : order.ToString();
-            int starCountChapter = InstanceZonesDataManager.GetChapterStarCount(_chapterID, chapterCfg.Type, chapterCfg.SubType);
+            int starCountChapter =
+                InstanceZonesDataManager.GetChapterStarCount(_chapterID, chapterCfg.Type, chapterCfg.SubType);
             _ui.m_txtStarCount.text = "" + starCountChapter + "/" + chapterCfg.BonusStar3;
             UpdateBonusBoxName(_ui.m_bonusBox1, "" + chapterCfg.BonusStar1);
             UpdateBonusBoxName(_ui.m_bonusBox2, "" + chapterCfg.BonusStar2);
             UpdateBonusBoxName(_ui.m_bonusBox3, "" + chapterCfg.BonusStar3);
             UpdateBonusBox();
-            var list = StoryLevelConfigManager.GetConfigs(chapterCfg.Type, chapterCfg.SubType, chapterCfg.Id);
+            var list = CommonDataManager.Tables.TblStoryLevelCfg.DataList
+                .Where(a => a.Type == chapterCfg.Type &&
+                            a.SubType == chapterCfg.SubType &&
+                            a.ChapterId == chapterCfg.Id)
+                .ToList();
+
             int endLevel = 0;
             int UnlockCount = 0;
             _compChapter = _ui.m_chapter.m_compChapterScroll.target;
@@ -305,11 +322,12 @@ namespace GFGGame
             StoryChapterCfg LastChapterCfg = CommonDataManager.Tables.TblStoryChapterCfg.GetOrDefault(_chapterID + 1);
             if (lastLevelCfg != null && InstanceZonesDataManager.CheckLevelPass(lastLevelCfg.Id))
             {
-                if(LastChapterCfg != null)
+                if (LastChapterCfg != null)
                 {
                     _ui.m_chapter.m_compChapterScroll.m_imgBegin.visible = true;
                     _ui.m_chapter.m_compChapterScroll.m_nextEffect.visible = true;
-                }    
+                }
+
                 if (chapterCfg.SuitId > 0 && chapterCfg.SubType == 0)
                 {
                     _ui.m_targetSuit.visible = true;
@@ -338,12 +356,14 @@ namespace GFGGame
                 currentDifficulty = 0;
                 _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("bg_zhuxian");
             }
+
             //_comEff.visible = false;
             //_effFirst.visible = false;
             for (int i = 0; i < 20; i++)
             {
                 GObject obj = _ui.m_chapter.m_compChapterScroll.target.GetChild("g" + (19 - i + 1));
-                obj.SetPosition(obj.x, starPosY - lineGap * i - 300, 0); ;
+                obj.SetPosition(obj.x, starPosY - lineGap * i - 300, 0);
+                ;
                 StoryLevelCfg levelCfg = i < list.Count ? list[i] : null;
                 UI_CompStoryLevelItem levelItem = UI_CompStoryLevelItem.Proxy(obj);
                 levelItem.m_fightBg.visible = true;
@@ -381,7 +401,6 @@ namespace GFGGame
                         levelItem.m_comDialogBg.m_loabg.url = ResPathUtil.GetBgImgPath(chapterCfg.BgRes);
                         levelItem.m_comDialogBg.m_loaIcon.url = ResPathUtil.GetChapterGuideIconPath(chapterCfg.BgRes);
                         levelItem.m_comDialogBg.m_c1.selectedIndex = Random.Range(0, 10);
-
                     }
 
                     //根据困难程度选择显示图片
@@ -389,7 +408,8 @@ namespace GFGGame
                     {
                         levelItem.m_loaDialogBg.url = "ui://Main/zxian_btn_jq_jy";
                         levelItem.m_fightBg.url = "ui://Main/zxian_btn_zd_jy";
-                        levelItem.m_txtFightOrder.text = string.Format("{0}", StringUtil.GetColorText(showId.ToString(), "#E3F8FF"));
+                        levelItem.m_txtFightOrder.text =
+                            string.Format("{0}", StringUtil.GetColorText(showId.ToString(), "#E3F8FF"));
                         levelItem.m_fightIconA.alpha = 0;
                         levelItem.m_fightIconB.alpha = 0;
                         _ui.m_txtBg.url = "ui://Main/zxian_chapter_dec_jy";
@@ -404,7 +424,8 @@ namespace GFGGame
                     {
                         levelItem.m_loaDialogBg.url = "ui://Main/zxian_btn_jq";
                         levelItem.m_fightBg.url = "ui://Main/zxian_btn_zd";
-                        levelItem.m_txtFightOrder.text = string.Format("{0}", StringUtil.GetColorText(showId.ToString(), "#FFEABF"));
+                        levelItem.m_txtFightOrder.text =
+                            string.Format("{0}", StringUtil.GetColorText(showId.ToString(), "#FFEABF"));
                         levelItem.m_fightIconA.alpha = 0;
                         levelItem.m_fightIconB.alpha = 0;
                         _ui.m_txtBg.url = "ui://Main/zxian_chapter_dec";
@@ -435,22 +456,26 @@ namespace GFGGame
                         {
                             effName = effArray[levelItem.m_c1.selectedIndex];
                         }
+
                         if (levelItem.m_c1.selectedIndex == 0)
                         {
                             if (levelItem.m_c2.selectedIndex == 0)
                             {
-                                _effectUI2 = EffectUIPool.CreateEffectUI(_effFirst.GetChild("effect_jq_left").asGraph, "ui_zj", effName);
+                                _effectUI2 = EffectUIPool.CreateEffectUI(_effFirst.GetChild("effect_jq_left").asGraph,
+                                    "ui_zj", effName);
                                 _effFirst.GetChild("effect_jq_left").rotationY = 180;
                             }
                             else
                             {
-                                _effectUI2 = EffectUIPool.CreateEffectUI(_effFirst.GetChild("effect_jq").asGraph, "ui_zj", effName);
+                                _effectUI2 = EffectUIPool.CreateEffectUI(_effFirst.GetChild("effect_jq").asGraph,
+                                    "ui_zj", effName);
                                 _effFirst.GetChild("effect_jq").rotationY = 0;
                             }
                         }
                         else
                         {
-                            _effectUI2 = EffectUIPool.CreateEffectUI(_effFirst.GetChild("effect_zd").asGraph, "ui_zj", effName);
+                            _effectUI2 = EffectUIPool.CreateEffectUI(_effFirst.GetChild("effect_zd").asGraph, "ui_zj",
+                                effName);
                             if (levelItem.m_c2.selectedIndex == 0)
                             {
                                 _effFirst.GetChild("effect_zd").rotationY = 0;
@@ -460,6 +485,7 @@ namespace GFGGame
                                 _effFirst.GetChild("effect_zd").rotationY = 180;
                             }
                         }
+
                         levelItem.target.AddChild(_effFirst);
                         levelItem.m_fightBg.visible = false;
                         levelItem.m_loaDialogBg.visible = false;
@@ -467,6 +493,7 @@ namespace GFGGame
                         _effFirst.visible = true;
                         //Timers.inst.Add(1.7f, 1, HideEffect, obj);
                     }
+
                     if (levelCfg.Order > endLevel)
                     {
                         endLevel = levelCfg.Order;
@@ -477,11 +504,14 @@ namespace GFGGame
                 {
                     levelItem.target.visible = false;
                 }
+
                 UI_CompStoryLevelItem.ProxyEnd();
             }
+
             yield return new WaitForEndOfFrame();
 
-            _ui.m_chapter.m_compChapterScroll.target.y = 0; //Mathf.Max(0, _ui.m_chapter.target.height - _ui.m_chapter.m_compChapterScroll.target.height);
+            _ui.m_chapter.m_compChapterScroll.target.y =
+                0; //Mathf.Max(0, _ui.m_chapter.target.height - _ui.m_chapter.m_compChapterScroll.target.height);
 
             if (gamey != null)
                 gamey.transform.position = new Vector3(0, indexY, 0);
@@ -489,7 +519,8 @@ namespace GFGGame
 
         private void SetContainerY(object param = null)
         {
-            _ui.m_chapter.m_compChapterScroll.target.y = 1; //Mathf.Max(0, _ui.m_chapter.target.height - _ui.m_chapter.m_compChapterScroll.target.height - 1);
+            _ui.m_chapter.m_compChapterScroll.target.y =
+                1; //Mathf.Max(0, _ui.m_chapter.target.height - _ui.m_chapter.m_compChapterScroll.target.height - 1);
         }
 
         private void HideEffect(object param = null)
@@ -499,7 +530,6 @@ namespace GFGGame
 
         private void OnClickLevelItem(EventContext context)
         {
-
             UI_CompStoryLevelItem levelItem = UI_CompStoryLevelItem.Proxy(context.sender as GObject);
             int levelCfgId = (int)levelItem.target.data;
             UI_CompStoryLevelItem.ProxyEnd();
@@ -511,12 +541,14 @@ namespace GFGGame
         {
             bonusBox.m_txtName.text = name;
         }
+
         private void UpdateBonusBox()
         {
             UpdateBonusBoxStatus(_ui.m_bonusBox1, 0);
             UpdateBonusBoxStatus(_ui.m_bonusBox2, 1);
             UpdateBonusBoxStatus(_ui.m_bonusBox3, 2);
         }
+
         private void UpdateBonusBoxStatus(UI_CompBonusBox bonusBox, int index)
         {
             int status = MainStoryDataManager.GetChapterBonusStatus(_chapterID, index);
@@ -531,6 +563,7 @@ namespace GFGGame
             {
                 bonusBox.m_icon.url = "ui://Main/tgjljinnang_no";
             }
+
             bonusBox.target.data = status;
         }
 
@@ -547,6 +580,7 @@ namespace GFGGame
                     {
                         BonusController.TryShowBonusList(bonusList);
                     }
+
                     UpdateBonusBoxStatus(bonusBox, index);
                 }
             }
@@ -562,24 +596,25 @@ namespace GFGGame
                 // PromptController.Instance.ShowFloatTextPrompt("关卡总分不足,继续加油吧。");
             }
         }
+
         private void CheckGuide(object param)
         {
             if (GuideDataManager.IsGuideFinish(ConstGuideId.START_FIGHT) <= 0
-            || GuideDataManager.IsGuideFinish(ConstGuideId.FREEDOM_DRESS) <= 0
-             || GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER) <= 0
-            || GuideDataManager.IsGuideFinish(ConstGuideId.BUY_CLOTHING) <= 0
-             || GuideDataManager.IsGuideFinish(ConstGuideId.UP_CARD_LV) <= 0
-             || GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER_1) <= 0
-             || GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER_2) <= 0
-             //|| GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER_3) <= 0
-             || GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER_4) <= 0
-             || GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER_5) <= 0
-             || GuideDataManager.IsGuideFinish(ConstGuideId.UP_CARD_STAR) <= 0
-             || GuideDataManager.IsGuideFinish(ConstGuideId.ARENA_OPEN) <= 0
-             || GuideDataManager.IsGuideFinish("ClothingSelectView") <= 0
-             || GuideDataManager.IsGuideFinish(ConstGuideId.STUDIO_FILING) <=0
-             || GuideDataManager.IsGuideFinish("TimeTracingShowView") <=0)
-            //|| GuideDataManager.IsGuideFinish(ConstGuideId.CLOTHING_DECOMPOSE) <= 0)
+                || GuideDataManager.IsGuideFinish(ConstGuideId.FREEDOM_DRESS) <= 0
+                || GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER) <= 0
+                || GuideDataManager.IsGuideFinish(ConstGuideId.BUY_CLOTHING) <= 0
+                || GuideDataManager.IsGuideFinish(ConstGuideId.UP_CARD_LV) <= 0
+                || GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER_1) <= 0
+                || GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER_2) <= 0
+                //|| GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER_3) <= 0
+                || GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER_4) <= 0
+                || GuideDataManager.IsGuideFinish(ConstGuideId.ENTER_CHAPTER_5) <= 0
+                || GuideDataManager.IsGuideFinish(ConstGuideId.UP_CARD_STAR) <= 0
+                || GuideDataManager.IsGuideFinish(ConstGuideId.ARENA_OPEN) <= 0
+                || GuideDataManager.IsGuideFinish("ClothingSelectView") <= 0
+                || GuideDataManager.IsGuideFinish(ConstGuideId.STUDIO_FILING) <= 0
+                || GuideDataManager.IsGuideFinish("TimeTracingShowView") <= 0)
+                //|| GuideDataManager.IsGuideFinish(ConstGuideId.CLOTHING_DECOMPOSE) <= 0)
             {
                 UpdateToCheckGuide(null);
             }
@@ -600,14 +635,17 @@ namespace GFGGame
             bool isGuide3 = GuideController.TryGuide(unPasslevelCom, ConstGuideId.ENTER_CHAPTER_1, 3, "来继续我们的旅程吧。");
             GuideController.TryCompleteGuide(ConstGuideId.ENTER_CHAPTER_1, 3);
 
-            bool isGuide4 = GuideController.TryGuide(unPasslevelCom, ConstGuideId.BUY_CLOTHING, 1, "停电了室内温度升高,点击换身轻薄的服饰吧。");
+            bool isGuide4 =
+                GuideController.TryGuide(unPasslevelCom, ConstGuideId.BUY_CLOTHING, 1, "停电了室内温度升高,点击换身轻薄的服饰吧。");
             bool isGuide5 = GuideController.TryGuide(_ui.m_btnHome, ConstGuideId.UP_CARD_LV, 1, "点击返回主界面。");
 
             //bool isGuide6 = GuideController.TryGuide(_ui.m_btnHome, ConstGuideId.CLOTHING_DECOMPOSE, 1, "点击返回主界面。");
 
-            bool isGuide7 = GuideController.TryGuide(_ui.m_switchChapter.target, ConstGuideId.ENTER_CHAPTER_2, 3, "进入章节选择。");
-            GuideController.TryGuide(unPasslevelCom, ConstGuideId.ENTER_CHAPTER_2, 6, "进入精英关卡。",-1,true,0,false,false,true);
-            
+            bool isGuide7 =
+                GuideController.TryGuide(_ui.m_switchChapter.target, ConstGuideId.ENTER_CHAPTER_2, 3, "进入章节选择。");
+            GuideController.TryGuide(unPasslevelCom, ConstGuideId.ENTER_CHAPTER_2, 6, "进入精英关卡。", -1, true, 0, false,
+                false, true);
+
 
             //bool isGuide8 = GuideController.TryGuide(unPasslevelCom, ConstGuideId.ENTER_CHAPTER_3, 3, "来继续我们的旅程吧。");
             //GuideController.TryCompleteGuide(ConstGuideId.ENTER_CHAPTER_3, 3);
@@ -625,9 +663,11 @@ namespace GFGGame
             bool isGuide14 = GuideController.TryGuide(_ui.m_btnHome, ConstGuideId.STUDIO_FILING, 1, "点击返回主界面。");
             bool isGuide15 = GuideController.TryGuide(_ui.m_btnHome, "TimeTracingShowView", 1, "点击返回主界面。");
             //&& !isGuide6 && !isGuide8
-            _ui.m_chapter.target.scrollPane.touchEffect = !isGuide0 && !isGuide1 && !isGuide2 && !isGuide3 && !isGuide4 && !isGuide5 && !isGuide7 && !isGuide9 && !isGuide10;
-
+            _ui.m_chapter.target.scrollPane.touchEffect = !isGuide0 && !isGuide1 && !isGuide2 && !isGuide3 &&
+                                                          !isGuide4 && !isGuide5 && !isGuide7 && !isGuide9 &&
+                                                          !isGuide10;
         }
+
         protected override void TryCompleteGuide()
         {
             base.TryCompleteGuide();
@@ -649,11 +689,6 @@ namespace GFGGame
             // GuideCfg cfg5 = GuideCfgArray.Instance.GetCfg(ConstGuideId.ENTER_CHAPTER_5);
             //GuideController.TryCompleteGuideIndex(ConstGuideId.ENTER_CHAPTER_5, 4);
             GuideController.TryCompleteGuide(ConstGuideId.ENTER_CHAPTER_5, 3);
-
         }
-
-
-
     }
-}
-
+}

+ 44 - 17
GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryController.cs

@@ -1,6 +1,7 @@
 using System.Collections.Generic;
 using UnityEngine;
 using System.Collections;
+using System.Linq;
 using cfg.GfgCfg;
 using ET;
 
@@ -13,6 +14,7 @@ namespace GFGGame
         {
             InstanceZonesController.ShowLevelView(levelCfgId, OnFinishStoryLevel, needitemId, needItemCount);
         }
+
         public static void OnFinishStoryLevel(int levelCfgId, bool firstPass, bool success)
         {
             if (success)
@@ -26,10 +28,15 @@ namespace GFGGame
                 {
                     MainStorySProxy.GetStoryBonusDate().Coroutine();
                     StoryLevelCfg levelCfg = CommonDataManager.Tables.TblStoryLevelCfg.GetOrDefault(levelCfgId);
-                    StoryChapterCfg nextStoryChapterCfg = CommonDataManager.Tables.TblStoryChapterCfg.GetOrDefault(levelCfg.ChapterId + 1);
+                    StoryChapterCfg nextStoryChapterCfg =
+                        CommonDataManager.Tables.TblStoryChapterCfg.GetOrDefault(levelCfg.ChapterId + 1);
                     if (nextStoryChapterCfg != null)
                     {
-                        StoryLevelCfg nextChapterLevelCfg = StoryLevelConfigManager.GetConfigs(nextStoryChapterCfg.Type, nextStoryChapterCfg.SubType, nextStoryChapterCfg.Id)[0];
+                        StoryLevelCfg nextChapterLevelCfg = CommonDataManager.Tables.TblStoryLevelCfg.DataList
+                            .Where(a => a.Type == nextStoryChapterCfg.Type &&
+                                        a.SubType == nextStoryChapterCfg.SubType &&
+                                        a.ChapterId == nextStoryChapterCfg.Id)
+                            .ToList()[0];
 
                         int LevelID = nextChapterLevelCfg.Id;
                         MainStoryDataManager.currentLevelCfgId = LevelID;
@@ -37,29 +44,36 @@ namespace GFGGame
                     else
                     {
                         MainStoryDataManager.currentLevelCfgId = 0;
-
                     }
+
                     int index = 0;
-                    if (levelCfg.Type == ConstInstanceZonesType.Story && levelCfg.SubType == ConstInstanceZonesSubType.Hard)
+                    if (levelCfg.Type == ConstInstanceZonesType.Story &&
+                        levelCfg.SubType == ConstInstanceZonesSubType.Hard)
                     {
                         index = 1;
                     }
+
                     //当副本表内最后一章通关时 
                     if (nextStoryChapterCfg == null)
                     {
-                        StoryChapterCfg lastChapter = CommonDataManager.Tables.TblStoryChapterCfg.GetOrDefault(levelCfg.ChapterId);
+                        StoryChapterCfg lastChapter =
+                            CommonDataManager.Tables.TblStoryChapterCfg.GetOrDefault(levelCfg.ChapterId);
                         ViewManager.Show<StoryChapterListView>(new object[] { index, lastChapter.Order }, true);
                         return;
                     }
                     else
                     {
                         //ViewManager.Show<StoryChapterListView>(new object[] { index, nextStoryChapterCfg.order }, true);
-                        StoryChapterCfg previousChapterCfg = CommonDataManager.Tables.TblStoryChapterCfg.GetOrDefault(levelCfg.ChapterId);
-                        StoryChapterCfg nextChapterCfg = CommonDataManager.Tables.TblStoryChapterCfg.GetOrDefault(levelCfg.ChapterId + 1);
+                        StoryChapterCfg previousChapterCfg =
+                            CommonDataManager.Tables.TblStoryChapterCfg.GetOrDefault(levelCfg.ChapterId);
+                        StoryChapterCfg nextChapterCfg =
+                            CommonDataManager.Tables.TblStoryChapterCfg.GetOrDefault(levelCfg.ChapterId + 1);
                         bool lv = nextChapterCfg.Lvl < GameGlobal.myNumericComponent.GetAsInt(NumericType.Lvl);
-                        if (CheckSuitGot(previousChapterCfg.SuitId) && MainStoryDataManager.CheckChapterUnlock(levelCfg.ChapterId) && lv)
+                        if (CheckSuitGot(previousChapterCfg.SuitId) &&
+                            MainStoryDataManager.CheckChapterUnlock(levelCfg.ChapterId) && lv)
                         {
-                            ViewManager.Show<StoryChapterListView>(new object[] { index, nextStoryChapterCfg.Order }, true);
+                            ViewManager.Show<StoryChapterListView>(new object[] { index, nextStoryChapterCfg.Order },
+                                true);
                         }
                         else
                         {
@@ -67,7 +81,6 @@ namespace GFGGame
                             ViewManager.Show<StoryChapterView>(new object[] { previousChapterCfg.Id, 0 }, true);
                         }
                     }
-                    
                 }
                 else
                 {
@@ -83,24 +96,32 @@ namespace GFGGame
 
         public static bool CheckSuitGot(int suitID = 0)
         {
-            if(suitID == 0)
+            if (suitID == 0)
             {
                 return true;
             }
+
             int count;
             int totalCount;
             DressUpMenuSuitDataManager.GetSuitProgressBySuitId(suitID, out count, out totalCount);
-            if(count >= totalCount)
+            if (count >= totalCount)
             {
                 return true;
             }
+
             return false;
         }
 
         public static void ShowCardStoryDialog(CardStoryCfg cardStoryCfg, CardData cardData)
         {
-            ViewManager.Show<StoryDialogView>(new object[] { cardStoryCfg.StoryStartID, true, new OnCompleteStoryDialogCall(OnCompleteCardStoryDialog), cardData ,false}, true);
+            ViewManager.Show<StoryDialogView>(
+                new object[]
+                {
+                    cardStoryCfg.StoryStartID, true, new OnCompleteStoryDialogCall(OnCompleteCardStoryDialog), cardData,
+                    false
+                }, true);
         }
+
         private static void OnCompleteCardStoryDialog(bool isSkip, object param)
         {
             //CardData cardData = param as CardData;
@@ -114,7 +135,10 @@ namespace GFGGame
             InstanceZonesDataManager.currentLevelCfgId = 100001001;
             string stroyStartID = "1";
             // string stroyStartID = MainStoryDataManager.priorId;
-            ViewManager.Show<StoryDialogView>(new object[] { stroyStartID, false, new OnCompleteStoryDialogCall(OnCompletePriorStoryDialog),null,false }, true);
+            ViewManager.Show<StoryDialogView>(
+                new object[]
+                    { stroyStartID, false, new OnCompleteStoryDialogCall(OnCompletePriorStoryDialog), null, false },
+                true);
         }
 
         private static void OnCompletePriorStoryDialog(bool done, object param)
@@ -125,11 +149,14 @@ namespace GFGGame
 
         public static void ShowFilingStoryDialog(StoryLevelCfg storyLevelCfg)
         {
-
             InstanceZonesDataManager.currentLevelCfgId = storyLevelCfg.Id;
 
-            ViewManager.Show<StoryDialogView>(new object[] { storyLevelCfg.StoryStartID, false, new OnCompleteStoryDialogCall(OnCompleteFilingStoryDialog) ,null,false}, true);
-
+            ViewManager.Show<StoryDialogView>(
+                new object[]
+                {
+                    storyLevelCfg.StoryStartID, false, new OnCompleteStoryDialogCall(OnCompleteFilingStoryDialog), null,
+                    false
+                }, true);
         }
 
         private static void OnCompleteFilingStoryDialog(bool isSkip, object param)

+ 25 - 10
GameClient/Assets/Game/HotUpdate/Views/OpenServerActivity/OpenServerFightView.cs

@@ -3,6 +3,7 @@ using FairyGUI;
 using UI.OpenServerActivity;
 using UI.CommonGame;
 using System.Collections.Generic;
+using System.Linq;
 using cfg.GfgCfg;
 using ET;
 
@@ -25,6 +26,7 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -57,7 +59,10 @@ namespace GFGGame
             _activityId = ActivityDataManager.Instance.GetCurOpenActiveByType(_activityType);
             _activityCfg = CommonDataManager.Tables.TblActivityOpenCfg.GetOrDefault(_activityId);
             _activityFightCfg = CommonDataManager.Tables.TblActivityFightCfg.GetOrDefault(_activityCfg.Params1[0]);
-            _storyLevelCfgs = StoryLevelConfigManager.GetConfigs(_activityFightCfg.Type, _activityFightCfg.SubType, _activityCfg.Params3[0]);
+            _storyLevelCfgs = CommonDataManager.Tables.TblStoryLevelCfg.DataList.Where(a =>
+                a.Type == _activityFightCfg.Type && a.SubType == _activityFightCfg.SubType &&
+                a.ChapterId == _activityCfg.Params3[0]).ToList();
+            
             _ui.m_list.numItems = _storyLevelCfgs.Count;
             UpdateItem();
             RefreshTxtFreeNum();
@@ -95,16 +100,18 @@ namespace GFGGame
 
         private void OnClickIconSuidAdd()
         {
-            ViewManager.Show<OpenServerSuitAdditionView>(new object[] { ConstLimitTimeActivityType.ActLimitStlyc, _storyLevelCfgs[0].Id });
+            ViewManager.Show<OpenServerSuitAdditionView>(new object[]
+                { ConstLimitTimeActivityType.ActLimitStlyc, _storyLevelCfgs[0].Id });
         }
-        
+
         private void RenderListItem(int index, GObject obj)
         {
             UI_OpenSererFightItem item = UI_OpenSererFightItem.Proxy(obj);
             item.m_txtName.text = _storyLevelCfgs[index].Name;
             item.m_loaIcon.visible = false;
             item.m_loaItem.visible = true;
-            StoryFightCfg storyFightCfg = CommonDataManager.Tables.TblStoryFightCfg.GetOrDefault(int.Parse(_storyLevelCfgs[index].FightID));
+            StoryFightCfg storyFightCfg =
+                CommonDataManager.Tables.TblStoryFightCfg.GetOrDefault(int.Parse(_storyLevelCfgs[index].FightID));
             int itemId = storyFightCfg.BonusBase[0].ItemId;
             ItemCfg itemCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(itemId);
             item.m_loaItem.url = ResPathUtil.GetIconPath(itemCfg);
@@ -112,20 +119,24 @@ namespace GFGGame
             {
                 item.m_loaItem.onClick.Add(OnLoaItemClick);
             }
+
             item.m_loaItem.data = index;
-          
-            item.m_grpLock.visible = index > 0 && !InstanceZonesDataManager.CheckLevelPass(_storyLevelCfgs[index - 1].Id);
+
+            item.m_grpLock.visible =
+                index > 0 && !InstanceZonesDataManager.CheckLevelPass(_storyLevelCfgs[index - 1].Id);
 
             if (!item.m_grpLock.visible)
                 item.m_comFirstPass.visible = !InstanceZonesDataManager.CheckLevelPass(_storyLevelCfgs[index].Id);
             else
                 item.m_comFirstPass.visible = false;
 
-            item.m_comFlower.m_c1.selectedIndex = InstanceZonesDataManager.GetStarCountHistory(_storyLevelCfgs[index].Id);
+            item.m_comFlower.m_c1.selectedIndex =
+                InstanceZonesDataManager.GetStarCountHistory(_storyLevelCfgs[index].Id);
             if (item.m_loaBg.data == null)
             {
                 item.m_loaBg.onClick.Add(OnListItemClick);
             }
+
             item.m_loaBg.data = index;
             UI_OpenSererFightItem.ProxyEnd();
         }
@@ -140,25 +151,29 @@ namespace GFGGame
                 PromptController.Instance.ShowFloatTextPrompt("需通关前置关卡");
                 return;
             }
+
             MainStoryDataManager.currentLevelCfgId = storyLevelCfg.Id;
-            InstanceZonesController.ShowLevelView(storyLevelCfg.Id, StudioDataManager.Instance.OnFinishStudioStoryLevel);
+            InstanceZonesController.ShowLevelView(storyLevelCfg.Id,
+                StudioDataManager.Instance.OnFinishStudioStoryLevel);
         }
 
         private void OnLoaItemClick(EventContext context)
         {
             GObject obj = context.sender as GObject;
             int index = (int)obj.data;
-            StoryFightCfg storyFightCfg = CommonDataManager.Tables.TblStoryFightCfg.GetOrDefault(int.Parse(_storyLevelCfgs[index].FightID));
+            StoryFightCfg storyFightCfg =
+                CommonDataManager.Tables.TblStoryFightCfg.GetOrDefault(int.Parse(_storyLevelCfgs[index].FightID));
             int itemId = storyFightCfg.BonusBase[0].ItemId;
             GoodsItemTipsController.ShowItemTips(itemId);
-
         }
+
         private void UpdateItem()
         {
             for (int i = 0; i < _ui.m_list.numChildren; i++)
             {
                 _ui.m_list.GetChildAt(i).visible = false;
             }
+
             itemIndex = 0;
             Timers.inst.Add(0.05f, _ui.m_list.numChildren, AddItemUpdate, 1);
         }

+ 41 - 15
GameClient/Assets/Game/HotUpdate/Views/OpenServerActivity/OpenServerStoryView.cs

@@ -3,6 +3,7 @@ using FairyGUI;
 using UI.OpenServerActivity;
 using UI.CommonGame;
 using System.Collections.Generic;
+using System.Linq;
 using cfg.GfgCfg;
 
 namespace GFGGame
@@ -10,7 +11,7 @@ namespace GFGGame
     public class OpenServerStoryView : BaseWindow
     {
         private UI_OpenServerStoryUI _ui;
-        private Dictionary<int,List<StoryLevelCfg>> _storyLevelCfgs = new Dictionary<int, List<StoryLevelCfg>>();
+        private Dictionary<int, List<StoryLevelCfg>> _storyLevelCfgs = new Dictionary<int, List<StoryLevelCfg>>();
         private int _activityId;
         private int _activityType;
         private ActivityOpenCfg _activityCfg;
@@ -29,6 +30,7 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -94,8 +96,13 @@ namespace GFGGame
             int posRedY = 30;
             bool redVisible = false;
             UI_StoryItem item = UI_StoryItem.Proxy(obj);
-            ActivityStoryCfg activityStoryCfg = CommonDataManager.Tables.TblActivityStoryCfg.GetOrDefault(_activityCfg.Params4[index]);
-            var storyLevelCfg = StoryLevelConfigManager.GetConfigs(activityStoryCfg.Type, activityStoryCfg.SubType, _activityCfg.Params4[index]);
+            ActivityStoryCfg activityStoryCfg =
+                CommonDataManager.Tables.TblActivityStoryCfg.GetOrDefault(_activityCfg.Params4[index]);
+            var storyLevelCfg = CommonDataManager.Tables.TblStoryLevelCfg.DataList
+                .Where(a => a.Type == activityStoryCfg.Type &&
+                            a.SubType == activityStoryCfg.SubType &&
+                            a.ChapterId == _activityCfg.Params4[index]).ToList();
+
             _storyLevelCfgs.Add(index, storyLevelCfg);
 
             item.m_posType.selectedIndex = index % 2;
@@ -108,46 +115,62 @@ namespace GFGGame
                 item.m_rewardItem.target.onClick.Add(OnClickIcon);
 
             item.m_rewardItem.target.data = itemCfg.Id;
-            if (index > 0 && (!InstanceZonesDataManager.CheckLevelPass(_storyLevelCfgs[index - 1][0].Id) || !ItemDataManager.ItemCollect.ContainsKey(activityStoryCfg.NeedItems[0].ItemId) || ItemDataManager.ItemCollect[activityStoryCfg.NeedItems[0].ItemId] < activityStoryCfg.NeedItems[0].Count))
+            if (index > 0 && (!InstanceZonesDataManager.CheckLevelPass(_storyLevelCfgs[index - 1][0].Id) ||
+                              !ItemDataManager.ItemCollect.ContainsKey(activityStoryCfg.NeedItems[0].ItemId) ||
+                              ItemDataManager.ItemCollect[activityStoryCfg.NeedItems[0].ItemId] <
+                              activityStoryCfg.NeedItems[0].Count))
             {
                 item.m_storyImageType.selectedIndex = 0;
             }
-            else { 
+            else
+            {
                 item.m_storyImageType.selectedIndex = index + 1;
             }
 
-            if (item.m_posType.selectedIndex == 1) {
+            if (item.m_posType.selectedIndex == 1)
+            {
                 posRedX = -52;
                 posRedY = 30;
             }
 
-            if ((index == 0 && !InstanceZonesDataManager.CheckLevelPass(_storyLevelCfgs[index][0].Id)) || (index > 0 && InstanceZonesDataManager.CheckLevelPass(_storyLevelCfgs[index - 1][0].Id) && !InstanceZonesDataManager.CheckLevelPass(_storyLevelCfgs[index][0].Id) && ItemDataManager.ItemCollect.ContainsKey(activityStoryCfg.NeedItems[0].ItemId) && ItemDataManager.ItemCollect[activityStoryCfg.NeedItems[0].ItemId] >= activityStoryCfg.NeedItems[0].Count))
+            if ((index == 0 && !InstanceZonesDataManager.CheckLevelPass(_storyLevelCfgs[index][0].Id)) || (index > 0 &&
+                    InstanceZonesDataManager.CheckLevelPass(_storyLevelCfgs[index - 1][0].Id) &&
+                    !InstanceZonesDataManager.CheckLevelPass(_storyLevelCfgs[index][0].Id) &&
+                    ItemDataManager.ItemCollect.ContainsKey(activityStoryCfg.NeedItems[0].ItemId) &&
+                    ItemDataManager.ItemCollect[activityStoryCfg.NeedItems[0].ItemId] >=
+                    activityStoryCfg.NeedItems[0].Count))
             {
                 redVisible = true;
             }
+
             RedDotController.Instance.SetComRedDot(item.target, redVisible, "", posRedX, posRedY);
 
-            if (activityStoryCfg.NeedItems.Count > 0) {
+            if (activityStoryCfg.NeedItems.Count > 0)
+            {
                 int count;
                 if (ItemDataManager.ItemCollect.TryGetValue(activityStoryCfg.NeedItems[0].ItemId, out count))
                 {
                     if (count < activityStoryCfg.NeedItems[0].Count)
                     {
                         item.m_openCloseType.selectedIndex = 0;
-                        item.m_txtNotOpenTitle.text = string.Format("收集{0}/{1}个", ItemDataManager.ItemCollect[activityStoryCfg.NeedItems[0].ItemId], activityStoryCfg.NeedItems[0].Count);
-                        ItemCfg itemNeedCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(activityStoryCfg.NeedItems[0].ItemId);
+                        item.m_txtNotOpenTitle.text = string.Format("收集{0}/{1}个",
+                            ItemDataManager.ItemCollect[activityStoryCfg.NeedItems[0].ItemId],
+                            activityStoryCfg.NeedItems[0].Count);
+                        ItemCfg itemNeedCfg =
+                            CommonDataManager.Tables.TblItemCfg.GetOrDefault(activityStoryCfg.NeedItems[0].ItemId);
                         item.m_loaNeedIcon.url = ResPathUtil.GetIconPath(itemNeedCfg);
                     }
                     else
-                    { 
-                        item.m_openCloseType.selectedIndex = 1; 
+                    {
+                        item.m_openCloseType.selectedIndex = 1;
                     }
                 }
                 else
                 {
                     item.m_openCloseType.selectedIndex = 0;
                     item.m_txtNotOpenTitle.text = string.Format("收集{0}/{1}个", 0, activityStoryCfg.NeedItems[0].Count);
-                    ItemCfg itemNeedCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(activityStoryCfg.NeedItems[0].ItemId);
+                    ItemCfg itemNeedCfg =
+                        CommonDataManager.Tables.TblItemCfg.GetOrDefault(activityStoryCfg.NeedItems[0].ItemId);
                     item.m_loaNeedIcon.url = ResPathUtil.GetIconPath(itemNeedCfg);
                 }
             }
@@ -170,13 +193,15 @@ namespace GFGGame
         {
             GObject obj = context.sender as GObject;
             int index = (int)obj.data;
-            ActivityStoryCfg activityStoryCfg = CommonDataManager.Tables.TblActivityStoryCfg.GetOrDefault(_activityCfg.Params4[index]);
+            ActivityStoryCfg activityStoryCfg =
+                CommonDataManager.Tables.TblActivityStoryCfg.GetOrDefault(_activityCfg.Params4[index]);
             StoryLevelCfg storyLevelCfg = _storyLevelCfgs[index][0];
             if (index > 0 && !InstanceZonesDataManager.CheckLevelPass(_storyLevelCfgs[index - 1][0].Id))
             {
                 PromptController.Instance.ShowFloatTextPrompt("需通关前置关卡");
                 return;
             }
+
             if (index > 0)
             {
                 int count;
@@ -196,7 +221,8 @@ namespace GFGGame
             }
 
             MainStoryDataManager.currentLevelCfgId = storyLevelCfg.Id;
-            InstanceZonesController.ShowLevelView(storyLevelCfg.Id, StudioDataManager.Instance.OnFinishStudioStoryLevel);
+            InstanceZonesController.ShowLevelView(storyLevelCfg.Id,
+                StudioDataManager.Instance.OnFinishStudioStoryLevel);
         }
     }
 }

+ 21 - 12
GameClient/Assets/Game/HotUpdate/Views/RoleInfo/GMPanelView.cs

@@ -1,5 +1,6 @@
 using FairyGUI;
 using System.Collections.Generic;
+using System.Linq;
 using System.Text.RegularExpressions;
 using cfg.GfgCfg;
 using UI.RoleInfo;
@@ -180,30 +181,36 @@ namespace GFGGame
             {
                 GMController.SendGMCommand("chapter " + content, messageSuc).Coroutine();
             }
+
             ActivitySProxy.ReqGetNewPlayerBonusStatus().Coroutine();
             MainStorySProxy.GetStoryBonusDate().Coroutine();
-
         }
 
         private async void SkipAllChapter()
         {
-            List<StoryChapterCfg> chapterList = CommonDataManager.Tables.TblStoryChapterCfg.GetGroup1BySubType(1);   
+            List<StoryChapterCfg> chapterList = CommonDataManager.Tables.TblStoryChapterCfg.GetGroup1BySubType(1);
             foreach (var item in chapterList)
             {
-                List<StoryLevelCfg> levelList = StoryLevelConfigManager.GetConfigs(1,1,item.Id);
+                List<StoryLevelCfg> levelList = CommonDataManager.Tables.TblStoryLevelCfg.DataList
+                    .Where(a => a.Type == 1 &&
+                                a.SubType == 1 &&
+                                a.ChapterId == item.Id).ToList();
+
                 foreach (var level in levelList)
                 {
                     M2C_FinishInstanceZonesFightLevel response = null;
-                    response = (M2C_FinishInstanceZonesFightLevel)await MessageHelper.SendToServer(new C2M_FinishInstanceZonesFightLevel()
-                    {
-                        LevelCfgId = level.Id,
-                        Score = 99999,
-                        NpcScore = 0,
-                        UseRecommend = false
-                    });
+                    response = (M2C_FinishInstanceZonesFightLevel)await MessageHelper.SendToServer(
+                        new C2M_FinishInstanceZonesFightLevel()
+                        {
+                            LevelCfgId = level.Id,
+                            Score = 99999,
+                            NpcScore = 0,
+                            UseRecommend = false
+                        });
                 }
             }
         }
+
         private async void OnClickBtnSkipCheckOpen()
         {
             int isSkip = GameGlobal.skipCheckOpen == false ? 1 : 0;
@@ -305,10 +312,12 @@ namespace GFGGame
 
         private void InitChapterText()
         {
-            var chapterCount = CommonDataManager.Tables.TblStoryChapterCfg.GetGroup1BySubType(ConstInstanceZonesSubType.Normal).Count;
+            var chapterCount = CommonDataManager.Tables.TblStoryChapterCfg
+                .GetGroup1BySubType(ConstInstanceZonesSubType.Normal).Count;
             _ui.m_ComBtn.m_txtChapter.text = "" + chapterCount;
             StoryChapterCfg storyChapterCfg =
-                CommonDataManager.Tables.TblStoryChapterCfg.GetGroup1BySubTypeAndOrder(ConstInstanceZonesSubType.Normal, chapterCount)[0];
+                CommonDataManager.Tables.TblStoryChapterCfg.GetGroup1BySubTypeAndOrder(ConstInstanceZonesSubType.Normal,
+                    chapterCount)[0];
             _ui.m_ComBtn.m_txtChapterLv.text = "" + storyChapterCfg.LevelCount;
         }
 

+ 35 - 13
GameClient/Assets/Game/HotUpdate/Views/Store/StoreBrocadeWeavView.cs

@@ -1,6 +1,7 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
+using cfg;
 using cfg.GfgCfg;
 using ET;
 using FairyGUI;
@@ -22,6 +23,7 @@ namespace GFGGame
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -44,7 +46,8 @@ namespace GFGGame
             _ui.m_btnShow.onClick.Add(OnBtnShowClick);
             _ui.m_tip.data = 300012;
             _ui.m_LevelProcess.m_loaIcon.url =
-            ResPathUtil.GetCommonGameResPath( CommonDataManager.Tables.TblItemCfg.GetOrDefault(ConstItemID.BATTLE_PASS_CURRENCY).Res);
+                ResPathUtil.GetCommonGameResPath(CommonDataManager.Tables.TblItemCfg
+                    .GetOrDefault(ConstItemID.BATTLE_PASS_CURRENCY).Res);
         }
 
         protected override void OnHide()
@@ -68,16 +71,19 @@ namespace GFGGame
             SetOpenBattlePassBtnStatus();
             FreshSpecialReward(oldLevel);
             var battlePassCfgs =
-                CommonDataManager.Tables.TblBattlePassCfg.GetGroup1ById(BattlePassTaskDataManager.Instance.GetSeasonId());
+                CommonDataManager.Tables.TblBattlePassCfg.GetGroup1ById(
+                    BattlePassTaskDataManager.Instance.GetSeasonId());
             var minLevel =
                 (from battlePassCfg in battlePassCfgs
-                 let state = BattlePassTaskDataManager.Instance.GetRewardState(battlePassCfg.Level)
-                 where battlePassCfg.Level != 0 && state != 2
-                 select battlePassCfg.Level).FirstOrDefault();
+                    let state = BattlePassTaskDataManager.Instance.GetRewardState(battlePassCfg.Level)
+                    where battlePassCfg.Level != 0 && state != 2
+                    select battlePassCfg.Level).FirstOrDefault();
             minLevel = Mathf.Max(1, minLevel);
             _ui.m_RewardList.ScrollToView(minLevel - 1);
             UpdateBtnBrocadeWeavTaskRed();
-            BattlePassOpenCfg battleOpencfg = CommonDataManager.Tables.TblBattlePassOpenCfg.GetOrDefault(BattlePassTaskDataManager.Instance.GetSeasonId());
+            BattlePassOpenCfg battleOpencfg =
+                CommonDataManager.Tables.TblBattlePassOpenCfg.GetOrDefault(BattlePassTaskDataManager.Instance
+                    .GetSeasonId());
             _ui.m_Icon.url = ResPathUtil.GetIconPath(battleOpencfg.Picture, "png");
         }
 
@@ -131,12 +137,14 @@ namespace GFGGame
             var dataManager = BattlePassTaskDataManager.Instance;
             var seasonId = dataManager.GetSeasonId();
             var battlePassCfg =
-                CommonDataManager.Tables.TblBattlePassCfg.GetGroup1ByIdAndLevel(seasonId, dataManager.GetBattlePassLevel() + 1);
+                CommonDataManager.Tables.TblBattlePassCfg.GetGroup1ByIdAndLevel(seasonId,
+                    dataManager.GetBattlePassLevel() + 1);
             if (battlePassCfg == null)
             {
                 PromptController.Instance.ShowFloatTextPrompt("已经满级");
                 return;
             }
+
             ViewManager.Show<BuyBattlePassLevelView>();
         }
 
@@ -182,6 +190,7 @@ namespace GFGGame
                     break;
                 }
             }
+
             ViewManager.Show<SuitShowView>(new object[] { _suitTypeId, suitId, new List<int>() { suitId }, false });
         }
 
@@ -240,7 +249,8 @@ namespace GFGGame
                 itemView.ChangeTxtCountStyle();
                 itemView.GrpGotVisible = BattlePassTaskDataManager.Instance.CheckLevelRewardGet(level);
                 item.m_ImgBgGray.visible = state == 0;
-                if (state == 0 && (level == 1 || (level > 1 && BattlePassTaskDataManager.Instance.GetRewardState(level-1) > 0)))
+                if (state == 0 && (level == 1 ||
+                                   (level > 1 && BattlePassTaskDataManager.Instance.GetRewardState(level - 1) > 0)))
                     item.m_ImgLock.visible = true;
                 else
                     item.m_ImgLock.visible = false;
@@ -252,10 +262,12 @@ namespace GFGGame
                 item.m_NormalReward.data = null;
                 item.m_NormalReward.visible = false;
             }
+
             if (item.m_RewardList.data == null)
             {
                 item.m_RewardList.itemRenderer = SpecialRewardRender;
             }
+
             var superLevelRewardGet = BattlePassTaskDataManager.Instance.CheckSuperLevelRewardGet(level);
             item.m_RewardList.data = (battlePassCfg.BonusSpecial, true, state, superLevelRewardGet);
             item.m_RewardList.numItems = battlePassCfg.BonusSpecial.Count;
@@ -282,9 +294,10 @@ namespace GFGGame
         //SpecialRewardRender
         private static void SpecialRewardRender(int index, GObject obj)
         {
-            var keyValuePair = ((int[][], bool, int, bool))obj.parent.data;
+            var keyValuePair = ((List<ItemParam>, bool, int, bool))obj.parent.data;
             var itemInfo = keyValuePair.Item1[index];
-            var itemData = ItemUtil.createItemData(new ItemParamProto(){ItemId = itemInfo[0],Count = itemInfo[1]});
+            var itemData =
+                ItemUtil.createItemData(new ItemParamProto() { ItemId = itemInfo.ItemId, Count = itemInfo.Count });
             var itemView = new ItemView(obj as GComponent);
             obj.data ??= itemView;
             itemView.SetData(itemData);
@@ -295,6 +308,7 @@ namespace GFGGame
                 RedDotController.Instance.SetComRedDot(itemView.GetGComponentObj, keyValuePair.Item3 == 1, "", -12, 24);
                 itemView.GrpGotVisible = keyValuePair.Item4;
             }
+
             if (!isBuy)
                 itemView.ButtonTypeVisible = 3;
             else
@@ -310,18 +324,21 @@ namespace GFGGame
             {
                 item.m_GetRewardBt.onClick.Add(OnBtnGetClick);
             }
+
             item.m_GetRewardBt.data = id;
             //继续领取
             if (item.m_ContinueBt.data == null)
             {
                 item.m_ContinueBt.onClick.Add(OnBtnContinueClick);
             }
+
             item.m_ContinueBt.data = id;
             //前往
             if (item.m_ComeBt.data == null)
             {
                 item.m_ComeBt.enabled = false;
             }
+
             item.m_ComeBt.data = id;
         }
 
@@ -343,6 +360,7 @@ namespace GFGGame
                 Timers.inst.Remove(UpdateTime);
                 return;
             }
+
             _ui.m_LeftTime.text = TimeUtil.FormattingTimeTo_DDHHmm(leftTime);
         }
 
@@ -363,7 +381,8 @@ namespace GFGGame
             var uiExpProcess = _ui.m_LevelProcess;
             //获取当前等级的经验
             var battlePassCfg =
-               CommonDataManager.Tables.TblBattlePassCfg.GetGroup1ByIdAndLevel(seasonId, dataManager.GetBattlePassLevel());
+                CommonDataManager.Tables.TblBattlePassCfg.GetGroup1ByIdAndLevel(seasonId,
+                    dataManager.GetBattlePassLevel());
             if (battlePassCfg == null)
             {
                 //已经超过了最大等级
@@ -386,11 +405,12 @@ namespace GFGGame
             //刷新奖励列表
             _rewardCfgs =
                 new List<BattlePassCfg>(
-                   CommonDataManager.Tables.TblBattlePassCfg.GetGroup1ById(BattlePassTaskDataManager.Instance.GetSeasonId()));
+                    CommonDataManager.Tables.TblBattlePassCfg.GetGroup1ById(BattlePassTaskDataManager.Instance
+                        .GetSeasonId()));
             //去掉第一个为0的配置
             _ui.m_RewardList.numItems = _rewardCfgs.Count - 1;
             RedDotController.Instance.SetComRedDot(_ui.m_btnGetAll,
-              BattlePassTaskDataManager.Instance.CheckStoreBrocadeWeavRed(), "", -18, -8);
+                BattlePassTaskDataManager.Instance.CheckStoreBrocadeWeavRed(), "", -18, -8);
             _ui.m_btnGetAll.grayed = !BattlePassTaskDataManager.Instance.CheckStoreBrocadeWeavRed();
         }
 
@@ -413,6 +433,7 @@ namespace GFGGame
                 uiBattlePassReward.target.visible = false;
                 return;
             }
+
             var newLeve = battlePassCfg.Level;
             if (newLeve == oldLevel) return;
             oldLevel = newLeve;
@@ -433,6 +454,7 @@ namespace GFGGame
             {
                 uiBattlePassReward.m_NormalReward.visible = false;
             }
+
             var superLevelRewardGet = BattlePassTaskDataManager.Instance.CheckSuperLevelRewardGet(level);
             var state = BattlePassTaskDataManager.Instance.GetRewardState(level);
             uiBattlePassReward.m_RewardList.data = (battlePassCfg.BonusSpecial, false, state, superLevelRewardGet);

+ 19 - 6
GameClient/Assets/Game/HotUpdate/Views/Store/StoreChargeView.cs

@@ -2,6 +2,7 @@ using UI.Store;
 using UI.CommonGame;
 using FairyGUI;
 using System.Collections.Generic;
+using System.Linq;
 using cfg.GfgCfg;
 using ET;
 
@@ -21,10 +22,12 @@ namespace GFGGame
                 _valueBarController.Dispose();
                 _valueBarController = null;
             }
+
             if (_ui != null)
             {
                 _ui.Dispose();
             }
+
             _ui = null;
             base.Dispose();
         }
@@ -42,16 +45,19 @@ namespace GFGGame
             _ui.m_list.itemRenderer = ListItemRenderer;
             _valueBarController = new ValueBarController(_ui.m_valueBar);
         }
+
         protected override void AddEventListener()
         {
             base.AddEventListener();
             EventAgent.AddEventListener(ConstMessage.SHOP_BUY, UpdateView);
-
         }
+
         protected override void OnShown()
         {
             base.OnShown();
-            _shopCfgs = CommonDataManager.Tables.TblShopCfg.GetGroup1ByMenu1AndMenu2(ConstStoreTabId.STORE_CHARGE, ConstStoreSubId.STORE_CHARGE);
+            _shopCfgs = CommonDataManager.Tables.TblShopCfg.DataList.Where(a =>
+                a.Menu1 == ConstStoreTabId.STORE_CHARGE && a.Menu2 == ConstStoreSubId.STORE_CHARGE).ToList();
+
             _valueBarController.OnShown();
             _ui.m_comVipLv.m_loaIcon.url = ResPathUtil.GetIconPath("tb_hyjf", "png");
             UpdateView();
@@ -64,6 +70,7 @@ namespace GFGGame
                 EffectUIPool.Recycle(_effectUIs[i]);
                 _effectUIs[i] = null;
             }
+
             _effectUIs.Clear();
         }
 
@@ -73,12 +80,14 @@ namespace GFGGame
             _ui.m_list.numItems = _shopCfgs.Count;
             ShopViewManager.Instance.UpdateVipProgressCom(_ui.m_comVipLv.target);
         }
+
         protected override void OnHide()
         {
             base.OnHide();
             DestroyEffect();
             _valueBarController.OnHide();
         }
+
         protected override void RemoveEventListener()
         {
             base.RemoveEventListener();
@@ -95,9 +104,10 @@ namespace GFGGame
             {
                 item.target.onClick.Add(OnClickBtnBuy);
             }
+
             item.target.data = index;
             ItemCfg itemIdCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(shopCfg.ItemId);
-            ItemCfg doubleItem = CommonDataManager.Tables.TblItemCfg.GetOrDefault(shopCfg.DoubleTimes);
+            ItemCfg doubleItem = CommonDataManager.Tables.TblItemCfg.GetOrDefault(shopCfg.DoubleItemId);
 
             item.m_txtName.text = string.Format("{0}{1}", shopCfg.ItemNum, itemIdCfg.Name);
             item.m_txtDesc.text = string.Format("首充赠送+{0}{1}", shopCfg.ItemNum, doubleItem.Name);
@@ -105,11 +115,14 @@ namespace GFGGame
             item.m_grpDouble.visible = isDouble;
             item.m_txtDesc.visible = isDouble;
             item.m_icon.url = "ui://Store/sc_zizhuan_" + (index + 1);
-            if (isDouble) {
-                EffectUI _effectUI = EffectUIPool.CreateEffectUI(item.m_holderfEff, "ui_Small_parts", "store_FirstCharge_Double");
+            if (isDouble)
+            {
+                EffectUI _effectUI =
+                    EffectUIPool.CreateEffectUI(item.m_holderfEff, "ui_Small_parts", "store_FirstCharge_Double");
                 _effectUIs.Add(_effectUI);
                 item.m_holderfEff.visible = isDouble;
             }
+
             UI_ListChargeItem.ProxyEnd();
         }
 
@@ -125,4 +138,4 @@ namespace GFGGame
             }
         }
     }
-}
+}

+ 103 - 38
GameClient/Assets/Game/HotUpdate/Views/Store/StoreView.cs

@@ -5,6 +5,7 @@ using System.Collections.Generic;
 using ET;
 using UnityEngine;
 using System;
+using System.Linq;
 using cfg;
 using cfg.GfgCfg;
 
@@ -12,15 +13,14 @@ using cfg.GfgCfg;
 
 namespace GFGGame
 {
-
     public class StoreView : BaseWindow
     {
         private UI_StoreUI _ui;
+
         // private ValueBarController _valueBarController;
         private List<List<string>> _arenaSubTab = new List<List<string>>();
 
-        //private List<string[]> _storeTabCfgs = new List<string[]>();
-        private System.Collections.Generic.List<SubTabParam> _storeTabCfgs = new List<SubTabParam>();
+        private List<SubTabParam> _storeTabCfgs = new List<SubTabParam>();
         private int _curTabIndex = 0;
         private int _curSubTabIndex = 0;
         private string _curViewName = "";
@@ -31,6 +31,7 @@ namespace GFGGame
             {
                 _ui.Dispose();
             }
+
             _arenaSubTab.Clear();
             _ui = null;
             base.Dispose();
@@ -63,18 +64,27 @@ namespace GFGGame
             EventAgent.AddEventListener(ConstMessage.CONTINUOUS_REBATE_GIFT, UpdateRedDot);
             EventAgent.AddEventListener(ConstMessage.NOTICE_BATCH_TASK_STATE_CHANGE, UpdateStoreMonthRedDot);
             EventAgent.AddEventListener(ConstMessage.STORE_BROCADE_WEAV_RECEIVE, UpdateStoreMonthRedDot);
-
         }
+
         protected override void OnShown()
         {
             base.OnShown();
-            //StoreTabCfg arenaTab =  StoreTabCfgArray.Instance.GetCfgByfunctionId(ConstFunctionId.STORE_ARENA);
-            StoreTabCfg arenaTab = CommonDataManager.Tables.TblStoreTabCfg.GetGroup1ByFunctionId(ConstFunctionId.STORE_ARENA)[0];
+            StoreTabCfg arenaTab =
+                CommonDataManager.Tables.TblStoreTabCfg.DataList.FirstOrDefault(a =>
+                    a.FunctionId == ConstFunctionId.STORE_ARENA);
+
             _arenaSubTab.Clear();
-            _arenaSubTab.Add(new List<string>() { arenaTab.SubTab[0].Name, arenaTab.SubTab[0].Num.ToString(), arenaTab.SubTab[0].View });
+            _arenaSubTab.Add(new List<string>()
+                { 
+                    arenaTab.SubTab[0].Name,
+                    arenaTab.SubTab[0].Num.ToString(),
+                    arenaTab.SubTab[0].View.ToString() 
+                });
             for (int i = ArenaDataManager.Instance.SeasonId; i > 0; i--)
             {
-                List<ShopCfg> shopCfgs = CommonDataManager.Tables.TblShopCfg.GetGroup1ByMenu1AndMenu2(ConstStoreTabId.STORE_ARENA, i);
+                List<ShopCfg> shopCfgs = CommonDataManager.Tables.TblShopCfg.DataList
+                    .Where(a => a.Menu1 == ConstStoreTabId.STORE_ARENA && a.Menu2 == i).ToList();
+
                 if (shopCfgs.Count == 0)
                 {
                     continue;
@@ -86,24 +96,33 @@ namespace GFGGame
             _curTabIndex = this.viewData == null ? ConstStoreTabId.STORE_CHARGE : (int)(this.viewData as object[])[0];
 
             _ui.m_comTab.m_c1.selectedIndex = _curTabIndex;
-            _ui.m_comTab.target.scrollPane.SetPercX((float)(_curTabIndex - 1) / (float) CommonDataManager.Tables.TblStoreTabCfg.DataList.Count, false);
+            _ui.m_comTab.target.scrollPane.SetPercX(
+                (float)(_curTabIndex - 1) / (float)CommonDataManager.Tables.TblStoreTabCfg.DataList.Count, false);
 
             _curSubTabIndex = this.viewData == null ? 0 : (int)(this.viewData as object[])[1];
-            if (_curTabIndex == ConstStoreTabId.STORE_GIFT_BAG && _curSubTabIndex > 0 && !ShopDataManager.Instance.GetShopActivityIsShow(ConstStoreTabId.STORE_GIFT_BAG,ConstStoreSubId.STORE_GIFT_BAG_ACTIVITY)) {
+            if (_curTabIndex == ConstStoreTabId.STORE_GIFT_BAG && _curSubTabIndex > 0 &&
+                !ShopDataManager.Instance.GetShopActivityIsShow(ConstStoreTabId.STORE_GIFT_BAG,
+                    ConstStoreSubId.STORE_GIFT_BAG_ACTIVITY))
+            {
                 _curSubTabIndex -= 1;
             }
-            if (_curTabIndex == ConstStoreTabId.STORE_EXCHANGE && _curSubTabIndex > 0 && !ShopDataManager.Instance.GetShopActivityIsShow(ConstStoreTabId.STORE_EXCHANGE,ConstStoreSubId.STORE_ACTIVITY_EXCHANGE))
+
+            if (_curTabIndex == ConstStoreTabId.STORE_EXCHANGE && _curSubTabIndex > 0 &&
+                !ShopDataManager.Instance.GetShopActivityIsShow(ConstStoreTabId.STORE_EXCHANGE,
+                    ConstStoreSubId.STORE_ACTIVITY_EXCHANGE))
             {
                 _curSubTabIndex -= 1;
             }
+
             if (_ui.m_listSubTab.numItems > _curSubTabIndex)
             {
                 _ui.m_listSubTab.selectedIndex = _curSubTabIndex;
                 _ui.m_listSubTab.ScrollToView(_curSubTabIndex);
                 OnListSubTabChange(_curSubTabIndex);
             }
-            if(_curTabIndex == ConstStoreTabId.STORE_MONTH_CARD && _curSubTabIndex == 2)
-            ViewManager.Hide<StoreBrocadeWeavView>();
+
+            if (_curTabIndex == ConstStoreTabId.STORE_MONTH_CARD && _curSubTabIndex == 2)
+                ViewManager.Hide<StoreBrocadeWeavView>();
 
             UpdateRedDot();
         }
@@ -115,6 +134,7 @@ namespace GFGGame
             _ui.m_listSubTab.selectedIndex = 0;
             ViewManager.Hide(_curViewName);
         }
+
         protected override void RemoveEventListener()
         {
             base.RemoveEventListener();
@@ -134,11 +154,13 @@ namespace GFGGame
         private void OnTabChange()
         {
             StoreTabCfg tabCfg = CommonDataManager.Tables.TblStoreTabCfg.GetOrDefault(_ui.m_comTab.m_c1.selectedIndex);
+
             if (tabCfg == null) return;
             if (!FunctionOpenDataManager.Instance.CheckIsFunOpenById(tabCfg.FunctionId))
             {
                 _ui.m_comTab.m_c1.selectedIndex = _ui.m_comTab.m_c1.previsousIndex;
             }
+
             _curTabIndex = _ui.m_comTab.m_c1.selectedIndex;
             if (tabCfg.FunctionId == ConstFunctionId.STORE_ARENA)
             {
@@ -154,9 +176,10 @@ namespace GFGGame
                         int menu2 = tabCfg.SubTab[i].Num;
                         if (menu2 == ConstStoreSubId.STORE_GIFT_BAG_ACTIVITY)
                         {
-                            if (!ShopDataManager.Instance.GetShopActivityIsShow(tabCfg.Index,menu2)) continue;
+                            if (!ShopDataManager.Instance.GetShopActivityIsShow(tabCfg.Index, menu2)) continue;
                         }
-                        if(tabCfg.SubTab[i].View != "StoreZGDCView")
+
+                        if (tabCfg.SubTab[i].View != "StoreZGDCView")
                         {
                             _storeTabCfgs.Add(tabCfg.SubTab[i]);
                         }
@@ -178,20 +201,24 @@ namespace GFGGame
                         {
                             if (!ShopDataManager.Instance.GetShopActivityIsShow(tabCfg.Index, menu2)) continue;
                         }
-                       _storeTabCfgs.Add(tabCfg.SubTab[i]);
+
+                        _storeTabCfgs.Add(tabCfg.SubTab[i]);
                     }
                 }
                 else
                 {
                     _storeTabCfgs = new List<SubTabParam>(tabCfg.SubTab);
                 }
+
                 _ui.m_listSubTab.numItems = _storeTabCfgs.Count;
             }
+
             _ui.m_listSubTab.selectedIndex = 0;
             _curSubTabIndex = 0;
             OnListSubTabChange(_curSubTabIndex);
             UpdateRedDot();
         }
+
         private void RenderListSubTabItem(int index, GObject obj)
         {
             GButton item = obj.asButton;
@@ -209,6 +236,7 @@ namespace GFGGame
                 if (_storeTabCfgs[index].View == "StoreGrowthFundView")
                 {
                     ActivityOpenCfg activityCfg = CommonDataManager.Tables.TblActivityOpenCfg.GetOrDefault(3002);
+
                     if (RoleDataManager.lvl < activityCfg.Level)
                     {
                         if (!RedDotDataManager.Instance.GetGrowthFundRewardRed())
@@ -221,10 +249,12 @@ namespace GFGGame
                         item.visible = true;
                     }
                 }
-                else if(_storeTabCfgs[index].View == "StoreSummerGiftView")
+                else if (_storeTabCfgs[index].View == "StoreSummerGiftView")
                 {
                     long curTime = TimeHelper.ServerNow();
-                    var activityInfo = ActivityGlobalDataManager.Instance.GetActivityInfo(ActivityAfuGiftDataManager.Instance.SummerActivityID);
+                    var activityInfo =
+                        ActivityGlobalDataManager.Instance.GetActivityInfo(ActivityAfuGiftDataManager.Instance
+                            .SummerActivityID);
                     if (activityInfo == null)
                     {
                         item.visible = false;
@@ -245,12 +275,14 @@ namespace GFGGame
                 {
                     item.visible = true;
                 }
+
                 item.title = _storeTabCfgs[index].Name;
                 menu2 = _storeTabCfgs[index].Num;
             }
-            item.data = index;
 
+            item.data = index;
         }
+
         private void OnListSubTabClick(EventContext context)
         {
             GObject obj = context.data as GObject;
@@ -258,10 +290,11 @@ namespace GFGGame
             if (index < 0) return;
             OnListSubTabChange(index);
         }
+
         private void OnListSubTabChange(int index)
         {
-
             StoreTabCfg tabCfg = CommonDataManager.Tables.TblStoreTabCfg.GetOrDefault(_curTabIndex);
+
             string viewName = "";
             int menu2 = 0;
             if (tabCfg.FunctionId == ConstFunctionId.STORE_ARENA)
@@ -274,6 +307,7 @@ namespace GFGGame
                 menu2 = _storeTabCfgs[index].Num;
                 viewName = _storeTabCfgs[index].View;
             }
+
             if (!FunctionOpenDataManager.Instance.CheckIsFunOpenById(viewName))
             {
                 _ui.m_listSubTab.selectedIndex = _curSubTabIndex;
@@ -284,7 +318,7 @@ namespace GFGGame
             if (!string.IsNullOrEmpty(viewName) && viewName != "“”")
             {
                 //特殊处理
-                if(viewName == "StoreSummerGiftView")
+                if (viewName == "StoreSummerGiftView")
                 {
                     _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("xrqlzl_bg");
                 }
@@ -292,15 +326,18 @@ namespace GFGGame
                 {
                     _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("bg_fhl");
                 }
+
                 ViewManager.Show("GFGGame." + viewName, menu2);
             }
+
             _curSubTabIndex = index;
             _curViewName = "GFGGame." + viewName;
         }
 
         private void UpdateRedDot()
         {
-            RedDotController.Instance.SetComRedDot(_ui.m_comTab.m_btn0.target, RedDotDataManager.Instance.GetChargeAddUpRewardRed());
+            RedDotController.Instance.SetComRedDot(_ui.m_comTab.m_btn0.target,
+                RedDotDataManager.Instance.GetChargeAddUpRewardRed());
 
             for (int i = 0; i < _ui.m_listSubTab.numItems; i++)
             {
@@ -309,39 +346,62 @@ namespace GFGGame
 
             if (_ui.m_comTab.m_c1.selectedIndex == ConstStoreTabId.STORE_CHARGE)
             {
-                RedDotController.Instance.SetComRedDot(_ui.m_listSubTab.GetChildAt(ConstStoreSubId.STORE_CHARGE_ADDUP).asCom, RedDotDataManager.Instance.GetChargeAddUpRewardRed());
+                RedDotController.Instance.SetComRedDot(
+                    _ui.m_listSubTab.GetChildAt(ConstStoreSubId.STORE_CHARGE_ADDUP).asCom,
+                    RedDotDataManager.Instance.GetChargeAddUpRewardRed());
             }
 
             UpdateStoreMonthRedDot();
             UpdateGrowthFunRed();
 
-            RedDotController.Instance.SetComRedDot(_ui.m_comTab.m_btn2.target, (RedDotDataManager.Instance.GetGiftBagRewardRed() || RedDotDataManager.Instance.GetGiftBagRebateRed()));
+            RedDotController.Instance.SetComRedDot(_ui.m_comTab.m_btn2.target,
+                (RedDotDataManager.Instance.GetGiftBagRewardRed() || RedDotDataManager.Instance.GetGiftBagRebateRed()));
             if (_ui.m_comTab.m_c1.selectedIndex == ConstStoreTabId.STORE_GIFT_BAG)
             {
-                RedDotController.Instance.SetComRedDot(_ui.m_listSubTab.GetChildAt(ConstStoreSubId.STORE_GIFT_BAG_ACTIVITY).asCom,RedDotDataManager.Instance.GetGiftBagRewardRed());
+                RedDotController.Instance.SetComRedDot(
+                    _ui.m_listSubTab.GetChildAt(ConstStoreSubId.STORE_GIFT_BAG_ACTIVITY).asCom,
+                    RedDotDataManager.Instance.GetGiftBagRewardRed());
 
                 int needSub = 0;
-                if (!ShopDataManager.Instance.GetShopActivityIsShow(ConstStoreTabId.STORE_GIFT_BAG, ConstStoreSubId.STORE_GIFT_BAG_ACTIVITY))
+                if (!ShopDataManager.Instance.GetShopActivityIsShow(ConstStoreTabId.STORE_GIFT_BAG,
+                        ConstStoreSubId.STORE_GIFT_BAG_ACTIVITY))
                     needSub = 1;
                 //if (!ShopDataManager.Instance.GetShopActivityIsShow(ConstStoreTabId.STORE_EXCHANGE, ConstStoreSubId.STORE_ACTIVITY_EXCHANGE))
                 //    needSub = 1;
 
-                RedDotController.Instance.SetComRedDot(_ui.m_listSubTab.GetChildAt(ConstStoreSubId.STORE_GIFT_BAG_REBATE - needSub).asCom,RedDotDataManager.Instance.GetGiftBagRebateRed());
+                RedDotController.Instance.SetComRedDot(
+                    _ui.m_listSubTab.GetChildAt(ConstStoreSubId.STORE_GIFT_BAG_REBATE - needSub).asCom,
+                    RedDotDataManager.Instance.GetGiftBagRebateRed());
             }
         }
 
         //月卡红点刷新
         private void UpdateStoreMonthRedDot()
         {
-            RedDotController.Instance.SetComRedDot(_ui.m_comTab.m_btn1.target, RedDotDataManager.Instance.GetGoldCardRewardRed() || RedDotDataManager.Instance.GetBlackCardRewardRed() || RedDotDataManager.Instance.GetBlackCardClothingRed()
-                || RedDotDataManager.Instance.GetStoreBrocadeWeavRewardRed()||RedDotDataManager.Instance.GetGrowthFundRewardRed()|| ActivityAfuGiftDataManager.Instance.GetSummerGiftRewardAllState());
+            RedDotController.Instance.SetComRedDot(_ui.m_comTab.m_btn1.target,
+                RedDotDataManager.Instance.GetGoldCardRewardRed() ||
+                RedDotDataManager.Instance.GetBlackCardRewardRed() ||
+                RedDotDataManager.Instance.GetBlackCardClothingRed()
+                || RedDotDataManager.Instance.GetStoreBrocadeWeavRewardRed() ||
+                RedDotDataManager.Instance.GetGrowthFundRewardRed() ||
+                ActivityAfuGiftDataManager.Instance.GetSummerGiftRewardAllState());
             if (_ui.m_comTab.m_c1.selectedIndex == ConstStoreTabId.STORE_MONTH_CARD)
             {
-                RedDotController.Instance.SetComRedDot(_ui.m_listSubTab.GetChildAt(ConstStoreSubId.STORE_MONTH_GOLD_CARD).asCom, RedDotDataManager.Instance.GetGoldCardRewardRed());
-                RedDotController.Instance.SetComRedDot(_ui.m_listSubTab.GetChildAt(ConstStoreSubId.STORE_MONTH_BLACK_CARD).asCom, RedDotDataManager.Instance.GetBlackCardRewardRed() || RedDotDataManager.Instance.GetBlackCardClothingRed());
-                RedDotController.Instance.SetComRedDot(_ui.m_listSubTab.GetChildAt(ConstStoreSubId.STORE_MONTH_BROCADE_WEAV).asCom, RedDotDataManager.Instance.GetStoreBrocadeWeavRewardRed());
-                RedDotController.Instance.SetComRedDot(_ui.m_listSubTab.GetChildAt(ConstStoreSubId.STORE_GROWTH_FUND).asCom, RedDotDataManager.Instance.GetGrowthFundRewardRed());
-                RedDotController.Instance.SetComRedDot(_ui.m_listSubTab.GetChildAt(4).asCom, ActivityAfuGiftDataManager.Instance.GetSummerGiftRewardAllState());
+                RedDotController.Instance.SetComRedDot(
+                    _ui.m_listSubTab.GetChildAt(ConstStoreSubId.STORE_MONTH_GOLD_CARD).asCom,
+                    RedDotDataManager.Instance.GetGoldCardRewardRed());
+                RedDotController.Instance.SetComRedDot(
+                    _ui.m_listSubTab.GetChildAt(ConstStoreSubId.STORE_MONTH_BLACK_CARD).asCom,
+                    RedDotDataManager.Instance.GetBlackCardRewardRed() ||
+                    RedDotDataManager.Instance.GetBlackCardClothingRed());
+                RedDotController.Instance.SetComRedDot(
+                    _ui.m_listSubTab.GetChildAt(ConstStoreSubId.STORE_MONTH_BROCADE_WEAV).asCom,
+                    RedDotDataManager.Instance.GetStoreBrocadeWeavRewardRed());
+                RedDotController.Instance.SetComRedDot(
+                    _ui.m_listSubTab.GetChildAt(ConstStoreSubId.STORE_GROWTH_FUND).asCom,
+                    RedDotDataManager.Instance.GetGrowthFundRewardRed());
+                RedDotController.Instance.SetComRedDot(_ui.m_listSubTab.GetChildAt(4).asCom,
+                    ActivityAfuGiftDataManager.Instance.GetSummerGiftRewardAllState());
             }
         }
 
@@ -350,7 +410,9 @@ namespace GFGGame
         {
             if (_ui.m_comTab.m_c1.selectedIndex == ConstStoreTabId.STORE_MONTH_CARD)
             {
-                RedDotController.Instance.SetComRedDot(_ui.m_listSubTab.GetChildAt(ConstStoreSubId.STORE_GROWTH_FUND).asCom, RedDotDataManager.Instance.GetGrowthFundRewardRed());
+                RedDotController.Instance.SetComRedDot(
+                    _ui.m_listSubTab.GetChildAt(ConstStoreSubId.STORE_GROWTH_FUND).asCom,
+                    RedDotDataManager.Instance.GetGrowthFundRewardRed());
             }
         }
 
@@ -362,7 +424,8 @@ namespace GFGGame
             {
                 PreloadSuitModel(i);
             }
-            for (int i = vipIndex + 1; i <CommonDataManager.Tables.TblVipCfg.DataList.Count -1 ; i++)
+
+            for (int i = vipIndex + 1; i < CommonDataManager.Tables.TblVipCfg.DataList.Count - 1; i++)
             {
                 PreloadSuitModel(i);
             }
@@ -372,10 +435,12 @@ namespace GFGGame
         {
             VipCfg vipCfg = CommonDataManager.Tables.TblVipCfg.DataList[index + 1];
             SuitCfg suitCfg = CommonDataManager.Tables.TblSuitCfg.GetOrDefault(vipCfg.SuitId);
+
             ResType resType = ResType.Sprite;
             if (suitCfg.AniRes != "")
                 resType = ResType.Animation;
-            PreDownloadManager.Instance.PreDownloadSuitRes(vipCfg.SuitId, resType, new int[] { ConstDressUpItemType.BEI_JING }, true);
+            PreDownloadManager.Instance.PreDownloadSuitRes(vipCfg.SuitId, resType,
+                new int[] { ConstDressUpItemType.BEI_JING }, true);
         }
     }
-}
+}

+ 34 - 16
GameClient/Assets/Game/HotUpdate/Views/Studio/StudioActivityView.cs

@@ -1,4 +1,5 @@
 using System.Collections.Generic;
+using System.Linq;
 using cfg.GfgCfg;
 using ET;
 using FairyGUI;
@@ -23,11 +24,13 @@ namespace GFGGame
                 _valueBarController.Dispose();
                 _valueBarController = null;
             }
+
             if (_ui != null)
             {
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -47,8 +50,8 @@ namespace GFGGame
 
             _ui.m_btnBack.onClick.Add(OnBtnBackClick);
             _ui.m_btnReward.onClick.Add(OnBtnRewardClick);
-
         }
+
         protected override void AddEventListener()
         {
             base.AddEventListener();
@@ -56,7 +59,6 @@ namespace GFGGame
             EventAgent.AddEventListener(ConstMessage.FILLING_CHANGE_CHAPTER, UpdateView);
             EventAgent.AddEventListener(ConstMessage.NOTICE_LIMIT_CHANGED, OnLimitChanged);
             EventAgent.AddEventListener(ConstMessage.RED_CHANGE, UpdateRedDot);
-
         }
 
         protected override void RemoveEventListener()
@@ -67,7 +69,6 @@ namespace GFGGame
             EventAgent.RemoveEventListener(ConstMessage.NOTICE_LIMIT_CHANGED, OnLimitChanged);
             EventAgent.RemoveEventListener(ConstMessage.RED_CHANGE, UpdateRedDot);
             //EventAgent.RemoveEventListener(ConstMessage.STUDIO_FILING_UPDATE, UpdateView);
-
         }
 
         protected override void OnShown()
@@ -78,7 +79,6 @@ namespace GFGGame
             UpdateView();
             UpdateItem();
             _valueBarController.OnShown();
-
         }
 
         protected override void OnHide()
@@ -89,7 +89,8 @@ namespace GFGGame
 
         private void UpdateRedDot()
         {
-            RedDotController.Instance.SetComRedDot(_ui.m_btnReward, StudioDataManager.Instance.GetStudioFilingRewardRed());
+            RedDotController.Instance.SetComRedDot(_ui.m_btnReward,
+                StudioDataManager.Instance.GetStudioFilingRewardRed());
         }
 
         private void RenderListItem(int index, GObject obj)
@@ -103,14 +104,17 @@ namespace GFGGame
             {
                 item.m_loaIcon.visible = false;
                 item.m_loaItem.visible = true;
-                StoryFightCfg storyFightCfg =CommonDataManager.Tables.TblStoryFightCfg.GetOrDefault(int.Parse(_storyLevelCfgs[index].FightID));
-                int itemId =CommonDataManager.Tables.TblDropOutCfg.GetGroup1ById(storyFightCfg.BonusBase[0].ItemId)[0].Item;
+                StoryFightCfg storyFightCfg =
+                    CommonDataManager.Tables.TblStoryFightCfg.GetOrDefault(int.Parse(_storyLevelCfgs[index].FightID));
+                int itemId = CommonDataManager.Tables.TblDropOutCfg.GetGroup1ById(storyFightCfg.BonusBase[0].ItemId)[0]
+                    .Item;
                 ItemCfg itemCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(itemId);
                 item.m_loaItem.url = ResPathUtil.GetIconPath(itemCfg);
                 if (item.m_loaItem.data == null)
                 {
                     item.m_loaItem.onClick.Add(OnLoaItemClick);
                 }
+
                 item.m_loaItem.data = index;
             }
             else
@@ -118,15 +122,19 @@ namespace GFGGame
                 item.m_loaItem.visible = false;
                 item.m_loaIcon.visible = true;
                 item.m_flow.visible = false;
-                item.m_loaIcon.url = ResPathUtil.GetActivityPath(_studioCfg.Res,"png");
+                item.m_loaIcon.url = ResPathUtil.GetActivityPath(_studioCfg.Res, "png");
             }
-            item.m_grpLock.visible = index > 0 && !InstanceZonesDataManager.CheckLevelPass(_storyLevelCfgs[index - 1].Id);
-            item.m_comFlower.target.visible = false;//.m_c1.selectedIndex = InstanceZonesDataManager.GetStarCountHistory(_storyLevelCfgs[index].id);
+
+            item.m_grpLock.visible =
+                index > 0 && !InstanceZonesDataManager.CheckLevelPass(_storyLevelCfgs[index - 1].Id);
+            item.m_comFlower.target.visible =
+                false; //.m_c1.selectedIndex = InstanceZonesDataManager.GetStarCountHistory(_storyLevelCfgs[index].id);
             item.m_c2.selectedIndex = InstanceZonesDataManager.GetStarCountHistory(_storyLevelCfgs[index].Id);
             if (item.m_loaBg.data == null)
             {
                 item.m_loaBg.onClick.Add(OnListItemClick);
             }
+
             item.m_loaBg.data = index;
             UI_ListLevelItem.ProxyEnd();
         }
@@ -137,7 +145,8 @@ namespace GFGGame
             int index = (int)obj.data;
             StoryFightCfg storyFightCfg =
                 CommonDataManager.Tables.TblStoryFightCfg.GetOrDefault(int.Parse(_storyLevelCfgs[index].FightID));
-            int itemId = CommonDataManager.Tables.TblDropOutCfg.GetGroup1ById(storyFightCfg.BonusBase[0].ItemId)[0].Item;
+            int itemId = CommonDataManager.Tables.TblDropOutCfg.GetGroup1ById(storyFightCfg.BonusBase[0].ItemId)[0]
+                .Item;
             GoodsItemTipsController.ShowItemTips(itemId);
         }
 
@@ -169,11 +178,17 @@ namespace GFGGame
             _ui.m_loaBg.url = ResPathUtil.GetBgImgPath(_studioCfg.LeveRes);
             RoleLimitData limitData = RoleLimitDataManager.GetLimitData(this._studioCfg.Limit);
             //var limitCfg = LimitCfgArray.Instance.GetCfg(this._studioCfg.Limit);
-            _ui.m_loaRole.url = ResPathUtil.GetStudioFilingPicPath(_studioCfg.Res); //ResPathUtil.GetBgImgPath(_studioCfg.res);
-            _ui.m_txtNum.text = string.Format("剩余次数:{0}/{1}", limitData.TotalPlayMax - limitData.PlayTimes, limitData.MaxStorageCount);
+            _ui.m_loaRole.url =
+                ResPathUtil.GetStudioFilingPicPath(_studioCfg.Res); //ResPathUtil.GetBgImgPath(_studioCfg.res);
+            _ui.m_txtNum.text = string.Format("剩余次数:{0}/{1}", limitData.TotalPlayMax - limitData.PlayTimes,
+                limitData.MaxStorageCount);
             _ui.m_activityTipText.SetVar("name", _studioCfg.Name).FlushVars();
             _ui.m_activityTitle.text = _studioCfg.Name;
-            _storyLevelCfgs = StoryLevelConfigManager.GetConfigs(_studioCfg.Type, _studioCfg.SubType, StudioDataManager.Instance.filingChapterId);
+            _storyLevelCfgs = CommonDataManager.Tables.TblStoryLevelCfg.DataList
+                .Where(a => a.Type == _studioCfg.Type &&
+                            a.SubType == _studioCfg.SubType &&
+                            a.ChapterId == StudioDataManager.Instance.filingChapterId).ToList();
+
             _ui.m_list.numItems = _storyLevelCfgs.Count;
             UpdateRedDot();
         }
@@ -184,6 +199,7 @@ namespace GFGGame
             {
                 _ui.m_list.GetChildAt(i).visible = false;
             }
+
             _itemIndex = 0;
             Timers.inst.Add(0.05f, _ui.m_list.numChildren, AddItemUpdate, 1);
         }
@@ -199,12 +215,14 @@ namespace GFGGame
 
         protected void OnBtnBackClick()
         {
-            var activityId = ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitLuckyBox);
+            var activityId =
+                ActivityDataManager.Instance.GetCurOpenActiveByType(ConstLimitTimeActivityType.ActLimitLuckyBox);
             if (activityId <= 0)
             {
                 ViewManager.DeleteViewStackCountDown("MainUIView");
                 PromptController.Instance.ShowFloatTextPrompt("活动已结束");
             }
+
             Hide();
         }
 
@@ -220,8 +238,8 @@ namespace GFGGame
             {
                 return;
             }
+
             UpdateView();
         }
-
     }
 }

+ 7 - 6
GameClient/Assets/Game/HotUpdate/Views/Studio/StudioFabricView.cs

@@ -1,5 +1,5 @@
-
 using System.Collections.Generic;
+using System.Linq;
 using FairyGUI;
 using UI.Studio;
 
@@ -18,7 +18,6 @@ namespace GFGGame
             base.OnInit();
             packageName = UI_StudioEctypeUI.PACKAGE_NAME;
             _ui.m_btnBack.onClick.Add(OnClickBtnBack);
-
         }
 
         protected override void OnShown()
@@ -28,7 +27,11 @@ namespace GFGGame
 
             StudioDataManager.Instance.VIEW_NAME = typeof(StudioFabricView).FullName;
             this._studioCfg = CommonDataManager.Tables.TblStudioCfg.GetGroup1ByFunId(typeof(StudioFabricView).Name)[0];
-            this.storyLevelCfgs =StoryLevelConfigManager.GetConfigs(this._studioCfg.Type, this._studioCfg.SubType, this._studioCfg.Id);
+            this.storyLevelCfgs = CommonDataManager.Tables.TblStoryLevelCfg.DataList
+                .Where(a => a.Type == this._studioCfg.Type &&
+                            a.SubType == _studioCfg.SubType &&
+                            a.ChapterId == this._studioCfg.Id).ToList();
+
             list.numItems = this.storyLevelCfgs.Count;
             list.ScrollToView(curIndex);
             base.OnShown();
@@ -37,18 +40,16 @@ namespace GFGGame
             com.GetChild("Name").asLoader.url = "ui://Studio/gzs_fb_bt_zwxf";
             com.GetChild("btnChageLine").asLoader.url = ResPathUtil.GetCommonGameResPath("zsx_fl");
             com.height = _ui.target.height;
-
         }
 
         protected override void OnHide()
         {
-            base.OnHide(); 
+            base.OnHide();
         }
 
         private void OnClickBtnBack()
         {
             ViewManager.GoBackFrom(typeof(StudioFabricView).FullName);
         }
-
     }
 }

+ 47 - 19
GameClient/Assets/Game/HotUpdate/Views/Studio/StudioFilingView.cs

@@ -1,4 +1,5 @@
 using System.Collections.Generic;
+using System.Linq;
 using cfg.GfgCfg;
 using ET;
 using FairyGUI;
@@ -25,11 +26,13 @@ namespace GFGGame
                 _valueBarController.Dispose();
                 _valueBarController = null;
             }
+
             if (_ui != null)
             {
                 _ui.Dispose();
                 _ui = null;
             }
+
             base.Dispose();
         }
 
@@ -53,9 +56,8 @@ namespace GFGGame
             _ui.m_btnReward.onClick.Add(OnBtnRewardClick);
             _ui.m_btnAdd.onClick.Add(OnBtnAddClick);
             _ui.m_btnSuit.onClick.Add(OnBtnSuitClick);
-
-
         }
+
         protected override void AddEventListener()
         {
             base.AddEventListener();
@@ -63,15 +65,16 @@ namespace GFGGame
             EventAgent.AddEventListener(ConstMessage.FILLING_CHANGE_CHAPTER, UpdateView);
             EventAgent.AddEventListener(ConstMessage.NOTICE_LIMIT_CHANGED, OnLimitChanged);
             EventAgent.AddEventListener(ConstMessage.RED_CHANGE, UpdateRedDot);
-
         }
+
         protected override void OnShown()
         {
             base.OnShown();
             _valueBarController.OnShown();
 
             _viewData = this.viewData != null ? (int)this.viewData : 0;
-            StudioDataManager.Instance.filingChapterId = _viewData > 0 ? _viewData : StudioDataManager.Instance.npcFilingChapterId;
+            StudioDataManager.Instance.filingChapterId =
+                _viewData > 0 ? _viewData : StudioDataManager.Instance.npcFilingChapterId;
 
             UpdateView();
             Timers.inst.AddUpdate(CheckGuide);
@@ -98,7 +101,6 @@ namespace GFGGame
             EventAgent.RemoveEventListener(ConstMessage.FILLING_CHANGE_CHAPTER, UpdateView);
             EventAgent.RemoveEventListener(ConstMessage.NOTICE_LIMIT_CHANGED, OnLimitChanged);
             EventAgent.RemoveEventListener(ConstMessage.RED_CHANGE, UpdateRedDot);
-
         }
 
         private void OnLimitChanged(EventContext context)
@@ -108,6 +110,7 @@ namespace GFGGame
             {
                 return;
             }
+
             UpdateView();
         }
 
@@ -117,9 +120,11 @@ namespace GFGGame
             RoleLimitData limitData = RoleLimitDataManager.GetLimitData(this._studioCfg.Limit);
             var limitCfg = CommonDataManager.Tables.TblLimitCfg.GetOrDefault(this._studioCfg.Limit);
             _ui.m_btnAdd.visible = limitCfg.ItemID > 0;
-            _ui.m_role.url = ResPathUtil.GetStudioFilingPicPath(_studioCfg.Res); //ResPathUtil.GetBgImgPath(_studioCfg.res);
+            _ui.m_role.url =
+                ResPathUtil.GetStudioFilingPicPath(_studioCfg.Res); //ResPathUtil.GetBgImgPath(_studioCfg.res);
             _ui.m_btnChange.icon = "ui://Studio/gzs_" + _studioCfg.Res;
-            _ui.m_txtNum.text = string.Format("剩余次数:{0}/{1}", limitData.TotalPlayMax - limitData.PlayTimes, limitData.MaxStorageCount);
+            _ui.m_txtNum.text = string.Format("剩余次数:{0}/{1}", limitData.TotalPlayMax - limitData.PlayTimes,
+                limitData.MaxStorageCount);
 
             _ui.m_type.SetSelectedIndex(0);
             SuitCfg suitCfg = CommonDataManager.Tables.TblSuitCfg.GetOrDefault(_studioCfg.SuitId);
@@ -130,7 +135,11 @@ namespace GFGGame
 
             _ui.m_suitIcon.url = ResPathUtil.GetIconPath(suitCfg.Res, "png");
 
-            _storyLevelCfgs = StoryLevelConfigManager.GetConfigs(_studioCfg.Type, _studioCfg.SubType, StudioDataManager.Instance.filingChapterId);
+            _storyLevelCfgs = CommonDataManager.Tables.TblStoryLevelCfg.DataList
+                .Where(a => a.Type == this._studioCfg.Type &&
+                            a.SubType == _studioCfg.SubType &&
+                            a.ChapterId == StudioDataManager.Instance.filingChapterId).ToList();
+
             _ui.m_list.numItems = _storyLevelCfgs.Count;
 
             UpdateRedDot();
@@ -152,7 +161,8 @@ namespace GFGGame
                 item.m_flow.visible = true;
                 item.m_loaIcon.visible = false;
                 item.m_loaItem.visible = true;
-                StoryFightCfg storyFightCfg = CommonDataManager.Tables.TblStoryFightCfg.GetOrDefault(int.Parse(_storyLevelCfgs[index].FightID));
+                StoryFightCfg storyFightCfg =
+                    CommonDataManager.Tables.TblStoryFightCfg.GetOrDefault(int.Parse(_storyLevelCfgs[index].FightID));
                 int itemId = CommonDataManager.Tables.TblDropOutCfg.GetGroup1ById(storyFightCfg.BonusRandom[0])[0].Item;
                 ItemCfg itemCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(itemId);
                 item.m_loaItem.url = ResPathUtil.GetIconPath(itemCfg);
@@ -160,6 +170,7 @@ namespace GFGGame
                 {
                     item.m_loaItem.onClick.Add(OnLoaItemClick);
                 }
+
                 item.m_loaItem.data = index;
             }
             else
@@ -170,13 +181,17 @@ namespace GFGGame
                 item.m_loaIcon.visible = true;
                 item.m_loaIcon.url = string.Format("ui://Studio/{0}", _studioCfg.Res);
             }
-            item.m_grpLock.visible = index > 0 && !InstanceZonesDataManager.CheckLevelPass(_storyLevelCfgs[index - 1].Id);
-            item.m_comFlower.m_c1.selectedIndex = 0;//InstanceZonesDataManager.GetStarCountHistory(_storyLevelCfgs[index].id);
+
+            item.m_grpLock.visible =
+                index > 0 && !InstanceZonesDataManager.CheckLevelPass(_storyLevelCfgs[index - 1].Id);
+            item.m_comFlower.m_c1.selectedIndex =
+                0; //InstanceZonesDataManager.GetStarCountHistory(_storyLevelCfgs[index].id);
             item.m_c2.selectedIndex = InstanceZonesDataManager.GetStarCountHistory(_storyLevelCfgs[index].Id);
             if (item.m_loaBg.data == null)
             {
                 item.m_loaBg.onClick.Add(OnListItemClick);
             }
+
             item.m_loaBg.data = index;
             UI_ListLevelItem.ProxyEnd();
         }
@@ -193,39 +208,49 @@ namespace GFGGame
             }
 
             MainStoryDataManager.currentLevelCfgId = storyLevelCfg.Id;
-            InstanceZonesController.ShowLevelView(storyLevelCfg.Id, StudioDataManager.Instance.OnFinishFilingStoryLevel);
+            InstanceZonesController.ShowLevelView(storyLevelCfg.Id,
+                StudioDataManager.Instance.OnFinishFilingStoryLevel);
         }
+
         private void OnLoaItemClick(EventContext context)
         {
             GObject obj = context.sender as GObject;
             int index = (int)obj.data;
-            StoryFightCfg storyFightCfg = CommonDataManager.Tables.TblStoryFightCfg.GetOrDefault(int.Parse(_storyLevelCfgs[index].FightID));
-            int itemId = CommonDataManager.Tables.TblDropOutCfg.GetGroup1ById(storyFightCfg.BonusRandom[0]) [0].Item;
+            StoryFightCfg storyFightCfg =
+                CommonDataManager.Tables.TblStoryFightCfg.GetOrDefault(int.Parse(_storyLevelCfgs[index].FightID));
+            int itemId = CommonDataManager.Tables.TblDropOutCfg.GetGroup1ById(storyFightCfg.BonusRandom[0])[0].Item;
             // StoryFightCfg storyFightCfg = StoryFightCfgArray.Instance.GetCfg(_storyLevelCfgs[index].fightID);
             // ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(storyFightCfg.bonusBaseArr[0][0]);
             GoodsItemTipsController.ShowItemTips(itemId);
         }
+
         private void OnBtnChangeClick()
         {
             ViewManager.Show<StudioFilingNpcView>();
         }
+
         private void OnBtnRewardClick()
         {
             ViewManager.Show<StudioFilingRewardView>();
         }
+
         private void OnBtnAddClick()
         {
             ViewManager.Show<StudioBuyNumView>(_studioCfg.Limit);
         }
+
         private void OnBtnSuitClick()
         {
             SuitCfg suitCfg = CommonDataManager.Tables.TblSuitCfg.GetOrDefault(_studioCfg.SuitId);
-            if (suitCfg.SyntheticStoryLevelId > 0 && !InstanceZonesDataManager.CheckLevelPass(suitCfg.SyntheticStoryLevelId))
+            if (suitCfg.SyntheticStoryLevelId > 0 &&
+                !InstanceZonesDataManager.CheckLevelPass(suitCfg.SyntheticStoryLevelId))
             {
-                StoryLevelCfg cfg = CommonDataManager.Tables.TblStoryLevelCfg.GetOrDefault(suitCfg.SyntheticStoryLevelId);
+                StoryLevelCfg cfg =
+                    CommonDataManager.Tables.TblStoryLevelCfg.GetOrDefault(suitCfg.SyntheticStoryLevelId);
                 PromptController.Instance.ShowFloatTextPrompt(string.Format("需通关{0}关卡解锁", cfg.Name));
                 return;
             }
+
             ViewManager.Show<ClothingSyntheticView>(new object[] { _studioCfg.SuitId }, false);
             //if (_viewData == StudioDataManager.Instance.GetLuckyBoxActivityID())
             //{
@@ -241,10 +266,13 @@ namespace GFGGame
             //    ViewManager.Show<ClothingSyntheticView>(new object[] { _studioCfg.suitId }, new object[] { typeof(StudioFilingView).FullName, this.viewData }, false);
             //}
         }
+
         private void UpdateRedDot()
         {
-            RedDotController.Instance.SetComRedDot(_ui.m_btnReward, StudioDataManager.Instance.GetFilingRewardState(StudioDataManager.Instance.filingChapterId));
-            RedDotController.Instance.SetComRedDot(_ui.m_btnChange, RedDotDataManager.Instance.GetStudioFilingRed(false),"",-27);
+            RedDotController.Instance.SetComRedDot(_ui.m_btnReward,
+                StudioDataManager.Instance.GetFilingRewardState(StudioDataManager.Instance.filingChapterId));
+            RedDotController.Instance.SetComRedDot(_ui.m_btnChange,
+                RedDotDataManager.Instance.GetStudioFilingRed(false), "", -27);
         }
 
         private void CheckGuide(object param)
@@ -265,7 +293,6 @@ namespace GFGGame
 
             GuideController.TryGuide(_ui.m_list, ConstGuideId.STUDIO_FILING, 5, "从华贵的花想容开始吧~~", 0);
             GuideController.TryCompleteGuide(ConstGuideId.STUDIO_FILING, 5);
-
         }
 
         private void UpdateItem()
@@ -274,6 +301,7 @@ namespace GFGGame
             {
                 _ui.m_list.GetChildAt(i).visible = false;
             }
+
             itemIndex = 0;
             Timers.inst.Add(0.05f, _ui.m_list.numChildren, AddItemUpdate, 1);
         }

+ 7 - 5
GameClient/Assets/Game/HotUpdate/Views/Studio/StudioMetalView.cs

@@ -1,5 +1,5 @@
-
 using System.Collections.Generic;
+using System.Linq;
 using FairyGUI;
 using UI.Studio;
 
@@ -8,7 +8,6 @@ namespace GFGGame
     //金属副本
     public class StudioMetalView : StudioBaseView
     {
-
         public override void Dispose()
         {
             base.Dispose();
@@ -18,7 +17,6 @@ namespace GFGGame
         {
             base.OnInit();
             _ui.m_btnBack.onClick.Add(OnClickBtnBack);
-
         }
 
         protected override void OnShown()
@@ -28,8 +26,12 @@ namespace GFGGame
 
             StudioDataManager.Instance.VIEW_NAME = typeof(StudioMetalView).FullName;
 
-            this._studioCfg = CommonDataManager.Tables.TblStudioCfg.GetGroup1ByFunId(typeof(StudioMetalView).Name)[0]; 
-            this.storyLevelCfgs =StoryLevelConfigManager.GetConfigs(this._studioCfg.Type, this._studioCfg.SubType, this._studioCfg.Id);
+            this._studioCfg = CommonDataManager.Tables.TblStudioCfg.GetGroup1ByFunId(typeof(StudioMetalView).Name)[0];
+            this.storyLevelCfgs = CommonDataManager.Tables.TblStoryLevelCfg.DataList
+                .Where(a => a.Type == this._studioCfg.Type &&
+                            a.SubType == _studioCfg.SubType &&
+                            a.ChapterId == this._studioCfg.Id).ToList();
+
             list.numItems = this.storyLevelCfgs.Count;
             list.ScrollToView(curIndex);
 

+ 18 - 6
GameClient/Assets/Game/HotUpdate/Views/Studio/StudioPorcelainView.cs

@@ -1,5 +1,5 @@
-
 using System.Collections.Generic;
+using System.Linq;
 using FairyGUI;
 using UI.Studio;
 
@@ -9,7 +9,8 @@ namespace GFGGame
     public class StudioPorcelainView : StudioBaseView
     {
         private GComponent _comPorcelain;
-        private string[] porcelainTheme = new string[]{"风","花","雪","月"};
+        private string[] porcelainTheme = new string[] { "风", "花", "雪", "月" };
+
         public override void Dispose()
         {
             base.Dispose();
@@ -24,7 +25,6 @@ namespace GFGGame
             // isfullScreen = true;
 
             _ui.m_btnBack.onClick.Add(OnClickBtnBack);
-
         }
 
         protected override void OnShown()
@@ -34,15 +34,22 @@ namespace GFGGame
             _comPorcelain.GetChild("loaBg").asLoader.url = ResPathUtil.GetBgImgPath("gzs_fb_bj");
 
             StudioDataManager.Instance.VIEW_NAME = typeof(StudioPorcelainView).FullName;
-            this._studioCfg = CommonDataManager.Tables.TblStudioCfg.GetGroup1ByFunId(typeof(StudioPorcelainView).Name)[StudioDataManager.Instance.PorcelainTheme - 1];
-            this.storyLevelCfgs = StoryLevelConfigManager.GetConfigs(this._studioCfg.Type, this._studioCfg.SubType, this._studioCfg.Id);
+            this._studioCfg =
+                CommonDataManager.Tables.TblStudioCfg.GetGroup1ByFunId(typeof(StudioPorcelainView).Name)[
+                    StudioDataManager.Instance.PorcelainTheme - 1];
+            this.storyLevelCfgs = CommonDataManager.Tables.TblStoryLevelCfg.DataList
+                .Where(a => a.Type == this._studioCfg.Type &&
+                            a.SubType == _studioCfg.SubType &&
+                            a.ChapterId == this._studioCfg.Id).ToList();
+
 
             //_comPorcelain.GetChild("loaScore").asLoader.url = string.Format("ui://Studio/cqxf_zdqh_{0}", StudioDataManager.Instance.PorcelainTheme);
             list.numItems = this.storyLevelCfgs.Count;
             list.ScrollToView(curIndex);
 
             _comPorcelain.GetChild("btnChageLine").asLoader.url = ResPathUtil.GetCommonGameResPath("zsx_fl");
-            _comPorcelain.GetChild("loaName").asTextField.text = porcelainTheme[StudioDataManager.Instance.PorcelainTheme-1];
+            _comPorcelain.GetChild("loaName").asTextField.text =
+                porcelainTheme[StudioDataManager.Instance.PorcelainTheme - 1];
             base.OnShown();
             _comPorcelain.height = _ui.target.height;
 
@@ -54,6 +61,7 @@ namespace GFGGame
             base.OnHide();
             Timers.inst.Remove(CheckGuide);
         }
+
         protected override void ListItemRender(int index, GObject obj)
         {
             base.ListItemRender(index, obj);
@@ -62,10 +70,12 @@ namespace GFGGame
             item.m_txtName.text = "书简修复";
             UI_ListPorcelainItem.ProxyEnd();
         }
+
         private void OnClickBtnBack()
         {
             ViewManager.GoBackFrom(typeof(StudioPorcelainView).FullName);
         }
+
         private void CheckGuide(object param)
         {
             if (GuideDataManager.IsGuideFinish(ConstGuideId.STUDIO_PORCELAIN) <= 0)
@@ -77,6 +87,7 @@ namespace GFGGame
                 Timers.inst.Remove(CheckGuide);
             }
         }
+
         protected override void UpdateToCheckGuide(object param)
         {
             if (!ViewManager.CheckIsTopView(this.viewCom)) return;
@@ -84,6 +95,7 @@ namespace GFGGame
             GuideController.TryGuide(_ui.m_btnBack, ConstGuideId.STUDIO_PORCELAIN, 7, "挑战成功啦,让我们继续新故事吧");
             GuideController.TryCompleteGuide(ConstGuideId.STUDIO_PORCELAIN, 7);
         }
+
         protected override void TryCompleteGuide()
         {
             base.TryCompleteGuide();

+ 31 - 11
GameClient/Assets/Game/HotUpdate/Views/Studio/StudioPropertyView.cs

@@ -1,5 +1,5 @@
-
 using System.Collections.Generic;
+using System.Linq;
 using cfg.GfgCfg;
 using FairyGUI;
 using UI.Studio;
@@ -14,7 +14,9 @@ namespace GFGGame
         private GLoader _btnChageLine;
         private Controller _croProperty;
         private int _propertySelectIndex = 0;
-        private int firstOpenProperty = -1;//第一个开放的副本(打开界面时,如未选择副本,则默认选中第一个开启的副本)
+
+        private int firstOpenProperty = -1; //第一个开放的副本(打开界面时,如未选择副本,则默认选中第一个开启的副本)
+
         //书画副本
         public override void Dispose()
         {
@@ -30,7 +32,6 @@ namespace GFGGame
             //com = UIPackage.CreateObject(UI_StudioUI.PACKAGE_NAME, "ComProperty").asCom;
             //AddChildCom(com, false);
             //list.itemRenderer = ListItemRender;
-
         }
 
         protected override void OnShown()
@@ -48,11 +49,12 @@ namespace GFGGame
             _bg0.url = ResPathUtil.GetBgImgPath("gzs_fb_bj");
             //_bg1.url = "ui://Studio/lm_db_chang_2";
             _btnChageLine.url = ResPathUtil.GetCommonGameResPath("zsx_fl");
-            
+
             _propertySelectIndex = this.viewData == null ? 0 : (int)this.viewData;
 
             StudioDataManager.Instance.VIEW_NAME = typeof(StudioPropertyView).FullName;
-            List<StudioCfg> studioCfgs = CommonDataManager.Tables.TblStudioCfg.GetGroup1ByFunId(typeof(StudioPropertyView).Name);
+            List<StudioCfg> studioCfgs =
+                CommonDataManager.Tables.TblStudioCfg.GetGroup1ByFunId(typeof(StudioPropertyView).Name);
             firstOpenProperty = -1;
             for (int i = 0; i < studioCfgs.Count; i++)
             {
@@ -62,19 +64,24 @@ namespace GFGGame
                 if (firstOpenProperty < 0 && isOpen) firstOpenProperty = i;
             }
 
-            _propertySelectIndex = TimeUtil.CheckDayOfWeek(studioCfgs[_propertySelectIndex].Time) ? _propertySelectIndex : firstOpenProperty;
+            _propertySelectIndex = TimeUtil.CheckDayOfWeek(studioCfgs[_propertySelectIndex].Time)
+                ? _propertySelectIndex
+                : firstOpenProperty;
             _croProperty.selectedIndex = _propertySelectIndex;
             StudioDataManager.Instance.PROPERTY_SELECT_INDEX = _propertySelectIndex;
 
             this._studioCfg = studioCfgs[_propertySelectIndex];
-            this.storyLevelCfgs = StoryLevelConfigManager.GetConfigs(this._studioCfg.Type, this._studioCfg.SubType, this._studioCfg.Id);
+            this.storyLevelCfgs = CommonDataManager.Tables.TblStoryLevelCfg.DataList
+                .Where(a => a.Type == this._studioCfg.Type &&
+                            a.SubType == _studioCfg.SubType &&
+                            a.ChapterId == this._studioCfg.Id).ToList();
 
             list.numItems = this.storyLevelCfgs.Count;
             list.ScrollToView(curIndex);
 
             Timers.inst.AddUpdate(CheckGuide);
 
-            
+
             base.OnShown();
             com.height = _ui.target.height;
             _ui.m_loaBg.visible = false;
@@ -94,7 +101,8 @@ namespace GFGGame
         private void OnControllerChange()
         {
             // int index = _croProperty.selectedIndex;
-            List<StudioCfg> studioCfgs = CommonDataManager.Tables.TblStudioCfg.GetGroup1ByFunId(typeof(StudioPropertyView).Name);
+            List<StudioCfg> studioCfgs =
+                CommonDataManager.Tables.TblStudioCfg.GetGroup1ByFunId(typeof(StudioPropertyView).Name);
             StudioCfg studioCfg = studioCfgs[_croProperty.selectedIndex];
             if (!TimeUtil.CheckDayOfWeek(studioCfg.Time))
             {
@@ -105,18 +113,25 @@ namespace GFGGame
                     if (i == studioCfg.Time.Count - 1) break;
                     str += "、";
                 }
+
                 PromptController.Instance.ShowFloatTextPrompt(string.Format("周{0}开放", str));
                 _croProperty.selectedIndex = _croProperty.previsousIndex;
                 return;
             }
+
             // _propertySelectIndex = index;
             this._studioCfg = studioCfg;
-            this.storyLevelCfgs = StoryLevelConfigManager.GetConfigs(this._studioCfg.Type, this._studioCfg.SubType, this._studioCfg.Id);
+            this.storyLevelCfgs =
+                CommonDataManager.Tables.TblStoryLevelCfg.DataList
+                    .Where(a => a.Type == this._studioCfg.Type &&
+                                a.SubType == _studioCfg.SubType &&
+                                a.ChapterId == this._studioCfg.Id).ToList();
             list.numItems = this.storyLevelCfgs.Count;
             list.ScrollToView(curIndex);
             UpdateView();
             StudioDataManager.Instance.PROPERTY_SELECT_INDEX = _croProperty.selectedIndex;
         }
+
         private void CheckGuide(object param)
         {
             if (GuideDataManager.IsGuideFinish(ConstGuideId.STUDIO_PROPERTY) <= 0)
@@ -136,6 +151,7 @@ namespace GFGGame
             GuideController.TryGuide(_ui.m_btnBack, ConstGuideId.STUDIO_PROPERTY, 6, "挑战成功啦,让我们继续新旅程~");
             //GuideController.TryCompleteGuide(ConstGuideId.STUDIO_PROPERTY, 6);
         }
+
         protected override void TryCompleteGuide()
         {
             base.TryCompleteGuide();
@@ -143,6 +159,7 @@ namespace GFGGame
             //GuideController.TryCompleteGuideIndex(ConstGuideId.STUDIO_PROPERTY, 6);
             //GuideController.TryCompleteGuide(ConstGuideId.STUDIO_PROPERTY, 6);
         }
+
         protected override void ListItemRender(int index, GObject obj)
         {
             UI_ListPorcelainItem item = UI_ListPorcelainItem.Proxy(obj);
@@ -150,7 +167,8 @@ namespace GFGGame
 
             ItemData itemData = StoryBonusDataCache.GetBonusData(storyLevelCfgs[index].Id).bonusBase[0];
             ItemCfg itemCfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(itemData.id);
-            item.m_loaIcon.url = string.Format("ui://Studio/{0}", indexString[index]);//ResPathUtil.GetIconPath(itemCfg);
+            item.m_loaIcon.url =
+                string.Format("ui://Studio/{0}", indexString[index]); //ResPathUtil.GetIconPath(itemCfg);
             item.m_star.selectedIndex = InstanceZonesDataManager.GetStarCountHistory(storyLevelCfgs[index].Id);
             item.m_imgLock.visible = canFight ? false : true;
             item.m_imgLockBg.visible = canFight ? false : true;
@@ -160,11 +178,13 @@ namespace GFGGame
             {
                 item.m_loaIcon.onClick.Add(OnLoaItemClick);
             }
+
             item.m_loaIcon.data = index;
             if (item.m_loaBg.data == null)
             {
                 item.m_loaBg.onClick.Add(OnCliclListItem);
             }
+
             item.m_loaBg.data = index;
             UI_ListPorcelainItem.ProxyEnd();
         }

+ 12 - 6
GameClient/Assets/Game/HotUpdate/Views/TimeTracing/TimeTracingLevelView.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using System.Linq;
 using cfg.GfgCfg;
 using ET;
 using FairyGUI;
@@ -97,7 +98,10 @@ namespace GFGGame
             _valueBarController.OnShown();
 
             ActivityFightCfg chapterCfg = CommonDataManager.Tables.TblActivityFightCfg.GetOrDefault(_chapterID);
-            var list = StoryLevelConfigManager.GetConfigs(chapterCfg.Type, chapterCfg.SubType, chapterCfg.Id);
+            var list = CommonDataManager.Tables.TblStoryLevelCfg.DataList
+                .Where(a => a.Type == chapterCfg.Type &&
+                            a.SubType == chapterCfg.SubType &&
+                            a.ChapterId == chapterCfg.Id).ToList();
 
             for (int i = 0; i < 5; i++)
             {
@@ -124,7 +128,8 @@ namespace GFGGame
                             ItemCfg headCfg =
                                 CommonDataManager.Tables.TblItemCfg.GetOrDefault(itemInfo[levelCfg.Id].HeadItemId);
                             ItemCfg headBorderCfg =
-                               CommonDataManager.Tables.TblItemCfg.GetOrDefault(itemInfo[levelCfg.Id].HeadBorderItemId);
+                                CommonDataManager.Tables.TblItemCfg.GetOrDefault(itemInfo[levelCfg.Id]
+                                    .HeadBorderItemId);
                             levelItem.m_player.m_headFrame.url = ResPathUtil.GetHeadBorderPath(headBorderCfg.Res);
                             levelItem.m_player.m_head.url = ResPathUtil.GetHeadPath(headCfg.Res);
                             RedDotController.Instance.SetComRedDot(levelItem.target,
@@ -161,7 +166,7 @@ namespace GFGGame
 
         private void UpdateSuitNum()
         {
-            SuitCfg suitCfg =CommonDataManager.Tables.TblSuitCfg.GetOrDefault(SuitID);
+            SuitCfg suitCfg = CommonDataManager.Tables.TblSuitCfg.GetOrDefault(SuitID);
             _ui.m_suitIcon.url = ResPathUtil.GetIconPath(suitCfg.Res, "png");
             int count;
             int totalCount;
@@ -181,7 +186,8 @@ namespace GFGGame
             {
                 _ui.m_playerName.text = TimeTracingDataManager.Instance.SuitRankDatasDic[0][0].RoleName;
                 ItemCfg headCfg =
-                   CommonDataManager.Tables.TblItemCfg.GetOrDefault(TimeTracingDataManager.Instance.SuitRankDatasDic[0][0].HeadItemId);
+                    CommonDataManager.Tables.TblItemCfg.GetOrDefault(
+                        TimeTracingDataManager.Instance.SuitRankDatasDic[0][0].HeadItemId);
                 ItemCfg headBorderCfg =
                     CommonDataManager.Tables.TblItemCfg.GetOrDefault(
                         TimeTracingDataManager.Instance.SuitRankDatasDic[0][0].HeadBorderItemId);
@@ -193,7 +199,7 @@ namespace GFGGame
         private void UpdateproBar()
         {
             int consumeID = 0;
-            datas =CommonDataManager.Tables.TblCompositebonusCfg.GetGroup1ByChapterId(_chapterID) ;
+            datas = CommonDataManager.Tables.TblCompositebonusCfg.GetGroup1ByChapterId(_chapterID);
             consumeID = datas[0].Params1[0];
             ItemData item;
             if (BagDataManager.Instance.GetBagData().TryGetValue(consumeID, out item))
@@ -242,7 +248,7 @@ namespace GFGGame
                 RedDotController.Instance.SetComRedDot(item.target,
                     TimeTracingDataManager.Instance.GetChapterRewardIDStatus(datas[i].Id, datas[i].Params1[0]) == 1,
                     "", -10, 25);
-                ItemCfg itemcfg =CommonDataManager.Tables.TblItemCfg.GetOrDefault(datas[i].Bonus[0].ItemId);
+                ItemCfg itemcfg = CommonDataManager.Tables.TblItemCfg.GetOrDefault(datas[i].Bonus[0].ItemId);
                 if (itemcfg.ItemType == ConstItemType.HEAD)
                 {
                     item.m_icon.url = ResPathUtil.GetHeadBorderPath(itemcfg.Res);

+ 0 - 5
GameClient/Assets/Game/HotUpdate/Views/ViewGlobal.cs

@@ -14,17 +14,12 @@ namespace GFGGame
         {
             if (comHolder == null)
             {
-                Debug.Log($"CreatClickEffect1");
                 comHolder = UI_ComHolder.Create();
-                Debug.Log($"CreatClickEffect2");
                 comHolder.target.touchable = false;
                 ViewManager.AddChildToFloatLayer(comHolder.target);
                 comHolder.target.SetPosition(-100, -100, 0);
-                Debug.Log($"CreatClickEffect3");
                 GRoot.inst.onTouchBegin.Add(SetClickPos);
-                Debug.Log($"CreatClickEffect4");
                 _effectUI1 = EffectUIPool.CreateEffectUI(comHolder.m_holder, "ui_dj", "DJ");
-                Debug.Log($"CreatClickEffect5");
             }
         }
 

+ 0 - 5
GameClient/Assets/Game/Launcher/HotUpdateProxy/HotUpdateCodeLoader.cs

@@ -27,20 +27,15 @@ namespace GFGGame
 
         public void StartLoad()
         {
-            Debug.Log("StartLoad - WebGL version (no hot update)");
             StartCoroutine(LoadGameScene());
         }
 
         IEnumerator LoadGameScene()
         {
             // 这里可以添加一些加载前的准备工作
-            Debug.Log("Preparing to load game scene...");
-
             // 直接加载游戏场景
             var sceneHandle = YooAssets.LoadSceneAsync("Assets/ResIn/Scene/HotUpdate.unity");
             yield return sceneHandle;
-
-            Debug.Log("Game scene loaded successfully");
         }
     }
 }

+ 2 - 2
GameClient/Assets/Game/Launcher/LauncherConfig.cs

@@ -109,8 +109,8 @@ namespace GFGGame
             isUseDouYouIos = "1";
             ChannelId = (int)ChannelID.GFG;
 #else
-            netType = EnumNetType.LOCAL;
-            cfgName = "cfg_webgllocal";
+            netType = EnumNetType.PUBLIC;
+            cfgName = "cfg_webgllocal";     
             ChannelId = (int)ChannelID.H5;
 #endif
 

+ 1 - 14
GameClient/Assets/Game/Launcher/LauncherController.cs

@@ -20,9 +20,7 @@ namespace GFGGame
             HttpTool.Instance.Get(url, (string json) =>
             {
                 LauncherConfig.InitPlatform(json);
-                //CheckShowAgreeView(CheckGameStatus);
                 CheckGameStatus();
-                Debug.Log($"正在检查更新...CheckGameStatus");
             });
         }
 
@@ -64,8 +62,6 @@ namespace GFGGame
         private static void InitSDK()
         {
             InitReporter();
-            Debug.Log($"InitSDK...InitReporter");
-            //InitBugly();
             eventGroup.AddListener<LauncherEvent.InitPlatformResult>(OnInitPlatform);
             QDManagerInit.InitPlatform();
         }
@@ -73,18 +69,15 @@ namespace GFGGame
         private static void OnInitPlatform(IEventMessage obj)
         {
             LauncherEvent.InitPlatformResult initPlatformResult = obj as LauncherEvent.InitPlatformResult;
-            Debug.Log($"OnInitPlatform InitPlatformResult");
             if (initPlatformResult != null)
             {
                 if(initPlatformResult.success)
                 {
                     OnInitSDKSuccess();
-                    Debug.Log($"调试100");
                 }
                 else
                 {
                     OnInitSDKFail();
-                    Debug.Log($"调试101");
                 }
             }
         } 
@@ -99,7 +92,6 @@ namespace GFGGame
         {
 #if UNITY_EDITOR
             InitResVersion();
-            Debug.Log($"OnInitSDKSuccess");
 #else
             CheckApkVersion();
 #endif
@@ -107,26 +99,21 @@ namespace GFGGame
 
         private static void CheckApkVersion()
         {
-            Debug.Log($"CheckApkVersion...apkVersion");
             var versionTarget = LauncherConfig.apkVersion;
             var version = Application.version;
             if (VersionUtil.compare(version, versionTarget))
             {
-                Debug.Log($"CheckApkVersion...UpdateApp");
                 QDManagerInit.UpdateApp();
-                Debug.Log($"CheckApkVersion UpdateApp");
             }
             else
             {
                 InitResVersion();
-                Debug.Log($"CheckApkVersion InitResVersion");
             }
         }
 
         private static void InitResVersion()
         {
             VersionController.Instance.Init();
-            Debug.Log($"调试InitResVersion");
         }
 
 
@@ -170,7 +157,7 @@ namespace GFGGame
             // 如果你确认已在对应的iOS工程或Android工程中初始化SDK,那么在脚本中只需启动C#异常捕获上报功能即可
             // BuglyAgent.EnableExceptionHandler();
 
-        }
+        }       
 
     }
 }

+ 1 - 1
GameClient/Assets/Game/Launcher/Net/Http/HttpTool.cs

@@ -15,7 +15,7 @@ namespace GFGGame
     public class HttpTool : SingletonMonoBase<HttpTool>
     {
         //最大尝试次数
-        const int TryTimes = 5;
+        const int TryTimes = 10;
         //存储尝试次数
         public Dictionary<string, int> TryTimesDic = new Dictionary<string, int>();
 

+ 0 - 1
GameClient/Assets/Game/Launcher/Platform/QDManagerInit.cs

@@ -7,7 +7,6 @@ namespace GFGGame.Launcher
     {
         public static void InitPlatform()
         {
-            Debug.Log($"调试102");
             switch (LauncherConfig.ChannelId)
             {
                 default:

+ 2 - 19
GameClient/Assets/Game/Launcher/Version/VersionController.cs

@@ -24,28 +24,18 @@ namespace GFGGame
 
         public IEnumerator InitVersion()
         {
-            Debug.Log("InitVersion started");
             yield return InitDefaultPackage();
-            Debug.Log("InitDefaultPackage completed");
             if (string.IsNullOrEmpty(LauncherConfig.manifest_v))
             {
-                Debug.Log("Getting static version");
                 yield return GetStaticVersion(DefaultPackage);
-                Debug.Log("GetStaticVersion completed");
             }
             else
             {
-                Debug.Log("Using cached version");
                 VersionController.Instance.PackageVersion = LauncherConfig.manifest_v;
             }
-
-            Debug.Log("Updating manifest");
+            
             yield return UpdateManifest(DefaultPackage);
-            Debug.Log("UpdateManifest completed");
-
-            Debug.Log("Creating downloader");
             CreateDownloader(DefaultPackage);
-            Debug.Log("InitVersion completed");
         }
 
         private IEnumerator InitDefaultPackage()
@@ -114,7 +104,6 @@ namespace GFGGame
             var operation =
                 package.UpdatePackageManifestAsync(VersionController.Instance.PackageVersion, savePackageVersion);
             yield return operation;
-            Debug.Log($"调试6");
             if (operation.Status != EOperationStatus.Succeed)
             {
                 Debug.LogWarning(operation.Error);
@@ -125,27 +114,23 @@ namespace GFGGame
 
         private void CreateDownloader(string packageName)
         {
-            Debug.Log($"调试1");
             int downloadingMaxNum = 10;
             int failedTryAgain = 3;
             ResourcePackage package = YooAssets.GetPackage(packageName);
             //ResourceDownloaderOperation downloaderOperation = package.CreateResourceDownloader(new string[] { "preload", "dynamic" }, downloadingMaxNum, failedTryAgain);
             ResourceDownloaderOperation downloaderOperation =
                 package.CreateResourceDownloader(new string[] { "preload" }, downloadingMaxNum, failedTryAgain);
-            Debug.Log($"调试2");
             if (downloaderOperation.TotalDownloadCount == 0)
             {
                 LauncherController.OnVersionCompleted();
-                Debug.Log($"调试3");
             }
             else
             {
                 //A total of 10 files were found that need to be downloaded
                 Debug.Log($"Found total {downloaderOperation.TotalDownloadCount} files that need download !");
-                Debug.Log($"调试4");
                 // 发现新更新文件后,挂起流程系统
                 // 注意:开发者需要在下载前检测磁盘空间不足
-                int totalDownloadCount = downloaderOperation.TotalDownloadCount;
+                //int totalDownloadCount = downloaderOperation.TotalDownloadCount;
                 long totalDownloadBytes = downloaderOperation.TotalDownloadBytes;
                 float sizeMB = totalDownloadBytes / 1048576f;
                 sizeMB = Mathf.Clamp(sizeMB, 0.1f, float.MaxValue);
@@ -164,7 +149,6 @@ namespace GFGGame
                 }
                 else
                 {
-                    Debug.Log($"调试5");
                     StartCoroutine(BeginDownload(downloaderOperation, packageName));
                 }
             }
@@ -179,7 +163,6 @@ namespace GFGGame
                     Debug.LogError($"" +
                                    $"加载{fileName}失败 {error}");
                 };
-            Debug.Log($"调试6");
             downloaderOperation.OnDownloadProgressCallback =
                 (totalDownloadCount, currentDownloadCount, totalDownloadSizeBytes, currentDownloadSizeBytes) =>
                 {

+ 0 - 12
GameClient/Assets/ResIn/UI/Login/Login_atlas0!a.png.meta

@@ -99,18 +99,6 @@ TextureImporter:
     overridden: 1
     androidETC2FallbackOverride: 0
     forceMaximumCompressionQuality_BC6H_BC7: 0
-  - serializedVersion: 3
-    buildTarget: Standalone
-    maxTextureSize: 2048
-    resizeAlgorithm: 0
-    textureFormat: -1
-    textureCompression: 1
-    compressionQuality: 50
-    crunchedCompression: 0
-    allowsAlphaSplitting: 0
-    overridden: 0
-    androidETC2FallbackOverride: 0
-    forceMaximumCompressionQuality_BC6H_BC7: 0
   spriteSheet:
     serializedVersion: 2
     sprites: []

+ 0 - 12
GameClient/Assets/ResIn/UI/Login/Login_atlas0.png.meta

@@ -99,18 +99,6 @@ TextureImporter:
     overridden: 1
     androidETC2FallbackOverride: 0
     forceMaximumCompressionQuality_BC6H_BC7: 0
-  - serializedVersion: 3
-    buildTarget: Standalone
-    maxTextureSize: 2048
-    resizeAlgorithm: 0
-    textureFormat: -1
-    textureCompression: 1
-    compressionQuality: 50
-    crunchedCompression: 0
-    allowsAlphaSplitting: 0
-    overridden: 0
-    androidETC2FallbackOverride: 0
-    forceMaximumCompressionQuality_BC6H_BC7: 0
   spriteSheet:
     serializedVersion: 2
     sprites: []

+ 1 - 0
GameClient/GameClient.sln.DotSettings.user

@@ -34,6 +34,7 @@
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATask_002Ecs_002Fl_003AC_0021_003FUsers_003Fss510_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F695d1cc93cca45069c528c15c9fdd7493e2800_003F5f_003F0c6d83c7_003FTask_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATask_00601_002Ecs_002Fl_003AC_0021_003FUsers_003Fss510_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F3789ee403a53437cbb6b5d9ab6311f51573620_003Fa4_003F44ebb4e8_003FTask_00601_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATask_00601_002Ecs_002Fl_003AC_0021_003FUsers_003Fss510_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F695d1cc93cca45069c528c15c9fdd7493e2800_003Fba_003Fd47fe324_003FTask_00601_002Ecs_002Fz_003A2_002D1/@EntryIndexedValue">ForceIncluded</s:String>
+	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AType_002Ecs_002Fl_003AC_0021_003FUsers_003Fss510_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F695d1cc93cca45069c528c15c9fdd7493e2800_003Fcf_003Fc7a06b28_003FType_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AVector3_002Ecs_002Fl_003AC_0021_003FUsers_003Fss510_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F683a2b31bf9142429c44f02c75dbc6c913ce00_003F1a_003F53ed0524_003FVector3_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AWebSocketState_002Ecs_002Fl_003AC_0021_003FUsers_003Fadmin_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fc0c221501f3a41f8ac0af9d6a9dc9ff335fd90_003Fb5_003F7e198be5_003FWebSocketState_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AWebSocket_002Ecs_002Fl_003AC_0021_003FUsers_003Fadmin_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fc0c221501f3a41f8ac0af9d6a9dc9ff335fd90_003F40_003F4c808bad_003FWebSocket_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>