using CommonAI.Zone; using XmdsCommon.Plugin; using XmdsCommonServer.Plugin; using XmdsCommonServer.XLS.Data; using XmdsCommonSkill.Plugin.Buffs; namespace XmdsCommonSkill.Plugin.Skills.Pet { /// /// 让敌人陷入衰弱状态<$4>秒,期间敌人攻击力下降<$5>%,防御力下降<$6>% /// class Pet_8300402 : XmdsSkillBase { public static int ID = 8300402; public static int Buff_ID = 8300402; public static XmdsSkillValue Buff_Value; public static XmdsSkillValue Buff_Value2; public override int SkillID { get { return ID; } } protected override void OnInitSkillParam() { XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID); InitData(data, out Buff_Value, XmdsSkillData.XmdsSkillDataKey.ValueSet); InitData(data, out Buff_Value2, XmdsSkillData.XmdsSkillDataKey.ValueSet2); } protected override void OnSkillLogicEvent(BattleParams param) { param.Hitter.mUnit.AddBuff(Buff_ID, param.Attacker.mUnit); } protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template) { XmdsBuffPack pack = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(Buff_ID); var bufflist = pack.GetXmdsBuffList(); int value = -this.GetTargetFormulaValue(info.SkillLevel, Buff_Value); int value2 = -this.GetTargetFormulaValue(info.SkillLevel, Buff_Value2); if (bufflist.Count >= 2) { var propChange = (XmdsBuff_PropChange)bufflist[0]; propChange.CurentChangeType = XmdsVirtual.UnitAttributeType.Attack; propChange.CurrentValue = value; propChange.IsPercent = true; propChange = (XmdsBuff_PropChange)bufflist[1]; propChange.CurentChangeType = XmdsVirtual.UnitAttributeType.Defence; propChange.CurrentValue = value2; propChange.IsPercent = true; } BuffTemplate bt = pack.mBuffTemplate; bt.IsHarmful = true; bt.LifeTimeMS = 5000; pack.BindTemplateAndDispose(); unit.RegistSendBuff(bt); } } }