Magic_310540.cs 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. using CommonAI.Data;
  2. using CommonAI.Zone;
  3. using CommonAI.Zone.Helper;
  4. using CommonAI.Zone.Instance;
  5. using System;
  6. using XmdsCommon.Plugin;
  7. using XmdsCommonServer.Plugin;
  8. using XmdsCommonServer.XLS.Data;
  9. using XmdsCommonSkill.Plugin.Buffs;
  10. namespace XmdsCommonSkill.Plugin.Skills.Magic
  11. {
  12. /// <summary>
  13. /// 五技能 5-4(持续时间提高1秒)
  14. /// </summary>
  15. public class Magic_310540 : Magic_310500
  16. {
  17. private static readonly int ID = 310540;
  18. public override int SkillID { get { return ID; } }
  19. private static readonly int BUFF_SPEED_DOWN = (int)XmdsBuffBase.XmdsBuffList.FS_SPEEDDOWN_5_3;
  20. //5-4剑雨伤害间隔, 范围减速值,范围减速时间
  21. public XmdsSkillValue mValueSet2;
  22. //伤害多久触发一次
  23. protected int mHitInterval = 500;
  24. protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template)
  25. {
  26. base.OnInit(info, unit, ref template);
  27. unit.RegistTrySendSpellEvent(OnTrySendSpell, info);
  28. this.mHitInterval = Math.Max(200, mValueSet2.GetValue(info.TalentSkillLevel1));
  29. //Buff2修改
  30. var pack2 = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(BUFF_SPEED_DOWN);
  31. var buff2 = pack2.GetXmdsBuff(XmdsBuffProperties.XmdsBuffAbility.MoveSpeedDown) as XmdsBuff_MoveSpeedDown;
  32. buff2.ChangePercent = -mValueSet2.GetValue(info.TalentSkillLevel1, 2);
  33. var bt2 = pack2.mBuffTemplate;
  34. bt2.LifeTimeMS = mValueSet2.GetValue(info.TalentSkillLevel1, 3);
  35. bt2.IsHarmful = true;
  36. pack2.BindTemplateAndDispose();
  37. unit.RegistSendBuff(bt2);
  38. }
  39. protected override void OnSkillLogicEvent(BattleParams param)
  40. {
  41. base.OnSkillLogicEvent(param);
  42. //增加减速buff
  43. param.Hitter.mUnit.AddBuff(BUFF_SPEED_DOWN, param.Attacker.mUnit);
  44. }
  45. protected override void OnSkillDataChange(GameSkill gs, XmdsVirtual unit)
  46. {
  47. base.OnSkillDataChange(gs, unit);
  48. this.mHitInterval = Math.Max(200, mValueSet2.GetValue(gs.TalentSkillLevel1));
  49. var buff = unit.GetRegisBuffVirtual(BUFF_SPEED_DOWN) as XmdsBuff_MoveSpeedDown;
  50. buff.ChangePercent = -mValueSet2.GetValue(gs.TalentSkillLevel1, 2);
  51. var bt = unit.GetRegistBuff(BUFF_SPEED_DOWN);
  52. bt.LifeTimeMS = mValueSet2.GetValue(gs.TalentSkillLevel1, 3);
  53. }
  54. private void OnTrySendSpell(GameSkill skill, XmdsVirtual launcher, LaunchSpell launch, ref SpellTemplate spell, ref JSGCreateSpellData createData, ref float startX, ref float startY)
  55. {
  56. spell.HitIntervalMS = this.mHitInterval;
  57. }
  58. protected override void OnInitConfig()
  59. {
  60. XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID);
  61. InitData(data, out mValueSet1, XmdsSkillData.XmdsSkillDataKey.ValueSet);
  62. InitData(data, out mValueSet2, XmdsSkillData.XmdsSkillDataKey.ValueSet2);
  63. InitData(data, out mValueSet8, XmdsSkillData.XmdsSkillDataKey.ValueSet8);
  64. }
  65. }
  66. }