S2015.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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. /// 异常转移
  9. ///对目标造成的异常状态有20%概率转移到下一个目标,不会来回转移
  10. /// </summary>
  11. public class S2015 : SkillBasic
  12. {
  13. protected override void ProActiveSkill()
  14. {
  15. CombatEventManager.Instance.AddEventListener(CombatEventType.AddBuff, AddBuff);
  16. }
  17. protected override void ProUseSkill()
  18. {
  19. }
  20. protected override void ProDispose()
  21. {
  22. CombatEventManager.Instance.RemoveEventListener(CombatEventType.AddBuff, AddBuff);
  23. }
  24. private void AddBuff(IEventData iEventData)
  25. {
  26. BuffEventData buffEventData = iEventData as BuffEventData;
  27. if (buffEventData.source == CombatHeroEntity &&
  28. !buffEventData.addActionsType.HasFlag(AddActionsType.JianJie))
  29. {
  30. CombatHeroEntity[] allHero =
  31. CombatController.currActiveCombat.CombatHeroController.GetHero(!CombatHeroEntity.IsEnemy);
  32. if (allHero != null)
  33. {
  34. for (int i = 0; i < allHero.Length; i++)
  35. {
  36. if (allHero[i] != buffEventData.target)
  37. {
  38. BuffInfo buffInfo = BuffInfo.GetBuffInfo(buffEventData.id, buffEventData.addCount);
  39. allHero[i].BuffControl.AddBuff(CombatHeroEntity, buffInfo, AddActionsType.JianJie);
  40. }
  41. }
  42. }
  43. }
  44. }
  45. }
  46. }