CombatHeroIdleState.cs 1.4 KB

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