Most of the room-specific logic in MobManager#removeMob should act on the mob's source room (as set by Room#spawnNpc), instead of its current room. Otherwise, the mob is never removed from its source room's spawnedNpcs set, (and possibly the relevant Area's npc set) if it is removed while in any room other than its source.
Most of the room-specific logic in MobManager#removeMob should act on the mob's source room (as set by Room#spawnNpc), instead of its current room. Otherwise, the mob is never removed from its source room's
spawnedNpcs
set, (and possibly the relevant Area'snpc
set) if it is removed while in any room other than its source.