Bläddra i källkod

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

lzx 5 dagar sedan
förälder
incheckning
3c6f4919b5
100 ändrade filer med 3837 tillägg och 870 borttagningar
  1. 65 173
      Assets/Art/HeroTimeLine/gf_1502_timeline.playable
  2. 1 0
      Assets/Art/VFX/Mat/shuimo_dg1_taiji_base1.mat
  3. 164 0
      Assets/Art/VFX/Materials/fx gf 1502 dg1 xu.mat
  4. 8 0
      Assets/Art/VFX/Materials/fx gf 1502 dg1 xu.mat.meta
  5. 164 0
      Assets/Art/VFX/Materials/fx gf 1502 dg1.mat
  6. 8 0
      Assets/Art/VFX/Materials/fx gf 1502 dg1.mat.meta
  7. BIN
      Assets/Art/VFX/Tex/dg/fx dg2.png
  8. 133 0
      Assets/Art/VFX/Tex/dg/fx dg2.png.meta
  9. 253 540
      Assets/Art/cs3.scene
  10. BIN
      Assets/Art/nanzhujiao/attack8.FBX
  11. 149 0
      Assets/Art/nanzhujiao/attack8.FBX.meta
  12. 82 0
      Assets/Res/Config/BuffConfig.json
  13. 26 16
      Assets/Res/Config/EventConditionConfig.json
  14. 209 52
      Assets/Res/Config/EventConfig.json
  15. 476 2
      Assets/Res/Config/EventLinkConfig.json
  16. 6 0
      Assets/Res/Config/EventNPC.json
  17. 25 0
      Assets/Res/Config/ItemConfig.json
  18. 55 55
      Assets/Res/Config/LanguageChineseConfig.json
  19. 80 0
      Assets/Res/Config/LevelbattleConfig.json
  20. 2 2
      Assets/Scenes/testCombat.scene
  21. 1 1
      Assets/Scripts/GameData/ExcelConfig/EventConfig.cs
  22. 9 0
      Assets/Scripts/GameLogic/Combat/Buff/b_1015.cs
  23. 3 0
      Assets/Scripts/GameLogic/Combat/Buff/b_1015.cs.meta
  24. 48 0
      Assets/Scripts/GameLogic/Combat/Buff/b_1016.cs
  25. 3 0
      Assets/Scripts/GameLogic/Combat/Buff/b_1016.cs.meta
  26. 50 0
      Assets/Scripts/GameLogic/Combat/Buff/b_1017.cs
  27. 3 0
      Assets/Scripts/GameLogic/Combat/Buff/b_1017.cs.meta
  28. 28 0
      Assets/Scripts/GameLogic/Combat/Buff/b_1018.cs
  29. 3 0
      Assets/Scripts/GameLogic/Combat/Buff/b_1018.cs.meta
  30. 4 0
      Assets/Scripts/GameLogic/Combat/CombatTool/AttType.cs
  31. 13 6
      Assets/Scripts/GameLogic/Combat/CombatTool/CombatCalculateTool.cs
  32. 8 0
      Assets/Scripts/GameLogic/Combat/CombatTool/HarmReturnInfo.cs
  33. 14 1
      Assets/Scripts/GameLogic/Combat/Hero/CombatHeroSkillControlBasic.cs
  34. 7 2
      Assets/Scripts/GameLogic/Combat/Hero/Turntable/SkillSlots.cs
  35. 6 3
      Assets/Scripts/GameLogic/Combat/Skill/S9011.cs
  36. 39 0
      Assets/Scripts/GameLogic/Combat/Skill/S9012.cs
  37. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9012.cs.meta
  38. 110 0
      Assets/Scripts/GameLogic/Combat/Skill/S9013.cs
  39. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9013.cs.meta
  40. 67 0
      Assets/Scripts/GameLogic/Combat/Skill/S9014.cs
  41. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9014.cs.meta
  42. 42 0
      Assets/Scripts/GameLogic/Combat/Skill/S9015.cs
  43. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9015.cs.meta
  44. 45 0
      Assets/Scripts/GameLogic/Combat/Skill/S9016.cs
  45. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9016.cs.meta
  46. 48 0
      Assets/Scripts/GameLogic/Combat/Skill/S9021.cs
  47. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9021.cs.meta
  48. 95 0
      Assets/Scripts/GameLogic/Combat/Skill/S9022.cs
  49. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9022.cs.meta
  50. 47 0
      Assets/Scripts/GameLogic/Combat/Skill/S9023.cs
  51. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9023.cs.meta
  52. 63 0
      Assets/Scripts/GameLogic/Combat/Skill/S9024.cs
  53. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9024.cs.meta
  54. 55 0
      Assets/Scripts/GameLogic/Combat/Skill/S9031.cs
  55. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9031.cs.meta
  56. 46 0
      Assets/Scripts/GameLogic/Combat/Skill/S9032.cs
  57. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9032.cs.meta
  58. 45 0
      Assets/Scripts/GameLogic/Combat/Skill/S9033.cs
  59. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9033.cs.meta
  60. 50 0
      Assets/Scripts/GameLogic/Combat/Skill/S9041.cs
  61. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9041.cs.meta
  62. 45 0
      Assets/Scripts/GameLogic/Combat/Skill/S9042.cs
  63. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9042.cs.meta
  64. 51 0
      Assets/Scripts/GameLogic/Combat/Skill/S9043.cs
  65. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9043.cs.meta
  66. 50 0
      Assets/Scripts/GameLogic/Combat/Skill/S9044.cs
  67. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9044.cs.meta
  68. 46 0
      Assets/Scripts/GameLogic/Combat/Skill/S9051.cs
  69. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9051.cs.meta
  70. 51 0
      Assets/Scripts/GameLogic/Combat/Skill/S9052.cs
  71. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9052.cs.meta
  72. 79 0
      Assets/Scripts/GameLogic/Combat/Skill/S9053.cs
  73. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9053.cs.meta
  74. 50 0
      Assets/Scripts/GameLogic/Combat/Skill/S9054.cs
  75. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9054.cs.meta
  76. 56 0
      Assets/Scripts/GameLogic/Combat/Skill/S9061.cs
  77. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9061.cs.meta
  78. 90 0
      Assets/Scripts/GameLogic/Combat/Skill/S9062.cs
  79. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9062.cs.meta
  80. 51 0
      Assets/Scripts/GameLogic/Combat/Skill/S9063.cs
  81. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9063.cs.meta
  82. 62 0
      Assets/Scripts/GameLogic/Combat/Skill/S9064.cs
  83. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9064.cs.meta
  84. 46 0
      Assets/Scripts/GameLogic/Combat/Skill/S9071.cs
  85. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9071.cs.meta
  86. 52 0
      Assets/Scripts/GameLogic/Combat/Skill/S9081.cs
  87. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9081.cs.meta
  88. 28 0
      Assets/Scripts/GameLogic/Combat/Skill/S9082.cs
  89. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9082.cs.meta
  90. 46 0
      Assets/Scripts/GameLogic/Combat/Skill/S9083.cs
  91. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9083.cs.meta
  92. 46 0
      Assets/Scripts/GameLogic/Combat/Skill/S9084.cs
  93. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9084.cs.meta
  94. 34 0
      Assets/Scripts/GameLogic/Combat/Skill/S9085.cs
  95. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9085.cs.meta
  96. 6 17
      Assets/Scripts/GameLogic/Combat/Skill/SkillBasic.cs
  97. BIN
      Excel2Json/Excel/Buff.xlsx
  98. BIN
      Excel2Json/Excel/EventConfig.xlsx
  99. BIN
      Excel2Json/Excel/Item.xlsx
  100. BIN
      Excel2Json/Excel/Language.xlsx

+ 65 - 173
Assets/Art/HeroTimeLine/gf_1502_timeline.playable

@@ -1,6 +1,6 @@
 %YAML 1.1
 %TAG !u! tag:yousandi.cn,2023:
---- !u!114 &-9054260350814849210
+--- !u!114 &-8989272255488113034
 MonoBehaviour:
   m_ObjectHideFlags: 1
   m_CorrespondingSourceObject: {fileID: 0}
@@ -9,21 +9,36 @@ MonoBehaviour:
   m_GameObject: {fileID: 0}
   m_Enabled: 1
   m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 09e4fb4d0e1c4ef796502c9420b2361c, type: 3}
-  m_Name: TimeLinePlayEntityAnimtionAsset
+  m_Script: {fileID: 11500000, guid: f1fc88ca9f5b46d2929d20f65fbe5c4e, type: 3}
+  m_Name: TimeLineParticleSystemAsset
   m_EditorClassIdentifier: 
-  m_Clip: {fileID: 1827226128182048838, guid: da64dad2561f5ad40ad6a0ee04fd8862, type: 3}
-  m_Position: {x: 0, y: 0, z: 0}
-  m_EulerAngles: {x: 0, y: 0, z: 0}
-  m_UseTrackMatchFields: 1
-  m_MatchTargetFields: 63
-  m_RemoveStartOffset: 1
-  m_ApplyFootIK: 1
-  m_Loop: 0
-  m_Version: 1
-  m_Rotation: {x: 0, y: 0, z: 0, w: 1}
-  isRunPlay: 0
-  layerId: 0
+  sourceGameObject:
+    exposedName: f72f8974b3b608d4c9be53a4393290a8
+    defaultValue: {fileID: 0}
+  prefabGameObject: {fileID: 0}
+  updateParticle: 1
+  particleRandomSeed: 9820
+  updateDirector: 1
+  updateITimeControl: 1
+  searchHierarchy: 0
+  active: 1
+  postPlayback: 2
+  targetType: 1
+  LocationType: 5
+  targetSpecialDotName: hitpos
+  hitPointGroupName: 
+  isGround: 0
+  isFollowTarget: 0
+  isNotRotate: 0
+  isFollowRootTarget: 0
+  isAttSpeed: 0
+  isLoop: 0
+  loopAlone: 0
+  isActivityCustomTargetPos: 0
+  CustomTargetPosIndex: 0
+  intervalTime: 0
+  isRoat: 0
+  roatIndex: 0
 --- !u!114 &-8000089839493421298
 MonoBehaviour:
   m_ObjectHideFlags: 1
@@ -85,10 +100,10 @@ MonoBehaviour:
   m_Children: []
   m_Clips:
   - m_Version: 1
-    m_Start: 0.3999999999999999
+    m_Start: 0.9
     m_ClipIn: 0
-    m_Asset: {fileID: -1249931145621353543}
-    m_Duration: 1
+    m_Asset: {fileID: -8989272255488113034}
+    m_Duration: 2
     m_TimeScale: 1
     m_ParentTrack: {fileID: -7242387571130488237}
     m_EaseInDuration: 0
@@ -152,7 +167,7 @@ MonoBehaviour:
     m_PreExtrapolationMode: 0
     m_PostExtrapolationTime: 0
     m_PreExtrapolationTime: 0
-    m_DisplayName: fx_gf_lieyanjian
+    m_DisplayName: fx_gf 1502 sf dg
   m_Markers:
     m_Objects: []
 --- !u!114 &-6397373278760819399
@@ -177,7 +192,7 @@ MonoBehaviour:
   m_Children: []
   m_Clips:
   - m_Version: 1
-    m_Start: 0.8
+    m_Start: 0.95
     m_ClipIn: 0
     m_Asset: {fileID: 6682255669215459689}
     m_Duration: 1
@@ -243,7 +258,7 @@ MonoBehaviour:
     m_PostExtrapolationMode: 1
     m_PreExtrapolationMode: 1
     m_PostExtrapolationTime: Infinity
-    m_PreExtrapolationTime: 0.8
+    m_PreExtrapolationTime: 0.95
     m_DisplayName: Recorded
   m_Markers:
     m_Objects: []
@@ -497,45 +512,6 @@ AnimationClip:
     ACLCompressionLevel: 0
     ACLCurvePrecision: 0.01
     UseACLCurve: 0
---- !u!114 &-1249931145621353543
-MonoBehaviour:
-  m_ObjectHideFlags: 1
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 0}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: f1fc88ca9f5b46d2929d20f65fbe5c4e, type: 3}
-  m_Name: TimeLineParticleSystemAsset(Clone)(Clone)
-  m_EditorClassIdentifier: 
-  sourceGameObject:
-    exposedName: 06f144804f7ec7342a023f1e18a025af
-    defaultValue: {fileID: 0}
-  prefabGameObject: {fileID: 4661739171056411748, guid: 95a3f0ba6a5c7d84aa083bc98bae99d8, type: 3}
-  updateParticle: 1
-  particleRandomSeed: 518
-  updateDirector: 1
-  updateITimeControl: 1
-  searchHierarchy: 1
-  active: 1
-  postPlayback: 2
-  targetType: 2
-  LocationType: 2
-  targetSpecialDotName: 
-  hitPointGroupName: 
-  isGround: 0
-  isFollowTarget: 0
-  isNotRotate: 0
-  isFollowRootTarget: 0
-  isAttSpeed: 0
-  isLoop: 0
-  loopAlone: 0
-  isActivityCustomTargetPos: 0
-  CustomTargetPosIndex: 0
-  intervalTime: 0
-  isRoat: 0
-  roatIndex: 0
 --- !u!114 &-1223227800801429518
 MonoBehaviour:
   m_ObjectHideFlags: 1
@@ -556,76 +532,7 @@ MonoBehaviour:
   m_Curves: {fileID: 0}
   m_Parent: {fileID: -5073625934344026965}
   m_Children: []
-  m_Clips:
-  - m_Version: 1
-    m_Start: 0.1
-    m_ClipIn: 0
-    m_Asset: {fileID: 4036464651189746888}
-    m_Duration: 2
-    m_TimeScale: 1
-    m_ParentTrack: {fileID: -1223227800801429518}
-    m_EaseInDuration: 0
-    m_EaseOutDuration: 0
-    m_BlendInDuration: 0
-    m_BlendOutDuration: 0
-    m_MixInCurve:
-      serializedVersion: 2
-      m_Curve:
-      - serializedVersion: 3
-        time: 0
-        value: 0
-        inSlope: 0
-        outSlope: 0
-        tangentMode: 0
-        weightedMode: 0
-        inWeight: 0
-        outWeight: 0
-      - serializedVersion: 3
-        time: 1
-        value: 1
-        inSlope: 0
-        outSlope: 0
-        tangentMode: 0
-        weightedMode: 0
-        inWeight: 0
-        outWeight: 0
-      m_PreInfinity: 2
-      m_PostInfinity: 2
-      m_RotationOrder: 4
-    m_MixOutCurve:
-      serializedVersion: 2
-      m_Curve:
-      - serializedVersion: 3
-        time: 0
-        value: 1
-        inSlope: 0
-        outSlope: 0
-        tangentMode: 0
-        weightedMode: 0
-        inWeight: 0
-        outWeight: 0
-      - serializedVersion: 3
-        time: 1
-        value: 0
-        inSlope: 0
-        outSlope: 0
-        tangentMode: 0
-        weightedMode: 0
-        inWeight: 0
-        outWeight: 0
-      m_PreInfinity: 2
-      m_PostInfinity: 2
-      m_RotationOrder: 4
-    m_BlendInCurveMode: 0
-    m_BlendOutCurveMode: 0
-    m_ExposedParameterNames: []
-    m_AnimationCurves: {fileID: 0}
-    m_Recordable: 0
-    m_PostExtrapolationMode: 0
-    m_PreExtrapolationMode: 0
-    m_PostExtrapolationTime: 0
-    m_PreExtrapolationTime: 0
-    m_DisplayName: fx_gf_lieyanjian_qy
+  m_Clips: []
   m_Markers:
     m_Objects: []
 --- !u!114 &-894447145330074657
@@ -743,7 +650,7 @@ MonoBehaviour:
   m_Children: []
   m_Clips:
   - m_Version: 1
-    m_Start: 0.8
+    m_Start: 0.95
     m_ClipIn: 0
     m_Asset: {fileID: -8000089839493421298}
     m_Duration: 1
@@ -835,45 +742,6 @@ MonoBehaviour:
     m_ScenePreview: 1
   m_DurationMode: 0
   m_MarkerTrack: {fileID: 0}
---- !u!114 &4036464651189746888
-MonoBehaviour:
-  m_ObjectHideFlags: 1
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 0}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: f1fc88ca9f5b46d2929d20f65fbe5c4e, type: 3}
-  m_Name: TimeLineParticleSystemAsset
-  m_EditorClassIdentifier: 
-  sourceGameObject:
-    exposedName: 5ca15d59ee2b619418c577e96b4fe134
-    defaultValue: {fileID: 0}
-  prefabGameObject: {fileID: 5331151869383009277, guid: c1635b2403a47894aa123507f454d123, type: 3}
-  updateParticle: 1
-  particleRandomSeed: 2432
-  updateDirector: 1
-  updateITimeControl: 1
-  searchHierarchy: 0
-  active: 1
-  postPlayback: 2
-  targetType: 1
-  LocationType: 2
-  targetSpecialDotName: 
-  hitPointGroupName: 
-  isGround: 0
-  isFollowTarget: 0
-  isNotRotate: 0
-  isFollowRootTarget: 0
-  isAttSpeed: 0
-  isLoop: 0
-  loopAlone: 0
-  isActivityCustomTargetPos: 0
-  CustomTargetPosIndex: 0
-  intervalTime: 0
-  isRoat: 0
-  roatIndex: 0
 --- !u!114 &6478050454879568048
 MonoBehaviour:
   m_ObjectHideFlags: 1
@@ -908,6 +776,30 @@ MonoBehaviour:
   m_Loop: 0
   m_Version: 1
   m_Rotation: {x: 0, y: 0, z: 0, w: 1}
+--- !u!114 &6918091570029824317
+MonoBehaviour:
+  m_ObjectHideFlags: 1
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 09e4fb4d0e1c4ef796502c9420b2361c, type: 3}
+  m_Name: TimeLinePlayEntityAnimtionAsset
+  m_EditorClassIdentifier: 
+  m_Clip: {fileID: 1827226128182048838, guid: fa8eaa81a2d059a458d848e2c054b0ba, type: 3}
+  m_Position: {x: 0, y: 0, z: 0}
+  m_EulerAngles: {x: 0, y: 0, z: 0}
+  m_UseTrackMatchFields: 1
+  m_MatchTargetFields: 63
+  m_RemoveStartOffset: 1
+  m_ApplyFootIK: 1
+  m_Loop: 0
+  m_Version: 1
+  m_Rotation: {x: 0, y: 0, z: 0, w: 1}
+  isRunPlay: 0
+  layerId: 0
 --- !u!114 &8106544261917024806
 MonoBehaviour:
   m_ObjectHideFlags: 1
@@ -932,8 +824,8 @@ MonoBehaviour:
   - m_Version: 1
     m_Start: 0
     m_ClipIn: 0
-    m_Asset: {fileID: -9054260350814849210}
-    m_Duration: 1.4333333333333333
+    m_Asset: {fileID: 6918091570029824317}
+    m_Duration: 2
     m_TimeScale: 1
     m_ParentTrack: {fileID: 8106544261917024806}
     m_EaseInDuration: 0
@@ -997,7 +889,7 @@ MonoBehaviour:
     m_PreExtrapolationMode: 1
     m_PostExtrapolationTime: Infinity
     m_PreExtrapolationTime: 0
-    m_DisplayName: attack5
+    m_DisplayName: attack8
   m_Markers:
     m_Objects: []
   m_InfiniteClipPreExtrapolation: 0

+ 1 - 0
Assets/Art/VFX/Mat/shuimo_dg1_taiji_base1.mat

@@ -13,6 +13,7 @@ Material:
   m_ModifiedSerializedProperties: 0
   m_ValidKeywords: []
   m_InvalidKeywords:
+  - _RECEIVESHADOWS_OFF
   - _RECEIVE_SHADOWS_OFF
   m_LightmapFlags: 4
   m_EnableInstancingVariants: 0

+ 164 - 0
Assets/Art/VFX/Materials/fx gf 1502 dg1 xu.mat

@@ -0,0 +1,164 @@
+%YAML 1.1
+%TAG !u! tag:yousandi.cn,2023:
+--- !u!114 &-5468707387974454019
+MonoBehaviour:
+  m_ObjectHideFlags: 11
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  version: 7
+--- !u!21 &2100000
+Material:
+  serializedVersion: 8
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: fx gf 1502 dg1 xu
+  m_Shader: {fileID: 4800000, guid: 54e59f65585b87c479bfb75710b91a47, type: 3}
+  m_Parent: {fileID: 0}
+  m_ModifiedSerializedProperties: 0
+  m_ValidKeywords: []
+  m_InvalidKeywords: []
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_LockedProperties: 
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BaseMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailAlbedoMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailMask:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailNormalMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _Main_Tex:
+        m_Texture: {fileID: 2800000, guid: 0d5227da8866218479f6ea031b030792, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _Mask:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OcclusionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _ParallaxMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _SpecGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _Turb_Noise:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _dissolve:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1.3}
+        m_Offset: {x: 0, y: 0}
+    - unity_Lightmaps:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - unity_LightmapsInd:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - unity_ShadowMasks:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Ints: []
+    m_Floats:
+    - _Alpha: 1
+    - _AlphaClip: 0
+    - _AlphaCutoff: 0.5
+    - _AlphaToMask: 0
+    - _Blend: 0
+    - _BlendModePreserveSpecular: 1
+    - _BumpScale: 1
+    - _CTime: 1
+    - _ClearCoatMask: 0
+    - _ClearCoatSmoothness: 0
+    - _Cull: 2
+    - _CustomDataDissolve: 0
+    - _CustomDataMainUV: 1
+    - _Cutoff: 0.5
+    - _DetailAlbedoMapScale: 1
+    - _DetailNormalMapScale: 1
+    - _Diss_value: 0
+    - _DstBlend: 0
+    - _DstBlendAlpha: 0
+    - _EnvironmentReflections: 1
+    - _GlossMapScale: 0
+    - _Glossiness: 0
+    - _GlossyReflections: 0
+    - _Metallic: 0
+    - _OcclusionStrength: 1
+    - _Parallax: 0.005
+    - _QueueControl: 0
+    - _QueueOffset: 0
+    - _ReceiveShadows: 1
+    - _Smoothness: 0.5
+    - _SmoothnessTextureChannel: 0
+    - _Soft_value: 0
+    - _SpecularHighlights: 1
+    - _SrcBlend: 1
+    - _SrcBlendAlpha: 1
+    - _Surface: 0
+    - _Turb_Value: 0
+    - _WorkflowMode: 1
+    - _ZWrite: 1
+    - _ca: 1
+    - _light: 8
+    m_Colors:
+    - _BaseColor: {r: 1, g: 1, b: 1, a: 1}
+    - _Color: {r: 1, g: 1, b: 1, a: 1}
+    - _Diss_UV: {r: 0, g: 0, b: 0, a: 0}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+    - _Main_Color: {r: 1, g: 1, b: 1, a: 1}
+    - _Main_UV: {r: 0, g: 0, b: 0, a: 0}
+    - _Mask_UV: {r: 0, g: 0, b: 0, a: 0}
+    - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
+    - _Turb_UV: {r: 0, g: 0, b: 0, a: 0}
+  m_BuildTextureStacks: []

+ 8 - 0
Assets/Art/VFX/Materials/fx gf 1502 dg1 xu.mat.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: CCwYtimlBy9YPl/upbj7qUlo1vX0o6dLqna4EkXrnpRBuo//D/CI77TsiZoa
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 164 - 0
Assets/Art/VFX/Materials/fx gf 1502 dg1.mat

@@ -0,0 +1,164 @@
+%YAML 1.1
+%TAG !u! tag:yousandi.cn,2023:
+--- !u!114 &-5468707387974454019
+MonoBehaviour:
+  m_ObjectHideFlags: 11
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  version: 7
+--- !u!21 &2100000
+Material:
+  serializedVersion: 8
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: fx gf 1502 dg1
+  m_Shader: {fileID: 4800000, guid: 54e59f65585b87c479bfb75710b91a47, type: 3}
+  m_Parent: {fileID: 0}
+  m_ModifiedSerializedProperties: 0
+  m_ValidKeywords: []
+  m_InvalidKeywords: []
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_LockedProperties: 
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BaseMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailAlbedoMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailMask:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailNormalMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _Main_Tex:
+        m_Texture: {fileID: 2800000, guid: 0d5227da8866218479f6ea031b030792, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _Mask:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OcclusionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _ParallaxMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _SpecGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _Turb_Noise:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _dissolve:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1.3}
+        m_Offset: {x: 0, y: 0}
+    - unity_Lightmaps:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - unity_LightmapsInd:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - unity_ShadowMasks:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Ints: []
+    m_Floats:
+    - _Alpha: 1
+    - _AlphaClip: 0
+    - _AlphaCutoff: 0.5
+    - _AlphaToMask: 0
+    - _Blend: 0
+    - _BlendModePreserveSpecular: 1
+    - _BumpScale: 1
+    - _CTime: 1
+    - _ClearCoatMask: 0
+    - _ClearCoatSmoothness: 0
+    - _Cull: 2
+    - _CustomDataDissolve: 0
+    - _CustomDataMainUV: 1
+    - _Cutoff: 0.5
+    - _DetailAlbedoMapScale: 1
+    - _DetailNormalMapScale: 1
+    - _Diss_value: 0
+    - _DstBlend: 0
+    - _DstBlendAlpha: 0
+    - _EnvironmentReflections: 1
+    - _GlossMapScale: 0
+    - _Glossiness: 0
+    - _GlossyReflections: 0
+    - _Metallic: 0
+    - _OcclusionStrength: 1
+    - _Parallax: 0.005
+    - _QueueControl: 0
+    - _QueueOffset: 0
+    - _ReceiveShadows: 1
+    - _Smoothness: 0.5
+    - _SmoothnessTextureChannel: 0
+    - _Soft_value: 0
+    - _SpecularHighlights: 1
+    - _SrcBlend: 1
+    - _SrcBlendAlpha: 1
+    - _Surface: 0
+    - _Turb_Value: 0
+    - _WorkflowMode: 1
+    - _ZWrite: 1
+    - _ca: 1
+    - _light: 8
+    m_Colors:
+    - _BaseColor: {r: 1, g: 1, b: 1, a: 1}
+    - _Color: {r: 1, g: 1, b: 1, a: 1}
+    - _Diss_UV: {r: 0, g: 0, b: 0, a: 0}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+    - _Main_Color: {r: 1, g: 1, b: 1, a: 1}
+    - _Main_UV: {r: 0, g: 0, b: 0, a: 0}
+    - _Mask_UV: {r: 0, g: 0, b: 0, a: 0}
+    - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
+    - _Turb_UV: {r: 0, g: 0, b: 0, a: 0}
+  m_BuildTextureStacks: []

+ 8 - 0
Assets/Art/VFX/Materials/fx gf 1502 dg1.mat.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: B3NO43iqBn6sGRc60OzAo27yORvuuswnkuHn2fTVD7ncnHq6itz9JYi/L60R
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Art/VFX/Tex/dg/fx dg2.png


+ 133 - 0
Assets/Art/VFX/Tex/dg/fx dg2.png.meta

@@ -0,0 +1,133 @@
+fileFormatVersion: 2
+guid: Dy4atyiqBypOfsmUJnFiLPb5yLiYIA3W9K7a1+jaKvH46tn4R0Z3TFZCamJ2
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 13
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+    flipGreenChannel: 0
+  isReadable: 0
+  webStreaming: 0
+  priorityLevel: 0
+  uploadedMode: 2
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  ignoreMipmapLimit: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: 1
+    mipBias: 0
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 1
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 0
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 100
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 0
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  swizzle: 50462976
+  cookieLightType: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    maxPlaceholderSize: 32
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    maxPlaceholderSize: 32
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Server
+    maxTextureSize: 2048
+    maxPlaceholderSize: 32
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    ignorePlatformSupport: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+    nameFileIdTable: {}
+  mipmapLimitGroupName: 
+  pSDRemoveMatte: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 253 - 540
Assets/Art/cs3.scene


BIN
Assets/Art/nanzhujiao/attack8.FBX


+ 149 - 0
Assets/Art/nanzhujiao/attack8.FBX.meta

@@ -0,0 +1,149 @@
+fileFormatVersion: 2
+guid: WSsX4Hv8W3qEJRwD8t9PmmFj1N1yk4FZbHtZlD2UtIi105DZDB+8gpLdTCMr
+ModelImporter:
+  serializedVersion: 22348
+  internalIDToNameTable: []
+  externalObjects: {}
+  materials:
+    materialImportMode: 2
+    materialName: 0
+    materialSearch: 1
+    materialLocation: 1
+  animations:
+    legacyGenerateAnimations: 4
+    bakeSimulation: 0
+    resampleCurves: 1
+    optimizeGameObjects: 0
+    removeConstantScaleCurves: 0
+    motionNodeName: 
+    rigImportErrors: 
+    rigImportWarnings: 
+    animationImportErrors: 
+    animationImportWarnings: 
+    animationRetargetingWarnings: 
+    animationDoRetargetingWarnings: 0
+    importAnimatedCustomProperties: 0
+    importConstraints: 0
+    animationCompression: 1
+    aCLCompressionLevel: 0
+    aCLCurvePrecision: 0.01
+    animationRotationError: 0.5
+    animationPositionError: 0.5
+    animationScaleError: 0.5
+    animationWrapMode: 0
+    extraExposedTransformPaths: []
+    extraUserProperties: []
+    clipAnimations:
+    - serializedVersion: 16
+      name: attack8
+      takeName: Take 001
+      internalID: 1827226128182048838
+      firstFrame: 0
+      lastFrame: 60
+      wrapMode: 0
+      orientationOffsetY: 0
+      level: 0
+      cycleOffset: 0
+      loop: 0
+      hasAdditiveReferencePose: 0
+      loopTime: 0
+      loopBlend: 0
+      loopBlendOrientation: 0
+      loopBlendPositionY: 0
+      loopBlendPositionXZ: 0
+      keepOriginalOrientation: 0
+      keepOriginalPositionY: 1
+      keepOriginalPositionXZ: 0
+      heightFromFeet: 0
+      mirror: 0
+      bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
+      curves: []
+      events: []
+      transformMask: []
+      maskType: 3
+      maskSource: {instanceID: 0}
+      additiveReferencePoseFrame: 0
+    isReadable: 0
+    virtualGeometry: 0
+    hasBoneWeight: 0
+    generateGeometryBuffer: 0
+    positionPrecision: -2147483648
+    normalPrecision: -1
+    tangentPrecision: -1
+    surfaceCompensation: 0
+    allMeshUse: 1
+    ignoreSimpleMesh: 0
+  meshes:
+    lODScreenPercentages: []
+    globalScale: 1
+    meshCompression: 0
+    addColliders: 0
+    useSRGBMaterialColor: 1
+    sortHierarchyByName: 1
+    importPhysicalCameras: 1
+    importVisibility: 1
+    importBlendShapes: 1
+    importCameras: 1
+    importLights: 1
+    nodeNameCollisionStrategy: 1
+    fileIdsGeneration: 2
+    swapUVChannels: 0
+    generateSecondaryUV: 0
+    useFileUnits: 1
+    keepQuads: 0
+    weldVertices: 1
+    bakeAxisConversion: 0
+    preserveHierarchy: 0
+    skinWeightsMode: 0
+    maxBonesPerVertex: 4
+    minBoneWeight: 0.001
+    optimizeBones: 1
+    meshOptimizationFlags: -1
+    indexFormat: 0
+    secondaryUVAngleDistortion: 8
+    secondaryUVAreaDistortion: 15.000001
+    secondaryUVHardAngle: 88
+    secondaryUVMarginMethod: 1
+    secondaryUVMinLightmapResolution: 40
+    secondaryUVMinObjectScale: 1
+    secondaryUVPackMargin: 4
+    useFileScale: 1
+    strictVertexDataChecks: 0
+  tangentSpace:
+    normalSmoothAngle: 60
+    normalImportMode: 0
+    tangentImportMode: 3
+    normalCalculationMode: 4
+    legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
+    blendShapeNormalImportMode: 1
+    normalSmoothingSource: 0
+  referencedClips: []
+  importAnimation: 1
+  humanDescription:
+    serializedVersion: 3
+    human: []
+    skeleton: []
+    armTwist: 0.5
+    foreArmTwist: 0.5
+    upperLegTwist: 0.5
+    legTwist: 0.5
+    armStretch: 0.05
+    legStretch: 0.05
+    feetSpacing: 0
+    globalScale: 1
+    rootMotionBoneName: 
+    hasTranslationDoF: 0
+    hasExtraRoot: 0
+    skeletonHasParents: 1
+  lastHumanDescriptionAvatarSource: {instanceID: 0}
+  autoGenerateAvatarMappingIfUnspecified: 1
+  animationType: 2
+  humanoidOversampling: 1
+  avatarSetup: 0
+  addHumanoidExtraRootOnlyWhenUsingAvatar: 1
+  importBlendShapeDeformPercent: 1
+  remapMaterialsIfMaterialImportModeIsNone: 0
+  additionalBone: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 82 - 0
Assets/Res/Config/BuffConfig.json

@@ -281,6 +281,88 @@
       "IsControlBuff": 0,
       "IsHideIcon": 0,
       "scriptsName": "b_1014"
+    },
+    {
+      "ID": 10151,
+      "nameTest": "无敌",
+      "decTest": "无敌,不受控制",
+      "icon": "icon_b1015",
+      "buffName": 500003,
+      "buffEffectDes": 500044,
+      "buffGroup": 1015,
+      "overlayCount": 1,
+      "effectValue": [
+        10.0
+      ],
+      "timeType": 1,
+      "buffTime": 9.0,
+      "buffType": 2,
+      "dispelType": 1,
+      "IsControlBuff": 0,
+      "IsHideIcon": 0,
+      "scriptsName": "b_1015"
+    },
+    {
+      "ID": 10161,
+      "nameTest": "冰魄牢域",
+      "decTest": "乌龟的技能,神龟的所有主动伤害型技能命中目标后都会施加一层寒气,\n寒气每叠到{0}层时,消耗所有层寒气对敌人照成{0}秒的冰冻效果",
+      "icon": "icon_b1016",
+      "buffName": 500003,
+      "buffEffectDes": 500044,
+      "buffGroup": 1016,
+      "overlayCount": 1,
+      "effectValue": [
+        10.0,
+        2.0
+      ],
+      "timeType": 1,
+      "buffTime": 9.0,
+      "buffType": 2,
+      "dispelType": 1,
+      "IsControlBuff": 0,
+      "IsHideIcon": 0,
+      "scriptsName": "b_1016"
+    },
+    {
+      "ID": 10171,
+      "nameTest": "鼠疫",
+      "decTest": "敌人受到每秒受到{0}*层数的伤害,持续期间攻击力降低{1}%*层数",
+      "icon": "icon_b1017",
+      "buffName": 500003,
+      "buffEffectDes": 500044,
+      "buffGroup": 1017,
+      "overlayCount": 10,
+      "effectValue": [
+        10.0,
+        1.0
+      ],
+      "timeType": 1,
+      "buffTime": 9.0,
+      "buffType": 2,
+      "dispelType": 1,
+      "IsControlBuff": 0,
+      "IsHideIcon": 0,
+      "scriptsName": "b_1017"
+    },
+    {
+      "ID": 10181,
+      "nameTest": "感电",
+      "decTest": "麻痹敌人,敌人的身体受到麻痹,有{0}%*层数的概率是功法无法进入释放状态",
+      "icon": "icon_b1018",
+      "buffName": 500003,
+      "buffEffectDes": 500044,
+      "buffGroup": 1018,
+      "overlayCount": 10,
+      "effectValue": [
+        3.0
+      ],
+      "timeType": 1,
+      "buffTime": 9.0,
+      "buffType": 2,
+      "dispelType": 1,
+      "IsControlBuff": 0,
+      "IsHideIcon": 0,
+      "scriptsName": "b_1018"
     }
   ]
 }

+ 26 - 16
Assets/Res/Config/EventConditionConfig.json

@@ -26,7 +26,7 @@
       "Operation": null,
       "ConditionType": 5,
       "ConditionPara": [
-        100001
+        1001
       ],
       "finishCount": 5
     },
@@ -56,17 +56,17 @@
     },
     {
       "ID": 7,
-      "message": 2362,
+      "message": 2843,
       "Operation": null,
       "ConditionType": 5,
       "ConditionPara": [
-        100001
+        1002
       ],
       "finishCount": 1
     },
     {
       "ID": 8,
-      "message": 2363,
+      "message": 2844,
       "Operation": null,
       "ConditionType": 3,
       "ConditionPara": [
@@ -76,27 +76,27 @@
     },
     {
       "ID": 9,
-      "message": 2364,
+      "message": 2845,
       "Operation": null,
       "ConditionType": 5,
       "ConditionPara": [
-        100004
+        1003
       ],
       "finishCount": 1
     },
     {
       "ID": 10,
-      "message": 2365,
+      "message": 2846,
       "Operation": null,
       "ConditionType": 5,
       "ConditionPara": [
-        100001
+        1004
       ],
       "finishCount": 3
     },
     {
       "ID": 11,
-      "message": 2366,
+      "message": 2847,
       "Operation": null,
       "ConditionType": 6,
       "ConditionPara": [
@@ -106,27 +106,27 @@
     },
     {
       "ID": 12,
-      "message": 2367,
+      "message": 2848,
       "Operation": null,
       "ConditionType": 5,
       "ConditionPara": [
-        100004
+        1005
       ],
       "finishCount": 1
     },
     {
       "ID": 13,
-      "message": 2368,
+      "message": 2849,
       "Operation": null,
       "ConditionType": 5,
       "ConditionPara": [
-        100004
+        1006
       ],
       "finishCount": 1
     },
     {
       "ID": 14,
-      "message": 2369,
+      "message": 2850,
       "Operation": null,
       "ConditionType": 3,
       "ConditionPara": [
@@ -136,11 +136,21 @@
     },
     {
       "ID": 15,
-      "message": 2370,
+      "message": 2851,
+      "Operation": null,
+      "ConditionType": 5,
+      "ConditionPara": [
+        1007
+      ],
+      "finishCount": 1
+    },
+    {
+      "ID": 17,
+      "message": 2852,
       "Operation": null,
       "ConditionType": 5,
       "ConditionPara": [
-        100004
+        1008
       ],
       "finishCount": 1
     }

+ 209 - 52
Assets/Res/Config/EventConfig.json

@@ -543,8 +543,8 @@
       "XiantuID": 1,
       "EventConditionId": null,
       "EventCount": null,
-      "EventName": 2320,
-      "Description": 2341
+      "EventName": 2801,
+      "Description": 2822
     },
     {
       "ID": 10008,
@@ -581,8 +581,8 @@
       "XiantuID": 1,
       "EventConditionId": null,
       "EventCount": null,
-      "EventName": 2321,
-      "Description": 2342
+      "EventName": 2802,
+      "Description": 2823
     },
     {
       "ID": 10009,
@@ -608,8 +608,8 @@
       "XiantuID": 1,
       "EventConditionId": null,
       "EventCount": null,
-      "EventName": 2322,
-      "Description": 2343
+      "EventName": 2803,
+      "Description": 2824
     },
     {
       "ID": 10010,
@@ -627,14 +627,17 @@
       "PrizeNums": [
         10
       ],
+      "RelatedEvents": [
+        30001
+      ],
       "RefreshProbability": null,
       "RefreshCount": null,
       "placeID": 1,
       "XiantuID": 1,
       "EventConditionId": null,
       "EventCount": null,
-      "EventName": 2323,
-      "Description": 2344
+      "EventName": 2804,
+      "Description": 2825
     },
     {
       "ID": 10011,
@@ -658,8 +661,8 @@
       "XiantuID": 1,
       "EventConditionId": null,
       "EventCount": null,
-      "EventName": 2324,
-      "Description": 2345
+      "EventName": 2805,
+      "Description": 2826
     },
     {
       "ID": 10012,
@@ -694,8 +697,8 @@
       "XiantuID": 1,
       "EventConditionId": null,
       "EventCount": null,
-      "EventName": 2325,
-      "Description": 2346
+      "EventName": 2806,
+      "Description": 2827
     },
     {
       "ID": 10013,
@@ -734,8 +737,8 @@
       "XiantuID": 1,
       "EventConditionId": null,
       "EventCount": null,
-      "EventName": 2326,
-      "Description": 2347
+      "EventName": 2807,
+      "Description": 2828
     },
     {
       "ID": 10014,
@@ -766,8 +769,8 @@
       "XiantuID": 1,
       "EventConditionId": null,
       "EventCount": null,
-      "EventName": 2327,
-      "Description": 2348
+      "EventName": 2808,
+      "Description": 2829
     },
     {
       "ID": 10015,
@@ -798,8 +801,8 @@
       "XiantuID": 1,
       "EventConditionId": null,
       "EventCount": null,
-      "EventName": 2328,
-      "Description": 2349
+      "EventName": 2809,
+      "Description": 2830
     },
     {
       "ID": 10016,
@@ -835,8 +838,8 @@
       "XiantuID": 1,
       "EventConditionId": null,
       "EventCount": null,
-      "EventName": 2329,
-      "Description": 2350
+      "EventName": 2810,
+      "Description": 2831
     },
     {
       "ID": 10017,
@@ -869,8 +872,8 @@
       "XiantuID": 1,
       "EventConditionId": null,
       "EventCount": null,
-      "EventName": 2330,
-      "Description": 2351
+      "EventName": 2811,
+      "Description": 2832
     },
     {
       "ID": 10018,
@@ -890,11 +893,7 @@
         1001813,
         1001814,
         1001815,
-        1001816,
-        1001817,
-        1001818,
-        1001819,
-        1001820
+        1001816
       ],
       "EventTriggerType": 4,
       "EventTag": 1,
@@ -913,8 +912,8 @@
       "XiantuID": 1,
       "EventConditionId": null,
       "EventCount": null,
-      "EventName": 2331,
-      "Description": 2352
+      "EventName": 2812,
+      "Description": 2833
     },
     {
       "ID": 10019,
@@ -939,8 +938,8 @@
       "XiantuID": 1,
       "EventConditionId": null,
       "EventCount": null,
-      "EventName": 2332,
-      "Description": 2353
+      "EventName": 2813,
+      "Description": 2834
     },
     {
       "ID": 10020,
@@ -967,8 +966,8 @@
       "XiantuID": 1,
       "EventConditionId": null,
       "EventCount": null,
-      "EventName": 2333,
-      "Description": 2354
+      "EventName": 2814,
+      "Description": 2835
     },
     {
       "ID": 10021,
@@ -1003,8 +1002,8 @@
       "XiantuID": 1,
       "EventConditionId": null,
       "EventCount": null,
-      "EventName": 2334,
-      "Description": 2355
+      "EventName": 2815,
+      "Description": 2836
     },
     {
       "ID": 10022,
@@ -1030,13 +1029,24 @@
       "XiantuID": 1,
       "EventConditionId": null,
       "EventCount": null,
-      "EventName": 2335,
-      "Description": 2356
+      "EventName": 2816,
+      "Description": 2837
     },
     {
       "ID": 10023,
       "EventLinksId": [
-        1002301
+        1002301,
+        1002302,
+        1002303,
+        1002304,
+        1002305,
+        1002306,
+        1002307,
+        1002308,
+        1002309,
+        1002310,
+        1002311,
+        1002312
       ],
       "EventTriggerType": 4,
       "EventTag": 1,
@@ -1055,11 +1065,20 @@
       "XiantuID": 1,
       "EventConditionId": null,
       "EventCount": null,
-      "EventName": 2336,
-      "Description": 2357
+      "EventName": 2817,
+      "Description": 2838
     },
     {
       "ID": 10024,
+      "EventLinksId": [
+        1002401,
+        1002402,
+        1002403,
+        1002404,
+        1002405,
+        1002406,
+        1002407
+      ],
       "EventTriggerType": 4,
       "EventTag": 1,
       "EventType": 1,
@@ -1077,11 +1096,22 @@
       "XiantuID": 1,
       "EventConditionId": null,
       "EventCount": null,
-      "EventName": 2337,
-      "Description": 2358
+      "EventName": 2818,
+      "Description": 2839
     },
     {
       "ID": 10025,
+      "EventLinksId": [
+        1002501,
+        1002502,
+        1002503,
+        1002504,
+        1002505,
+        1002506,
+        1002507,
+        1002508,
+        1002509
+      ],
       "EventTriggerType": 4,
       "EventTag": 1,
       "EventType": 1,
@@ -1099,11 +1129,14 @@
       "XiantuID": 1,
       "EventConditionId": null,
       "EventCount": null,
-      "EventName": 2338,
-      "Description": 2359
+      "EventName": 2819,
+      "Description": 2840
     },
     {
       "ID": 10026,
+      "EventLinksId": [
+        1002601
+      ],
       "EventTriggerType": 4,
       "EventTag": 1,
       "EventType": 1,
@@ -1121,8 +1154,8 @@
       "XiantuID": 1,
       "EventConditionId": null,
       "EventCount": null,
-      "EventName": 2339,
-      "Description": 2360
+      "EventName": 2820,
+      "Description": 2841
     },
     {
       "ID": 10027,
@@ -1143,8 +1176,8 @@
       "XiantuID": 1,
       "EventConditionId": null,
       "EventCount": null,
-      "EventName": 2340,
-      "Description": 2361
+      "EventName": 2821,
+      "Description": 2842
     },
     {
       "ID": 1001,
@@ -1356,10 +1389,6 @@
     },
     {
       "ID": 9025,
-      "EventLinksId": [
-        9025,
-        9026
-      ],
       "EventTriggerType": 6,
       "EventTag": 3,
       "EventType": 1,
@@ -1432,6 +1461,134 @@
       "EventCount": null,
       "EventName": 2071,
       "Description": 2072
+    },
+    {
+      "ID": 30001,
+      "EventTriggerType": 99,
+      "EventTag": 6,
+      "EventType": null,
+      "Score": null,
+      "EventQuality": null,
+      "RefreshProbability": 50,
+      "RefreshCount": 5,
+      "placeID": null,
+      "XiantuID": null,
+      "EventConditionId": null,
+      "EventCount": null,
+      "EventName": null,
+      "Description": null
+    },
+    {
+      "ID": 30002,
+      "EventTriggerType": 99,
+      "EventTag": 6,
+      "EventType": null,
+      "Score": null,
+      "EventQuality": null,
+      "RefreshProbability": 50,
+      "RefreshCount": 1,
+      "placeID": null,
+      "XiantuID": null,
+      "EventConditionId": null,
+      "EventCount": null,
+      "EventName": null,
+      "Description": null
+    },
+    {
+      "ID": 30003,
+      "EventTriggerType": 99,
+      "EventTag": 6,
+      "EventType": null,
+      "Score": null,
+      "EventQuality": null,
+      "RefreshProbability": 50,
+      "RefreshCount": 1,
+      "placeID": null,
+      "XiantuID": null,
+      "EventConditionId": null,
+      "EventCount": null,
+      "EventName": null,
+      "Description": null
+    },
+    {
+      "ID": 30004,
+      "EventTriggerType": 99,
+      "EventTag": 6,
+      "EventType": null,
+      "Score": null,
+      "EventQuality": null,
+      "RefreshProbability": 50,
+      "RefreshCount": 3,
+      "placeID": null,
+      "XiantuID": null,
+      "EventConditionId": null,
+      "EventCount": null,
+      "EventName": null,
+      "Description": null
+    },
+    {
+      "ID": 30005,
+      "EventTriggerType": 99,
+      "EventTag": 6,
+      "EventType": null,
+      "Score": null,
+      "EventQuality": null,
+      "RefreshProbability": 50,
+      "RefreshCount": 1,
+      "placeID": null,
+      "XiantuID": null,
+      "EventConditionId": null,
+      "EventCount": null,
+      "EventName": null,
+      "Description": null
+    },
+    {
+      "ID": 30006,
+      "EventTriggerType": 99,
+      "EventTag": 6,
+      "EventType": null,
+      "Score": null,
+      "EventQuality": null,
+      "RefreshProbability": 50,
+      "RefreshCount": 1,
+      "placeID": null,
+      "XiantuID": null,
+      "EventConditionId": null,
+      "EventCount": null,
+      "EventName": null,
+      "Description": null
+    },
+    {
+      "ID": 30007,
+      "EventTriggerType": 99,
+      "EventTag": 6,
+      "EventType": null,
+      "Score": null,
+      "EventQuality": null,
+      "RefreshProbability": 50,
+      "RefreshCount": 1,
+      "placeID": null,
+      "XiantuID": null,
+      "EventConditionId": null,
+      "EventCount": null,
+      "EventName": null,
+      "Description": null
+    },
+    {
+      "ID": 30008,
+      "EventTriggerType": 99,
+      "EventTag": 6,
+      "EventType": null,
+      "Score": null,
+      "EventQuality": null,
+      "RefreshProbability": 50,
+      "RefreshCount": 1,
+      "placeID": null,
+      "XiantuID": null,
+      "EventConditionId": null,
+      "EventCount": null,
+      "EventName": null,
+      "Description": null
     }
   ]
 }

+ 476 - 2
Assets/Res/Config/EventLinkConfig.json

@@ -3742,17 +3742,491 @@
       "ID": 1002301,
       "conciseEventMessage": 2318,
       "EventConditionMessage": null,
-      "NPCID": null,
+      "NPCID": 111,
       "LanID": [
         2319
       ],
       "DialogueType": null,
       "EventID": 10023,
       "optionType": null,
+      "ResultType": 1,
+      "ResultOptions": [
+        1002302
+      ]
+    },
+    {
+      "ID": 1002302,
+      "conciseEventMessage": 2318,
+      "EventConditionMessage": null,
+      "NPCID": 111,
+      "LanID": [
+        2320
+      ],
+      "DialogueType": null,
+      "EventID": 10023,
+      "optionType": 1,
+      "optionPara1": [
+        1002303
+      ],
+      "optionPara2": [
+        2321
+      ],
+      "ResultType": null
+    },
+    {
+      "ID": 1002303,
+      "conciseEventMessage": 2318,
+      "EventConditionMessage": null,
+      "NPCID": 111,
+      "LanID": [
+        2322
+      ],
+      "DialogueType": null,
+      "EventID": 10023,
+      "optionType": null,
+      "ResultType": 1,
+      "ResultOptions": [
+        1002304
+      ]
+    },
+    {
+      "ID": 1002304,
+      "conciseEventMessage": 2318,
+      "EventConditionMessage": null,
+      "NPCID": 100,
+      "LanID": [
+        2323
+      ],
+      "DialogueType": null,
+      "EventID": 10023,
+      "optionType": null,
+      "ResultType": 1,
+      "ResultOptions": [
+        1002305
+      ]
+    },
+    {
+      "ID": 1002305,
+      "conciseEventMessage": 2318,
+      "EventConditionMessage": null,
+      "NPCID": 111,
+      "LanID": [
+        2324
+      ],
+      "DialogueType": null,
+      "EventID": 10023,
+      "optionType": 1,
+      "optionPara1": [
+        1002306
+      ],
+      "optionPara2": [
+        2325
+      ],
+      "ResultType": null
+    },
+    {
+      "ID": 1002306,
+      "conciseEventMessage": 2318,
+      "EventConditionMessage": null,
+      "NPCID": 111,
+      "LanID": [
+        2326
+      ],
+      "DialogueType": null,
+      "EventID": 10023,
+      "optionType": 1,
+      "optionPara1": [
+        1002307
+      ],
+      "optionPara2": [
+        2327
+      ],
+      "ResultType": null
+    },
+    {
+      "ID": 1002307,
+      "conciseEventMessage": 2318,
+      "EventConditionMessage": null,
+      "NPCID": 111,
+      "LanID": [
+        2328
+      ],
+      "DialogueType": null,
+      "EventID": 10023,
+      "optionType": null,
+      "ResultType": 1,
+      "ResultOptions": [
+        1002308
+      ]
+    },
+    {
+      "ID": 1002308,
+      "conciseEventMessage": 2318,
+      "EventConditionMessage": null,
+      "NPCID": 100,
+      "LanID": [
+        2329
+      ],
+      "DialogueType": null,
+      "EventID": 10023,
+      "optionType": 1,
+      "optionPara1": [
+        1002309
+      ],
+      "optionPara2": [
+        2330
+      ],
+      "ResultType": null
+    },
+    {
+      "ID": 1002309,
+      "conciseEventMessage": 2318,
+      "EventConditionMessage": null,
+      "NPCID": 111,
+      "LanID": [
+        2331
+      ],
+      "DialogueType": null,
+      "EventID": 10023,
+      "optionType": null,
+      "ResultType": 1,
+      "ResultOptions": [
+        1002310
+      ]
+    },
+    {
+      "ID": 1002310,
+      "conciseEventMessage": 2318,
+      "EventConditionMessage": null,
+      "NPCID": 111,
+      "LanID": [
+        2332
+      ],
+      "DialogueType": null,
+      "EventID": 10023,
+      "optionType": 1,
+      "optionPara1": [
+        1002311
+      ],
+      "optionPara2": [
+        2333
+      ],
+      "ResultType": null
+    },
+    {
+      "ID": 1002311,
+      "conciseEventMessage": 2318,
+      "EventConditionMessage": null,
+      "NPCID": 111,
+      "LanID": [
+        2334
+      ],
+      "DialogueType": null,
+      "EventID": 10023,
+      "optionType": null,
+      "ResultType": 1,
+      "ResultOptions": [
+        1002312
+      ]
+    },
+    {
+      "ID": 1002312,
+      "conciseEventMessage": 2318,
+      "EventConditionMessage": null,
+      "NPCID": 111,
+      "LanID": [
+        2335
+      ],
+      "DialogueType": null,
+      "EventID": 10023,
+      "optionType": 1,
+      "optionPara1": [
+        0
+      ],
+      "optionPara2": [
+        2336
+      ],
+      "ResultType": null
+    },
+    {
+      "ID": 1002401,
+      "conciseEventMessage": 2337,
+      "EventConditionMessage": null,
+      "NPCID": null,
+      "LanID": [
+        2338
+      ],
+      "DialogueType": null,
+      "EventID": 10024,
+      "optionType": null,
+      "ResultType": 1,
+      "ResultOptions": [
+        1002402
+      ]
+    },
+    {
+      "ID": 1002402,
+      "conciseEventMessage": 2337,
+      "EventConditionMessage": null,
+      "NPCID": null,
+      "LanID": [
+        2339
+      ],
+      "DialogueType": null,
+      "EventID": 10024,
+      "ConditionId": [
+        17
+      ],
+      "optionType": null,
+      "ResultType": 1,
+      "ResultOptions": [
+        1002403
+      ]
+    },
+    {
+      "ID": 1002403,
+      "conciseEventMessage": 2337,
+      "EventConditionMessage": null,
+      "NPCID": 100,
+      "LanID": [
+        2340
+      ],
+      "DialogueType": null,
+      "EventID": 10024,
+      "optionType": null,
+      "ResultType": 1,
+      "ResultOptions": [
+        1002404
+      ]
+    },
+    {
+      "ID": 1002404,
+      "conciseEventMessage": 2337,
+      "EventConditionMessage": null,
+      "NPCID": 110,
+      "LanID": [
+        2341
+      ],
+      "DialogueType": null,
+      "EventID": 10024,
+      "optionType": null,
+      "ResultType": 1,
+      "ResultOptions": [
+        1002405
+      ]
+    },
+    {
+      "ID": 1002405,
+      "conciseEventMessage": 2337,
+      "EventConditionMessage": null,
+      "NPCID": 100,
+      "LanID": [
+        2342
+      ],
+      "DialogueType": null,
+      "EventID": 10024,
+      "optionType": null,
+      "ResultType": 1,
+      "ResultOptions": [
+        1002406
+      ]
+    },
+    {
+      "ID": 1002406,
+      "conciseEventMessage": 2337,
+      "EventConditionMessage": null,
+      "NPCID": 110,
+      "LanID": [
+        2343
+      ],
+      "DialogueType": null,
+      "EventID": 10024,
+      "optionType": null,
+      "ResultType": 1,
+      "ResultOptions": [
+        1002407
+      ]
+    },
+    {
+      "ID": 1002407,
+      "conciseEventMessage": 2337,
+      "EventConditionMessage": null,
+      "NPCID": 100,
+      "LanID": [
+        2344
+      ],
+      "DialogueType": null,
+      "EventID": 10024,
+      "optionType": null,
+      "PrizeIDs": [
+        20001
+      ],
+      "PrizeNums": [
+        1
+      ],
       "ResultType": 3,
       "ResultOptions": [
-        10024
+        10025
+      ]
+    },
+    {
+      "ID": 1002501,
+      "conciseEventMessage": 2345,
+      "EventConditionMessage": null,
+      "NPCID": 111,
+      "LanID": [
+        2346
+      ],
+      "DialogueType": null,
+      "EventID": 10025,
+      "optionType": null,
+      "ResultType": 1,
+      "ResultOptions": [
+        1002502
       ]
+    },
+    {
+      "ID": 1002502,
+      "conciseEventMessage": 2345,
+      "EventConditionMessage": null,
+      "NPCID": 100,
+      "LanID": [
+        2347
+      ],
+      "DialogueType": null,
+      "EventID": 10025,
+      "optionType": null,
+      "ResultType": 1,
+      "ResultOptions": [
+        1002503
+      ]
+    },
+    {
+      "ID": 1002503,
+      "conciseEventMessage": 2345,
+      "EventConditionMessage": null,
+      "NPCID": 111,
+      "LanID": [
+        2348
+      ],
+      "DialogueType": null,
+      "EventID": 10025,
+      "optionType": 1,
+      "optionPara1": [
+        1002504
+      ],
+      "optionPara2": [
+        2349
+      ],
+      "ResultType": null
+    },
+    {
+      "ID": 1002504,
+      "conciseEventMessage": 2345,
+      "EventConditionMessage": null,
+      "NPCID": 111,
+      "LanID": [
+        2350
+      ],
+      "DialogueType": null,
+      "EventID": 10025,
+      "optionType": null,
+      "ResultType": 1,
+      "ResultOptions": [
+        1002505
+      ]
+    },
+    {
+      "ID": 1002505,
+      "conciseEventMessage": 2345,
+      "EventConditionMessage": null,
+      "NPCID": 111,
+      "LanID": [
+        2351
+      ],
+      "DialogueType": null,
+      "EventID": 10025,
+      "optionType": 1,
+      "optionPara1": [
+        1002506,
+        1002507
+      ],
+      "optionPara2": [
+        2352,
+        2353
+      ],
+      "ResultType": null
+    },
+    {
+      "ID": 1002506,
+      "conciseEventMessage": 2345,
+      "EventConditionMessage": null,
+      "NPCID": 111,
+      "LanID": [
+        2354
+      ],
+      "DialogueType": null,
+      "EventID": 10025,
+      "optionType": 1,
+      "optionPara1": [
+        1002509
+      ],
+      "ResultType": null
+    },
+    {
+      "ID": 1002507,
+      "conciseEventMessage": 2345,
+      "EventConditionMessage": null,
+      "NPCID": 111,
+      "LanID": [
+        2355
+      ],
+      "DialogueType": null,
+      "EventID": 10025,
+      "optionType": null,
+      "ResultType": 1,
+      "ResultOptions": [
+        1002508
+      ]
+    },
+    {
+      "ID": 1002508,
+      "conciseEventMessage": 2345,
+      "EventConditionMessage": null,
+      "NPCID": 111,
+      "LanID": [
+        2356
+      ],
+      "DialogueType": null,
+      "EventID": 10025,
+      "optionType": null,
+      "ResultType": 1,
+      "ResultOptions": [
+        1002509
+      ]
+    },
+    {
+      "ID": 1002509,
+      "conciseEventMessage": 2345,
+      "EventConditionMessage": null,
+      "NPCID": null,
+      "DialogueType": null,
+      "EventID": 10025,
+      "optionType": null,
+      "ResultType": 3,
+      "ResultOptions": [
+        10026
+      ]
+    },
+    {
+      "ID": 1002601,
+      "conciseEventMessage": 2357,
+      "EventConditionMessage": null,
+      "NPCID": null,
+      "DialogueType": null,
+      "EventID": 10026,
+      "optionType": 2,
+      "ResultType": 2
     }
   ]
 }

+ 6 - 0
Assets/Res/Config/EventNPC.json

@@ -131,6 +131,12 @@
       "name": 3010,
       "ID_1": null,
       "DaoyouID": null
+    },
+    {
+      "ID": 111,
+      "name": null,
+      "ID_1": null,
+      "DaoyouID": null
     }
   ]
 }

+ 25 - 0
Assets/Res/Config/ItemConfig.json

@@ -3228,6 +3228,31 @@
       "associateID": null,
       "sort": null,
       "itemDesc_1": null
+    },
+    {
+      "ID": 20001,
+      "itemName": null,
+      "itemDesc": null,
+      "icon": "icon_item_20001",
+      "itemTag": 21,
+      "quality": 3,
+      "stack": 0,
+      "isSell": false,
+      "rewardsNum": 0,
+      "isVisible": 1,
+      "isUse": false,
+      "useLimit": null,
+      "costItemNum": 0,
+      "rewardsItems": [
+        0
+      ],
+      "rewardsItemNums": [
+        0
+      ],
+      "stack_1": 0,
+      "associateID": null,
+      "sort": null,
+      "itemDesc_1": null
     }
   ]
 }

+ 55 - 55
Assets/Res/Config/LanguageChineseConfig.json

@@ -9270,19 +9270,19 @@
     },
     {
       "ID": 2318,
-      "txt": ""
+      "txt": "听惠子吹嘘种子来历,并答应帮他种葫芦"
     },
     {
       "ID": 2319,
-      "txt": ""
+      "txt": "(惠子手持一颗七彩流光的种子,满脸得意)\n“小友!来得正好!瞧我这宝贝——”"
     },
     {
       "ID": 2320,
-      "txt": ""
+      "txt": "(惠子举起一颗种子,阳光照射下熠熠生辉)\n“此乃‘五石葫芦’之种!虽然我也不知道能种出来什么,但绝非凡品,一定大有用处!”"
     },
     {
       "ID": 2321,
-      "txt": ""
+      "txt": "这么厉害?哪来的?"
     },
     {
       "ID": 2322,
@@ -11202,207 +11202,207 @@
     },
     {
       "ID": 2801,
-      "txt": ""
+      "txt": "风中洞府1"
     },
     {
       "ID": 2802,
-      "txt": ""
+      "txt": "风中洞府2"
     },
     {
       "ID": 2803,
-      "txt": ""
+      "txt": "风灵之力"
     },
     {
       "ID": 2804,
-      "txt": ""
+      "txt": "北海深处1"
     },
     {
       "ID": 2805,
-      "txt": ""
+      "txt": "北海深处2"
     },
     {
       "ID": 2806,
-      "txt": ""
+      "txt": "尧之都"
     },
     {
       "ID": 2807,
-      "txt": ""
+      "txt": "山林清音"
     },
     {
       "ID": 2808,
-      "txt": ""
+      "txt": "山中劳作"
     },
     {
       "ID": 2809,
-      "txt": ""
+      "txt": "风起夜战"
     },
     {
       "ID": 2810,
-      "txt": ""
+      "txt": "吃茶三问"
     },
     {
       "ID": 2811,
-      "txt": ""
+      "txt": "尧让天下"
     },
     {
       "ID": 2812,
-      "txt": ""
+      "txt": "无用之树"
     },
     {
       "ID": 2813,
-      "txt": ""
+      "txt": "樗木之灵"
     },
     {
       "ID": 2814,
-      "txt": ""
+      "txt": "游尧都"
     },
     {
       "ID": 2815,
-      "txt": ""
+      "txt": "再见尧帝"
     },
     {
       "ID": 2816,
-      "txt": ""
+      "txt": "云海漫行"
     },
     {
       "ID": 2817,
-      "txt": ""
+      "txt": "初见惠子"
     },
     {
       "ID": 2818,
-      "txt": ""
+      "txt": "葫芦肥料"
     },
     {
       "ID": 2819,
-      "txt": ""
+      "txt": "藐姑射山"
     },
     {
       "ID": 2820,
-      "txt": ""
+      "txt": "炼器师"
     },
     {
       "ID": 2821,
-      "txt": ""
+      "txt": "忘火剑"
     },
     {
       "ID": 2822,
-      "txt": ""
+      "txt": "击败痴道人"
     },
     {
       "ID": 2823,
-      "txt": ""
+      "txt": "疯痴相聚"
     },
     {
       "ID": 2824,
-      "txt": ""
+      "txt": "筑基后期"
     },
     {
       "ID": 2825,
-      "txt": ""
+      "txt": "妖兽横行"
     },
     {
       "ID": 2826,
-      "txt": ""
+      "txt": "遇见鲲鹏"
     },
     {
       "ID": 2827,
-      "txt": ""
+      "txt": "尧让天下"
     },
     {
       "ID": 2828,
-      "txt": ""
+      "txt": "访贤许由"
     },
     {
       "ID": 2829,
-      "txt": ""
+      "txt": "割草喝茶"
     },
     {
       "ID": 2830,
-      "txt": ""
+      "txt": "再来一杯"
     },
     {
       "ID": 2831,
-      "txt": ""
+      "txt": "战胜妖王"
     },
     {
       "ID": 2832,
-      "txt": ""
+      "txt": "复命尧帝"
     },
     {
       "ID": 2833,
-      "txt": ""
+      "txt": "树下闲话"
     },
     {
       "ID": 2834,
-      "txt": ""
+      "txt": "切磋切磋"
     },
     {
       "ID": 2835,
-      "txt": ""
+      "txt": "金丹前期"
     },
     {
       "ID": 2836,
-      "txt": ""
+      "txt": "仙山传说"
     },
     {
       "ID": 2837,
-      "txt": ""
+      "txt": "入山幻阵"
     },
     {
       "ID": 2838,
-      "txt": ""
+      "txt": "葫芦种子"
     },
     {
       "ID": 2839,
-      "txt": ""
+      "txt": "天肥地肥"
     },
     {
       "ID": 2840,
-      "txt": ""
+      "txt": "登山"
     },
     {
       "ID": 2841,
-      "txt": ""
+      "txt": "重铸忘火剑"
     },
     {
       "ID": 2842,
-      "txt": ""
+      "txt": "护法"
     },
     {
       "ID": 2843,
-      "txt": ""
+      "txt": "- 击败结界兽{0}/{1}"
     },
     {
       "ID": 2844,
-      "txt": ""
+      "txt": "- 达到境界:筑基-后期{0}/{1}"
     },
     {
       "ID": 2845,
-      "txt": ""
+      "txt": "- 击杀妖兽{0}/{1}"
     },
     {
       "ID": 2846,
-      "txt": ""
+      "txt": "- 击败后山小妖{0}/{1}"
     },
     {
       "ID": 2847,
-      "txt": ""
+      "txt": "- 收集灵草种子{0}/{1}"
     },
     {
       "ID": 2848,
-      "txt": ""
+      "txt": "- 击败夜袭的妖兽{0}/{1}"
     },
     {
       "ID": 2849,
-      "txt": ""
+      "txt": "- 击败峰顶的妖王{0}/{1}"
     },
     {
       "ID": 2850,
-      "txt": ""
+      "txt": "- 境界达到[金丹-前期]{0}/{1}"
     },
     {
       "ID": 2851,
-      "txt": ""
+      "txt": "- 击败仙山的阵眼妖兽{0}/{1}"
     },
     {
       "ID": 2852,

+ 80 - 0
Assets/Res/Config/LevelbattleConfig.json

@@ -39,6 +39,86 @@
       "combatType": 1,
       "MonsterGroupTruePower": 100,
       "MonsterGroupPower": 100
+    },
+    {
+      "ID": 1001,
+      "Group": [
+        100001
+      ],
+      "combatTime": 0,
+      "combatType": null,
+      "MonsterGroupTruePower": null,
+      "MonsterGroupPower": null
+    },
+    {
+      "ID": 1002,
+      "Group": [
+        100002
+      ],
+      "combatTime": 0,
+      "combatType": null,
+      "MonsterGroupTruePower": null,
+      "MonsterGroupPower": null
+    },
+    {
+      "ID": 1003,
+      "Group": [
+        100003
+      ],
+      "combatTime": 0,
+      "combatType": null,
+      "MonsterGroupTruePower": null,
+      "MonsterGroupPower": null
+    },
+    {
+      "ID": 1004,
+      "Group": [
+        100001
+      ],
+      "combatTime": 0,
+      "combatType": null,
+      "MonsterGroupTruePower": null,
+      "MonsterGroupPower": null
+    },
+    {
+      "ID": 1005,
+      "Group": [
+        100002
+      ],
+      "combatTime": 0,
+      "combatType": null,
+      "MonsterGroupTruePower": null,
+      "MonsterGroupPower": null
+    },
+    {
+      "ID": 1006,
+      "Group": [
+        100004
+      ],
+      "combatTime": 0,
+      "combatType": null,
+      "MonsterGroupTruePower": null,
+      "MonsterGroupPower": null
+    },
+    {
+      "ID": 1007,
+      "Group": [
+        100001
+      ],
+      "combatTime": 0,
+      "combatType": null,
+      "MonsterGroupTruePower": null,
+      "MonsterGroupPower": null
+    },
+    {
+      "ID": 1008,
+      "Group": [
+        100001
+      ],
+      "combatTime": 0,
+      "combatType": null,
+      "MonsterGroupTruePower": null,
+      "MonsterGroupPower": null
     }
   ]
 }

+ 2 - 2
Assets/Scenes/testCombat.scene

@@ -2241,7 +2241,7 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 6090200664286961698, guid: 1076536f8fdf47942aa287592c6a8b19, type: 3}
       propertyPath: enemyHeroInfo.Array.data[0].level
-      value: 150
+      value: 352
       objectReference: {fileID: 0}
     - target: {fileID: 6090200664286961698, guid: 1076536f8fdf47942aa287592c6a8b19, type: 3}
       propertyPath: enemyHeroInfo.Array.data[1].level
@@ -2317,7 +2317,7 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 9214784224709271120, guid: 1076536f8fdf47942aa287592c6a8b19, type: 3}
       propertyPath: m_IsActive
-      value: 0
+      value: 1
       objectReference: {fileID: 0}
     m_RemovedComponents: []
     m_RemovedGameObjects: []

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

@@ -33,7 +33,7 @@ public int EventTriggerType;
 
 
 		/// <summary>
-		///tag 1主线2支线 3通用 4地图通用 5道友
+		///tag 1主线2支线 3通用 4地图通用 5道友6任务
 		/// </summary>
 public int EventTag;
 

+ 9 - 0
Assets/Scripts/GameLogic/Combat/Buff/b_1015.cs

@@ -0,0 +1,9 @@
+namespace GameLogic.Combat.Buff
+{
+    /// <summary>
+    /// 无敌,不受控制
+    /// </summary>
+    public class b_1015 : BuffBasic
+    {
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Buff/b_1015.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: d0de25616e144283b32c6f50045a48b2
+timeCreated: 1750316423

+ 48 - 0
Assets/Scripts/GameLogic/Combat/Buff/b_1016.cs

@@ -0,0 +1,48 @@
+using Common.Utility.CombatEvent;
+using Fort23.Core;
+using GameLogic.Combat.CombatTool;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical;
+
+namespace GameLogic.Combat.Buff
+{
+    /// <summary>
+    /// 冰魄牢域
+    /// 乌龟的技能,神龟的所有主动伤害型技能命中目标后都会施加一层寒气,
+    ///寒气每叠到{0}层时,消耗所有层寒气对敌人照成{0}秒的冰冻效果
+    /// </summary>
+    public class b_1016 : BuffBasic
+    {
+        protected override void ProInit()
+        {
+            CombatEventManager.Instance.AddEventListener(CombatEventType.HeroInjured, HeroInjured);
+        }
+
+        private void HeroInjured(IEventData ieveEventData)
+        {
+            HeroInjuredEventData heroInjuredEventData = ieveEventData as HeroInjuredEventData;
+            if (heroInjuredEventData.HarmReturnInfo.source == combatHeroEntity)
+            {
+                if (heroInjuredEventData.HarmReturnInfo.attType.HasFlag(AttType.Skill) &&
+                    !heroInjuredEventData.HarmReturnInfo.attType.HasFlag(AttType.FanJi))
+                {
+                    BuffInfo buffInfo = BuffInfo.GetBuffInfo(10011, 1);
+                    BuffBasic buffBasic =
+                        heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity.BuffControl.AddBuff(
+                            combatHeroEntity, buffInfo);
+                    if (buffBasic.buffCount >= buffInfo.BuffConfig.effectValue[0])
+                    {
+                        heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity.BuffControl.RemoveBuff(buffBasic);
+                        BuffInfo buffInfo2 = BuffInfo.GetBuffInfo(10021, buffInfo.BuffConfig.effectValue[1], 1);
+                        heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity.BuffControl.AddBuff(
+                            combatHeroEntity, buffInfo2);
+                    }
+                }
+            }
+        }
+
+        protected override void ProDormancyObj()
+        {
+            CombatEventManager.Instance.RemoveEventListener(CombatEventType.HeroInjured, HeroInjured);
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Buff/b_1016.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 8831b82ddcf347f1a200350c0fa54acb
+timeCreated: 1750326009

+ 50 - 0
Assets/Scripts/GameLogic/Combat/Buff/b_1017.cs

@@ -0,0 +1,50 @@
+using Common.Utility.CombatEvent;
+using Fort23.Core;
+using GameLogic.Combat.CombatTool;
+using GameLogic.Player;
+using UnityEngine;
+
+namespace GameLogic.Combat.Buff
+{
+    /// <summary>
+    /// 鼠疫
+    /// 敌人受到每秒受到{0}*层数的伤害,持续期间攻击力降低{1}*层数
+    /// </summary>
+    public class b_1017 : BuffBasic
+    {
+        /// <summary>
+        /// 添加的攻击力
+        /// </summary>
+        private long addAtt;
+
+        protected override void ProInit()
+        {
+            _jianGe = 1;
+        }
+
+        protected override void UpdateJumping()
+        {
+            float harmbl = buffCount * buffInf.BuffConfig.effectValue[0];
+            long harm = CombatCalculateTool.Instance.GetVlaueRatioForLong(
+                source.CurrCombatHeroInfo.attack.Value, harmbl);
+            CombatCalculateTool.Instance.Harm(source, combatHeroEntity, harm, AttType.Buff, _triggerData,
+                WuXingType.Null, null, HarmType.Buff);
+        }
+
+        protected override void ProUpdateEffect()
+        {
+            source.CurrCombatHeroInfo.attack += addAtt;
+            addAtt = 0;
+            float addAttbl = buffCount * buffInf.BuffConfig.effectValue[1];
+            addAtt = CombatCalculateTool.Instance.GetVlaueRatioForLong(source.CurrCombatHeroInfo.attack.Value,
+                addAttbl);
+            source.CurrCombatHeroInfo.attack -= addAtt;
+        }
+
+        protected override void ProDormancyObj()
+        {
+            source.CurrCombatHeroInfo.attack += addAtt;
+            addAtt = 0;
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Buff/b_1017.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 69554cd7b96b4f1497db01304b14ce6b
+timeCreated: 1750387376

+ 28 - 0
Assets/Scripts/GameLogic/Combat/Buff/b_1018.cs

@@ -0,0 +1,28 @@
+using GameLogic.Combat.CombatTool;
+using GameLogic.Player;
+
+namespace GameLogic.Combat.Buff
+{
+    /// <summary>
+    /// 感电
+    /// 麻痹敌人,敌人的身体受到麻痹,有{0}%*层数的概率是功法无法进入释放状态,没触发一次,消耗一半感电
+    /// </summary>
+    public class b_1018 : BuffBasic
+    {
+        protected override void ProInit()
+        {
+        }
+
+        protected override void UpdateJumping()
+        {
+        }
+
+        protected override void ProUpdateEffect()
+        {
+        }
+
+        protected override void ProDormancyObj()
+        {
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Buff/b_1018.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 53032a7761a345108f57d22e9e4c773b
+timeCreated: 1750399757

+ 4 - 0
Assets/Scripts/GameLogic/Combat/CombatTool/AttType.cs

@@ -9,5 +9,9 @@ namespace GameLogic.Combat.CombatTool
         Skill = 1,
         Buff=2,
         FaBao=4,
+        /// <summary>
+        /// 反击伤害
+        /// </summary>
+        FanJi=8,
     }
 }

+ 13 - 6
Assets/Scripts/GameLogic/Combat/CombatTool/CombatCalculateTool.cs

@@ -90,9 +90,13 @@ namespace GameLogic.Combat.CombatTool
         /// <param name="att">伤害值</param>
         public HarmReturnInfo Harm(CombatHeroEntity source, CombatHeroHitPoint target, long att,
             AttType attType, TriggerData triggerData, WuXingType WuXingType, ISkillFeatures skillFeatures,
-            HarmType harmType = HarmType.Default)
+            HarmType harmType = HarmType.Default, HarmReturnInfo harmReturnInfo = null)
         {
-            HarmReturnInfo harmReturnInfo = CObjectPool.Instance.Fetch<HarmReturnInfo>();
+            if (harmReturnInfo == null)
+            {
+                harmReturnInfo = CObjectPool.Instance.Fetch<HarmReturnInfo>();
+            }
+
             harmReturnInfo.yuanShiAtt = att;
             harmReturnInfo.source = source;
             harmReturnInfo.target = target;
@@ -128,8 +132,11 @@ namespace GameLogic.Combat.CombatTool
 
 
             att = GetVlaueRatioForLong(att, wuxing);
+            long targetDef = target.combatHeroEntity.CurrCombatHeroInfo.defense.Value;
+            targetDef -= GetVlaueRatioForLong(targetDef, harmReturnInfo.ArmorPiercing);
+
             float def =
-                (target.combatHeroEntity.CurrCombatHeroInfo.defense.Value * 100.0f / source.CurrCombatHeroInfo.k);
+                (targetDef * 100.0f / source.CurrCombatHeroInfo.k);
 
 
             int p1_id = (int)def;
@@ -371,8 +378,8 @@ namespace GameLogic.Combat.CombatTool
             int c = myRestrained - targetRestrained;
             long myHp = (long)(a.hp);
             long targetHp = (long)(b.hp);
-            a.pengZhuangHp=myHp;
-            b.pengZhuangHp=targetHp;
+            a.pengZhuangHp = myHp;
+            b.pengZhuangHp = targetHp;
 
             float p2 = 100;
             if (c < 0) //a被压制
@@ -408,7 +415,7 @@ namespace GameLogic.Combat.CombatTool
             GongFaPengZhuangFinishEventData gongFaPengZhu = GongFaPengZhuangFinishEventData.Create();
             gongFaPengZhu.a = a;
             gongFaPengZhu.b = b;
-            CombatEventManager.Instance.Dispatch(CombatEventType.GongFaPengZhuangFinish, gongFaPengZhu,false);
+            CombatEventManager.Instance.Dispatch(CombatEventType.GongFaPengZhuangFinish, gongFaPengZhu, false);
             CombatEventManager.Instance.Dispatch(CombatEventType.GongFaPengZhuangFinish2, gongFaPengZhu);
         }
 

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

@@ -24,10 +24,17 @@ namespace GameLogic.Combat.CombatTool
         public WuXingType WuXingType;
 
         public float QiangDu;
+
         /// <summary>
         /// 是否命中英雄
         /// </summary>
         public bool isHitHero;
+
+        /// <summary>
+        /// 破甲 忽略多少防御
+        /// </summary>
+        public float ArmorPiercing;
+
         public override void Dispose()
         {
             Debug.Log("回收了伤害信息类");
@@ -52,6 +59,7 @@ namespace GameLogic.Combat.CombatTool
             isMiss = false;
             yuanShiAtt = 0;
             att = 0;
+            ArmorPiercing = 0;
         }
     }
 }

+ 14 - 1
Assets/Scripts/GameLogic/Combat/Hero/CombatHeroSkillControlBasic.cs

@@ -40,6 +40,19 @@ namespace GameLogic.Combat.Hero
         {
         }
 
+        public T GetSkillBasic<T>() where T : SkillBasic
+        {
+            for (int i = 0; i < allSkill.Count; i++)
+            {
+                if (allSkill[i] is T)
+                {
+                    return (T)allSkill[i];
+                }
+            }
+
+            return null;
+        }
+
 
         public SkillBasic GetSkillBasic(int skillGroupId)
         {
@@ -72,7 +85,7 @@ namespace GameLogic.Combat.Hero
             }
 
 
-            skillBasic.InitSkillConfig(_combatHeroEntity,skillInfo);
+            skillBasic.InitSkillConfig(_combatHeroEntity, skillInfo);
             // skillBasic.InitSkill(_combatHeroEntity);
             allSkill.Add(skillBasic);
             return skillBasic;

+ 7 - 2
Assets/Scripts/GameLogic/Combat/Hero/Turntable/SkillSlots.cs

@@ -94,6 +94,11 @@ namespace GameLogic.Combat.Hero.Turntable
 
         public float GetFinishBl()
         {
+            if (!SkillBasic.isActive)
+            {
+                return 0;
+            }
+
             float v = angle % 360;
             int targetAngle = triggerAngle[currTriggerTypeIndex];
             float jd = v;
@@ -117,7 +122,7 @@ namespace GameLogic.Combat.Hero.Turntable
 
         public float GetFinishAngle()
         {
-            if (SkillBasic == null)
+            if (SkillBasic == null||!SkillBasic.isActive)
             {
                 return int.MaxValue;
             }
@@ -175,7 +180,7 @@ namespace GameLogic.Combat.Hero.Turntable
 
         private void Trigger(int triggerType)
         {
-            if (SkillBasic != null)
+            if (SkillBasic != null&&SkillBasic.isActive)
             {
                 TriggerSkillSlotsEventData triggerSkillSlotsEventData = TriggerSkillSlotsEventData.Create();
                 triggerSkillSlotsEventData.SkillBasic = SkillBasic;

+ 6 - 3
Assets/Scripts/GameLogic/Combat/Skill/S9011.cs

@@ -1,4 +1,5 @@
 using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+using GameLogic.Combat.Buff;
 using GameLogic.Combat.CombatTool;
 using GameLogic.Combat.Hero;
 using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical;
@@ -33,8 +34,6 @@ namespace GameLogic.Combat.Skill
             TriggerData triggerData, ISkillFeatures skillFeatures)
         {
             float harmBl = effectValue[1];
-
-
             long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
                 harmBl);
 
@@ -42,7 +41,11 @@ namespace GameLogic.Combat.Skill
                 AttType.Skill, triggerData,
                 wuXingType, skillFeatures,
                 HarmType.Default);
-            // if(harmReturnInfo.isInvalid)
+            if (harmReturnInfo.isHitHero)
+            {
+                BuffInfo buffInfo = BuffInfo.GetBuffInfo(10011, 1);
+                targetEntity.combatHeroEntity.BuffControl.AddBuff(CombatHeroEntity, buffInfo);
+            }
         }
     }
 }

+ 39 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9012.cs

@@ -0,0 +1,39 @@
+using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+using GameLogic.Combat.Buff;
+using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.Hero;
+using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
+
+namespace GameLogic.Combat.Skill
+{
+    /// <summary>
+    /// 凤凰张口喷吐出一股极寒霜息,形成远程席卷的寒潮波涛。直线飞行,只会有一个,对敌人造成{0}伤害,并额外造成寒气层数*{1}的伤害
+    /// </summary>
+    public class S9012 : SkillBasic
+    {
+        protected override void ProUseSkill()
+        {
+        }
+
+        protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
+            ITimelineFxLogic timelineFxLogic,
+            TriggerData triggerData, ISkillFeatures skillFeatures)
+        {
+            float harmBl = effectValue[0];
+            b_1001 b1001 = targetEntity.combatHeroEntity.BuffControl.GetBuffBasicForType<b_1001>();
+            if (b1001 != null)
+            {
+                harmBl += b1001.buffCount * effectValue[1];
+            }
+
+            long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
+                harmBl);
+
+
+            HarmReturnInfo harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v,
+                AttType.Skill, triggerData,
+                wuXingType, skillFeatures,
+                HarmType.Default);
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9012.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 06118d9a971b41d8aa8a3876d7cb4c17
+timeCreated: 1750314887

+ 110 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9013.cs

@@ -0,0 +1,110 @@
+using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+using Common.Utility.CombatEvent;
+using Fort23.Core;
+using GameLogic.Combat.Buff;
+using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.Hero;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical;
+using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
+
+namespace GameLogic.Combat.Skill
+{
+    /// <summary>
+    /// 霜域新生(被动,只会生效一次) 凤凰在伤害还剩10%的时候会触发此技能,
+    /// 凤凰身体冰冻住并有一层寒气笼罩,期间凤凰不在受到任何伤害,并慢慢回血,
+    /// 直到恢复满,持续5秒左右吧,恢复满后凤凰所有灵根增加{0}。冰块爆开,
+    /// 生成一个冲击波,对当前场上所有的弹道照成当前强度的强度攻击(强度不够的弹道会被摧毁),生成{1}枚冰锥冲向玩家,对玩家照成{2}伤害
+    /// </summary>
+    public class S9013 : SkillBasic
+    {
+        protected BuffBasic BuffBasic;
+
+        private bool isActiveFuHuo;
+        private int count;
+        private float _currTime;
+        protected long addHp;
+
+        protected override void ProActiveSkill()
+        {
+            count = 0;
+            isActiveFuHuo = false;
+            CombatEventManager.Instance.AddEventListener(CombatEventType.HeroInjured, HeroInjured);
+        }
+
+        private void HeroInjured(IEventData data)
+        {
+            if (count > 0)
+            {
+                return;
+            }
+
+            HeroInjuredEventData heroInjuredEventData = data as HeroInjuredEventData;
+            if (heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity == CombatHeroEntity)
+            {
+                float bl = CombatHeroEntity.CurrCombatHeroInfo.hp.Value * 1.0f /
+                           CombatHeroEntity.MaxCombatHeroInfo.hp.Value;
+                if (bl * 100 < effectValue[0])
+                {
+                    addHp = CombatCalculateTool.Instance.GetVlaueRatioForLong(
+                        CombatHeroEntity.MaxCombatHeroInfo.hp.Value, 10);
+                    BuffInfo buffInfo = BuffInfo.GetBuffInfo(10151, -1, 1);
+                    BuffBasic = CombatHeroEntity.BuffControl.AddBuff(CombatHeroEntity, buffInfo);
+                    isActiveFuHuo = true;
+                    count++;
+                }
+            }
+        }
+
+        protected override void ProUseSkill()
+        {
+        }
+
+        protected override void ProCombatUpdate(float time)
+        {
+            if (!isActiveFuHuo)
+            {
+                return;
+            }
+
+            _currTime += time;
+            if (_currTime > 0.2f)
+            {
+                Recover(CombatHeroEntity, CombatHeroEntity.GetMainHotPoin<CombatHeroHitPoint>(), addHp, AttType.Skill);
+                if (CombatHeroEntity.CurrCombatHeroInfo.hp.Value >= CombatHeroEntity.MaxCombatHeroInfo.hp.Value)
+                {
+                    isActiveFuHuo = false;
+                    float v = effectValue[1];
+                    CombatHeroEntity.CurrCombatHeroInfo.Metal += v;
+                    CombatHeroEntity.CurrCombatHeroInfo.Wood += v;
+                    CombatHeroEntity.CurrCombatHeroInfo.Water += v;
+                    CombatHeroEntity.CurrCombatHeroInfo.Fire += v;
+                    CombatHeroEntity.CurrCombatHeroInfo.Earth += v;
+
+                    S9014 s9014 = CombatHeroEntity.CombatHeroSkillControl.GetSkillBasic<S9014>();
+                    if (s9014 != null)
+                    {
+                        s9014.isActive = true;
+                    }
+                    //完成
+                }
+            }
+        }
+
+        protected void ProDefaultTimeLineTrigger_BaoZa(string groupName, CombatHeroHitPoint targetEntity,
+            ITimelineFxLogic timelineFxLogic,
+            TriggerData triggerData, ISkillFeatures skillFeatures)
+        {
+            float harmBl = effectValue[0];
+
+
+            long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
+                harmBl);
+
+
+            HarmReturnInfo harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v,
+                AttType.Skill, triggerData,
+                wuXingType, skillFeatures,
+                HarmType.Default);
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9013.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 6e24c8d7174b43c988a98c0fca3c61ca
+timeCreated: 1750315059

+ 67 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9014.cs

@@ -0,0 +1,67 @@
+using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+using GameLogic.Combat.Buff;
+using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.Hero;
+using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
+
+namespace GameLogic.Combat.Skill
+{
+    /// <summary>
+    /// 冰星坠地(二阶段技能,一场触发1到2次即可)
+    /// 天空中出现多道冰球,只会有{0}枚砸向玩家,其他的冰球主要是为了好看和为了拦截玩家的弹道,照成{1}伤害,并施加一层寒气
+    /// </summary>
+    public class S9014 : SkillBasic
+    {
+        private float currTime;
+        private int currCount;
+        private bool isUpdate;
+
+        protected override void ProActiveSkill()
+        {
+            isActive = false;
+        }
+
+        protected override void ProUseSkill()
+        {
+            isUpdate = true;
+            currCount = 0;
+            currTime = 0;
+        }
+
+
+        protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
+            ITimelineFxLogic timelineFxLogic,
+            TriggerData triggerData, ISkillFeatures skillFeatures)
+        {
+            float harmBl = effectValue[1];
+
+
+            long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
+                harmBl);
+            
+            HarmReturnInfo harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v,
+                AttType.Skill, triggerData,
+                wuXingType, skillFeatures,
+                HarmType.Default);
+            if (harmReturnInfo.isHitHero)
+            {
+                BuffInfo buffInfo = BuffInfo.GetBuffInfo(10011, 1);
+                targetEntity.combatHeroEntity.BuffControl.AddBuff(CombatHeroEntity, buffInfo);
+            }
+        }
+
+        protected override void ProCombatUpdate(float time)
+        {
+            if (!isUpdate)
+            {
+                return;
+            }
+
+            currTime += time;
+            if (currTime > 0.2f)
+            {
+                //生成一个冰星 3个后生成砸中玩家的哪一个
+            }
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9014.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 13996e1bb7dc4bd7b9b3420dabca44e5
+timeCreated: 1750318813

+ 42 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9015.cs

@@ -0,0 +1,42 @@
+using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+using GameLogic.Combat.Buff;
+using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.Hero;
+using UnityEngine;
+using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
+
+namespace GameLogic.Combat.Skill
+{
+    public class S9015 : SkillBasic
+    {
+        protected override void ProUseSkill()
+        {
+            ballisticsCount = (int)effectValue[0];
+            for (int i = 0; i < effectValue[0]; i++)
+            {
+                CombatHeroHitPoint combatHeroHitPoint = CombatHeroEntity.CombatAIBasic.currFocusTarget
+                    .GetThis<CombatHeroEntity>()
+                    .GetMainHotPoin<CombatHeroHitPoint>();
+                BetterList<ILifetCycleHitPoint> currTarget = new BetterList<ILifetCycleHitPoint>();
+                currTarget.Add(combatHeroHitPoint);
+                SpecialDotInfo specialDotInfo = CombatHeroEntity.GetSpecialDotInfo("zdpos" + (i + 2));
+                ActivationTimeLineData("1101", currTarget: currTarget,
+                    customizePos: new Vector3[] { specialDotInfo.GetWorlPos() }, indexCount: i);
+            }
+        }
+
+        protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
+            ITimelineFxLogic timelineFxLogic,
+            TriggerData triggerData, ISkillFeatures skillFeatures)
+        {
+            float harmBl = effectValue[1];
+            long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
+                harmBl);
+
+            HarmReturnInfo harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v,
+                AttType.Skill, triggerData,
+                wuXingType, skillFeatures,
+                HarmType.Default);
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9015.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: d038a989810143b3b71fce3b4f4b9a30
+timeCreated: 1750320888

+ 45 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9016.cs

@@ -0,0 +1,45 @@
+using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.Hero;
+using UnityEngine;
+using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
+
+namespace GameLogic.Combat.Skill
+{
+    /// <summary>
+    /// 羽箭(普通,右翅膀挥动)
+    /// 挥动翅膀发射{0}枚冰箭,对敌人照成{1}伤害
+    /// </summary>
+    public class S9016 : SkillBasic
+    {
+        protected override void ProUseSkill()
+        {
+            ballisticsCount = (int)effectValue[0];
+            for (int i = 0; i < effectValue[0]; i++)
+            {
+                CombatHeroHitPoint combatHeroHitPoint = CombatHeroEntity.CombatAIBasic.currFocusTarget
+                    .GetThis<CombatHeroEntity>()
+                    .GetMainHotPoin<CombatHeroHitPoint>();
+                BetterList<ILifetCycleHitPoint> currTarget = new BetterList<ILifetCycleHitPoint>();
+                currTarget.Add(combatHeroHitPoint);
+                SpecialDotInfo specialDotInfo = CombatHeroEntity.GetSpecialDotInfo("zdpos" + (i + 2));
+                ActivationTimeLineData("1101", currTarget: currTarget,
+                    customizePos: new Vector3[] { specialDotInfo.GetWorlPos() }, indexCount: i);
+            }
+        }
+
+        protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
+            ITimelineFxLogic timelineFxLogic,
+            TriggerData triggerData, ISkillFeatures skillFeatures)
+        {
+            float harmBl = effectValue[1];
+            long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
+                harmBl);
+
+            HarmReturnInfo harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v,
+                AttType.Skill, triggerData,
+                wuXingType, skillFeatures,
+                HarmType.Default);
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9016.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 108ab7a4c2474e398590f1af76052927
+timeCreated: 1750320936

+ 48 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9021.cs

@@ -0,0 +1,48 @@
+using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+using Fort23.Core;
+using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.Hero;
+using UnityEngine;
+using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
+
+namespace GameLogic.Combat.Skill
+{
+    /// <summary>
+    /// 冰魄飞甲
+    /// 神龟龟甲一个虚影快速连续收缩,然后爆开,形成多个如同龟甲碎片的弹道,被命中的敌人受到{0}伤害,碎片无视敌人{1}%防御
+    /// </summary>
+    public class S9021 : SkillBasic
+    {
+        protected override void ProUseSkill()
+        {
+            ballisticsCount = (int)effectValue[0];
+            for (int i = 0; i < effectValue[0]; i++)
+            {
+                CombatHeroHitPoint combatHeroHitPoint = CombatHeroEntity.CombatAIBasic.currFocusTarget
+                    .GetThis<CombatHeroEntity>()
+                    .GetMainHotPoin<CombatHeroHitPoint>();
+                BetterList<ILifetCycleHitPoint> currTarget = new BetterList<ILifetCycleHitPoint>();
+                currTarget.Add(combatHeroHitPoint);
+                SpecialDotInfo specialDotInfo = CombatHeroEntity.GetSpecialDotInfo("zdpos" + (i + 2));
+                ActivationTimeLineData("1101", currTarget: currTarget,
+                    customizePos: new Vector3[] { specialDotInfo.GetWorlPos() }, indexCount: i);
+            }
+        }
+
+        protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
+            ITimelineFxLogic timelineFxLogic,
+            TriggerData triggerData, ISkillFeatures skillFeatures)
+        {
+            HarmReturnInfo harmReturnInfo = CObjectPool.Instance.Fetch<HarmReturnInfo>();
+            harmReturnInfo.ArmorPiercing = effectValue[2];
+            float harmBl = effectValue[1];
+            long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
+                harmBl);
+
+            harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v,
+                AttType.Skill, triggerData,
+                wuXingType, skillFeatures,
+                HarmType.Default, harmReturnInfo: harmReturnInfo);
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9021.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 6bfa409f7f824a8084adfbb6a630fb28
+timeCreated: 1750320987

+ 95 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9022.cs

@@ -0,0 +1,95 @@
+using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+using Common.Utility.CombatEvent;
+using Fort23.Core;
+using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.Hero;
+using UnityEngine;
+using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
+
+namespace GameLogic.Combat.Skill
+{
+    /// <summary>
+    /// 玄甲护体(防御型技能)
+    /// 从四周飞来类似龟甲的碎片,乌龟龟甲上形成一个新的龟甲,防御+{0}%,敌人对其照成伤害时会收到{1}%反伤,
+    /// 反伤为真实伤害。持续{2}秒
+    /// </summary>
+    public class S9022 : SkillBasic
+    {
+        private long currAddV;
+
+        private bool isUpdate;
+        private float currTime;
+
+        protected override void ProActiveSkill()
+        {
+            CombatEventManager.Instance.AddEventListener(CombatEventType.HeroInjured, HeroInjured);
+        }
+
+        private void HeroInjured(IEventData data)
+        {
+            if (!isUpdate)
+            {
+                return;
+            }
+
+            HeroInjuredEventData heroInjuredEventData = data as HeroInjuredEventData;
+            if (heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity == CombatHeroEntity)
+            {
+                long harm = heroInjuredEventData.HarmReturnInfo.att;
+                long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(harm, effectValue[1]);
+
+
+                HarmReturnInfo harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity,
+                    heroInjuredEventData.HarmReturnInfo.source, v,
+                    AttType.Skill | AttType.FanJi, triggerData,
+                    wuXingType, null,
+                    HarmType.Default);
+            }
+        }
+
+        protected override void ProUseSkill()
+        {
+        }
+
+        protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
+            ITimelineFxLogic timelineFxLogic,
+            TriggerData triggerData, ISkillFeatures skillFeatures)
+        {
+            long def = CombatHeroEntity.MaxCombatHeroInfo.defense.Value;
+            currAddV = CombatCalculateTool.Instance.GetVlaueRatioForLong(def, effectValue[0]);
+            CombatHeroEntity.CurrCombatHeroInfo.defense += currAddV;
+            isUpdate = true;
+            currTime = 0;
+
+            // HarmReturnInfo harmReturnInfo = CObjectPool.Instance.Fetch<HarmReturnInfo>();
+            // harmReturnInfo.ArmorPiercing = effectValue[2];
+            // float harmBl = effectValue[1];
+            // long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
+            //     harmBl);
+            //
+            // harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v,
+            //     AttType.Skill, triggerData,
+            //     wuXingType, skillFeatures,
+            //     HarmType.Default, harmReturnInfo: harmReturnInfo);
+        }
+
+        protected override void ProCombatUpdate(float time)
+        {
+            if (!isUpdate)
+            {
+                return;
+            }
+
+            currTime += time;
+            if (currTime > effectValue[2])
+            {
+                isUpdate = false;
+            }
+        }
+
+        protected override void ProDispose()
+        {
+            CombatEventManager.Instance.RemoveEventListener(CombatEventType.HeroInjured, HeroInjured);
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9022.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 124cf46d68154600b64f8bb36c0ba508
+timeCreated: 1750321775

+ 47 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9023.cs

@@ -0,0 +1,47 @@
+using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+using GameLogic.Combat.Buff;
+using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.Hero;
+using UnityEngine;
+using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
+
+namespace GameLogic.Combat.Skill
+{
+    /// <summary>
+    /// 水球
+    /// 乌龟从嘴里连续吐出多个水球,对敌人照成{0}伤害
+    /// </summary>
+    public class S9023: SkillBasic
+    {
+        protected override void ProUseSkill()
+        {
+            ballisticsCount = (int)effectValue[0];
+            for (int i = 0; i < effectValue[0]; i++)
+            {
+                CombatHeroHitPoint combatHeroHitPoint = CombatHeroEntity.CombatAIBasic.currFocusTarget
+                    .GetThis<CombatHeroEntity>()
+                    .GetMainHotPoin<CombatHeroHitPoint>();
+                BetterList<ILifetCycleHitPoint> currTarget = new BetterList<ILifetCycleHitPoint>();
+                currTarget.Add(combatHeroHitPoint);
+                SpecialDotInfo specialDotInfo = CombatHeroEntity.GetSpecialDotInfo("zdpos" + (i + 2));
+                ActivationTimeLineData("1101", currTarget: currTarget,
+                    customizePos: new Vector3[] { specialDotInfo.GetWorlPos() }, indexCount: i);
+            }
+        }
+
+        protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
+            ITimelineFxLogic timelineFxLogic,
+            TriggerData triggerData, ISkillFeatures skillFeatures)
+        {
+            float harmBl = effectValue[1];
+            long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
+                harmBl);
+
+            HarmReturnInfo harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v,
+                AttType.Skill, triggerData,
+                wuXingType, skillFeatures,
+                HarmType.Default);
+          
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9023.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: c258d2719f4f40738743697652beb162
+timeCreated: 1750324890

+ 63 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9024.cs

@@ -0,0 +1,63 @@
+using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+using Common.Utility.CombatEvent;
+using Fort23.Core;
+using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.Hero;
+using UnityEngine;
+using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
+
+namespace GameLogic.Combat.Skill
+{
+    /// <summary>
+    /// 冰魄牢域(生命值低于50%释放,一局释放一次)
+    /// 神龟仰天长吼,跺脚几下,整个战场出现寒气特效,神龟的所有主动伤害型技能命中目标后都会施加一层寒气,
+    /// 寒气每叠到{0}层时,消耗所有层寒气对敌人照成{0}秒的冰冻效果
+    /// </summary>
+    public class S9024 : SkillBasic
+    {
+        private bool isUse;
+
+        protected override void ProActiveSkill()
+        {
+            isUse = false;
+            CombatEventManager.Instance.AddEventListener(CombatEventType.HeroInjured, HeroInjured);
+        }
+
+        protected override void ProDispose()
+        {
+            CombatEventManager.Instance.RemoveEventListener(CombatEventType.HeroInjured, HeroInjured);
+            // base.ProDispose();
+        }
+
+        private void HeroInjured(IEventData data)
+        {
+            if (isUse)
+            {
+                return;
+            }
+
+            HeroInjuredEventData heroInjuredEventData = data as HeroInjuredEventData;
+            if (heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity == CombatHeroEntity)
+            {
+                float bl = CombatHeroEntity.CurrCombatHeroInfo.hp.Value * 1.0f /
+                           CombatHeroEntity.MaxCombatHeroInfo.hp.Value;
+                if (bl * 100 < effectValue[0])
+                {
+                    isUse = true;
+                    //触发技能
+                    
+                }
+            }
+        }
+
+        protected override void ProUseSkill()
+        {
+        }
+
+        protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
+            ITimelineFxLogic timelineFxLogic,
+            TriggerData triggerData, ISkillFeatures skillFeatures)
+        {
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9024.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: af0ba7e73b9247cfa8372ae6d7aa4b40
+timeCreated: 1750325104

+ 55 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9031.cs

@@ -0,0 +1,55 @@
+using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+using GameLogic.Combat.Buff;
+using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.Hero;
+using UnityEngine;
+using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
+
+namespace GameLogic.Combat.Skill
+{
+    /// <summary>
+    /// 毒刺
+    /// 蜘蛛从嘴里连续射击出{0}没毒刺,对敌人照成{1}伤害,命中敌人时有{2}%概率中毒1层
+    /// </summary>
+    public class S9031 : SkillBasic
+    {
+        protected override void ProUseSkill()
+        {
+            ballisticsCount = (int)effectValue[0];
+            for (int i = 0; i < effectValue[0]; i++)
+            {
+                CombatHeroHitPoint combatHeroHitPoint = CombatHeroEntity.CombatAIBasic.currFocusTarget
+                    .GetThis<CombatHeroEntity>()
+                    .GetMainHotPoin<CombatHeroHitPoint>();
+                BetterList<ILifetCycleHitPoint> currTarget = new BetterList<ILifetCycleHitPoint>();
+                currTarget.Add(combatHeroHitPoint);
+                SpecialDotInfo specialDotInfo = CombatHeroEntity.GetSpecialDotInfo("zdpos" + (i + 2));
+                ActivationTimeLineData("1101", currTarget: currTarget,
+                    customizePos: new Vector3[] { specialDotInfo.GetWorlPos() }, indexCount: i);
+            }
+        }
+
+        protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
+            ITimelineFxLogic timelineFxLogic,
+            TriggerData triggerData, ISkillFeatures skillFeatures)
+        {
+            float harmBl = effectValue[1];
+            long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
+                harmBl);
+
+            HarmReturnInfo harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v,
+                AttType.Skill, triggerData,
+                wuXingType, skillFeatures,
+                HarmType.Default);
+            if (harmReturnInfo.isHitHero)
+            {
+                int odds = CombatCalculateTool.Instance.GetOdd(0, 100);
+                if (odds <= effectValue[2])
+                {
+                    BuffInfo buffInfo = BuffInfo.GetBuffInfo(10031, 1);
+                    targetEntity.combatHeroEntity.BuffControl.AddBuff(CombatHeroEntity, buffInfo);
+                }
+            }
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9031.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 2564669c8e3847be9b3ce81bfa5c7b0d
+timeCreated: 1750386432

+ 46 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9032.cs

@@ -0,0 +1,46 @@
+using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.Hero;
+using UnityEngine;
+using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
+
+namespace GameLogic.Combat.Skill
+{
+    /// <summary>
+    /// 千蛛潮
+    /// 蜘蛛身体抖动出现{0}个小蜘蛛飞向敌人,对敌人照成{1}伤害
+    /// </summary>
+    public class S9032: SkillBasic
+    {
+        protected override void ProUseSkill()
+        {
+            ballisticsCount = (int)effectValue[0];
+            for (int i = 0; i < effectValue[0]; i++)
+            {
+                CombatHeroHitPoint combatHeroHitPoint = CombatHeroEntity.CombatAIBasic.currFocusTarget
+                    .GetThis<CombatHeroEntity>()
+                    .GetMainHotPoin<CombatHeroHitPoint>();
+                BetterList<ILifetCycleHitPoint> currTarget = new BetterList<ILifetCycleHitPoint>();
+                currTarget.Add(combatHeroHitPoint);
+                SpecialDotInfo specialDotInfo = CombatHeroEntity.GetSpecialDotInfo("zdpos" + (i + 2));
+                ActivationTimeLineData("1101", currTarget: currTarget,
+                    customizePos: new Vector3[] { specialDotInfo.GetWorlPos() }, indexCount: i);
+            }
+        }
+
+        protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
+            ITimelineFxLogic timelineFxLogic,
+            TriggerData triggerData, ISkillFeatures skillFeatures)
+        {
+            float harmBl = effectValue[1];
+            long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
+                harmBl);
+
+            HarmReturnInfo harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v,
+                AttType.Skill, triggerData,
+                wuXingType, skillFeatures,
+                HarmType.Default);
+           
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9032.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: ac13fa9b06a14ac9843ee139c121fdff
+timeCreated: 1750386887

+ 45 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9033.cs

@@ -0,0 +1,45 @@
+using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.Hero;
+using UnityEngine;
+using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
+
+namespace GameLogic.Combat.Skill
+{
+    /// <summary>
+    /// 吐丝
+    /// 嘴里吐出{0}个蜘蛛丝对敌人照成{1}伤害
+    /// </summary>
+    public class S9033 : SkillBasic
+    {
+        protected override void ProUseSkill()
+        {
+            ballisticsCount = (int)effectValue[0];
+            for (int i = 0; i < effectValue[0]; i++)
+            {
+                CombatHeroHitPoint combatHeroHitPoint = CombatHeroEntity.CombatAIBasic.currFocusTarget
+                    .GetThis<CombatHeroEntity>()
+                    .GetMainHotPoin<CombatHeroHitPoint>();
+                BetterList<ILifetCycleHitPoint> currTarget = new BetterList<ILifetCycleHitPoint>();
+                currTarget.Add(combatHeroHitPoint);
+                SpecialDotInfo specialDotInfo = CombatHeroEntity.GetSpecialDotInfo("zdpos" + (i + 2));
+                ActivationTimeLineData("1101", currTarget: currTarget,
+                    customizePos: new Vector3[] { specialDotInfo.GetWorlPos() }, indexCount: i);
+            }
+        }
+
+        protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
+            ITimelineFxLogic timelineFxLogic,
+            TriggerData triggerData, ISkillFeatures skillFeatures)
+        {
+            float harmBl = effectValue[1];
+            long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
+                harmBl);
+
+            HarmReturnInfo harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v,
+                AttType.Skill, triggerData,
+                wuXingType, skillFeatures,
+                HarmType.Default);
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9033.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 03607de68cf94b878796d66698758987
+timeCreated: 1750386948

+ 50 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9041.cs

@@ -0,0 +1,50 @@
+using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+using GameLogic.Combat.Buff;
+using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.Hero;
+using UnityEngine;
+using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
+
+namespace GameLogic.Combat.Skill
+{
+    /// <summary>
+    ///幻骨 老鼠甩动尾巴,生成一排黑色的骨刺{0}个,每个骨刺对敌人照成{1}伤害,命中敌人时对敌人施加一层鼠疫
+    /// </summary>
+    public class S9041 : SkillBasic
+    {
+        protected override void ProUseSkill()
+        {
+            ballisticsCount = (int)effectValue[0];
+            for (int i = 0; i < effectValue[0]; i++)
+            {
+                CombatHeroHitPoint combatHeroHitPoint = CombatHeroEntity.CombatAIBasic.currFocusTarget
+                    .GetThis<CombatHeroEntity>()
+                    .GetMainHotPoin<CombatHeroHitPoint>();
+                BetterList<ILifetCycleHitPoint> currTarget = new BetterList<ILifetCycleHitPoint>();
+                currTarget.Add(combatHeroHitPoint);
+                SpecialDotInfo specialDotInfo = CombatHeroEntity.GetSpecialDotInfo("zdpos" + (i + 2));
+                ActivationTimeLineData("1101", currTarget: currTarget,
+                    customizePos: new Vector3[] { specialDotInfo.GetWorlPos() }, indexCount: i);
+            }
+        }
+
+        protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
+            ITimelineFxLogic timelineFxLogic,
+            TriggerData triggerData, ISkillFeatures skillFeatures)
+        {
+            float harmBl = effectValue[1];
+            long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
+                harmBl);
+
+            HarmReturnInfo harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v,
+                AttType.Skill, triggerData,
+                wuXingType, skillFeatures,
+                HarmType.Default);
+            if (harmReturnInfo.isHitHero)
+            {
+                BuffInfo buffInfo = BuffInfo.GetBuffInfo(10171, 1);
+                targetEntity.combatHeroEntity.BuffControl.AddBuff(CombatHeroEntity, buffInfo);
+            }
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9041.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: d80fbcbb20054a9ba3310e0378b1b420
+timeCreated: 1750387928

+ 45 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9042.cs

@@ -0,0 +1,45 @@
+using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+using GameLogic.Combat.Buff;
+using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.Hero;
+using UnityEngine;
+using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
+
+namespace GameLogic.Combat.Skill
+{
+    /// <summary>
+    /// 鼠角 将变异出来的羊角发射出去,对敌人造成{0}伤害
+    /// </summary>
+    public class S9042 : SkillBasic
+    {
+        protected override void ProUseSkill()
+        {
+            ballisticsCount = (int)effectValue[0];
+            for (int i = 0; i < effectValue[0]; i++)
+            {
+                CombatHeroHitPoint combatHeroHitPoint = CombatHeroEntity.CombatAIBasic.currFocusTarget
+                    .GetThis<CombatHeroEntity>()
+                    .GetMainHotPoin<CombatHeroHitPoint>();
+                BetterList<ILifetCycleHitPoint> currTarget = new BetterList<ILifetCycleHitPoint>();
+                currTarget.Add(combatHeroHitPoint);
+                SpecialDotInfo specialDotInfo = CombatHeroEntity.GetSpecialDotInfo("zdpos" + (i + 2));
+                ActivationTimeLineData("1101", currTarget: currTarget,
+                    customizePos: new Vector3[] { specialDotInfo.GetWorlPos() }, indexCount: i);
+            }
+        }
+
+        protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
+            ITimelineFxLogic timelineFxLogic,
+            TriggerData triggerData, ISkillFeatures skillFeatures)
+        {
+            float harmBl = effectValue[1];
+            long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
+                harmBl);
+
+            HarmReturnInfo harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v,
+                AttType.Skill, triggerData,
+                wuXingType, skillFeatures,
+                HarmType.Default);
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9042.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: a3af401476a8450e902840b2e862f978
+timeCreated: 1750388063

+ 51 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9043.cs

@@ -0,0 +1,51 @@
+using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+using GameLogic.Combat.Buff;
+using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.Hero;
+using UnityEngine;
+using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
+
+namespace GameLogic.Combat.Skill
+{
+    /// <summary>
+    /// 幽爪灭魂指
+    ///老鼠挥动鼠爪,将尖锐的指尖射出。指甲上带有老鼠的病菌。生成{0}枚指甲,对敌人造成{1}伤害,并对敌人施加已成鼠疫 
+    /// </summary>
+    public class S9043 : SkillBasic
+    {
+        protected override void ProUseSkill()
+        {
+            ballisticsCount = (int)effectValue[0];
+            for (int i = 0; i < effectValue[0]; i++)
+            {
+                CombatHeroHitPoint combatHeroHitPoint = CombatHeroEntity.CombatAIBasic.currFocusTarget
+                    .GetThis<CombatHeroEntity>()
+                    .GetMainHotPoin<CombatHeroHitPoint>();
+                BetterList<ILifetCycleHitPoint> currTarget = new BetterList<ILifetCycleHitPoint>();
+                currTarget.Add(combatHeroHitPoint);
+                SpecialDotInfo specialDotInfo = CombatHeroEntity.GetSpecialDotInfo("zdpos" + (i + 2));
+                ActivationTimeLineData("1101", currTarget: currTarget,
+                    customizePos: new Vector3[] { specialDotInfo.GetWorlPos() }, indexCount: i);
+            }
+        }
+
+        protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
+            ITimelineFxLogic timelineFxLogic,
+            TriggerData triggerData, ISkillFeatures skillFeatures)
+        {
+            float harmBl = effectValue[1];
+            long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
+                harmBl);
+
+            HarmReturnInfo harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v,
+                AttType.Skill, triggerData,
+                wuXingType, skillFeatures,
+                HarmType.Default);
+            if (harmReturnInfo.isHitHero)
+            {
+                BuffInfo buffInfo = BuffInfo.GetBuffInfo(10171, 1);
+                targetEntity.combatHeroEntity.BuffControl.AddBuff(CombatHeroEntity, buffInfo);
+            }
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9043.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 331e8898ffac4367a608536d1c1ca652
+timeCreated: 1750388113

+ 50 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9044.cs

@@ -0,0 +1,50 @@
+using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+using GameLogic.Combat.Buff;
+using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.Hero;
+using UnityEngine;
+using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
+
+namespace GameLogic.Combat.Skill
+{
+    /// <summary>
+    /// 噬魂瘴弹 老鼠将体内的浊气凝聚成一颗弹丸,快速射向对手。命中目标后爆炸浊气散开对敌人造成{0}伤害,给敌人施加一层鼠疫。
+    /// </summary>
+    public class S9044 : SkillBasic
+    {
+        protected override void ProUseSkill()
+        {
+            ballisticsCount = (int)effectValue[0];
+            for (int i = 0; i < effectValue[0]; i++)
+            {
+                CombatHeroHitPoint combatHeroHitPoint = CombatHeroEntity.CombatAIBasic.currFocusTarget
+                    .GetThis<CombatHeroEntity>()
+                    .GetMainHotPoin<CombatHeroHitPoint>();
+                BetterList<ILifetCycleHitPoint> currTarget = new BetterList<ILifetCycleHitPoint>();
+                currTarget.Add(combatHeroHitPoint);
+                SpecialDotInfo specialDotInfo = CombatHeroEntity.GetSpecialDotInfo("zdpos" + (i + 2));
+                ActivationTimeLineData("1101", currTarget: currTarget,
+                    customizePos: new Vector3[] { specialDotInfo.GetWorlPos() }, indexCount: i);
+            }
+        }
+
+        protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
+            ITimelineFxLogic timelineFxLogic,
+            TriggerData triggerData, ISkillFeatures skillFeatures)
+        {
+            float harmBl = effectValue[1];
+            long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
+                harmBl);
+
+            HarmReturnInfo harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v,
+                AttType.Skill, triggerData,
+                wuXingType, skillFeatures,
+                HarmType.Default);
+            if (harmReturnInfo.isHitHero)
+            {
+                BuffInfo buffInfo = BuffInfo.GetBuffInfo(10171, 1);
+                targetEntity.combatHeroEntity.BuffControl.AddBuff(CombatHeroEntity, buffInfo);
+            }
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9044.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 69d074c23fc74a96836434825624ae90
+timeCreated: 1750388187

+ 46 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9051.cs

@@ -0,0 +1,46 @@
+using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+using GameLogic.Combat.Buff;
+using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.Hero;
+using UnityEngine;
+using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
+
+namespace GameLogic.Combat.Skill
+{
+    /// <summary>
+    /// 风刃 穷奇煽动翅膀,空中行程{0}枚风刃,对敌人造成{1}伤害
+    /// </summary>
+    public class S9051 : SkillBasic
+    {
+        protected override void ProUseSkill()
+        {
+            ballisticsCount = (int)effectValue[0];
+            for (int i = 0; i < effectValue[0]; i++)
+            {
+                CombatHeroHitPoint combatHeroHitPoint = CombatHeroEntity.CombatAIBasic.currFocusTarget
+                    .GetThis<CombatHeroEntity>()
+                    .GetMainHotPoin<CombatHeroHitPoint>();
+                BetterList<ILifetCycleHitPoint> currTarget = new BetterList<ILifetCycleHitPoint>();
+                currTarget.Add(combatHeroHitPoint);
+                SpecialDotInfo specialDotInfo = CombatHeroEntity.GetSpecialDotInfo("zdpos" + (i + 2));
+                ActivationTimeLineData("1101", currTarget: currTarget,
+                    customizePos: new Vector3[] { specialDotInfo.GetWorlPos() }, indexCount: i);
+            }
+        }
+
+        protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
+            ITimelineFxLogic timelineFxLogic,
+            TriggerData triggerData, ISkillFeatures skillFeatures)
+        {
+            float harmBl = effectValue[1];
+            long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
+                harmBl);
+
+            HarmReturnInfo harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v,
+                AttType.Skill, triggerData,
+                wuXingType, skillFeatures,
+                HarmType.Default);
+           
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9051.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 6a3a81c2ff114d99ae9a9e2bc468a953
+timeCreated: 1750388871

+ 51 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9052.cs

@@ -0,0 +1,51 @@
+using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+using GameLogic.Combat.Buff;
+using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.Hero;
+using UnityEngine;
+using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
+
+namespace GameLogic.Combat.Skill
+{
+    /// <summary>
+    /// 雷罡波
+    /// 穷奇自身引雷而下,快速的从嘴上吐出{0}个光波,对敌人造成{1}伤害,每个光被带有雷电之力,对敌人施加一层感电
+    /// </summary>
+    public class S9052 : SkillBasic
+    {
+        protected override void ProUseSkill()
+        {
+            ballisticsCount = (int)effectValue[0];
+            for (int i = 0; i < effectValue[0]; i++)
+            {
+                CombatHeroHitPoint combatHeroHitPoint = CombatHeroEntity.CombatAIBasic.currFocusTarget
+                    .GetThis<CombatHeroEntity>()
+                    .GetMainHotPoin<CombatHeroHitPoint>();
+                BetterList<ILifetCycleHitPoint> currTarget = new BetterList<ILifetCycleHitPoint>();
+                currTarget.Add(combatHeroHitPoint);
+                SpecialDotInfo specialDotInfo = CombatHeroEntity.GetSpecialDotInfo("zdpos" + (i + 2));
+                ActivationTimeLineData("1101", currTarget: currTarget,
+                    customizePos: new Vector3[] { specialDotInfo.GetWorlPos() }, indexCount: i);
+            }
+        }
+
+        protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
+            ITimelineFxLogic timelineFxLogic,
+            TriggerData triggerData, ISkillFeatures skillFeatures)
+        {
+            float harmBl = effectValue[1];
+            long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
+                harmBl);
+
+            HarmReturnInfo harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v,
+                AttType.Skill, triggerData,
+                wuXingType, skillFeatures,
+                HarmType.Default);
+            if (harmReturnInfo.isHitHero)
+            {
+                BuffInfo buffInfo = BuffInfo.GetBuffInfo(10181, 1);
+                targetEntity.combatHeroEntity.BuffControl.AddBuff(CombatHeroEntity, buffInfo);
+            }
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9052.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 7548bbb4b7f14656aea89678cd1bc072
+timeCreated: 1750389177

+ 79 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9053.cs

@@ -0,0 +1,79 @@
+using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+using GameLogic.Combat.Buff;
+using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.Hero;
+using UnityEngine;
+using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
+
+namespace GameLogic.Combat.Skill
+{
+    /// <summary>
+    /// 引雷
+    /// 请求仰天施法,引导天雷,天雷在战场上随机落下,{0}%概率击中目标,每层感电额外+{1}%概率
+    /// ,最多被击中{2}次,每次击中消耗一层感电额外照成{3}伤害。引雷可以击中弹道.持续{4}秒
+    /// </summary>
+    public class S9053 : SkillBasic
+    {
+        private float _currTime;
+        private int _hitCount;
+        private bool _isUpdate;
+        private float _jianGe;
+
+        protected override void ProUseSkill()
+        {
+            ballisticsCount = (int)effectValue[0];
+        }
+
+        protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
+            ITimelineFxLogic timelineFxLogic,
+            TriggerData triggerData, ISkillFeatures skillFeatures)
+        {
+            float harmBl = effectValue[1];
+            b_1018 b1018 = targetEntity.combatHeroEntity.BuffControl.GetBuffBasicForType<b_1018>();
+            if (b1018 != null)//消耗一层感电,额外照成伤害
+            {
+                b1018.ReduceCount(1);
+                harmBl += effectValue[3];
+            }
+
+            long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
+                harmBl);
+
+            HarmReturnInfo harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v,
+                AttType.Skill, triggerData,
+                wuXingType, skillFeatures,
+                HarmType.Default);
+            // if (harmReturnInfo.isHitHero)
+            // {
+            //     BuffInfo buffInfo = BuffInfo.GetBuffInfo(10181, 1);
+            //     targetEntity.combatHeroEntity.BuffControl.AddBuff(CombatHeroEntity, buffInfo);
+            // }
+        }
+
+        private void SetJianGe()
+        {
+            _jianGe = CombatCalculateTool.Instance.GetOdd(20, 100) / 100f;
+        }
+
+        protected override void ProCombatUpdate(float time)
+        {
+            if (!_isUpdate)
+            {
+                return;
+            }
+
+            _currTime += time;
+            if (_currTime >= _jianGe)
+            {
+                _currTime = 0;
+                SetJianGe();
+                //发射一道闪电
+                int odds = CombatCalculateTool.Instance.GetOdd(0, 100);
+                if (odds <= effectValue[0])
+                {
+                    //击中目标
+                }
+            }
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9053.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 8278cf886081430aa2f07520b259b7a0
+timeCreated: 1750399216

+ 50 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9054.cs

@@ -0,0 +1,50 @@
+using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+using GameLogic.Combat.Buff;
+using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.Hero;
+using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
+
+namespace GameLogic.Combat.Skill
+{
+    /// <summary>
+    /// 导电(被动)
+    /// 每隔{0},敌人受到感电层数*{1}%的伤害
+    /// </summary>
+    public class S9054 : SkillBasic
+    {
+        protected float _currTime;
+
+        protected override void ProUseSkill()
+        {
+        }
+
+        protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
+            ITimelineFxLogic timelineFxLogic,
+            TriggerData triggerData, ISkillFeatures skillFeatures)
+        {
+            float harmBl = 0;
+            b_1018 b1018 = targetEntity.combatHeroEntity.BuffControl.GetBuffBasicForType<b_1018>();
+            if (b1018 != null) //消耗一层感电,额外照成伤害
+            {
+                harmBl += b1018.buffCount * effectValue[1];
+            }
+
+            long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
+                harmBl);
+
+            HarmReturnInfo harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v,
+                AttType.Skill, triggerData,
+                wuXingType, skillFeatures,
+                HarmType.Default);
+        }
+
+        protected override void ProCombatUpdate(float time)
+        {
+            _currTime += time;
+            if (_currTime >= effectValue[0])
+            {
+                _currTime = 0;
+            }
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9054.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 40c188d5999a40dd9c8fa037535c6a4b
+timeCreated: 1750400031

+ 56 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9061.cs

@@ -0,0 +1,56 @@
+using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+using GameLogic.Combat.Buff;
+using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.Hero;
+using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
+
+namespace GameLogic.Combat.Skill
+{
+    /// <summary>
+    /// 幻花迷雾(当场上有木灵分身时触发)
+    /// 身体摇动,天空散发出小小的花朵。木灵隐藏其中防御+{0}%,期间不在攻击,持续{1}秒
+    /// </summary>
+    public class S9061 : SkillBasic
+    {
+        protected float _currTime;
+        private bool _isUpdate;
+
+        protected override void ProUseSkill()
+        {
+        }
+
+        protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
+            ITimelineFxLogic timelineFxLogic,
+            TriggerData triggerData, ISkillFeatures skillFeatures)
+        {
+            // float harmBl = 0;
+            // b_1018 b1018 = targetEntity.combatHeroEntity.BuffControl.GetBuffBasicForType<b_1018>();
+            // if (b1018 != null) //消耗一层感电,额外照成伤害
+            // {
+            //     harmBl += b1018.buffCount * effectValue[1];
+            // }
+            //
+            // long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
+            //     harmBl);
+            //
+            // HarmReturnInfo harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v,
+            //     AttType.Skill, triggerData,
+            //     wuXingType, skillFeatures,
+            //     HarmType.Default);
+        }
+
+        protected override void ProCombatUpdate(float time)
+        {
+            if (!_isUpdate)
+            {
+                return;
+            }
+
+            _currTime += time;
+            if (_currTime >= effectValue[1])
+            {
+                _isUpdate = false;
+            }
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9061.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: d3b8db1f87a448e3919fbc6a076885d3
+timeCreated: 1750401656

+ 90 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9062.cs

@@ -0,0 +1,90 @@
+using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+using Common.Utility.CombatEvent;
+using Fort23.Core;
+using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.Hero;
+using UnityEngine;
+using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
+
+namespace GameLogic.Combat.Skill
+{
+    /// <summary>
+    /// 木灵分身
+    /// 生命低于{0}%时触发,木灵的根须快速在自身周围生出2个木灵之子,木灵之子之有普通攻击,木灵之子拥有boss的{1}最大生命值的生命
+    ///(等级跟随boss的等级走)
+    /// </summary>
+    public class S9062 : SkillBasic
+    {
+        private bool _isTrigger;
+
+        protected override void ProUseSkill()
+        {
+        }
+
+        protected override void ProActiveSkill()
+        {
+            CombatEventManager.Instance.AddEventListener(CombatEventType.HeroInjured, HeroInjured);
+        }
+
+        protected override void ProDispose()
+        {
+            CombatEventManager.Instance.RemoveEventListener(CombatEventType.HeroInjured, HeroInjured);
+        }
+
+        private void HeroInjured(IEventData data)
+        {
+            if (_isTrigger)
+            {
+                return;
+            }
+
+            HeroInjuredEventData heroInjuredEventData = data as HeroInjuredEventData;
+            if (heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity == CombatHeroEntity)
+            {
+                if (CombatHeroEntity.HpBl < effectValue[0])
+                {
+                    _isTrigger = true;
+                    ZhaoHuan();
+                }
+            }
+        }
+
+        private void ZhaoHuan()
+        {
+            for (int i = 0; i < 2; i++)
+            {
+                CombatHeroEntity heroEntity = new CombatHeroEntity();
+                heroEntity.IsEnemy = true;
+                CombatHeroInfo combatHeroInfo = new CombatHeroInfo();
+                combatHeroInfo.InitMonster(1000, 1);
+                // testHeroInfoConfig.CopyToCombatHeroInfo((combatHeroInfo));
+                Vector3 pos = Vector3.forward;
+                heroEntity.Init(new CombatHeroAi(), combatHeroInfo, pos,
+                    delegate(CombatHeroEntity entity)
+                    {
+                        CombatController.currActiveCombat.CombatHeroController.AddHero(entity);
+                    });
+            }
+        }
+
+        protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
+            ITimelineFxLogic timelineFxLogic,
+            TriggerData triggerData, ISkillFeatures skillFeatures)
+        {
+            // float harmBl = 0;
+            // b_1018 b1018 = targetEntity.combatHeroEntity.BuffControl.GetBuffBasicForType<b_1018>();
+            // if (b1018 != null) //消耗一层感电,额外照成伤害
+            // {
+            //     harmBl += b1018.buffCount * effectValue[1];
+            // }
+            //
+            // long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
+            //     harmBl);
+            //
+            // HarmReturnInfo harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v,
+            //     AttType.Skill, triggerData,
+            //     wuXingType, skillFeatures,
+            //     HarmType.Default);
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9062.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: b12636fc231e4a1da42c498346559f50
+timeCreated: 1750401921

+ 51 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9063.cs

@@ -0,0 +1,51 @@
+using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+using GameLogic.Combat.Buff;
+using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.Hero;
+using UnityEngine;
+using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
+
+namespace GameLogic.Combat.Skill
+{
+    /// <summary>
+    /// 木桩
+    /// 木灵挥手,从手中挥舞出一个木头,直线飞向敌人,对敌人造成{0}伤害
+    /// </summary>
+    public class S9063 : SkillBasic
+    {
+        protected override void ProUseSkill()
+        {
+            ballisticsCount = (int)effectValue[0];
+            for (int i = 0; i < effectValue[0]; i++)
+            {
+                CombatHeroHitPoint combatHeroHitPoint = CombatHeroEntity.CombatAIBasic.currFocusTarget
+                    .GetThis<CombatHeroEntity>()
+                    .GetMainHotPoin<CombatHeroHitPoint>();
+                BetterList<ILifetCycleHitPoint> currTarget = new BetterList<ILifetCycleHitPoint>();
+                currTarget.Add(combatHeroHitPoint);
+                SpecialDotInfo specialDotInfo = CombatHeroEntity.GetSpecialDotInfo("zdpos" + (i + 2));
+                ActivationTimeLineData("1101", currTarget: currTarget,
+                    customizePos: new Vector3[] { specialDotInfo.GetWorlPos() }, indexCount: i);
+            }
+        }
+
+        protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
+            ITimelineFxLogic timelineFxLogic,
+            TriggerData triggerData, ISkillFeatures skillFeatures)
+        {
+            float harmBl = effectValue[1];
+            long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
+                harmBl);
+
+            HarmReturnInfo harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v,
+                AttType.Skill, triggerData,
+                wuXingType, skillFeatures,
+                HarmType.Default);
+            // if (harmReturnInfo.isHitHero)
+            // {
+            //     BuffInfo buffInfo = BuffInfo.GetBuffInfo(10011, 1);
+            //     targetEntity.combatHeroEntity.BuffControl.AddBuff(CombatHeroEntity, buffInfo);
+            // }
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9063.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: eeaf50b31d694dfd975653e15509e93c
+timeCreated: 1750402718

+ 62 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9064.cs

@@ -0,0 +1,62 @@
+using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+using Common.Utility.CombatEvent;
+using Fort23.Core;
+using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.Hero;
+using UnityEngine;
+using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
+
+namespace GameLogic.Combat.Skill
+{
+    /// <summary>
+    /// 缠绕
+    /// 敌人脚下生长出藤蔓,将敌人捆住。{0}秒内不能行动(功法不在释放和填充),受到木灵之子的攻击伤害+{1}%
+    /// </summary>
+    public class S9064 : SkillBasic
+    {
+        private float _currTime;
+        private bool _isUpdate;
+
+        protected override void ProUseSkill()
+        {
+            _currTime = 0;
+            _isUpdate = true;
+        }
+
+        protected override void ProActiveSkill()
+        {
+            CombatEventManager.Instance.AddEventListener(CombatEventType.StartInjured, StartInjured);
+        }
+
+        private void StartInjured(IEventData data)
+        {
+            if (!_isUpdate)
+            {
+                return;
+            }
+
+            StartInjuredEventData startInjuredEventData = data as StartInjuredEventData;
+            //如果是木桩 伤害增加
+        }
+
+        protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
+            ITimelineFxLogic timelineFxLogic,
+            TriggerData triggerData, ISkillFeatures skillFeatures)
+        {
+        }
+
+        protected override void ProCombatUpdate(float time)
+        {
+            if (!_isUpdate)
+            {
+                return;
+            }
+
+            _currTime += time;
+            if (_currTime > effectValue[0])
+            {
+                _isUpdate = false;
+            }
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9064.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 20cff3df6d8a4498b6cf91ae8e20d429
+timeCreated: 1750403540

+ 46 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9071.cs

@@ -0,0 +1,46 @@
+using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+using GameLogic.Combat.Buff;
+using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.Hero;
+using UnityEngine;
+using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
+
+namespace GameLogic.Combat.Skill
+{
+    /// <summary>
+    /// 木刺
+    /// 挥手发射{0}枚木刺,对敌人造成{1}上
+    /// </summary>
+    public class S9071 : SkillBasic
+    {
+        protected override void ProUseSkill()
+        {
+            ballisticsCount = (int)effectValue[0];
+            for (int i = 0; i < effectValue[0]; i++)
+            {
+                CombatHeroHitPoint combatHeroHitPoint = CombatHeroEntity.CombatAIBasic.currFocusTarget
+                    .GetThis<CombatHeroEntity>()
+                    .GetMainHotPoin<CombatHeroHitPoint>();
+                BetterList<ILifetCycleHitPoint> currTarget = new BetterList<ILifetCycleHitPoint>();
+                currTarget.Add(combatHeroHitPoint);
+                SpecialDotInfo specialDotInfo = CombatHeroEntity.GetSpecialDotInfo("zdpos" + (i + 2));
+                ActivationTimeLineData("1101", currTarget: currTarget,
+                    customizePos: new Vector3[] { specialDotInfo.GetWorlPos() }, indexCount: i);
+            }
+        }
+
+        protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
+            ITimelineFxLogic timelineFxLogic,
+            TriggerData triggerData, ISkillFeatures skillFeatures)
+        {
+            float harmBl = effectValue[1];
+            long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
+                harmBl);
+
+            HarmReturnInfo harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v,
+                AttType.Skill, triggerData,
+                wuXingType, skillFeatures,
+                HarmType.Default);
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9071.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 181669ffd32a4d899ba381f8d4c3d588
+timeCreated: 1750403975

+ 52 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9081.cs

@@ -0,0 +1,52 @@
+using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+using GameLogic.Combat.Buff;
+using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.Hero;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical;
+using UnityEngine;
+using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
+
+namespace GameLogic.Combat.Skill
+{
+    /// <summary>
+    /// 焚天之怒
+    /// 妖兽激发体内的火灵根,从身体里爆发出{0}枚火焰球,对敌人造成{1}伤害,并对敌人施加1层灼烧
+    /// </summary>
+    public class S9081 : SkillBasic
+    {
+        protected override void ProUseSkill()
+        {
+            ballisticsCount = (int)effectValue[0];
+            for (int i = 0; i < effectValue[0]; i++)
+            {
+                CombatHeroHitPoint combatHeroHitPoint = CombatHeroEntity.CombatAIBasic.currFocusTarget
+                    .GetThis<CombatHeroEntity>()
+                    .GetMainHotPoin<CombatHeroHitPoint>();
+                BetterList<ILifetCycleHitPoint> currTarget = new BetterList<ILifetCycleHitPoint>();
+                currTarget.Add(combatHeroHitPoint);
+                SpecialDotInfo specialDotInfo = CombatHeroEntity.GetSpecialDotInfo("zdpos" + (i + 2));
+                ActivationTimeLineData("1101", currTarget: currTarget,
+                    customizePos: new Vector3[] { specialDotInfo.GetWorlPos() }, indexCount: i);
+            }
+        }
+
+        protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
+            ITimelineFxLogic timelineFxLogic,
+            TriggerData triggerData, ISkillFeatures skillFeatures)
+        {
+            float harmBl = effectValue[1];
+            long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
+                harmBl);
+
+            HarmReturnInfo harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v,
+                AttType.Skill, triggerData,
+                wuXingType, skillFeatures,
+                HarmType.Default);
+            if (harmReturnInfo.isHitHero)
+            {
+                BuffInfo buffInfo = BuffInfo.GetBuffInfo(10051, 1);
+                targetEntity.combatHeroEntity.BuffControl.AddBuff(CombatHeroEntity, buffInfo);
+            }
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9081.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 8fb0d513cb6649da8b76ae7546c8cdcb
+timeCreated: 1750404498

+ 28 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9082.cs

@@ -0,0 +1,28 @@
+using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+using GameLogic.Combat.Buff;
+using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.Hero;
+using UnityEngine;
+using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
+
+namespace GameLogic.Combat.Skill
+{
+    /// <summary>
+    /// 焰轮决(当妖兽拥有2个焰轮法宝,并且没有释放出去的时候触发)
+    /// 2个焰轮围绕妖兽快速旋转形成一道火焰墙,火墙拥有{0}妖兽的最大生命。当金属性功法打在上面时,伤害削弱{1}%
+    /// </summary>
+    public class S9082 : SkillBasic
+    {
+        protected override void ProUseSkill()
+        {
+           
+        }
+
+        protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
+            ITimelineFxLogic timelineFxLogic,
+            TriggerData triggerData, ISkillFeatures skillFeatures)
+        {
+            
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9082.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 3021fba5beae40058bc790228de4b68a
+timeCreated: 1750404559

+ 46 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9083.cs

@@ -0,0 +1,46 @@
+using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+using GameLogic.Combat.Buff;
+using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.Hero;
+using UnityEngine;
+using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
+
+namespace GameLogic.Combat.Skill
+{
+    /// <summary>
+    /// 风炎
+    /// 妖兽煽动翅膀,在空中行程形成{0}个小龙卷风形式的火焰向敌人席卷而去。对敌人照成{0}伤害
+    /// </summary>
+    public class S9083 : SkillBasic
+    {
+        protected override void ProUseSkill()
+        {
+            ballisticsCount = (int)effectValue[0];
+            for (int i = 0; i < effectValue[0]; i++)
+            {
+                CombatHeroHitPoint combatHeroHitPoint = CombatHeroEntity.CombatAIBasic.currFocusTarget
+                    .GetThis<CombatHeroEntity>()
+                    .GetMainHotPoin<CombatHeroHitPoint>();
+                BetterList<ILifetCycleHitPoint> currTarget = new BetterList<ILifetCycleHitPoint>();
+                currTarget.Add(combatHeroHitPoint);
+                SpecialDotInfo specialDotInfo = CombatHeroEntity.GetSpecialDotInfo("zdpos" + (i + 2));
+                ActivationTimeLineData("1101", currTarget: currTarget,
+                    customizePos: new Vector3[] { specialDotInfo.GetWorlPos() }, indexCount: i);
+            }
+        }
+
+        protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
+            ITimelineFxLogic timelineFxLogic,
+            TriggerData triggerData, ISkillFeatures skillFeatures)
+        {
+            float harmBl = effectValue[1];
+            long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
+                harmBl);
+
+            HarmReturnInfo harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v,
+                AttType.Skill, triggerData,
+                wuXingType, skillFeatures,
+                HarmType.Default);
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9083.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: f449f820346f4371ab73a001f8788d88
+timeCreated: 1750404771

+ 46 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9084.cs

@@ -0,0 +1,46 @@
+using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+using GameLogic.Combat.Buff;
+using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.Hero;
+using UnityEngine;
+using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
+
+namespace GameLogic.Combat.Skill
+{
+    /// <summary>
+    /// 焰羽流星
+    /// 妖兽轻轻挥动翅膀,从翅膀出生成{0}枚火焰形式的羽毛,对敌人照成{1}伤害
+    /// </summary>
+    public class S9084 : SkillBasic
+    {
+        protected override void ProUseSkill()
+        {
+            ballisticsCount = (int)effectValue[0];
+            for (int i = 0; i < effectValue[0]; i++)
+            {
+                CombatHeroHitPoint combatHeroHitPoint = CombatHeroEntity.CombatAIBasic.currFocusTarget
+                    .GetThis<CombatHeroEntity>()
+                    .GetMainHotPoin<CombatHeroHitPoint>();
+                BetterList<ILifetCycleHitPoint> currTarget = new BetterList<ILifetCycleHitPoint>();
+                currTarget.Add(combatHeroHitPoint);
+                SpecialDotInfo specialDotInfo = CombatHeroEntity.GetSpecialDotInfo("zdpos" + (i + 2));
+                ActivationTimeLineData("1101", currTarget: currTarget,
+                    customizePos: new Vector3[] { specialDotInfo.GetWorlPos() }, indexCount: i);
+            }
+        }
+
+        protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
+            ITimelineFxLogic timelineFxLogic,
+            TriggerData triggerData, ISkillFeatures skillFeatures)
+        {
+            float harmBl = effectValue[1];
+            long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
+                harmBl);
+
+            HarmReturnInfo harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v,
+                AttType.Skill, triggerData,
+                wuXingType, skillFeatures,
+                HarmType.Default);
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9084.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: efb45e8b6c4344458341b4d8deba190e
+timeCreated: 1750405293

+ 34 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9085.cs

@@ -0,0 +1,34 @@
+using Common.Utility.CombatEvent;
+using Fort23.Core;
+using GameLogic.Combat.Hero;
+
+namespace GameLogic.Combat.Skill
+{
+    /// <summary>
+    /// 焰轮爆发(被动,焰轮的二阶段)
+    /// 当焰轮被摧毁{0}次后,焰轮会激怒到第二阶段,(焰轮表现上做点却别)碰撞强度提升{1}%,并且伤害提升{2}%
+    /// </summary>
+    public class S9085 : SkillBasic
+    {
+        protected override void ProUseSkill()
+        {
+        }
+
+        protected override void ProActiveSkill()
+        {
+            CombatEventManager.Instance.AddEventListener(CombatEventType.MagicWeaponDie, MagicWeaponDie);
+        }
+
+        private void MagicWeaponDie(IEventData iEventData)
+        {
+            HeroDieEventData heroDieEventData = iEventData as HeroDieEventData;
+            CombatMagicWeaponEntity combatMagicWeaponEntity =
+                heroDieEventData.combatHeroEntity as CombatMagicWeaponEntity;
+            if (combatMagicWeaponEntity != null &&
+                combatMagicWeaponEntity.RootMagicWeaponControl.combatHeroEntity == CombatHeroEntity)
+            {
+                
+            }
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Skill/S9085.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 0bfb7e9fd7ba4636b9b8838d8f48b51d
+timeCreated: 1750405368

+ 6 - 17
Assets/Scripts/GameLogic/Combat/Skill/SkillBasic.cs

@@ -140,6 +140,8 @@ namespace GameLogic.Combat.Skill
         protected SkillInfo skillInfo;
 
         protected int ballisticsCount=1;
+
+    
         public T This<T>()
         {
             return (T)(object)this;
@@ -191,6 +193,7 @@ namespace GameLogic.Combat.Skill
         /// </summary>
         public void ActiveSkill()
         {
+            isActive = true;
             ProActiveSkill();
         }
 
@@ -244,10 +247,7 @@ namespace GameLogic.Combat.Skill
             _isDis = false;
         }
 
-        public virtual void ActiveLimitSkill()
-        {
-            isActive = true;
-        }
+       
 
         /// <summary>
         /// 开始游戏
@@ -383,20 +383,9 @@ namespace GameLogic.Combat.Skill
             _combatHeroEntity = null;
         }
 
-        public void ReduceCd(float time)
-        {
-            if (!isActive || !IsCanReduceCd())
-            {
-                return;
-            }
-
-            _skillCd -= time;
-        }
+    
 
-        protected virtual bool IsCanReduceCd()
-        {
-            return true;
-        }
+    
 
         public SpecialDotInfo GetSpecialDotInfo(string specialDotName)
         {

BIN
Excel2Json/Excel/Buff.xlsx


BIN
Excel2Json/Excel/EventConfig.xlsx


BIN
Excel2Json/Excel/Item.xlsx


BIN
Excel2Json/Excel/Language.xlsx


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