Remedy_510440.cs 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. using CommonAI.Zone;
  2. using CommonAI.Zone.Helper;
  3. using CommonAI.Zone.Instance;
  4. using XmdsCommon.Plugin;
  5. using XmdsCommonServer.Plugin;
  6. using XmdsCommonServer.Plugin.XmdsSkillTemplate.Skills;
  7. using XmdsCommonServer.XLS.Data;
  8. using XmdsCommonSkill.Plugin.Buffs;
  9. namespace XmdsCommonSkill.Plugin.Skills.Remedy
  10. {
  11. /// <summary>
  12. /// 治疗, 四技能4-4(禁锢时间提高X秒)
  13. /// </summary>
  14. public class Remedy_510440 : Remedy_510400
  15. {
  16. private static readonly int ID = 510440;
  17. public override int SkillID { get { return ID; } }
  18. protected static readonly int Buff_4_4 = (int)XmdsBuffBase.XmdsBuffList.REMEDY_4_4_SPEEDDOWN;
  19. //4-4毒爆增加层数,毒爆后减速时间,毒爆后每层提高减速,毒爆后减速最高计算层数
  20. public XmdsSkillValue valueSet2;
  21. private int mSkillLv;
  22. protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template)
  23. {
  24. base.OnInit(info, unit, ref template);
  25. //减速buff
  26. XmdsBuffPack pack = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(Buff_4_4);
  27. var buff = pack.GetXmdsBuff(XmdsBuffProperties.XmdsBuffAbility.MoveSpeedDown) as XmdsBuff_MoveSpeedDown;
  28. buff.ChangePercent = -valueSet2.GetValue(info.TalentSkillLevel1, 3);
  29. BuffTemplate bt = pack.mBuffTemplate;
  30. bt.LifeTimeMS = valueSet2.GetValue(info.TalentSkillLevel1, 2);
  31. bt.IsHarmful = true;
  32. pack.BindTemplateAndDispose();
  33. unit.RegistSendBuff(bt);
  34. this.mSkillLv = info.TalentSkillLevel1;
  35. }
  36. protected override void OnSkillDataChange(GameSkill gs, XmdsVirtual unit)
  37. {
  38. base.OnSkillDataChange(gs, unit);
  39. var bt = unit.GetRegistBuff(Buff_4_4);
  40. bt.LifeTimeMS = valueSet2.GetValue(gs.TalentSkillLevel1, 2);
  41. var buff = unit.GetRegisBuffVirtual(Buff_4_4) as XmdsBuff_MoveSpeedDown;
  42. buff.ChangePercent = -valueSet2.GetValue(gs.TalentSkillLevel1, 3);
  43. this.mSkillLv = gs.TalentSkillLevel1;
  44. }
  45. public override int GetSkillValue(AbstractSkillType type)
  46. {
  47. if (type == AbstractSkillType.Value1)
  48. {
  49. // 毒爆增加层数
  50. return valueSet2.GetValue(this.mSkillLv, 1);
  51. }
  52. else if (type == AbstractSkillType.Value2)
  53. {
  54. // 毒爆计算最高层数
  55. return valueSet2.GetValue(this.mSkillLv, 4);
  56. }
  57. else if (type == AbstractSkillType.Value3)
  58. {
  59. //附加buff
  60. return Buff_4_4;
  61. }
  62. return 0;
  63. }
  64. protected override void OnInitConfig()
  65. {
  66. XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID);
  67. base.InitBaseConfig(data);
  68. InitData(data, out valueSet, XmdsSkillData.XmdsSkillDataKey.ValueSet);
  69. InitData(data, out valueSet2, XmdsSkillData.XmdsSkillDataKey.ValueSet2);
  70. //扩展配置
  71. InitData(data, out valueSet5, XmdsSkillData.XmdsSkillDataKey.ValueSet5);
  72. InitData(data, out valueSet8, XmdsSkillData.XmdsSkillDataKey.ValueSet8);
  73. }
  74. }
  75. }