using Common.Utility.CombatEvent; using Fort23.Core; using GameLogic.Combat.CombatTool; using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical; namespace GameLogic.Combat.Skill { /// /// 天风迅灵 后槽位技能在催动时获得转盘加速10%,持续2秒 /// 加速期间伤害提升10% /// 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() { 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; } } } } }