using CommonAI.Zone; using XmdsCommon.Plugin; using XmdsCommonServer.Plugin; using XmdsCommonSkill.Plugin.Buffs; using XmdsCommonServer.XLS.Data; namespace XmdsCommonSkill.Plugin.Skills.Assassin { /// ///疾跑: 使你的移动速度提高x%,持续x秒。可在隐身状态下使用. /// public class Assassin_200060 : XmdsSkillBase { public static int ID = 200060; /// BUFF作用效果. public static XmdsSkillValue Buff_Value; public static int Buff_ID = (int)XmdsBuffBase.XmdsBuffList.SPEED_UP; public override int SkillID { get { return ID; } } protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template) { //施放技能监听. unit.RegistLaunchSkillOver(OnLaunchSkillOver, info, false); XmdsBuffPack pack = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(Buff_ID); XmdsBuff_MoveSpeedUp buff = (XmdsBuff_MoveSpeedUp)pack.GetXmdsBuff(XmdsBuffProperties.XmdsBuffAbility.MoveSpeedUp); BuffTemplate bt = pack.mBuffTemplate; //bt.LifeTimeMS = GetTargetFormulaValue(info.SkillLevel, BuffLifeTime); bt.IsHarmful = false; pack.BindTemplateAndDispose(); unit.RegistSendBuff(bt); } //攻击监听. protected virtual int OnLaunchSkillOver(GameSkill info, XmdsCommonServer.Plugin.XmdsVirtual attacker, CommonAI.Zone.Instance.InstanceUnit.SkillState state) { if (state.Data.ID == SkillID) { int lv = attacker.SkillHelper.GetGameSkill(SkillID).SkillLevel; XmdsBuff_MoveSpeedDown buff1 = (XmdsBuff_MoveSpeedDown)attacker.GetRegisBuffVirtual(Buff_ID); buff1.ChangePercent = this.GetTargetFormulaValue(lv, Buff_Value); BuffTemplate bt = attacker.GetRegistBuff(Buff_ID); bt.LifeTimeMS = 5000; attacker.mUnit.AddBuff(Buff_ID, attacker.mUnit); } return 0; } protected override void OnInitSkillParam() { XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID); InitData(data, out Buff_Value, XmdsSkillData.XmdsSkillDataKey.ValueSet); } } }