using Common.Utility.CombatEvent; using Fort23.Core; using GameLogic.Combat.Buff; using GameLogic.Combat.CombatTool; using GameLogic.Player; namespace GameLogic.Combat.Skill { /// /// 灵油 ///前方功法附加上灵气汇聚而成的可燃物质,火属性伤害提升{0}%并额外施加一层灼烧 /// public class S2017 : SkillBasic { protected override void ProActiveSkill() { CombatEventManager.Instance.AddEventListener(CombatEventType.StartInjured, StartInjured); CombatEventManager.Instance.AddEventListener(CombatEventType.HeroInjured, HeroInjured); } protected override void ProUseSkill() { } protected override void ProDispose() { CombatEventManager.Instance.RemoveEventListener(CombatEventType.StartInjured, StartInjured); CombatEventManager.Instance.RemoveEventListener(CombatEventType.HeroInjured, HeroInjured); } private void StartInjured(IEventData iEventData) { StartInjuredEventData heroInjuredEventData = iEventData as StartInjuredEventData; if (heroInjuredEventData.HarmReturnInfo.source == CombatHeroEntity) { SkillBasic skillBasic = heroInjuredEventData.HarmReturnInfo.triggerData.Source as SkillBasic; if (skillBasic != null && IsPassiveActivateSkill(skillBasic) && skillBasic.wuXingType.HasFlag(WuXingType.Fire)) { long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(heroInjuredEventData.HarmReturnInfo.att, effectValue[0]); heroInjuredEventData.HarmReturnInfo.att += v; } } } private void HeroInjured(IEventData iEventData) { HeroInjuredEventData heroInjuredEventData = iEventData as HeroInjuredEventData; if (heroInjuredEventData.HarmReturnInfo.source == CombatHeroEntity && heroInjuredEventData.HarmReturnInfo.isHitHero) { SkillBasic skillBasic = heroInjuredEventData.HarmReturnInfo.triggerData.Source as SkillBasic; if (skillBasic != null && IsPassiveActivateSkill(skillBasic) && skillBasic.wuXingType.HasFlag(WuXingType.Fire)) { CombatHeroEntity target = heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity as CombatHeroEntity; BuffInfo buffInfo = BuffInfo.GetBuffInfo(10051, 1); target.BuffControl.AddBuff(CombatHeroEntity, buffInfo); } } } } }