S9061.cs 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
  2. using Common.Utility.CombatEvent;
  3. using Fort23.Core;
  4. using GameLogic.Combat.Buff;
  5. using GameLogic.Combat.CombatTool;
  6. using GameLogic.Combat.Hero;
  7. using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
  8. namespace GameLogic.Combat.Skill
  9. {
  10. /// <summary>
  11. /// 幻花迷雾(当场上有木灵分身时触发)
  12. /// 身体摇动,天空散发出小小的花朵。木灵隐藏其中防御+{0}%,期间不在攻击,直到木灵之子全部死亡后的{1}秒消失
  13. /// </summary>
  14. public class S9061 : SkillBasic
  15. {
  16. protected float _currTime;
  17. private bool _isUpdate;
  18. protected override void ProInitSkill()
  19. {
  20. CombatEventManager.Instance.AddEventListener(CombatEventType.HeroDie, HeroDie);
  21. }
  22. private void HeroDie(IEventData iEventData)
  23. {
  24. if (_isUpdate)
  25. {
  26. return;
  27. }
  28. HeroDieEventData heroHpUpdateEventData = iEventData as HeroDieEventData;
  29. SummonCombatHeroEntity summonCombatHeroEntity =
  30. heroHpUpdateEventData.combatHeroEntity as SummonCombatHeroEntity;
  31. if (summonCombatHeroEntity != null && summonCombatHeroEntity.ownerEntity == CombatHeroEntity)
  32. {
  33. CombatHeroEntity[] combatHeroEntities =
  34. CombatController.currActiveCombat.CombatHeroController.GetHero(CombatHeroEntity.IsEnemy);
  35. bool isOk = false;
  36. for (int i = 0; i < combatHeroEntities.Length; i++)
  37. {
  38. SummonCombatHeroEntity t = combatHeroEntities[i] as SummonCombatHeroEntity;
  39. if (t != null)
  40. {
  41. isOk = true;
  42. break;
  43. }
  44. }
  45. if (isOk)
  46. {
  47. return;
  48. }
  49. _isUpdate = true;
  50. _currTime = 0;
  51. }
  52. }
  53. protected override void ProDispose()
  54. {
  55. CombatEventManager.Instance.RemoveEventListener(CombatEventType.HeroDie, HeroDie);
  56. }
  57. protected override void ProUseSkill()
  58. {
  59. ActivationTimeLineData("9061");
  60. CombatHeroEntity.CombatHeroSkillControl.This<CombatHeroSkillControl>().SkillTurntable.isStop = true;
  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. protected override void ProCombatUpdate(float time)
  82. {
  83. if (!_isUpdate)
  84. {
  85. return;
  86. }
  87. _currTime += time;
  88. if (_currTime >= effectValue[1])
  89. {
  90. _isUpdate = false;
  91. CombatHeroEntity.CombatHeroSkillControl.This<CombatHeroSkillControl>().SkillTurntable.isStop = false;
  92. }
  93. }
  94. }
  95. }