Best Between Battle Script Ever -- formerly AutoMCD

@shazbot: You can't have it both ways. Actually, it was never part of the original design for BBB to switch back to your original familiar. That was something extra that mafia did and I rather liked. But avoiding familiar equipment-swapping errors requires stamping out that extra mafia functionality.

Another reason I don't want to mess any more with this is that I'm considering trying to code the "optimal familiar flowcharts" linked to elsewhere (at work and don't have time to hunt them down) into BBB eventually, which would replace this spleen-items-only functionality and would obviate this "switching back" problem. But that's a pretty big chunk to bite off, in addition to opening the door to a slew of people complaining about playstyle issues and the familiar selection logic. The good news is that as always, the complaints would lead to optimized, versatile code. The bad news is that I would have to read lots of complaints. The default for that would be off, just like the current spleen familiar swapping.

Thanks for the thorough response. What about having the option to switch to familiar X after you get your spleen items? I like to think that would be fairly straightforward.

Also, in a similar topic to the spleen items, I did notice that spleen_item takes precedence over the need for a gravy fairy to adventure in spooky gravy barrow. That is, if I had the elemental fairy equipped it will switch to the spleen familiar even though I need it for the location. This is probably pushing it for the scope of your script, as this can easily be mitigated by disabling the spleen familiar option, but I'd figure I'd point it out. Or, having BBB equip an elemental familiar for spooky gravy barrow may be a worthwhile new feature. Just throwing it out there.
 
Last edited by a moderator:
The script should probably always use an evil eye if you have one (in the same way that it autosells the [dense] meat stacks).
 
Well, someone may want to create a collection... but yeah, maybe if my_location() == $location[defiled nook], it should use an evil eye between battles. Only one... if you've finished it off, that way it won't keep burning your collection, but useful if someone pulls a stack during a SC ascension. Once mafia can track evilness remaining in zones, it could burn down to 0 and stop.
 
What does it mean to make a "collection" of a Quest Item? You can't display it and it disappears when you ascend.

It's going to be at least 8 days before I have chance to look at "evilness" and decide what tracking, if any, KoLmafia needs to do...
 
Ah, hadn't paid too much attention when I posted the data whether it was a quest item or just a consumable... since you can use it outside the quest, I'd thought you could keep them around. If they're quest items and can't be displayed, as it appears they are, then yet... by all means,
Code:
if (item_amount($item[evil eye]) > 0) use($item_amount($item[evil eye]), $item[evil eye]);
 
Yay, an easy one for once. They're not even craftable into anything, so you should basically just use any and all of them you have no matter what. I am just about to hit this vamped-again quest today (after rollover, which is right in the middle of my today), so I'll let you know how it goes and post the update later today.
 
BeeCore!
Code:
if (my_path()=="Bees Hate You" && item_amount($item[handful of honey]) > 2 && have_effect($effect[float like a butterfly])==0) 	{ 
	create(1,$item[honeypot]); 
	use(1,$item[honeypot]); 
	}
 
I don't think that's necessarily something you always want to do... You might want the gear, you might want the food/booze, you might be >100 adventures away from the end of Level 12 quest and be trying for actually looking to not burn 45-60 turns waiting to get another honeypot for the lair entrance...
 
So far I have never NOT wanted to fight wandering bees. I have a honeypot closeted waiting for the gates. Beyond that, I'm perfectly happy accumulating more handfuls of honey towards making the outfit.
 
My logic is that wandering bees are just dead +turncounts. Hadn't really though much about making sure you have one for the Gate. I could closet one to keep for the Gate instead of using it (like if my_level =>11), then once I finish the first 3 side quests, I should be able to use it and still have the effect when I get to Level 13. *ponders*

The existence of the outfit is another matter. I'm not one of those completionist/outfit/tattoo loving people though. ;)
 
Considering each handful of honey sells for 17k in the mall at the moment, meat-wise it makes sense to mallsell them even if you aren't a completionist...
 
How about something like this:
Code:
if (my_path()=="Bees Hate You") {
    boolean save_honey = false;
    if (item_amount($item[handful of honey]) > 2 ) {
	if (closet_amount($item[honeypot]) < 1 ) {
	    create(1, $item[honeypot]);
	    put_closet(1,$item[honeypot]); 
	}
	else if (!save_honey && have_effect($effect[float like a butterfly])==0) {
	    create(1, $item[honeypot])
	    use(1,$item[honeypot]);
        }
    }
}
 
I want to fight the bees just 'cause they're a new monster and they're neat! Eventual meat from selling handfuls of honey in the mall is just a bonus.

Eventually though I'll probably be adding a variant of this to my own betweenBattleMood.
 
Scaling wandering monsters can be pretty useful in-run in my view so the only time I don't want them to appear is when I'm heavily buffed for something specific such as the filthworms. Also the pies are handy for feeding a GGG.
 
So, I decided my HC character wants to go ahead and fight the bees. So to make this a zlib variable, I added this in the setvar section.
Code:
setvar("bbb_save_honey", true); // False closets a honeypot for the Gate then uses the rest to banish bees

Then I took out the other boolean declaration I had and changed the else statement to:
Code:
else if (!to_boolean(vars["bbb_save_honey"]) && have_effect($effect[float like a butterfly])==0) {

Did I do that correctly?
 
I don't think you need a zlib var, really. You will need a spare honeypot anyway, why not simply check for get_property( "kingLiberated" ).to_boolean() instead?
 
Now that I have an astral shirt that I'm going to wear for the entire run, I don't want BBB to waste an adventure getting a bronze breastplate. It would be nice if that choiceadv were configurable.
 
There seems to be an issue with the Wombat sign and BBB. BBB keeps insisting I "Need 1 more detuned radio to continue. MCD: Unavailable".

However, mafia has it right and knows that the Wombat gets to the gnomads:

> ash knoll_available()

Returned: false

> ash gnomads_available()

Returned: true

> ash canadia_available()

Returned: false
 
(EDIT: I, not you) need to update ZLib.

And I should probably update BBB for Bcore. How about if it makes/uses honeypots only during your run if mall_price(honeypot) < 2*valueOfAdventure? People who are focusing on low turncount should set a high value for valueOfAdventure anyway... and probably not a lot of them would even use auto-adventuring during their run.

@vert: I agree to the extent that not getting the breastplate should be possible. I'll make it so that after getting the breastplate, it disables getting it. It won't set the choiceadv to get the breastplate unless breastplates are a goal.
 
Last edited:
Back
Top