XmdsBattleFunctionEvent_10022.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using CommonAI.Zone;
  2. using CommonLang;
  3. using System;
  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>%,持续<$6>秒,可以清除)
  13. /// </summary>
  14. public class XmdsBattleFunctionEvent_10022 : XmdsBattleFunctionEventBase
  15. {
  16. public static readonly int EventID = 10022;
  17. private int BuffValue_1 = 0; //
  18. private int Buff_LifeTime = 0; // buff持续时间.
  19. public override int GetEventID() { return EventID; }
  20. protected override bool OnInit()
  21. {
  22. BuffConfig config = base.GetBuffConfig();
  23. BuffValue_1 = System.Int32.Parse(config.ValueSet1);
  24. Buff_LifeTime = System.Int32.Parse(config.ValueSet2);
  25. return XmdsBuffFactory.GetInstance().XmdsBuffPackTest(base.mBuff_ID, XmdsBuffProperties.XmdsBuffAbility.Bleed);
  26. }
  27. protected override void OnTriggerEvent(XmdsVirtual target, XmdsVirtual sender)
  28. {
  29. XmdsBuffPack pack = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(base.mBuff_ID);
  30. var buff = (XmdsBuff_Bleed)pack.GetXmdsBuff(XmdsBuffProperties.XmdsBuffAbility.Bleed);
  31. buff.ChangeValue = Math.Max(1, CUtils.CastInt(target.mUnit.MaxHP * XmdsUnitProp.PER * BuffValue_1));
  32. BuffTemplate bt = pack.mBuffTemplate;
  33. bt.IsHarmful = false;
  34. bt.LifeTimeMS = Buff_LifeTime;
  35. pack.BindTemplateAndDispose();
  36. target.mUnit.AddBuff(bt, sender.mUnit);
  37. }
  38. }
  39. }