public void NextDecision() { if (state == BallBotState.End) { return; } switch (state) { case BallBotState.Start: DoIdle(2.0f); break; case BallBotState.Idle: if (Random.Range(0, 2) == 0) { state = BallBotState.Shooting; ShootRandom(); } else { state = BallBotState.Volley; volleyCount = volleyTotal - 1; ShootRandom(); } break; case BallBotState.Shooting: DoIdle(idleLength); break; case BallBotState.Volley: if (volleyCount == 0) { shotSpeed = 1.0f; DoIdle(idleLength); } else { shotSpeed = 3.0f; ShootRandom(); } volleyCount--; break; } }
void DoIdle(float idle) { state = BallBotState.Idle; motor.DoIdle(idle); }