Bläddra i källkod

Merge branch 'master' of http://192.168.123.2:3000/ck/XiuXianGame

zg 3 veckor sedan
förälder
incheckning
eb8be89d38
48 ändrade filer med 1355 tillägg och 447 borttagningar
  1. 92 12
      Assets/Res/Config/EventConfig.json
  2. 154 34
      Assets/Res/Config/EventLinkConfig.json
  3. 1 1
      Assets/Res/Config/EventLinkConfig.json.meta
  4. 12 0
      Assets/Res/Config/TaskConfig.json
  5. 308 8
      Assets/Res/UI/Task/TaskInfoPanel.prefab
  6. 1 1
      Assets/Res/UI/WidgetItem.prefab
  7. 8 8
      Assets/Scenes/testCombat.scene
  8. 4 0
      Assets/Scripts/Core/Event/Event/CustomEventType.cs
  9. 2 2
      Assets/Scripts/GameData/ExcelConfig/EventConfig.cs
  10. 25 7
      Assets/Scripts/GameData/ExcelConfig/EventLinkConfig.cs
  11. 1 1
      Assets/Scripts/GameData/ExcelConfig/EventLinkConfig.cs.meta
  12. 2 1
      Assets/Scripts/GameLogic/Combat/CombatState/CombatUpdateState.cs
  13. 2 0
      Assets/Scripts/GameLogic/Combat/CombatTool/CombatCalculateTool.cs
  14. 6 0
      Assets/Scripts/GameLogic/Combat/CombatTool/HarmReturnInfo.cs
  15. 4 1
      Assets/Scripts/GameLogic/Combat/Skill/MagicSkill/S3501.cs
  16. 1 1
      Assets/Scripts/GameLogic/Combat/Skill/S1401.cs
  17. 0 20
      Assets/Scripts/GameLogic/EventManager/DialogueMono.cs
  18. 0 3
      Assets/Scripts/GameLogic/EventManager/DialogueMono.cs.meta
  19. 39 35
      Assets/Scripts/GameLogic/Hero/HeroInfo.cs
  20. 30 1
      Assets/Scripts/GameLogic/Player/AccountFileInfo.cs
  21. 27 23
      Assets/Scripts/GameLogic/Player/PlayerManager.cs
  22. 34 37
      Assets/Scripts/GameLogic/PlayerDataEditorWindow.cs
  23. 0 60
      Assets/Scripts/GameUI/DialogueMono.cs
  24. 0 3
      Assets/Scripts/GameUI/DialogueMono.cs.meta
  25. 0 0
      Assets/Scripts/GameUI/EventManager.meta
  26. 81 34
      Assets/Scripts/GameUI/EventManager/DialogueManager.cs
  27. 0 0
      Assets/Scripts/GameUI/EventManager/DialogueManager.cs.meta
  28. 38 0
      Assets/Scripts/GameUI/EventManager/EventHelper.cs
  29. 3 0
      Assets/Scripts/GameUI/EventManager/EventHelper.cs.meta
  30. 220 42
      Assets/Scripts/GameUI/EventManager/EventSystemManager.cs
  31. 0 0
      Assets/Scripts/GameUI/EventManager/EventSystemManager.cs.meta
  32. 2 4
      Assets/Scripts/GameUI/GameApplction.cs
  33. 85 76
      Assets/Scripts/GameUI/TaskManager.cs
  34. 2 2
      Assets/Scripts/GameUI/UI/AppBarPanel/AppBarPanel.cs
  35. 1 1
      Assets/Scripts/GameUI/UI/CombatPanel/ShengShiEventWidget.cs
  36. 2 2
      Assets/Scripts/GameUI/UI/DialoguePanel/DialogueBubblePanel.cs
  37. 28 6
      Assets/Scripts/GameUI/UI/DialoguePanel/DialogueOptionWidget.cs
  38. 63 12
      Assets/Scripts/GameUI/UI/DialoguePanel/DialoguePanel.cs
  39. 1 1
      Assets/Scripts/GameUI/UI/DivineSence/ShengShiEventWidgetType2.cs
  40. 1 1
      Assets/Scripts/GameUI/UI/DivineSence/ShengShiEventWidgetType3.cs
  41. 2 2
      Assets/Scripts/GameUI/UI/MainPanel/MainPanel.cs
  42. 48 4
      Assets/Scripts/GameUI/UI/Task/TaskInfoPanel.cs
  43. 22 0
      Assets/Scripts/GameUI/UI/Task/TaskInfoPanelData.cs
  44. 1 1
      Assets/Scripts/GameUI/UIHelper.cs
  45. 0 0
      Assets/StreamingAssets/assetConfig.txt
  46. BIN
      Excel2Json/Excel/EventConfig.xlsx
  47. BIN
      Excel2Json/Excel/Task.xlsx
  48. 2 0
      XiuXianGame.sln.DotSettings.user

+ 92 - 12
Assets/Res/Config/EventConfig.json

@@ -2,7 +2,13 @@
   "configList": [
     {
       "ID": 1,
-      "EventBeginId": 1001,
+      "EventLinksId": [
+        1001,
+        1002,
+        1003,
+        1004,
+        1005
+      ],
       "EventTriggerType": 1,
       "EventType": 1,
       "EventQuality": 1,
@@ -16,7 +22,15 @@
     },
     {
       "ID": 2,
-      "EventBeginId": 1010,
+      "EventLinksId": [
+        1010,
+        1011,
+        1012,
+        1013,
+        1014,
+        1015,
+        1016
+      ],
       "EventTriggerType": 1,
       "EventType": 1,
       "EventQuality": 1,
@@ -30,7 +44,15 @@
     },
     {
       "ID": 3,
-      "EventBeginId": 1020,
+      "EventLinksId": [
+        1020,
+        1021,
+        1022,
+        1023,
+        1024,
+        1025,
+        1026
+      ],
       "EventTriggerType": 3,
       "EventType": 1,
       "EventQuality": 1,
@@ -44,7 +66,9 @@
     },
     {
       "ID": 4,
-      "EventBeginId": 1030,
+      "EventLinksId": [
+        1030
+      ],
       "EventTriggerType": 1,
       "EventType": 2,
       "EventQuality": 1,
@@ -58,7 +82,9 @@
     },
     {
       "ID": 5,
-      "EventBeginId": 1040,
+      "EventLinksId": [
+        1040
+      ],
       "EventTriggerType": 1,
       "EventType": 2,
       "EventQuality": 1,
@@ -72,7 +98,9 @@
     },
     {
       "ID": 6,
-      "EventBeginId": 1050,
+      "EventLinksId": [
+        1050
+      ],
       "EventTriggerType": 1,
       "EventType": 2,
       "EventQuality": 1,
@@ -86,7 +114,9 @@
     },
     {
       "ID": 7,
-      "EventBeginId": 1060,
+      "EventLinksId": [
+        1060
+      ],
       "EventTriggerType": 1,
       "EventType": 2,
       "EventQuality": 1,
@@ -100,7 +130,9 @@
     },
     {
       "ID": 11,
-      "EventBeginId": 10001,
+      "EventLinksId": [
+        10001
+      ],
       "EventTriggerType": 2,
       "EventType": 1,
       "EventQuality": 1,
@@ -108,7 +140,9 @@
     },
     {
       "ID": 12,
-      "EventBeginId": 10003,
+      "EventLinksId": [
+        10003
+      ],
       "EventTriggerType": 2,
       "EventType": 1,
       "EventQuality": 1,
@@ -116,7 +150,9 @@
     },
     {
       "ID": 13,
-      "EventBeginId": 10004,
+      "EventLinksId": [
+        10004
+      ],
       "EventTriggerType": 2,
       "EventType": 1,
       "EventQuality": 1,
@@ -124,7 +160,9 @@
     },
     {
       "ID": 14,
-      "EventBeginId": 10005,
+      "EventLinksId": [
+        10005
+      ],
       "EventTriggerType": 2,
       "EventType": 1,
       "EventQuality": 1,
@@ -132,11 +170,53 @@
     },
     {
       "ID": 15,
-      "EventBeginId": 10006,
+      "EventLinksId": [
+        10006
+      ],
       "EventTriggerType": 2,
       "EventType": 1,
       "EventQuality": 1,
       "Description": null
+    },
+    {
+      "ID": 10001,
+      "EventLinksId": [
+        100001
+      ],
+      "EventTriggerType": 4,
+      "EventType": 1,
+      "EventQuality": 1,
+      "Description": 1906
+    },
+    {
+      "ID": 10002,
+      "EventLinksId": [
+        100002
+      ],
+      "EventTriggerType": 4,
+      "EventType": 1,
+      "EventQuality": 1,
+      "Description": 1907
+    },
+    {
+      "ID": 10003,
+      "EventLinksId": [
+        100003
+      ],
+      "EventTriggerType": 4,
+      "EventType": 1,
+      "EventQuality": 1,
+      "Description": 1908
+    },
+    {
+      "ID": 10004,
+      "EventLinksId": [
+        100004
+      ],
+      "EventTriggerType": 4,
+      "EventType": 1,
+      "EventQuality": 1,
+      "Description": 1909
     }
   ]
 }

+ 154 - 34
Assets/Res/Config/EventConditionConfig.json → Assets/Res/Config/EventLinkConfig.json

@@ -2,18 +2,23 @@
   "configList": [
     {
       "ID": 100,
+      "conciseEventMessage": null,
       "LanID": [
         216
       ],
       "ConditionType": null,
-      "optionType": null
+      "finishCount": null,
+      "optionType": null,
+      "ResultType": null
     },
     {
       "ID": 1001,
+      "conciseEventMessage": null,
       "LanID": [
         177
       ],
       "ConditionType": null,
+      "finishCount": null,
       "optionType": 1,
       "optionPara1": [
         1002,
@@ -22,18 +27,25 @@
       "optionPara2": [
         198,
         199
-      ]
+      ],
+      "ResultType": null
     },
     {
       "ID": 1002,
+      "conciseEventMessage": null,
       "LanID": [
         178
       ],
-      "ConditionType": null,
+      "ConditionType": 1,
+      "ConditionPara": [
+        1001
+      ],
+      "finishCount": 10,
       "optionType": 2,
       "optionPara1": [
         100001
       ],
+      "ResultType": 2,
       "ResultOptions": [
         1004,
         100
@@ -41,52 +53,69 @@
     },
     {
       "ID": 1003,
+      "conciseEventMessage": null,
       "LanID": [
         179
       ],
-      "ConditionType": null,
+      "ConditionType": 1,
+      "ConditionPara": [
+        1002
+      ],
+      "finishCount": 10,
       "optionType": 1,
       "optionPara1": [
         1005
       ],
       "optionPara2": [
         200
-      ]
+      ],
+      "ResultType": null
     },
     {
       "ID": 1004,
+      "conciseEventMessage": null,
       "LanID": [
         180
       ],
       "ConditionType": null,
+      "finishCount": null,
       "optionType": 3,
       "PrizeIDs": [
         1002
       ],
       "PrizeNums": [
         100
-      ]
+      ],
+      "ResultType": null
     },
     {
       "ID": 1005,
+      "conciseEventMessage": null,
       "LanID": [
         181
       ],
-      "ConditionType": null,
+      "ConditionType": 3,
+      "ConditionPara": [
+        10
+      ],
+      "finishCount": 1,
       "optionType": 3,
       "PrizeIDs": [
         1001
       ],
       "PrizeNums": [
         50
-      ]
+      ],
+      "ResultType": null
     },
     {
       "ID": 1010,
+      "conciseEventMessage": null,
       "LanID": [
         182
       ],
       "ConditionType": null,
+      "finishCount": null,
       "optionType": 1,
       "optionPara1": [
         1011,
@@ -95,14 +124,17 @@
       "optionPara2": [
         201,
         202
-      ]
+      ],
+      "ResultType": null
     },
     {
       "ID": 1011,
+      "conciseEventMessage": null,
       "LanID": [
         183
       ],
       "ConditionType": null,
+      "finishCount": null,
       "optionType": 1,
       "optionPara1": [
         1014,
@@ -111,33 +143,40 @@
       "optionPara2": [
         203,
         204
-      ]
+      ],
+      "ResultType": null
     },
     {
       "ID": 1012,
+      "conciseEventMessage": null,
       "LanID": [
         184,
         187
       ],
       "ConditionType": null,
+      "finishCount": null,
       "optionType": 3,
       "PrizeIDs": [
         1001
       ],
       "PrizeNums": [
         10
-      ]
+      ],
+      "ResultType": null
     },
     {
       "ID": 1014,
+      "conciseEventMessage": null,
       "LanID": [
         185
       ],
       "ConditionType": null,
+      "finishCount": null,
       "optionType": 2,
       "optionPara1": [
         100002
       ],
+      "ResultType": 2,
       "ResultOptions": [
         1016,
         100
@@ -145,39 +184,47 @@
     },
     {
       "ID": 1015,
+      "conciseEventMessage": null,
       "LanID": [
         186,
         189
       ],
       "ConditionType": null,
+      "finishCount": null,
       "optionType": 3,
       "PrizeIDs": [
         1003
       ],
       "PrizeNums": [
         1000
-      ]
+      ],
+      "ResultType": null
     },
     {
       "ID": 1016,
+      "conciseEventMessage": null,
       "LanID": [
         188
       ],
       "ConditionType": null,
+      "finishCount": null,
       "optionType": null,
       "PrizeIDs": [
         1001
       ],
       "PrizeNums": [
         200
-      ]
+      ],
+      "ResultType": null
     },
     {
       "ID": 1020,
+      "conciseEventMessage": null,
       "LanID": [
         190
       ],
       "ConditionType": null,
+      "finishCount": null,
       "optionType": 1,
       "optionPara1": [
         1021,
@@ -186,14 +233,17 @@
       "optionPara2": [
         201,
         202
-      ]
+      ],
+      "ResultType": null
     },
     {
       "ID": 1021,
+      "conciseEventMessage": null,
       "LanID": [
         191
       ],
       "ConditionType": null,
+      "finishCount": null,
       "optionType": 2,
       "optionPara1": [
         100003
@@ -204,6 +254,7 @@
       "PrizeNums": [
         100
       ],
+      "ResultType": 2,
       "ResultOptions": [
         1026,
         100
@@ -211,10 +262,12 @@
     },
     {
       "ID": 1022,
+      "conciseEventMessage": null,
       "LanID": [
         192
       ],
       "ConditionType": null,
+      "finishCount": null,
       "optionType": 3,
       "PrizeIDs": [
         1002
@@ -222,17 +275,20 @@
       "PrizeNums": [
         10
       ],
+      "ResultType": 1,
       "ResultOptions": [
         1016
       ]
     },
     {
       "ID": 1024,
+      "conciseEventMessage": null,
       "LanID": [
         193,
         196
       ],
       "ConditionType": null,
+      "finishCount": null,
       "optionType": 2,
       "optionPara1": [
         100004
@@ -243,6 +299,7 @@
       "PrizeNums": [
         100
       ],
+      "ResultType": 2,
       "ResultOptions": [
         1016,
         100
@@ -250,11 +307,13 @@
     },
     {
       "ID": 1025,
+      "conciseEventMessage": null,
       "LanID": [
         194,
         197
       ],
       "ConditionType": null,
+      "finishCount": null,
       "optionType": 3,
       "PrizeIDs": [
         1002
@@ -262,16 +321,19 @@
       "PrizeNums": [
         1000
       ],
+      "ResultType": 1,
       "ResultOptions": [
         1002
       ]
     },
     {
       "ID": 1026,
+      "conciseEventMessage": null,
       "LanID": [
         207
       ],
       "ConditionType": null,
+      "finishCount": null,
       "optionType": 1,
       "optionPara1": [
         1024,
@@ -280,42 +342,51 @@
       "optionPara2": [
         205,
         206
-      ]
+      ],
+      "ResultType": null
     },
     {
       "ID": 1030,
+      "conciseEventMessage": null,
       "LanID": [
         221
       ],
       "ConditionType": null,
+      "finishCount": null,
       "optionType": 3,
       "PrizeIDs": [
         1002
       ],
       "PrizeNums": [
         10
-      ]
+      ],
+      "ResultType": null
     },
     {
       "ID": 1040,
+      "conciseEventMessage": null,
       "LanID": [
         222
       ],
       "ConditionType": null,
+      "finishCount": null,
       "optionType": 3,
       "PrizeIDs": [
         1002
       ],
       "PrizeNums": [
         10
-      ]
+      ],
+      "ResultType": null
     },
     {
       "ID": 1050,
+      "conciseEventMessage": null,
       "LanID": [
         223
       ],
       "ConditionType": null,
+      "finishCount": null,
       "optionType": 3,
       "PrizeIDs": [
         1002,
@@ -324,26 +395,33 @@
       "PrizeNums": [
         10,
         20
-      ]
+      ],
+      "ResultType": null
     },
     {
       "ID": 1060,
+      "conciseEventMessage": null,
       "LanID": [
         224
       ],
       "ConditionType": null,
-      "optionType": null
+      "finishCount": null,
+      "optionType": null,
+      "ResultType": null
     },
     {
       "ID": 10001,
+      "conciseEventMessage": null,
       "LanID": [
         208
       ],
       "ConditionType": null,
+      "finishCount": null,
       "optionType": 2,
       "optionPara1": [
         100001
       ],
+      "ResultType": 2,
       "ResultOptions": [
         10002,
         100
@@ -351,36 +429,43 @@
     },
     {
       "ID": 10002,
+      "conciseEventMessage": null,
       "LanID": [
         209
       ],
       "ConditionType": null,
+      "finishCount": null,
       "optionType": 3,
       "PrizeIDs": [
         1003
       ],
       "PrizeNums": [
         3000
-      ]
+      ],
+      "ResultType": null
     },
     {
       "ID": 10003,
+      "conciseEventMessage": null,
       "LanID": [
         210,
         211,
         1903
       ],
       "ConditionType": null,
+      "finishCount": null,
       "optionType": 3,
       "PrizeIDs": [
         1005
       ],
       "PrizeNums": [
         500
-      ]
+      ],
+      "ResultType": null
     },
     {
       "ID": 10004,
+      "conciseEventMessage": null,
       "LanID": [
         212,
         213,
@@ -388,24 +473,29 @@
         215
       ],
       "ConditionType": null,
+      "finishCount": null,
       "optionType": 3,
       "PrizeIDs": [
         1006
       ],
       "PrizeNums": [
         500
-      ]
+      ],
+      "ResultType": null
     },
     {
       "ID": 10005,
+      "conciseEventMessage": null,
       "LanID": [
         1901
       ],
       "ConditionType": null,
+      "finishCount": null,
       "optionType": 2,
       "optionPara1": [
         100002
       ],
+      "ResultType": 2,
       "ResultOptions": [
         10002,
         100
@@ -413,50 +503,80 @@
     },
     {
       "ID": 10006,
+      "conciseEventMessage": null,
       "LanID": [
         1902
       ],
       "ConditionType": null,
+      "finishCount": null,
       "optionType": 2,
       "optionPara1": [
         100003
       ],
+      "ResultType": 2,
       "ResultOptions": [
         10002,
         100
       ]
     },
     {
-      "ID": 11001,
+      "ID": 100001,
+      "conciseEventMessage": 1910,
       "LanID": [
         1914
       ],
       "ConditionType": null,
-      "optionType": null
+      "finishCount": 1,
+      "optionType": null,
+      "ResultType": 3,
+      "ResultOptions": [
+        10002
+      ]
     },
     {
-      "ID": 11002,
-      "ConditionType": null,
+      "ID": 100002,
+      "conciseEventMessage": 1911,
+      "ConditionType": 5,
+      "ConditionPara": [
+        100001
+      ],
+      "finishCount": 1,
       "optionType": 2,
       "optionPara1": [
         100001
+      ],
+      "ResultType": 3,
+      "ResultOptions": [
+        10003
       ]
     },
     {
-      "ID": 11003,
-      "ConditionType": null,
+      "ID": 100003,
+      "conciseEventMessage": 1912,
+      "ConditionType": 6,
+      "ConditionPara": [
+        1001
+      ],
+      "finishCount": 1,
       "optionType": 4,
       "optionPara1": [
-        1001
+        100004
+      ],
+      "ResultType": 3,
+      "ResultOptions": [
+        10004
       ]
     },
     {
-      "ID": 11004,
-      "ConditionType": null,
-      "optionType": 5,
-      "optionPara1": [
+      "ID": 100004,
+      "conciseEventMessage": 1913,
+      "ConditionType": 3,
+      "ConditionPara": [
         10
-      ]
+      ],
+      "finishCount": 1,
+      "optionType": null,
+      "ResultType": null
     }
   ]
 }

+ 1 - 1
Assets/Res/Config/EventConditionConfig.json.meta → Assets/Res/Config/EventLinkConfig.json.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: ByhK43mqB3rviyN3a2SgkOzNP/n71UkJZhczbeAcUf+pctv3aitXpDv2/U1s
+guid: CCkXtnuqAn7uP+7lsswfZGMEjKndohYSUJMC472BUWGUU7mfjalLv6KCKwjU
 TextScriptImporter:
   externalObjects: {}
   userData: 

+ 12 - 0
Assets/Res/Config/TaskConfig.json

@@ -12,6 +12,12 @@
         1914
       ],
       "finishCount": 1,
+      "awardItemId": [
+        1002
+      ],
+      "awardItemCount": [
+        10
+      ],
       "unlockType": -1,
       "unlockLevel": 1,
       "nextTaskID": 2
@@ -60,6 +66,12 @@
         10
       ],
       "finishCount": 1,
+      "awardItemId": [
+        1003
+      ],
+      "awardItemCount": [
+        1
+      ],
       "unlockType": -1,
       "unlockLevel": 1,
       "nextTaskID": 0

+ 308 - 8
Assets/Res/UI/Task/TaskInfoPanel.prefab

@@ -34,6 +34,7 @@ RectTransform:
   - {fileID: 2569128129379278262}
   - {fileID: 4688522053669353716}
   - {fileID: 8515100903656146540}
+  - {fileID: 3203492498983292032}
   - {fileID: 3220702368838562604}
   m_Father: {fileID: 0}
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -71,7 +72,7 @@ MonoBehaviour:
     isList: 0
     ListCollectorDatas: []
   - key: Text_Name
-    gameObject: {fileID: 1087322108478024986}
+    gameObject: {fileID: 9048041755528718903}
     isAssetBundle: 0
     isList: 0
     ListCollectorDatas: []
@@ -80,7 +81,109 @@ MonoBehaviour:
     isAssetBundle: 0
     isList: 0
     ListCollectorDatas: []
+  - key: Text_Title
+    gameObject: {fileID: 1087322108478024986}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas: []
+  - key: ItemRoot
+    gameObject: {fileID: 708683880219238892}
+    isAssetBundle: 0
+    isList: 0
+    ListCollectorDatas: []
   isAssetBundle: 1
+--- !u!1 &1408015899473625068
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 7
+  m_Component:
+  - component: {fileID: 708683880219238892}
+  - component: {fileID: 4283077157061789222}
+  - component: {fileID: 4881049144302649175}
+  - component: {fileID: 5435399637829414925}
+  m_Layer: 5
+  m_HasEditorInfo: 1
+  m_Name: ItemRoot
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &708683880219238892
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1408015899473625068}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 4038523271141183626}
+  m_Father: {fileID: 3220702368838562604}
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0}
+  m_AnchorMax: {x: 0.5, y: 0}
+  m_AnchoredPosition: {x: 0, y: -287.1}
+  m_SizeDelta: {x: 410.77, y: 248.4609}
+  m_Pivot: {x: 0.5, y: 0}
+--- !u!222 &4283077157061789222
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1408015899473625068}
+  m_CullTransparentMesh: 1
+--- !u!114 &4881049144302649175
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1408015899473625068}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 8a8695521f0d02e499659fee002a26c2, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Padding:
+    m_Left: 0
+    m_Right: 0
+    m_Top: 0
+    m_Bottom: 0
+  m_ChildAlignment: 1
+  m_StartCorner: 0
+  m_StartAxis: 0
+  m_CellSize: {x: 100, y: 100}
+  m_Spacing: {x: 2.8, y: 0}
+  m_Constraint: 1
+  m_ConstraintCount: 4
+--- !u!114 &5435399637829414925
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1408015899473625068}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_IgnoreLayout: 1
+  m_MinWidth: -1
+  m_MinHeight: -1
+  m_PreferredWidth: -1
+  m_PreferredHeight: -1
+  m_FlexibleWidth: -1
+  m_FlexibleHeight: -1
+  m_LayoutPriority: 1
 --- !u!1 &2132268725135064903
 GameObject:
   m_ObjectHideFlags: 0
@@ -394,6 +497,7 @@ GameObject:
   - component: {fileID: 3220702368838562604}
   - component: {fileID: 9047568930966635103}
   - component: {fileID: 1040938809657299556}
+  - component: {fileID: 2900250309646589645}
   m_Layer: 5
   m_HasEditorInfo: 1
   m_Name: Text_desc
@@ -413,14 +517,15 @@ RectTransform:
   m_LocalPosition: {x: 0, y: 0, z: 0}
   m_LocalScale: {x: 1, y: 1, z: 1}
   m_ConstrainProportionsScale: 0
-  m_Children: []
+  m_Children:
+  - {fileID: 708683880219238892}
   m_Father: {fileID: 8599819629026832582}
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
-  m_AnchorMin: {x: 0.5, y: 0.5}
-  m_AnchorMax: {x: 0.5, y: 0.5}
-  m_AnchoredPosition: {x: -0.0022316, y: 163.5149}
-  m_SizeDelta: {x: 410.77, y: 350.0495}
-  m_Pivot: {x: 0.5, y: 0.5}
+  m_AnchorMin: {x: 0.5, y: 1}
+  m_AnchorMax: {x: 0.5, y: 1}
+  m_AnchoredPosition: {x: 0, y: -506}
+  m_SizeDelta: {x: 410.77, y: 0}
+  m_Pivot: {x: 0.5, y: 1}
 --- !u!222 &9047568930966635103
 CanvasRenderer:
   m_ObjectHideFlags: 0
@@ -463,6 +568,201 @@ MonoBehaviour:
     m_VerticalOverflow: 0
     m_LineSpacing: 1
   m_Text: "\u5317\u6D77\u9065\u8FDC\uFF0C\u5C71\u9AD8\u8DEF\u9669\uFF0C\u6211\u5982\u4ECA\u53EA\u6709\u7EC3\u6C14\u4FEE\u4E3A\uFF0C\u4F55\u65F6\u80FD\u5230\uFF1F\u5F97\u4E00\u8FB9\u4FEE\u70BC\u4E00\u8FB9\u627E\u8DEF\u3002"
+--- !u!114 &2900250309646589645
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3627747089450203247}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_HorizontalFit: 0
+  m_VerticalFit: 2
+--- !u!1 &5056397833504547694
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 7
+  m_Component:
+  - component: {fileID: 3203492498983292032}
+  - component: {fileID: 7191667401234808033}
+  - component: {fileID: 9048041755528718903}
+  m_Layer: 5
+  m_HasEditorInfo: 1
+  m_Name: Text_Name
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &3203492498983292032
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5056397833504547694}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 8599819629026832582}
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: -121.43, y: 339.6}
+  m_SizeDelta: {x: 167.8958, y: 40.0044}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &7191667401234808033
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5056397833504547694}
+  m_CullTransparentMesh: 1
+--- !u!114 &9048041755528718903
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5056397833504547694}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_FontData:
+    m_Font: {fileID: 12800000, guid: e588d93665211944387ec8c03c8726ae, type: 3}
+    m_FontSize: 26
+    m_FontStyle: 1
+    m_BestFit: 0
+    m_MinSize: 2
+    m_MaxSize: 40
+    m_Alignment: 3
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: "\u4EFB\u52A1\u4FE1\u606F"
+--- !u!1 &6488653642591306706
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 7
+  m_Component:
+  - component: {fileID: 4038523271141183626}
+  - component: {fileID: 1806185420655456625}
+  - component: {fileID: 7636505141800979906}
+  - component: {fileID: 8034690176435114309}
+  m_Layer: 5
+  m_HasEditorInfo: 1
+  m_Name: Text (Legacy)
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &4038523271141183626
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6488653642591306706}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 708683880219238892}
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 1}
+  m_AnchorMax: {x: 0, y: 1}
+  m_AnchoredPosition: {x: 50.8, y: -23.6}
+  m_SizeDelta: {x: 100, y: 100}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &1806185420655456625
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6488653642591306706}
+  m_CullTransparentMesh: 1
+--- !u!114 &7636505141800979906
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6488653642591306706}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_FontData:
+    m_Font: {fileID: 12800000, guid: e588d93665211944387ec8c03c8726ae, type: 3}
+    m_FontSize: 20
+    m_FontStyle: 1
+    m_BestFit: 0
+    m_MinSize: 2
+    m_MaxSize: 40
+    m_Alignment: 0
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: "\u4EFB\u52A1\u5956\u52B1\uFF1A"
+--- !u!114 &8034690176435114309
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6488653642591306706}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_IgnoreLayout: 1
+  m_MinWidth: -1
+  m_MinHeight: -1
+  m_PreferredWidth: -1
+  m_PreferredHeight: -1
+  m_FlexibleWidth: -1
+  m_FlexibleHeight: -1
+  m_LayoutPriority: 1
 --- !u!1 &6864546897549033815
 GameObject:
   m_ObjectHideFlags: 0
@@ -597,7 +897,7 @@ GameObject:
   - component: {fileID: 1087322108478024986}
   m_Layer: 5
   m_HasEditorInfo: 1
-  m_Name: Text_Name
+  m_Name: Text_Title
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0

+ 1 - 1
Assets/Res/UI/WidgetItem.prefab

@@ -356,7 +356,7 @@ RectTransform:
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 0, y: 0}
   m_AnchoredPosition: {x: 0, y: 0}
-  m_SizeDelta: {x: 80, y: 80}
+  m_SizeDelta: {x: 100, y: 100}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &5132790119407906693
 MonoBehaviour:

+ 8 - 8
Assets/Scenes/testCombat.scene

@@ -2198,7 +2198,7 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 6090200664286961698, guid: 1076536f8fdf47942aa287592c6a8b19, type: 3}
       propertyPath: isZhanZhuang
-      value: 1
+      value: 0
       objectReference: {fileID: 0}
     - target: {fileID: 6090200664286961698, guid: 1076536f8fdf47942aa287592c6a8b19, type: 3}
       propertyPath: zhanZhuangTime
@@ -2206,7 +2206,7 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 6090200664286961698, guid: 1076536f8fdf47942aa287592c6a8b19, type: 3}
       propertyPath: myHeroInfo.Array.data[0].hp
-      value: 46090
+      value: 43373
       objectReference: {fileID: 0}
     - target: {fileID: 6090200664286961698, guid: 1076536f8fdf47942aa287592c6a8b19, type: 3}
       propertyPath: myHeroInfo.Array.data[0].mu
@@ -2218,11 +2218,11 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 6090200664286961698, guid: 1076536f8fdf47942aa287592c6a8b19, type: 3}
       propertyPath: myHeroInfo.Array.data[0].att
-      value: 1713
+      value: 1353
       objectReference: {fileID: 0}
     - target: {fileID: 6090200664286961698, guid: 1076536f8fdf47942aa287592c6a8b19, type: 3}
       propertyPath: myHeroInfo.Array.data[0].def
-      value: 933
+      value: 708
       objectReference: {fileID: 0}
     - target: {fileID: 6090200664286961698, guid: 1076536f8fdf47942aa287592c6a8b19, type: 3}
       propertyPath: myHeroInfo.Array.data[0].huo
@@ -2242,7 +2242,7 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 6090200664286961698, guid: 1076536f8fdf47942aa287592c6a8b19, type: 3}
       propertyPath: myHeroInfo.Array.data[0].level
-      value: 120
+      value: 150
       objectReference: {fileID: 0}
     - target: {fileID: 6090200664286961698, guid: 1076536f8fdf47942aa287592c6a8b19, type: 3}
       propertyPath: enemyHeroInfo.Array.data[0].att
@@ -2250,7 +2250,7 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 6090200664286961698, guid: 1076536f8fdf47942aa287592c6a8b19, type: 3}
       propertyPath: enemyHeroInfo.Array.data[0].level
-      value: 120
+      value: 150
       objectReference: {fileID: 0}
     - target: {fileID: 6090200664286961698, guid: 1076536f8fdf47942aa287592c6a8b19, type: 3}
       propertyPath: enemyHeroInfo.Array.data[0].heroID
@@ -2258,11 +2258,11 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 6090200664286961698, guid: 1076536f8fdf47942aa287592c6a8b19, type: 3}
       propertyPath: myHeroInfo.Array.data[0].skillLevel
-      value: 23
+      value: 30
       objectReference: {fileID: 0}
     - target: {fileID: 6090200664286961698, guid: 1076536f8fdf47942aa287592c6a8b19, type: 3}
       propertyPath: myHeroInfo.Array.data[0].skillStart
-      value: 3
+      value: 4
       objectReference: {fileID: 0}
     - target: {fileID: 6090200664286961698, guid: 1076536f8fdf47942aa287592c6a8b19, type: 3}
       propertyPath: myHeroInfo.Array.data[0].skill.Array.size

+ 4 - 0
Assets/Scripts/Core/Event/Event/CustomEventType.cs

@@ -103,6 +103,10 @@ namespace Fort23.Core
       /// 境界升级
       /// </summary>
       JingJieUpgrade,
+      /// <summary>
+      /// 刷新随机事件
+      /// </summary>
+      DetectRandomEvent
       
     }
 }

+ 2 - 2
Assets/Scripts/GameData/ExcelConfig/EventConfig.cs

@@ -23,11 +23,11 @@ public int ID;
 		/// <summary>
 		///事件的起始ID
 		/// </summary>
-public int EventBeginId;
+public int[] EventLinksId;
 
 
 		/// <summary>
-		///触发事件类型: 1.通用事件 2.挂机事件 3.地图专用事件
+		///触发事件类型: 1.通用事件 2.挂机事件 3.地图专用事件 4.主线任务
 		/// </summary>
 public int EventTriggerType;
 

+ 25 - 7
Assets/Scripts/GameData/ExcelConfig/EventConditionConfig.cs → Assets/Scripts/GameData/ExcelConfig/EventLinkConfig.cs

@@ -1,18 +1,18 @@
 // Auto Generated Code By excel2json
-// Generate From Excel\EventConfig.xlsx. SheetName: EventConditionConfig
+// Generate From Excel\EventConfig.xlsx. SheetName: EventLinkConfig
 
 using System;
 using Fort23.GameData;
 
 namespace Excel2Json
 {
-	[Config(prefab = "EventConditionConfig.json")]
-	public partial class EventConditionConfigHolder : ConfigHolder<EventConditionConfig>
	{
+	[Config(prefab = "EventLinkConfig.json")]
+	public partial class EventLinkConfigHolder : ConfigHolder<EventLinkConfig>
	{
 	}
 
 
 	[Serializable]
-	public struct EventConditionConfig : IConfig
	{
+	public struct EventLinkConfig : IConfig
	{
 		public int GetID() {return ID;} 
 		/// <summary>
 		///条件ID
@@ -20,6 +20,12 @@ namespace Excel2Json
 public int ID;
 
 
+		/// <summary>
+		///事件描述
+		/// </summary>
+public int conciseEventMessage;
+
+
 		/// <summary>
 		///文本语言表ID
 		/// </summary>
@@ -39,13 +45,19 @@ public int[] ConditionPara;
 
 
 		/// <summary>
-		///事件类型 1=提供选项 2=进入战斗 3=获得奖励 4=道具检测 5=境界检查
+		///条件完成次数
+		/// </summary>
+public int finishCount;
+
+
+		/// <summary>
+		///事件类型 1=提供选项 2=进入战斗 3=获得奖励 4=触发下一个事件
 		/// </summary>
 public int optionType;
 
 
 		/// <summary>
-		///事件常量1 1=事件IDs 2=战斗ID 3= 4=检测道具id 5=境界ID
+		///事件常量1 1=事件IDs 2=战斗ID 3= 4=eventConfigID
 		/// </summary>
 public int[] optionPara1;
 
@@ -69,7 +81,13 @@ public int[] PrizeNums;
 
 
 		/// <summary>
-		///事件结局后提供的选项 战斗:胜利/失败转事件ID
+		///事件结束类型 1:跳转事件 2:根据战斗解锁跳转事件 3.触发新事件
+		/// </summary>
+public int ResultType;
+
+
+		/// <summary>
+		///事件结局后提供的选项 1.EventConditionId 2.胜利id;失败id 3.EventConfigId
 		/// </summary>
 public int[] ResultOptions;
 

+ 1 - 1
Assets/Scripts/GameData/ExcelConfig/EventConditionConfig.cs.meta → Assets/Scripts/GameData/ExcelConfig/EventLinkConfig.cs.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: DHMf4H+uAHJlLYrnxIfgX+FkNw/BLu5Y3W+3/ASQGV3v3Sd0X3DNJ76ObE5l
+guid: WStOsyypAS5MRfKzK/6DHE/FZk3Dq9HnM9aos6ET60meZ2f7XZI7hN/wX2Wn
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2

+ 2 - 1
Assets/Scripts/GameLogic/Combat/CombatState/CombatUpdateState.cs

@@ -59,7 +59,8 @@ namespace GameLogic.Combat.CombatState
             
                 if (_nextMonsterTime < 0)
                 {   _nextMonsterTime = Random.Range(5, 10);
-                   EventSystemManager.Instance.DetectRandomEvents();
+                   // EventSystemManager.Instance.DetectRandomEvents();
+                   EventManager.Instance.Dispatch(CustomEventType.DetectRandomEvent,null);
                 }
             }
 

+ 2 - 0
Assets/Scripts/GameLogic/Combat/CombatTool/CombatCalculateTool.cs

@@ -391,11 +391,13 @@ namespace GameLogic.Combat.CombatTool
             {
                 myHp -= targetHp;
                 a.hp = myHp;
+                b.hp = 0;
             }
             else if (myHp < targetHp)
             {
                 targetHp -= myHp;
                 b.hp = targetHp;
+                a.hp = 0;
             }
             else if (myHp == targetHp)
             {

+ 6 - 0
Assets/Scripts/GameLogic/Combat/CombatTool/HarmReturnInfo.cs

@@ -46,6 +46,12 @@ namespace GameLogic.Combat.CombatTool
             harmType = HarmType.Default;
             triggerData = new TriggerData();
             WuXingType = WuXingType.Null;
+            isInvalid = false;
+            isHitHero = false;
+            QiangDu = 0;
+            isMiss = false;
+            yuanShiAtt = 0;
+            att = 0;
         }
     }
 }

+ 4 - 1
Assets/Scripts/GameLogic/Combat/Skill/MagicSkill/S3501.cs

@@ -60,7 +60,9 @@ namespace GameLogic.Combat.Skill.MagicSkill
                 .transform);
             barrierEntityMono.Barrier = this;
             _use = true;
-            _currHp = (long)SelfSkillConfig.effectValue[0];
+            _currHp = CombatCalculateTool.Instance.GetVlaueRatioForLong(
+                CombatMagicWeaponEntity.RootMagicWeaponControl.combatHeroEntity.MaxCombatHeroInfo.hp.Value,
+                SelfSkillConfig.effectValue[0]);
         }
 
         public bool CollideTriiger(ITriggerEntity triggerEntity)
@@ -102,6 +104,7 @@ namespace GameLogic.Combat.Skill.MagicSkill
                 pengZhuang.SetActive(false);
                 Debug.Log("盾破了,做表现的时候一起做");
             }
+
             return 0;
         }
     }

+ 1 - 1
Assets/Scripts/GameLogic/Combat/Skill/S1401.cs

@@ -12,7 +12,7 @@ namespace GameLogic.Combat.Skill
     /// </summary>
     public class S1401 : SkillBasic
     {
-        private static int[] zdPosIndex = new int[] { 9, 8, 7, 6, 5, 4, 3, 2, 1 };
+        private static int[] zdPosIndex = new int[] { 9, 8, 7, 6, 5, 4, 3, 2, 1 , 9};
 
         protected override void ProUseSkill()
         {

+ 0 - 20
Assets/Scripts/GameLogic/EventManager/DialogueMono.cs

@@ -1,20 +0,0 @@
-using System;
-using System.Collections.Generic;
-using Common.Utility.CombatEvent;
-using Fort23.Core;
-using GameLogic.Bag;
-
-public interface IDialogueMono
-{
-    void OpenDialoguePanel(int id, string[] icon, ShowDialogueEventData.MessageShowType messageShowType,
-        Action<int?> finish);
-
-    CTask OpenRewardsPanel(int eventId, List<ItemInfo> rewardsDic, Action onClose = null, int titleId = 0);
-
-    CTask OpenDialoguePanel(int id, Action<int?> finish);
-    void StartCombat(int levelBattle,System.Action<bool> finishCombat);
-
-    void ChangeComabtState(string state);
-    
-    CTask<bool> OpenBossInfoPanel(int id);
-}

+ 0 - 3
Assets/Scripts/GameLogic/EventManager/DialogueMono.cs.meta

@@ -1,3 +0,0 @@
-fileFormatVersion: 2
-guid: 7ef054f45f63489bab509d96db22d0b7
-timeCreated: 1745335552

+ 39 - 35
Assets/Scripts/GameLogic/Hero/HeroInfo.cs

@@ -59,52 +59,56 @@ namespace GameLogic.Hero
         {
             attributeBlValue.Clear();
             CalAttribute();
-            List<FaBaoInfo> myAllFaBao = PlayerManager.Instance.FaBaoControl.myAllFaBao;
-            foreach (var faBaoInfo in myAllFaBao)
+         
+
+            if (!PlayerManager.Instance.isTest)
             {
-                if (faBaoInfo.SkillConfig.addPropertyType != null)
+                List<FaBaoInfo> myAllFaBao = PlayerManager.Instance.FaBaoControl.myAllFaBao;
+                foreach (var faBaoInfo in myAllFaBao)
                 {
-                    for (int i = 0; i < faBaoInfo.SkillConfig.addPropertyType.Length; i++)
+                    if (faBaoInfo.SkillConfig.addPropertyType != null)
                     {
-                        int shuxingID = faBaoInfo.SkillConfig.addPropertyType[i];
-                        float shuxingValue = faBaoInfo.SkillConfig.addPropertyValue[i];
-                        ComputeHeroAttributeType(shuxingID, shuxingValue);
+                        for (int i = 0; i < faBaoInfo.SkillConfig.addPropertyType.Length; i++)
+                        {
+                            int shuxingID = faBaoInfo.SkillConfig.addPropertyType[i];
+                            float shuxingValue = faBaoInfo.SkillConfig.addPropertyValue[i];
+                            ComputeHeroAttributeType(shuxingID, shuxingValue);
+                        }
                     }
                 }
-            }
-
-            ///功法加被动属性
-            List<SkillInfo> allSkill = PlayerManager.Instance.GongFaControl.allSkill;
-            for (int j = 0; j < allSkill.Count; j++)
-            {
-                SkillInfo skillInfo = allSkill[j];
-                if (skillInfo.skillConfig.addPropertyType != null)
+                ///功法加被动属性
+                List<SkillInfo> allSkill = PlayerManager.Instance.GongFaControl.allSkill;
+                for (int j = 0; j < allSkill.Count; j++)
                 {
-                    for (int i = 0; i < skillInfo.skillConfig.addPropertyType.Length; i++)
+                    SkillInfo skillInfo = allSkill[j];
+                    if (skillInfo.skillConfig.addPropertyType != null)
                     {
-                        int shuxingID = skillInfo.skillConfig.addPropertyType[i];
-                        float shuxingValue = skillInfo.skillConfig.addPropertyValue[i];
-                        ComputeHeroAttributeType(shuxingID, shuxingValue);
+                        for (int i = 0; i < skillInfo.skillConfig.addPropertyType.Length; i++)
+                        {
+                            int shuxingID = skillInfo.skillConfig.addPropertyType[i];
+                            float shuxingValue = skillInfo.skillConfig.addPropertyValue[i];
+                            ComputeHeroAttributeType(shuxingID, shuxingValue);
+                        }
                     }
                 }
-            }
 
-            foreach (var VARIABLE in attributeBlValue)
-            {
-                switch (VARIABLE.Key)
+                foreach (var VARIABLE in attributeBlValue)
                 {
-                    case HeroAttributeType.HP_BL:
-                        hp.Value += (long)(hp.Value * (VARIABLE.Value / 100f));
-                        break;
-                    case HeroAttributeType.ATT_BL:
-                        attack.Value += (long)(attack.Value * (VARIABLE.Value / 100f));
-                        break;
-                    case HeroAttributeType.DEF_BL:
-                        defense.Value += (long)(defense.Value * (VARIABLE.Value / 100f));
-                        break;
-                    case HeroAttributeType.ShengShi_BL:
-                        shenshi.Value += (long)(shenshi.Value * (VARIABLE.Value / 100f));
-                        break;
+                    switch (VARIABLE.Key)
+                    {
+                        case HeroAttributeType.HP_BL:
+                            hp.Value += (long)(hp.Value * (VARIABLE.Value / 100f));
+                            break;
+                        case HeroAttributeType.ATT_BL:
+                            attack.Value += (long)(attack.Value * (VARIABLE.Value / 100f));
+                            break;
+                        case HeroAttributeType.DEF_BL:
+                            defense.Value += (long)(defense.Value * (VARIABLE.Value / 100f));
+                            break;
+                        case HeroAttributeType.ShengShi_BL:
+                            shenshi.Value += (long)(shenshi.Value * (VARIABLE.Value / 100f));
+                            break;
+                    }
                 }
             }
 

+ 30 - 1
Assets/Scripts/GameLogic/Player/AccountFileInfo.cs

@@ -10,6 +10,7 @@ using Fort23.UTool;
 using GameLogic.Bag;
 using GameLogic.Hero;
 using UnityEngine;
+using UnityEngine.Serialization;
 using Utility;
 #if UNITY_WEIXINMINIGAME
 using WeChatWASM;
@@ -60,9 +61,22 @@ public class AccountFileInfo : Singleton<AccountFileInfo>
         public int divineSensePoint = 0;
 
         public int divineSenseexp = 0;
+        
+        
+        /// <summary>
+        /// 事件链数据
+        /// </summary>
+        public List<EventLinkData> eventLinkDatas = new List<EventLinkData>();
 
-        public List<EventData> events = new List<EventData>();
+        /// <summary>
+        /// 完成的事件
+        /// </summary>
+        public List<EventList> completeEvents = new List<EventList>();
 
+        /// <summary>
+        /// 背包里的事件
+        /// 
+        /// </summary>
         public List<EventList> eventList = new List<EventList>();
 
 
@@ -154,6 +168,21 @@ public class AccountFileInfo : Singleton<AccountFileInfo>
         //完成cishu
         public int completeCount = 0;
     }
+    
+    /// <summary>
+    /// 刷出来的事件列表
+    /// </summary>
+    [System.Serializable]
+    public class EventLinkData
+    {
+        public int eventLinkId;
+        
+        public int eventId;
+
+        
+        public int fishCount;
+    }
+    
 
     /// <summary>
     /// 刷出来的事件列表

+ 27 - 23
Assets/Scripts/GameLogic/Player/PlayerManager.cs

@@ -21,6 +21,8 @@ public class PlayerManager : Singleton<PlayerManager>
     public FaBaoControl FaBaoControl;
     public BagController BagController;
 
+    public bool isTest;
+
     /// <summary>
     /// 玩家角色属性
     /// </summary>
@@ -86,6 +88,7 @@ public class PlayerManager : Singleton<PlayerManager>
 
     public void AddTestHeroInfo(TestCombatHeroConfig.TestHeroInfoConfig testHeroInfoConfig)
     {
+        isTest = true;
         GongFaControl.allSkill.Clear();
         SkillConfig[] allSkillConfig = ConfigComponent.Instance.GetAll<SkillConfig>();
         for (int i = 0; i < allSkillConfig.Length; i++)
@@ -142,8 +145,9 @@ public class PlayerManager : Singleton<PlayerManager>
             for (int i = 0; i < testHeroInfoConfig.magicWeaponId.Count; i++)
             {
                 FaBaoInfo faBaoInfo = new FaBaoInfo(testHeroInfoConfig.magicWeaponId[i], fbLevel);
-                FaBaoControl.AddFaBao(faBaoInfo);
+                faBaoInfo.FaBaoData.useIndex = i;
                 FaBaoControl.FightFaBao[i] = faBaoInfo;
+                FaBaoControl.AddFaBao(faBaoInfo);
             }
         }
 
@@ -162,28 +166,28 @@ public class PlayerManager : Singleton<PlayerManager>
         myHero.TaoismSkillId = 601011;
         myHero.MagicWeaponID.Clear();
         myHero.MagicWeaponID.AddRange(FaBaoControl.FightFaBao);
-        for (int i = 0; i < FaBaoControl.FightFaBao.Length; i++)
-        {
-            FaBaoInfo faBaoInfo = FaBaoControl.FightFaBao[i];
-            if (faBaoInfo != null)
-            {
-                foreach (var VARIABLE in faBaoInfo.attriButedIC)
-                {
-                    switch (VARIABLE.Key)
-                    {
-                        case 1:
-                            myHero.hp += VARIABLE.Value;
-                            break;
-                        case 2:
-                            myHero.defense += VARIABLE.Value;
-                            break;
-                        case 3:
-                            myHero.attack += VARIABLE.Value;
-                            break;
-                    }
-                }
-            }
-        }
+        // for (int i = 0; i < FaBaoControl.FightFaBao.Length; i++)
+        // {
+        //     FaBaoInfo faBaoInfo = FaBaoControl.FightFaBao[i];
+        //     if (faBaoInfo != null)
+        //     {
+        //         foreach (var VARIABLE in faBaoInfo.attriButedIC)
+        //         {
+        //             switch (VARIABLE.Key)
+        //             {
+        //                 case 1:
+        //                     myHero.hp += VARIABLE.Value;
+        //                     break;
+        //                 case 2:
+        //                     myHero.defense += VARIABLE.Value;
+        //                     break;
+        //                 case 3:
+        //                     myHero.attack += VARIABLE.Value;
+        //                     break;
+        //             }
+        //         }
+        //     }
+        // }
     }
 
 

+ 34 - 37
Assets/Scripts/GameLogic/PlayerDataEditorWindow.cs

@@ -6,8 +6,6 @@ using System.Collections.Generic;
 using System;
 using System.Collections;
 using System.IO;
-using Fort23.UTool;
-using PlayerData = AccountFileInfo.PlayerData;
 
 public class PlayerDataEditorWindow : EditorWindow
 {
@@ -20,14 +18,12 @@ public class PlayerDataEditorWindow : EditorWindow
     [MenuItem("Tools/PlayerData 编辑器")]
     public static void ShowWindow()
     {
-        GetWindow<PlayerDataEditorWindow>("PlayerData 编辑器");
+        GetWindow<PlayerDataEditorWindow>(true,"PlayerData 编辑器");
     }
 
     private void OnEnable()
     {
-        // 初始化 PlayerData(示例中创建一个新实例,实际中尝试加载)
-        playerData = new AccountFileInfo.PlayerData();
-        // 尝试从 persistentDataPath 加载数据
+    
         LoadPlayerData();
     }
 
@@ -35,9 +31,9 @@ public class PlayerDataEditorWindow : EditorWindow
     {
         GUIStyle headerStyle = new GUIStyle(EditorStyles.boldLabel) { fontSize = 14, padding = new RectOffset(5, 5, 5, 5) };
         GUIStyle sectionStyle = new GUIStyle(EditorStyles.helpBox) { margin = new RectOffset(5, 5, 5, 5), padding = new RectOffset(10, 10, 10, 10) };
-
+    
         scrollPos = EditorGUILayout.BeginScrollView(scrollPos);
-
+      
         if (playerData == null)
         {
             EditorGUILayout.HelpBox("未加载 PlayerData!点击下方创建新数据。", MessageType.Warning);
@@ -45,14 +41,14 @@ public class PlayerDataEditorWindow : EditorWindow
             {
                 playerData = new AccountFileInfo.PlayerData();
             }
-
+    
             EditorGUILayout.EndScrollView();
             return;
         }
-
+    
         EditorGUILayout.LabelField("PlayerData 编辑器", headerStyle);
         EditorGUILayout.Space();
-
+    
         EditorGUILayout.BeginVertical(sectionStyle);
         try
         {
@@ -62,9 +58,9 @@ public class PlayerDataEditorWindow : EditorWindow
         {
             EditorGUILayout.HelpBox($"绘制字段时出错: {ex.Message}", MessageType.Error);
         }
-
+    
         EditorGUILayout.EndVertical();
-
+    
         EditorGUILayout.Space();
         EditorGUILayout.BeginHorizontal();
         if (GUILayout.Button("保存 PlayerData", GUILayout.Height(30)))
@@ -74,7 +70,7 @@ public class PlayerDataEditorWindow : EditorWindow
                 SavePlayerData();
             }
         }
-
+    
         if (GUILayout.Button("加载 PlayerData", GUILayout.Height(30)))
         {
             if (EditorUtility.DisplayDialog("加载确认", $"确定要从 {Application.persistentDataPath + DataFilePath} 加载数据?\n当前编辑的数据将被覆盖。", "确定", "取消"))
@@ -82,9 +78,9 @@ public class PlayerDataEditorWindow : EditorWindow
                 LoadPlayerData();
             }
         }
-
+    
         EditorGUILayout.EndHorizontal();
-
+    
         EditorGUILayout.EndScrollView();
     }
 
@@ -291,35 +287,36 @@ public class PlayerDataEditorWindow : EditorWindow
 
     private void LoadPlayerData()
     {
-        try
+        if (!Application.isPlaying)
         {
-            string path = Application.persistentDataPath + DataFilePath;
-            if (File.Exists(path))
+            if(playerData == null)
+                playerData = new AccountFileInfo.PlayerData();
+            
+            try
             {
-                string json = File.ReadAllText(path);
-                
-                // StreamReader sr = File.OpenText(persistentDataPath);
-                // string data = sr.ReadToEnd();
-                // sr.Close();
-                // playerData = new PlayerData();
-                
-                JsonUtility.FromJsonOverwrite(json, playerData);
-                // playerData = JsonUtility.FromJson<AccountFileInfo.PlayerData>(json);
-                // foldoutStates.Clear();
-                // Debug.Log($"PlayerData 已从 {path} 加载");
-                // EditorUtility.DisplayDialog("加载成功", $"PlayerData 已从 {path} 加载", "确定");
+                string path = Application.persistentDataPath + DataFilePath;
+                if (File.Exists(path))
+                {
+                    string json = File.ReadAllText(path);
+                    JsonUtility.FromJsonOverwrite(json, playerData);
+                }
+                else
+                {
+                    EditorGUILayout.HelpBox($"未找到文件: {path}", MessageType.Warning);
+                    EditorUtility.DisplayDialog("加载失败", $"未找到文件: {path}", "确定");
+                }
             }
-            else
+            catch (Exception ex)
             {
-                EditorGUILayout.HelpBox($"未找到文件: {path}", MessageType.Warning);
-                EditorUtility.DisplayDialog("加载失败", $"未找到文件: {path}", "确定");
+                EditorGUILayout.HelpBox($"加载 PlayerData 时出错: {ex.Message}", MessageType.Error);
+                EditorUtility.DisplayDialog("加载失败", $"加载 PlayerData 时出错: {ex.Message}", "确定");
             }
         }
-        catch (Exception ex)
+        else
         {
-            EditorGUILayout.HelpBox($"加载 PlayerData 时出错: {ex.Message}", MessageType.Error);
-            EditorUtility.DisplayDialog("加载失败", $"加载 PlayerData 时出错: {ex.Message}", "确定");
+            playerData = AccountFileInfo.Instance.playerData;
         }
+       
     }
 }
 #endif

+ 0 - 60
Assets/Scripts/GameUI/DialogueMono.cs

@@ -1,60 +0,0 @@
-using System;
-using System.Collections.Generic;
-using Common.Utility.CombatEvent;
-using Excel2Json;
-using Fort23.Core;
-using Fort23.Mono;
-using Fort23.UTool;
-using GameLogic.Bag;
-using GameLogic.Combat;
-using UnityEngine;
-
-namespace GameUI
-{
-    public class DialogueMono : IDialogueMono
-    {
-        public void OpenDialoguePanel(int id, string[] icon, ShowDialogueEventData.MessageShowType messageShowType,
-            Action<int?> finish)
-        {
-            DialoguePanel.OpenDialoguePanel(id, icon, messageShowType, finish);
-        }
-
-        public async CTask OpenRewardsPanel(int eventId, List<ItemInfo> rewardsDic, Action onClose = null, int titleId = 0)
-        {
-            EventConfig eventConfig = ConfigComponent.Instance.Get<EventConfig>(eventId);
-            if (eventConfig.EventTriggerType == 2)
-            {
-                Vector3 worldPos =CombatDrive.Instance.CombatController.playerHeroEntity.combatHeroGameObject.hpTransform.position;
-
-                worldPos.y += 0.5f;
-                await ShowItemNumberCom.Open(worldPos, rewardsDic[0]);
-                await TimerComponent.Instance.WaitAsync(100);
-            }
-            else
-            {
-                RewardsPanel rewardsPanel = await RewardsPanel.OpenPanel(rewardsDic, onClose, titleId);
-                await rewardsPanel.UIClosed();
-            }
-        }
-
-        public async CTask OpenDialoguePanel(int id, Action<int?> finish)
-        {
-            await DialogueBubblePanel.OpenDialoguePanel(id, finish);
-        }
-
-        public void StartCombat(int levelBattle, Action<bool> finishCombat)
-        {
-            CombatDrive.Instance.LoadLevelBattleCombat(levelBattle, finishCombat);
-        }
-
-        public void ChangeComabtState(string state)
-        {
-            CombatDrive.Instance.CombatController.ChangeState(state);
-        }
-
-        public async  CTask<bool> OpenBossInfoPanel(int id)
-        {
-            return await BossInfoPanel.OpenPanel(id);
-        }
-    }
-}

+ 0 - 3
Assets/Scripts/GameUI/DialogueMono.cs.meta

@@ -1,3 +0,0 @@
-fileFormatVersion: 2
-guid: 0b2874b2722f474aac3fa3866064b2a6
-timeCreated: 1745378014

+ 0 - 0
Assets/Scripts/GameLogic/EventManager.meta → Assets/Scripts/GameUI/EventManager.meta


+ 81 - 34
Assets/Scripts/GameLogic/EventManager/DialogueManager.cs → Assets/Scripts/GameUI/EventManager/DialogueManager.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using System.Linq;
 using Common.Utility.CombatEvent;
 using Core.Event.Event;
 using Excel2Json;
@@ -7,6 +8,7 @@ using Fort23.Core;
 using Fort23.Mono;
 using Fort23.UTool;
 using GameLogic.Bag;
+using GameLogic.Combat;
 using GameLogic.Combat.CombatTool;
 using GameLogic.Player;
 using UnityEngine;
@@ -20,13 +22,6 @@ public class DialogueManager : Singleton<DialogueManager>
     private Action onCancel;
     private EventConfig eventConfig;
 
-    IDialogueMono dialogue;
-
-    public void CustomInit(IDialogueMono dialogueMono)
-    {
-        dialogue = dialogueMono;
-    }
-
 
     /// <summary>
     /// 开始对话
@@ -45,46 +40,60 @@ public class DialogueManager : Singleton<DialogueManager>
         {
             PlayDialogue(dialogueID);
         }
+
+        // EndDialogue1();
     }
 
     private void PlayDialogue(int dialogueID)
     {
         currentDialogueID = dialogueID;
+        if (!EventSystemManager.Instance.IsEvenkLinkComplete(currentDialogueID))
+        {
+            onCancel?.Invoke();
+            return;
+        }
+
 
         //神识探索的事件记录步骤
         if (EventSystemManager.Instance.CurrentEventList != null)
             EventSystemManager.Instance.CurrentEventList.curStep = currentDialogueID;
 
-        AccountFileInfo.Instance.SavePlayerData();
-
 
         // 找到当前对话组
-        var dialogueConfig = ConfigComponent.Instance.Get<EventConditionConfig>(dialogueID);
+        var dialogueConfig = ConfigComponent.Instance.Get<EventLinkConfig>(dialogueID);
         if (dialogueConfig.ID == 0)
         {
             EndDialogue();
             return;
         }
 
+
+        AccountFileInfo.Instance.SavePlayerData();
+
         //挂机事件 弹出简单气泡对话
         if (eventConfig.EventTriggerType != 2)
         {
-            dialogue.OpenDialoguePanel(dialogueConfig.ID, null, ShowDialogueEventData.MessageShowType.Verbatim,
+            DialoguePanel.OpenDialoguePanel(dialogueConfig.ID, null, ShowDialogueEventData.MessageShowType.Verbatim,
                 FishDialogue);
         }
         else
         {
-            dialogue.OpenDialoguePanel(dialogueConfig.ID, FishDialogue);
+            DialogueBubblePanel.OpenDialoguePanel(dialogueConfig.ID, FishDialogue);
         }
     }
 
     public void FishDialogue(int? selectedOptionID)
     {
-        if (selectedOptionID.HasValue)
+        if (selectedOptionID.HasValue && selectedOptionID.Value != -1)
         {
             // 玩家选择了选项,处理结果
             SelectOption(selectedOptionID.Value);
         }
+        //取消事件
+        else if (selectedOptionID.HasValue && selectedOptionID.Value == -1)
+        {
+            onCancel?.Invoke();
+        }
         else
         {
             // 无选
@@ -105,8 +114,9 @@ public class DialogueManager : Singleton<DialogueManager>
     /// </summary>
     private async void EndDialogue1()
     {
-        EventConditionConfig dialogueConfig = ConfigComponent.Instance.Get<EventConditionConfig>(currentDialogueID);
+        EventLinkConfig dialogueConfig = ConfigComponent.Instance.Get<EventLinkConfig>(currentDialogueID);
         bool isCombatWin = false;
+
         switch (dialogueConfig.optionType)
         {
             //选项在这里不处理 在ui层处理 所有这里不是走到1 直接return
@@ -118,13 +128,13 @@ public class DialogueManager : Singleton<DialogueManager>
             case 2:
                 LogTool.Log("对话结束,进入战斗");
                 //不是一次性事件弹出boss界面
-                if (eventConfig.EventTriggerType !=2)
+                if (eventConfig.EventTriggerType != 2)
                 {
-                    bool relust = await dialogue.OpenBossInfoPanel(dialogueConfig.optionPara1[0]);
+                    bool relust = await BossInfoPanel.OpenPanel(dialogueConfig.optionPara1[0]);
                     if (relust)
                     {
                         CTask cTask = CTask.Create();
-                        dialogue.StartCombat(dialogueConfig.optionPara1[0],
+                        CombatDrive.Instance.LoadLevelBattleCombat(dialogueConfig.optionPara1[0],
                             delegate(bool isWin)
                             {
                                 LogTool.Log("战斗完成" + isWin);
@@ -132,7 +142,7 @@ public class DialogueManager : Singleton<DialogueManager>
                                 cTask.SetResult();
                             });
                         await cTask;
-                        dialogue.ChangeComabtState(CombatController.idle);
+                        CombatDrive.Instance.CombatController.ChangeState(CombatController.idle);
                     }
                     else
                     {
@@ -143,7 +153,7 @@ public class DialogueManager : Singleton<DialogueManager>
                 else
                 {
                     CTask cTask = CTask.Create();
-                    dialogue.StartCombat(dialogueConfig.optionPara1[0],
+                    CombatDrive.Instance.LoadLevelBattleCombat(dialogueConfig.optionPara1[0],
                         delegate(bool isWin)
                         {
                             LogTool.Log("战斗完成" + isWin);
@@ -151,7 +161,7 @@ public class DialogueManager : Singleton<DialogueManager>
                             cTask.SetResult();
                         });
                     await cTask;
-                    dialogue.ChangeComabtState(CombatController.idle);
+                    CombatDrive.Instance.CombatController.ChangeState(CombatController.idle);
                 }
 
 
@@ -174,16 +184,32 @@ public class DialogueManager : Singleton<DialogueManager>
                     }
                 }
 
-                await dialogue.OpenRewardsPanel(eventConfig.ID, itemInfos);
+                await OpenRewardsPanel(eventConfig.ID, itemInfos);
                 LogTool.Log("对话结束,获得奖励");
                 break;
+
+            //任务检测
+            case 4:
+
+                bool isComplete = TaskManager.Instance.IsTaskComplete(dialogueConfig.optionPara1[0]);
+                if (!isComplete)
+                {
+                    return;
+                }
+
+                break;
         }
 
-        //如果有下一个对话id 走下一个id
-        if (dialogueConfig.ResultOptions != null && dialogueConfig.ResultOptions.Length > 0)
+
+        switch (dialogueConfig.ResultType)
         {
-            if (dialogueConfig.optionType == 2)
-            {
+            //直接走下一个id
+            case 1:
+                PlayDialogue(dialogueConfig.ResultOptions[0]);
+                break;
+
+            //根据战斗结果判断走哪一个事件id
+            case 2:
                 if (isCombatWin)
                 {
                     PlayDialogue(dialogueConfig.ResultOptions[0]);
@@ -192,15 +218,18 @@ public class DialogueManager : Singleton<DialogueManager>
                 {
                     PlayDialogue(dialogueConfig.ResultOptions[1]);
                 }
-            }
-            else
-            {
-                PlayDialogue(dialogueConfig.ResultOptions[0]);
-            }
-        }
-        else
-        {
-            EndDialogue();
+
+                break;
+            //触发新的事件 eventConfigId
+            case 3:
+
+
+                EndDialogue();
+                break;
+            //结束事件
+            default:
+                EndDialogue();
+                break;
         }
     }
 
@@ -212,4 +241,22 @@ public class DialogueManager : Singleton<DialogueManager>
     {
         onDialogueComplete?.Invoke();
     }
+
+    public async CTask OpenRewardsPanel(int eventId, List<ItemInfo> rewardsDic, Action onClose = null, int titleId = 0)
+    {
+        EventConfig eventConfig = ConfigComponent.Instance.Get<EventConfig>(eventId);
+        if (eventConfig.EventTriggerType == 2)
+        {
+            Vector3 worldPos = CombatDrive.Instance.CombatController.playerHeroEntity.combatHeroGameObject.hpTransform.position;
+
+            worldPos.y += 0.5f;
+            await ShowItemNumberCom.Open(worldPos, rewardsDic[0]);
+            await TimerComponent.Instance.WaitAsync(100);
+        }
+        else
+        {
+            RewardsPanel rewardsPanel = await RewardsPanel.OpenPanel(rewardsDic, onClose, titleId);
+            await rewardsPanel.UIClosed();
+        }
+    }
 }

+ 0 - 0
Assets/Scripts/GameLogic/EventManager/DialogueManager.cs.meta → Assets/Scripts/GameUI/EventManager/DialogueManager.cs.meta


+ 38 - 0
Assets/Scripts/GameUI/EventManager/EventHelper.cs

@@ -0,0 +1,38 @@
+using System;
+using Core.Language;
+using Excel2Json;
+using Fort23.UTool;
+
+
+public static class EventHelper
+{
+    public static string GetTaskMessage(int eventConfigId)
+    {
+        string result = String.Empty;
+        EventLinkConfig eventCondition = ConfigComponent.Instance.Get<EventLinkConfig>(eventConfigId);
+        switch (eventCondition.ConditionType)
+        {
+            case 1:
+                ItemConfig itemConfig = ConfigComponent.Instance.Get<ItemConfig>(eventCondition.ConditionPara[0]);
+                result = $"需要拥有{LanguageManager.Instance.Text(itemConfig.itemName)}{eventCondition.finishCount}个";
+                break;
+            case 2:
+                break;
+            case 3:
+                HeroPowerUpConfig heroPowerUpConfig = ConfigComponent.Instance.Get<HeroPowerUpConfig>(eventCondition.ConditionPara[0]);
+                string jingjie = LanguageManager.Instance.Text(heroPowerUpConfig.jingjieLanIDs[0]) +
+                                 LanguageManager.Instance.Text(heroPowerUpConfig.jingjieLanIDs[1]) +
+                                 LanguageManager.Instance.Text(heroPowerUpConfig.jingjieLanIDs[2]);
+                result = $"需要达到境界{jingjie}";
+                break;
+
+            case 4:
+
+                TaskConfig taskConfig = ConfigComponent.Instance.Get<TaskConfig>(eventCondition.ConditionPara[0]);
+                result = $"需要完成任务{LanguageManager.Instance.Text(taskConfig.taskName)}";
+                break;
+        }
+
+        return result;
+    }
+}

+ 3 - 0
Assets/Scripts/GameUI/EventManager/EventHelper.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 96f1000574ef433691bdabc75a2cc954
+timeCreated: 1748327966

+ 220 - 42
Assets/Scripts/GameLogic/EventManager/EventSystemManager.cs → Assets/Scripts/GameUI/EventManager/EventSystemManager.cs

@@ -1,10 +1,12 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
+using Common.Utility.CombatEvent;
 using Core.Language;
 using Excel2Json;
 using Fort23.Core;
 using Fort23.UTool;
+using GameLogic.Combat;
 using GameLogic.Combat.CombatTool;
 using UnityEngine;
 using Utility;
@@ -16,7 +18,6 @@ public class EventSystemManager : Singleton<EventSystemManager>
 
     List<AccountFileInfo.EventData> eventDatas = new List<AccountFileInfo.EventData>();
 
-    IDialogueMono dialogueMono;
 
     public AccountFileInfo.EventList CurrentEventList;
 
@@ -30,12 +31,32 @@ public class EventSystemManager : Singleton<EventSystemManager>
 
     Action onCompleteCallback;
 
-    public void CustomInit(IDialogueMono dialogueMono)
+    public void CustomInit()
     {
         eventConfigs = ConfigComponent.Instance.GetAll<EventConfig>().ToList();
         divineSenseConfigs = ConfigComponent.Instance.GetAll<DivineSenseConfig>().ToList();
-        this.dialogueMono = dialogueMono;
+
         StaticUpdater.Instance.AddRenderUpdateCallBack(Update);
+        EventManager.Instance.AddEventListener(CustomEventType.DetectRandomEvent, RenfenceRandomEvent);
+        EventManager.Instance.AddEventListener(CustomEventType.ItemUpdate, ItemUpdate);
+        EventManager.Instance.AddEventListener(CustomEventType.JingJieUpgrade, JingJieUpgrade);
+    }
+
+    private void JingJieUpgrade(IEventData e)
+    {
+        CeekEventCompletes(3, 0);
+    }
+
+    private void ItemUpdate(IEventData e)
+    {
+        ItemUpdateData data = e as ItemUpdateData;
+        CeekEventCompletes(1, data.ItemInfo.itemID);
+        CeekEventCompletes(6, data.ItemInfo.itemID);
+    }
+
+    private void RenfenceRandomEvent(IEventData e)
+    {
+        DetectRandomEvents();
     }
 
     private float timer = 0;
@@ -109,6 +130,19 @@ public class EventSystemManager : Singleton<EventSystemManager>
     }
 
 
+    private bool BagIsEvent(int eventID)
+    {
+        foreach (var eventList in AccountFileInfo.Instance.playerData.eventList)
+        {
+            if (eventList.eventID == eventID)
+            {
+                return true;
+            }
+        }
+
+        return false;
+    }
+
     private List<EventConfig> DetectEvents(int bigMapId, int eventCount)
     {
         BigMap bigMap = ConfigComponent.Instance.Get<BigMap>(bigMapId);
@@ -126,11 +160,11 @@ public class EventSystemManager : Singleton<EventSystemManager>
 
 
             // 获取通用事件
-            List<EventConfig> globalEvents = eventConfigs.Where(e => e.EventTriggerType == 1 && CanTriggerEvent(e.ID) && e.EventQuality == quality).ToList();
+            List<EventConfig> globalEvents = eventConfigs.Where(e => e.EventTriggerType == 1 && CanTriggerEvent(e.ID) && e.EventQuality == quality && !BagIsEvent(e.ID)).ToList();
 
 
             //神识场景事件
-            List<EventConfig> candidateEvents = eventConfigs.Where(e => bigMap.DivineSenseGeneralEvent.Contains(e.ID) && CanTriggerEvent(e.ID) && e.EventQuality == quality).ToList();
+            List<EventConfig> candidateEvents = eventConfigs.Where(e => bigMap.DivineSenseGeneralEvent.Contains(e.ID) && CanTriggerEvent(e.ID) && e.EventQuality == quality && !BagIsEvent(e.ID)).ToList();
 
             if (candidateEvents.Count == 0 && globalEvents.Count == 0)
             {
@@ -200,9 +234,9 @@ public class EventSystemManager : Singleton<EventSystemManager>
             return;
         isTriggerEvent = true;
         LogTool.Log($"触发事件: {evt.Description} (ID: {evt.ID}, 品质: {evt.EventQuality})");
-        dialogueMono.ChangeComabtState(CombatController.idle);
+        CombatDrive.Instance.CombatController.ChangeState(CombatController.idle);
 
-        DialogueManager.Instance.StartDialogue(evt.EventBeginId, evt.ID, () => { CompleteEvent(evt.ID); });
+        DialogueManager.Instance.StartDialogue(evt.EventLinksId[0], evt.ID, () => { CompleteEvent(evt.ID); });
     }
 
     /// <summary>
@@ -221,15 +255,36 @@ public class EventSystemManager : Singleton<EventSystemManager>
         int dialogueID = 0;
         if (evt.curStep == 0)
         {
-            dialogueID = eventConfig.EventBeginId;
+            dialogueID = eventConfig.EventLinksId[0];
+
+            foreach (var i in eventConfig.EventLinksId)
+            {
+                AccountFileInfo.EventLinkData eventLinkData = AccountFileInfo.Instance.playerData.eventLinkDatas.FirstOrDefault(el => el.eventLinkId == i);
+
+                if (eventLinkData == null)
+                {
+                    eventLinkData = new AccountFileInfo.EventLinkData();
+                    eventLinkData.eventId = evt.eventID;
+                    eventLinkData.eventLinkId = i;
+                    AccountFileInfo.Instance.playerData.eventLinkDatas.Add(eventLinkData);
+                }
+
+                eventLinkData.fishCount = 0;
+                EventSystemManager.Instance.CeekTaskComplete(eventLinkData.eventLinkId, 1, 0);
+                EventSystemManager.Instance.CeekTaskComplete(eventLinkData.eventLinkId, 3, 0);
+            }
+
+
+            AccountFileInfo.Instance.SavePlayerData();
         }
         else
         {
             dialogueID = evt.curStep;
         }
 
+
         CurrentEventList = evt;
-        dialogueMono.ChangeComabtState(CombatController.idle);
+        CombatDrive.Instance.CombatController.ChangeState(CombatController.idle);
         DialogueManager.Instance.StartDialogue(dialogueID, eventConfig.ID, () =>
         {
             CompleteEvent(CurrentEventList);
@@ -242,6 +297,108 @@ public class EventSystemManager : Singleton<EventSystemManager>
         await cTask;
     }
 
+
+    //任务是否完成
+    public bool IsEvenkLinkComplete(int eventLinkId)
+    {
+        EventLinkConfig eventLinkConfig = ConfigComponent.Instance.Get<EventLinkConfig>(eventLinkId);
+        if (eventLinkConfig.ConditionType == 0)
+            return true;
+
+        AccountFileInfo.EventLinkData eventLinkData = AccountFileInfo.Instance.playerData.eventLinkDatas.FirstOrDefault(el => el.eventLinkId == eventLinkId);
+
+        if (eventLinkData != null)
+        {
+            return eventLinkData.fishCount >= eventLinkConfig.finishCount;
+        }
+
+        return false;
+    }
+
+    public void CeekEventCompletes(int type, int value)
+    {
+        foreach (var playerDataEventLinkData in AccountFileInfo.Instance.playerData.eventLinkDatas)
+        {
+            CeekTaskComplete(playerDataEventLinkData.eventLinkId, type, value);
+        }
+    }
+
+    public void CeekTaskComplete(int eventLiknId, int type, int value)
+    {
+        //任务完成了跳过检测
+        if (IsEvenkLinkComplete(eventLiknId))
+            return;
+        AccountFileInfo.EventLinkData eventLinkData = AccountFileInfo.Instance.playerData.eventLinkDatas.FirstOrDefault(el => el.eventLinkId == eventLiknId);
+
+        EventLinkConfig eventLinkConfig = ConfigComponent.Instance.Get<EventLinkConfig>(eventLiknId);
+        switch (type)
+        {
+            //检测背包道具
+            case 1:
+                if (eventLinkConfig.ConditionType == 1)
+                {
+                    eventLinkData.fishCount += (int)PlayerManager.Instance.BagController.GetItemCount(eventLinkConfig.ConditionPara[0]);
+
+                    if (IsEvenkLinkComplete(eventLiknId))
+                    {
+                        CompleteTask(eventLiknId);
+                    }
+                }
+
+                break;
+
+            //境界检测
+            case 3:
+                if (eventLinkConfig.ConditionType == 3 && PlayerManager.Instance.myHero.powerUpConfig.ID >= eventLinkConfig.ConditionPara[0])
+                {
+                    eventLinkData.fishCount++;
+
+                    if (IsEvenkLinkComplete(eventLiknId))
+                    {
+                        CompleteTask(eventLiknId);
+                    }
+                }
+
+                break;
+
+            //战斗胜利
+            case 5:
+                if (eventLinkConfig.ConditionType == 5 && eventLinkConfig.ConditionPara[0] == value)
+                {
+                    eventLinkData.fishCount++;
+
+                    if (IsEvenkLinkComplete(eventLiknId))
+                    {
+                        CompleteEvent(eventLiknId);
+                    }
+                }
+
+                break;
+
+            //获得道具
+            case 6:
+                if (eventLinkConfig.ConditionType == 5 && eventLinkConfig.ConditionPara[0] == value)
+                {
+                    eventLinkData.fishCount++;
+
+                    if (IsEvenkLinkComplete(eventLiknId))
+                    {
+                        CompleteEvent(eventLinkData);
+                    }
+                }
+
+                break;
+        }
+
+
+        AccountFileInfo.Instance.SavePlayerData();
+    }
+
+    private void CompleteTask(object taskID)
+    {
+    }
+
+
     /// <summary>
     /// 检查事件是否满足触发条件。
     /// </summary>
@@ -254,7 +411,7 @@ public class EventSystemManager : Singleton<EventSystemManager>
 
         for (var i = 0; i < evt.EventConditionId?.Length; i++)
         {
-            if (!CheckCondition(evt.EventConditionId[i], evt.EventVlaue[i]))
+            if (!CheckCondition(evt.EventConditionId[i], evt.EventVlaue))
                 return false;
         }
 
@@ -264,51 +421,50 @@ public class EventSystemManager : Singleton<EventSystemManager>
     /// <summary>
     /// 检查单个触发条件。
     /// </summary>
-    private bool CheckCondition(int conditionid, int EventVlaue)
+    public bool CheckCondition(int conditionid, int[] EventVlaue)
     {
-        //>=
-        if (EventVlaue == 1)
+        if (conditionid == 0)
+            return true;
+
+
+        //道具id判断
+        if (conditionid == 1)
         {
+            return PlayerManager.Instance.BagController.IsEnough(EventVlaue[0], EventVlaue[1]);
         }
-        //=
-        else if (EventVlaue == 2)
+        else if (conditionid == 3)
         {
+            return PlayerManager.Instance.myHero.powerUpConfig.ID >= EventVlaue[0];
         }
-        // <=
-        else if (EventVlaue == 3)
+        else if (conditionid == 4)
         {
+            return TaskManager.Instance.IsTaskComplete(EventVlaue[0]);
         }
 
 
-        return true;
+        return false;
     }
 
     /// <summary>
     /// 完成事件
     /// </summary>
     /// <param name="eventID">事件ID</param>
-    public void CompleteEvent(int eventID)
+    public void CompleteEvent(int evtId)
     {
         isTriggerEvent = false;
-        LogTool.Log($"完成事件{eventID}");
-        AccountFileInfo.EventData eventData = AccountFileInfo.Instance.playerData.events.FirstOrDefault((e) => e.eventID == eventID);
-        if (eventData == null)
-        {
-            eventData = new AccountFileInfo.EventData();
-            eventData.eventID = eventID;
-        }
+        LogTool.Log($"完成挂机事件{evtId}");
 
-        eventData.completeCount++;
-        AccountFileInfo.Instance.playerData.events.Add(eventData);
+
+        AccountFileInfo.EventList eventList = new AccountFileInfo.EventList();
+        eventList.eventID = evtId;
+        AccountFileInfo.Instance.playerData.completeEvents.Add(eventList);
 
         if (AccountFileInfo.Instance.playerData.senceExplorationProgress < 100)
-            AccountFileInfo.Instance.playerData.senceExplorationProgress += 5;
+            AccountFileInfo.Instance.playerData.senceExplorationProgress += 1;
 
 
         AccountFileInfo.Instance.SavePlayerData();
-        dialogueMono.ChangeComabtState(CombatController.update);
-
-        // EventManager.Instance.Dispatch(CustomEventType.CompleteEvent, null);
+        CombatDrive.Instance.CombatController.ChangeState(CombatController.update);
     }
 
     /// <summary>
@@ -319,15 +475,8 @@ public class EventSystemManager : Singleton<EventSystemManager>
     {
         this.isTriggerEvent = isTriggerEvent;
         LogTool.Log($"完成事件{eventList.eventID}");
-        AccountFileInfo.EventData eventData = AccountFileInfo.Instance.playerData.events.FirstOrDefault((e) => e.eventID == eventList.eventID);
-        if (eventData == null)
-        {
-            eventData = new AccountFileInfo.EventData();
-            eventData.eventID = eventList.eventID;
-        }
 
-        eventData.completeCount++;
-        AccountFileInfo.Instance.playerData.events.Add(eventData);
+        AccountFileInfo.Instance.playerData.completeEvents.Add(eventList);
 
         if (AccountFileInfo.Instance.playerData.senceExplorationProgress < 100)
             AccountFileInfo.Instance.playerData.senceExplorationProgress += 1;
@@ -337,11 +486,40 @@ public class EventSystemManager : Singleton<EventSystemManager>
         AccountFileInfo.Instance.SavePlayerData();
 
         EventManager.Instance.Dispatch(CustomEventType.CompleteEvent, null);
-        dialogueMono.ChangeComabtState(CombatController.update);
+        CombatDrive.Instance.CombatController.ChangeState(CombatController.update);
         onCompleteCallback?.Invoke();
         onCompleteCallback = null;
     }
 
+    /// <summary>
+    /// 完成事件
+    /// </summary>
+    /// <param name="eventID">事件ID</param>
+    public void CompleteEvent(AccountFileInfo.EventLinkData eventLinkData)
+    {
+        AccountFileInfo.EventList eventList = new AccountFileInfo.EventList();
+        eventList.eventID = eventLinkData.eventId;
+        AccountFileInfo.Instance.playerData.completeEvents.Add(eventList);
+
+        if (AccountFileInfo.Instance.playerData.senceExplorationProgress < 100)
+            AccountFileInfo.Instance.playerData.senceExplorationProgress += 1;
+
+
+        AccountFileInfo.Instance.playerData.eventList.Remove(eventList);
+
+        EventLinkConfig eventLinkConfig = ConfigComponent.Instance.Get<EventLinkConfig>(eventLinkData.eventLinkId);
+        if (eventLinkConfig.ResultType == 3)
+        {
+            //触发新事件
+            //弹出任务完成ui
+        }
+
+        AccountFileInfo.Instance.SavePlayerData();
+
+        EventManager.Instance.Dispatch(CustomEventType.CompleteEvent, null);
+        CombatDrive.Instance.CombatController.ChangeState(CombatController.update);
+    }
+
     /// <summary>
     /// 取消事件
     /// </summary>
@@ -351,7 +529,7 @@ public class EventSystemManager : Singleton<EventSystemManager>
         LogTool.Log($"取消事件{eventList.eventID}");
         isTriggerEvent = false;
         EventManager.Instance.Dispatch(CustomEventType.CompleteEvent, null);
-        dialogueMono.ChangeComabtState(CombatController.update);
+        CombatDrive.Instance.CombatController.ChangeState(CombatController.update);
         onCompleteCallback?.Invoke();
         onCompleteCallback = null;
     }

+ 0 - 0
Assets/Scripts/GameLogic/EventManager/EventSystemManager.cs.meta → Assets/Scripts/GameUI/EventManager/EventSystemManager.cs.meta


+ 2 - 4
Assets/Scripts/GameUI/GameApplction.cs

@@ -115,10 +115,8 @@ public class GameApplction : IGameStart
         //     LogTool.Error("登陆失败");
         //     return;
         // }
-       
-        DialogueMono dialogueMono = new DialogueMono();
-        DialogueManager.Instance.CustomInit(dialogueMono);
-        EventSystemManager.Instance.CustomInit(dialogueMono);
+        
+        EventSystemManager.Instance.CustomInit();
         PlayerManager.Instance.Init();
         // SkillConfig[] skillConfigs= ConfigComponent.Instance.GetAll<SkillConfig>();
         // for (int i = 0; i < skillConfigs.Length; i++)

+ 85 - 76
Assets/Scripts/GameUI/TaskManager.cs

@@ -36,13 +36,14 @@ public class TaskManager : Singleton<TaskManager>
 
     private void JingJieUpgrade(IEventData e)
     {
-        OnJingJieUp();
+        CeekTaskComplete(4, 0);
     }
 
     private void ItemUpdate(IEventData e)
     {
         ItemUpdateData data = e as ItemUpdateData;
-        OnItemCollected(data.ItemInfo.itemID);
+        CeekTaskComplete(1, data.ItemInfo.itemID);
+        CeekTaskComplete(5, data.ItemInfo.itemID);
     }
 
 
@@ -57,6 +58,9 @@ public class TaskManager : Singleton<TaskManager>
             AccountFileInfo.Instance.playerData.tasks.Clear();
             AccountFileInfo.Instance.playerData.tasks.AddRange(allTsk.Values);
             AccountFileInfo.Instance.SavePlayerData();
+            EventManager.Instance.Dispatch(CustomEventType.TaskUpdate, null);
+
+            CeekTaskComplete(4, 0);
         }
     }
 
@@ -73,11 +77,11 @@ public class TaskManager : Singleton<TaskManager>
                 {
                     return;
                 }
-                
+
                 //触发对话
                 DialoguePanel.OpenDialoguePanel(taskConfig.finishVlaue, null, ShowDialogueEventData.MessageShowType.Verbatim, (int? s) =>
                 {
-                    OnDialog(taskConfig.ID);
+                    CeekTaskComplete(3, taskConfig.ID);
                     EventSystemManager.Instance.isOpenUi = false;
                 });
             }
@@ -87,12 +91,12 @@ public class TaskManager : Singleton<TaskManager>
                 {
                     return;
                 }
-                
+
                 CombatDrive.Instance.LoadLevelBattleCombat(taskConfig.finishVlaue[0], (iswin) =>
                 {
                     if (iswin)
                     {
-                        OnMonsterKilled(taskConfig.finishVlaue[0]);
+                        CeekTaskComplete(2, taskConfig.finishVlaue[0]);
                         CombatDrive.Instance.CombatController.ChangeState(CombatController.update);
                         EventSystemManager.Instance.isOpenUi = false;
                     }
@@ -104,106 +108,110 @@ public class TaskManager : Singleton<TaskManager>
             else
             {
                 EventSystemManager.Instance.isOpenUi = false;
-                TaskInfoPanel.OpenPanel(taskId);
+                TaskInfoPanel.OpenPanel(taskId, "任务信息");
             }
         }
     }
 
-    public void OnDialog(int taskId)
+
+    public void CeekTaskComplete(int type, int value)
     {
         List<AccountFileInfo.TaskData> tasks = allTsk.Values.ToList();
         foreach (var taskData in tasks)
         {
+            //任务完成了跳过检测
+            if (IsTaskComplete(taskData.taskID))
+                continue;
             TaskConfig taskConfig = ConfigComponent.Instance.Get<TaskConfig>(taskData.taskID);
-            if (!IsTaskComplete(taskData.taskID) && taskConfig.finishConditionType == 3 && taskConfig.ID == taskId)
+            switch (type)
             {
-                taskData.fishCount++;
-
-                if (IsTaskComplete(taskData.taskID))
-                {
-                    CompleteTask(taskData.taskID);
-                }
+                //获得道具
+                case 1:
+                    if (taskConfig.finishConditionType == 1 && taskConfig.finishVlaue[0] == value)
+                    {
+                        taskData.fishCount++;
 
-                AccountFileInfo.Instance.SavePlayerData();
-                EventManager.Instance.Dispatch(CustomEventType.TaskUpdate, null);
-            }
-        }
-    }
+                        if (IsTaskComplete(taskData.taskID))
+                        {
+                            CompleteTask(taskData.taskID);
+                        }
+                    }
 
-    // 击杀怪物
-    public void OnMonsterKilled(int leveBattleId)
-    {
-        List<AccountFileInfo.TaskData> tasks = allTsk.Values.ToList();
-        foreach (var taskData in tasks)
-        {
-            TaskConfig taskConfig = ConfigComponent.Instance.Get<TaskConfig>(taskData.taskID);
-            if (!IsTaskComplete(taskData.taskID) && taskConfig.finishConditionType == 2 && taskConfig.finishVlaue[0] == leveBattleId)
-            {
-                taskData.fishCount++;
+                    break;
+                //战斗胜利
+                case 2:
+                    if (taskConfig.finishConditionType == 2 && taskConfig.finishVlaue[0] == value)
+                    {
+                        taskData.fishCount++;
 
-                if (IsTaskComplete(taskData.taskID))
-                {
-                    CompleteTask(taskData.taskID);
-                }
+                        if (IsTaskComplete(taskData.taskID))
+                        {
+                            CompleteTask(taskData.taskID);
+                        }
+                    }
 
-                AccountFileInfo.Instance.SavePlayerData();
-                EventManager.Instance.Dispatch(CustomEventType.TaskUpdate, null);
-            }
-        }
-    }
+                    break;
+                //对话 
+                case 3:
+                    if (taskConfig.finishConditionType == 3 && taskConfig.ID == value)
+                    {
+                        taskData.fishCount++;
 
-    public void OnJingJieUp()
-    {
-        List<AccountFileInfo.TaskData> tasks = allTsk.Values.ToList();
-        foreach (var taskData in tasks)
-        {
-            TaskConfig taskConfig = ConfigComponent.Instance.Get<TaskConfig>(taskData.taskID);
-            if (!IsTaskComplete(taskData.taskID) && taskConfig.finishConditionType == 4 && PlayerManager.Instance.myHero.powerUpConfig.ID >= taskConfig.finishVlaue[0])
-            {
-                taskData.fishCount++;
+                        if (IsTaskComplete(taskData.taskID))
+                        {
+                            CompleteTask(taskData.taskID);
+                        }
+                    }
 
-                if (IsTaskComplete(taskData.taskID))
-                {
-                    CompleteTask(taskData.taskID);
-                }
+                    break;
+                //境界检测
+                case 4:
+                    if (taskConfig.finishConditionType == 4 && PlayerManager.Instance.myHero.powerUpConfig.ID >= taskConfig.finishVlaue[0])
+                    {
+                        taskData.fishCount++;
 
-                AccountFileInfo.Instance.SavePlayerData();
-                EventManager.Instance.Dispatch(CustomEventType.TaskUpdate, null);
-            }
-        }
-    }
+                        if (IsTaskComplete(taskData.taskID))
+                        {
+                            CompleteTask(taskData.taskID);
+                        }
+                    }
 
-    // 收集道具
-    public void OnItemCollected(int itemID)
-    {
-        List<AccountFileInfo.TaskData> tasks = allTsk.Values.ToList();
-        foreach (var taskData in tasks)
-        {
-            TaskConfig taskConfig = ConfigComponent.Instance.Get<TaskConfig>(taskData.taskID);
-            if (!IsTaskComplete(taskData.taskID) && taskConfig.finishConditionType == 1 && taskConfig.finishVlaue[0] == itemID)
-            {
-                taskData.fishCount++;
+                    break;
+                //检测背包道具
+                case 5:
+                    if (taskConfig.finishConditionType == 5)
+                    {
+                        taskData.fishCount += (int)PlayerManager.Instance.BagController.GetItemCount(taskConfig.finishVlaue[0]);
 
-                if (IsTaskComplete(taskData.taskID))
-                {
-                    CompleteTask(taskData.taskID);
-                }
+                        if (IsTaskComplete(taskData.taskID))
+                        {
+                            CompleteTask(taskData.taskID);
+                        }
+                    }
 
-                AccountFileInfo.Instance.SavePlayerData();
-                EventManager.Instance.Dispatch(CustomEventType.TaskUpdate, null);
+                    break;
             }
         }
+
+
+        AccountFileInfo.Instance.SavePlayerData();
     }
 
     // 完成任务
-    private void CompleteTask(int taskID)
+    private async void CompleteTask(int taskID)
     {
         TaskConfig taskConfig = ConfigComponent.Instance.Get<TaskConfig>(taskID);
-      
+
 
         List<ItemInfo> awardList = GrantReward(taskID);
         //可能需要处理弹出任务完成ui
-        
+        if (awardList != null)
+        {
+            TaskInfoPanel taskInfoPanel = await TaskInfoPanel.OpenPanel(taskID, "任务完成");
+            // await taskInfoPanel.UIClosed();
+        }
+
+
         // 触发下一个任务(主线)
         if (taskConfig.nextTaskID != 0)
         {
@@ -233,6 +241,7 @@ public class TaskManager : Singleton<TaskManager>
                     itemInfos.AddRange(items);
                 }
             }
+
             return itemInfos;
         }
 

+ 2 - 2
Assets/Scripts/GameUI/UI/AppBarPanel/AppBarPanel.cs

@@ -146,8 +146,8 @@ namespace Fort23.Mono
 
 
             CombatDrive.Instance.CombatController.ChangeState(CombatController.update);
-            // AccountFileInfo.Instance.playerData.eventList.AddRange(eventLists);
-            // AccountFileInfo.Instance.SavePlayerData();
+            AccountFileInfo.Instance.playerData.eventList.AddRange(eventLists);
+            AccountFileInfo.Instance.SavePlayerData();
             EventManager.Instance.Dispatch(CustomEventType.ShengShiOnClick, null);
         }
 

+ 1 - 1
Assets/Scripts/GameUI/UI/CombatPanel/ShengShiEventWidget.cs

@@ -43,7 +43,7 @@ namespace Fort23.Mono
             randomEventConfig = ConfigComponent.Instance.Get<EventConfig>(eventList.eventID);
             Text_Name.text = LanguageManager.Instance.Text(randomEventConfig.Description);
 
-            EventConditionConfig conditionConfig = ConfigComponent.Instance.Get<EventConditionConfig>(randomEventConfig.EventBeginId);
+            EventLinkConfig conditionConfig = ConfigComponent.Instance.Get<EventLinkConfig>(randomEventConfig.EventLinksId[0]);
             string desc = LanguageManager.Instance.Text(conditionConfig.LanID[0]);
             if (desc.Length > 8)
             {

+ 2 - 2
Assets/Scripts/GameUI/UI/DialoguePanel/DialogueBubblePanel.cs

@@ -25,7 +25,7 @@ namespace Fort23.Mono
         private bool _isUpdate;
         private bool _isShowNextButton;
 
-        private EventConditionConfig eventConditionConfig;
+        private EventLinkConfig eventConditionConfig;
         private bool _skipTyping;
         private bool _isShowingOptions;
 
@@ -87,7 +87,7 @@ namespace Fort23.Mono
         public void ShowPanel(int id,
             Action<int?> finish)
         {
-            eventConditionConfig = ConfigComponent.Instance.Get<EventConditionConfig>(id);
+            eventConditionConfig = ConfigComponent.Instance.Get<EventLinkConfig>(id);
 
             this.dialogueMessaga = eventConditionConfig.LanID;
             this.finish = finish;

+ 28 - 6
Assets/Scripts/GameUI/UI/DialoguePanel/DialogueOptionWidget.cs

@@ -11,8 +11,9 @@ namespace Fort23.Mono
     [UIBinding(prefab = "DialogueOptionWidget")]
     public partial class DialogueOptionWidget : UIComponent
     {
-        public EventConditionConfig eventConditionConfig;
+        public EventLinkConfig eventConditionConfig;
         private Action<DialogueOptionWidget> callback;
+        public int type;
 
         private void Init()
         {
@@ -34,14 +35,35 @@ namespace Fort23.Mono
 
         public void CustomInit(int id, int mainOpid, Action<DialogueOptionWidget> callback)
         {
-            eventConditionConfig = ConfigComponent.Instance.Get<EventConditionConfig>(id);
-            var mainEventConditionConfig = ConfigComponent.Instance.Get<EventConditionConfig>(mainOpid);
+            type = 1;
+            eventConditionConfig = ConfigComponent.Instance.Get<EventLinkConfig>(id);
+            var mainEventConditionConfig = ConfigComponent.Instance.Get<EventLinkConfig>(mainOpid);
             int index = mainEventConditionConfig.optionPara1.ToList().IndexOf(eventConditionConfig.ID);
             Text_desc.text = LanguageManager.Instance.Text(mainEventConditionConfig.optionPara2[index]);
             this.callback = callback;
-           
-             LayoutRebuilder.ForceRebuildLayoutImmediate(Text_desc.GetComponent<RectTransform>());
-             LayoutRebuilder.ForceRebuildLayoutImmediate(transform);
+
+            if (!EventSystemManager.Instance.IsEvenkLinkComplete(eventConditionConfig.ID))
+            {
+                transform.Gray();
+            }
+            else
+            {
+                transform.RecoverColor();
+            }
+
+            LayoutRebuilder.ForceRebuildLayoutImmediate(Text_desc.GetComponent<RectTransform>());
+            LayoutRebuilder.ForceRebuildLayoutImmediate(transform);
+        }
+
+        public void CustomInit(Action<DialogueOptionWidget> callback)
+        {
+            type = 2;
+
+            Text_desc.text = "取消事件";
+            this.callback = callback;
+            transform.RecoverColor();
+            LayoutRebuilder.ForceRebuildLayoutImmediate(Text_desc.GetComponent<RectTransform>());
+            LayoutRebuilder.ForceRebuildLayoutImmediate(transform);
         }
     }
 }

+ 63 - 12
Assets/Scripts/GameUI/UI/DialoguePanel/DialoguePanel.cs

@@ -25,7 +25,7 @@ namespace Fort23.Mono
         private bool _isUpdate;
         private bool _isShowNextButton;
         private string[] showIconName;
-        private EventConditionConfig eventConditionConfig;
+        private EventLinkConfig eventConditionConfig;
         private bool _skipTyping;
         private bool _isShowingOptions;
 
@@ -82,7 +82,12 @@ namespace Fort23.Mono
                 if (index >= dialogueMessaga.Length)
                 {
                     // 所有句子显示完成,检查是否有选项
-                    if (eventConditionConfig.optionType == 1 && !_isShowingOptions)
+                    // if (eventConditionConfig.optionType == 1 && !_isShowingOptions)
+                    // {
+                    //     ShowOptions();
+                    // }
+
+                    if (eventConditionConfig.ID != 0  && !_isShowingOptions)
                     {
                         ShowOptions();
                     }
@@ -99,8 +104,10 @@ namespace Fort23.Mono
 
         private void NextShow()
         {
-            if (_isShowingOptions)
+            if (eventConditionConfig.optionType == 1 && _isShowingOptions)
                 return;
+            // if (_isShowingOptions)
+            //     return;
             if (_isUpdate)
             {
                 SkipTyping();
@@ -115,7 +122,7 @@ namespace Fort23.Mono
             ShowDialogueEventData.MessageShowType messageShowType,
             Action<int?> finish)
         {
-            eventConditionConfig = ConfigComponent.Instance.Get<EventConditionConfig>(id);
+            eventConditionConfig = ConfigComponent.Instance.Get<EventLinkConfig>(id);
             showIconName = icon;
             this.dialogueMessaga = eventConditionConfig.LanID;
             this.messageShowType = messageShowType;
@@ -143,13 +150,28 @@ namespace Fort23.Mono
         {
             if (index >= dialogueMessaga.Length)
             {
+                if (eventConditionConfig.ID != 0  && !_isShowingOptions)
+                {
+                    ShowOptions();
+                }
+
                 // 所有句子显示完成,检查是否有选项
                 if (eventConditionConfig.ID != 0 && eventConditionConfig.optionType == 1 && !_isShowingOptions)
                 {
-                    ShowOptions();
+                    // ShowOptions();
                 }
                 else
                 {
+                    if (eventConditionConfig.ID != 0 && eventConditionConfig.ConditionType != 0)
+                    {
+                        if (!EventSystemManager.Instance.IsEvenkLinkComplete(eventConditionConfig.ID))
+                        {
+                            TipMessagePanel.OpenTipMessagePanel(EventHelper.GetTaskMessage(eventConditionConfig.ID));
+                            return;
+                        }
+                    }
+
+
                     // 无选项,关闭面板,返回 null
                     UIManager.Instance.HideUIUIPanel(this);
                     finish?.Invoke(null);
@@ -193,21 +215,41 @@ namespace Fort23.Mono
             UIManager.Instance.DormancyAllGComponent<DialogueOptionWidget>();
             _isShowingOptions = true;
 
-            foreach (var op in eventConditionConfig.optionPara1)
+            if (eventConditionConfig.optionType == 1 && eventConditionConfig.optionPara1 != null)
             {
-                // EventConditionConfig eventConditionConfig = ConfigComponent.Instance.Get<EventConditionConfig>(op);
+                foreach (var op in eventConditionConfig.optionPara1)
+                {
+                    // EventConditionConfig eventConditionConfig = ConfigComponent.Instance.Get<EventConditionConfig>(op);
 
-                DialogueOptionWidget dialogueOptionWidget =
-                    await UIManager.Instance.CreateGComponent<DialogueOptionWidget>(null, OptionRoot);
-                dialogueOptionWidget.CustomInit(op, eventConditionConfig.ID, SelectOption);
+                    DialogueOptionWidget dialogueOptionWidget =
+                        await UIManager.Instance.CreateGComponent<DialogueOptionWidget>(null, OptionRoot);
+                    dialogueOptionWidget.CustomInit(op, eventConditionConfig.ID, SelectOption);
+                }
             }
 
+
+            DialogueOptionWidget dialogueOptionWidget1 =
+                await UIManager.Instance.CreateGComponent<DialogueOptionWidget>(null, OptionRoot);
+            dialogueOptionWidget1.CustomInit((DialogueOptionWidget obj) =>
+            {
+                UIManager.Instance.HideUIUIPanel(this);
+                finish?.Invoke(-1);
+            });
+
             LayoutRebuilder.ForceRebuildLayoutImmediate(Dialgue);
         }
 
         private void SelectOption(DialogueOptionWidget obj)
         {
             int selectedOptionID = obj.eventConditionConfig.ID;
+            if (obj.eventConditionConfig.ID != 0 && obj.eventConditionConfig.ConditionType != 0)
+            {
+                if (!EventSystemManager.Instance.IsEvenkLinkComplete(selectedOptionID))
+                {
+                    TipMessagePanel.OpenTipMessagePanel(EventHelper.GetTaskMessage(selectedOptionID));
+                    return;
+                }
+            }
 
             UIManager.Instance.HideUIUIPanel(this);
             finish?.Invoke(selectedOptionID);
@@ -240,8 +282,13 @@ namespace Fort23.Mono
                     ShowNextIcon();
                     if (index >= dialogueMessaga.Length)
                     {
-                        // 所有句子显示完成,检查是否有选项
-                        if (eventConditionConfig.optionType == 1 && !_isShowingOptions)
+                        // // 所有句子显示完成,检查是否有选项
+                        // if (eventConditionConfig.optionType == 1 && !_isShowingOptions)
+                        // {
+                        //     ShowOptions();
+                        // }
+
+                        if (eventConditionConfig.ID != 0  && !_isShowingOptions)
                         {
                             ShowOptions();
                         }
@@ -268,6 +315,10 @@ namespace Fort23.Mono
             UIManager.Instance.DormancyAllGComponent<DialogueOptionWidget>();
             _isShowingOptions = false;
             _skipTyping = false;
+            index = 0;
+            eventConditionConfig = default;
+            _currShowMessage = null;
+            dialogueMessaga = null; 
             base.Close();
         }
     }

+ 1 - 1
Assets/Scripts/GameUI/UI/DivineSence/ShengShiEventWidgetType2.cs

@@ -39,7 +39,7 @@ namespace Fort23.Mono
 			this.eventList = eventList;
 			randomEventConfig = ConfigComponent.Instance.Get<EventConfig>(eventList.eventID);
 			Text_EventName.text = LanguageManager.Instance.Text(randomEventConfig.Description);
-			EventConditionConfig conditionConfig = ConfigComponent.Instance.Get<EventConditionConfig>(randomEventConfig.EventBeginId);
+			EventLinkConfig conditionConfig = ConfigComponent.Instance.Get<EventLinkConfig>(randomEventConfig.EventLinksId[0]);
 			Text_EventDesc.text = LanguageManager.Instance.Text(conditionConfig.LanID[0]);
 
 		}

+ 1 - 1
Assets/Scripts/GameUI/UI/DivineSence/ShengShiEventWidgetType3.cs

@@ -49,7 +49,7 @@ namespace Fort23.Mono
             this.eventList = eventList;
             randomEventConfig = ConfigComponent.Instance.Get<EventConfig>(eventList.eventID);
             Text_EventName.text = LanguageManager.Instance.Text(randomEventConfig.Description);
-            EventConditionConfig conditionConfig = ConfigComponent.Instance.Get<EventConditionConfig>(randomEventConfig.EventBeginId);
+            EventLinkConfig conditionConfig = ConfigComponent.Instance.Get<EventLinkConfig>(randomEventConfig.EventLinksId[0]);
             Text_EventDesc.text = LanguageManager.Instance.Text(conditionConfig.LanID[0]);
 
             if (conditionConfig.optionType == 3)

+ 2 - 2
Assets/Scripts/GameUI/UI/MainPanel/MainPanel.cs

@@ -97,7 +97,7 @@ namespace Fort23.Mono
                 AccountFileInfo.TaskData taskData = TaskManager.Instance.GetMainTaskData();
                 if (taskData != null)
                 {
-                    TaskInfoPanel.OpenPanel(taskData.taskID);
+                    TaskInfoPanel.OpenPanel(taskData.taskID,"任务信息");
                 }
             });
         }
@@ -151,7 +151,7 @@ namespace Fort23.Mono
             {
                 Btn_Task.gameObject.SetActive(true);
                 TaskConfig taskConfig = ConfigComponent.Instance.Get<TaskConfig>(taskData.taskID);
-                Text_TaskName.text = LanguageManager.Instance.Text(taskConfig.taskName);
+                Text_TaskName.text = $"第{taskConfig.mapID}章:" + LanguageManager.Instance.Text(taskConfig.taskName);
                 if (taskConfig.finishConditionType == 1 || taskConfig.finishConditionType == 2)
                 {
                     Text_TaskMassge.text = LanguageManager.Instance.Text(taskConfig.conciseTaskMessage, taskData.fishCount, taskConfig.finishCount);

+ 48 - 4
Assets/Scripts/GameUI/UI/Task/TaskInfoPanel.cs

@@ -1,13 +1,18 @@
+using System.Collections.Generic;
 using Core.Language;
 using Excel2Json;
 using Fort23.Core;
 using Fort23.UTool;
+using GameLogic.Bag;
+using GameLogic.Player;
 
 namespace Fort23.Mono
 {
     [UIBinding(prefab = "TaskInfoPanel")]
     public partial class TaskInfoPanel : UIPanel
     {
+        List<WidgetItem> widgetItems = new List<WidgetItem>();
+
         private void Init()
         {
             isAddStack = false;
@@ -26,17 +31,56 @@ namespace Fort23.Mono
             Btn_Close.onClick.AddListener(() => { UIManager.Instance.HideUIUIPanel(this); });
         }
 
-        public void CustomInit(int taskId)
+        public async void CustomInit(int taskId, string title)
         {
             TaskConfig taskConfig = ConfigComponent.Instance.Get<TaskConfig>(taskId);
+            Text_Title.text = title;
             Text_Name.text = LanguageManager.Instance.Text(taskConfig.taskName);
             Text_desc.text = LanguageManager.Instance.Text(taskConfig.Description);
+            if (taskConfig.awardItemId != null)
+            {
+                List<ItemInfo> itemInfos = new List<ItemInfo>();
+                for (var i = 0; i < taskConfig.awardItemId.Length; i++)
+                {
+                    DropConfig dropConfig = ConfigComponent.Instance.Get<DropConfig>(taskConfig.awardItemId[i]);
+                    if (dropConfig.dropType == 3)
+                    {
+                        ItemInfo itemInfo = new ItemInfo(dropConfig.dropGroupID[0], taskConfig.awardItemCount[i]);
+                        itemInfos.Add(itemInfo);
+                    }
+                    else
+                    {
+                        List<ItemInfo> items = DropManager.Instance.DropItem(taskConfig.awardItemCount[i]);
+                        itemInfos.AddRange(items);
+                    }
+                }
+
+                foreach (var itemInfo in itemInfos)
+                {
+                    WidgetItem widgetItem = await UIManager.Instance.CreateGComponent<WidgetItem>(null, root: ItemRoot);
+                    widgetItem.InitWidget(itemInfo);
+                    widgetItems.Add(widgetItem);
+                }
+            }
         }
 
-        public async static CTask OpenPanel(int taskId)
+        public async static CTask<TaskInfoPanel> OpenPanel(int taskId,string title)
         {
-            TaskInfoPanel taskInfoPanel = await UIManager.Instance.LoadAndOpenPanel<TaskInfoPanel>(null);
-            taskInfoPanel.CustomInit(taskId);
+            TaskInfoPanel taskInfoPanel = await UIManager.Instance.LoadAndOpenPanel<TaskInfoPanel>(null,UILayer.Top);
+            taskInfoPanel.CustomInit(taskId, title);
+            return taskInfoPanel;
+        }
+
+        public override void Close()
+        {
+            foreach (var widgetItem in widgetItems)
+            {
+                UIManager.Instance.DormancyGComponent(widgetItem);
+            }
+
+            widgetItems.Clear();
+
+            base.Close();
         }
     }
 }

+ 22 - 0
Assets/Scripts/GameUI/UI/Task/TaskInfoPanelData.cs

@@ -63,6 +63,28 @@ namespace Fort23.Mono
 	      return _Text_desc;
 	     }
 	   }
+	  private Text _Text_Title;
+	  public Text Text_Title
+	   {
+	   get{
+	      if (_Text_Title == null)
+	       {
+	         _Text_Title  = GetUIUnit<Text>("Text_Title"); 
+	       }
+	      return _Text_Title;
+	     }
+	   }
+	  private RectTransform _ItemRoot;
+	  public RectTransform ItemRoot
+	   {
+	   get{
+	      if (_ItemRoot == null)
+	       {
+	         _ItemRoot  = GetUIUnit<RectTransform>("ItemRoot"); 
+	       }
+	      return _ItemRoot;
+	     }
+	   }
 	  #endregion 自定义数据结束 
 	 public override async CTask SetUIGameObject(GameObject gObjectPoolInterface)
 	{

+ 1 - 1
Assets/Scripts/GameUI/UIHelper.cs

@@ -7,7 +7,7 @@ namespace Fort23.Mono
 {
     public static class UIHelper
     {
-        public static void Gray(this Transform transform, bool enableButton = false)
+        public static void Gray(this Transform transform, bool enableButton = true)
         {
             if (transform.GetComponent<Button>() != null)
             {

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
Assets/StreamingAssets/assetConfig.txt


BIN
Excel2Json/Excel/EventConfig.xlsx


BIN
Excel2Json/Excel/Task.xlsx


+ 2 - 0
XiuXianGame.sln.DotSettings.user

@@ -12,6 +12,7 @@
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AEnumerable_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F5004a53079e04c2991f89460a5186cf010fc00_003Fd5_003F42d076c8_003FEnumerable_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AEnumerable_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F5004a53079e04c2991f89460a5186cf010fc00_003Fd5_003F42d076c8_003FEnumerable_002Ecs_002Fz_003A2_002D1/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AEnumerable_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Ff2b6204eed6b41348236173e8a2f539817a880_003F16_003Ff8f742c5_003FEnumerable_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
+	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AEventSystemManager_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F89c69cc281524e81ba8ee38baacb7e0245600_003F91_003F0fdbd4a4_003FEventSystemManager_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AExceptionDispatchInfo_002Ecs_002Fl_003AC_0021_003FUsers_003Fadmin_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fe4df6db7850b4c40b72002ff5da8188846ac00_003Fd3_003F4533b7c3_003FExceptionDispatchInfo_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AExceptionDispatchInfo_002Ecs_002Fl_003AC_0021_003FUsers_003Fck_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fe4df6db7850b4c40b72002ff5da8188846ac00_003F78_003Fe39b72ca_003FExceptionDispatchInfo_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AIGrouping_00602_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F5004a53079e04c2991f89460a5186cf010fc00_003Fb1_003F69de2d9e_003FIGrouping_00602_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
@@ -23,6 +24,7 @@
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AMath_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fb18a8b3398e74bca86895881dd02956c573648_003F8b_003F8699ce4e_003FMath_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AMesh_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F5c4a01f363eb46748231fc41bd9bdd8517e000_003Fde_003Fb0e5d275_003FMesh_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AMonoBehaviour_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F5c4a01f363eb46748231fc41bd9bdd8517e000_003F2d_003F1dd7205f_003FMonoBehaviour_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
+	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ANullable_00601_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fe4df6db7850b4c40b72002ff5da8188846ac00_003F14_003F6b3cf15a_003FNullable_00601_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ANullable_00601_002Ecs_002Fl_003AC_0021_003FUsers_003Fadmin_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F9c2967a135e648bdb993c5397a44991b573620_003F50_003F76c2310d_003FNullable_00601_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AObject_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F5c4a01f363eb46748231fc41bd9bdd8517e000_003F78_003F5e834fc5_003FObject_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
 	<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AQuaternion_002Ecs_002Fl_003AC_0021_003FUsers_003FAdministrator_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F5c4a01f363eb46748231fc41bd9bdd8517e000_003F14_003Fb8fbfefc_003FQuaternion_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>

Vissa filer visades inte eftersom för många filer har ändrats