def reset(self):
        # reset exits back to default state
        for exit in self.exits.values():
            if exit:
                exit.reset()
        # reset spawns
        self.clean_spawns()
        room_id = '%s,%s' % (self.id, self.area.name)
        for item in self.items:
            if item.has_type('container'):
                if item.spawn_id and (item.spawn_id.startswith(room_id)):
                    self.item_purge(item)
        present_obj = [item.spawn_id for item in self.items if item.spawn_id]
        present_obj.extend([npc.spawn_id for npc in self.npcs if npc.spawn_id])
        for spawn in self.spawns.values():
            if spawn.spawn_id not in present_obj and \
               (spawn.get_spawn_point() == 'in room'):
                if spawn.spawn_type == 'npc':
                    npc = spawn.spawn()
                    npc.location = self
                    self.npcs.append(npc)
                else:
                    self.items.append(spawn.spawn())
    
#************** Character Management **************
Reset (or respawn) all of the items and npc's that are on this 
dataset/ETHPy150Open shinymud/ShinyMUD/src/shinymud/models/room.py/Room.reset