using CommonAI.Zone; using XmdsCommonServer.Plugin; using XmdsCommonSkill.Plugin.Buffs; using XmdsCommonServer.XLS.Data; using XmdsCommon.Plugin; using XmdsCommonServer.Plugin.XmdsSkillTemplate.Skills; namespace XmdsCommonSkill.Plugin.Skills.Assassin { /// ///突袭: 突进到目标身边发起攻击,对目标和附近的敌人造成x倍物攻伤害附加x物理伤害. ///有x率获得x个连击点数,最多不超过“毁伤”的连击点最大值. /// public class Assassin_200030 : XmdsSkillBase { public static int ID = 200030; /// 伤害倍数. public static XmdsSkillValue DP_1; public static int Buff_1 = (int)XmdsBuffBase.XmdsBuffList.LIAN_JI_DIAN; /// 每次产生连击点数量. public static XmdsSkillValue BuffCreateNum; 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) { addLianJiDian(param); } protected void addLianJiDian(BattleParams param) { BuffTemplate bt = param.Attacker.GetRegistBuff(Buff_1); bt.LifeTimeMS = 5000; int count = GetTargetFormulaValue(param.GameSkill.SkillLevel, BuffCreateNum); for (int i = 0 ; i < count ; i++) { param.Attacker.mUnit.AddBuff(Buff_1, param.Attacker.mUnit); } } protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template) { XmdsBuffPack pack = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(Buff_1); BuffTemplate bt = pack.mBuffTemplate; bt.IsHarmful = false; pack.BindTemplateAndDispose(); unit.RegistSendBuff(bt); base.OnInit(info, unit, ref template); } protected override void OnInitSkillParam() { XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID); InitData(data, out DP_1, XmdsSkillData.XmdsSkillDataKey.DmgRate); InitData(data, out BuffCreateNum, XmdsSkillData.XmdsSkillDataKey.ValueSet); } } }