From 1522fa1709a632586d2c4b03e8f1b72f0dfd5ef4 Mon Sep 17 00:00:00 2001 From: Felix Date: Tue, 13 Sep 2016 18:12:58 +0200 Subject: [PATCH] Update - Avoid usage of setTimeout in hot functions --- src/models/Pokemon/WildPokemon/index.js | 1 + src/models/World/SpawnPoint/index.js | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/models/Pokemon/WildPokemon/index.js b/src/models/Pokemon/WildPokemon/index.js index 4677867..e77d914 100644 --- a/src/models/Pokemon/WildPokemon/index.js +++ b/src/models/Pokemon/WildPokemon/index.js @@ -22,6 +22,7 @@ export default class WildPokemon extends Pokemon { this.encounterId = this.getEncounterId(); + this.despawnIn = -1; this.isDespawned = false; this.minExpire = obj.minExpire; diff --git a/src/models/World/SpawnPoint/index.js b/src/models/World/SpawnPoint/index.js index abb0001..1958deb 100644 --- a/src/models/World/SpawnPoint/index.js +++ b/src/models/World/SpawnPoint/index.js @@ -60,9 +60,12 @@ export default class SpawnPoint extends MapObject { this.activeSpawns.map((pkmn) => { if (pkmn.isExpired() && !pkmn.isDespawned) { pkmn.isDespawned = true; - setTimeout(() => { + pkmn.despawnIn = +new Date() + ((MAP_REFRESH_RATE * 1e3) + pkmn.expiration); + } + else if (pkmn.isDespawned) { + if (+new Date() >= pkmn.despawnIn) { this.despawnPkmn(pkmn); - }, (MAP_REFRESH_RATE * 1e3) * 2); + } } }); }