using CommonAI.Zone;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using XmdsCommon.Plugin;
using XmdsCommonServer.Plugin;
using XmdsCommonServer.XLS.Data;
using XmdsCommonSkill.Plugin.Buffs;

namespace XmdsCommonSkill.Plugin.Skills.Monster
{
    class Monster_605053 : XmdsSkillBase
    {
        public static int ID = 605053;

        public static XmdsSkillValue DP_1;

        public static int Buff_ID = (int)XmdsBuffBase.XmdsBuffList.YUN_XUAN;

        public override int SkillID { get { return ID; } }

        protected override void OnSkillDamagePerEvent(BattleParams param)
        {
            int ret = CalDamagePer(DP_1, param.GameSkill.SkillLevel);
            param.SkillDamagePer = ret;
        }

        protected override void OnSkillLogicEvent(BattleParams param)
        {
            XmdsBuff_Stun buff = (XmdsBuff_Stun)param.Attacker.GetRegisBuffVirtual(Buff_ID);
            BuffTemplate bt = param.Attacker.GetRegistBuff(Buff_ID);
            bt.LifeTimeMS = 5000;
            param.Hitter.mUnit.AddBuff(Buff_ID, param.Attacker.mUnit);
        }

        protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template)
        {
            XmdsBuffPack pack = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(Buff_ID);
            BuffTemplate bt = pack.mBuffTemplate;
            bt.IsHarmful = true;
            pack.BindTemplateAndDispose();
            unit.RegistSendBuff(bt);
        }

        protected override void OnInitSkillParam()
        {
            XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID);
            InitData(data, out DP_1, XmdsSkillData.XmdsSkillDataKey.DmgRate);
        }
    }
}