CombatHeroIdleState.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using GameLogic.Combat.Hero.SubStatus;
  2. using UnityEngine;
  3. using UnityEngine.AI;
  4. namespace GameLogic.Combat.Hero.State
  5. {
  6. public class CombatHeroIdleState : CombatHeroStateBasic
  7. {
  8. public CombatHeroIdleState(CombatHeroEntity combatHeroEntity) : base(combatHeroEntity)
  9. {
  10. }
  11. protected override void ProEnter()
  12. {
  13. combatHeroEntity.combatHeroAnimtion.Play("idle");
  14. }
  15. protected override void ProUpdate(float t)
  16. {
  17. if (combatHeroEntity.CombatAIBasic.currFocusTarget == null)
  18. {
  19. combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.move);
  20. return;
  21. }
  22. FightIdleSubState FightIdleSubState = combatHeroEntity.CombatAIBasic.GetSubStatus<FightIdleSubState>();
  23. if (FightIdleSubState == null)
  24. {
  25. FightIdleSubState = new FightIdleSubState();
  26. combatHeroEntity.CombatAIBasic.AddSubStatus(FightIdleSubState);
  27. }
  28. if (combatHeroEntity.CombatHeroSkillControl.This<CombatHeroSkillControl>().CanReleaseSkill() != null)
  29. {
  30. combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.att);
  31. }
  32. }
  33. }
  34. }