Remedy_510560.cs 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  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.XLS.Data;
  8. using XmdsCommonSkill.Plugin.Buffs;
  9. namespace XmdsCommonSkill.Plugin.Skills.Remedy
  10. {
  11. /// <summary>
  12. /// 治疗, 五技能 5-5(聚气期间受到伤害会累积血怒,在火焰风暴时根据血怒提高每次造成的伤害(巨剑风暴提高的伤害是随时间递进的,递进的量与血怒值挂钩))
  13. /// </summary>
  14. public class Remedy_510560 : Remedy_510550
  15. {
  16. public static readonly new int ID = 510560;
  17. private static readonly int BuffID_5_6 = (int)XmdsBuffBase.XmdsBuffList.REMEDY_5_6_TAG;
  18. private static readonly int BuffID_5_6_Allies = (int)XmdsBuffBase.XmdsBuffList.REMEDY_5_6_ALLIESTAG;
  19. //提升数值
  20. public XmdsSkillValue valueSet4; //自身强化光环
  21. // 扩展配置
  22. public XmdsSkillValue valueSet6; //队友强化光环
  23. public override int SkillID { get { return ID; } }
  24. protected override void OnInit(GameSkill info, XmdsVirtual unit, ref SkillTemplate template)
  25. {
  26. base.OnInit(info, unit, ref template);
  27. //初始化光环buff
  28. BuffInit(info, unit, valueSet4, BuffID_5_6);
  29. //初始化队友光环buff
  30. BuffInit(info, unit, valueSet6, BuffID_5_6_Allies);
  31. }
  32. protected override void OnInitOver(XmdsVirtual unit, GameSkill info)
  33. {
  34. base.OnInitOver(unit, info);
  35. }
  36. private void BuffInit(GameSkill info, XmdsVirtual unit, XmdsSkillValue config, int BuffID)
  37. {
  38. var pack = XmdsBuffFactory.GetInstance().GetXmdsBuffPack(BuffID);
  39. var buff1 = pack.GetXmdsBuff(0) as XmdsBuff_PropChange;
  40. buff1.CurentChangeType = XmdsVirtual.UnitAttributeType.Attack;
  41. buff1.IsPercent = true;
  42. buff1.CurrentValue = config.GetValue(info.TalentSkillLevel3, 1);
  43. var buff2 = pack.GetXmdsBuff(1) as XmdsBuff_PropChange;
  44. buff2.CurentChangeType = XmdsVirtual.UnitAttributeType.SkillDamage;
  45. buff2.IsPercent = true;
  46. buff2.CurrentValue = config.GetValue(info.TalentSkillLevel3, 2);
  47. var buff3 = pack.GetXmdsBuff(2) as XmdsBuff_PropChange;
  48. buff3.CurentChangeType = XmdsVirtual.UnitAttributeType.CritRate;
  49. buff3.IsPercent = true;
  50. buff3.CurrentValue = config.GetValue(info.TalentSkillLevel3, 3);
  51. var bt = pack.mBuffTemplate;
  52. bt.IsHarmful = false;
  53. if (BuffID == BuffID_5_6)
  54. {
  55. var buff4 = pack.GetXmdsBuff(3) as XmdsBuff_AddBuff;
  56. buff4.addBuffId = BuffID_5_6_Allies;
  57. bt.LifeTimeMS = valueSet5.GetValue(info.SkillLevel, 4); ;
  58. }
  59. else
  60. {
  61. //写死,在增益圈中每隔一段时间会再续上
  62. bt.LifeTimeMS = 1000;
  63. }
  64. pack.BindTemplateAndDispose();
  65. unit.RegistSendBuff(bt);
  66. }
  67. protected override void OnSkillDataChange(GameSkill gs, XmdsVirtual unit)
  68. {
  69. base.OnSkillDataChange(gs, unit);
  70. ReloadBuffData(gs, unit, BuffID_5_6, valueSet4);
  71. ReloadBuffData(gs, unit, BuffID_5_6_Allies, valueSet6);
  72. }
  73. private void ReloadBuffData(GameSkill gs, XmdsVirtual unit, int BuffID, XmdsSkillValue config)
  74. {
  75. var buff1 = unit.GetRegisBuffVirtual(BuffID, 0) as XmdsBuff_PropChange;
  76. buff1.CurrentValue = config.GetValue(gs.TalentSkillLevel3, 1);
  77. var buff2 = unit.GetRegisBuffVirtual(BuffID, 1) as XmdsBuff_PropChange;
  78. buff2.CurrentValue = config.GetValue(gs.TalentSkillLevel3, 2);
  79. var buff3 = unit.GetRegisBuffVirtual(BuffID, 2) as XmdsBuff_PropChange;
  80. buff3.CurrentValue = config.GetValue(gs.TalentSkillLevel3, 3);
  81. if(BuffID == BuffID_5_6)
  82. {
  83. var bt = unit.GetRegistBuff(BuffID);
  84. bt.LifeTimeMS = valueSet5.GetValue(gs.SkillLevel, 4);
  85. }
  86. }
  87. protected override void OnInitConfig()
  88. {
  89. XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID);
  90. base.InitBaseConfig(data);
  91. InitData(data, out valueSet, XmdsSkillData.XmdsSkillDataKey.ValueSet);
  92. InitData(data, out valueSet2, XmdsSkillData.XmdsSkillDataKey.ValueSet2);
  93. InitData(data, out valueSet3, XmdsSkillData.XmdsSkillDataKey.ValueSet3);
  94. InitData(data, out valueSet4, XmdsSkillData.XmdsSkillDataKey.ValueSet4);
  95. // 扩展配置
  96. InitData(data, out valueSet5, XmdsSkillData.XmdsSkillDataKey.ValueSet5);
  97. InitData(data, out valueSet6, XmdsSkillData.XmdsSkillDataKey.ValueSet6);
  98. InitData(data, out valueSet7, XmdsSkillData.XmdsSkillDataKey.ValueSet7);
  99. }
  100. }
  101. }