Esempio n. 1
0
    void FSMTurretBehaviour()
    {
        switch (state)
        {
        case TState.OFF:
            if (turretMovement.PlayerIsAudible(player))
            {
                state = TState.ROTATING;
                turretMovement.TurretRotate();
            }
            else
            {
                turretMovement.TurnOff();
            }
            break;

        case TState.ROTATING:
            if (turretMovement.FindVisiblePlayer(player))
            {
                state = TState.SHOOTING;
                turretMovement.ShootPlayer(player);
            }
            else if (!turretMovement.PlayerIsAudible(player))
            {
                state = TState.OFF;
                turretMovement.TurnOff();
            }
            else
            {
                turretMovement.TurretRotate();
            }
            break;

        case TState.SHOOTING:
            if (!turretMovement.FindVisiblePlayer(player))
            {
                state = TState.ROTATING;
                turretMovement.TurretRotate();
            }
            else
            {
                turretMovement.ShootPlayer(player);
            }
            break;

        default:
            break;
        }
    }