using GameLogic.Combat.CombatTool; using GameLogic.Combat.Hero.SubStatus; using UnityEngine; using UnityEngine.AI; namespace GameLogic.Combat.Hero.State { public class CombatHeroIdleState : CombatHeroStateBasic { public CombatHeroIdleState(CombatHeroEntity combatHeroEntity) : base(combatHeroEntity) { } protected override void ProEnter() { combatHeroEntity.combatHeroAnimtion.Play("idle"); } protected override void ProUpdate(float t) { if (combatHeroEntity.CombatAIBasic.currFocusTarget == null) { if (!CombatController.currActiveCombat.IsFightState) { combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.Flight); } return; } FightIdleSubState FightIdleSubState = combatHeroEntity.CombatAIBasic.GetSubStatus(); if (FightIdleSubState == null) { FightIdleSubState = new FightIdleSubState(); combatHeroEntity.CombatAIBasic.AddSubStatus(FightIdleSubState); } if (combatHeroEntity.CombatHeroSkillControl.This().CanReleaseSkill() != null) { combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.att); } } } }