XmdsBattleFunctionEvent_10007.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using CommonAI.Zone;
  2. using CommonLang;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using XmdsCommon.Plugin;
  8. using XmdsCommonServer.Plugin;
  9. using XmdsCommonServer.Plugin.XmdsSkillTemplate.DamageCalculator;
  10. using XmdsCommonServer.XLS.Data;
  11. using XmdsCommonSkill.Plugin.Buffs;
  12. namespace XmdsCommonSkill.Plugin.FunctionEvent
  13. {
  14. // PVP回血
  15. class XmdsBattleFunctionEvent_10007 : XmdsBattleFunctionEventBase
  16. {
  17. public static readonly int EventID = 10007;
  18. private int Buff_Value = 0; // 回血量:10%.
  19. private int Buff_LifeTime = 0; //
  20. public override int GetEventID() { return EventID; }
  21. protected override bool OnInit()
  22. {
  23. BuffConfig config = base.GetBuffConfig();
  24. Buff_Value = System.Int32.Parse(config.ValueSet1);
  25. Buff_LifeTime = System.Int32.Parse(config.ValueSet2);
  26. return XmdsBuffFactory.GetInstance().XmdsBuffPackTest(base.mBuff_ID, XmdsBuffProperties.XmdsBuffAbility.AddHP_Unbroken);
  27. }
  28. protected override void OnTriggerEvent(XmdsVirtual target, XmdsVirtual sender)
  29. {
  30. //每秒回血计算.
  31. int hp2 = CUtils.CastInt(Buff_Value * XmdsUnitProp.PER * target.mUnit.MaxHP);
  32. XmdsBuffPack pack = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(base.mBuff_ID);
  33. XmdsBuff_AddHP_UnBroken buff = (XmdsBuff_AddHP_UnBroken)pack.GetXmdsBuff(XmdsBuffProperties.XmdsBuffAbility.AddHP_Unbroken);
  34. buff.ChangeValue = hp2;
  35. BuffTemplate bt = pack.mBuffTemplate;
  36. bt.IsHarmful = false;
  37. bt.LifeTimeMS = Buff_LifeTime;
  38. bt.FirstTimeEnable = false;
  39. pack.BindTemplateAndDispose();
  40. target.mUnit.AddBuff(bt, sender.mUnit);
  41. }
  42. }
  43. }