// Start is called before the first frame update private void Awake() { if (instance == null) { instance = this; } }
void Update() { if (gameManager.timeSlow == true) { trailRenderer.time = 40f; } else { trailRenderer.time = 0.2f; } bound_x = bound_x_box.transform.position.x; //USE MOUSESTATE TO DETERMINE WHAT TO DO if (mouseState == MouseState.Controllable) { //Test for colliders Collider2D[] colliders = Physics2D.OverlapCircleAll(cursor_visual.transform.position + new Vector3(-0.06f, 0f, 0), radius); if (colliders.Length > 0) { if (colliders[0].gameObject.layer == LayerMask.NameToLayer("Enemy") && gameManager.timeSlow == false) { colliders[0].gameObject.GetComponent <enemycontroller>().KillSquarePassive(); healthBar.hp_change(-1); } else if (colliders[0].gameObject.layer == LayerMask.NameToLayer("Enemy") && gameManager.timeSlow == true) { //colliders[0].gameObject.GetComponent<enemycontroller>().KillSquare(transform.position); } else if (colliders[0].gameObject.layer == LayerMask.NameToLayer("Armor")) { cameraController.screen_shake(ss_values.x, ss_values.y); } else if (colliders[0].gameObject.layer == LayerMask.NameToLayer("Wall")) { healthBar.hp_change(-1); Destroy(colliders[0].gameObject); } /* * else if (colliders[0].gameObject.layer ==LayerMask.NameToLayer("Powerup")) * { * GameObject powerup = colliders[0].gameObject; * powerup.GetComponent<powerUpInterface>().powerUp(); * } */ } //increase yaw (xaxis) by the mouse's X pos and multiply that by the mouse sentitivity x_pos += Input.GetAxis("Mouse X") * mouse_sensitivity_x * Time.deltaTime; //* dirValue; y_pos += Input.GetAxis("Mouse Y") * mouse_sensitivity_y * Time.deltaTime; //Clamp mouse position to bounds of the screen x_pos = Mathf.Clamp(x_pos, -bound_x, bound_x); y_pos = Mathf.Clamp(y_pos, -bound_y, bound_y); //Move the cursor to the new location Vector3 start_vec = cursor_visual.transform.position; // + new Vector3(-0.1f, 0.01f, 0); Vector3 end_vec = new Vector3(x_pos, y_pos, 0); // + new Vector3(-0.1f, 0.01f, 0); RaycastHit2D hit = Physics2D.Raycast(start_vec, end_vec, 0.3f); if (hit.collider != null) { LayerMask layer = hit.collider.gameObject.layer; if (layer == LayerMask.NameToLayer("Enemy")) { if (gameManager.timeSlow == true) { cameraController.screen_shake(ss_values.x, ss_values.y); GameObject enemy = hit.collider.gameObject; enemycontroller enemyController = enemy.GetComponent <enemycontroller>(); enemyController.cut.updateCorners(); Vector3 v3 = (end_vec - start_vec); List <Vector2> clips = clippingScript.clips(cursor_visual.transform.position - v3.normalized, cursor_visual.transform.position + (v3).normalized * 10f, hit.collider.gameObject.GetComponent <PolygonCollider2D>()); if (clips.Count > 1) { enemyController.KillSquare(clips[0], clips[1]); } cursor_visual.transform.position = new Vector3(x_pos, y_pos, 0); } } else if (layer == LayerMask.NameToLayer("Armor")) { cursor_visual.transform.position = hit.point; start_point = hit.point; x_pos = hit.point.x; y_pos = hit.point.y; Vector3 hit2_point = hit.point; end_point = (hit2_point - hit.collider.transform.position).normalized * distFactor + hit2_point; time = 0; setState(MouseState.Uncontrollable); } else { cursor_visual.transform.position = new Vector3(x_pos, y_pos, 0); } /* * else if (layer == LayerMask.NameToLayer("Chunk")) * { * cursor_visual.transform.position = new Vector3(x_pos, y_pos, 0); * GameObject enemy = hit.collider.gameObject; * Cut cut = enemy.GetComponent<Cut>(); * cut.updateCorners(); * Vector3 v3 = (end_vec - start_vec); * List<Vector2> clips = clippingScript.clips(cursor_visual.transform.position - v3.normalized, cursor_visual.transform.position + (v3).normalized * 10f, hit.collider.gameObject.GetComponent<PolygonCollider2D>()); * cut.inMaterial = pixelMaterial; * if (clips.Count > 1 && cut.canBeCut == true) * { * cut.mouseEnter = clips[0]; * cut.mouseExit = clips[1]; * cut.cutGameObject(); * } * } */ } else { cursor_visual.transform.position = new Vector3(x_pos, y_pos, 0); } //VELOCITY velocity = (cursor_visual.transform.position - saved_point) / Time.deltaTime; saved_point = cursor_visual.transform.position; } else if (mouseState == MouseState.Uncontrollable) { time += Time.deltaTime * timeFactor; if (time > 1) { setState(MouseState.Controllable); } else { Vector3 temp = Vector3.Lerp(start_point, end_point, animationCurve.Evaluate(time)); x_pos = temp.x; y_pos = temp.y; x_pos = Mathf.Clamp(x_pos, -bound_x, bound_x); y_pos = Mathf.Clamp(y_pos, -bound_y, bound_y); cursor_visual.transform.position = new Vector3(x_pos, y_pos, 0); } } }