Browse Source

主线任务

lzx 2 days ago
parent
commit
b484a52db0
31 changed files with 738 additions and 303 deletions
  1. 12 35
      Assets/Res/Config/EventConditionConfig.json
  2. 12 0
      Assets/Res/Config/TaskConfig.json
  3. 308 8
      Assets/Res/UI/Task/TaskInfoPanel.prefab
  4. 1 1
      Assets/Res/UI/WidgetItem.prefab
  5. 4 0
      Assets/Scripts/Core/Event/Event/CustomEventType.cs
  6. 2 2
      Assets/Scripts/GameData/ExcelConfig/EventConditionConfig.cs
  7. 2 1
      Assets/Scripts/GameLogic/Combat/CombatState/CombatUpdateState.cs
  8. 0 20
      Assets/Scripts/GameLogic/EventManager/DialogueMono.cs
  9. 0 3
      Assets/Scripts/GameLogic/EventManager/DialogueMono.cs.meta
  10. 34 37
      Assets/Scripts/GameLogic/PlayerDataEditorWindow.cs
  11. 0 60
      Assets/Scripts/GameUI/DialogueMono.cs
  12. 0 3
      Assets/Scripts/GameUI/DialogueMono.cs.meta
  13. 0 0
      Assets/Scripts/GameUI/EventManager.meta
  14. 45 14
      Assets/Scripts/GameUI/EventManager/DialogueManager.cs
  15. 0 0
      Assets/Scripts/GameUI/EventManager/DialogueManager.cs.meta
  16. 38 0
      Assets/Scripts/GameUI/EventManager/EventHelper.cs
  17. 3 0
      Assets/Scripts/GameUI/EventManager/EventHelper.cs.meta
  18. 27 17
      Assets/Scripts/GameUI/EventManager/EventSystemManager.cs
  19. 0 0
      Assets/Scripts/GameUI/EventManager/EventSystemManager.cs.meta
  20. 2 4
      Assets/Scripts/GameUI/GameApplction.cs
  21. 85 76
      Assets/Scripts/GameUI/TaskManager.cs
  22. 2 2
      Assets/Scripts/GameUI/UI/AppBarPanel/AppBarPanel.cs
  23. 25 3
      Assets/Scripts/GameUI/UI/DialoguePanel/DialogueOptionWidget.cs
  24. 61 10
      Assets/Scripts/GameUI/UI/DialoguePanel/DialoguePanel.cs
  25. 2 2
      Assets/Scripts/GameUI/UI/MainPanel/MainPanel.cs
  26. 48 4
      Assets/Scripts/GameUI/UI/Task/TaskInfoPanel.cs
  27. 22 0
      Assets/Scripts/GameUI/UI/Task/TaskInfoPanelData.cs
  28. 1 1
      Assets/Scripts/GameUI/UIHelper.cs
  29. BIN
      Excel2Json/Excel/EventConfig.xlsx
  30. BIN
      Excel2Json/Excel/Task.xlsx
  31. 2 0
      XiuXianGame.sln.DotSettings.user

+ 12 - 35
Assets/Res/Config/EventConditionConfig.json

@@ -29,7 +29,10 @@
       "LanID": [
         178
       ],
-      "ConditionType": null,
+      "ConditionType": 4,
+      "ConditionPara": [
+        1
+      ],
       "optionType": 2,
       "optionPara1": [
         100001
@@ -44,7 +47,10 @@
       "LanID": [
         179
       ],
-      "ConditionType": null,
+      "ConditionType": 4,
+      "ConditionPara": [
+        3
+      ],
       "optionType": 1,
       "optionPara1": [
         1005
@@ -72,7 +78,10 @@
       "LanID": [
         181
       ],
-      "ConditionType": null,
+      "ConditionType": 3,
+      "ConditionPara": [
+        10
+      ],
       "optionType": 3,
       "PrizeIDs": [
         1001
@@ -425,38 +434,6 @@
         10002,
         100
       ]
-    },
-    {
-      "ID": 11001,
-      "LanID": [
-        1914
-      ],
-      "ConditionType": null,
-      "optionType": null
-    },
-    {
-      "ID": 11002,
-      "ConditionType": null,
-      "optionType": 2,
-      "optionPara1": [
-        100001
-      ]
-    },
-    {
-      "ID": 11003,
-      "ConditionType": null,
-      "optionType": 4,
-      "optionPara1": [
-        1001
-      ]
-    },
-    {
-      "ID": 11004,
-      "ConditionType": null,
-      "optionType": 5,
-      "optionPara1": [
-        10
-      ]
     }
   ]
 }

+ 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:

+ 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/EventConditionConfig.cs

@@ -39,13 +39,13 @@ public int[] ConditionPara;
 
 
 		/// <summary>
-		///事件类型 1=提供选项 2=进入战斗 3=获得奖励 4=道具检测 5=境界检查
+		///事件类型 1=提供选项 2=进入战斗 3=获得奖励
 		/// </summary>
 public int optionType;
 
 
 		/// <summary>
-		///事件常量1 1=事件IDs 2=战斗ID 3= 4=检测道具id 5=境界ID
+		///事件常量1 1=事件IDs 2=战斗ID 3=
 		/// </summary>
 public int[] optionPara1;
 

+ 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);
                 }
             }
 

+ 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

+ 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


+ 45 - 14
Assets/Scripts/GameLogic/EventManager/DialogueManager.cs → Assets/Scripts/GameUI/EventManager/DialogueManager.cs

@@ -7,6 +7,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,12 +21,9 @@ public class DialogueManager : Singleton<DialogueManager>
     private Action onCancel;
     private EventConfig eventConfig;
 
-    IDialogueMono dialogue;
+ 
 
-    public void CustomInit(IDialogueMono dialogueMono)
-    {
-        dialogue = dialogueMono;
-    }
+ 
 
 
     /// <summary>
@@ -69,22 +67,27 @@ public class DialogueManager : Singleton<DialogueManager>
         //挂机事件 弹出简单气泡对话
         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
         {
             // 无选
@@ -120,11 +123,11 @@ public class DialogueManager : Singleton<DialogueManager>
                 //不是一次性事件弹出boss界面
                 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 +135,7 @@ public class DialogueManager : Singleton<DialogueManager>
                                 cTask.SetResult();
                             });
                         await cTask;
-                        dialogue.ChangeComabtState(CombatController.idle);
+                        CombatDrive.Instance.CombatController.ChangeState(CombatController.idle);
                     }
                     else
                     {
@@ -143,7 +146,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 +154,7 @@ public class DialogueManager : Singleton<DialogueManager>
                             cTask.SetResult();
                         });
                     await cTask;
-                    dialogue.ChangeComabtState(CombatController.idle);
+                    CombatDrive.Instance.CombatController.ChangeState(CombatController.idle);
                 }
 
 
@@ -174,9 +177,20 @@ 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
@@ -212,4 +226,21 @@ 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;
+        EventConditionConfig eventCondition = ConfigComponent.Instance.Get<EventConditionConfig>(eventConfigId);
+        switch (eventCondition.ConditionType)
+        {
+            case 1:
+                ItemConfig itemConfig = ConfigComponent.Instance.Get<ItemConfig>(eventCondition.ConditionPara[0]);
+                result = $"需要拥有{LanguageManager.Instance.Text(itemConfig.itemName)}{eventCondition.ConditionPara[1]}个";
+                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

+ 27 - 17
Assets/Scripts/GameLogic/EventManager/EventSystemManager.cs → Assets/Scripts/GameUI/EventManager/EventSystemManager.cs

@@ -5,6 +5,7 @@ using Core.Language;
 using Excel2Json;
 using Fort23.Core;
 using Fort23.UTool;
+using GameLogic.Combat;
 using GameLogic.Combat.CombatTool;
 using UnityEngine;
 using Utility;
@@ -16,7 +17,6 @@ public class EventSystemManager : Singleton<EventSystemManager>
 
     List<AccountFileInfo.EventData> eventDatas = new List<AccountFileInfo.EventData>();
 
-    IDialogueMono dialogueMono;
 
     public AccountFileInfo.EventList CurrentEventList;
 
@@ -30,12 +30,18 @@ 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);
+    }
+
+    private void RenfenceRandomEvent(IEventData e)
+    {
+        DetectRandomEvents();
     }
 
     private float timer = 0;
@@ -200,7 +206,7 @@ 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); });
     }
@@ -229,7 +235,7 @@ public class EventSystemManager : Singleton<EventSystemManager>
         }
 
         CurrentEventList = evt;
-        dialogueMono.ChangeComabtState(CombatController.idle);
+        CombatDrive.Instance.CombatController.ChangeState(CombatController.idle);
         DialogueManager.Instance.StartDialogue(dialogueID, eventConfig.ID, () =>
         {
             CompleteEvent(CurrentEventList);
@@ -254,7 +260,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,23 +270,27 @@ 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>
@@ -306,7 +316,7 @@ public class EventSystemManager : Singleton<EventSystemManager>
 
 
         AccountFileInfo.Instance.SavePlayerData();
-        dialogueMono.ChangeComabtState(CombatController.update);
+        CombatDrive.Instance.CombatController.ChangeState(CombatController.update);
 
         // EventManager.Instance.Dispatch(CustomEventType.CompleteEvent, null);
     }
@@ -337,7 +347,7 @@ 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;
     }
@@ -351,7 +361,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);
         }
 

+ 25 - 3
Assets/Scripts/GameUI/UI/DialoguePanel/DialogueOptionWidget.cs

@@ -13,6 +13,7 @@ namespace Fort23.Mono
     {
         public EventConditionConfig 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)
         {
+            type = 1;
             eventConditionConfig = ConfigComponent.Instance.Get<EventConditionConfig>(id);
             var mainEventConditionConfig = ConfigComponent.Instance.Get<EventConditionConfig>(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.CheckCondition(eventConditionConfig.ConditionType, eventConditionConfig.ConditionPara))
+            {
+                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);
         }
     }
 }

+ 61 - 10
Assets/Scripts/GameUI/UI/DialoguePanel/DialoguePanel.cs

@@ -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();
@@ -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.CheckCondition(eventConditionConfig.ConditionType, eventConditionConfig.ConditionPara))
+                        {
+                            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.CheckCondition(obj.eventConditionConfig.ConditionType, obj.eventConditionConfig.ConditionPara))
+                {
+                    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();
         }
     }

+ 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)
             {

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>