using CommonAI.Zone;
using XmdsCommon.Plugin;
using XmdsCommonServer.Plugin;
using XmdsCommonServer.Plugin.XmdsSkillTemplate.DamageCalculator;
using XmdsCommonServer.Plugin.XmdsSkillTemplate.Skills;
using XmdsCommonServer.XLS.Data;
using XmdsCommonSkill.Plugin.Buffs;

namespace XmdsCommonSkill.Plugin.FunctionEvent
{
	/// <summary>
	/// 天神(进入无敌状态<$5>秒,不承受任何伤害,控制效果。)
	/// </summary>
	public class XmdsBattleFunctionEvent_10014 : XmdsBattleFunctionEventBase
    {
        public static readonly int EventID = 10014;

		private int Buff_LifeTime = 0;        // buff持续时间.

		public override int GetEventID() { return EventID; }

		protected override bool OnInit()
        {
			BuffConfig config = base.GetBuffConfig();
			Buff_LifeTime = System.Int32.Parse(config.ValueSet1);

			return XmdsBuffFactory.GetInstance().XmdsBuffPackTest(base.mBuff_ID, XmdsBuffProperties.XmdsBuffAbility.Invincible);
        }

		protected override void OnTriggerEvent(XmdsVirtual target, XmdsVirtual sender)
		{
			XmdsBuffPack pack = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(base.mBuff_ID);
			var buff = pack.GetXmdsBuff(XmdsBuffProperties.XmdsBuffAbility.Invincible) as XmdsBuff_Invincible;
			buff.isCanMove = true;

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

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