Esempio n. 1
0
    void Awake()
    {
        LapsCompleted   = 0;
        currentLegID    = LegId.Zero;
        legDatas        = GameObject.FindObjectsOfType <LegTriggerBehavior>();
        lapManager      = GameObject.FindObjectOfType <LapManager>();
        vehicleBehavior = GetComponent <VehicleBehavior>();
        playerHUD       = GetComponent <VehicleBehavior>().playerHUD;

        foreach (LegTriggerBehavior l in legDatas)
        {
            switch (l.legID)
            {
            case LegId.One:
                leg1 = l.transform;
                continue;

            case LegId.Two:
                leg2 = l.transform;
                continue;

            case LegId.Three:
                leg3 = l.transform;
                continue;

            default:
                break;
            }
        }
        leg4 = lapManager.transform;

        allPlayers = GameObject.FindGameObjectsWithTag("GameController");
    }
Esempio n. 2
0
 // Start is called before the first frame update
 void Start()
 {
     vehicleBehavior = FindObjectOfType <VehicleBehavior>();
     ui_Controller   = FindObjectOfType <ui_controller>();
     Wheel_Detach    = gameObject.GetComponentInChildren <Player_Wheel_Detach>();
     forceField      = gameObject.GetComponentInChildren <ForceField>();
     //dF = GetComponent<Rigidbody>();
 }
Esempio n. 3
0
 public bool removeFromVehicleList(VehicleBehavior vehicle)
 {
     if (vehicleList.Contains(vehicle))
     {
         vehicleList.Remove(vehicle);
         return(true);
     }
     return(false);
 }
Esempio n. 4
0
        private void Awake()
        {
            Instance = this;

            if (!GameObject.FindObjectOfType <PlayerSelectionManager>())
            {
                SceneManager.LoadScene(0);
            }


            vehicles = GameObject.FindObjectsOfType <VehicleBehavior>();
            AssignedJoyStickNumbers = new int[vehicles.Length];
            foreach (VehicleBehavior v in vehicles)
            {
                if (v.PlayerID == 1)
                {
                    vehicle1 = v;
                    AssignedJoyStickNumbers[0] = v.JoyStick;
                }
                if (v.PlayerID == 2)
                {
                    vehicle2 = v;
                    AssignedJoyStickNumbers[1] = v.JoyStick;
                }
                if (v.PlayerID == 3)
                {
                    vehicle3 = v;
                    AssignedJoyStickNumbers[2] = v.JoyStick;
                }
                if (v.PlayerID == 4)
                {
                    vehicle4 = v;
                    AssignedJoyStickNumbers[3] = v.JoyStick;
                }
            }

            huds = GameObject.FindObjectsOfType <SimpleUI>();
            foreach (SimpleUI h in huds)
            {
                if (h.PlayerID == 1)
                {
                    HUDPlayer1 = h;
                }
                if (h.PlayerID == 2)
                {
                    HUDPlayer2 = h;
                }
                if (h.PlayerID == 3)
                {
                    HUDPlayer3 = h;
                }
                if (h.PlayerID == 4)
                {
                    HUDPlayer4 = h;
                }
            }
        }
Esempio n. 5
0
    void SpawnVehicle(float xPos)
    {
        GameObject      newVehicle      = (GameObject)Instantiate(vehicle, new Vector3(xPos, transform.position.y), new Quaternion());
        VehicleBehavior vehicleBehavior = newVehicle.GetComponent <VehicleBehavior>();

        newVehicle.transform.parent = gameObject.transform; // Assign vehicle its lane
        vehicleBehavior.Rotate();
        vehicleBehavior.SetVelocity();                      // set forth vehicle
    }
Esempio n. 6
0
    private void OnCollisionEnter(Collision c)
    {
        if (c.gameObject.tag == "GameController")
        {
            vehiclebehavior = c.gameObject.GetComponent <VehicleBehavior>();

            vehiclebehavior.Jump();
        }
    }
Esempio n. 7
0
 IEnumerator TakePath(VehicleBehavior v, Path p)
 {
     while (IsOccupied())   //stop car
     {
         v.Stop();
         yield return(null);
     }
     v.MovePath(p); //move car
     yield return(null);
 }
Esempio n. 8
0
 private void Start()
 {
     vehicleBehaviors = GameObject.FindObjectsOfType <VehicleBehavior>();
     foreach (VehicleBehavior v in vehicleBehaviors)
     {
         if (v.PlayerID == PlayerID)
         {
             vehicleBehavior = v;
         }
     }
 }
Esempio n. 9
0
 private void InitCharacterSeleection()
 {
     foreach (VehicleBehavior v in FindObjectsOfType <VehicleBehavior>())
     {
         if (v.PlayerID == PlayerID)
         {
             vehicleBehavior = v;
             BeginCharacterSelection(vehicleBehavior);
         }
     }
 }
Esempio n. 10
0
    public VehicleBehavior GenerateCar(Transform spawnAt, bool add = false, float m = 1)
    {
        GameObject g = Instantiate(CarModel);

        g.transform.position    = spawnAt.position;
        g.transform.forward     = spawnAt.right;
        g.transform.eulerAngles = RotationOffset + new Vector3(0, m, 0);
        VehicleBehavior v = add ? g.AddComponent <VehicleBehavior>() : g.GetComponent <VehicleBehavior>();

        v.CarInformation = this;
        ApplyTexture(g);
        return(v);
    }
Esempio n. 11
0
    public static void VehicleDestroyed(VehicleBehavior vb)
    {
        if (LeftLaneTraffic.CarsSpawned.Contains(vb))
        {
            LeftLaneTraffic.CarsSpawned.Remove(vb);
        }

        if (RightLaneTraffic.CarsSpawned.Contains(vb))
        {
            RightLaneTraffic.CarsSpawned.Remove(vb);
        }
        beepBeep.StartCoroutine(MaintainCarQueue());
    }
Esempio n. 12
0
    // public Color DirtColor;
    //public Color StopColor;

    private void Awake()
    {
        particleSystem  = GetComponent <ParticleSystem>();
        vehicleBehavior = GameObject.FindObjectOfType <VehicleBehavior>();
        ui         = GameObject.FindObjectOfType <ui_controller>();
        mainModule = particleSystem.main;
        mainModule.startSizeMultiplier     *= multiplier;
        mainModule.startSpeedMultiplier    *= multiplier;
        mainModule.startLifetimeMultiplier *= Mathf.Lerp(multiplier, 1, 0.5f);
        particleSystem.Clear();
        mainModule.loop = true;
        particleSystem.Play();
    }
Esempio n. 13
0
 public void ManageTraffic(float m)
 {
     currentSpawnTimer += Time.deltaTime;
     if (currentSpawnTimer >= TimeTillSpawn)
     {
         currentSpawnTimer = 0;
         TimeTillSpawn     = UnityEngine.Random.Range(5f, 10f);
         CarInfo         i          = RoadwayTrafficBeepBeep.CarsToSpawn.Dequeue();
         VehicleBehavior newVehicle = i.GenerateCar(SpawnPosition, false, m);
         newVehicle.CarInformation = i;
         newVehicle.SetVehicleValues(Destination.position, i.MaxSpeed);
         CarsSpawned.Add(newVehicle);
     }
 }
Esempio n. 14
0
 private void OnTriggerEnter(Collider other)
 {
     if (other.tag == "Vehicle")
     {
         //decide path to take
         Path p = GetRandomPath();
         //get vehicleBehavior
         VehicleBehavior vehicle = other.transform.GetComponent <VehicleBehavior>();
         //junction check
         bool junctionOK = vehicle.CheckJunction(Junction);
         if (!junctionOK)
         {
             return;
         }
         //decide when to move vehicle
         StartCoroutine(TakePath(vehicle, p));
     }
 }
Esempio n. 15
0
 private void Start()
 {
     BeginBackgroundObject.SetActive(false);
     character = GameObject.FindObjectOfType <SimpleCharacterSelection>();
     simpleCharacterSeleciton = GetComponent <SimpleCharacterSelection>();
     if (simpleCharacterSeleciton)
     {
         Debug.Log("Has Character Selection");
     }
     vehicleBehaviors = GameObject.FindObjectsOfType <VehicleBehavior>();
     foreach (VehicleBehavior v in vehicleBehaviors)
     {
         if (v.PlayerID == PlayerID)
         {
             vehicleBehavior = v;
             //simpleCharacterSeleciton.BeginCharacterSelection(vehicleBehavior);
         }
     }
 }
Esempio n. 16
0
    private List <VehicleBehavior> GetAllVehiclesWithinRadius(VehicleBehavior vehicle, float maxDist)
    {
        var vehiclesInRange = new List <VehicleBehavior> ();

        foreach (var otherVehicle in vehicleList)
        {
            if (otherVehicle == vehicle)
            {
                continue;
            }

            //check if 'otherVehicle' is within (maxDist) of 'vehicle'
            if (DistBetweenGameObjects(vehicle.transform, otherVehicle.transform) <= maxDist)
            {
                vehiclesInRange.Add(otherVehicle);
            }
        }

        return(vehiclesInRange);
    }
Esempio n. 17
0
    // Start is called before the first frame update
    void Start()
    {
        vehicleBehaviour = GameObject.FindObjectOfType <VehicleBehavior>();
        //  character = GameObject.FindObjectOfType<SimpleCharacterSelection>();
        character = gameObject.GetComponentInParent <SimpleCharacterSelection>();
        if (gameObject.tag == "Player1")
        {
            playerNum = 1;
        }
        else if (gameObject.tag == "Player2")
        {
            playerNum = 2;
        }
        else if (gameObject.tag == "Player3")
        {
            playerNum = 3;
        }
        else if (gameObject.tag == "Player4")
        {
            playerNum = 4;
        }

        item_selected = 0;
        ui_item       = new GameObject[10];
        int i = 0;

        while (i < 10)
        {
            ui_item[i] = gameObject.transform.GetChild(i).gameObject;
            if (ui_item[i] == null)
            {
                throw new System.Exception("ui_item " + i + " not set");
            }
            i++;
        }
    }
Esempio n. 18
0
        private void HandleControlsUpTo(VehicleBehavior vehicleNumber)
        {
            if (vehicleNumber.isControllerInitialized)
            {
                return;
            }
            //Debug.Log("Still Searching for controller");

            if (vehicle1.JoyStick == -1)
            {
                vehicle1.JoyStick = GetJoyStickNumber();
                if (vehicle1.JoyStick > 0)
                {
                    vehicle1.input_steering          = "LeftJoyStickX_P" + vehicle1.JoyStick;
                    vehicle1.input_accelerate        = "RightTrigger_P" + vehicle1.JoyStick;
                    vehicle1.input_drift             = "B_P" + vehicle1.JoyStick;
                    vehicle1.input_nitros            = "A_P" + vehicle1.JoyStick;
                    vehicle1.isControllerInitialized = true;
                    AssignedJoyStickNumbers[0]       = vehicle1.JoyStick;

                    assignedControllerCount++;
                }
            }
            else if (vehicle2.JoyStick == -1)
            {
                vehicle2.JoyStick = GetJoyStickNumber();
                if ((vehicle2.JoyStick == vehicle1.JoyStick) || (vehicle2.JoyStick == vehicle3.JoyStick) || (vehicle2.JoyStick == vehicle4.JoyStick))
                {
                    return;
                }
                if (vehicle2.JoyStick > 0)
                {
                    vehicle2.input_steering          = "LeftJoyStickX_P" + vehicle2.JoyStick;
                    vehicle2.input_accelerate        = "RightTrigger_P" + vehicle2.JoyStick;
                    vehicle2.input_drift             = "B_P" + vehicle2.JoyStick;
                    vehicle2.input_nitros            = "A_P" + vehicle2.JoyStick;
                    vehicle2.isControllerInitialized = true;
                    AssignedJoyStickNumbers[1]       = vehicle2.JoyStick;

                    assignedControllerCount++;
                }
            }
            else if (vehicle3.JoyStick == -1)
            {
                vehicle3.JoyStick = GetJoyStickNumber();
                if ((vehicle3.JoyStick == vehicle1.JoyStick) || (vehicle3.JoyStick == vehicle2.JoyStick) || (vehicle3.JoyStick == vehicle4.JoyStick))
                {
                    return;
                }
                if (vehicle3.JoyStick > 0)
                {
                    vehicle3.input_steering          = "LeftJoyStickX_P" + vehicle3.JoyStick;
                    vehicle3.input_accelerate        = "RightTrigger_P" + vehicle3.JoyStick;
                    vehicle3.input_drift             = "B_P" + vehicle3.JoyStick;
                    vehicle3.input_nitros            = "A_P" + vehicle3.JoyStick;
                    vehicle3.isControllerInitialized = true;
                    AssignedJoyStickNumbers[2]       = vehicle3.JoyStick;

                    assignedControllerCount++;
                }
            }
            else if (vehicle4.JoyStick == -1)
            {
                vehicle4.JoyStick = GetJoyStickNumber();
                if ((vehicle4.JoyStick == vehicle1.JoyStick) || (vehicle4.JoyStick == vehicle2.JoyStick) || (vehicle4.JoyStick == vehicle3.JoyStick))
                {
                    return;
                }
                if (vehicle4.JoyStick > 0)
                {
                    vehicle4.input_steering          = "LeftJoyStickX_P" + vehicle4.JoyStick;
                    vehicle4.input_accelerate        = "RightTrigger_P" + vehicle4.JoyStick;
                    vehicle4.input_drift             = "B_P" + vehicle4.JoyStick;
                    vehicle4.input_nitros            = "A_P" + vehicle4.JoyStick;
                    vehicle4.isControllerInitialized = true;
                    AssignedJoyStickNumbers[3]       = vehicle4.JoyStick;

                    assignedControllerCount++;
                }
            }
        }
Esempio n. 19
0
    private void OnTriggerEnter(Collider c)
    {
        //get the scripts for the players
        VehicleBehavior     car     = player.GetComponentInChildren <VehicleBehavior>();
        Player_Wheel_Detach wheels  = player.GetComponentInChildren <Player_Wheel_Detach>();
        ui_controller       headsUp = hud.GetComponentInChildren <ui_controller>();

        retry = true;
        while (retry)
        {
            if (headsUp.has_tire_1 == true && headsUp.has_tire_2 == true && headsUp.has_tire_3 == true && headsUp.has_tire_4 == true && headsUp.has_hood == true)
            {
                //if this is true, then it nullifies the script
                return;
            }
            if (c.gameObject.name == "PickupCollider")
            {
                partBack = Random.Range(0, wheels.reservePartsList.Count);
                if (wheels.reservePartsList[partBack] == 2)
                {
                    car.wheel4.SetActive(true);
                    wheels.wheel_destroy1.SetActive(true);
                    headsUp.has_tire_2 = true;
                    wheels.reservePartsList.Remove(2);
                    headsUp.ui_item[0].gameObject.SetActive(true);

                    Debug.Log("FL wheel replenished");
                }
                else if (wheels.reservePartsList[partBack] == 1)
                {
                    car.wheel3.SetActive(true);
                    wheels.wheel_destroy2.SetActive(true);
                    headsUp.has_tire_1 = true;
                    wheels.reservePartsList.Remove(1);
                    Debug.Log("FR wheel replenished");
                    headsUp.ui_item[2].gameObject.SetActive(true);
                }
                else if (wheels.reservePartsList[partBack] == 4)
                {
                    car.wheel2.SetActive(true);
                    wheels.wheel_destroy3.SetActive(true);
                    headsUp.has_tire_4 = true;
                    wheels.reservePartsList.Remove(4);
                    Debug.Log("RL wheel replenished");
                    headsUp.ui_item[5].gameObject.SetActive(true);
                }
                else if (wheels.reservePartsList[partBack] == 3)
                {
                    car.wheel1.SetActive(true);
                    wheels.wheel_destroy4.SetActive(true);
                    headsUp.has_tire_3 = true;
                    wheels.reservePartsList.Remove(3);
                    Debug.Log("RR wheel replenished");
                    headsUp.ui_item[6].gameObject.SetActive(true);
                }
                else
                {
                    Debug.Log("Not supposed to show");
                    break;
                }
                retry = false;
            }
            else
            {
                //it needs to hit a specific part of the car, otherwise, this activates
                Debug.Log("Collider Not Hit");
                return;
            }
        }
        Destroy(gameObject);
    }
Esempio n. 20
0
        public override void OnInspectorGUI()
        {
            VehicleBehavior vehicleBehavior = (VehicleBehavior)target;

            if (!vehicleBehavior.isEditorGUI)
            {
                base.OnInspectorGUI();
                return;
            }

            GUIStyle foldoutStyle      = new GUIStyle(EditorStyles.foldout);
            Color    foldoutStyleColor = colorVehicleComponents;

            foldoutStyle.fontStyle           = FontStyle.Bold;
            foldoutStyle.normal.textColor    = foldoutStyleColor;
            foldoutStyle.onNormal.textColor  = foldoutStyleColor;
            foldoutStyle.hover.textColor     = foldoutStyleColor;
            foldoutStyle.onHover.textColor   = foldoutStyleColor;
            foldoutStyle.focused.textColor   = foldoutStyleColor;
            foldoutStyle.onFocused.textColor = foldoutStyleColor;
            foldoutStyle.active.textColor    = foldoutStyleColor;
            foldoutStyle.onActive.textColor  = foldoutStyleColor;

            GUILayout.Space(20);
            UpdateStyle(foldoutStyle, colorDebug);
            showDebugItems = EditorGUILayout.Foldout(showDebugItems, "Debug Menu", foldoutStyle);
            if (showDebugItems || vehicleBehavior.isEditorGUI)
            {
                vehicleBehavior.isCodeDebug              = EditorGUILayout.ToggleLeft("Click to debug vehicle in editor", vehicleBehavior.isCodeDebug);
                vehicleBehavior.isEditorGUI              = EditorGUILayout.ToggleLeft("Click to switch back to simple inspector", vehicleBehavior.isEditorGUI);
                vehicleBehavior.keepTabsOpen             = EditorGUILayout.ToggleLeft("Expand All Sections", vehicleBehavior.keepTabsOpen);
                vehicleBehavior.showRunTimeVariablesOnly = EditorGUILayout.ToggleLeft("View Run-Time Variables Only", vehicleBehavior.showRunTimeVariablesOnly);
            }

            GUILayout.Space(20);


            UpdateStyle(foldoutStyle, colorVehicleComponents);
            showVehicleComponents = EditorGUILayout.Foldout(showVehicleComponents, "Modulo Kart Vehicle Components", foldoutStyle);


            if (showVehicleComponents || vehicleBehavior.keepTabsOpen)
            {
                vehicleBehavior.vehicle_transform         = EditorGUILayout.ObjectField("Vehicle Transform", vehicleBehavior.vehicle_transform, typeof(Transform), true) as Transform;
                vehicleBehavior.vehicle_rigidbody         = EditorGUILayout.ObjectField("Vehicle Rigidbody", vehicleBehavior.vehicle_rigidbody, typeof(Rigidbody), true) as Rigidbody;
                vehicleBehavior.vehicle_heading_transform = EditorGUILayout.ObjectField("Vehicle Heading", vehicleBehavior.vehicle_heading_transform, typeof(Transform), true) as Transform;
                vehicleBehavior.vehicle_camera_transform  = EditorGUILayout.ObjectField("Vehicle Camera", vehicleBehavior.vehicle_camera_transform, typeof(Transform), true) as Transform;

                vehicleBehavior.axel_rr_transform = EditorGUILayout.ObjectField("Axel: Rear Right", vehicleBehavior.axel_rr_transform, typeof(Transform), true) as Transform;
                vehicleBehavior.axel_rl_transform = EditorGUILayout.ObjectField("Axel: Rear Left", vehicleBehavior.axel_rl_transform, typeof(Transform), true) as Transform;
                vehicleBehavior.axel_fr_transform = EditorGUILayout.ObjectField("Axel: Front Right", vehicleBehavior.axel_fr_transform, typeof(Transform), true) as Transform;
                vehicleBehavior.axel_fl_transform = EditorGUILayout.ObjectField("Axel: Front Left", vehicleBehavior.axel_fl_transform, typeof(Transform), true) as Transform;
            }
            GUILayout.Space(20);

            UpdateStyle(foldoutStyle, colorVehiclePhysicalAttributes);
            showVehiclePhysicalAttributes = EditorGUILayout.Foldout(showVehiclePhysicalAttributes, "Vehicle Physical Attributes", foldoutStyle);
            if (showVehiclePhysicalAttributes || vehicleBehavior.keepTabsOpen)
            {
                vehicleBehavior.is_4wd       = EditorGUILayout.ToggleLeft("Use 4 Wheel Drive", vehicleBehavior.is_4wd);
                vehicleBehavior.width_float  = EditorGUILayout.Slider("Vehicle Width", vehicleBehavior.width_float, 0.1f, 10);
                vehicleBehavior.length_float = EditorGUILayout.Slider("Vehicle Length", vehicleBehavior.length_float, 0.1f, 10);
                vehicleBehavior.height_float = EditorGUILayout.Slider("Vehicle Height", vehicleBehavior.height_float, 0.1f, 10);
            }

            GUILayout.Space(20);

            UpdateStyle(foldoutStyle, colorPostProfiling);
            showPostProfiling = EditorGUILayout.Foldout(showPostProfiling, "Post Profiling", foldoutStyle);
            if (showPostProfiling || vehicleBehavior.keepTabsOpen)
            {
                vehicleBehavior.vehicle_camera_postprocess_behavior = EditorGUILayout.ObjectField("Post Process Behavior", vehicleBehavior.vehicle_camera_postprocess_behavior, typeof(PostProcessingBehaviour), true) as PostProcessingBehaviour;
                vehicleBehavior.vehicle_camera_profile = EditorGUILayout.ObjectField("Post Process Profile", vehicleBehavior.vehicle_camera_profile, typeof(PostProcessingProfile), true) as PostProcessingProfile;
            }

            GUILayout.Space(20);

            UpdateStyle(foldoutStyle, colorCinematics);
            showCinematics = EditorGUILayout.Foldout(showCinematics, "Cinematics", foldoutStyle);
            if (showCinematics || vehicleBehavior.keepTabsOpen)
            {
                vehicleBehavior.is_Cinematic_View = EditorGUILayout.ToggleLeft("Enable Cinematic View", vehicleBehavior.is_Cinematic_View);
                vehicleBehavior.min_fov_float     = EditorGUILayout.Slider("Cinematic -> FOV: Min", vehicleBehavior.min_fov_float, 60, 110);
                vehicleBehavior.max_fov_float     = EditorGUILayout.Slider("Cinematic -> FOV: Max", vehicleBehavior.max_fov_float, 110, 160);
                vehicleBehavior.pan_away_float    = EditorGUILayout.Slider("Cinematic -> Camera Pan Away Smoothness", vehicleBehavior.pan_away_float, 5, 50);
                vehicleBehavior.pan_toward_float  = EditorGUILayout.Slider("Cinematic -> Camera Pan Toward Smoothness", vehicleBehavior.pan_toward_float, 5, 50);
                vehicleBehavior.is_MotionBlur     = EditorGUILayout.ToggleLeft("Enable Motion Blur", vehicleBehavior.is_MotionBlur);
            }

            GUILayout.Space(20);

            UpdateStyle(foldoutStyle, colorRunTimeVariables);
            showRunTimeVariables = EditorGUILayout.Foldout(showRunTimeVariables, "[RUN TIME] Vehicle Movement Variables", foldoutStyle);
            if (showRunTimeVariables || vehicleBehavior.keepTabsOpen || vehicleBehavior.showRunTimeVariablesOnly)
            {
                //Do not show: Ground_Check_Ray
                //Do not show: GroundCheck_hits
                //public bool is_grounded;
                vehicleBehavior.is_grounded              = EditorGUILayout.ToggleLeft("Is Vehicle Grounded", vehicleBehavior.is_grounded);
                vehicleBehavior.gravity_float            = (float)EditorGUILayout.FloatField("Current Gravity", vehicleBehavior.gravity_float);
                vehicleBehavior.max_accel_modified       = EditorGUILayout.FloatField("Current Maximum Target Speed", vehicleBehavior.max_accel_modified);
                vehicleBehavior.wheel_steer_float        = EditorGUILayout.FloatField("Current Wheel Steer", vehicleBehavior.wheel_steer_float);
                vehicleBehavior.max_steer_modified       = EditorGUILayout.FloatField("Current Maximum Target Vehicle Steering", vehicleBehavior.max_steer_modified);
                vehicleBehavior.accel_magnitude_float    = EditorGUILayout.FloatField("Current Acceleration", vehicleBehavior.accel_magnitude_float);
                vehicleBehavior.steer_magnitude_float    = EditorGUILayout.FloatField("Current Steering", vehicleBehavior.steer_magnitude_float);
                vehicleBehavior.brake_magnitude_float    = EditorGUILayout.FloatField("Current Breaking", vehicleBehavior.brake_magnitude_float);
                vehicleBehavior.drift_correction_float   = EditorGUILayout.FloatField("Current Drift Correction", vehicleBehavior.drift_correction_float);
                vehicleBehavior.nitros_meter_float       = EditorGUILayout.FloatField("Current Nitros Meter", vehicleBehavior.nitros_meter_float);
                vehicleBehavior.nitros_speed_float       = EditorGUILayout.FloatField("Current Nitros Speed", vehicleBehavior.nitros_speed_float);
                vehicleBehavior.tiltLerp_float           = EditorGUILayout.FloatField("Current Slope Adjustment", vehicleBehavior.tiltLerp_float);
                vehicleBehavior.vehicle_air_height       = EditorGUILayout.FloatField("Current Vehicle Air Height", vehicleBehavior.vehicle_air_height);
                vehicleBehavior.vehicle_air_control      = EditorGUILayout.FloatField("Current Air Control", vehicleBehavior.vehicle_air_control);
                vehicleBehavior.vehicle_speed_turn_ratio = EditorGUILayout.FloatField("Current Vehicle Speed Turn Ratio", vehicleBehavior.vehicle_speed_turn_ratio);
                vehicleBehavior.is_drift       = EditorGUILayout.ToggleLeft("Is Vehicle Drifting", vehicleBehavior.is_drift);
                vehicleBehavior.is_nitrosboost = EditorGUILayout.ToggleLeft("Use Vechicle Nitros", vehicleBehavior.is_nitrosboost);
            }

            GUILayout.Space(20);

            UpdateStyle(foldoutStyle, colorMaxMinValues);
            showMaxMinValues = EditorGUILayout.Foldout(showMaxMinValues, "Max and Min Vehicle Movement Values", foldoutStyle);
            if (showMaxMinValues || vehicleBehavior.keepTabsOpen)
            {
                vehicleBehavior.max_gravity_float            = EditorGUILayout.Slider("Max Gravity", vehicleBehavior.max_gravity_float, 0, 500);
                vehicleBehavior.max_steer_float              = EditorGUILayout.Slider("Max Steering", vehicleBehavior.max_steer_float, 0, 50);
                vehicleBehavior.max_accel_float              = EditorGUILayout.Slider("Max Acceleration", vehicleBehavior.max_accel_float, 0, 500);
                vehicleBehavior.max_brake_float              = EditorGUILayout.Slider("Max Braking", vehicleBehavior.max_brake_float, 0, 500);
                vehicleBehavior.min_drift_correction_float   = EditorGUILayout.Slider("Min Drift Correction", vehicleBehavior.min_drift_correction_float, 0, 1);
                vehicleBehavior.max_drift_correction_float   = EditorGUILayout.Slider("Max Drift Correction", vehicleBehavior.max_drift_correction_float, 0, 1);
                vehicleBehavior.drift_correction_multiplier  = EditorGUILayout.Slider("Drift Correction Multiplier", vehicleBehavior.drift_correction_multiplier, 0, 0.1f);
                vehicleBehavior.drift_accel_multiplier_float = EditorGUILayout.Slider("Drift Accel Multiplier", vehicleBehavior.drift_accel_multiplier_float, 0, 1f);
                vehicleBehavior.drift_turn_ratio_float       = EditorGUILayout.Slider("Drift Turn Ratio", vehicleBehavior.drift_turn_ratio_float, 0, 1);
                vehicleBehavior.max_nitros_meter_float       = EditorGUILayout.Slider("Max Nitros Meter", vehicleBehavior.max_nitros_meter_float, 0, 100);
                vehicleBehavior.max_nitros_speed_float       = EditorGUILayout.Slider("Max Nitros Speed", vehicleBehavior.max_nitros_speed_float, 0, 100);
                vehicleBehavior.nitros_depletion_rate        = EditorGUILayout.Slider("Nitros Ddepletion Rate", vehicleBehavior.nitros_depletion_rate, 0, 20);
                vehicleBehavior.min_air_control              = EditorGUILayout.Slider("Nitros Ddepletion Rate", vehicleBehavior.min_air_control, 0, 1);
            }

            GUILayout.Space(20);

            UpdateStyle(foldoutStyle, colorLayersGroundSlope);
            showLayersGroundSlope = EditorGUILayout.Foldout(showLayersGroundSlope, "Ground and Slope Layers", foldoutStyle);
            if (showLayersGroundSlope || vehicleBehavior.keepTabsOpen)
            {
                LayerMask tempMask = EditorGUILayout.MaskField(InternalEditorUtility.LayerMaskToConcatenatedLayersMask(vehicleBehavior.rayCast_layerMask), InternalEditorUtility.layers);

                //This goes by regular numbers not bit numbers for this particular case...
                tempMask = ~(1 << 1 | 1 << 4 | 1 << 5);
                vehicleBehavior.rayCast_layerMask = InternalEditorUtility.ConcatenatedLayersMaskToLayerMask(tempMask);
                //Debug.Log("Masks are: " + vehiclleBehavior.rayCast_layerMask);
                vehicleBehavior.slope_ray_dist_float = EditorGUILayout.Slider("Slope Adjustment Distance", vehicleBehavior.slope_ray_dist_float, 10f, 10000f);
            }

            GUILayout.Space(20);

            UpdateStyle(foldoutStyle, colorInputResponsiveness);
            showInputResponsiveness = EditorGUILayout.Foldout(showInputResponsiveness, "Input Responsiveness", foldoutStyle);
            if (showInputResponsiveness || vehicleBehavior.keepTabsOpen)
            {
                vehicleBehavior.ACCEL              = EditorGUILayout.Slider("ACCEL", vehicleBehavior.ACCEL, 0, 100);
                vehicleBehavior.DRAG               = EditorGUILayout.Slider("DRAG", vehicleBehavior.DRAG, 0, 100);
                vehicleBehavior.ROTATIONAL_DRAG    = EditorGUILayout.Slider("ROTATIONAL DRAG", vehicleBehavior.ROTATIONAL_DRAG, 0, 100);
                vehicleBehavior.GRAVITY            = EditorGUILayout.Slider("GRAVITY", vehicleBehavior.GRAVITY, 1, 2000);
                vehicleBehavior.STEER              = EditorGUILayout.Slider("STEER", vehicleBehavior.STEER, 1, 30);
                vehicleBehavior.STEER_DECELERATION = EditorGUILayout.Slider("STEER DECELERATION", vehicleBehavior.STEER_DECELERATION, 1, 50);
                vehicleBehavior.DRIFT_ACCELERATION = EditorGUILayout.Slider("DRIFT ACCELERATION", vehicleBehavior.DRIFT_ACCELERATION, 1, 50);
                vehicleBehavior.DRIFT_STEER_DAMPEN = EditorGUILayout.Slider("DRIFT STEER DAMPEN", vehicleBehavior.DRIFT_STEER_DAMPEN, 1, 50);
            }

            GUILayout.Space(20);

            UpdateStyle(foldoutStyle, colorInputType);
            showInputType = EditorGUILayout.Foldout(showInputType, "Input Types", foldoutStyle);
            if (showInputType || vehicleBehavior.keepTabsOpen)
            {
                vehicleBehavior.input_type_enum  = (InputType)EditorGUILayout.EnumFlagsField("Input Type", vehicleBehavior.input_type_enum);
                vehicleBehavior.PlayerID         = EditorGUILayout.IntSlider("Player ID", vehicleBehavior.PlayerID, 1, 4);
                vehicleBehavior.JoyStick         = EditorGUILayout.IntSlider("Joystick Number", vehicleBehavior.JoyStick, -1, 20);
                vehicleBehavior.input_steering   = EditorGUILayout.TextField("Input Steering", vehicleBehavior.input_steering);
                vehicleBehavior.input_accelerate = EditorGUILayout.TextField("Input Accelerate", vehicleBehavior.input_accelerate);
                vehicleBehavior.input_drift      = EditorGUILayout.TextField("Input Drift", vehicleBehavior.input_drift);
                vehicleBehavior.input_nitros     = EditorGUILayout.TextField("Input Nitros", vehicleBehavior.input_nitros);
            }
        }
Esempio n. 21
0
 // Start is called before the first frame update
 void Start()
 {
     vehicleBehavior = FindObjectOfType <VehicleBehavior>();
     //dF = GetComponent<Rigidbody>();
 }
Esempio n. 22
0
    void Awake()
    {
        saveGameManager = GameObject.FindGameObjectWithTag("SaveGameManager").GetComponent <SaveGameManager>();

        LapsCompleted   = 0;
        currentLegID    = LegId.Zero;
        legDatas        = GameObject.FindObjectsOfType <LegTriggerBehavior>();
        lapManager      = GameObject.FindObjectOfType <LapManager>();
        lapTransform    = lapManager.transform;
        vehicleBehavior = GetComponent <VehicleBehavior>();
        playerHUD       = GetComponent <VehicleBehavior>().playerHUD;

        foreach (LegTriggerBehavior l in legDatas)
        {
            switch (l.legID)
            {
            case LegId.One:
                leg1 = l.transform;
                continue;

            case LegId.Two:
                leg2 = l.transform;
                continue;

            case LegId.Three:
                leg3 = l.transform;
                continue;

            case LegId.Four:
                leg4 = l.transform;
                continue;

            case LegId.Five:
                leg5 = l.transform;
                continue;

            case LegId.Six:
                leg6 = l.transform;
                continue;

            case LegId.Seven:
                leg7 = l.transform;
                continue;

            case LegId.Eight:
                leg8 = l.transform;
                continue;

            case LegId.Nine:
                leg9 = l.transform;
                continue;

            case LegId.Ten:
                leg10 = l.transform;
                continue;

            case LegId.Eleven:
                leg11 = l.transform;
                continue;

            case LegId.Twelve:
                leg12 = l.transform;
                continue;

            case LegId.Thirteen:
                leg13 = l.transform;
                continue;

            default:
                break;
            }
        }
        leg4 = lapManager.transform;

        allPlayers = GameObject.FindGameObjectsWithTag("GameController");
    }
Esempio n. 23
0
 // Start is called before the first frame update
 void Start()
 {
     vehicleBehavior = GameObject.FindObjectOfType <VehicleBehavior>();
     nearMissText.SetActive(false);
     airTimeText.SetActive(false);
 }
Esempio n. 24
0
 // Start is called before the first frame update
 void Start()
 {
     vehicleBehavior = GameObject.FindObjectOfType <VehicleBehavior>();
     ui = GameObject.FindObjectOfType <ui_controller>();
 }
Esempio n. 25
0
    public List <VehicleBehavior> calculatePath(VehicleBehavior vehicleStart, VehicleBehavior vehicleEnd)
    {
        ShortestPath.Clear();

        // Deactivate all radius
        foreach (VehicleBehavior vehicle in vehicleList)
        {
            vehicle.showSearchRadius = false;
        }

        //bfsInfo keeps track of the shortest path
        // Key: The VehicleBehavior (vehicle)
        // Value: Tuple of <float, GameObject> where
        //         float: the distance from vehicleStart to this VehicleBehavior
        //         VehicleBehavior: the prior Vehicle that has the shortest path back to the start node
        var bfsInfo = new Dictionary <VehicleBehavior, Tuple <float, VehicleBehavior> >();

        //add the starting node to our BFS map
        bfsInfo.Add(vehicleStart, new Tuple <float, VehicleBehavior> (0f, null));

        var bfsQueue = new Queue <VehicleBehavior> ();

        //seed the search with the first item
        bfsQueue.Enqueue(vehicleStart);

        while (bfsQueue.Count > 0)
        {
            var vehicle         = bfsQueue.Dequeue();
            var vehiclesInRange = GetAllVehiclesWithinRadius(vehicle, vehicle.searchRadius);

            var vehicleInfo = bfsInfo [vehicle];

            //go through all nearby vehicles
            foreach (var otherVehicle in vehiclesInRange)
            {
                var distBtwnVehicles = DistBetweenGameObjects(vehicle.transform, otherVehicle.transform);

                //is this the first time we're vising this node...
                //or did we just find a more efficient path?
                if (!bfsInfo.ContainsKey(otherVehicle) ||
                    bfsInfo[otherVehicle].First > distBtwnVehicles + bfsInfo[vehicle].First)
                {
                    //We just found out that going from 'vehicle' to 'otherVehicle' is more efficient
                    //than whatever we had before, so save this info.
                    bfsInfo[otherVehicle] = new Tuple <float, VehicleBehavior>(distBtwnVehicles + bfsInfo[vehicle].First, vehicle);

                    //because we just updated this node, there might be more info to glean from revisiting it,
                    //so let's add it back into the queue
                    if (!bfsQueue.Contains(otherVehicle))
                    {
                        bfsQueue.Enqueue(otherVehicle);
                    }
                }
            }
        }

        Debug.Log("Done doing BFS.");

        //check if we found a solution
        if (!bfsInfo.ContainsKey(vehicleEnd))
        {
            //uh oh, we never encountered the end vehicle, so there's no path!
            Debug.LogWarning("Couldn't find any path between the vehicles!!!");
            DrawPath(ShortestPath);
            MessagesLostNoRoute++;
            return(null);
        }

        //Time to traverse the path back to the start node
        var node = vehicleEnd;

        while (node != null)
        {
            // Activate radius display
            node.showSearchRadius = true;
            ShortestPath.Add(node);
            node = bfsInfo [node].Second;
        }

        ShortestPath.Reverse();
        Debug.Log("Shortest path involves traversing through " + ShortestPath.Count + " nodes.");
        DrawPath(ShortestPath);

        return(ShortestPath);
    }
Esempio n. 26
0
 // Start is called before the first frame update
 void Start()
 {
     vehicleBehavior = GameObject.FindObjectOfType <VehicleBehavior>();
     //target.transform.position = spawnpoint.transform.position + new Vector3(0, 0, 100);
 }
Esempio n. 27
0
 public bool addToVehicleList(VehicleBehavior vehicle)
 {
     vehicleList.Add(vehicle);
     return(true);
 }
Esempio n. 28
0
    private void OnTriggerEnter(Collider c)
    {
        if (c.gameObject.tag == "GameController")
        {
            AudioManager.instance.Play("Collectible_Sound");

            ThisCollider = c;
            player       = c.gameObject;
            car          = player.GetComponentInChildren <VehicleBehavior>();
            wheels       = player.GetComponentInChildren <Player_Wheel_Detach>();
            headsUp      = c.gameObject.GetComponentInChildren <VehicleBehavior>().playerHUD.GetComponentInChildren <ui_controller>();
            if (headsUp)
            {
                Debug.Log("HEADS UP: " + headsUp);
            }
            else
            {
                Debug.Log("NO HEADS UP");
            }
            Debug.Log("Cody Test");
        }


        //get the scripts for the players
        //VehicleBehavior car = player.GetComponentInChildren<VehicleBehavior>();
        //Player_Wheel_Detach wheels = player.GetComponentInChildren<Player_Wheel_Detach>();
        //ui_controller headsUp = hud.GetComponentInChildren<ui_controller>();

        // while (retry)
        //  {
        if (headsUp)
        {
            AVerySimpleEnumOfCharacters character = headsUp.GetCharacter();
            if (upType == PickUpType.Tires)
            {
                if (headsUp.has_tire_1 == true && headsUp.has_tire_2 == true && headsUp.has_tire_3 == true && headsUp.has_tire_4 == true)
                {
                    spawner.Timer = Time.time + 5.0f;
                    gameObject.SetActive(false);
                    //if this is true, then it nullifies the script
                    return;
                }
                if (c.gameObject.CompareTag("GameController"))
                {
                    AudioManager.instance.Play("Collectible_Sound");

                    partBack = Random.Range(0, wheels.reservePartsList.Count);
                    if (wheels.reservePartsList[partBack] == 2)
                    {
                        car.wheel4.SetActive(true);
                        wheels.wheel_destroy1.SetActive(true);
                        //    headsUp.has_tire_2 = true;
                        wheels.reservePartsList.Remove(2);
                        //  headsUp.ui_item[0].gameObject.SetActive(true);
                        headsUp.RegainPart(5);

                        Debug.Log("FR wheel replenished");
                    }
                    else if (wheels.reservePartsList[partBack] == 1)
                    {
                        car.wheel3.SetActive(true);
                        wheels.wheel_destroy2.SetActive(true);
                        //  headsUp.has_tire_1 = true;
                        wheels.reservePartsList.Remove(1);
                        Debug.Log("FL wheel replenished");
                        // headsUp.ui_item[2].gameObject.SetActive(true);
                        headsUp.RegainPart(7);
                    }
                    else if (wheels.reservePartsList[partBack] == 4)
                    {
                        car.wheel2.SetActive(true);
                        wheels.wheel_destroy3.SetActive(true);
                        // headsUp.has_tire_4 = true;
                        wheels.reservePartsList.Remove(4);
                        Debug.Log("RL wheel replenished");
                        // headsUp.ui_item[5].gameObject.SetActive(true);
                        headsUp.RegainPart(0);
                    }
                    else if (wheels.reservePartsList[partBack] == 3)
                    {
                        car.wheel1.SetActive(true);
                        wheels.wheel_destroy4.SetActive(true);
                        //   headsUp.has_tire_3 = true;
                        wheels.reservePartsList.Remove(3);
                        Debug.Log("RR wheel replenished");
                        //    headsUp.ui_item[7].gameObject.SetActive(true);
                        headsUp.RegainPart(2);
                    }
                    else
                    {
                        Debug.Log("Not supposed to show");
                        //  break;
                    }

                    spawner.Timer = Time.time + 5.0f;
                    gameObject.SetActive(false);
                }
                else
                {
                    //it needs to hit a specific part of the car, otherwise, this activates
                    Debug.Log("Collider Not Hit");
                    return;
                }
            }
            else if (upType == PickUpType.Nitro)
            {
                if (c.gameObject.CompareTag("GameController"))
                {
                    AudioManager.instance.Play("Collectible_Sound");

                    if (car.nitros_meter_float + nitroPickUp > car.max_nitros_meter_float)
                    {
                        if (character == AVerySimpleEnumOfCharacters.Felix || character == AVerySimpleEnumOfCharacters.Toby)
                        {
                            float dif = car.max_nitros_meter_float - car.nitros_meter_float;
                            car.nitros_meter_float        = car.max_nitros_meter_float;
                            car.extra_nitros_meter_float += (nitroPickUp - dif);
                            if (car.extra_nitros_meter_float > 50 && character == AVerySimpleEnumOfCharacters.Felix)
                            {
                                car.extra_nitros_meter_float = 50;
                            }
                            else if (car.extra_nitros_meter_float > 25 && character == AVerySimpleEnumOfCharacters.Toby)
                            {
                                car.extra_nitros_meter_float = 25;
                            }
                        }
                        else
                        {
                            car.nitros_meter_float = car.max_nitros_meter_float;
                        }
                    }
                    else
                    {
                        car.nitros_meter_float += nitroPickUp;
                    }
                    spawner.Timer = Time.time + 5.0f;
                    gameObject.SetActive(false);
                }
            }
            else if (upType == PickUpType.Character)
            {
                switch (character)
                {
                case AVerySimpleEnumOfCharacters.Felix:
                    if (headsUp.has_door_1 == true && headsUp.has_door_2 == true)

                    {
                        spawner.Timer = Time.time + 5.0f;
                        gameObject.SetActive(false);
                        //if this is true, then it nullifies the script
                        return;
                    }
                    break;

                case AVerySimpleEnumOfCharacters.Maxine:
                    if (headsUp.has_door_1 == true && headsUp.has_extra1 == true && headsUp.has_extra2 == true && headsUp.has_door_2 == true)
                    {
                        spawner.Timer = Time.time + 5.0f;
                        gameObject.SetActive(false);
                        //if this is true, then it nullifies the script
                        return;
                    }
                    break;

                case AVerySimpleEnumOfCharacters.Paul:
                    if (headsUp.has_door_1 == true && headsUp.has_Shield == true && headsUp.has_door_2 == true)
                    {
                        spawner.Timer = Time.time + 5.0f;
                        gameObject.SetActive(false);
                        //if this is true, then it nullifies the script
                        return;
                    }
                    break;

                case AVerySimpleEnumOfCharacters.Toby:
                    if (headsUp.has_door_1 == true && headsUp.has_extra1 == true && headsUp.has_door_2 == true)
                    {
                        spawner.Timer = Time.time + 5.0f;
                        gameObject.SetActive(false);
                        //if this is true, then it nullifies the script
                        return;
                    }
                    break;
                }

                if (c.gameObject.CompareTag("GameController"))
                {
                    AudioManager.instance.Play("Collectible_Sound");

                    bool retry = true;

                    partBack = Random.Range(0, 5);
                    while (retry == true)
                    {
                        switch (partBack)
                        {
                        case 0:
                            if (headsUp.has_door_1)
                            {
                                partBack++;
                            }
                            else
                            {
                                headsUp.RegainPart(3);
                                retry = false;
                            }
                            break;

                        case 1:
                            if (headsUp.has_door_2)
                            {
                                partBack++;
                            }
                            else
                            {
                                headsUp.RegainPart(4);
                                retry = false;
                            }

                            break;

                        case 2:
                            if (headsUp.has_Shield || character != AVerySimpleEnumOfCharacters.Paul)
                            {
                                partBack++;
                            }
                            else
                            {
                                headsUp.has_Shield = true;
                                retry = false;
                            }

                            break;

                        case 3:
                            if (headsUp.has_extra1 || character == AVerySimpleEnumOfCharacters.Felix || character == AVerySimpleEnumOfCharacters.Paul || character == AVerySimpleEnumOfCharacters.NotInGame)
                            {
                                partBack++;
                            }
                            else
                            {
                                headsUp.RegainPart(8);
                                retry = false;
                            }
                            break;

                        case 4:
                            if (headsUp.has_extra2 || character != AVerySimpleEnumOfCharacters.Maxine)
                            {
                                partBack = 0;
                                //   retry = false;
                            }
                            else
                            {
                                headsUp.RegainPart(9);
                                retry = false;
                            }

                            break;
                        }
                    }
                    spawner.Timer = Time.time + 5.0f;
                    gameObject.SetActive(false);
                }
            }
        }
        else
        {
            Debug.Log("We have no 'Heads up' Object");
            return;
        }
    }
Esempio n. 29
0
 // Start is called before the first frame update
 void Start()
 {
     vehicleBehavior = GameObject.FindObjectOfType <VehicleBehavior>();
 }
Esempio n. 30
0
 public void BeginCharacterSelection(VehicleBehavior v)
 {
     vehicleBehavior = v;
     SetCharacterSprite();
 }