S2001.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using Common.Utility.CombatEvent;
  2. using Fort23.Core;
  3. using GameLogic.Combat.CombatTool;
  4. using GameLogic.Combat.Hero;
  5. namespace GameLogic.Combat.Skill
  6. {
  7. /// <summary>
  8. /// 天衍星辰诀 引星辰之力入体,增强玩家体魄,让后方槽位的功法无视护盾
  9. /// </summary>
  10. public class S2001 : SkillBasic
  11. {
  12. protected override void ProUseSkill()
  13. {
  14. }
  15. protected override void ProReplace()
  16. {
  17. CombatEventManager.Instance.RemoveEventListener(CombatEventType.StartInjured, StartInjured);
  18. }
  19. protected override void ProActiveSkill()
  20. {
  21. CombatEventManager.Instance.AddEventListener(CombatEventType.StartInjured, StartInjured);
  22. }
  23. private void StartInjured(IEventData iEventData)
  24. {
  25. StartInjuredEventData heroInjuredEventData = iEventData as StartInjuredEventData;
  26. HarmReturnInfo harmReturnInfo = heroInjuredEventData.HarmReturnInfo;
  27. if (harmReturnInfo.source == CombatHeroEntity)
  28. {
  29. SkillBasic skillBasic = harmReturnInfo.triggerData.Source as SkillBasic;
  30. IBarrier barrier = harmReturnInfo.triggerData.IBarrier as IBarrier;
  31. if (barrier == null)
  32. {
  33. return;
  34. }
  35. if (skillBasic != null)
  36. {
  37. int index = skillBasic.index;
  38. if (index + 1 == this.index)
  39. {
  40. harmReturnInfo.isInvalid = true;
  41. barrier.BarrierTriggerData.isPenetrate = true;
  42. }
  43. }
  44. }
  45. }
  46. }
  47. }