コード例 #1
0
    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
コード例 #2
0
    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
コード例 #3
0
    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())
コード例 #4
0
    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))
コード例 #5
0
    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))
コード例 #6
0
    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
コード例 #7
0
    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())
コード例 #8
0
    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