Is there a reason for the extra lines of code and the redundant member variable that will end up with the same value as public class variable receives_battery?
This is not quite right. 197 != receives battery. v1's send 197 (only.) The logic there is actually necessary (and John and I argued about it for a while.)
Is there a reason for the extra lines of code and the redundant member variable that will end up with the same value as public class variable receives_battery?