S2015.cs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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. ///后方功法对目标造成的异常状态有{0}%概率转移到下一个目标,不会来回转移
  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. SkillBasic skillBasic = buffEventData.BuffInfo.source as SkillBasic;
  31. if (skillBasic != null && IsPassiveActivateSkill(skillBasic))
  32. {
  33. CombatHeroEntity[] allHero =
  34. CombatController.currActiveCombat.CombatHeroController.GetHero(!CombatHeroEntity.IsEnemy);
  35. if (allHero != null)
  36. {
  37. for (int i = 0; i < allHero.Length; i++)
  38. {
  39. if (allHero[i] != buffEventData.target)
  40. {
  41. BuffInfo buffInfo =
  42. BuffInfo.GetBuffInfo(buffEventData.id, buffEventData.addCount, this);
  43. allHero[i].BuffControl.AddBuff(CombatHeroEntity, buffInfo, AddActionsType.JianJie);
  44. }
  45. }
  46. }
  47. }
  48. }
  49. }
  50. }
  51. }