| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 | 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 UnityEngine;using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;namespace GameLogic.Combat.Skill{    /// <summary>    /// 冰魄牢域(生命值低于50%释放,一局释放一次)    /// 神龟仰天长吼,跺脚几下,整个战场出现寒气特效,神龟的所有主动伤害型技能命中目标后都会施加一层寒气,    /// 寒气每叠到{0}层时,消耗所有层寒气对敌人照成{0}秒的冰冻效果    /// </summary>    public class S9024 : SkillBasic    {        private bool isUse;        private TimeLineEventLogicGroupBasic _loopTimeLine;        protected override void ProActiveSkill()        {            isUse = false;            CombatEventManager.Instance.AddEventListener(CombatEventType.HeroInjured, HeroInjured);        }        protected override void ProDispose()        {            if (_loopTimeLine != null)            {                _loopTimeLine.CloseLoopFx();            }            _loopTimeLine = null;            CombatEventManager.Instance.RemoveEventListener(CombatEventType.HeroInjured, HeroInjured);            // base.ProDispose();        }        private void HeroInjured(IEventData data)        {            HeroInjuredEventData heroInjuredEventData = data as HeroInjuredEventData;            if (isUse)            {                if (heroInjuredEventData.HarmReturnInfo.source == CombatHeroEntity&&!heroInjuredEventData.HarmReturnInfo.attType.HasFlag(AttType.Buff))                {                    BuffInfo buffInfo = BuffInfo.GetBuffInfo(10011, 1);                    heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity.BuffControl.AddBuff(CombatHeroEntity, buffInfo);                }                return;            }                       if (heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity == CombatHeroEntity)            {                float bl = CombatHeroEntity.CurrCombatHeroInfo.hp.Value * 1.0f /                           CombatHeroEntity.MaxCombatHeroInfo.hp.Value;                if (bl * 100 < effectValue[0])                {                    CombatHeroEntity.CombatHeroSkillControl.This<CombatHeroSkillControl>().AddCommandSkill(this);                    isUse = true;                    //触发技能                                    }            }        }          protected override void ProUseSkill()        {            _loopTimeLine=  ActivationTimeLineData("9024");        }        protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,            ITimelineFxLogic timelineFxLogic,            TriggerData triggerData, ISkillFeatures skillFeatures)        {        }    }}
 |