def do(self, caller, thing): r = "%s's variables:\n" % thing keys = thing.__dict__.keys() keys.sort() for key in keys: if type(thing.__dict__[key]) == DictType: text = " %s:\n" % key for key2, value2 in thing.__dict__[key].items(): text += " %s: %s\n" % (key2, value2) else: text = " %s: %s\n" % (key, thing.__dict__[key]) r += text r += "\n%s's methods:\n" % thing # Inheritance says we have to look in class and # base classes; order is not important. # returns all methods, not just of TextControl class classes = [thing.__class__] all_methods = [] for aclass in self._get_classes(thing): if aclass.__bases__: r += " class: %s\n" % aclass my_methods = [] for m in dir(aclass): if m[:1] != "_": if m not in all_methods: my_methods.append(m) all_methods.append(m) if my_methods: my_methods.sort() r += PrettyOutput().columnize(my_methods, indent=4) self.sendEvent(evt.TextMessage(r), caller)
def do(self, caller, where, what): if what in where: r = "True" else: r = "False" self.sendEvent(evt.TextMessage(r), caller)
def on_look(self, event): r = self.shortDescription if len(self.gear) > 0: r = r + "\n%s carries:\n" % self for slot in self.gear: r = r + "%s\n" % slot self.sendEvent(evt.TextMessage(r), event.viewer)
def on_look(self, event): if len(self.text) > 0: r = self.text else: r = "empty" response = evt.TextMessage(r) self.sendEvent(response, event.sender)
def sendEvent(self, event, sendTo=None): if self.isDestroyed: if self.control: msg = evt.TextMessage("you are dead") evt.EventClient.sendEvent(self, msg, self.control) else: if sendTo == None: if self.location == None: return sendTo = self.location evt.EventClient.sendEvent(self, event, sendTo)
def open_state(self, isOpen): if isOpen == self.isOpen: return mc.RoomExit.open_state(self, isOpen) if self.isNoisey and self.isOpen: self.sendEvent(evt.TextMessage("ding!"), self.location.channel) if self.isOpen: self.emote(text="slides open.") else: self.emote(text="slides closed.")
def on_look(self, event): r = self.shortDescription if len(self) > 0: if self.isOpen: r = r + "\nContains:\n" for thing in self: r = r + "\t%s\n" % thing else: r = r + "\nclosed." else: r = "\nis empty" self.sendEvent(evt.TextMessage(r), event.viewer)
def on_look(self, event): response = evt.TextMessage(self.shortDescription) self.sendEvent(response, event.viewer)
def on_look(self, event): contents = self.list_contents(event.viewer) text = "%s\n\n%s" % (self.longDescription, contents) print "sent: text" self.sendEvent(evt.TextMessage(text), event.viewer)
def on_look(self, event): panel = self.generate_panel() contents = self.list_contents(event.viewer) text = "%s\n\n%s\n%s" % (self.longDescription, panel, contents) self.sendEvent(evt.TextMessage(text), event.viewer)
def arrive(self, floor): self.onFloor = floor self.exitDoor.exitsTo = self.floors[floor] self.exitDoor.pair(self.doors[floor]) self.sendEvent(evt.TextMessage("arrived %s." % floor), self.channel) self.openDoor()