You should make sure this doesn't overflow. If someone calls the method without checking the resources, and they're at 0, you'll either get an exception, or you suddenly have 4 billion resources (depending on the compiler). Just call CanBeGathered in here as well to be sure.