Как реализовать восстановление здоровья в оффлайне?

Как можно реализовать пополнение здоровья(def) героя на 10% за одну минуту. Просто я думал что нужно запрос на изменения кол-ва отправлять на сервер. Но если юзер не онлайн, то как это сделать? mern stack

const { Schema } = mongoose;

const HeroSchema = new Schema({
  login: {
    type: String,
    required: true,
    unique: true,
  },
  password: {
    type: String,
    required: true,
    unique: false,
    set: rawPassword => bcrypt.hashSync(rawPassword, SALT_FACTOR)
  },
  level: {
    type: Number,
    default: 1,
  },
  power: {
    type: Number,
    default: 1,
  },
  attack: {
    minDmg: {
      type: Number,
      default: 1,
    },
    maxDmg: {
      type: Number,
      default: 15,
    }
  },
  def: {
    type: Number,
    default: 60,
  },
  
    }
  },
  

});

const HeroModel = mongoose.model('heroes', HeroSchema);

module.exports = HeroModel;


Ответы (1 шт):

Автор решения: Qwertiy
  1. Сохранить последнее время когда был онлайн.
  2. При очередном подключении вычесть из текущего времени время последней активности.
  3. Пересчитать показатели на основе прошедшего времени.
→ Ссылка