using CommonAI.Data;
using CommonAI.Zone;
using CommonAI.Zone.Helper;
using CommonAI.Zone.Instance;
using CommonLang;
using System;
using System.Collections.Generic;
using XmdsCommon.Plugin;
using XmdsCommonServer.Plugin;
using XmdsCommonServer.Plugin.XmdsSkillTemplate.Skills;
using XmdsCommonServer.XLS.Data;
using XmdsCommonSkill.Plugin.Buffs;
using XmdsCommonSkill.Plugin.Interface;
using XmdsCommonSkill.Plugin.PassiveSkills.Magic;
using static CommonAI.Zone.Instance.InstanceUnit;
using static XmdsCommonSkill.Plugin.Buffs.XmdsBuff_SwordShadow;
using static XmdsCommonSkill.Plugin.Interface.ComSpellTemplate;
using static XmdsCommonSkill.Plugin.Skills.XmdsSummonBase;
namespace XmdsCommonSkill.Plugin.Skills.Magic
{
///
///蛛网召唤
///
public class Dungeon_911001 : XmdsPassiveSkillBase
{
public static readonly int ID = 911001;
public override int SkillID { get { return ID; } }
private static XmdsSkillValue valueSet1; // 检测半径
private static XmdsSkillValue valueSet2; // 眩晕时间
//临时存储
protected XmdsVirtual mOwner;
private int mCheckInterval;
private float mCheckRange;
private int mXunYunTime;
public static int Buff_1 = (int)XmdsBuffBase.XmdsBuffList.YUN_XUAN; // 眩晕.
protected override void OnInit(GameSkill info, XmdsVirtual unit)
{
this.mOwner = unit;
this.mCheckRange = valueSet1.GetValue(info.SkillLevel)/10.0f;
this.mXunYunTime = valueSet2.GetValue(info.SkillLevel);
//技能初始化,常用作为修改BUFF能力等等.
XmdsBuffPack pack = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(Buff_1);
BuffTemplate bt = pack.mBuffTemplate;
bt.IsHarmful = true;
bt.LifeTimeMS = this.mXunYunTime;
pack.BindTemplateAndDispose();
unit.RegistSendBuff(bt);
}
protected override void OnUpdate(int intervalMS, bool slowRefresh)
{
this.mCheckInterval += intervalMS;
if(this.mCheckInterval > 100)
{
//眩晕周围目标
List rangeUnits = base.GetNearUnitList(this.mOwner, this.mCheckRange, false, 2);
foreach(InstanceUnit unitTemp in rangeUnits)
{
unitTemp.AddBuff(Buff_1, this.mOwner.mUnit);
}
}
}
protected override void OnInitSkillParam()
{
XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID);
InitData(data, out valueSet1, XmdsSkillData.XmdsSkillDataKey.ValueSet);
InitData(data, out valueSet2, XmdsSkillData.XmdsSkillDataKey.ValueSet2);
}
}
}