Причина, по которой enemyHealth
и userHealth
остаются одинаковыми для каждого события attack
, заключается в том, что эти переменные объявляются в самом событии attack
, поэтому их значения всегда будут одинаковыми каждый раз, когда attack
происходит событие.
Один из способов решения вашей проблемы - просто переместить объявление и инициализацию enemyHealth
и userHealth
за пределы вашего обработчика событий attack
, например:
// Declare these variables outside of the attach handler so that their updated
// values are retained between attack events
var userHealth = 100;
var enemyHealth = 100;
socket.on('attack', () => {
var userDamage = 6;
var enemyDamage = 6;
// Remove the variable declarations from inside the attack event
// var userHealth = 100;
// var enemyHealth = 100;
var userDmg = userDamage;
var enemyDmg = enemyDamage;
userHealth -= enemyDmg;
enemyHealth -= userDmg;
// Now this value goes down each time the attach event occours
console.log(enemyHealth);
});