XmdsBuff_AddHPByHPPrecent.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. 
  2. using CommonAI.Data;
  3. using CommonAI.Zone;
  4. using CommonAI.Zone.Formula;
  5. using CommonAI.Zone.Instance;
  6. using CommonLang;
  7. using XmdsCommon.Plugin;
  8. using XmdsCommonServer.Plugin;
  9. using XmdsCommonServer.Plugin.XmdsSkillTemplate.Skills;
  10. namespace XmdsCommonSkill.Plugin.Buffs
  11. {
  12. /// <summary>
  13. /// Description: 治疗, 通过自身血量增减
  14. /// </summary>
  15. public class XmdsBuff_AddHPByHPPrecent : XmdsBuffBase
  16. {
  17. public int ChangeValue = 0;
  18. //生命每减少10%,效果增益
  19. public int addition = 0;
  20. public override int GetAbilityID()
  21. {
  22. return (int)XmdsCommon.Plugin.XmdsBuffProperties.XmdsBuffAbility.AddHPExt;
  23. }
  24. public override void CopyTo(UnitBuff other)
  25. {
  26. var ret = other as XmdsBuff_AddHPByHPPrecent;
  27. ret.ChangeValue = ChangeValue;
  28. ret.addition = this.addition;
  29. base.CopyTo(other);
  30. }
  31. protected override void OnBindTemplate(ref BuffTemplate buffTemplate)
  32. {
  33. //DOT类技能首帧无效.
  34. buffTemplate.FirstTimeEnable = false;
  35. base.OnBindTemplate(ref buffTemplate);
  36. }
  37. public override void BuffUpdate(XmdsVirtual unit, InstanceUnit.BuffState state)
  38. {
  39. int extValue = 0;
  40. if (unit.mUnit.MaxHP > 0 && addition > 0)
  41. {
  42. int HPLevel = CUtils.CastInt(10 - unit.mUnit.CurrentHP * 10.0f / unit.mUnit.MaxHP);
  43. extValue = CUtils.CastInt(ChangeValue * HPLevel * addition * XmdsUnitProp.PER);
  44. }
  45. //为自己加血.
  46. unit.AddHP(ChangeValue + extValue, unit.mUnit);
  47. }
  48. public override void BuffBegin(XmdsVirtual hitter, XmdsVirtual attacker, InstanceUnit.BuffState state)
  49. {
  50. }
  51. public override void BuffEnd(XmdsVirtual hitter, InstanceUnit.BuffState state, bool replace)
  52. {
  53. }
  54. protected override void OnDispose()
  55. {
  56. base.OnDispose();
  57. }
  58. }
  59. }