| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 | using Common.Utility.CombatEvent;using Fort23.Core;using GameLogic.Combat.CombatTool;using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical;namespace GameLogic.Combat.Skill{    /// <summary>    /// 天风迅灵 后槽位技能在催动时获得转盘加速10%,持续2秒    /// 加速期间伤害提升10%    /// </summary>    public class S2007 : SkillBasic    {        private float _addSpeed;        private bool _isUpdate;        private float _addTime;        protected override void ProUseSkill()        {        }        protected override void ProReplace()        {            CombatEventManager.Instance.RemoveEventListener(CombatEventType.AddUseGongFa, AddUseGongFa);            CombatEventManager.Instance.RemoveEventListener(CombatEventType.StartInjured, StartInjured);            // Finish();        }        protected override void ProActiveSkill()        {            CombatEventManager.Instance.AddEventListener(CombatEventType.StartInjured, StartInjured);            CombatEventManager.Instance.AddEventListener(CombatEventType.AddUseGongFa, AddUseGongFa);        }        protected override void ProCombatUpdate(float time)        {            if (_isUpdate)            {                _addTime += time;                if (_addTime > SelfSkillConfig.effectValue[1])                {                    Finish();                }            }        }        private void Finish()        {            if (CombatHeroEntity == null)            {                return;            }            CombatHeroEntity.CurrCombatHeroInfo.addAttSpeed_bl -= _addSpeed;            _addSpeed = 0;            _isUpdate = false;        }        private void StartInjured(IEventData iEventData)        {            if (SelfSkillConfig.level < 5||!_isUpdate)            {                return;            }            StartInjuredEventData heroInjuredEventData = iEventData as StartInjuredEventData;            HarmReturnInfo harmReturnInfo = heroInjuredEventData.HarmReturnInfo;            if (harmReturnInfo.source == CombatHeroEntity)            {                harmReturnInfo.att +=                    CombatCalculateTool.Instance.GetVlaueRatioForLong(harmReturnInfo.att,                        SelfSkillConfig.effectValue[2]);            }        }        private void AddUseGongFa(IEventData iEventData)        {            AddUseGongFaEventData addUseGongFaEventData = iEventData as AddUseGongFaEventData;            if (addUseGongFaEventData.SkillBasic.CombatHeroEntity == CombatHeroEntity )            {                if (IsPassiveActivateSkill(addUseGongFaEventData.SkillBasic))                {                    _addTime = 0;                    _isUpdate = true;                    Finish();                    _addSpeed = SelfSkillConfig.effectValue[0];                    CombatHeroEntity.CurrCombatHeroInfo.addAttSpeed_bl += _addSpeed;                }            }        }    }}
 |