using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic; using GameLogic.Combat.CombatTool; using GameLogic.Combat.CombatType; using UnityEngine; namespace GameLogic.Combat.Hero.State { /// /// 英雄复活状态 /// public class CombatResurrectionState : CombatHeroStateBasic { public CombatResurrectionState(CombatHeroEntity combatHeroEntity) : base(combatHeroEntity) { } protected override void ProEnter() { TimeLineEventLogicGroupBasic timeLineEventLogicGroupBasic = combatHeroEntity.combatHeroTimeLineControl.AddEventLogicGroup("die_up"); if (timeLineEventLogicGroupBasic != null) { timeLineEventLogicGroupBasic.TimeLineUpdateEnd = delegate { combatHeroEntity.CombatAIBasic.NavMeshAgent.enabled = true; if (combatHeroEntity.heroDieNodeId != CombatController.currActiveCombat.CombatTypeBasic.allWinNodeCount) { Vector3 pos = CombatController.currActiveCombat.CombatTypeBasic.currBannerHero.dotPos; if (CombatController.currActiveCombat.CombatHeroController.followTarget != null) { pos = CombatController.currActiveCombat.CombatHeroController.followTarget.dotPos + new Vector3(1, 0, 0); } combatHeroEntity.combatHeroGameObject.SetPosition(pos); combatHeroEntity.CombatAIBasic.NavMeshAgent.Warp(pos); } CombatController.currActiveCombat.CombatHeroController.ResurrectionDieHero(combatHeroEntity); combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.idle); }; } else { combatHeroEntity.CombatAIBasic.NavMeshAgent.enabled = true; if (combatHeroEntity.heroDieNodeId != CombatController.currActiveCombat.CombatTypeBasic.allWinNodeCount) { Vector3 pos = CombatController.currActiveCombat.CombatTypeBasic.currBannerHero.dotPos; if (CombatController.currActiveCombat.CombatHeroController.followTarget != null) { pos = CombatController.currActiveCombat.CombatHeroController.followTarget.dotPos + new Vector3(1, 0, 0); } combatHeroEntity.combatHeroGameObject.SetPosition(pos); combatHeroEntity.CombatAIBasic.NavMeshAgent.Warp(pos); } CombatController.currActiveCombat.CombatHeroController.ResurrectionDieHero(combatHeroEntity); combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.idle); } } protected override void ProUpdate(float t) { } } }