def do_edig(self, session, line): c = C(session) if not line: session.push(tpl.EDIG_ERR1) else: self.splitarg = line.split(' ', 1) self.exists = Select.getExitsInRoom(session.is_in) try: self.flat = c.flatten(self.exists) if self.splitarg[1] in self.flat: session.push(tpl.EDIG_ERR2) else: self.count = Insert.addRoom(self.splitarg[0]) Insert.addLink(session.is_in, self.count, self.splitarg[1]) Insert.addLink(self.count, session.is_in, self.twoway[self.splitarg[1]]) session.push(tpl.EDIG % self.splitarg[1]) except: session.push(tpl.EDIG_ERR1)
def do_look(self, session, line): c = C(session) if not line: # Looking at the room itself self.descr = Select.getRoomDesc(session.is_in) session.push("%s \r\n" % (c.CYAN(self.descr[0]),)) # short desc session.push("%s \r\n" % self.descr[1].replace('\\n', '\r\n')) # long desc # Players in the room. self.look_com = Select.getPlayersInRoom(session.is_in) session.push("%s %s" % (session.BOLD, session.RED)) for i in self.look_com: if str(i[0].capitalize()) == session.pname: pass else: session.push("%s \r\n" % str(i[0].capitalize())) session.push("%s" % session.RESET) #Get list of NPCs in the room. self.mobonfloor = Select.getNpcsInRoom(session.is_in) #Get list of objects in the room. self.objonfloor = Select.getItemsInRoom(session.is_in, session.p_id) if self.mobonfloor != []: for i in self.mobonfloor: session.push("%s%s%s %s\r\n" % (session.BOLD, session.MAGENTA, str(i[0]), session.RESET)) if self.objonfloor != []: comma = False for i in self.objonfloor: if not i[0] or not i[1]: pass elif i[2] > 1: if comma: session.push(", ") session.push("%s%s%s%s (%s)" % (session.BOLD,session.GREEN,str(i[0]),session.RESET,str(i[2]))) comma = True else: if comma: session.push(", ") session.push("%s%s%s%s" % (session.BOLD,session.GREEN,str(i[0]),session.RESET)) comma = True session.push("\r\n") # List exits session.push("%s%s%s " % (session.BOLD,session.CYAN, tpl.EXITS)) self.tmpgoto = Select.getExitsInRoom(session.is_in) for i in self.tmpgoto: session.push("%s " % i[0]) session.push("%s\r\n" % session.RESET) else: # Looking at something specific #Check if looked-at player is there self.peeps = Select.getPlayerDesc(session.is_in, line.lower()) #Get list of items possessed by player or in the room self.obj = Select.getItemsOnPlayer(session.p_id, line.lower()) #Get list of items in the room self.obj2 = Select.getItemsInRoom(session.is_in, session.p_id, line.lower()) #Get list of mobs in the room. self.mobonfloor = Select.getNpcsInRoom(session.is_in, line.lower()) try: if self.peeps: #Looking at a player session.push("%s \r\n" % self.peeps[1].replace('\\n', '\r\n')) #Effects.RoomBroadcast(session, session.is_in,tpl.LOOKS_AT + line) elif self.obj: #An object in your inventory session.push("%s \r\n" % self.obj[1].replace('\\n', '\r\n')) elif self.obj2: #An object on the floor session.push("%s \r\n" % self.obj2[1].replace('\\n', '\r\n')) elif self.mobonfloor: #A mob/NPC self.mobinv = Select.getItemsOnNpc(self.mobonfloor[0]) self.descri = self.mobonfloor[2].split('\\n') # Print the description for i in self.descri: session.push(str(i) + "\r\n") if self.mobinv: # Print the mob's inventory self.stuff = [] self.stufa = {} session.push(c.B_WHITE(tpl.INVENTORY)) for i in self.mobinv: self.item_name = i[2] self.stuff.append(item_name) self.stufa[self.item_name] = self.stuff.count(self.item_name) for i in self.stufa: if self.stufa[i] > 1: session.push("%s (%s)\r\n" % (str(i), str(self.stufa[i]))) else: session.push("%s \r\n" % str(i)) else: pass else: session.push(tpl.CANT_SEE) except: session.push(tpl.CANT_SEE)