protected override void RunAI() { if (state != prevState) { doOnce = false; prevState = state; waitTime = Random.Range(0, 2); anim.SetInteger("state", state); } if (animDone) { if (moveToHold) { transform.position = holdPos; moveToHold = false; } if (state == (int)TenguBossStateMachine.State.Move) { doOnce = false; } } if (moveFailed) { if ((moveFailedWait -= Time.deltaTime) < 0) { moveFailedWait = 1f; moveFailed = false; } } state = machine.Run(animDone, waitTime < 0, moveFailed); switch (state) { case (int)TenguBossStateMachine.State.Intro: Intro(); break; case (int)TenguBossStateMachine.State.Wait: Wait(); break; case (int)TenguBossStateMachine.State.Move: Move(); break; case (int)TenguBossStateMachine.State.TeleportPrep: TeleportPrep(); break; case (int)TenguBossStateMachine.State.WaitToAppear: WaitToAppear(); break; case (int)TenguBossStateMachine.State.Attack: Attack(); break; case (int)TenguBossStateMachine.State.Return: Return(); break; case (int)TenguBossStateMachine.State.Tornado: Tornado(); break; } }