DESKTOP-FB72PO8\Administrator 3 dní pred
rodič
commit
f759dd7f54
25 zmenil súbory, kde vykonal 455 pridanie a 29 odobranie
  1. 1 1
      Assets/Scenes/testCombat.scene
  2. 2 0
      Assets/Scripts/GameLogic/Combat/Buff/b_1001.cs
  3. 2 0
      Assets/Scripts/GameLogic/Combat/Buff/b_1003.cs
  4. 5 4
      Assets/Scripts/GameLogic/Combat/Buff/b_1005.cs
  5. 2 0
      Assets/Scripts/GameLogic/Combat/Buff/b_1011.cs
  6. 18 2
      Assets/Scripts/GameLogic/Combat/Buff/b_1024.cs
  7. 4 0
      Assets/Scripts/GameLogic/Combat/CombatTool/AttType.cs
  8. 37 0
      Assets/Scripts/GameLogic/Combat/CombatTool/CombatCalculateTool.cs
  9. 8 3
      Assets/Scripts/GameLogic/Combat/Hero/CombatHeroInfo.cs
  10. 50 4
      Assets/Scripts/GameLogic/Combat/Hero/Turntable/SkillSlots.cs
  11. 10 5
      Assets/Scripts/GameLogic/Combat/Hero/Turntable/SkillTurntable.cs
  12. 25 7
      Assets/Scripts/GameLogic/Combat/Skill/DS60101.cs
  13. 6 1
      Assets/Scripts/GameLogic/Combat/Skill/S60102.cs
  14. 49 0
      Assets/Scripts/GameLogic/Combat/Skill/S60103.cs
  15. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S60103.cs.meta
  16. 52 0
      Assets/Scripts/GameLogic/Combat/Skill/S60104.cs
  17. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S60104.cs.meta
  18. 71 0
      Assets/Scripts/GameLogic/Combat/Skill/S60105.cs
  19. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S60105.cs.meta
  20. 58 0
      Assets/Scripts/GameLogic/Combat/Skill/S60106.cs
  21. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S60106.cs.meta
  22. 38 0
      Assets/Scripts/GameLogic/Combat/Skill/S60107.cs
  23. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/S60107.cs.meta
  24. 2 2
      Assets/Scripts/GameUI/UI/CombatPanel/ZhuanPanPanel.cs
  25. BIN
      Excel2Json/Excel/Buff.xlsx

+ 1 - 1
Assets/Scenes/testCombat.scene

@@ -2394,7 +2394,7 @@ PrefabInstance:
       objectReference: {fileID: 0}
       objectReference: {fileID: 0}
     - target: {fileID: 9214784224709271120, guid: 1076536f8fdf47942aa287592c6a8b19, type: 3}
     - target: {fileID: 9214784224709271120, guid: 1076536f8fdf47942aa287592c6a8b19, type: 3}
       propertyPath: m_IsActive
       propertyPath: m_IsActive
-      value: 1
+      value: 0
       objectReference: {fileID: 0}
       objectReference: {fileID: 0}
     m_RemovedComponents: []
     m_RemovedComponents: []
     m_RemovedGameObjects: []
     m_RemovedGameObjects: []

+ 2 - 0
Assets/Scripts/GameLogic/Combat/Buff/b_1001.cs

@@ -21,6 +21,8 @@ namespace GameLogic.Combat.Buff
             combatHeroEntity.CurrCombatHeroInfo.addAttSpeed_bl += lasetAddValue;
             combatHeroEntity.CurrCombatHeroInfo.addAttSpeed_bl += lasetAddValue;
             lasetAddValue = 0;
             lasetAddValue = 0;
             lasetAddValue = buffCount * buffInf.BuffConfig.effectValue[0];
             lasetAddValue = buffCount * buffInf.BuffConfig.effectValue[0];
+            lasetAddValue += CombatCalculateTool.Instance.GetVlaueRatioForFloat(
+                lasetAddValue, source.CurrCombatHeroInfo.Water_Proficient);
             combatHeroEntity.CurrCombatHeroInfo.addAttSpeed_bl -= lasetAddValue;
             combatHeroEntity.CurrCombatHeroInfo.addAttSpeed_bl -= lasetAddValue;
         }
         }
 
 

+ 2 - 0
Assets/Scripts/GameLogic/Combat/Buff/b_1003.cs

@@ -20,6 +20,8 @@ namespace GameLogic.Combat.Buff
                 float harmbl = buffCount * buffInf.BuffConfig.effectValue[0];
                 float harmbl = buffCount * buffInf.BuffConfig.effectValue[0];
                 long harm = CombatCalculateTool.Instance.GetVlaueRatioForLong(
                 long harm = CombatCalculateTool.Instance.GetVlaueRatioForLong(
                     source.CurrCombatHeroInfo.attack.Value, harmbl);
                     source.CurrCombatHeroInfo.attack.Value, harmbl);
+                harm += CombatCalculateTool.Instance.GetVlaueRatioForLong(
+                    harm, source.CurrCombatHeroInfo.Wood_Proficient);
                 CombatCalculateTool.Instance.Harm(source, combatHeroEntity, harm, AttType.Buff, _triggerData,
                 CombatCalculateTool.Instance.Harm(source, combatHeroEntity, harm, AttType.Buff, _triggerData,
                     WuXingType.Null,null,HarmType.Buff);
                     WuXingType.Null,null,HarmType.Buff);
             }
             }

+ 5 - 4
Assets/Scripts/GameLogic/Combat/Buff/b_1005.cs

@@ -14,7 +14,6 @@ namespace GameLogic.Combat.Buff
 
 
         protected override void ProInit()
         protected override void ProInit()
         {
         {
-           
         }
         }
 
 
 
 
@@ -27,10 +26,13 @@ namespace GameLogic.Combat.Buff
                 float harmbl = buffCount * buffInf.BuffConfig.effectValue[0];
                 float harmbl = buffCount * buffInf.BuffConfig.effectValue[0];
                 long harm = CombatCalculateTool.Instance.GetVlaueRatioForLong(
                 long harm = CombatCalculateTool.Instance.GetVlaueRatioForLong(
                     source.CurrCombatHeroInfo.attack.Value, harmbl);
                     source.CurrCombatHeroInfo.attack.Value, harmbl);
+                harm += CombatCalculateTool.Instance.GetVlaueRatioForLong(
+                    harm, source.CurrCombatHeroInfo.Fire_Proficient);
                 CombatCalculateTool.Instance.Harm(source, combatHeroEntity, harm, AttType.Buff, _triggerData,
                 CombatCalculateTool.Instance.Harm(source, combatHeroEntity, harm, AttType.Buff, _triggerData,
-                    WuXingType.Fire,null,HarmType.Buff);
+                    WuXingType.Fire, null, HarmType.Buff);
             }
             }
         }
         }
+
         protected override void ProUpdateEffect()
         protected override void ProUpdateEffect()
         {
         {
             if (buffCount >= buffInf.BuffConfig.overlayCount) //最大叠加数量
             if (buffCount >= buffInf.BuffConfig.overlayCount) //最大叠加数量
@@ -46,11 +48,10 @@ namespace GameLogic.Combat.Buff
                 // combatHeroEntity.BuffControl.RemoveBuff(this);
                 // combatHeroEntity.BuffControl.RemoveBuff(this);
             }
             }
         }
         }
-     
+
 
 
         protected override void ProDormancyObj()
         protected override void ProDormancyObj()
         {
         {
-           
         }
         }
     }
     }
 }
 }

+ 2 - 0
Assets/Scripts/GameLogic/Combat/Buff/b_1011.cs

@@ -26,6 +26,8 @@ namespace GameLogic.Combat.Buff
 
 
             long harm = CombatCalculateTool.Instance.GetVlaueRatioForLong(source.CurrCombatHeroInfo.attack.Value,
             long harm = CombatCalculateTool.Instance.GetVlaueRatioForLong(source.CurrCombatHeroInfo.attack.Value,
                 addHarm);
                 addHarm);
+            harm += CombatCalculateTool.Instance.GetVlaueRatioForLong(
+                harm, source.CurrCombatHeroInfo.Metal_Proficient);
             CombatCalculateTool.Instance.Harm(source, combatHeroEntity, harm, AttType.Buff, _triggerData,
             CombatCalculateTool.Instance.Harm(source, combatHeroEntity, harm, AttType.Buff, _triggerData,
                 WuXingType.Gold,null);
                 WuXingType.Gold,null);
         }
         }

+ 18 - 2
Assets/Scripts/GameLogic/Combat/Buff/b_1024.cs

@@ -1,7 +1,23 @@
+using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.Hero;
+using GameLogic.Player;
+
 namespace GameLogic.Combat.Buff
 namespace GameLogic.Combat.Buff
 {
 {
-    public class b_1024
+    /// <summary>
+    /// 星辰印记
+    /// 星辰道升级获得的效果,在结算时收到层数对应的伤害
+    /// </summary>
+    public class b_1024 : BuffBasic
     {
     {
-        
+        public void Trigger(CombatHeroEntity heroEntity)
+        {
+            long att = heroEntity.CurrCombatHeroInfo.attack.Value;
+            float harmBl = buffCount * buffInf.BuffConfig.effectValue[0];
+            long harm = CombatCalculateTool.Instance.GetVlaueRatioForLong(att, harmBl);
+            CombatCalculateTool.Instance.Harm(heroEntity, combatHeroEntity, harm, AttType.Buff, _triggerData,
+                WuXingType.Null, null);
+            
+        }
     }
     }
 }
 }

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

@@ -13,5 +13,9 @@ namespace GameLogic.Combat.CombatTool
         /// 反击伤害
         /// 反击伤害
         /// </summary>
         /// </summary>
         FanJi=8,
         FanJi=8,
+        /// <summary>
+        /// 间接伤害
+        /// </summary>
+        JianJie=16,
     }
     }
 }
 }

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

@@ -155,6 +155,43 @@ namespace GameLogic.Combat.CombatTool
                 return harmReturnInfo;
                 return harmReturnInfo;
             }
             }
 
 
+            switch (WuXingType)
+            {
+                case WuXingType.Gold:
+                    att += GetVlaueRatioForLong(att,
+                        source.CurrCombatHeroInfo.Metal_HarmAdd);
+                    break;
+                case WuXingType.Water:
+                    att += GetVlaueRatioForLong(att,
+                        source.CurrCombatHeroInfo.Water_HarmAdd);
+                    break;
+                case WuXingType.Fire:
+                    att += GetVlaueRatioForLong(att,
+                        source.CurrCombatHeroInfo.Fire_HarmAdd);
+                    break;
+                case WuXingType.Earth:
+                    att += GetVlaueRatioForLong(att,
+                        source.CurrCombatHeroInfo.Earth_HarmAdd);
+                    break;
+                case WuXingType.Wood:
+                    att += GetVlaueRatioForLong(att,
+                        source.CurrCombatHeroInfo.Wood_HarmAdd);
+                    break;
+            }
+
+            if (!harmReturnInfo.attType.HasFlag(AttType.Buff))
+            {
+                att += GetVlaueRatioForLong(att,
+                    source.CurrCombatHeroInfo.finallyHarmAdd -
+                    target.combatHeroEntity.CurrCombatHeroInfo.finallyHarmReduce);
+            }
+            else
+            {
+                att += GetVlaueRatioForLong(att,
+                    source.CurrCombatHeroInfo.abnormalHarmAdd);
+            }
+
+            harmReturnInfo.att = att;
             target.combatHeroEntity.This<CombatHeroEntity>().HeroHurt(harmReturnInfo);
             target.combatHeroEntity.This<CombatHeroEntity>().HeroHurt(harmReturnInfo);
 
 
 
 

+ 8 - 3
Assets/Scripts/GameLogic/Combat/Hero/CombatHeroInfo.cs

@@ -128,12 +128,12 @@ public class CombatHeroInfo
     public float Water_Proficient;
     public float Water_Proficient;
 
 
     /// <summary>
     /// <summary>
-    /// 精通
+    /// 精通
     /// </summary>
     /// </summary>
     public float Wood_Proficient;
     public float Wood_Proficient;
 
 
     /// <summary>
     /// <summary>
-    /// 精通
+    /// 流行精通
     /// </summary>
     /// </summary>
     public float Metal_Proficient;
     public float Metal_Proficient;
 
 
@@ -171,7 +171,10 @@ public class CombatHeroInfo
     /// 最后伤害减少
     /// 最后伤害减少
     /// </summary>
     /// </summary>
     public float finallyHarmReduce;
     public float finallyHarmReduce;
-
+    /// <summary>
+    /// 最终伤害增加 buff伤害除外
+    /// </summary>
+    public float finallyHarmAdd;
     /// <summary>
     /// <summary>
     /// 1=英雄 2=小怪 3=精英怪 4=boss
     /// 1=英雄 2=小怪 3=精英怪 4=boss
     /// </summary>
     /// </summary>
@@ -201,6 +204,8 @@ public class CombatHeroInfo
     /// </summary>
     /// </summary>
     public int TaoismSkillId;
     public int TaoismSkillId;
 
 
+   
+
     public float GetAttSpeed
     public float GetAttSpeed
     {
     {
         get
         get

+ 50 - 4
Assets/Scripts/GameLogic/Combat/Hero/Turntable/SkillSlots.cs

@@ -1,4 +1,5 @@
 using Common.Utility.CombatEvent;
 using Common.Utility.CombatEvent;
+using GameLogic.Combat.Buff;
 using GameLogic.Combat.Skill;
 using GameLogic.Combat.Skill;
 using GameLogic.Player;
 using GameLogic.Player;
 
 
@@ -116,13 +117,14 @@ namespace GameLogic.Combat.Hero.Turntable
             {
             {
                 finishAngle = (jd - targetAngle);
                 finishAngle = (jd - targetAngle);
             }
             }
+
             float allT = SkillBasic.SelfSkillConfig.cd * 360;
             float allT = SkillBasic.SelfSkillConfig.cd * 360;
-            return (finishAngle+triggerCount*360) / allT;
+            return (finishAngle + triggerCount * 360) / allT;
         }
         }
 
 
         public float GetFinishAngle()
         public float GetFinishAngle()
         {
         {
-            if (SkillBasic == null||!SkillBasic.isActive)
+            if (SkillBasic == null || !SkillBasic.isActive)
             {
             {
                 return int.MaxValue;
                 return int.MaxValue;
             }
             }
@@ -146,7 +148,7 @@ namespace GameLogic.Combat.Hero.Turntable
             }
             }
 
 
             float allT = SkillBasic.SelfSkillConfig.cd * 360;
             float allT = SkillBasic.SelfSkillConfig.cd * 360;
-            return allT - (finishAngle+triggerCount*360);
+            return allT - (finishAngle + triggerCount * 360);
         }
         }
 
 
         private void Angle(float addAngle)
         private void Angle(float addAngle)
@@ -180,7 +182,51 @@ namespace GameLogic.Combat.Hero.Turntable
 
 
         private void Trigger(int triggerType)
         private void Trigger(int triggerType)
         {
         {
-            if (SkillBasic != null&&SkillBasic.isActive)
+            switch (triggerType)
+            {
+                case 0:
+                    b_1019 b1019 = skillTurntable.CombatHeroEntity.BuffControl.GetBuffBasicForType<b_1019>();
+                    if (b1019 != null)
+                    {
+                        return;
+                    }
+
+                    break;
+                case 1:
+                    b_1021 b_1021 = skillTurntable.CombatHeroEntity.BuffControl.GetBuffBasicForType<b_1021>();
+                    if (b_1021 != null)
+                    {
+                        return;
+                    }
+
+                    break;
+                case 2:
+                    b_1020 b1020 = skillTurntable.CombatHeroEntity.BuffControl.GetBuffBasicForType<b_1020>();
+                    if (b1020 != null)
+                    {
+                        return;
+                    }
+
+                    break;
+                case 3:
+                    b_1022 b_1022 = skillTurntable.CombatHeroEntity.BuffControl.GetBuffBasicForType<b_1022>();
+                    if (b_1022 != null)
+                    {
+                        return;
+                    }
+
+                    break;
+                case 4:
+                    b_1023 b_1023 = skillTurntable.CombatHeroEntity.BuffControl.GetBuffBasicForType<b_1023>();
+                    if (b_1023 != null)
+                    {
+                        return;
+                    }
+
+                    break;
+            }
+
+            if (SkillBasic != null && SkillBasic.isActive)
             {
             {
                 TriggerSkillSlotsEventData triggerSkillSlotsEventData = TriggerSkillSlotsEventData.Create();
                 TriggerSkillSlotsEventData triggerSkillSlotsEventData = TriggerSkillSlotsEventData.Create();
                 triggerSkillSlotsEventData.SkillBasic = SkillBasic;
                 triggerSkillSlotsEventData.SkillBasic = SkillBasic;

+ 10 - 5
Assets/Scripts/GameLogic/Combat/Hero/Turntable/SkillTurntable.cs

@@ -13,6 +13,12 @@ namespace GameLogic.Combat.Hero.Turntable
         public BetterList<SkillSlots> allSkillSlots = new BetterList<SkillSlots>();
         public BetterList<SkillSlots> allSkillSlots = new BetterList<SkillSlots>();
 
 
         protected CombatHeroSkillControl combatHeroSkillControl;
         protected CombatHeroSkillControl combatHeroSkillControl;
+
+        public CombatHeroEntity CombatHeroEntity
+        {
+            get { return _combatHeroEntity; }
+        }
+
         protected CombatHeroEntity _combatHeroEntity;
         protected CombatHeroEntity _combatHeroEntity;
 
 
         public BetterList<SkillBasic> _removeSkillBasic = new BetterList<SkillBasic>();
         public BetterList<SkillBasic> _removeSkillBasic = new BetterList<SkillBasic>();
@@ -22,6 +28,7 @@ namespace GameLogic.Combat.Hero.Turntable
 
 
         public float skillAddSkillCd;
         public float skillAddSkillCd;
         public int skillCount;
         public int skillCount;
+
         public void Init(int count, CombatHeroSkillControl combatHeroSkillControl, CombatHeroEntity combatHeroEntity)
         public void Init(int count, CombatHeroSkillControl combatHeroSkillControl, CombatHeroEntity combatHeroEntity)
         {
         {
             this.combatHeroSkillControl = combatHeroSkillControl;
             this.combatHeroSkillControl = combatHeroSkillControl;
@@ -80,7 +87,7 @@ namespace GameLogic.Combat.Hero.Turntable
 
 
             _removeTime = 0;
             _removeTime = 0;
             skillAddSkillCd = 0;
             skillAddSkillCd = 0;
-            skillCount=0;
+            skillCount = 0;
             if (allSkill != null)
             if (allSkill != null)
             {
             {
                 for (int i = 0; i < allSkill.Length; i++)
                 for (int i = 0; i < allSkill.Length; i++)
@@ -103,12 +110,11 @@ namespace GameLogic.Combat.Hero.Turntable
                         skillCount++;
                         skillCount++;
                     }
                     }
 
 
-                    skillAddSkillCd+=skillConfig.addcd;
+                    skillAddSkillCd += skillConfig.addcd;
                     SetSkill(skillInfo.index, skillBasic);
                     SetSkill(skillInfo.index, skillBasic);
 
 
                     if (!string.IsNullOrEmpty(skillConfig.scriptName))
                     if (!string.IsNullOrEmpty(skillConfig.scriptName))
                     {
                     {
-                     
                         cTaskAwaitBuffer.AddTask(AssetBundleLoadManager.Instance.LoadAssetAsyncTask<TextAsset>(
                         cTaskAwaitBuffer.AddTask(AssetBundleLoadManager.Instance.LoadAssetAsyncTask<TextAsset>(
                             skillConfig.timelineName + ".txt",
                             skillConfig.timelineName + ".txt",
                             delegate(AssetHandle handle)
                             delegate(AssetHandle handle)
@@ -291,9 +297,8 @@ namespace GameLogic.Combat.Hero.Turntable
             AddUseGongFaEventData addUseGongFaEventData = AddUseGongFaEventData.Create();
             AddUseGongFaEventData addUseGongFaEventData = AddUseGongFaEventData.Create();
             addUseGongFaEventData.SkillBasic = skillBasic;
             addUseGongFaEventData.SkillBasic = skillBasic;
             addUseGongFaEventData.SkillSlots = skillSlots;
             addUseGongFaEventData.SkillSlots = skillSlots;
-           
+
             CombatEventManager.Instance.Dispatch(CombatEventType.AddUseGongFa, addUseGongFaEventData);
             CombatEventManager.Instance.Dispatch(CombatEventType.AddUseGongFa, addUseGongFaEventData);
-           
         }
         }
 
 
 
 

+ 25 - 7
Assets/Scripts/GameLogic/Combat/Skill/DS60101.cs

@@ -11,7 +11,18 @@ namespace GameLogic.Combat.Skill
         public float currEnergy = 0;
         public float currEnergy = 0;
 
 
         private float _currTime;
         private float _currTime;
-        public bool _updateTime;
+        public bool isSkillActive;
+        public event System.Action OnSkillActivefinish;
+        public bool isStop;
+
+        public void Stop()
+        {
+            isStop = true;
+            if (isSkillActive)
+            {
+                Finish();
+            }
+        }
 
 
         protected override void ProUseSkill()
         protected override void ProUseSkill()
         {
         {
@@ -24,10 +35,16 @@ namespace GameLogic.Combat.Skill
 
 
         private void UseSkill(IEventData iEventData)
         private void UseSkill(IEventData iEventData)
         {
         {
+            if (isStop)
+            {
+                return;
+            }
+
             CombatUseSkillEventData combatUseSkillEventData = iEventData as CombatUseSkillEventData;
             CombatUseSkillEventData combatUseSkillEventData = iEventData as CombatUseSkillEventData;
-            if (combatUseSkillEventData.useSkill.CombatHeroEntity == CombatHeroEntity&& combatUseSkillEventData.useSkill.SelfSkillConfig.SkillType == 1)
+            if (combatUseSkillEventData.useSkill.CombatHeroEntity == CombatHeroEntity &&
+                combatUseSkillEventData.useSkill.SelfSkillConfig.SkillType == 1)
             {
             {
-                if (_updateTime)
+                if (isSkillActive)
                 {
                 {
                     return;
                     return;
                 }
                 }
@@ -35,7 +52,7 @@ namespace GameLogic.Combat.Skill
                 currEnergy += SelfSkillConfig.effectValue[0];
                 currEnergy += SelfSkillConfig.effectValue[0];
                 if (currEnergy >= SelfSkillConfig.effectValue[1])
                 if (currEnergy >= SelfSkillConfig.effectValue[1])
                 {
                 {
-                    _updateTime = true;
+                    isSkillActive = true;
                     _currTime = 0;
                     _currTime = 0;
                     currEnergy = 0;
                     currEnergy = 0;
                     CombatHeroEntity.CurrCombatHeroInfo.addAttSpeed_bl += SelfSkillConfig.effectValue[2];
                     CombatHeroEntity.CurrCombatHeroInfo.addAttSpeed_bl += SelfSkillConfig.effectValue[2];
@@ -45,17 +62,18 @@ namespace GameLogic.Combat.Skill
 
 
         private void Finish()
         private void Finish()
         {
         {
-            if (_updateTime)
+            if (isSkillActive)
             {
             {
                 CombatHeroEntity.CurrCombatHeroInfo.addAttSpeed_bl -= SelfSkillConfig.effectValue[2];
                 CombatHeroEntity.CurrCombatHeroInfo.addAttSpeed_bl -= SelfSkillConfig.effectValue[2];
-                _updateTime = false;
+                isSkillActive = false;
+                OnSkillActivefinish?.Invoke();
             }
             }
         }
         }
 
 
 
 
         protected override void ProCombatUpdate(float time)
         protected override void ProCombatUpdate(float time)
         {
         {
-            if (_updateTime)
+            if (isSkillActive)
             {
             {
                 _currTime += time;
                 _currTime += time;
                 if (_currTime >= SelfSkillConfig.effectValue[4])
                 if (_currTime >= SelfSkillConfig.effectValue[4])

+ 6 - 1
Assets/Scripts/GameLogic/Combat/Skill/S60102.cs

@@ -18,7 +18,7 @@ namespace GameLogic.Combat.Skill
 
 
         private void GongFaPengZhuangStart(IEventData iEventData)
         private void GongFaPengZhuangStart(IEventData iEventData)
         {
         {
-            if (ds60101 == null || !ds60101._updateTime)
+            if (ds60101 == null || !ds60101.isSkillActive)
             {
             {
                 return;
                 return;
             }
             }
@@ -39,6 +39,11 @@ namespace GameLogic.Combat.Skill
             }
             }
         }
         }
 
 
+        protected override void ProDispose()
+        {
+            CombatEventManager.Instance.RemoveEventListener(CombatEventType.GongFaPengZhuangStart, GongFaPengZhuangStart);
+        }
+
         protected override void ProUseSkill()
         protected override void ProUseSkill()
         {
         {
         }
         }

+ 49 - 0
Assets/Scripts/GameLogic/Combat/Skill/S60103.cs

@@ -0,0 +1,49 @@
+using Common.Utility.CombatEvent;
+using Fort23.Core;
+using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.Hero;
+
+namespace GameLogic.Combat.Skill
+{
+    /// <summary>
+    /// 启动期间每使用一个功法生命恢复2%
+    /// </summary>
+    public class S60103 : SkillBasic
+    {
+        private DS60101 ds60101;
+
+        protected override void ProActiveSkill()
+        {
+            ds60101 = CombatHeroEntity.CombatHeroSkillControl.GetSkillBasic<DS60101>();
+            CombatEventManager.Instance.AddEventListener(CombatEventType.UseSkill, UseSkill);
+        }
+
+        private void UseSkill(IEventData iEventData)
+        {
+            if (ds60101 == null || !ds60101.isSkillActive)
+            {
+                return;
+            }
+
+            // SkillFeaturesData mySkillFeaturesData = null;
+            CombatUseSkillEventData combatUseSkillEventData = iEventData as CombatUseSkillEventData;
+            if (combatUseSkillEventData.useSkill.CombatHeroEntity == CombatHeroEntity)
+            {
+                long hp = CombatHeroEntity.MaxCombatHeroInfo.hp.Value;
+                long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(hp, effectValue[0]);
+                CombatCalculateTool.Instance.Recover(CombatHeroEntity,
+                    CombatHeroEntity.GetMainHotPoin<CombatHeroHitPoint>(), v, AttType.Skill, HarmType.Default,
+                    triggerData);
+            }
+        }
+
+        protected override void ProDispose()
+        {
+            CombatEventManager.Instance.RemoveEventListener(CombatEventType.UseSkill, UseSkill);
+        }
+
+        protected override void ProUseSkill()
+        {
+        }
+    }
+}

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

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: e59ae68d348f4f228f31b5f48a7594d3
+timeCreated: 1751349673

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

@@ -0,0 +1,52 @@
+using Common.Utility.CombatEvent;
+using Fort23.Core;
+using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.Hero;
+
+namespace GameLogic.Combat.Skill
+{
+    /// <summary>
+    /// 星辰道启动期间释放的功法带有星辰之力,对敌人额外照成30%当前伤害
+    /// </summary>
+    public class S60104 : SkillBasic
+    {
+        private DS60101 ds60101;
+
+        protected override void ProActiveSkill()
+        {
+            ds60101 = CombatHeroEntity.CombatHeroSkillControl.GetSkillBasic<DS60101>();
+            CombatEventManager.Instance.AddEventListener(CombatEventType.HeroInjured, HeroInjured);
+        }
+
+        private void HeroInjured(IEventData iEventData)
+        {
+            if (ds60101 == null || !ds60101.isSkillActive)
+            {
+                return;
+            }
+
+            // SkillFeaturesData mySkillFeaturesData = null;
+            HeroInjuredEventData heroInjuredEventData = iEventData as HeroInjuredEventData;
+            if (heroInjuredEventData.HarmReturnInfo.source == CombatHeroEntity &&
+                heroInjuredEventData.HarmReturnInfo.isHitHero)
+            {
+                long att = heroInjuredEventData.HarmReturnInfo.att;
+                long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(att, effectValue[0]);
+                CombatCalculateTool.Instance.Harm(CombatHeroEntity, heroInjuredEventData.HarmReturnInfo.target, v,
+                    AttType.Skill | AttType.JianJie, triggerData, heroInjuredEventData.HarmReturnInfo.WuXingType, null);
+                // CombatCalculateTool.Instance.Recover(CombatHeroEntity,
+                //     CombatHeroEntity.GetMainHotPoin<CombatHeroHitPoint>(), v, AttType.Skill, HarmType.Default,
+                //     triggerData);
+            }
+        }
+
+        protected override void ProDispose()
+        {
+            CombatEventManager.Instance.RemoveEventListener(CombatEventType.HeroInjured, HeroInjured);
+        }
+
+        protected override void ProUseSkill()
+        {
+        }
+    }
+}

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

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 2f63aaa80e614788854bce7ffe5ed4bc
+timeCreated: 1751350008

+ 71 - 0
Assets/Scripts/GameLogic/Combat/Skill/S60105.cs

@@ -0,0 +1,71 @@
+using Common.Utility.CombatEvent;
+using Fort23.Core;
+using GameLogic.Combat.Buff;
+using GameLogic.Combat.CombatTool;
+
+namespace GameLogic.Combat.Skill
+{
+    /// <summary>
+    /// 星辰之力打中敌人后,为期注入星辰印记,在星辰道结束时结算,没3层印记受到20%伤害
+    /// </summary>
+    public class S60105 : SkillBasic
+    {
+        private DS60101 ds60101;
+
+        protected override void ProActiveSkill()
+        {
+            ds60101 = CombatHeroEntity.CombatHeroSkillControl.GetSkillBasic<DS60101>();
+            ds60101.OnSkillActivefinish += OnSkillActivefinish;
+            CombatEventManager.Instance.AddEventListener(CombatEventType.HeroInjured, HeroInjured);
+        }
+
+        private void OnSkillActivefinish()
+        {
+            CombatHeroEntity[] allHero =
+                CombatController.currActiveCombat.CombatHeroController.GetHero(!CombatHeroEntity.IsEnemy);
+
+            for (int i = 0; i < allHero.Length; i++)
+            {
+                CombatHeroEntity combatHeroEntity = allHero[i];
+                b_1024 b1024 = combatHeroEntity.BuffControl.GetBuffBasicForType<b_1024>();
+                if (b1024 != null)
+                {
+                    b1024.Trigger(CombatHeroEntity);
+                    combatHeroEntity.BuffControl.RemoveBuff(b1024);
+                }
+            }
+        }
+
+        private void HeroInjured(IEventData iEventData)
+        {
+            if (ds60101 == null || !ds60101.isSkillActive)
+            {
+                return;
+            }
+
+            // SkillFeaturesData mySkillFeaturesData = null;
+            HeroInjuredEventData heroInjuredEventData = iEventData as HeroInjuredEventData;
+            if (heroInjuredEventData.HarmReturnInfo.source == CombatHeroEntity &&
+                heroInjuredEventData.HarmReturnInfo.isHitHero)
+            {
+                S60104 s60104 = heroInjuredEventData.HarmReturnInfo.triggerData.Source as S60104;
+                if (s60104 != null)
+                {
+                    BuffInfo buffInfo = BuffInfo.GetBuffInfo(10241, -1, 1);
+                    heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity.BuffControl.AddBuff(CombatHeroEntity,
+                        buffInfo);
+                }
+            }
+        }
+
+        protected override void ProDispose()
+        {
+            ds60101.OnSkillActivefinish -= OnSkillActivefinish;
+            CombatEventManager.Instance.RemoveEventListener(CombatEventType.HeroInjured, HeroInjured);
+        }
+
+        protected override void ProUseSkill()
+        {
+        }
+    }
+}

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

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 3a99466a9fdf43728c90c08b0c5a6eb2
+timeCreated: 1751350578

+ 58 - 0
Assets/Scripts/GameLogic/Combat/Skill/S60106.cs

@@ -0,0 +1,58 @@
+using Common.Utility.CombatEvent;
+using Fort23.Core;
+using GameLogic.Combat.Buff;
+using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.Hero;
+
+namespace GameLogic.Combat.Skill
+{
+    /// <summary>
+    /// 死亡时恢复30%最大生命
+    /// </summary>
+    public class S60106 : SkillBasic
+    {
+        private int count;
+
+        public event System.Action OnResurrected;
+        protected override void ProActiveSkill()
+        {
+            count = 0;
+            CombatEventManager.Instance.AddEventListener(CombatEventType.HeroInjured, HeroInjured);
+        }
+
+
+        private void HeroInjured(IEventData iEventData)
+        {
+            if (count > 0)
+            {
+                return;
+            }
+
+
+            HeroInjuredEventData heroInjuredEventData = iEventData as HeroInjuredEventData;
+            if (heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity == CombatHeroEntity)
+            {
+                if (CombatHeroEntity.CurrCombatHeroInfo.hp <= 0)
+                {
+                    count++;
+                    long hp= CombatHeroEntity.MaxCombatHeroInfo.hp.Value;
+                    long addHp = CombatCalculateTool.Instance.GetVlaueRatioForLong(hp, effectValue[0]);
+                    CombatCalculateTool.Instance.Recover(CombatHeroEntity,
+                        CombatHeroEntity.GetMainHotPoin<CombatHeroHitPoint>(), addHp, AttType.Skill, HarmType.Default,
+                        triggerData);
+                    OnResurrected?.Invoke();
+                }
+            }
+        }
+
+        protected override void ProDispose()
+        {
+            OnResurrected = null;
+            CombatEventManager.Instance.RemoveEventListener(CombatEventType.HeroInjured, HeroInjured);
+        }
+
+        protected override void ProUseSkill()
+        {
+        }
+    }
+}

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

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: b1dec21d3cde4a5fbad3ccad3d60117f
+timeCreated: 1751352581

+ 38 - 0
Assets/Scripts/GameLogic/Combat/Skill/S60107.cs

@@ -0,0 +1,38 @@
+using Common.Utility.CombatEvent;
+using Fort23.Core;
+using GameLogic.Combat.Buff;
+using GameLogic.Combat.CombatTool;
+
+namespace GameLogic.Combat.Skill
+{
+    /// <summary>
+    /// 死亡后星辰道不在运转,转而获得200%伤害加成
+    /// </summary>
+    public class S60107 : SkillBasic
+    {
+        private S60106 s60106;
+
+        protected override void ProActiveSkill()
+        {
+            s60106 = CombatHeroEntity.CombatHeroSkillControl.GetSkillBasic<S60106>();
+            s60106.OnResurrected += OnResurrected;
+        }
+
+        private void OnResurrected()
+        {
+            DS60101 ds60101 = CombatHeroEntity.CombatHeroSkillControl.GetSkillBasic<DS60101>();
+            ds60101.Stop();
+            CombatHeroEntity.CurrCombatHeroInfo.finallyHarmAdd+=effectValue[0];
+        }
+
+
+        protected override void ProDispose()
+        {
+            s60106.OnResurrected -= OnResurrected;
+        }
+
+        protected override void ProUseSkill()
+        {
+        }
+    }
+}

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

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 9f9c20d4bfcb4888be596c9f9d673b9e
+timeCreated: 1751353878

+ 2 - 2
Assets/Scripts/GameUI/UI/CombatPanel/ZhuanPanPanel.cs

@@ -366,10 +366,10 @@ namespace Fort23.Mono
                 {
                 {
                     if (fx_ui_zhuangPan != null)
                     if (fx_ui_zhuangPan != null)
                     {
                     {
-                        fx_ui_zhuangPan.gameObject.SetActive(ds60101._updateTime);
+                        fx_ui_zhuangPan.gameObject.SetActive(ds60101.isSkillActive);
                     }
                     }
 
 
-                    zhuanpan_chongneng.gameObject.SetActive(!ds60101._updateTime);
+                    zhuanpan_chongneng.gameObject.SetActive(!ds60101.isSkillActive);
                     zhuanpan_chongneng.fillAmount = ds60101.currEnergy / ds60101.SelfSkillConfig.effectValue[1];
                     zhuanpan_chongneng.fillAmount = ds60101.currEnergy / ds60101.SelfSkillConfig.effectValue[1];
                     // lanLiang.color = !ds60101._updateTime
                     // lanLiang.color = !ds60101._updateTime
                     //     ? new Color(1f, 0.96f, 0f)
                     //     ? new Color(1f, 0.96f, 0f)

BIN
Excel2Json/Excel/Buff.xlsx