S20001.cs 2.6 KB

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