| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 | using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;using Common.Utility.CombatEvent;using Fort23.Core;using GameLogic.Combat.CombatTool;namespace GameLogic.Combat.Hero.State{    /// <summary>    /// 英雄的休眠状态    /// </summary>    public class CombatHeroXiuMianState : CombatHeroStateBasic    {        private TimerEntity _timerEntity;        public CombatHeroXiuMianState(CombatHeroEntity combatHeroEntity) : base(combatHeroEntity)        {        }        protected override void ProEnter()        {            // if (!combatHeroEntity.IsEnemy)            // {                combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.idle);                                        return;            // }                   }        protected void FinishTimeLine()        {            if (CombatController.currActiveCombat.CombatTypeBasic.isActiveCombat)            {                ActiveHero();            }        }        protected void ActiveHero()        {            _timerEntity = TimerComponent.Instance.AddTimer(CombatCalculateTool.Instance.GetOdd(0, 300),                delegate                {                    _timerEntity = null;                    combatHeroEntity.GameObject.SetActive(true);                    combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.Active);                });        }        private void ActiveCombat(IEventData eventData)        {            CombatEventManager.Instance.RemoveEventListener(CombatEventType.ActiveCombat, ActiveCombat);            ActiveHero();        }        protected override void ProExit()        {            CombatEventManager.Instance.RemoveEventListener(CombatEventType.ActiveCombat, ActiveCombat);        }        public override bool IsUpdateLockTarget()        {            return false;        }        protected override void ProDispose()        {            TimerComponent.Instance.Remove(_timerEntity);            CombatEventManager.Instance.RemoveEventListener(CombatEventType.ActiveCombat, ActiveCombat);        }    }}
 |