Hunter_402020.cs 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. 
  2. using CommonAI.Zone;
  3. using CommonAI.Zone.Formula;
  4. using XmdsCommon.Plugin;
  5. using XmdsCommonServer.Plugin;
  6. using XmdsCommonSkill.Plugin.Buffs;
  7. using XmdsCommonServer.XLS.Data;
  8. using XmdsCommonSkill.Plugin.Skills.Hunter;
  9. using XmdsCommonSkill.Plugin.Skills;
  10. using CommonAI.Zone.Instance;
  11. namespace XmdsCommonSkill.Plugin.PassiveSkills
  12. {
  13. /// <summary>
  14. /// 强化分裂箭:使分裂箭附带减速效果,使被命中的敌人移动速度降低x%,持续x秒.
  15. /// 但分裂箭的冷却时间延长为x秒.
  16. /// </summary>
  17. public class Hunter_402020 : Hunter_400020
  18. {
  19. public static new int ID = 402020;
  20. public static int Buff_ID = (int)XmdsBuffBase.XmdsBuffList.JIAN_SU;
  21. /// BUFF伤害.
  22. public static XmdsSkillValue Buff_Value;
  23. /// CD时间.
  24. public static XmdsSkillValue CD_TimeAdd;
  25. public override int SkillID
  26. {
  27. get { return ID; }
  28. }
  29. protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template)
  30. {
  31. base.OnInit(info, unit, ref template);
  32. XmdsBuffPack pack = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(Buff_ID);
  33. BuffTemplate bt = pack.mBuffTemplate;
  34. bt.IsHarmful = true;
  35. pack.BindTemplateAndDispose();
  36. unit.RegistSendBuff(bt);
  37. unit.RegistTryLaunchSkillEvent(OnTryLaunchSkillEventHandle, info);
  38. }
  39. private bool OnTryLaunchSkillEventHandle(GameSkill skillInfo, ref InstanceUnit.SkillState skill, XmdsVirtual launcher, ref InstanceUnit.LaunchSkillParam param)
  40. {
  41. if (skill.ID == this.SkillID)
  42. {
  43. //修改这个技能的CD时间.
  44. int t = this.GetTargetFormulaValue(launcher.SkillHelper.GetGameSkill(SkillID).SkillLevel, CD_TimeAdd);
  45. skill.SetDecreaseTotalTimeMS(-t);
  46. }
  47. return true;
  48. }
  49. protected override void OnSkillLogicEvent(BattleParams param)
  50. {
  51. XmdsBuff_MoveSpeedDown buff = (XmdsBuff_MoveSpeedDown)param.Attacker.GetRegisBuffVirtual(Buff_ID);
  52. buff.ChangePercent = -this.GetTargetFormulaValue(param.GameSkill.TalentSkillLevel1, Buff_Value);
  53. BuffTemplate bt = param.Attacker.GetRegistBuff(Buff_ID);
  54. bt.LifeTimeMS = 5000;
  55. param.Hitter.mUnit.AddBuff(Buff_ID, param.Attacker.mUnit);
  56. base.OnSkillLogicEvent(param);
  57. }
  58. protected override void OnInitSkillParam()
  59. {
  60. base.OnInitSkillParam();
  61. XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID);
  62. InitData(data, out Buff_Value, XmdsSkillData.XmdsSkillDataKey.ValueSet);
  63. InitData(data, out CD_TimeAdd, XmdsSkillData.XmdsSkillDataKey.ValueSet2);
  64. }
  65. }
  66. }