Pet_8200202.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. using CommonAI.Zone;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using XmdsCommon.Plugin;
  7. using XmdsCommonServer.Plugin;
  8. using XmdsCommonServer.XLS.Data;
  9. using XmdsCommonSkill.Plugin.Buffs;
  10. namespace XmdsCommonSkill.Plugin.Skills.Pet
  11. {
  12. /// <summary>
  13. /// 冲锋 冲向一群敌人,对他们造成<$1>倍物攻并有<$3>%的几率触发破甲效果,效果持续<$4>秒
  14. /// </summary>
  15. class Pet_8200202 : XmdsSkillBase
  16. {
  17. public static int ID = 8200202;
  18. /// 伤害倍数.
  19. public static XmdsSkillValue DP_1;
  20. public static int Buff_ID = 8200202;
  21. public static XmdsSkillValue Buff_Value;
  22. public override int SkillID { get { return ID; } }
  23. protected override void OnSkillDamagePerEvent(BattleParams param)
  24. {
  25. int ret = CalDamagePer(DP_1, param.GameSkill.SkillLevel);
  26. param.SkillDamagePer = ret;
  27. }
  28. protected override void OnInitSkillParam()
  29. {
  30. XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID);
  31. InitData(data, out DP_1, XmdsSkillData.XmdsSkillDataKey.DmgRate);
  32. InitData(data, out Buff_Value, XmdsSkillData.XmdsSkillDataKey.ValueSet);
  33. }
  34. protected override void OnSkillLogicEvent(BattleParams param)
  35. {
  36. BuffTemplate bt = param.Attacker.GetRegistBuff(Buff_ID);
  37. param.Hitter.mUnit.AddBuff(Buff_ID, param.Attacker.mUnit);
  38. }
  39. protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template)
  40. {
  41. XmdsBuffPack pack = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(Buff_ID);
  42. var buff = pack.GetXmdsBuff(XmdsBuffProperties.XmdsBuffAbility.PropChange) as XmdsBuff_PropChange;
  43. buff.CurentChangeType = XmdsVirtual.UnitAttributeType.Defence;
  44. buff.CurrentValue = -this.GetTargetFormulaValue(info.SkillLevel, Buff_Value);
  45. buff.IsPercent = true;
  46. BuffTemplate bt = pack.mBuffTemplate;
  47. bt.IsHarmful = false;
  48. bt.LifeTimeMS = 5000;
  49. pack.BindTemplateAndDispose();
  50. unit.RegistSendBuff(bt);
  51. }
  52. }
  53. }