def get_description(self, exclude_actor=None): """ Retrieves a description of the room. :returns: A description of the room, including its exits, any actors in the room and any items in it. """ room_desc = language.sentence(super(Room, self).get_description()) exits_desc = language.list(self.exits.keys()) if len(self.exits) > 0 else 0 # {}\nExits: {} desc = '{}\nUtgångar: {}'.format(room_desc, exits_desc) actors = self.get_entities(Actor) if exclude_actor in actors: actors.remove(exclude_actor) if len(actors) > 0: # {} are here. desc += '\n' + language.sentence('{} är här.', language.list(actors)) items = self.get_entities(Item) if len(items) > 0: desc += '\n' + language.sentence('{}', language.list(items)) return desc
def get_description(self, exclude_actor=None): """ Retrieves a description of the room. :returns: A description of the room, including its exits, any actors in the room and any items in it. """ room_desc = language.sentence(super(Room, self).get_description()) exits_desc = language.list( self.exits.keys()) if len(self.exits) > 0 else 0 # {}\nExits: {} desc = '{}\nUtgångar: {}'.format(room_desc, exits_desc) actors = self.get_entities(Actor) if exclude_actor in actors: actors.remove(exclude_actor) if len(actors) > 0: # {} are here. desc += '\n' + language.sentence('{} är här.', language.list(actors)) items = self.get_entities(Item) if len(items) > 0: desc += '\n' + language.sentence('{}', language.list(items)) return desc
def look(self, player, args): if not player.container: return if len(args) == 0: player.text(player.container.get_description(exclude_actor=player)) return look_inside = False # at if len(args) > 1 and args[0] == 'på': args = args[1:] # in elif len(args) > 1 and args[0] == 'i': args = args[1:] look_inside = True text = ' '.join(args) entity = player.find_best_match(text) if not entity: entity = player.container.find_best_match(text) if look_inside: if not isinstance(entity, Container): entity = None elif not entity.is_open: # {} is closed! player.text(language.sentence('{} är stängd!', entity.get_description(indefinite=False))) return if not entity: # Look at/in what? player.text('Titta {} vad?'.format('i' if look_inside else 'på')) return if look_inside: if len(entity.entities) == 0: # {} is empty. player.text(language.sentence('{} är tom.', entity.get_description(indefinite=False))) return s = language.list([x.get_description() for x in entity.entities]) # {} contains: {} player.text(language.sentence('{} innehåller: {}', entity.get_description(indefinite=False), s)) return if not isinstance(entity, Detail): player.text(language.sentence(entity.get_description())) if isinstance(entity, Actor): player.text(entity.get_long_description(observer=player)) else: player.text(entity.get_long_description())
def inventory(self, player, args): if player.inventory.is_empty(): # You don't have anything. player.text('Du har ingenting.') return inventory = player.inventory.entities items = language.list([x.get_description() for x in inventory]) # You have: {} player.text('Du har: {}'.format(items))
def get_long_description(self, observer=None): if not observer: observer = self desc = super(Actor, self).get_long_description() if len(self.wearables) > 0: wearable_descs = [x.get_description() for x in self.wearables] # {} is wearing {}. desc += '\n' + language.sentence( language.pronouns(observer, self, self, 'har', language.list(wearable_descs), 'på', self)) return desc
def look(self, player, args): if not player.container: return if len(args) == 0: player.text(player.container.get_description(exclude_actor=player)) return look_inside = False # at if len(args) > 1 and args[0] == 'på': args = args[1:] # in elif len(args) > 1 and args[0] == 'i': args = args[1:] look_inside = True text = ' '.join(args) entity = player.find_best_match(text) if not entity: entity = player.container.find_best_match(text) if look_inside: if not isinstance(entity, Container): entity = None elif not entity.is_open: # {} is closed! player.text( language.sentence( '{} är stängd!', entity.get_description(indefinite=False))) return if not entity: # Look at/in what? player.text('Titta {} vad?'.format('i' if look_inside else 'på')) return if look_inside: if len(entity.entities) == 0: # {} is empty. player.text( language.sentence( '{} är tom.', entity.get_description(indefinite=False))) return s = language.list([x.get_description() for x in entity.entities]) # {} contains: {} player.text( language.sentence('{} innehåller: {}', entity.get_description(indefinite=False), s)) return if not isinstance(entity, Detail): player.text(language.sentence(entity.get_description())) if isinstance(entity, Actor): player.text(entity.get_long_description(observer=player)) else: player.text(entity.get_long_description())
def get_long_description(self, observer=None): if not observer: observer = self desc = super(Actor, self).get_long_description() if len(self.wearables) > 0: wearable_descs = [x.get_description() for x in self.wearables] # {} is wearing {}. desc += '\n' + language.sentence(language.pronouns(observer, self, self, 'har', language.list(wearable_descs), 'på', self)) return desc