using CommonAI.Zone;
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>%,持续<$6>%秒)
	/// </summary>
	public class XmdsBattleFunctionEvent_10016 : XmdsBattleFunctionEventBase
    {
        public static readonly int EventID = 10016;

		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.PropChange);
        }

        protected override void OnTriggerEvent(XmdsVirtual target, XmdsVirtual sender)
        {
            XmdsBuffPack pack = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(base.mBuff_ID);
            var buff = (XmdsBuff_PropChange)pack.GetXmdsBuff(XmdsBuffProperties.XmdsBuffAbility.PropChange);
			buff.CurentChangeType = XmdsVirtual.UnitAttributeType.AttackSpeed;
			buff.CurrentValue = BuffValue_1;
			buff.IsPercent = true;

			BuffTemplate bt = pack.mBuffTemplate;
            bt.IsHarmful = false;
            bt.LifeTimeMS = Buff_LifeTime;
            pack.BindTemplateAndDispose();

            target.mUnit.AddBuff(bt, sender.mUnit);
        }
    }
}