S2002.cs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using Common.Utility.CombatEvent;
  2. using Fort23.Core;
  3. namespace GameLogic.Combat.Skill
  4. {
  5. /// <summary>
  6. /// 法宝秘籍:后方槽位第一个技能在击中目前时为法宝提供0.1%充能
  7. ///
  8. /// 法宝可以瞬间释放,切不在进入对拼状态
  9. /// </summary>
  10. public class S2002 : SkillBasic
  11. {
  12. protected override void ProInitSkill()
  13. {
  14. CombatEventManager.Instance.AddEventListener(CombatEventType.HeroInjured, HeroInjuredEventData);
  15. CombatEventManager.Instance.AddEventListener(CombatEventType.UseMagicWeapon, UseMagicWeapon);
  16. }
  17. protected override void ProReplace()
  18. {
  19. CombatEventManager.Instance.RemoveEventListener(CombatEventType.HeroInjured, HeroInjuredEventData);
  20. CombatEventManager.Instance.RemoveEventListener(CombatEventType.UseMagicWeapon, UseMagicWeapon);
  21. }
  22. protected override void ProUseSkill()
  23. {
  24. // CombatEventManager.Instance.AddEventListener(CombatEventType.HeroInjured, HeroInjuredEventData);
  25. }
  26. private void UseMagicWeapon(IEventData iEventData)
  27. {
  28. UseMagicWeaponEventData useMagicWeaponEventData = iEventData as UseMagicWeaponEventData;
  29. if (useMagicWeaponEventData.combatHeroEntity == CombatHeroEntity)
  30. {
  31. useMagicWeaponEventData.combatMagicWeaponEntity.isMagicWeaponTreasureBook = true;
  32. }
  33. }
  34. private void HeroInjuredEventData(IEventData iEventData)
  35. {
  36. HeroInjuredEventData heroInjuredEventData = iEventData as HeroInjuredEventData;
  37. if (heroInjuredEventData.HarmReturnInfo.source == CombatHeroEntity)
  38. {
  39. SkillBasic skillBasic = heroInjuredEventData.HarmReturnInfo.triggerData.Source as SkillBasic;
  40. if (skillBasic == null)
  41. {
  42. return;
  43. }
  44. if (skillBasic != null&&IsPassiveActivateSkill(skillBasic))
  45. {
  46. CombatHeroEntity.heroMagicWeaponControl.ReduceMagicCd(SelfSkillConfig.effectValue[0]);
  47. }
  48. }
  49. }
  50. }
  51. }