using CommonAI.Zone; using CommonLang; using System; using XmdsCommon.Plugin; using XmdsCommonServer.Plugin; using XmdsCommonServer.Plugin.XmdsSkillTemplate.DamageCalculator; using XmdsCommonServer.XLS.Data; using XmdsCommonSkill.Plugin.Buffs; namespace XmdsCommonSkill.Plugin.FunctionEvent { /// /// 中毒(每秒损失最大生命值的<$5>%,持续<$6>秒,可以清除) /// public class XmdsBattleFunctionEvent_10022 : XmdsBattleFunctionEventBase { public static readonly int EventID = 10022; private int BuffValue_1 = 0; // private int Buff_LifeTime = 0; // buff持续时间. public override int GetEventID() { return EventID; } protected override bool OnInit() { BuffConfig config = base.GetBuffConfig(); BuffValue_1 = System.Int32.Parse(config.ValueSet1); Buff_LifeTime = System.Int32.Parse(config.ValueSet2); return XmdsBuffFactory.GetInstance().XmdsBuffPackTest(base.mBuff_ID, XmdsBuffProperties.XmdsBuffAbility.Bleed); } protected override void OnTriggerEvent(XmdsVirtual target, XmdsVirtual sender) { XmdsBuffPack pack = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(base.mBuff_ID); var buff = (XmdsBuff_Bleed)pack.GetXmdsBuff(XmdsBuffProperties.XmdsBuffAbility.Bleed); buff.ChangeValue = Math.Max(1, CUtils.CastInt(target.mUnit.MaxHP * XmdsUnitProp.PER * BuffValue_1)); BuffTemplate bt = pack.mBuffTemplate; bt.IsHarmful = false; bt.LifeTimeMS = Buff_LifeTime; pack.BindTemplateAndDispose(); target.mUnit.AddBuff(bt, sender.mUnit); } } }