Warrior_110350.cs 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. using CommonAI.Zone;
  2. using CommonAI.Zone.Helper;
  3. using CommonAI.Zone.Instance;
  4. using CommonLang;
  5. using XmdsCommon.Plugin;
  6. using XmdsCommonServer.Plugin;
  7. using XmdsCommonServer.Plugin.XmdsSkillTemplate.DamageCalculator;
  8. using XmdsCommonServer.XLS.Data;
  9. using XmdsCommonSkill.Plugin.Buffs;
  10. namespace XmdsCommonSkill.Plugin.Skills.Warrior
  11. {
  12. /// 三技能:3-5(产生一条火焰路径(同样会随着蓄力状态增长),存在T秒,在路径上敌人移动速度降低更多并受到持续伤害(防御力系数),离开路径立刻消失(9.5*3.5) 额外:自己在此路径上移速提升n%)
  13. public class Warrior_110350 : Warrior_110340
  14. {
  15. private static readonly int ID = 110350;
  16. public override int SkillID { get { return ID; } }
  17. private static readonly int Buff_SpeedUp = (int)XmdsBuffBase.XmdsBuffList.ZS_SPEEDUP_3_5;
  18. //伤害-防御系数, 自己加速时间,自己加速效果,替换基础的减速比例,替换基础的减速时间
  19. protected XmdsSkillValue mValueSet3;
  20. protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template)
  21. {
  22. base.OnInit(info, unit, ref template);
  23. //自己额外意思提升
  24. XmdsBuffPack pack = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(Buff_SpeedUp);
  25. var buff = pack.GetXmdsBuff(XmdsBuffProperties.XmdsBuffAbility.PropChange) as XmdsBuff_PropChange;
  26. buff.CurentChangeType = XmdsVirtual.UnitAttributeType.MoveSpeed;
  27. buff.IsPercent = true;
  28. buff.CurrentValue = mValueSet3.GetValue(info.TalentSkillLevel2, 2);
  29. BuffTemplate bt = pack.mBuffTemplate;
  30. bt.IsHarmful = false;
  31. bt.LifeTimeMS = mValueSet3.GetValue(info.TalentSkillLevel2, 3);
  32. pack.BindTemplateAndDispose();
  33. unit.RegistSendBuff(bt);
  34. }
  35. //获取基础减速效果-减速值
  36. public override int GetBaseSpeedDownValue(GameSkill info)
  37. {
  38. return mValueSet3.GetValue(info.TalentSkillLevel2, 4);
  39. }
  40. //获取基础减速效果-减速时间
  41. public override int GetBaseSpeedDownTime(GameSkill info)
  42. {
  43. return mValueSet3.GetValue(info.TalentSkillLevel2, 5);
  44. }
  45. protected override void OnSkillDataChange(GameSkill gs, XmdsVirtual unit)
  46. {
  47. base.OnSkillDataChange(gs, unit);
  48. var bt = unit.GetRegistBuff(Buff_SpeedUp);
  49. bt.LifeTimeMS = mValueSet3.GetValue(gs.TalentSkillLevel2, 3);
  50. var buff = unit.GetRegisBuffVirtual(Buff_SpeedUp) as XmdsBuff_PropChange;
  51. buff.CurrentValue = mValueSet3.GetValue(gs.TalentSkillLevel2, 2);
  52. }
  53. protected override bool OnSkillFinalDamageModifyEvent(BattleParams param)
  54. {
  55. if (param.Attacker == param.Hitter)
  56. {
  57. if (param.AtkProp.DamagePerID == 2)
  58. {
  59. //给自己加个加速buff
  60. param.Attacker.mUnit.AddBuff(Buff_SpeedUp);
  61. }
  62. return true;
  63. }
  64. // 花式玩法,特殊的法术,又是根据防御来算伤害的
  65. if (param.AtkProp.DamagePerID == 2)
  66. {
  67. int hpValue = CUtils.CastInt(param.Attacker.MirrorProp.Defence * XmdsUnitProp.PER * mValueSet3.GetValue(param.GameSkill.TalentSkillLevel2, 1));
  68. param.HitDamge = XmdsDamageCalculator.GetDamage(hpValue, param.Attacker, param.Hitter, param.Source);
  69. return true;
  70. }
  71. return false;
  72. }
  73. protected override void OnInitConfig()
  74. {
  75. XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID);
  76. InitData(data, out mValueSet1, XmdsSkillData.XmdsSkillDataKey.ValueSet);
  77. InitData(data, out mValueSet2, XmdsSkillData.XmdsSkillDataKey.ValueSet2);
  78. InitData(data, out mValueSet3, XmdsSkillData.XmdsSkillDataKey.ValueSet3);
  79. // 基础-减速数值
  80. InitData(data, out mValueSet5, XmdsSkillData.XmdsSkillDataKey.ValueSet5);
  81. //蓄力技能规则
  82. InitData(data, out mValueSet8, XmdsSkillData.XmdsSkillDataKey.ValueSet8);
  83. }
  84. }
  85. }