1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- using CommonAI.Zone;
- using CommonAI.Zone.Instance;
- using CommonLang;
- using XmdsCommon.Plugin;
- using XmdsCommonServer.Plugin;
- using XmdsCommonServer.Plugin.XmdsSkillTemplate.DamageCalculator;
- using XmdsCommonServer.XLS.Data;
- using XmdsCommonSkill.Plugin.Buffs;
- namespace XmdsCommonSkill.Plugin.FunctionEvent
- {
- /// <summary>
- /// 单挑王事件.首次恢复最大血量5%,之后每秒回复1%,持续5秒.
- /// </summary>
- public class XmdsBattleFunctionEvent_10000 : XmdsBattleFunctionEventBase
- {
- public static readonly int EventID = 10000;
- private int BuffValue_1 = 0; // 一次性回血量:5%.
- private int BuffValue_2 = 0; // 后续每秒回血量:1%.
- 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);
- BuffValue_2 = System.Int32.Parse(config.ValueSet2);
- Buff_LifeTime = System.Int32.Parse(config.ValueSet3);
- return XmdsBuffFactory.GetInstance().XmdsBuffPackTest(base.mBuff_ID, XmdsBuffProperties.XmdsBuffAbility.AddHP);
- }
- protected override void OnTriggerEvent(XmdsVirtual target, XmdsVirtual sender)
- {
- //首次回血量计算.
- int hp1 = CUtils.CastInt(BuffValue_1 * XmdsUnitProp.PER * target.MirrorProp.MaxHP);
- //执行首次回血.
- target.AddHP(hp1, null, true);
- //每秒回血计算.
- int hp2 = CUtils.CastInt(BuffValue_2 * XmdsUnitProp.PER * target.MirrorProp.MaxHP);
- XmdsBuffPack pack = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(base.mBuff_ID);
- XmdsBuff_AddHP buff = (XmdsBuff_AddHP)pack.GetXmdsBuff(XmdsBuffProperties.XmdsBuffAbility.AddHP);
- buff.ChangeValue = hp2;
- BuffTemplate bt = pack.mBuffTemplate;
- bt.IsHarmful = false;
- bt.LifeTimeMS = Buff_LifeTime;
- bt.FirstTimeEnable = false;
- (bt.Properties as XmdsBuffProperties).Dispelled = false;
- pack.BindTemplateAndDispose();
- target.mUnit.AddBuff(bt, sender.mUnit);
- }
- }
- }
|