S9062.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
  2. using Common.Utility.CombatEvent;
  3. using Fort23.Core;
  4. using GameLogic.Combat.CombatTool;
  5. using GameLogic.Combat.Hero;
  6. using UnityEngine;
  7. using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
  8. namespace GameLogic.Combat.Skill
  9. {
  10. /// <summary>
  11. /// 木灵分身
  12. /// 生命低于{0}%时触发,木灵的根须快速在自身周围生出2个木灵之子,木灵之子之有普通攻击,木灵之子拥有boss的{1}最大生命值的生命
  13. ///(等级跟随boss的等级走)
  14. /// </summary>
  15. public class S9062 : SkillBasic
  16. {
  17. private bool _isTrigger;
  18. protected override void ProUseSkill()
  19. {
  20. }
  21. protected override void ProActiveSkill()
  22. {
  23. CombatEventManager.Instance.AddEventListener(CombatEventType.HeroInjured, HeroInjured);
  24. }
  25. protected override void ProDispose()
  26. {
  27. CombatEventManager.Instance.RemoveEventListener(CombatEventType.HeroInjured, HeroInjured);
  28. }
  29. private void HeroInjured(IEventData data)
  30. {
  31. if (_isTrigger)
  32. {
  33. return;
  34. }
  35. HeroInjuredEventData heroInjuredEventData = data as HeroInjuredEventData;
  36. if (heroInjuredEventData.HarmReturnInfo.target.combatHeroEntity == CombatHeroEntity)
  37. {
  38. if (CombatHeroEntity.HpBl < effectValue[0])
  39. {
  40. _isTrigger = true;
  41. ZhaoHuan();
  42. }
  43. }
  44. }
  45. private void ZhaoHuan()
  46. {
  47. for (int i = 0; i < 2; i++)
  48. {
  49. CombatHeroEntity heroEntity = new CombatHeroEntity();
  50. heroEntity.IsEnemy = true;
  51. CombatHeroInfo combatHeroInfo = new CombatHeroInfo();
  52. combatHeroInfo.InitMonster(1000, 1);
  53. // testHeroInfoConfig.CopyToCombatHeroInfo((combatHeroInfo));
  54. Vector3 pos = Vector3.forward;
  55. heroEntity.Init(new CombatHeroAi(), combatHeroInfo, pos,
  56. delegate(CombatHeroEntity entity)
  57. {
  58. CombatController.currActiveCombat.CombatHeroController.AddHero(entity);
  59. });
  60. }
  61. }
  62. protected override void ProDefaultTimeLineTrigger(string groupName, CombatHeroHitPoint targetEntity,
  63. ITimelineFxLogic timelineFxLogic,
  64. TriggerData triggerData, ISkillFeatures skillFeatures)
  65. {
  66. // float harmBl = 0;
  67. // b_1018 b1018 = targetEntity.combatHeroEntity.BuffControl.GetBuffBasicForType<b_1018>();
  68. // if (b1018 != null) //消耗一层感电,额外照成伤害
  69. // {
  70. // harmBl += b1018.buffCount * effectValue[1];
  71. // }
  72. //
  73. // long v = CombatCalculateTool.Instance.GetVlaueRatioForLong(CombatHeroEntity.CurrCombatHeroInfo.attack.Value,
  74. // harmBl);
  75. //
  76. // HarmReturnInfo harmReturnInfo = CombatCalculateTool.Instance.Harm(CombatHeroEntity, targetEntity, v,
  77. // AttType.Skill, triggerData,
  78. // wuXingType, skillFeatures,
  79. // HarmType.Default);
  80. }
  81. }
  82. }