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, ""); } }
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(); } } }
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(); } } }
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(); } } }
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; }