// Update is called once per frame
    void Update()
    {
        if (paused.value)
        {
            return;
        }

        coll2D.enabled = (moveToPosition.GetDashPercent() > invulFramesForDash);

        transform.position = new Vector3(
            Mathf.Clamp(transform.position.x, startX - Constants.cameraBorderWidth, startX + Constants.cameraBorderWidth),
            Mathf.Clamp(transform.position.y, startY - Constants.cameraBorderHeight, startY + Constants.cameraBorderHeight),
            0);
        mouseInfo.playerPosition = transform.position;
        Vector3 pos = screenCamera.ScreenToWorldPoint(Input.mousePosition);

        mouseInfo.mousePosition = pos;
        mouseInfo.clicked       = false;

        if (moveToPosition.dashing)
        {
            return;
        }

        float deltaTime = (canBeSlowed.value && !slowLeftSide.value) ? (Time.deltaTime * slowAmount.value) : Time.deltaTime;

        if (Input.GetMouseButtonDown(0))
        {
            mouseInfo.holding      = true;
            mouseInfo.holdDuration = 0;
            mouseInfo.position1    = screenCamera.ScreenToWorldPoint(Input.mousePosition);
        }

        if (mouseInfo.holding)
        {
            mouseInfo.setPosition2(screenCamera.ScreenToWorldPoint(Input.mousePosition));
            mouseInfo.holdDuration += deltaTime;
        }

        if (Input.GetMouseButtonUp(0))
        {
            mouseInfo.holding = false;
            mouseInfo.setPosition2(pos);
            mouseInfo.clicked = true;
        }

        weapon.Activate(mouseInfo);

        if (Input.GetMouseButtonDown(1) && !mouseInfo.holding)
        {
            if (Input.GetKey(KeyCode.LeftShift))
            {
                moveToPosition.moveToPosition = pos;
                moveToPosition.startDash();
            }
            else if (!moveToPosition.dashing)
            {
                moveToPosition.moveToPosition = pos;
            }
        }

        UpdateAnimation(deltaTime);
    }
    // Update is called once per frame
    void Update()
    {
        if (paused.value)
        {
            return;
        }

        coll2D.enabled = (moveToPosition.GetDashPercent() > invulFramesForDash);

        transform.position = new Vector3(
            Mathf.Clamp(transform.position.x, startX - Constants.CAMERA_BORDER_WIDTH_ANDROID, startX + Constants.CAMERA_BORDER_WIDTH_ANDROID),
            Mathf.Clamp(transform.position.y, startY - Constants.CAMERA_BORDER_HEIGHT_ANDROID, startY + Constants.CAMERA_BORDER_HEIGHT_ANDROID),
            0);
        mouseInfo.playerPosition = transform.position;
        Vector3 pos = screenCamera.ScreenToWorldPoint(Input.mousePosition);

        mouseInfo.mousePosition = pos;
        mouseInfo.clicked       = false;

        if (moveToPosition.dashing)
        {
            return;
        }

        float deltaTime = (useSlowTime.value && !slowSoldierSide.value) ? (Time.deltaTime * slowAmount.value) : Time.deltaTime;

        if (Input.GetMouseButtonDown(0))
        {
            mouseInfo.allowClick   = true;
            mouseInfo.holding      = true;
            mouseInfo.holdDuration = 0;
            mouseInfo.position1    = screenCamera.ScreenToWorldPoint(Input.mousePosition);
        }

        if (mouseInfo.holding)
        {
            mouseInfo.setPosition2(screenCamera.ScreenToWorldPoint(Input.mousePosition));
            mouseInfo.holdDuration += deltaTime;
        }

        if (Input.GetMouseButtonUp(0))
        {
            if (mouseInfo.allowClick)
            {
                mouseInfo.clicked = true;
            }
            mouseInfo.holding      = false;
            mouseInfo.holdDuration = 0;
            mouseInfo.setPosition2(pos);
        }

        weapon.Activate(mouseInfo);

        if (Input.GetMouseButton(1) && !mouseInfo.holding)
        {
            if (Input.GetMouseButtonDown(1) && Input.GetKey(KeyCode.LeftShift))
            {
                moveToPosition.moveToPosition = pos;
                moveToPosition.StartDash();
            }
            else if (!moveToPosition.dashing)
            {
                moveToPosition.moveToPosition = pos;
            }
        }

        // Stops the android if it's currently charging
        if (mouseInfo.holdDuration > delayUntilCharging)
        {
            moveToPosition.moveToPosition = transform.position;
            mouseInfo.allowClick          = false;
        }

        UpdateAnimation(deltaTime);
    }