Beispiel #1
0
    def _got_skill(self, result):
        self.target = tinkering_target(result.value)
        if self.target is None:
            self._failure(NoTinkeringTarget())
            return

        d = UseAndTarget(self._client, self.tool, self.ingot).deferred
        d.addCallbacks(self._used, self._failure)
Beispiel #2
0
    def _melt(self, ore):
        forge = reachable_forge_target(self._map, self._client.world)
        if forge is None:
            self._failure(NoSuchEntity('No forge'))
            return

        d = UseAndTarget(self._client, ore, forge).deferred
        d.addCallbacks(self._melted, self._failure)
Beispiel #3
0
    def _begin_chop(self):
        player = self._client.world.player
        if player.mass_remaining() < 40:
            self._success()
            return

        d = UseAndTarget(self._client, self.axe, self.tree).deferred
        d.addCallbacks(self._chopped, self._target_failure)
Beispiel #4
0
    def _begin_chop(self):
        player = self._client.world.player
        if player.mass_remaining() < 40:
            self._success()
            return

        d = UseAndTarget(self._client, self.axe, self.tree).deferred
        d.addCallbacks(self._chopped, self._target_failure)
Beispiel #5
0
    def _got_skill(self, result):
        self.target = tinkering_target(result.value)
        if self.target is None:
            self._failure(NoTinkeringTarget())
            return

        d = UseAndTarget(self._client, self.tool, self.ingot).deferred
        d.addCallbacks(self._used, self._failure)
Beispiel #6
0
    def _cook_single_steak(self):
        world = self._client.world
        steak = world.find_reachable_item(lambda x: x.item_id == ITEM_RAW_FISH_STEAK and x.amount == 1)
        if steak is None:
            self._unstack()
            return

        d = UseAndTarget(self._client, steak, self.oven).deferred
        d.addCallbacks(self._cooked, self._failure)
Beispiel #7
0
    def _next(self):
        client = self._client
        world = client.world
        target = world.find_player_item(lambda x: x.item_id in ITEMS_TAILORING_PRODUCTS)
        if target is None:
            self._success()
            return

        d = UseAndTarget(client, self.scissors, target).deferred
        d.addCallbacks(self._cutted, self._failure)
Beispiel #8
0
    def _cook_single_steak(self):
        world = self._client.world
        steak = world.find_reachable_item(
            lambda x: x.item_id == ITEM_RAW_FISH_STEAK and x.amount == 1)
        if steak is None:
            self._unstack()
            return

        d = UseAndTarget(self._client, steak, self.oven).deferred
        d.addCallbacks(self._cooked, self._failure)
Beispiel #9
0
    def _next(self):
        client = self._client
        world = client.world
        target = world.find_player_item(lambda x: x.item_id in ITEMS_TAILORING_PRODUCTS)
        if target is None:
            self._success()
            return

        d = UseAndTarget(client, self.scissors, target).deferred
        d.addCallbacks(self._cutted, self._failure)
Beispiel #10
0
    def __init__(self, client, choice):
        Engine.__init__(self, client)

        tool = client.world.find_reachable_item(lambda x: x.item_id in ITEMS_FLETCHING_TOOLS)
        if tool is None:
            self._failure(NoSuchEntity('No fletching tool'))
            return

        self.choice = choice

        wood = client.world.find_item_in(client.world.backpack(), lambda x: x.item_id in (ITEMS_LOGS + ITEMS_BOARDS))
        if wood is None:
            self._failure(NoSuchEntity('No wood'))
            self._failure()
            return

        d = UseAndTarget(client, tool, wood)
        d.addCallbacks(self._target_sent, self._failure)
Beispiel #11
0
    def _more(self, *args):
        self.__tries -= 1
        if self.__tries < 0:
            self._success()
            return

        if self.__failed:
            self._failure(self.__failed)
            return

        ores = find_two_same_hue(
            filter(is_ore, self._client.world.items_in(self.container)))
        if ores is None:
            self._success()
            return

        log.msg("MergeOre")
        d = UseAndTarget(self._client, ores[0], ores[1]).deferred
        d.addCallbacks(self._merged, self._failure)
Beispiel #12
0
    def __init__(self, client, choice):
        Engine.__init__(self, client)

        tool = client.world.find_reachable_item(
            lambda x: x.item_id in ITEMS_FLETCHING_TOOLS)
        if tool is None:
            self._failure(NoSuchEntity('No fletching tool'))
            return

        self.choice = choice

        wood = client.world.find_item_in(
            client.world.backpack(), lambda x: x.item_id in
            (ITEMS_LOGS + ITEMS_BOARDS))
        if wood is None:
            self._failure(NoSuchEntity('No wood'))
            self._failure()
            return

        d = UseAndTarget(client, tool, wood)
        d.addCallbacks(self._target_sent, self._failure)
Beispiel #13
0
    def _next(self):
        client = self._client

        sheep = find_sheep(client.world)
        if len(sheep) == 0:
            self._success()
            return

        sheep = find_reachable_sheep(client.world)
        if sheep is None:
            d = HerdSheep(client).deferred
            d.addCallbacks(self._herded, self._failure)
            return

        dagger = find_dagger(client.world)
        if dagger is None:
            print "No dagger"
            self._failure()
            return

        d = UseAndTarget(client, dagger, sheep).deferred
        d.addCallbacks(self._harvested, self._failure)
Beispiel #14
0
 def _found_wool(self, wool):
     d = UseAndTarget(self._client, wool, self.spinningwheel).deferred
     d.addCallbacks(self._done, self._failure)
Beispiel #15
0
 def _found_yarn(self, yarn):
     d = UseAndTarget(self._client, yarn, self.loom).deferred
     d.addCallbacks(self._done, self._failure)
Beispiel #16
0
 def _found_bandage(self, bandage):
     d = UseAndTarget(self._client, bandage, self.target).deferred
     d.addCallbacks(self._healed, self._failure)
Beispiel #17
0
 def _found_tool(self, tool):
     d = UseAndTarget(self._client, tool, self.mountain).deferred
     d.addCallbacks(self._mined, self._target_failure)
Beispiel #18
0
 def _make_boards(self):
     d = UseAndTarget(self._client, self.axe, self.logs).deferred
     d.addCallbacks(self._done, self._failure)
Beispiel #19
0
 def _found_yarn(self, yarn):
     d = UseAndTarget(self._client, yarn, self.loom).deferred
     d.addCallbacks(self._done, self._failure)
Beispiel #20
0
 def _found_wool(self, wool):
     d = UseAndTarget(self._client, wool, self.spinningwheel).deferred
     d.addCallbacks(self._done, self._failure)
Beispiel #21
0
 def _found_scissors(self, result):
     d = UseAndTarget(self._client, result, self.cloth).deferred
     d.addCallbacks(self._cutted, self._failure)
Beispiel #22
0
 def _found_scissors(self, result):
     d = UseAndTarget(self._client, result, self.cloth).deferred
     d.addCallbacks(self._cutted, self._failure)
Beispiel #23
0
 def _found_bandage(self, bandage):
     d = UseAndTarget(self._client, bandage, self.target).deferred
     d.addCallbacks(self._healed, self._failure)