public void UpdateRetract()
    {
        if (tentaclePieces.Count == 0)
        {
            return;
        }
        if (Time.time - lastUpdate < TENTACLE_GROWTH_SPEED)
        {
            return;
        }
        lastUpdate = Time.time;

        TentaclePiece last = tentaclePieces.GetLastObject();

        tentaclePieces.Remove(last);
        last.RemoveFromContainer();

        UpdateTentacle();
    }
    public void UpdateDrag()
    {
        if (Time.time - lastUpdate < TENTACLE_GROWTH_SPEED)
        {
            return;
        }
        lastUpdate = Time.time;

        float tip_x, tip_y;

        if (tentaclePieces.Count == 0)
        {
            tip_x = lastX;
            tip_y = depthY;
        }
        else
        {
            tip_x = tentaclePieces.GetLastObject().tipX;
            tip_y = tentaclePieces.GetLastObject().tipY;
        }

        //might also want to add a time component so we don't insta-grow
        Vector2 delta = new Vector2(lastX - tip_x, lastY - tip_y);

        if (delta.magnitude > BONE_LENGTH)
        {
            if (tentaclePieces.Count < MAX_TENTACLE_PIECES)
            {
                //y-positive, invert the y
                float angle = Mathf.Atan2(delta.y * -1, delta.x) * RXMath.RTOD;

                if (tentaclePieces.Count > 1)
                {
                    float angle_diff = angle - tentaclePieces[tentaclePieces.Count - 2].rotation;
                    while (angle_diff > 180f)
                    {
                        angle_diff -= 360f;
                    }
                    while (angle_diff < -180f)
                    {
                        angle_diff += 360f;
                    }

                    if (Mathf.Abs(angle_diff) > TENTACLE_MAX_TURN_ANGLE)
                    {
                        float dampening = (1 - Mathf.Abs(TENTACLE_MAX_TURN_ANGLE / angle_diff)) * angle_diff;
                        angle -= dampening;
                    }
                }

                TentaclePiece bone = new TentaclePiece(angle);
                tentaclePieces.Add(bone);
                AddChild(bone);

                bone.x = tip_x;
                bone.y = tip_y;

                UpdateTentacle();
            }
        }
    }