Esempio n. 1
0
 private void OnCollisionExit(Collision collision)
 {
     if (collision.collider.tag == "Digit" && script_digit_connected != null &&
         collision.gameObject.GetInstanceID() == script_digit_connected.gameObject.GetInstanceID())
     {
         script_digit_connected = null;
         UpdateText(ref_text_actual, "");
     }
 }
Esempio n. 2
0
 private void OnCollisionStay(Collision collision)
 {
     if (collision.collider.tag == "Digit" && script_digit_connected == null)
     {
         script_digit_connected = collision.gameObject.GetComponent <Behavior_Digit>();
         if (!script_digit_connected.GetIsValue()) // Don't bind to operators
         {
             script_digit_connected = null;
         }
         else
         {
             value_actual = script_digit_connected.GetTotal();
             CheckTotal();
         }
     }
 }
Esempio n. 3
0
 private void OnCollisionExit(Collision collision)
 {
     if (collision.collider.tag == "Digit")
     {
         if (script_digit_upper != null && collision.gameObject.GetInstanceID() == script_digit_upper.gameObject.GetInstanceID())
         {
             script_digit_upper = null;
             valid_op           = false;
             UpdateTotal();
         }
         else if (script_digit_lower != null && collision.gameObject.GetInstanceID() == script_digit_lower.gameObject.GetInstanceID())
         {
             script_digit_lower = null;
             UpdateTotal();
         }
     }
 }
Esempio n. 4
0
 private void OnCollisionEnter(Collision collision)
 {
     if (collision.collider.tag == "Digit")
     {
         Transform t = collision.transform;
         if (t.position.y > (transform.position.y + height_thresh) && script_digit_upper == null)
         {
             script_digit_upper = collision.gameObject.GetComponent <Behavior_Digit>();
             UpdateTotal();
         }
         else if (t.position.y < (transform.position.y - height_thresh) && script_digit_lower == null)
         {
             script_digit_lower = collision.gameObject.GetComponent <Behavior_Digit>();
             UpdateTotal();
         }
     }
 }
Esempio n. 5
0
    private void NextLevel()
    {
        // Update level
        ++level;
        uncompleted_platforms = 0;
        ref_text_level.text   = "Level " + level.ToString();

        // Destroy all cubes
        foreach (GameObject go in GameObject.FindGameObjectsWithTag("Digit"))
        {
            Destroy(go.gameObject);
        }

        // Difficulty adjustment
        int operations_used_max = ((level - 1) / difficulty_raise_operations) + 1;
        int operations_used     = Random.Range(1, operations_used_max);

        int platforms_used = ((level - 1) / difficulty_raise_platforms) + 1;

        platforms_used = (platforms_used <= script_platforms.Length) ? platforms_used : script_platforms.Length;

        int max_inc = (level - 1) / difficulty_raise_max;

        // Update platforms and calculate cubes
        List <Behavior_Digit.Operator> digit_ops = new List <Behavior_Digit.Operator>();
        List <int> digit_values = new List <int>();

        for (int i = 0; i < script_platforms.Length; ++i)
        {
            if (i < platforms_used) // Platform in use
            {
                // Generate valid equation
                int total = Random.Range(random_val_min, random_val_max + max_inc);
                digit_values.Add(total);
                for (int j = 0; j < operations_used; ++j)
                {
                    int value = Random.Range(random_val_min, random_val_max + max_inc);
                    digit_values.Add(value);
                    Behavior_Digit.Operator op = RandomOperator();
                    digit_ops.Add(op);

                    total = Behavior_Digit.ApplyOperation(op, total, value);
                }

                script_platforms[i].Reset(total, true);
                ++uncompleted_platforms;
            }
            else // Platform not in use
            {
                script_platforms[i].Reset(0, false);
            }
        }

        // Spawn cubes, so they spawn all at once
        foreach (Behavior_Digit.Operator op in digit_ops)
        {
            script_spawner.SpawnOp(op);
        }
        foreach (int value in digit_values)
        {
            script_spawner.SpawnValue(value);
        }

        // Update variables
        start_time = Time.time;
    }