¿Por qué esto no funciona? no se que mas probar?
if (p.health < 100){ setTimeout(function() { p.health + 1; },2000);solo está calculando p.health + 1 pero no volviendo a ponerlo en
health También le falta un paréntesis de cierre } en la instrucción if . Aquí está el código correcto.
if (p.health < 100){ setTimeout(function() { p.health = p.health + 1; },2000); }