My personal Meat farming script

Veracity

Developer
Staff member
I added this to SVN! I was simply uploading this as example code, but, if people are actually interested in running it and getting my improvements and bug fixes, this will make it easier.

Code:
svn checkout https://svn.code.sf.net/p/veracity0/code/meat-farm

I should probably work out the specification for publishing it in the Script Manager...
 

Veracity

Developer
Staff member
Something like this? I don't know what valid values for "category" are.

Code:
{
  "repo": "https://svn.code.sf.net/p/veracity0/code/meat-farm/", 
  "author": "Veracity", 
  "name": "Veracity's Meat Farming Script", 
  "forumThread": "http://kolmafia.us/showthread.php?20933-My-personal-Meat-farming-script", 
  "shortDesc": "Farm Meat and perform daily tasks", 
  "category": "what?", 
  "longDesc": "Farm Meat and do daily tasks enabled by numerous IOTMS."
 }
 

Bale

Minion
The category for scripts which spend turns is "adventure". I added it to the Script Manager.
 
VeracityMeatFarmTotalMeat => 341427
VeracityMeatFarmTotalTurns => 106
Net income = 341,210 Meat in 103 turns. Meat/Adventure = 3,312
Cumulative income = 341,427 Meat in 106 turns. Meat/Adventure = 3,221

Nice - but it choked when I hadn't opened Madness Bakery and it wanted to adventure there. Had to escape out. Also, you might note in the intro material that a few named outfits are required. But I don't want to criticize because I certainly couldn't put this script together. ;)
 

Veracity

Developer
Staff member
Yeah, I say this in the Intro material:

Code:
// ****** Requirements *******
...
// One or more farming outfits (configurable)
But it would certainly be useful to explain exactly what those are.

Also:

Code:
// Protonic Accelerator Pack
// --> Will bust ghosts 
// --> Must have all paranormal locations unlocked
// --> Must have either innate Cold Resistance +5 or a Slimesuit
I call out the requirement, but it should not do the wrong thing if you have not, actually, met the requirements. :p

Thanks for the report. I'll deal with both of your comments, by and by.
 

Veracity

Developer
Staff member
Considering that this is an aftercore script. I may just make it force Madness Bakery, the Skeleton Store, and the Overgrown Lot to be open, if not already.
 

Veracity

Developer
Staff member
Revision 2 in SVN has this:

Use Time-Spinner to recall delicious meals.
Open Overgrown Lot, Skeleton Store, and Madness Bakery if you have a protonic accelerator pack and they are not open yet.
If you don't have a Slimesuit, use eXtreme Cold-Weather Gear on Icy Peak
If you don't have a Hobo Monkey, use a Leprechaun
Specifically list expected preconfigured outfits in intro material

Both of my characters who have a protonic accelerator have a Slimesuit (and one has passive +5 Cold Resistance), but I thought I'd soften that requirement a bit. Perhaps just require an outfit named "Icy Peak" if you don't have enough passive resistance.

And, I suppose I could improve configuring your farming familiar. It strikes me that if I wanted to allow this to be used for item farming, that is one of many things I'd want to think about. I'm toying with that idea, but I have no personal interest in focusing on the mall, like item farmers need to do; I'd rather just buy what I want with the 1.25 million Meat a day I'm currently pulling in with this script. But it would be an interesting project!
 

Veracity

Developer
Staff member
It uses the Tot - with the l'il pirate costume - as its first choice.
Hobo Monkey is second choice.
Leprechaun is last choice.
 
Got a script parsing error on line 1 had to remove line 1 also got stuck on choice adventure :

Encounter: Lending a Hand (and a Foot)
Manual control requested for choice #1065
choice 3: Okay, I'll be right back.
choice 6: Goodbye.
 

Veracity

Developer
Staff member
Darn that typo. Version 3 fixes it.
And Version 4 might fix the choice adventure.
Thanks for testing!
 
Can I request adding the outfits that are needed? I know i had to add velvet, meat drop, barf mountain and deep machine tunnels. Also add enhancing for meat if you have the source terminal
 

Veracity

Developer
Staff member
What do you mean "adding the outfits"? I have a comment up front saying you need those particular ones, but it is up to you what you put in them.

meat.enh from the Source terminal is a good idea.
 

Veracity

Developer
Staff member
Since I seem to have real users, which makes this more than just demonstration code: yes, it would be desirable to keep configuration in per-user settings, rather than having to edit the script.

I understand that zlib provides such a facility, but I am loath to import an entire library of stuff I don't want to use in order to get one feature - especially a library that auto-updates itself. Opinions vary, but for MY code, that's a non-starter. I also don't particularly like having to look up configuration variables in a map - although that seems like a coding decision. For example, in CounterChecker, I see:

Code:
setvar("BaleCC_SrInHC", FALSE);
...
		if(!can_interact() && vars["BaleCC_SrInHC"] != "true") {
and on and on. I would probably do something like this:

Code:
setvar("BaleCC_SrInHC", FALSE);
...
boolean sr_in_hc = vars["BaleCC_SrInHC"].to_boolean();
...
		if(!can_interact() && !sr_in_hc) {
On the other hand, I can think of other models for dealing with this problem that I like better. How many hundreds of times have users here been told "you cannot customize this script by editing it; you must edit your file of variables"? I consider that to be a flaw.

Consider this model:

The script defines a bunch of settings with default values.
settings + defaults are clearly shown near the top of the script.
The user can edit the defaults to taste.

The actual configuration variables used within the file are taken from user setting - or, if they are not set, from the default.

Therefore, the only settings actually saved for each user are those that differ from the default. Now, once you've changed a setting, changing the default will not affect your customization - which is zlib-like - but you can use standard get/set in the gCLI to change things, rather than a special command (or relay script).

That was just on-the-fly brainstorming. I'll think more on this problem.
 

Veracity

Developer
Staff member
Revision 5 gets meat.enh (configurable) from your Source Terminal, as many times per day as are available to you.
 

Veracity

Developer
Staff member
As opposed to making them earlier? Because it doesn't chew them (although it could), so it doesn't need to make them early, and that is a daily operation which doesn't require turns and can be done overdrunk, so, why not at the end of the day?

Or are you questioning why it makes them at all? Because I want to get three of them per day. :)
 
Top