def load_rooms(self): """Load rooms""" #If requested room is not loaded load it for roomfile in get_rooms_files_list(): roompath=os.path.join(mudlib.rootpath, "data/rooms/%s" % roomfile) #try load data try:data=yaml.load(open(roompath)) except Exception, e: print "EE Cannot load room from %s" % roompath print e continue #create room newroom=Room() newroom.uuid=data["uuid"] newroom.name=data["name"] newroom.desc=data["desc"] newroom.exits=data["exits"] #restore warps newroom.searchitems=data["searchitems"] #Load monsters for monster in data["monsters"]: newmon=globalmonsterloader.get_monster(monster) newroom.monsters.append(newmon) newroom.possible_monsters.append(monster) #for place in places: # # [X,Y,roomUuid] # newroom.places[place[1]][place[0]]=place[2] self.rooms[newroom.uuid]=newroom
def spawn_new_monsters(room): """Spawn new monsters in location""" if len(room.monsters) > 4: return if len(room.possible_monsters) == 0: return # spawn to max monsters for i in range(5 - len(room.monsters)): randommonsterid = random.choice(room.possible_monsters) newmonster = globalmonsterloader.get_monster(randommonsterid) room.monsters.append(newmonster)