XmdsBattleFunctionEvent_10000.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using CommonAI.Zone;
  2. using CommonAI.Zone.Instance;
  3. using CommonLang;
  4. using XmdsCommon.Plugin;
  5. using XmdsCommonServer.Plugin;
  6. using XmdsCommonServer.Plugin.XmdsSkillTemplate.DamageCalculator;
  7. using XmdsCommonServer.XLS.Data;
  8. using XmdsCommonSkill.Plugin.Buffs;
  9. namespace XmdsCommonSkill.Plugin.FunctionEvent
  10. {
  11. /// <summary>
  12. /// 单挑王事件.首次恢复最大血量5%,之后每秒回复1%,持续5秒.
  13. /// </summary>
  14. public class XmdsBattleFunctionEvent_10000 : XmdsBattleFunctionEventBase
  15. {
  16. public static readonly int EventID = 10000;
  17. private int BuffValue_1 = 0; // 一次性回血量:5%.
  18. private int BuffValue_2 = 0; // 后续每秒回血量:1%.
  19. private int Buff_LifeTime = 0; // buff持续时间.
  20. public override int GetEventID() { return EventID; }
  21. protected override bool OnInit()
  22. {
  23. BuffConfig config = base.GetBuffConfig();
  24. BuffValue_1 = System.Int32.Parse(config.ValueSet1);
  25. BuffValue_2 = System.Int32.Parse(config.ValueSet2);
  26. Buff_LifeTime = System.Int32.Parse(config.ValueSet3);
  27. return XmdsBuffFactory.GetInstance().XmdsBuffPackTest(base.mBuff_ID, XmdsBuffProperties.XmdsBuffAbility.AddHP);
  28. }
  29. protected override void OnTriggerEvent(XmdsVirtual target, XmdsVirtual sender)
  30. {
  31. //首次回血量计算.
  32. int hp1 = CUtils.CastInt(BuffValue_1 * XmdsUnitProp.PER * target.MirrorProp.MaxHP);
  33. //执行首次回血.
  34. target.AddHP(hp1, null, true);
  35. //每秒回血计算.
  36. int hp2 = CUtils.CastInt(BuffValue_2 * XmdsUnitProp.PER * target.MirrorProp.MaxHP);
  37. XmdsBuffPack pack = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(base.mBuff_ID);
  38. XmdsBuff_AddHP buff = (XmdsBuff_AddHP)pack.GetXmdsBuff(XmdsBuffProperties.XmdsBuffAbility.AddHP);
  39. buff.ChangeValue = hp2;
  40. BuffTemplate bt = pack.mBuffTemplate;
  41. bt.IsHarmful = false;
  42. bt.LifeTimeMS = Buff_LifeTime;
  43. bt.FirstTimeEnable = false;
  44. (bt.Properties as XmdsBuffProperties).Dispelled = false;
  45. pack.BindTemplateAndDispose();
  46. target.mUnit.AddBuff(bt, sender.mUnit);
  47. }
  48. }
  49. }