| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 | 
							- 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;
 
-         private TimeLineEventLogicGroupBasic _loopTimeLine;
 
-         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 = CombatHeroEntity.CurrCombatHeroInfo.defense.Value;
 
-                 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()
 
-         {
 
-             _loopTimeLine=  ActivationTimeLineData("9022");
 
-         }
 
-         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;
 
-            
 
-         }
 
-         protected override void ProCombatUpdate(float time)
 
-         {
 
-             if (!isUpdate)
 
-             {
 
-                 return;
 
-             }
 
-             currTime += time;
 
-             if (currTime > effectValue[2])
 
-             {
 
-                 isUpdate = false;
 
-                 if (_loopTimeLine != null)
 
-                 {
 
-                     _loopTimeLine.CloseLoopFx();
 
-                     _loopTimeLine = null;
 
-                 }
 
-             }
 
-         }
 
-         protected override void ProDispose()
 
-         {
 
-             CombatEventManager.Instance.RemoveEventListener(CombatEventType.HeroInjured, HeroInjured);
 
-         }
 
-     }
 
- }
 
 
  |