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

As slyz says. CounterChecker is being called by mafia because mafia thinks you are spending adventures. CounterChecker only knows that the counter isn't going off for a few turns. CounterChecker doesn't know that you are cooking, the same thing will happen if you're adventuring in the sea or shoring.

CounterChecker still could not do anything even if it did check for Inigo's and determine that you aren't in a multiple adventure zone because it is 1 turn too early for it to get you a dance with Rotting Matilda. I'm powerless to combat this bug. Relevant bug report is HERE. Theraze has submitted a patch, but our devs only have finite time to review such things.
 
Today with CounterChecker v1.4994:
Code:
Request 6 of 50 (Beanstalk: Giant's Castle) in progress...
[COLOR=RED]Invalid field name 'plural' (CounterChecker.ash, line 294)
Fortune Cookie counter expired. Last semirare found 169 turns ago (on turn 100742) in The Purple Light District[/COLOR]
 
Today with CounterChecker v1.4994:
Code:
Request 6 of 50 (Beanstalk: Giant's Castle) in progress...
[COLOR=RED]Invalid field name 'plural' (CounterChecker.ash, line 294)
Fortune Cookie counter expired. Last semirare found 169 turns ago (on turn 100742) in The Purple Light District[/COLOR]

field name 'plural' is a feature that was added to KoLmafia in r9197 on March 28. You are using a build of mafia that is older than that. I'd suggest that you go HERE and download the latest jar build. (The EXE does not currently update and is too old to work properly.)
 
field name 'plural' is a feature that was added to KoLmafia in r9197 on March 28. You are using a build of mafia that is older than that. I'd suggest that you go HERE and download the latest jar build. (The EXE does not currently update and is too old to work properly.)

Ah, I should have thought of that. My build is two weeks old (ancient).
 
Feature Request:

I would like to request a feature for CC to automatically place the newly acquired semi-rare for sale in the mall.
I would request that this feature can be turned on or off by a zlib var.

Reason for the request is because CC uses current mall prices to determine where to adventure for a semi-rare.
By time I put them in the mall, I have usually accumulated 10 or more and the price has changed significantly.
By placing it in the mall immediately, I can take capitalize on the most profitable items at the right time.
 
I use the following in my logout script to make sure I sell all the semirares I've farmed:
Code:
void sell_semirares()
{
	foreach thing in $items[cube of billiard chalk, irradiated pet snacks, Knob Goblin lunchbox, cyclops eyedrops, distilled fortified wine, tasty tart, scented massage oil, 
		freezerburned ice cube, black eyedrops, can of spinach, bottle of antifreeze, ASCII shirt, six-pack of New Cloaca-Cola, Dogsgotnonoz pills, Mick's IcyVapoHotness Inhaler, 
		Eau de Guaneau, bottle of Mystic Shell, poltergeist-in-the-jar-o, donkey flipbook, SPF 451 lip balm, shrinking powder, fire flower, fake blood, bag of lard, 
		teeny-tiny magic scroll, bottle of rhinoceros hormones, bottle of pirate juice, lewd playing card, jar of squeeze, bowl of fishysoisse, concentrated garbage juice, 
		deadly lampshade, pixel stopwatch]
	{
		if(item_amount(thing) > 0)
		{
			put_shop(0,0,thing);
		}
	}
}
 
Well... it wouldn't be hard to add. I find Winterbay's solution to be quite sufficient, but can anyone think of any negatives to adding such a feature?
 
As long as it is controlled by variable, okay. Is there a way to exclude any semi-rares (not sure if there is a need)? I assume there are checks for having a store. Does it matter if in HC, BM or Ronin? Before freeing the king, I select and use the semi-rares to help adventuring. I would just change the variable when I free the king.
 
Released CounterChecker v1.4995


This is the "Immediate Commerce" release. There is a new zlib variable "BaleCC_SellSemirare" which will instruct the script to sell the semi-rare it has just acquired. It will not sell any of the same item that might be in inventory -- only what it just garnered. This was actually a little bit trickier to do than I anticipated.
 
Before freeing the king, I select and use the semi-rares to help adventuring. I would just change the variable when I free the king.
If you don't want CounterChecker to choose a semirare for you in-run, set BaleCC_SrInHC to false.

If BaleCC_SrInHC is true, you don't have to worry about changing the setting for malling the semi-rares.

EDIT: I meant "set BaleCC_SrInHC to true" of course, thanks Winterbay ;)
 
Last edited:
Don't you mean "set BaleCC_SrInHC to false". If it is true it will choose for me (which I personally like, but then I've set it to pick from a specific list of things in run).
 
If it is true it will choose for me (which I personally like, but then I've set it to pick from a specific list of things in run).

How do you set it to pick from a specific list? I'm interested in doing this so I can write up a list of SRs at the start of a run, and use that list while bumcheekascend auto-adventures. I'm looking for something that would mark when it's picked up an SR, so that if I used that SR in-run it wouldn't go search for that same SR again the next time the counter came up.
 
That is a feature I intend to add some day, but it isn't a feature right now. I suspect that Winterbay has rewritten his copy of this script to choose from hardcoded options.
 
That is a feature I intend to add some day, but it isn't a feature right now. I suspect that Winterbay has rewritten his copy of this script to choose from hardcoded options.

Indeed, I've changed the beginning of the script to look like this:
Code:
	item [location] semi_rare;
	if(can_interact())
	{
		semi_rare[$location[Haunted Billiards Room]] = $item[cube of billiard chalk];
		semi_rare[$location[Menagerie 2]] = $item[irradiated pet snacks];
		semi_rare[$location[Outskirts of The Knob]] = $item[Knob Goblin lunchbox];
		semi_rare[$location[Limerick Dungeon]] = $item[cyclops eyedrops];
		semi_rare[$location[Sleazy Back Alley]] = $item[distilled fortified wine];
		semi_rare[$location[Haunted Pantry]] = $item[tasty tart];
		semi_rare[$location[Harem]] = $item[scented massage oil];
		semi_rare[$location[Haunted Kitchen]] = $item[freezerburned ice cube];
		semi_rare[$location[Haunted Library]] = $item[black eyedrops];
		semi_rare[$location[Goatlet]] = $item[can of spinach];
		semi_rare[$location[Ninja Snowmen]] = $item[bottle of antifreeze];
		semi_rare[$location[Orc Chasm]] = $item[ASCII shirt];
		semi_rare[$location[Battlefield (No Uniform)]] = $item[six-pack of New Cloaca-Cola];
		semi_rare[$location[Batrat and Ratbat Burrow]] = $item[Dogsgotnonoz pills];
		semi_rare[$location[Giant's Castle]] = $item[Mick's IcyVapoHotness Inhaler];
		semi_rare[$location[Guano Junction]] = $item[Eau de Guaneau];
		semi_rare[$location[Laboratory]] = $item[bottle of Mystic Shell];
		semi_rare[$location[Pre-Cyrpt Cemetary]] = $item[poltergeist-in-the-jar-o];
		semi_rare[$location[Post-Cyrpt Cemetary]] = $item[poltergeist-in-the-jar-o];
		semi_rare[$location[South of The Border]] = $item[donkey flipbook];
		semi_rare[$location[Pandamonium Slums]] = $item[SPF 451 lip balm];
		semi_rare[$location[Hidden City]] = $item[shrinking powder];
		semi_rare[$location[8-Bit Realm]] = $item[fire flower];
		semi_rare[$location[Spooky Forest]] = $item[fake blood];
		semi_rare[$location[Whitey's Grove]] = $item[bag of lard];
		semi_rare[$location[Hippy Camp]] = $item[teeny-tiny magic scroll];
		semi_rare[$location[Frat House]] = $item[bottle of rhinoceros hormones];
		semi_rare[$location[Pirate Cove]] = $item[bottle of pirate juice];
		semi_rare[$location[The Purple Light District]] = $item[lewd playing card];
		semi_rare[$location[Burnbarrel Blvd]] = $item[jar of squeeze];
		semi_rare[$location[Exposure Esplanade]] = $item[bowl of fishysoisse];
		semi_rare[$location[The Heap]] = $item[concentrated garbage juice];
		semi_rare[$location[The Ancient Hobo Burial Ground]] = $item[deadly lampshade];
		semi_rare[$location[Chapel]] = $item[pixel stopwatch];
	}
	else //Rares interesting in a hardcore run
	{
		semi_rare[$location[Outskirts of The Knob]] = $item[Knob Goblin lunchbox];
		semi_rare[$location[Sleazy Back Alley]] = $item[distilled fortified wine];	
		semi_rare[$location[Haunted Pantry]] = $item[tasty tart];	
		semi_rare[$location[Harem]] = $item[scented massage oil];
		semi_rare[$location[Giant's Castle]] = $item[Mick's IcyVapoHotness Inhaler];			
		semi_rare[$location[Hidden City]] = $item[shrinking powder];
	}
	
	int[item] rare_quant;
	rare_quant[$item[distilled fortified wine]] = 3;
	rare_quant[$item[tasty tart]] = 3;
	rare_quant[$item[scented massage oil]] = 3;

	//We basically want these in our hardcore runs
	if(!can_interact())
	{
		rare_quant[$item[Mick's IcyVapoHotness Inhaler]] = 10;
		rare_quant[$item[shrinking powder]] = 10;
	}

The last two lines are there to upvalue the last two items as they might not get chosen otherwise.
 
I was wondering whether there was an existing option that I could set on a per-character basis to allow/disallow clan basement access. For example, my main is active in Hobopolis, but my multi will be using this script for semirares. Since allowing my multi to get a semirare in Hobopolis would count as multi abuse (same clan), I'd rather have an option to not have this problem. Worst case scenario, I'll probably just force the boolean can_hobo to false and not allow it to work with any character, but having the option would be nice.

I did a quick search in the thread and didn't see anything regarding this, but it is quite possible or likely that I may have missed it.
Thanks.
 
Not a problem as long as only one of your characters has made it through the sewers. You cannot get the semi-rares unless you have done that. As soon as you've had two characters go through the same sewer in the same clan you've already committed multi-abuse so I'm sure you wouldn't have.
 
Hmmm. So I ended up with a bag of lard today instead of a fire flower. Here's the relevant portion of my log. My current equipment is a staff of the woodfire in the weapon slot, rice bowl in the offhand, and a special sauce glove in acc3.

Code:
Request 25 of 71 (Woods: Whitey's Grove) in progress...
Checking     for updates (running CounterChecker ver. 1.4995)...
_version_BaleCC     => 1.4995
You have a current version of     CounterChecker.
Checking counters now.
Searching     for "scented massage oil"...
Search complete.
Maximizing...
1     combinations checked, best score 19.0
A fire flower is currently     selling for 12,399 meat .
Internal checkpoint created.
+weapon,     +offhand, +equip continuum transfunctioner
Maximizing...
1     combinations checked, best score 0.0 (FAIL)
Wielding skate board...
Equipment     changed.
Internal checkpoint created.
+weapon, +offhand, +equip     continuum transfunctioner, +equip none
[none] has no     matches.

Visit to Woods: 8-Bit Realm in progress...
You     need to free up a hand.
That area is not     available.

Oops, that wasn't the right     number!

[7620] Whitey's Grove
Encounter: Monty of County     Crisco
You acquire an item: bag of lard
 
Back
Top