Boss_90103.cs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. using CommonAI.Zone.Helper;
  2. using CommonAI.Zone.Instance;
  3. using XmdsCommonServer.Plugin;
  4. using XmdsCommonServer.XLS.Data;
  5. using XmdsCommonSkill.Plugin.Buffs;
  6. using System;
  7. using static CommonAI.Zone.Instance.InstanceUnit;
  8. using XmdsCommon.Plugin;
  9. using CommonAI.Zone;
  10. using XmdsCommonServer.Plugin.Units;
  11. using CommonAI.Zone.Formula;
  12. using XmdsCommonSkill.Plugin.Skills;
  13. using XmdsCommonServer.Plugin.XmdsSkillTemplate.DamageCalculator;
  14. using CommonLang;
  15. namespace XmdsCommonSkill.Plugin.PassiveSkills.Remedy
  16. {
  17. /// <summary>
  18. /// boss通用被动 - 回春(boss每5秒会恢复一定血量)
  19. /// </summary>
  20. class Boss_90103 : XmdsPassiveSkillBase
  21. {
  22. public static int ID = 90103;
  23. private static XmdsSkillValue HPValue; // 回血比例
  24. private static XmdsSkillValue valueSet; // 持续时间
  25. //XmdsSkillValue -> 数值转换
  26. private static int mTimeInterval = 0;
  27. private static float mAddHPPer = 0f;
  28. private XmdsVirtual mOwner = null;
  29. private int timePass = 0;
  30. public override int SkillID {get{return ID;}}
  31. protected override void OnInit(GameSkill skillInfo, XmdsVirtual owner)
  32. {
  33. this.mOwner = owner;
  34. }
  35. protected override void OnUpdate(int intervalMS, bool slowRefresh)
  36. {
  37. if(this.mOwner != null)
  38. {
  39. this.timePass += intervalMS;
  40. if (this.timePass >= mTimeInterval)
  41. {
  42. //回血
  43. int addHP = Math.Max(1, CUtils.CastInt(this.mOwner.mUnit.MaxHP * mAddHPPer));
  44. this.mOwner.mUnit.AddHP(addHP, null);
  45. this.timePass -= mTimeInterval;
  46. }
  47. }
  48. base.OnUpdate(intervalMS, slowRefresh);
  49. }
  50. protected override void OnInitSkillParam()
  51. {
  52. XmdsSkillData data = XmdsDataMgr.GetInstance().GetXmdsSkillData(ID);
  53. InitData(data, out HPValue, XmdsSkillData.XmdsSkillDataKey.DmgRate);
  54. InitData(data, out valueSet, XmdsSkillData.XmdsSkillDataKey.ValueSet);
  55. mTimeInterval = Math.Max(5000, valueSet.GetValue());
  56. mAddHPPer = HPValue.GetValue() * XmdsUnitProp.PER;
  57. }
  58. protected override void OnDispose(XmdsVirtual owner)
  59. {
  60. }
  61. }
  62. }