using CommonAI.Zone; using XmdsCommonServer.Plugin; using XmdsCommonSkill.Plugin.Buffs; using XmdsCommonServer.XLS.Data; using XmdsCommon.Plugin; namespace XmdsCommonSkill.Plugin.Skills.Assassin { /// /// 毁伤: 对单个敌人造成x倍物攻伤害。每次攻击有几率获得x个连击点数,最多x点. /// 刺客可通过施展其他技能消耗连击点数来造成更多伤害. /// public class Assassin_200010 : XmdsSkillBase { public static int ID = 200010; public static XmdsSkillValue DP_1; public static int Buff_1 = (int)XmdsBuffBase.XmdsBuffList.LIAN_JI_DIAN; /// 每次产生连击点数量. public static XmdsSkillValue BuffCreateNum; /// 连击点数最多点数. /// nana: 程序特效方面已写死最高5个,故为了不误导后续维护人员,此处也写死. public static byte BuffMaxNum = 5; 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; bt.MaxOverlay = BuffMaxNum; 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 OnInitSkillParam() { XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID); InitData(data, out DP_1, XmdsSkillData.XmdsSkillDataKey.DmgRate); InitData(data, out BuffCreateNum, XmdsSkillData.XmdsSkillDataKey.ValueSet); } /// /// 初始化. /// protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template) { //技能技能初始化,常用作为修改BUFF能力等等. XmdsBuffPack pack = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(Buff_1); BuffTemplate bt = pack.mBuffTemplate; bt.IsHarmful = false; pack.BindTemplateAndDispose(); unit.RegistSendBuff(bt); } } }