// Update is called once per frame
    void FixedUpdate()
    {
        switch (cs)
        {
        case CardState.WAITING:
            break;

        case CardState.MOVING:
            Vector3 newDir = (desiredPos - root.position).normalized;
            if (Mathf.Cos(Vector3.Angle(dir, newDir)) < 0)
            {
                root.position = desiredPos;
                moving        = false;
                cs            = CardState.WAITING;
                dir           = Vector2.zero;
                gridRef.CardEndMovement();
            }
            else
            {
                root.position += dir * speed;
            }

            break;

        case CardState.BLOQUED:
            break;

        case CardState.DYING:
            //if(!b) Destroy(this.transform.parent.gameObject);
            break;
        }
    }