CounterChecker: Wormwood, Semi-rares, Dance Cards and more

CunningGabe

New member
Just downloaded this script yesterday and started using it. It's great, though I have one suggestion: distilled fortified wines should be one of the choices. Since you get 3 at a time, that semi-rare adventure is worth about 18K meat at current mall prices.
 

slyz

Developer
I added distilled fortified wine, tasty tarts and scented massage oils to the semi-rares to be checked.
 

Attachments

  • CounterChecker.ash
    18.6 KB · Views: 27

slyz

Developer
I only now tried to use the dance card feature, and it turned out I don't have either BaleCC_SrInHC, BaleCC_useDanceCards or BaleCC_ImprovePoolSkills in my vars file.

You should move lines 409-412 where setvar() is used for those to line 40, before checking for the settings in the vars map.
 

Bale

Minion
OH! Good point. I'll post an update right now including that as well as your recent fixes for distilled fortified wine, tasty tarts and scented massage oils. Thanks.

Note: requires latest version of zlib because of a new, but rather minor feature. (Reports current sale price of the semi-rare that it choses.)
 

Banana Lord

Member
Haha, thanks! I'll have a look over that. On another note, wow, Zarqon's really been busy!

Oh and I'm not entirely sure of how the steel organ part works, does it only adventure at the Gate once all of Azazel's items've been found? Does it do the pencil-necked demon trick?
 

Bale

Minion
Oh and I'm not entirely sure of how the steel organ part works, does it only adventure at the Gate once all of Azazel's items've been found? Does it do the pencil-necked demon trick?

Well, if you have a counter set (you probably do not unless you add it yourself or have it in your between battle script like I do), then it will just stop automation and tell you about it. It does nothing automatically regarding that.
 

suinoq

New member
Just came across this script, so forgive me if this feedback isn't on point. I've only just starting dabbling my delicate little toesies in the scripting pond. Anyhow:

1. Jar of Squeeze doesn't seem to be included in the set of SRs to check prices on.

2. Also, I like to drink Milk before eating cookies.

3. Sometimes I purposefully delay eating my cookie until the next semirare window is upon me, and then decide whether or not the cookie will be necessary. Usually I do this when messing around in Hobopolis, if I know that I'll be adventuring in either the PLD or BB for the entirety of (or at least the beginning of) the upcoming SR window.
 

Bale

Minion
1. Good point. Perhaps I should add it.

2. Well, I suppose 1000 meat is not necessarily too much to spend for 1 adventure. I could add that as a preference.

3. I could also add automatic cookie eating as a preference for you to turn off. Is that what you want?
 

suinoq

New member
1&2. Yay!

3. I'm having difficulty seeing the best way forward for this issue. The power of the script, to me at least, is that it permits auto-adventuring without having to stop and deal with counters along the way. No mucking around with the details, no need to think too hard.

On the other hand, when I'm skipping cookies it requires me to make small, detailed, tactical decisions to eke out a few more adventures from my stomach. It would seem tough to script, but I'll attempt it:

Algo:
Don't eat cookie. Adventure until the SR window begins.
While SR hasn't been found
If next turn would be in a zone with a 'valuable' SR**
Execute turn​
Else
Eat cookie​
End

Ok, that ended up being pretty simple. There's some trickery with the line of logic with the **, however. If the zone in question has, say, the third most valuable SR available then I'm weighing whether spending 1 fullness on a cookie is worth the upgrade to a better SR. This decision isn't one that seems reasonable to script.
 
Last edited:

zarqon

Well-known member
I like this a great deal, but perhaps the feature is being requested in the wrong script. Most of the change in functionality would need to go in a between battle script, since the decision may change when your location changes, but no counter will fire when this happens. I would be happy to add the necessary lines to BBB, if Bale and I can work out how the scripts would be made to work both together and independently.

The change in logic would only require adding a single setting. Basically, if you save yourself a fullness point by not eating a cookie, you are earning yourself at least one more adventure, probably more, so the valueOfAdventure preference could be used here. If the current location has a semirare worth at least optimalsemirare - valueOfAdventure*X, it's worth it from a turncount standpoint, if not a monetary one. I'd recommend making X the setting (number of turns a fullness point is worth to you), that way setting it to 0 would basically disable it.

Changes to CounterChecker:

If Fortune Cookie counters are known, it will always attempt to get the most valuable semirare possible (current behavior). However, it would NOT attempt to eat a cookie afterward. No additional handling for window counters needs to be added here.

Changes to BBB:

If no cookie counters exist (including window counters), eat a cookie.
If the window begin counter is < 1 and a window end counter exists, decide whether or not to eat a cookie based on whether the current location's semirare is worth at least X*valueOfAdventure less than the optimal semirare. If so, don't eat a cookie.
Respect CounterChecker's srInHC preference.

This would result in optimal stomach usage as described by suinoq.
 

Bale

Minion
That would be fairly simple coordination. A single option in vars to indicate that a cookie is not to always be automatically eaten. Then BBB can kick in to decide about eating a cookie under those circumstances.
 

zarqon

Well-known member
Why don't we double up the functionality of the setting. It will be an integer indicating the number of turns a fullness point is worth for eating cookies. If 0, CC will eat cookies, otherwise it will leave the decision to BBB.

I'll need to figure out how to figure out the optimal semirare, so I might be importing CC into BBB, depending (haven't investigated yet). Does conditional importing work? I'm suspecting not.
 

Bale

Minion
I can't see why importing wouldn't work. Unfortunately while that will tell you the optimal semi-rare location, it won't allow you to rate semi-rares to figure out the value of the current location. I could modify the script to be friendlier to that way of doing things so that I'd have a function returning a map of prices indexed by location. Would that be better for you?
 

zarqon

Well-known member
Importing would work, of course. I was wondering about conditional importing. Think I've tried it before without success, but there used to be an example in the ASH wiki that imported different scripts depending on my_name(). Just wondering if I could check the cookieturns setting before taking up resources by importing.

I'm pretty sure it wouldn't work since it means there may or may not be certain functions defined in the BBB's namespace.
 

Yepa

New member
Stupid n00b question: Just installed this. Am I right to assume that it'll start tracking my semi-rares when I eat a fortune cookie? and I'll do that after each semi-rare? A bit unsure about how this works and since I'm new to kolmafia I figured i'd better ask.

Also, where do I find the counter? in the CLI? (I'm not planning to adventure with mafia, just using it to track stuff like this)

ETA: I'm doing hardcore runs, by the way.
 
Last edited:

Theraze

Active member
Just verifying... you did do the
set counterScript = CounterChecker.ash
already? Also, you have to configure it to automatically do SR if you want it to do that while HC. He has that in the second post...
•BaleCC_SrInHC: Automate Semi-rares in Hardcore and Ronin. If this is false, then you won't have to worry about CounterChecker determining your semi-rares for you while ascending.
 
Top