limit charges on pickup to available charges

fix #4391, picking more charges than available is handled as a normal pickup of the whole stack