void RemoveItemFromDesiredList(GameObject item)
    {
        ItemProperties properties = item.GetComponent <ItemProperties>();

        if (properties == null || !desiredItems.Contains(item))
        {
            return;
        }

        desiredItems.Remove(item);
        movement.RemoveTarget(item);

        properties.RemoveListener(ItemWasCollected);
    }