using CommonAI.Zone.Instance; using XmdsCommonServer.Plugin; using XmdsCommonServer.Plugin.XmdsSkillTemplate.Skills; namespace XmdsCommonSkill.Plugin.Buffs { /// /// Description: 移动速度变更. /// public abstract class XmdsBuff_MoveSpeedChange : XmdsBuffBase { /// /// 传负值减速度,传正值加速度. /// public int ChangePercent = 0; private int mOpID = 0; public override void CopyTo(UnitBuff other) { var ret = other as XmdsBuff_MoveSpeedChange; ret.ChangePercent = this.ChangePercent; base.CopyTo(other); } protected override void OnBuffBegin(XmdsCommonServer.Plugin.XmdsVirtual hitter, XmdsCommonServer.Plugin.XmdsVirtual attacker, InstanceUnit.BuffState state) { //移动速度变更. //hitter.AddMoveSpeed(cv); XmdsVirtual.PropChangeOperation pco = hitter.CreatePropChangeOpertation(this); pco.Type = XmdsVirtual.UnitAttributeType.MoveSpeed; pco.Value = ChangePercent * (1 + state.OverlayLevel); pco.OpType = XmdsVirtual.PropChangeOperation.OperateType.Percent; mOpID = hitter.AddPropChangeOperation(pco); XmdsVirtual.FormatLog("BuffBegin : 单位【{0}】,移动速度变更{1}", hitter.mProp.ServerData.BaseInfo.name, ChangePercent); } protected override void OnBuffEnd(XmdsCommonServer.Plugin.XmdsVirtual hitter, InstanceUnit.BuffState state, bool replace) { //移动速度变更. hitter.RemovePropChangeOperation(mOpID); XmdsVirtual.FormatLog("BuffEnd : 单位【{0}】,移动速度变更{1}", hitter.mProp.ServerData.BaseInfo.name, ChangePercent); } } }