Winterbay's Helpful Automatic Monsterbasher (WHAM)

Sticking this here because as a user I just add WHAM as my ccs and I get BatBrain and Smartstasis for free. It's not like I should be expected to know which part does which, right?

WHAM aborts often, and has for a long time, with a message about failing to enqueue a beehive. Since I have not really tracked down or understood why a beehive is so attractive to WHAM I would just like to say "don't do that". Can I tell WHAM not to use an item? If so, how?

As an aside the one time I tried to closet the beehive I could not and so just assumed there was an intrinsic property that kept it out of the closer. Something about its characteristics also makes it attractive to BatManRE since it appears at the top as the implicit best option.

WHAM aborts when trying to use a red button and says "you don't have that item" or something similar. I think they can be closeted but that doesn't help when autoadventuring in a zone where they drop. There are signs that this might be a KoLmafia inventory issue because a couple of times after an abort mafia thought I had buttons, I refreshed inventory and then it thought there were no buttons. A quick look at the code didn't explain why because mafia knows that buttons can be obtained after using them. Since I am currently blaming everything I don't understand on multi-threading perhaps that is a factor? In any event I would use a Don't Use parameter for WHAM if I it has one and I know what it is.

I suppose I could try no items but sometimes I'm ok if items are used so...

While I am here, is there a way besides verbosity to figure out why SmartStasis wants to stasis? I am assuming when I go 29 rounds and one shot at the end that is SmartStasis and not WHAM choosing to delay things.

Thanks.
 
As I recall WHAM installs a relay script that appears in the drop-down in the relay browser "WHAM don't use" or something like that. If I'm remembering correctly you have to add items by item ID.

It's been a while since I've used it but it worked to exclude items from consideration by WHAM.
 
You can add specific items to BatBrain's blacklist (which would eliminate those items from consideration by WHAM) from within BatMan RE's Actions Table. Or edit "BatMan_blacklist_<myname>.txt" directly in your data directory.
 
While I am here, is there a way besides verbosity to figure out why SmartStasis wants to stasis? I am assuming when I go 29 rounds and one shot at the end that is SmartStasis and not WHAM choosing to delay things.
Not necessarily, WHAM tries to kill in the most efficient way. Sometimes that can take a lot of rounds. There are setting to define what you consider efficient meat vs rounds, etc.
 
Question: How do you get Wham Don't Use to register "attack with your weapon" as something not to do? This is an invalid attack method in the new challenge path and results in you losing the fight.
 
Question: How do you get Wham Don't Use to register "attack with your weapon" as something not to do? This is an invalid attack method in the new challenge path and results in you losing the fight.

Pretty sure WHAM will not be a valid option for Plumbers until someone (me after another Standard run or two, at the latest) adds the Plumber skills to batfactors.txt.
 
BatBrain and WHAM would also need to understand Power Points (PP). And WHAM would have to realize that getting extra coins is good. Which all seems like a lot of work.

Combat in this path is fairly simple, often just a single round. I've just been using flat CCS files. Most often multi-bounce followed by jump attacks. It is a little different when it comes to flyering. The only combats I've had with any complexity have been when I've worn boots into a fight with a 100% physical resistant monster. If those have too many hit points I need to toss one gas can to soften them up and then beehive them to death.
 
And now this has been happening when I go into fights with WHAM as my CCS. I'm in a casual run, so nothing that should break things.

Request 1 of 322 (Woods: The Spooky Forest) in progress...

[322] The Spooky Forest
Preference lastEncounter changed from sausage goblin to wolfman
Encounter: wolfman
Preference _lastCombatStarted changed from 20200303064849 to 20200303064939
Round 0: Rick Tyger wins initiative!
Unexpected error, debug log printed.
Script execution aborted (java.lang.NullPointerException): (BatBrain.ash, line 2249)
Unexpected error, debug log printed.
Script execution aborted (java.lang.NullPointerException): (BatBrain.ash, line 2249)
You're on your own, partner.
Click here to continue in the relay browser.
 
Remove your batman_happenings file. I think something must have changed in how it functions, but nuking it let me run BatMan-based scripts again.
 
when fighting %monster% wham uses up all of that day's uses of instakills because it thinks %monster% is instakillable, but it is not.
aside from marking it as not instakillable, I would suggest also having a tracking variable for whether any instakill was used this combat and if the monster is still alive after one was used then print an error about that monster being wrongly thought of as instakillable.

Also, against grey goo monsters wham just keeps on casting salsaball or stream of sauce, it does not seem to be willing to use suitable attacks for their power. I think it thinks that they only have 1 HP instead of scaling HP?
 
This may be a silly question, but is there a way to get this script to consider using a scroll of ancient unspeakable evil when fighting the grandfather ghost in basement?
 
This may be a silly question, but is there a way to get this script to consider using a scroll of ancient unspeakable evil when fighting the grandfather ghost in basement?
You could add a line to your CCS to handle the grandfather ghost and thus bypass the script. I'm not certain anyone is maintaining this now.
 
when fighting %monster% wham uses up all of that day's uses of instakills because it thinks %monster% is instakillable, but it is not.
aside from marking it as not instakillable, I would suggest also having a tracking variable for whether any instakill was used this combat and if the monster is still alive after one was used then print an error about that monster being wrongly thought of as instakillable.

Also, against grey goo monsters wham just keeps on casting salsaball or stream of sauce, it does not seem to be willing to use suitable attacks for their power. I think it thinks that they only have 1 HP instead of scaling HP?
I've noted that WHAM does this with many monsters. You basically need to open the browser and use the WHAMDONTUSE script there to tell it not to use whimpy skills or waste time with stuff like 7-10 uses of specter scepter. It does need some sort of "use my most damaging skill/item" setup, rather than the "use lest costly stuff" that it seems to default to. I've gotten beaten up a few times because it thought it was doing a 1-round kill the whatever with attack from my weapon, but the monster only takes 1 damage, when I could insta-kill it with a single Dual Fisted Skull Smashing, or Saucegeyser and that not costing any significant amount of my mp.
 
WHAM thinking it can 1-round kill and then doing only 1 damage means something is not right. I've seen this too, but haven't bothered to track down what went wrong. It could even need an update to batfactors.

If you want WHAM to kill faster, then set WHAM_roundcost_aftercore and/or WHAM_roundcost_ronin higher. If you set them very high, WHAM will do its best to kill in one round. Of course, this won't help anything if WHAM already think it is going to kill in one round and doesn't.
 
As I recall WHAM installs a relay script that appears in the drop-down in the relay browser "WHAM don't use" or something like that. If I'm remembering correctly you have to add items by item ID.

It's been a while since I've used it but it worked to exclude items from consideration by WHAM.
where, exactly? I'm not seeing it anywhere..
 

Attachments

  • wham.png
    wham.png
    58 KB · Views: 3
Back
Top