CombatResurrectionState.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
  2. using GameLogic.Combat.CombatTool;
  3. using GameLogic.Combat.CombatType;
  4. using UnityEngine;
  5. namespace GameLogic.Combat.Hero.State
  6. {
  7. /// <summary>
  8. /// 英雄复活状态
  9. /// </summary>
  10. public class CombatResurrectionState : CombatHeroStateBasic
  11. {
  12. public CombatResurrectionState(CombatHeroEntity combatHeroEntity) : base(combatHeroEntity)
  13. {
  14. }
  15. protected override void ProEnter()
  16. {
  17. TimeLineEventLogicGroupBasic timeLineEventLogicGroupBasic =
  18. combatHeroEntity.combatHeroTimeLineControl.AddEventLogicGroup("die_up");
  19. if (timeLineEventLogicGroupBasic != null)
  20. {
  21. timeLineEventLogicGroupBasic.TimeLineUpdateEnd = delegate
  22. {
  23. combatHeroEntity.CombatAIBasic.NavMeshAgent.enabled = true;
  24. if (combatHeroEntity.heroDieNodeId !=
  25. CombatController.currActiveCombat.CombatTypeBasic.allWinNodeCount)
  26. {
  27. Vector3 pos = CombatController.currActiveCombat.CombatTypeBasic.currBannerHero.dotPos;
  28. if (CombatController.currActiveCombat.CombatHeroController.followTarget != null)
  29. {
  30. pos = CombatController.currActiveCombat.CombatHeroController.followTarget.dotPos +
  31. new Vector3(1, 0, 0);
  32. }
  33. combatHeroEntity.combatHeroGameObject.SetPosition(pos);
  34. combatHeroEntity.CombatAIBasic.NavMeshAgent.Warp(pos);
  35. }
  36. CombatController.currActiveCombat.CombatHeroController.ResurrectionDieHero(combatHeroEntity);
  37. combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.idle);
  38. };
  39. }
  40. else
  41. {
  42. combatHeroEntity.CombatAIBasic.NavMeshAgent.enabled = true;
  43. if (combatHeroEntity.heroDieNodeId !=
  44. CombatController.currActiveCombat.CombatTypeBasic.allWinNodeCount)
  45. {
  46. Vector3 pos = CombatController.currActiveCombat.CombatTypeBasic.currBannerHero.dotPos;
  47. if (CombatController.currActiveCombat.CombatHeroController.followTarget != null)
  48. {
  49. pos = CombatController.currActiveCombat.CombatHeroController.followTarget.dotPos +
  50. new Vector3(1, 0, 0);
  51. }
  52. combatHeroEntity.combatHeroGameObject.SetPosition(pos);
  53. combatHeroEntity.CombatAIBasic.NavMeshAgent.Warp(pos);
  54. }
  55. CombatController.currActiveCombat.CombatHeroController.ResurrectionDieHero(combatHeroEntity);
  56. combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.idle);
  57. }
  58. }
  59. protected override void ProUpdate(float t)
  60. {
  61. }
  62. }
  63. }