using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic; using GameLogic.Combat.CombatTool; 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 { if (combatHeroEntity.heroDieNodeId != CombatController.currActiveCombat.CombatTypeBasic.allWinNodeCount&&CombatController.currActiveCombat.CombatHeroController.followTarget!=null) { combatHeroEntity.combatHeroGameObject.SetPosition(CombatController.currActiveCombat.CombatHeroController.followTarget.dotPos+new Vector3(1,0,0)); } CombatController.currActiveCombat.CombatHeroController.ResurrectionDieHero(combatHeroEntity); combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.idle); }; } else { if (combatHeroEntity.heroDieNodeId != CombatController.currActiveCombat.CombatTypeBasic.allWinNodeCount&&CombatController.currActiveCombat.CombatHeroController.followTarget!=null) { combatHeroEntity.combatHeroGameObject.SetPosition(CombatController.currActiveCombat.CombatHeroController.followTarget.dotPos+new Vector3(1,0,0)); } CombatController.currActiveCombat.CombatHeroController.ResurrectionDieHero(combatHeroEntity); combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.idle); } } protected override void ProUpdate(float t) { } } }