XmdsBuff_TestBuff.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. 
  2. using CommonAI.Data;
  3. using CommonAI.Zone;
  4. using CommonAI.Zone.Formula;
  5. using CommonAI.Zone.Instance;
  6. using XmdsCommon.Plugin;
  7. using XmdsCommonServer.Plugin;
  8. using XmdsCommonServer.Plugin.XmdsSkillTemplate.Skills;
  9. namespace XmdsCommonSkill.Plugin.Buffs
  10. {
  11. /// <summary>
  12. /// Description: 测试buff
  13. /// </summary>
  14. public class XmdsBuff_TestBuff : XmdsBuffBase
  15. {
  16. public int ChangeValue = 0;
  17. public bool RemoveOnHit = false;
  18. private int UUID = 0;
  19. protected override void OnBindTemplate(ref BuffTemplate buffTemplate)
  20. {
  21. //DOT类技能首帧无效.
  22. buffTemplate.FirstTimeEnable = false;
  23. base.OnBindTemplate(ref buffTemplate);
  24. }
  25. public override int GetAbilityID()
  26. {
  27. return (int)XmdsCommon.Plugin.XmdsBuffProperties.XmdsBuffAbility.JSGTestBuff;
  28. }
  29. protected override int OnBuffHit(XmdsVirtual hitter, XmdsVirtual attacker,
  30. CommonAI.Zone.Formula.AttackSource source,
  31. ref XmdsVirtual.AtkResult result)
  32. {
  33. //为自己加血.
  34. hitter.AddHP(ChangeValue, attacker.mUnit);
  35. return 0;
  36. }
  37. public override void BuffBegin(XmdsVirtual hitter, XmdsVirtual attacker, InstanceUnit.BuffState state)
  38. {
  39. if (RemoveOnHit)
  40. {
  41. UUID = hitter.RegistOnHitDamage(OnUnitHitEvent, null);
  42. }
  43. }
  44. public override void BuffEnd(XmdsVirtual hitter, InstanceUnit.BuffState state, bool replace)
  45. {
  46. if (RemoveOnHit)
  47. {
  48. hitter.UnRegistOnHitDamage(UUID);
  49. }
  50. }
  51. //被打监听.
  52. protected virtual float OnUnitHitEvent(float damage, XmdsVirtual hitted, XmdsVirtual attacker, AttackSource source,
  53. ref XmdsVirtual.AtkResult result, DamageType damageType, GameSkill skill, ref bool isEndDispatch)
  54. {
  55. return damage;
  56. }
  57. protected override void OnDispose()
  58. {
  59. base.OnDispose();
  60. }
  61. }
  62. }