S9092.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using System.Collections.Generic;
  2. using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
  3. using GameLogic.Combat.Buff;
  4. using GameLogic.Combat.CombatTool;
  5. using GameLogic.Combat.Hero;
  6. using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
  7. namespace GameLogic.Combat.Skill
  8. {
  9. /// <summary>
  10. /// 随机为一名队友恢复{0}%生命值
  11. /// </summary>
  12. public class S9092 : SkillBasic
  13. {
  14. protected override void ProUseSkill()
  15. {
  16. CombatHeroEntity[] allHero =
  17. CombatController.currActiveCombat.CombatHeroController.GetHero(CombatHeroEntity.IsEnemy,out int maxCount);
  18. CombatHeroEntity target = null;
  19. float minHp = 9999;
  20. for (int i = 0; i < maxCount; i++)
  21. {
  22. CombatHeroEntity t = allHero[i];
  23. if (t.HpBl < minHp)
  24. {
  25. minHp = t.HpBl;
  26. target = t;
  27. }
  28. }
  29. BetterList<ILifetCycleHitPoint> currTarget = new BetterList<ILifetCycleHitPoint>();
  30. if (target != null)
  31. {
  32. currTarget.Add(target.GetMainHotPoin<CombatHeroHitPoint>());
  33. }
  34. ActivationTimeLineData("9092", currTarget: currTarget);
  35. }
  36. protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
  37. ITimelineFxLogic timelineFxLogic,
  38. TriggerData triggerData, ISkillFeatures skillFeatures)
  39. {
  40. long att = CombatHeroEntity.CurrCombatHeroInfo.attack.Value;
  41. long v=CombatCalculateTool.Instance.GetVlaueRatioForLong(att,effectValue[0]);
  42. CombatCalculateTool.Instance.Recover(CombatHeroEntity, targetEntity, v, AttType.Skill, HarmType.Default,
  43. triggerData);
  44. // List<BuffBasic> allBuff = targetEntity.combatHeroEntity.BuffControl.GetBuffBasicForBuffType(2, 1);
  45. // if (allBuff.Count > 0)
  46. // {
  47. // int index = CombatCalculateTool.Instance.GetOdd(0, allBuff.Count);
  48. // targetEntity.combatHeroEntity.BuffControl.RemoveBuff(allBuff[index]);
  49. // }
  50. }
  51. }
  52. }