S2003.cs 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using Common.Utility.CombatEvent;
  2. using Fort23.Core;
  3. using GameLogic.Combat.Buff;
  4. using GameLogic.Combat.CombatTool;
  5. using GameLogic.Player;
  6. namespace GameLogic.Combat.Skill
  7. {
  8. /// <summary>
  9. /// 崩脉决 前方功法照成伤害时有5%概率施加一层对应属性的伤势
  10. /// </summary>
  11. public class S2003 : SkillBasic
  12. {
  13. protected override void ProUseSkill()
  14. {
  15. }
  16. protected override void ProReplace()
  17. {
  18. CombatEventManager.Instance.RemoveEventListener(CombatEventType.HeroInjured, HeroInjured);
  19. }
  20. protected override void ProActiveSkill()
  21. {
  22. CombatEventManager.Instance.AddEventListener(CombatEventType.HeroInjured, HeroInjured);
  23. }
  24. private void HeroInjured(IEventData iEventData)
  25. {
  26. HeroInjuredEventData heroInjuredEventData = iEventData as HeroInjuredEventData;
  27. if (heroInjuredEventData.HarmReturnInfo.source == CombatHeroEntity)
  28. {
  29. SkillBasic skillBasic = heroInjuredEventData.HarmReturnInfo.triggerData.Source as SkillBasic;
  30. if (skillBasic != null && IsPassiveActivateSkill(skillBasic))
  31. {
  32. int odds = CombatCalculateTool.Instance.GetOdd(0, 100);
  33. if (odds < 5)
  34. {
  35. BuffInfo buffInfo = null;
  36. switch (skillBasic.wuXingType)
  37. {
  38. case WuXingType.Gold:
  39. buffInfo = BuffInfo.GetBuffInfo(10291, 1, this);
  40. break;
  41. case WuXingType.Fire:
  42. buffInfo = BuffInfo.GetBuffInfo(10321, 1, this);
  43. break;
  44. case WuXingType.Wood:
  45. buffInfo = BuffInfo.GetBuffInfo(10301, 1, this);
  46. break;
  47. case WuXingType.Earth:
  48. buffInfo = BuffInfo.GetBuffInfo(10331, 1, this);
  49. break;
  50. case WuXingType.Water:
  51. buffInfo = BuffInfo.GetBuffInfo(10311, 1, this);
  52. break;
  53. }
  54. heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity.BuffControl.AddBuff(
  55. CombatHeroEntity, buffInfo);
  56. }
  57. }
  58. }
  59. }
  60. }
  61. }