public void removeIngredient(GameObject ingredient, BurgerIngredientScript ingScript)
    {
        int index = ingredientsAttached.IndexOf(ingredient);

        if (index != 0)
        {
            ingScript.setAttached(false);
            int tempLen = ingredientListLength;
            ingredientListLength = index;

            for (int i = index; i < tempLen; i++)
            {
                ingredientScripts[i].resetIngredient();
                ingredientsAttached[i].GetComponent <Rigidbody>().AddForce(new Vector3(
                                                                               Random.Range(-100.0f, 100.0f), //X force
                                                                               Random.Range(0.0f, 30.0f),     //Y force
                                                                               Random.Range(-100.0f, 100.0f)  //Z force
                                                                               ));
            }

            ingredientsAttached.RemoveRange(index, tempLen - index);
            ingredientScripts.RemoveRange(index, tempLen - index);
            burgerHeight = ingredientScripts[index - 1].getHeightInBurger() + ingredientScripts[index - 1].getHeight();
        }
        else
        {
            resetBurger();
        }
    }
Exemplo n.º 2
0
    //Handling input for rear trigger on controller
    void handleTrigger()
    {
        Ray        ray = new Ray(activeController.transform.position, activeController.transform.forward);
        RaycastHit hit;

        if (triggerPressed == true)
        {
            lineReticle.enabled = false;
            //Grabbing the object if pointed at by controller and trigger pressed
            if (Physics.Raycast(ray, out hit, grabRange, interactable) && objHeld == false)
            {
                if (hit.transform.gameObject.tag == "Ingredient")
                {
                    GameObject             ingredient = hit.transform.gameObject;
                    BurgerIngredientScript script     = ingredient.GetComponent <BurgerIngredientScript>();
                    if (script.getAttached() == true)
                    {
                        hit.transform.gameObject.transform.parent.GetComponent <BurgerDishScript>().removeIngredient(ingredient, script);
                    }
                }
                else if (hit.transform.gameObject.tag == "Utensil")
                {
                    GameObject controller = activeController.gameObject.GetComponent <OVRTrackedRemote>().m_modelOculusGoController;
                    hit.transform.gameObject.transform.SetPositionAndRotation(controller.transform.position + (controller.transform.forward * 0.5f), new Quaternion(controller.transform.rotation.x, controller.transform.rotation.y, controller.transform.rotation.z, controller.transform.rotation.w));
                }
                objHeld     = true;
                currHeldObj = hit.transform.gameObject;
                currHeldObj.transform.parent = activeController.transform;
                currHeldObj.GetComponent <Rigidbody>().useGravity  = false;
                currHeldObj.GetComponent <Rigidbody>().isKinematic = true;
            }
            else if (Physics.Raycast(ray, out hit, grabRange, staticItem) && objHeld == false)
            {
                if (hit.transform.gameObject.tag == "Button")
                {
                    manager.judgeBurgers();
                }
            }
        }
        else if (triggerPressed == false)
        {
            lineReticle.enabled = true;
            objHeld             = false;
            //If holding an object, it will be released
            if (currHeldObj != null)
            {
                currHeldObj.transform.parent = null;
                currHeldObj.GetComponent <Rigidbody>().isKinematic = false;
                currHeldObj.GetComponent <Rigidbody>().useGravity  = true;
                if (currHeldObj.tag == "Ingredient")
                {
                    currHeldObj.GetComponent <BurgerIngredientScript>().checkAttach();
                }
                currHeldObj = null;
            }
        }
    }
Exemplo n.º 3
0
    public float JudgeBurger(BurgerDishScript burger)
    {
        float cumulativeScore  = 0;
        float returnScore      = 0;
        int   numIngredients   = 0;
        int   cookTimeModifier = 0;

        if (burger.getIngListLength() > 0)
        {
            for (int i = 0; i < burger.getIngListLength(); i++)
            {
                BurgerIngredientScript testIngredient = burger.ingredientScripts [i];
                cumulativeScore += BurgerIngValue [(int)testIngredient.getIngredientType()];
                Debug.Log("JUDGE " + this.gameObject + "'S SCORE FOR INGREDIENT " + testIngredient.getIngredientType() + " IS " + BurgerIngValue [(int)testIngredient.getIngredientType()]);
                if (testIngredient.getIngredientType() == BurgerIngType.BUN && i != 0 ||
                    testIngredient.getIngredientType() == BurgerIngType.TOPBUN && i != burger.getIngListLength() - 1)
                {
                    cumulativeScore -= 5;
                }
                else if (testIngredient.getIngredientType() != BurgerIngType.BUN && testIngredient.getIngredientType() != BurgerIngType.TOPBUN)
                {
                    numIngredients++;
                    if (testIngredient.getIngredientType() == BurgerIngType.HAMBURGER)
                    {
                        if (i != 1)
                        {
                            cumulativeScore -= 2;
                        }
                        if (PickyAboutCookTime)
                        {
                            cookTimeModifier = testIngredient.getCookScore();
                        }
                    }
                }
            }
            returnScore = cumulativeScore / (float)numIngredients;
            returnScore = Mathf.Clamp(returnScore + (float)cookTimeModifier, 0.0f, 10.0f);
            Debug.Log(this.gameObject + " RANKS THE BURGER " + returnScore + "POINTS.");
            return(returnScore);
        }
        else
        {
            return(0);
        }
    }
 public void addIngredient(GameObject ingredient, BurgerIngredientScript ingScript)
 {
     ingredientsAttached.Add(ingredient);
     ingredientScripts.Add(ingScript);
     ingredientListLength++;
 }