using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic; using GameLogic.Combat.CombatTool; namespace GameLogic.Combat.Hero.State { public class CombatHeroDisappearState : CombatHeroStateBasic { protected bool isSwitch = false; private TimeLineEventLogicGroupBasic _timeLineEventLogicGroupBasic; public CombatHeroDisappearState(CombatHeroEntity combatHeroEntity) : base(combatHeroEntity) { } public override bool IsSwitch(IState nextState) { return isSwitch; } protected override void ProEnter() { isSwitch = false; HarmReturnInfo harmReturnInfo = new HarmReturnInfo(); harmReturnInfo.harmType = HarmType.SystemKo; combatHeroEntity.HeroDie(harmReturnInfo); TimeLineEventLogicGroupBasic timeLineEventLogicGroup = combatHeroEntity.combatHeroTimeLineControl.AddEventLogicGroup("xiaoshi"); if (timeLineEventLogicGroup != null) { timeLineEventLogicGroup.TimeLineUpdateEnd = delegate { CombatController.currActiveCombat.CombatHeroController.RemoveDieHero(combatHeroEntity); }; } else { CombatController.currActiveCombat.CombatHeroController.RemoveDieHero(combatHeroEntity); } // combatHeroEntity.Dispose(); } protected override void ProExit() { _timeLineEventLogicGroupBasic?.BreakTimeLine(combatHeroEntity); } } }