S60105.cs 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. using Common.Utility.CombatEvent;
  2. using Fort23.Core;
  3. using GameLogic.Combat.Buff;
  4. using GameLogic.Combat.CombatTool;
  5. namespace GameLogic.Combat.Skill
  6. {
  7. /// <summary>
  8. /// 星辰之力打中敌人后,为期注入星辰印记,在星辰道结束时结算,没3层印记受到20%伤害
  9. /// </summary>
  10. public class S60105 : SkillBasic
  11. {
  12. private DS60101 ds60101;
  13. protected override void ProActiveSkill()
  14. {
  15. ds60101 = CombatHeroEntity.CombatHeroSkillControl.GetSkillBasic<DS60101>();
  16. ds60101.OnSkillActivefinish += OnSkillActivefinish;
  17. CombatEventManager.Instance.AddEventListener(CombatEventType.HeroInjured, HeroInjured);
  18. }
  19. private void OnSkillActivefinish()
  20. {
  21. CombatHeroEntity[] allHero =
  22. CombatController.currActiveCombat.CombatHeroController.GetHero(!CombatHeroEntity.IsEnemy);
  23. for (int i = 0; i < allHero.Length; i++)
  24. {
  25. CombatHeroEntity combatHeroEntity = allHero[i];
  26. b_1024 b1024 = combatHeroEntity.BuffControl.GetBuffBasicForType<b_1024>();
  27. if (b1024 != null)
  28. {
  29. b1024.Trigger(CombatHeroEntity);
  30. combatHeroEntity.BuffControl.RemoveBuff(b1024);
  31. }
  32. }
  33. }
  34. private void HeroInjured(IEventData iEventData)
  35. {
  36. if (ds60101 == null || !ds60101.isSkillActive)
  37. {
  38. return;
  39. }
  40. // SkillFeaturesData mySkillFeaturesData = null;
  41. HeroInjuredEventData heroInjuredEventData = iEventData as HeroInjuredEventData;
  42. if (heroInjuredEventData.HarmReturnInfo.source == CombatHeroEntity &&
  43. heroInjuredEventData.HarmReturnInfo.isHitHero)
  44. {
  45. S60104 s60104 = heroInjuredEventData.HarmReturnInfo.triggerData.Source as S60104;
  46. if (s60104 != null)
  47. {
  48. BuffInfo buffInfo = BuffInfo.GetBuffInfo(10241, -1, 1);
  49. heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity.BuffControl.AddBuff(CombatHeroEntity,
  50. buffInfo);
  51. }
  52. }
  53. }
  54. protected override void ProDispose()
  55. {
  56. ds60101.OnSkillActivefinish -= OnSkillActivefinish;
  57. CombatEventManager.Instance.RemoveEventListener(CombatEventType.HeroInjured, HeroInjured);
  58. }
  59. protected override void ProUseSkill()
  60. {
  61. }
  62. }
  63. }