using System; using System.Collections.Generic; using System.Linq; using System.Text; using CommonAI.Zone.Instance; using XmdsCommonServer.Plugin; using CommonAI.Zone.Formula; using XmdsCommon.Plugin; using CommonAI.Data; namespace XmdsCommonSkill.Plugin.Buffs { /// /// FileName: XmdsBuff_Sap.cs /// Author: Alex.Yu /// Corporation:... /// Description: 闷棍. /// DateTime: 2015/6/8 20:58:30 /// public class XmdsBuff_Sap : XmdsBuffBase { private int uuid = 0; public override int GetAbilityID() { return (int)XmdsCommon.Plugin.XmdsBuffProperties.XmdsBuffAbility.Sap; } protected override void OnBindTemplate(ref CommonAI.Zone.BuffTemplate buffTemplate) { //设置为晕眩. buffTemplate.MakeStun = true; this.BuffUseType = (int)XmdsBuffUseType.Times; this.BuffUseTime = 1; } protected override void OnBuffBegin(XmdsVirtual hitter, XmdsVirtual attacker, InstanceUnit.BuffState state) { uuid = hitter.RegistOnHitDamage(OnUnitHit, null); base.OnBuffBegin(hitter, attacker, state); } protected override void OnBuffEnd(XmdsVirtual hitter, InstanceUnit.BuffState state, bool replace) { hitter.UnRegistOnHitDamage(uuid); base.OnBuffEnd(hitter, state, replace); } private float OnUnitHit(float damage, XmdsVirtual hitted, XmdsVirtual attacker, AttackSource source, ref XmdsVirtual.AtkResult result, DamageType damageType, GameSkill skill, ref bool isEndDispatch) { //闷棍状态受到任何伤害,闷棍结束. if (!IsInvaild() && damage > 0) { if (BuffInvaildCheck()) { hitted.mUnit.removeBuff(BindBuffID); } } return damage; } } }