def cmdLook(ch, cmd, args): """ Look at something, in something or the current room. """ argL = utils.splitArgs(args) room = ch.getPlace() if argL == []: _lookAround(ch) event = Event(EVN_LOOK, ch) event.target = None room.handleEvent(event) return 1 if argL[0] == "in": if len(argL) < 2: ch.writeToSelf("Look in what?\r\n") else: obj = ch.findCarriedObject(argL[1]) if not obj: obj = ch.findObject(argL[1]) if obj: descr = obj.getDescriptionForLookIn() if not descr: ch.writeToSelf("You can't look inside that.\r\n") else: ch.writeToSelf(descr+"\r\n") ch.writeToOthers(ch.getName()+" looks in " +obj.getName()+".\r\n") else: ch.writeToSelf("You don't see that here.\r\n") else: if argL[0] == "at": i = 1 if len(argL) < 2: ch.writeToSelf("Look at what?\r\n") return 1 else: i = 0 found = 0 # character if argL[i][-2:] == "'s": name = argL[i][:-2] else: name = argL[i] target = ch.findVictim(name) if target: _lookAtCharacter(ch, target, argL[i+1:]) found = 1 # room description if not found: descr = room.getDescriptionForLookAt(argL[i]) if descr: ch.writeToSelf(descr+"\r\n") found = 1 # worn objects if not found: r = ch.findDescriptionForWornObject(argL[i]) if r: target, descr = r ch.writeToSelf(descr+"\r\n") found = 1 # carried objects if not found: r = ch.findDescriptionForCarriedObject(argL[i]) if r: target, descr = r ch.writeToSelf(descr+"\r\n") found = 1 # objects in room if not found: r = room.findDescriptionForContainedObject(argL[i]) if r: target, descr = r ch.writeToSelf(descr+"\r\n") found = 1 if not found: # worn objects target = ch.findWornObject(argL[i]) # carried objects if not target: target = ch.findCarriedObject(argL[i]) # room objects if not target: target = ch.findObject(argL[i]) if target: ch.writeToSelf("You don't see anything special about it.\r\n") found = 1 if found: event = Event(EVN_LOOK, ch) event.target = target room.handleEvent(event) else: ch.writeToSelf("You don't see that here.\r\n") return 1