Example #1
0
    /*
     * Spawns a random enemy
     */
    void SpawnEnemy(float roadZ)
    {
        //TODO: Generate random enemy

        // generates random side position
        float enemyX = 0;
        float enemyZ = 0;


        // chooses what enemy to spawn
        int        enemyType = Random.Range(0, 3);
        GameObject vehicle   = pfVehicles[0];

        if (enemyType == 0)
        {
            vehicle = pfPoliceCar;
        }
        if (enemyType == 1)
        {
            vehicle = pfAmbulance;
        }
        if (enemyType == 2)
        {
            vehicle = pfVehicles[Random.Range(0, pfVehicles.Count)];
        }

        // defines a direction (left or right) and sets the lane position
        VehicleDirection direction = (VehicleDirection)Random.Range(0, 2);

        switch (direction)
        {
        case VehicleDirection.Left:
            enemyX = settings.GameRightBoundary;
            enemyZ = roadZ + (2 * Constants.PathSizeZ + 1) + Constants.PathSizeZ / 2;
            break;

        case VehicleDirection.Right:
            enemyX = settings.GameLeftBoundary;
            enemyZ = roadZ + Constants.PathSizeZ + Constants.PathSizeZ / 2;
            break;
        }
        Vector3 enemyPosition = new Vector3(enemyX, 2, enemyZ);

        // instantiates enemy at position
        GameObject enemy = InstantiateSceneObject(vehicle, enemyPosition);
        VehicleAI  model = enemy.GetComponent <VehicleAI>();

        model.SetDirection(direction);
        model.Go();
    }
Example #2
0
    /*
     * Spawns a random enemy
     */
    void SpawnEnemy()
    {
        if (normalVehicles.Count > 0 && emergencyVehicles.Count > 0)
        {
            GameObject    vehicle       = normalVehicles[0];
            LaneDirection laneDirection = null;

            // diferentiate between avenue or normal road
            if (avenue)
            {
                Lane lane = (Lane)Random.Range(2, 6);
                laneDirection = GetVehicleStartPointOnLane(lane);
            }
            else
            {
                Lane lane = (Lane)Random.Range(0, 2);
                laneDirection = GetVehicleStartPointOnLane(lane);
            }

            // generates emergency vehicle
            if (Random.value < Constants.ProbabilityLow)
            {
                vehicle = emergencyVehicles[Random.Range(0, emergencyVehicles.Count)];
            }
            else             // generates normal vehicle
            {
                vehicle = normalVehicles[Random.Range(0, normalVehicles.Count)];
            }


            // instantiates enemy at position
            GameObject enemy = InstantiateSceneObject(vehicle, laneDirection.startPosition);

            // saves new enemy on the list
            vehiclesOnLanes.Add(enemy);

            // sets the direction and orders to go
            VehicleAI model = enemy.GetComponent <VehicleAI>();
            model.SetDirection(laneDirection.direction);
            model.Go();
        }
    }