diff --git a/packages/client/src/entity/character/character.ts b/packages/client/src/entity/character/character.ts index f663e401b3..927c9f69aa 100644 --- a/packages/client/src/entity/character/character.ts +++ b/packages/client/src/entity/character/character.ts @@ -249,7 +249,7 @@ export default class Character extends Entity { public follow(entity: Entity, forced = false): void { // Prevents follow spam which will cause entities to visually vibrate. - if (Date.now() - this.lastFollow < 200) return; + if (Date.now() - this.lastFollow < 300) return; // Prevent following when entity is stunned or dead. if (this.dead || this.isStunned()) return; diff --git a/packages/client/src/entity/entity.ts b/packages/client/src/entity/entity.ts index de724e97aa..14b278bf1c 100644 --- a/packages/client/src/entity/entity.ts +++ b/packages/client/src/entity/entity.ts @@ -192,6 +192,8 @@ export default abstract class Entity { */ public setSprite(sprite: Sprite): void { + if (this.teleporting) return; + // Load the sprite if it hasn't been loaded yet. if (!sprite.loaded) { sprite.load(); diff --git a/packages/client/src/menu/equipments.ts b/packages/client/src/menu/equipments.ts index f13137cb71..f269a03a73 100644 --- a/packages/client/src/menu/equipments.ts +++ b/packages/client/src/menu/equipments.ts @@ -300,7 +300,7 @@ export default class Equipments extends Menu { { sprite } = this.player; // Ensure we have a valid sprite and context before drawing anything. - if (!context || !sprite) return; + if (!context || !sprite || sprite.key === 'death') return; if (flip) frame = 'right'; diff --git a/packages/client/src/network/connection.ts b/packages/client/src/network/connection.ts index 7f229ea928..c100cdb8f5 100644 --- a/packages/client/src/network/connection.ts +++ b/packages/client/src/network/connection.ts @@ -475,12 +475,12 @@ export default class Connection { // Copy the entity's sprite temporarily. let entitySprite = entity.sprite.key; - // Prevent rendering of the sword. - entity.teleporting = true; - // Set the entity's sprite to the death animation sprite. entity.setSprite(this.sprites.getDeath()); + // Prevent rendering of the sword. + entity.teleporting = true; + entity.animateDeath(() => { this.game.teleport(entity, info.x, info.y);