浏览代码

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

zg 6 天之前
父节点
当前提交
54302d9750
共有 89 个文件被更改,包括 3483 次插入848 次删除
  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. 二进制
      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. 二进制
      Assets/Art/nanzhujiao/attack8.FBX
  11. 149 0
      Assets/Art/nanzhujiao/attack8.FBX.meta
  12. 2 2
      Assets/Scenes/testCombat.scene
  13. 9 0
      Assets/Scripts/GameLogic/Combat/Buff/b_1015.cs
  14. 3 0
      Assets/Scripts/GameLogic/Combat/Buff/b_1015.cs.meta
  15. 48 0
      Assets/Scripts/GameLogic/Combat/Buff/b_1016.cs
  16. 3 0
      Assets/Scripts/GameLogic/Combat/Buff/b_1016.cs.meta
  17. 50 0
      Assets/Scripts/GameLogic/Combat/Buff/b_1017.cs
  18. 3 0
      Assets/Scripts/GameLogic/Combat/Buff/b_1017.cs.meta
  19. 28 0
      Assets/Scripts/GameLogic/Combat/Buff/b_1018.cs
  20. 3 0
      Assets/Scripts/GameLogic/Combat/Buff/b_1018.cs.meta
  21. 4 0
      Assets/Scripts/GameLogic/Combat/CombatTool/AttType.cs
  22. 13 6
      Assets/Scripts/GameLogic/Combat/CombatTool/CombatCalculateTool.cs
  23. 8 0
      Assets/Scripts/GameLogic/Combat/CombatTool/HarmReturnInfo.cs
  24. 14 1
      Assets/Scripts/GameLogic/Combat/Hero/CombatHeroSkillControlBasic.cs
  25. 7 2
      Assets/Scripts/GameLogic/Combat/Hero/Turntable/SkillSlots.cs
  26. 6 3
      Assets/Scripts/GameLogic/Combat/Skill/S9011.cs
  27. 39 0
      Assets/Scripts/GameLogic/Combat/Skill/S9012.cs
  28. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9012.cs.meta
  29. 110 0
      Assets/Scripts/GameLogic/Combat/Skill/S9013.cs
  30. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9013.cs.meta
  31. 67 0
      Assets/Scripts/GameLogic/Combat/Skill/S9014.cs
  32. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9014.cs.meta
  33. 42 0
      Assets/Scripts/GameLogic/Combat/Skill/S9015.cs
  34. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9015.cs.meta
  35. 45 0
      Assets/Scripts/GameLogic/Combat/Skill/S9016.cs
  36. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9016.cs.meta
  37. 48 0
      Assets/Scripts/GameLogic/Combat/Skill/S9021.cs
  38. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9021.cs.meta
  39. 95 0
      Assets/Scripts/GameLogic/Combat/Skill/S9022.cs
  40. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9022.cs.meta
  41. 47 0
      Assets/Scripts/GameLogic/Combat/Skill/S9023.cs
  42. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9023.cs.meta
  43. 63 0
      Assets/Scripts/GameLogic/Combat/Skill/S9024.cs
  44. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9024.cs.meta
  45. 55 0
      Assets/Scripts/GameLogic/Combat/Skill/S9031.cs
  46. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9031.cs.meta
  47. 46 0
      Assets/Scripts/GameLogic/Combat/Skill/S9032.cs
  48. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9032.cs.meta
  49. 45 0
      Assets/Scripts/GameLogic/Combat/Skill/S9033.cs
  50. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9033.cs.meta
  51. 50 0
      Assets/Scripts/GameLogic/Combat/Skill/S9041.cs
  52. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9041.cs.meta
  53. 45 0
      Assets/Scripts/GameLogic/Combat/Skill/S9042.cs
  54. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9042.cs.meta
  55. 51 0
      Assets/Scripts/GameLogic/Combat/Skill/S9043.cs
  56. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9043.cs.meta
  57. 50 0
      Assets/Scripts/GameLogic/Combat/Skill/S9044.cs
  58. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9044.cs.meta
  59. 46 0
      Assets/Scripts/GameLogic/Combat/Skill/S9051.cs
  60. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9051.cs.meta
  61. 51 0
      Assets/Scripts/GameLogic/Combat/Skill/S9052.cs
  62. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9052.cs.meta
  63. 79 0
      Assets/Scripts/GameLogic/Combat/Skill/S9053.cs
  64. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9053.cs.meta
  65. 50 0
      Assets/Scripts/GameLogic/Combat/Skill/S9054.cs
  66. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9054.cs.meta
  67. 56 0
      Assets/Scripts/GameLogic/Combat/Skill/S9061.cs
  68. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9061.cs.meta
  69. 90 0
      Assets/Scripts/GameLogic/Combat/Skill/S9062.cs
  70. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9062.cs.meta
  71. 51 0
      Assets/Scripts/GameLogic/Combat/Skill/S9063.cs
  72. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9063.cs.meta
  73. 62 0
      Assets/Scripts/GameLogic/Combat/Skill/S9064.cs
  74. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9064.cs.meta
  75. 46 0
      Assets/Scripts/GameLogic/Combat/Skill/S9071.cs
  76. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9071.cs.meta
  77. 52 0
      Assets/Scripts/GameLogic/Combat/Skill/S9081.cs
  78. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9081.cs.meta
  79. 28 0
      Assets/Scripts/GameLogic/Combat/Skill/S9082.cs
  80. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9082.cs.meta
  81. 46 0
      Assets/Scripts/GameLogic/Combat/Skill/S9083.cs
  82. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9083.cs.meta
  83. 46 0
      Assets/Scripts/GameLogic/Combat/Skill/S9084.cs
  84. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9084.cs.meta
  85. 34 0
      Assets/Scripts/GameLogic/Combat/Skill/S9085.cs
  86. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S9085.cs.meta
  87. 6 17
      Assets/Scripts/GameLogic/Combat/Skill/SkillBasic.cs
  88. 二进制
      Excel2Json/Excel/Buff.xlsx
  89. 606 104
      UserSettings/Layouts/default-2022.dwlt

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

二进制
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: 

文件差异内容过多而无法显示
+ 253 - 540
Assets/Art/cs3.scene


二进制
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: 

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

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

二进制
Excel2Json/Excel/Buff.xlsx


文件差异内容过多而无法显示
+ 606 - 104
UserSettings/Layouts/default-2022.dwlt


部分文件因为文件数量过多而无法显示