// Start is called before the first frame update
 private void Awake()
 {
     if (instance == null)
     {
         instance = this;
     }
 }
Exemple #2
0
    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);
            }
        }
    }