Example #1
0
    def execute(self, p, a):
        """

        :param p: Player object
        :param a: Adventure object
        :return: A list of responses
        """
        # Validate
        sourceItem = adv.get_item_from_list(p.equipped, self.source)
        targetItem = adv.get_item_from_list(p.area.items, self.target)
        if targetItem is None:
            targetItem = adv.get_item_from_list(p.inventory, self.source)
            if targetItem is None:
                targetItem = adv.get_item_from_list(p.equipped, self.source)

        # Perform
        response = []
        if targetItem is None or sourceItem is None:
            response.append((self.source, "Cannot use " + self.source + " on " + self.target))
        else:
            if not targetItem.visible:
                response.append((self.source, "I do not see " + self.target))
            else:
                response.append((self.source, self.participle + " " + self.source))
                for action in sourceItem.useActions:
                    response.extend(action.perform(proposedTargetItem=targetItem))
        return response
Example #2
0
    def execute(self, p, a):
        """

        :param p: Player object
        :param a: Adventure object
        :return: A list of responses
        """
        response = [(self.source, self.target + " not storable")]
        targetItem = adv.get_item_from_list(p.equipped, self.target)
        if targetItem is not None:
            response = p.store(targetItem)
            response.append((self.source, self.participle + " " + self.target))
        return response
Example #3
0
    def execute(self, p, a):
        """

        :param p: Player object
        :param a: Adventure object
        :return: A list of responses
        """
        response = [(self.source, "Not able to equip " + self.target + ".")]
        targetItem = adv.get_item_from_list(p.inventory, self.target)
        if targetItem is not None:
            p.equip(targetItem.name)
            response = [(self.source, self.participle + " " + self.target)]
        return response
Example #4
0
    def execute(self, p, a):
        """

        :param p: Player object
        :param a: Adventure object
        :return: A list of responses
        """
        # Validate
        targetItem = adv.get_item_from_list(p.area.items, self.target)

        # Perform
        if targetItem is not None and targetItem.description.upper() == self.target.upper() and targetItem.visible:
            response = p.equip(targetItem)
        else:
            response = [(self.source, "Unable to take " + self.target)]
        return response
Example #5
0
    def execute(self, p, a):
        """

        :param p: Player object
        :param a: Adventure object
        :return: A list of responses
        """
        response = []
        targetItem = adv.get_item_from_list(p.equipped, self.target)

        if targetItem is not None:
            response.extend(x.perform(proposedTargetItem=targetItem) for x in p.area.props(adv.AREA_PRE_DROP_ACTIONS))
            response.extend(
                (x.perform(proposedTargetItem=targetItem) for x in targetItem.props(adv.ITEM_PRE_DROP_ACTIONS)))
            response.extend(action.Drop(targetItem).perform(proposedTargetItem=targetItem, player=p))
            response.extend(
                (x.perform(proposedTargetItem=targetItem) for x in targetItem.props(adv.ITEM_PRE_DROP_ACTIONS)))
            response.extend(x.perform(proposedTargetItem=targetItem) for x in p.area.props(adv.AREA_PRE_DROP_ACTIONS))

        return response
Example #6
0
    def perform(self, **kwargs):
        """
        Perform the toggle of the Lock property which must be not open
        :param kwargs:
        PROPOSED_TARGET_ITEM - The item on which the action is attempted
        CURRENT_AREA - The place where the item will be dropped
        :return: A list of responses
        """
        player = kwargs[adv.PLAYER]
        proposedTargetItem = kwargs[adv.PROPOSED_TARGET_ITEM]
        response = []
        if not self._is_complete():
            if proposedTargetItem is not None and self.targetItem == proposedTargetItem \
                    and player is not None and adv.get_item_from_list(player.equipped, proposedTargetItem) is not None:
                player.equipped.remove(proposedTargetItem)
                player.area.items.append(proposedTargetItem)
                response.append((self.source, proposedTargetItem.description +
                                 " has been dropped in the current room."))
                self._complete()

        return response
Example #7
0
    def execute(self, p, a):
        """

        :param p: Player object
        :param a: Adventure object
        :return: A list of responses
        """
        response = []
        targetItem = adv.get_item_from_list(p.area.items, self.target)
        if targetItem is not None and targetItem.can(adv.ITEM_OPEN) and not targetItem.check(adv.ITEM_OPEN):
            if targetItem.can(adv.ITEM_LOCK):
                if not targetItem.check(adv.ITEM_LOCK):
                    targetItem.props[adv.ITEM_OPEN] = True
                    response.append((self.source, self.target + " is now open"))
                else:
                    response.append((self.source, self.target + " is locked and cannot be opened"))
            else:
                targetItem.props[adv.ITEM_OPEN] = True
                response.append((self.source, self.target + " is now open"))
        else:
            response.append((self.source, "Cannot open " + self.target))
        return response