Harvest – A highly customisable farming script

No problem, thanks for the compliment :).

Aha! It seems I misunderstood how mafia tracks side-quest completion. Just to make sure I've got it sorted, could you paste the following into the gCLI and tell me what it prints out? get sidequestFarmCompleted

As for auto-oding, Harvest will figure out if you need that and do it all for you (or at least it should ;)).
 
> get sidequestFarmCompleted
none

This may be because when I completed the Farm sidequest I wasn't using KoLmafia, so it might not have the right value set.
 
Yep, that'll cause you some problems ;). Even if Harvest had been working properly it wouldn't have known that you could fight 10 ducks rather than 5.

I'm assuming that the correct value for that setting would be "hippy", could someone who knows confirm that?

Once I know for sure what the value should be I'll upload a fixed version of Harvest and give you something to paste into the gCLI to fix that setting.
 
Heh, so I helped you find a bug by reporting something that ultimately would have been my own problem anyway? Nice. :D
 
Yep, that'll cause you some problems ;). Even if Harvest had been working properly it wouldn't have known that you could fight 10 ducks rather than 5.

You could just always hunt 10 ducks. It won't hurt anything as long as you capture the return value from adventure() when it fails at the 6th.
 
True true, but I figured I might as well make use of mafia's properties. Mind you, it would make a difference in this situation. I'll think about it.
 
If you do take Bale's suggestion, it'll actually need to try to hunt 15 ducks, since that's how many are at the farm if you finish it as a frat.
 
As for auto-oding, Harvest will figure out if you need that and do it all for you (or at least it should ;)).

Seems like there might be a problem with that, too. I just had this happen:

Code:
...
Overdrinking
Maximizing (1st time may take a while)...
64 combinations checked, best score 0.0 (FAIL)
Maximizing...
64 combinations checked, best score 0.0 (FAIL)
Shrugging off your buff...
Fat Leon's Phat Loot Lyric removed.
Refreshing stash contents...
Stash list retrieved.
Internal checkpoint created.
Skipping favorites.
Starting EatDrink.ash (version 3.1.5).
Consuming up to 15 food, 19 booze, and 15 spleen and then finishing off with the stiffest drink we can find.
...

Shrugs off Fat Leon's, but doesn't appear to make any attempt to Ode me before passing off to EatDrink.ash.
 
Actually, that's the way it should work... EatDrink should automatically cast ode after acquiring booze, so-as not to waste turns of ode crafting food/booze if you don't have free crafting...
 
Actually, that's the way it should work... EatDrink should automatically cast ode after acquiring booze, so-as not to waste turns of ode crafting food/booze if you don't have free crafting...

But it does not try to acquire the buff from a buffbot which was the point here. If you don't have the skill permed then eatdrink makes no attempt to get the buff by alternate means.
 
OK, hopefully the version attached to this post will fix both those issues. I'd appreciate it if you could set Verbosity to 3 from the relay script before you test it out and then let me know how it runs. If it still doesn't work at least I'll have a better idea of what to fix.

Regarding duck hunting: You may already know, but you can set that setting manually by typing this into the gCLI set sidequestFarmCompleted=hippy After that you can do a quick check to make sure Harvest's worked out how many ducks it should be fighting by putting this in the gCLI: ash import<harvest.ash>; num_ducks();

Regarding Ode: I've moved a few things around and have hopefully fixed that bug. I haven't had time to do proper testing, but hopefully everything works as it should.
 

Attachments

True, true... suppose that Harvest should check if the character has it permed (and at least 50 max mp) before handing control over.
 
It doesn't check if it has it permed, but it does check if you have the skill (fine distinction, but an important one). The issue was, I think, that Harvest would work out that a character needed to get ode from a buffbot, shrug a buff to make room accordingly then call request_buff(). But request_buff() was designed for getting buffs like polka of plenty (of which you ideally want a number of turns equal to your remaining adventures), not buffs like ode of which you only want a limited number of turns. Anyway, I've overloaded request_buff() to make it possible to define a number of turns to get rather than letting it figure it out on its own. There were a couple of other things, but they were of a similar nature. Now... Let's see if it actually works!
 
Last edited:
Code:
> ash import<harvest.ash>; num_ducks()
Returned: 10

Looks like that's working well with that update above. I've set Harvest's verbosity to 3 and will not interfere at all with its operation tomorrow to see if everything works as expected.
 
Buffy's the first bot Harvest requests buffs from (because of the way the alphabet works ;)), and it'll give as many turns as you ask for (until you exceed your daily MP limit). But yeah, the other bots tend to give fewer turns, but that's not a problem as Harvest will just move on to another bot if it needs more turns. That said, I can't imagine anyone needing more than 20 turns of ode at a time.

EDIT: To clarify: The greatest number of turns of Ode Harvest will ever try to get is 19 (your inebriety_limit()).
 
Last edited:
But if you craft supercocks w/o Inigo or Bartenders, that's 2 turns of ode gone per cocktail. 4 of those will burn down 8 turns of ode... If you're using fancy cooking, each of those will decrement your ode as well... As such, if you're making your own fancy food and drinks w/o helpers and buying ode at the start, figure on needing 30 turns or more fairly often.
 
I'd probably check if they have access to crafting fancy food or drinks and if so, increase turns of ode by 5 for each (pastamastery and advanced cocktailcrafting) if they don't have mall access on (or it isn't currently available). If they've allowed access to the mall, it will almost certainly be cheaper to buy something than anything that can be made, so it won't use up any turns. If they have a chef or bartender, or Inigo currently active at the time when you're requesting the buff, then you don't need to add the 5 or 10.

Or, if you want to do it fast... yeah, 30 should be good. It's overkill for 95% of people, since if you're actively farming in aftercore you'll probably allow at least a bit of mall access, but it will avoid the "WTF?! Why did you only get me 10 rounds of Ode? Don't you know I have 19 liver?!" confused people.
 
Back
Top