S2017.cs 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. using Common.Utility.CombatEvent;
  2. using Fort23.Core;
  3. using GameLogic.Combat.Buff;
  4. using GameLogic.Combat.CombatTool;
  5. using GameLogic.Player;
  6. namespace GameLogic.Combat.Skill
  7. {
  8. /// <summary>
  9. /// 灵油
  10. ///前方功法附加上灵气汇聚而成的可燃物质,火属性伤害提升{0}%并额外施加一层灼烧
  11. /// </summary>
  12. public class S2017 : SkillBasic
  13. {
  14. protected override void ProActiveSkill()
  15. {
  16. CombatEventManager.Instance.AddEventListener(CombatEventType.StartInjured, StartInjured);
  17. CombatEventManager.Instance.AddEventListener(CombatEventType.HeroInjured, HeroInjured);
  18. }
  19. protected override void ProUseSkill()
  20. {
  21. }
  22. protected override void ProDispose()
  23. {
  24. CombatEventManager.Instance.RemoveEventListener(CombatEventType.StartInjured, StartInjured);
  25. CombatEventManager.Instance.RemoveEventListener(CombatEventType.HeroInjured, HeroInjured);
  26. }
  27. private void StartInjured(IEventData iEventData)
  28. {
  29. StartInjuredEventData heroInjuredEventData = iEventData as StartInjuredEventData;
  30. if (heroInjuredEventData.HarmReturnInfo.source == CombatHeroEntity)
  31. {
  32. SkillBasic skillBasic = heroInjuredEventData.HarmReturnInfo.triggerData.Source as SkillBasic;
  33. if (skillBasic != null && IsPassiveActivateSkill(skillBasic) &&
  34. skillBasic.wuXingType.HasFlag(WuXingType.Fire))
  35. {
  36. long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(heroInjuredEventData.HarmReturnInfo.att,
  37. effectValue[0]);
  38. heroInjuredEventData.HarmReturnInfo.att += v;
  39. }
  40. }
  41. }
  42. private void HeroInjured(IEventData iEventData)
  43. {
  44. HeroInjuredEventData heroInjuredEventData = iEventData as HeroInjuredEventData;
  45. if (heroInjuredEventData.HarmReturnInfo.source == CombatHeroEntity &&
  46. heroInjuredEventData.HarmReturnInfo.isHitHero)
  47. {
  48. SkillBasic skillBasic = heroInjuredEventData.HarmReturnInfo.triggerData.Source as SkillBasic;
  49. if (skillBasic != null && IsPassiveActivateSkill(skillBasic) &&
  50. skillBasic.wuXingType.HasFlag(WuXingType.Fire))
  51. {
  52. CombatHeroEntity target =
  53. heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity as CombatHeroEntity;
  54. BuffInfo buffInfo = BuffInfo.GetBuffInfo(10051, 1);
  55. target.BuffControl.AddBuff(CombatHeroEntity,
  56. buffInfo);
  57. }
  58. }
  59. }
  60. }
  61. }