| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 | using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;using GameLogic.Combat.CombatTool;namespace GameLogic.Combat.Hero.State{    public class CombatHeroDieState : CombatHeroStateBasic    {        public float resurrectionTime;        protected bool isStartResurrection;        protected bool isSwitch = false;         public CombatHeroDieState(CombatHeroEntity combatHeroEntity) : base(combatHeroEntity)        {                    }        public override bool IsSwitch(IState nextState)        {            return isSwitch;        }                        protected override void ProEnter()        {                   isSwitch = false;            resurrectionTime = 0;            TimeLineEventLogicGroupBasic timeLineEventLogicGroup=combatHeroEntity.combatHeroTimeLineControl.AddEventLogicGroup("die");                      if (timeLineEventLogicGroup != null)            {                timeLineEventLogicGroup.TimeLineUpdateEnd = delegate                {                    if (combatHeroEntity.IsEnemy)                    {                        CombatController.currActiveCombat.CombatHeroController.RemoveDieHero(combatHeroEntity);                    }                    else                    {                        isStartResurrection = true;                        combatHeroEntity.combatHeroTimeLineControl.AddEventLogicGroup("die_idle");                    }                };                           }            else            {                if (combatHeroEntity.IsEnemy)                {                    CombatController.currActiveCombat.CombatHeroController.RemoveDieHero(combatHeroEntity);                }                else                {                    isStartResurrection = true;                    combatHeroEntity.combatHeroTimeLineControl.AddEventLogicGroup("die_idle");                }            }                       // combatHeroEntity.Dispose();        }        protected override void ProUpdate(float t)        {            if (isStartResurrection)            {                resurrectionTime += t;                if (resurrectionTime > 60)                {                    isSwitch = true;                    isStartResurrection = false;                    resurrectionTime = 0;                    combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.Resurrection);                }            }                  }    }}
 |