I fixed the armor bug. The assignment in the constructor was in fact creating local variables instead of initializing the private members. Fixed more spelling: defense, not defence.