My personal Meat farming script

fronobulax

Developer
Staff member
Now if you really need a project that is a bit of work for very little gain...

My unascended user of VMF cannot cast Ode so needs a buffbot to do so. That works fine but takes a few seconds. Later, because of the fax settings, VMF opens chat to get a fax. In theory if VMF knew it was going to open chat anyway and knows it is not going to close chat, it could have saved 15(?) seconds by opening chat earlier in the flow when casting Ode.

:)
 

Veracity

Developer
Staff member
I just planted a Bone Garden.
Stay tuned.
Today was Day 6:

Code:
Your Bone Garden has a Skulldozer in it.
Fight! Fight! Fight!

Harvesting your garden
Encounter: skulldozer
Round 0: Veracity wins initiative!
Round 1: Veracity executes a macro!
...
Round 8: Veracity wins the fight!
...
Your familiar gains a pound: Tuddeus, the 2 lb. Stooper
You acquire an item: skeleton (20)
You acquire an item: skeleton bone (10)
After Battle: You gain 62 Strengthliness
After Battle: You gain 63 Magicalness
After Battle: You gain 191 Cheek
So this works. It used my CCS as the battle strategy. I also notice that VMF harvests the garden at the end of the day, so my Stooper was at my side. I don't think I care; neither the Meat Familiar nor the Item Familiar would be a better choice.

"svn update" will get you revision 233 of Garden Harvester.
Then put "skulldozer" into VGH.GardenCrops instead of "skeleton".

Code:
[color=green]> get VGH.GardenCrops[/color]

15 cornucopias|3 beer labels|frost flower|peppermint sprout|pumpkin|skulldozer|tall grass
 

Veracity

Developer
Staff member
Code:
Harvesting your garden
Encounter: skulldozer
Since this encounter did not say "This combat did not cost a turn", I'd like to see that log as:

Code:
Harvesting your garden

[4539] Bone Garden
Encounter: skulldozer
Wish I'd saved a DEBUG log of the encounter. I imagine I can still code that up, but won't be able to test it for a week.
 

Veracity

Developer
Staff member
Revision 19729 of KoLmafia attempts to log "[XXX] Bone Garden" as the adventure location for the skulldozer, using the mechanism I created for logging combat with the God Lobster.

If you see the skulldozer before I do, tell me how it worked.
 

fronobulax

Developer
Staff member
Continued from https://kolmafia.us/showthread.php?...e-Garden-quot-as-the-loca&p=155470#post155470

It seems that the fighting the Skulldozer in the garden requires an adventure. Since VMF processes the garden at the end, with zero adventures left, the fight does not actually occur. Not sure what I would ask for/recommend. If the garden is processed at the beginning then there is the (trivial) potential to burn one turn of an effect that I set up before starting VMF. If you inspect the VGH parameters in VMF, in order to decide whether VMF needs to save a turn it seems like you have coupled the scripts in a perhaps undesirable way.
 

Veracity

Developer
Staff member
Code:
    // Perform daily tasks that don't require available turns and/or
    // can't be done while drunk
...
    // Drink nightcap
    drink_nightcap();

    // Do things that require available turns and can be done while drunk.
    // *** Since drinking a nightcap is optional, do somewhere else.
...

    // Harvest garden before breakfast
    harvest_garden();
In spite of that comment, harvesting the garden is the only thing that "requires turns and can be done while drunk".

VMF has no idea why kind of garden you have or how far it has progressed, so looking at VGH parameters would not help.
A reason to harvest at the end of the day is to allow for using Poke-Gro fertilizer that you gained during the day - although if we harvest at the beginning, it will use the previous day's fertilizers then.

I'll figure out where to harvest the garden.
 

fronobulax

Developer
Staff member
VMF has no idea why kind of garden you have or how far it has progressed, so looking at VGH parameters would not help.

OK. I was thinking that the presence of "skulldozer" in VGH parameters would be sufficient but if if there is some other kind of garden VMF would finish with one turn. Nevermind.

A difference between your use case and mine may be that VMF is the last thing I run before I ascend and it seems easier not to overdrink than do so and ascend with unspent adventures.
 

Veracity

Developer
Staff member
A difference between your use case and mine may be that VMF is the last thing I run before I ascend and it seems easier not to overdrink than do so and ascend with unspent adventures.
Neither of us ascends with unspent turns. I just spend mine with the Beach Comb.

I also run VMF just before I ascend - but also over the course of multiple days in aftercore if I am done ascending - as is the case right now, until the next Challenge Path is underway - and it's easier for me to not set and reset my "nightcap" VMF property.

Lazy, I guess. That's why I wrote VMF; no thinking required, once I have it set up. :)
 

fronobulax

Developer
Staff member
Neither of us ascends with unspent turns. I just spend mine with the Beach Comb.

I also run VMF just before I ascend - but also over the course of multiple days in aftercore if I am done ascending - as is the case right now, until the next Challenge Path is underway - and it's easier for me to not set and reset my "nightcap" VMF property.

Lazy, I guess. That's why I wrote VMF; no thinking required, once I have it set up. :)

The Ascending character doesn't have a comb. I am still doing Standard, I understand that it is set up to do things the way you want and you are just sharing and I very much appreciate that.
 

Veracity

Developer
Staff member
Revision 234 updates VGH to not try to fight a skulldozer if you have no turns and VMF to harvest the garden early, after you have turns but before you have buffed up.
It also makes the Knob Goblin Embezzler the default for VMF.FaxMonster.
 

Magus_Prime

Well-known member
Feature request: if a Can of Rain-Doh is in inventory then use it prior to attempting to fight copies.

I, frequently forget to do so in the first aftercore run of VMF.
 

Veracity

Developer
Staff member
Huh. It looks to me like it does that during script validation:

Code:
boolean have_black_box = ( available_amount( RAIN_DOH_BLACK_BOX ) > 0 );
boolean have_rain_doh = ( available_amount( CAN_OF_RAIN_DOH ) > 0 );

    // Check availablity of Rain-Doh
    if ( use_rain_doh ) {
	if ( get_property( "_raindohCopiesMade" ).to_int() >= 5 ) {
	    use_rain_doh = false;
	} else if ( item_amount( BOX_FULL_OF_MONSTER ) > 0 ) {
	    print( "You have a " + BOX_FULL_OF_MONSTER + "; skipping Rain-Doh." );
	    use_rain_doh = false;
	} else if ( have_black_box ) {
	    retrieve_item( 1, RAIN_DOH_BLACK_BOX );
	} else if ( have_rain_doh ) {
	    retrieve_item( 1, CAN_OF_RAIN_DOH );
	    use( 1, CAN_OF_RAIN_DOH );
	} else {
	    use_rain_doh = false;
	}
    }
Now, I have the following in my KingLiberated script:

Code:
    if ( item_amount( $item[ can of Rain-Doh ] ) > 0 &&
	 item_amount( $item[ empty Rain-Doh can ] ) == 0) {
	use( 1, $item[ can of Rain-Doh ] );
    }
so I automatically use it as soon as I free the king. (That script pulls it, first.)

I'll see if I can figure out why VMF is not doing it for you; the code looks like it's doing exactly what you want.
 

Magus_Prime

Well-known member
I took another look at the session log and discovered that the script was trying to change to an outfit that had the Rain-Dph green lantern in the off-hand slot. This occurred after visiting the Mad Tea Party.

Sorry for the false lead. Would it be possible to add it to the start of VMF or would it be better all around if I added it to a KingLiberated script?

Thank you for your work on this.
 

Veracity

Developer
Staff member
Wait. You are not using Rain-doh Black Box to copy, but you are using another item in an outfit?
We only copy if you want to fax in a monster. I suppose if you can’t fax you still might want to do that. As you do. :)

You can still say you want to use Rain-doh and it will use the can at validation - the first thing it does when you run the script.
 

Magus_Prime

Well-known member
I have both spooky putty and Rain-Doh and use them both to copy since using them both gets me an extra copy. I also have an outfit that uses the Rain-Doh Green Lantern. VMF is set to fax in a monster, copy, and fight it.

I get the feeling that I'm not understanding something.

Prior to VMF attempting to fax and copy the script tried to change to an outfit that used the Rain-Doh Green Lantern and, since the Can of Rain-Doh was unopened the outfit switch failed. That aborted automation.

Should I have expected VMF to open the Can of Rain-Doh when I first run VMF? Is there some way to tell VMF what to use to copy that I don't think I'm seeing?
 
Last edited:

Veracity

Developer
Staff member
Oh! Never mind. All that "retrieval" stuff is in the function that faxes a monster, not in the validation.
I'll fix that.
 

fronobulax

Developer
Staff member
Just FYI because this is just reporting exactly what we both expected :)

Asked VMF to fax an Embezzler for the chatless character. VMF (or something it called) emitted a message about needing chat and continued.

Manually requested and then used a fax with another character and then ran VMF (which was also configured to fax an embezzler). VMF observed that it could not fax and continued.

Thank you.
 
Top