S20001.cs 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
  2. using Excel2Json;
  3. using GameLogic.Combat.CombatTool;
  4. using GameLogic.Combat.Hero;
  5. using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
  6. namespace GameLogic.Combat.Skill
  7. {
  8. /// <summary>
  9. /// 牧师加血
  10. /// </summary>
  11. public class S20001 : SkillBasic
  12. {
  13. protected float recoverValue;
  14. private int _count;
  15. private SkillConfig _skillBasic2004;
  16. private SkillConfig _skillBasic2005;
  17. protected override void ProInitSkillConfig()
  18. {
  19. recoverValue = SelfSkillConfig.effectValue[0];
  20. _count = 1;
  21. }
  22. protected override void ProInitSkill()
  23. {
  24. _skillBasic2004 = CombatHeroEntity.CurrCombatHeroInfo.GetGroupSkillConfig(20004);
  25. _skillBasic2005 = CombatHeroEntity.CurrCombatHeroInfo.GetGroupSkillConfig(20005);
  26. if (_skillBasic2005.ID>0)
  27. {
  28. _count += (int)_skillBasic2005.effectValue[0];
  29. }
  30. }
  31. protected override void ProUseSkill()
  32. {
  33. ActivationTimeLineData("sk1");
  34. }
  35. protected override ILifetCycleHitPoint[] ProGetTineLineTargetEntity(
  36. TimeLineEventLogicBasic timeLineEventLogicBasic)
  37. {
  38. ILifetCycleHitPoint[] allLifetCycleHitPoints =
  39. CombatController.currActiveCombat.CombatHeroController.GetHeroHitPoint(CombatHeroEntity.IsEnemy);
  40. return CombatCalculateTool.Instance.GetMinHpHero(allLifetCycleHitPoints, _count);
  41. }
  42. protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
  43. ITimelineFxLogic timelineFxLogic,
  44. TriggerData triggerData)
  45. {
  46. float currRecoverValue = recoverValue;
  47. if (_skillBasic2004.ID>0)
  48. {
  49. float hpBl = _skillBasic2004.effectValue[0];
  50. float currBl = (float)(targetEntity.combatHeroEntity.CurrCombatHeroInfo.hp.Value * 100f /
  51. targetEntity.combatHeroEntity.MaxCombatHeroInfo.hp.Value);
  52. if (currBl <= hpBl)
  53. {
  54. currRecoverValue += _skillBasic2004.effectValue[1];
  55. }
  56. }
  57. long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
  58. currRecoverValue);
  59. HarmReturnInfo harmReturnInfo = Recover(CombatHeroEntity, targetEntity,
  60. v, AttType.Normal, HarmType.Default);
  61. }
  62. }
  63. }