XmdsBattleFunctionEvent_10013.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using CommonAI.Zone;
  2. using CommonLang;
  3. using XmdsCommon.Plugin;
  4. using XmdsCommonServer.Plugin;
  5. using XmdsCommonServer.Plugin.XmdsSkillTemplate.DamageCalculator;
  6. using XmdsCommonServer.XLS.Data;
  7. using XmdsCommonSkill.Plugin.Buffs;
  8. namespace XmdsCommonSkill.Plugin.FunctionEvent
  9. {
  10. /// <summary>
  11. /// 单挑王事件.首次恢复最大血量5%,之后每秒回复1%,持续5秒.
  12. /// </summary>
  13. public class XmdsBattleFunctionEvent_10013 : XmdsBattleFunctionEventBase
  14. {
  15. public static readonly int EventID = 10013;
  16. private int BuffValue_1 = 0; // buff生命比
  17. private int Buff_LifeTime = 0; // buff持续时间.
  18. public override int GetEventID() { return EventID; }
  19. protected override bool OnInit()
  20. {
  21. BuffConfig config = base.GetBuffConfig();
  22. BuffValue_1 = System.Int32.Parse(config.ValueSet1);
  23. Buff_LifeTime = System.Int32.Parse(config.ValueSet2);
  24. return XmdsBuffFactory.GetInstance().XmdsBuffPackTest(base.mBuff_ID, XmdsBuffProperties.XmdsBuffAbility.SHIELD_AbsorbDamage);
  25. }
  26. protected override void OnTriggerEvent(XmdsVirtual target, XmdsVirtual sender)
  27. {
  28. XmdsBuffPack pack = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(base.mBuff_ID);
  29. var buff = (XmdsBuff_Shield_AbsorbDamage)pack.GetXmdsBuff(XmdsBuffProperties.XmdsBuffAbility.SHIELD_AbsorbDamage);
  30. buff.AbsorbDamageSum = CUtils.CastInt(target.MirrorProp.MaxHP * XmdsUnitProp.PER * BuffValue_1);
  31. BuffTemplate bt = pack.mBuffTemplate;
  32. bt.IsHarmful = false;
  33. bt.LifeTimeMS = Buff_LifeTime;
  34. pack.BindTemplateAndDispose();
  35. target.mUnit.AddBuff(bt, sender.mUnit);
  36. }
  37. }
  38. }