public bool CanAttackRanged(Destructible destruct)
    {
        if (destruct == null)
        {
            return(false);
        }

        ItemData equipped = GetEquippedItem(EquipSlot.Hand);

        if (equipped != null && equipped.ranged && destruct.CanAttackRanged())
        {
            ItemData projectile = GetFirstItemInGroup(equipped.projectile_group);
            if (projectile != null && HasItem(projectile))
            {
                return(true);
            }
        }
        return(false);
    }