BatBrain -- a central nervous system for consult scripts

lostcalpolydude

Developer
Staff member
Just trying, and liking, Bat Man Relay. A little slow, but I guess that's using a 5 year old PC and having nearly all the skills.

The few times I've checked out this script in aftercore, it ran slowly with all those options. My system is 2.5 years old and was put together for gaming, so it at least had decent specs a few years ago. In-run, with fewer options, it ran fast enough to be worth considering, but I never spent much time trying to get used to the script before disabling it.
 

Theraze

Active member
Here's another quote:
[1705] The Coral Corral
Encounter: wild seahorse
Round 0: Theraze loses initiative!
You lose 48 hit points
Round 1: Theraze uses the sea cowbell and uses the sea cowbell!
Round 2: Theraze uses the sea cowbell and uses the sea lasso!
Your mount is prepared!
From the other accomplishments:
You have tamed the mighty seahorse Morning Pie
 

zarqon

Well-known member
lostcalpolydude said:
worth considering

I guess that's a decent summary for 5 years of labor. Good thing I don't take offense easily, because a certain type of person might find your wording both patronizing and upsetting.

To be fair, its handiness is reduced in aftercore, where speed is more important than information since you can kill most things easily; but in-run, when every HP/MP/meat matters and you're fighting above your level, it's exceptionally helpful. I've also come to find the links, shortcuts, and information in the Adventure Again box ridiculously worthwhile, particularly when goals are set (you can mouseover the monster images to see which monster has how much of your goals). It's also designed to significantly reduce mouse movements, since a) you need to scroll less, and 2) well-chosen actions may consistently be performed from the same screen location (or keyboard region). All told, it saves me quite a bit of time each run. Obviously your mileage varies.

The latest BatBrain has another small speed optimization, so perhaps if you check it out again after updating, you'll find it worth just a tiny bit more consideration (in-run at least).

are the yellow-beams actually being delayed?

Evidently not. Are you "in the clear"? As I mentioned before, if you're in possible danger, the script will continue to yellow ray as soon as possible, without waiting for custom actions. Fixing this was a bit tricky, because the first time act() is called, the custom actions have not yet been built, so it's impossible to check there for custom actions existing on round 1. Yet we don't want to always skip YRing on round 1, because the monster may kill you before the eye turns yellow again.

But we can do better than just check intheclear(). So what I've just done is move yellow ray handling to enqueue(), which allows us to insert YRing as a response in the event that your custom actions (built by this point) are empty. I'm also not checking intheclear() anymore, but rather die_rounds(), since your ability to kill the monster is irrelevant when you'll be yellow raying. If the monster can kill you within 3 rounds, YRing will take priority over custom actions, otherwise it will wait until custom actions are empty. Hopefully this gives you results you like.

@Fluxxx: Glad we worked it out. Also glad it wasn't my error, hehe.

@Darzil: I'm not quite clear what you're reporting. Are you saying that BatBrain believes your Thrust-Smack damage to be 265 when in reality it's only doing 116? Are you unarmed? At present it appears the only difference between unarmed vs. armed damage calculations is a +10 for Master of the Surprising Fist. That seems suspicious. Also, the Wiki claims that TS and LTS require a melee weapon equipped, which confuses me further about your report.

@Winterbay: Thanks. Let's go ahead and change batfactors to 500; I've added a check in build_items() for BRICKO monsters which raises it to OVER 9000 in that case. Also, keep me posted about items which can't be funkslung, if such there be.

Version 1.37 adds the above mentioned changes and one other: rather than foreaching all skills listed in batfactors, run a matcher on the skills dropdown. No one will ever have all the skills in the game, since quite a lot of them come from gear and you can't equip hundreds of items, so starting from a whitelist rather than filtering by blacklist seems the way to go. This also fixes a BatMan RE issue for IE users, where skills would not be detected correctly.
 

lostcalpolydude

Developer
Staff member
I guess that's a decent summary for 5 years of labor. Good thing I don't take offense easily, because a certain type of person might find your wording both patronizing and upsetting.
Although I've kept up with this thread for a while (I read everything that gets posted here), I've used the script little enough that I could easily be missing some features that would make it shine for me.

To be fair, its handiness is reduced in aftercore, where speed is more important than information since you can kill most things easily; but in-run, when every HP/MP/meat matters and you're fighting above your level, it's exceptionally helpful.
That's mostly a HC issue. Running around with a Crown of Thrones covers MP just fine.

I've also come to find the links, shortcuts, and information in the Adventure Again box ridiculously worthwhile, particularly when goals are set (you can mouseover the monster images to see which monster has how much of your goals).
I never actually use goals, so I would never see the benefits related to using those. For ascension-relevant drops, I know which monster drops the item, what the drop rate is, and what the modified drop rate is off the top of my head. I can also calculate queue- and olfaction-modified encounter rates for monsters in my head quickly enough. So it's possible that I won't find a lot of that stuff very beneficial, and the slowdown from adding it will be more meaningful to me. I am interested to see what shortcuts are available, perhaps some of them belong in mafia.

It's also designed to significantly reduce mouse movements, since a) you need to scroll less, and 2) well-chosen actions may consistently be performed from the same screen location (or keyboard region). All told, it saves me quite a bit of time each run.
I feel like I get that from the CAB.

The latest BatBrain has another small speed optimization, so perhaps if you check it out again after updating, you'll find it worth just a tiny bit more consideration (in-run at least).
I'll probably give it another try soon enough. I'm kind of curious how it values resources in BIG when the main reason to not run away from most fights is getting familiar experience or drops.

Also, my posts probably should actually be in the BatMan RE thread instead of this one, oh well.
 

Darzil

Developer
@Darzil: I'm not quite clear what you're reporting. Are you saying that BatBrain believes your Thrust-Smack damage to be 265 when in reality it's only doing 116? Are you unarmed? At present it appears the only difference between unarmed vs. armed damage calculations is a +10 for Master of the Surprising Fist. That seems suspicious. Also, the Wiki claims that TS and LTS require a melee weapon equipped, which confuses me further about your report.

I am unarmed. There is no variation in the weapon damage as a result. I'm out of turns today, but can do some spading if necessary tomorrow. According to the wiki it looks like weapon damage should be 1, though if so TS should do 2, and LTS should do 3, which doesn't seem to be the case. I think TS and LTS require you not to be ranged, rather than to have a melee weapon. I'll bet that was written before unarmed combat was common.
 

zarqon

Well-known member
Well, on my lvl 31 unarmed DB, numeric_modifier("Weapon Damage") returned 141. 93 of that was from Kung Fu Fighting, 10 was from Master of the Surprising Fist, and the rest was from normal buffs and gear. All of that does, in theory, apply to unarmed attacks.

This does expose an error though -- BatBrain is adding a +10 for unarmed characters with Master of the Surprising Fist, but mafia already takes that into account, so we are presently double-counting that. Probably at the time that code was added, mafia didn't yet include Surprising Fist in Weapon Damage, but it does now (and smartly too -- we don't have to compensate the other way for armed characters). The fix is simply to entirely remove line 924.

Reducing BatBrain's estimate by 10 still leaves a difference of about 60 for the numbers you mentioned. Were you by any chance facing a monster that may have physical resistance or a damage cap that BatBrain doesn't know about?

After fixing Surprising Fist, BatBrain estimates 209.235 for the DB's regular attack when facing a skeletal sommelier (base_defense: 152), 363.47 damage for TS, and 568.7 damage for LTS. This seems as though it checks out, since his muscle is 828 and he has 141 weapon damage being doubled/tripled. Observed damage from regular attacks was right around 230, which is pretty close to the estimate but a little high for complete confidence. I don't have TS/LTS permed so couldn't confirm the accuracy of the estimates, but it does seem to be following the formula correctly.
 

Darzil

Developer
Hmm, I wonder if unarmed has simply changed.

It is now doing Weapon Damage x Percentage Weapon Damage, whether Attack, Thrust-Smack or Lunging Thrust-Smack is used. I think I'll raise it in the KOL forums.

eg.
+65 Weapon Damage (Claws, Fist, Kung Fu), +20% Weapon Damage (Mongoose) - 78 Damage every time
+65 Weapon Damage (Claws, Fist, Kung Fu), +70% Weapon Damage (Mongoose, Boris Helm) - 110 Damage every time
+110 Weapon Damage, +150% Weapon Damage - 275 Damage every time
 
Not sure if this is the right place for this or not but I keep running into this

Expression syntax errors for 'modifier_eval()':
Can't understand dmg (zlib.ash, line 162)
 

Darzil

Developer
Hmm, I wonder if unarmed has simply changed.

It is now doing Weapon Damage x Percentage Weapon Damage, whether Attack, Thrust-Smack or Lunging Thrust-Smack is used. I think I'll raise it in the KOL forums.

eg.
+65 Weapon Damage (Claws, Fist, Kung Fu), +20% Weapon Damage (Mongoose) - 78 Damage every time
+65 Weapon Damage (Claws, Fist, Kung Fu), +70% Weapon Damage (Mongoose, Boris Helm) - 110 Damage every time
+110 Weapon Damage, +150% Weapon Damage - 275 Damage every time

I'd overlooked something. Unarmed, Muscle should be multiplied by .25 before comparing to monster defence. So unless you have more than 4 times the monster's defence in muscle, you'll just be doing bonus weapon damage.
 

zarqon

Well-known member
So all is well then? BatBrain already multiplies your muscle by 0.25 if you're unarmed before comparing it to monster defense for bonus damage. For LTS though, Muscle is also multiplied by 1.25 (or 1.3 for SCs), for a net gain of about 0.07 * Muscle over regular attack when unarmed. Weapon damage is also still multiplied for TS and LTS, so even if your weapon damage was the minumum of 1, those three skills -- according to the Wiki at least -- should not be doing the same amount of damage.

@Cereal: I don't remember ever doing anything to explicitly fix that issue. I'll test with some starfish/mosquito types tonight and see if I can duplicate the error.
 
Last edited:

Theraze

Active member
zarqon, that was first reported in 982 and you commented on it being due to familiar healing in 983. Did it not actually make it into the following release(s)? :(
 

zarqon

Well-known member
Yes, I remember it being reported, but I don't remember having done anything to fix it. I do remember looking at the code and not seeing any reason it wouldn't work. I'd put myself squarely at step 2 in Winterbay's "Stages of Debugging" sig. :)

I did attempt to duplicate the bug, by adventuring with various starfish- and mosquito-types, but was unable to make the error occur. Cereal et. al., If you're able to encounter this error even with current scripts, give me a verbosity 10 CLI output and maybe I'll get some clue from that as to why you get the error and I don't.

In other BatBrain-related news, I fixed some erroneous formulas in batfactors and added documentation for batfactors on the Wiki!
 

Theraze

Active member
Also possible that the problem was caused by out of date versions of the script hiding in a folder somewhere, and since the update causing multiple versions to punt rather than picking the first, it isn't happening anymore to people using the latest daily... But maybe not. :(
 

Theraze

Active member
Not sure about the spading, but 3 areas of changes to BatFactors will need to be considered in the near future:
June 06 - Pinch Ghost, which had one job, is now no longer terrible at its job.
June 06 - Made the second and third damage-o-blasts from Hobopolis spells actually count as spells for various purposes. Lanterns greener.
June 06 - Fixed a very old bug that was preventing bonus elemental spell damage from being applied to some spells.
Pinch Ghost, Hobopolis spells, and some spells to be named later all got changed. :)
 

xKiv

Active member
Lanterns greener.

In the interest of clear-ish-ness: I checked out with greased lightning, and saw my green lantern match each blast in each casting (including the first one).
Also, while talking about the lantern: according to Jick, lantern is supposed to match the highest element, not total damage output (so 150 (200) becomes 150 (200) (200) or 150 (400), depending on whether the (200) was stench). This makes difference with tuned pastalord and jarlsberg's grill.
 

Theraze

Active member
http://kol.coldfront.net/thekolwiki/index.php/Yog-Urt,_Elder_Goddess_of_Hatred

Physical immune (1 damage), immune to all stunning both single and multi-round, and items can only be used once during the fight. Special things include that the first 5-10 rounds, you do 90% damage to yourself and need to heal it up using different healing items, because as mentioned earlier you can only use a specific item once. The effect that causes the damage and drops your base stats to 30 is More Like a Suckrament:
http://kol.coldfront.net/thekolwiki/index.php/More_Like_a_Suckrament
As well, if any damage is done to Yog-Urt while this is still in effect, you lose the fight. Whether by familiar, effect, items, etc... damage, you lose. Also, this effect blocks using all skills.

It would be nice if at least the immunity to stunners and physical were added to the next version of BatBrain. Tracking the special rules around that effect would be nice, but lower priority. :)
 

Bale

Minion
That battle is so weird and unique that it seems a little crazy to try to support Yog-Urt. The player cannot even go in with his usual gear and hope to survive. If he's got Jalapeño Saucesphere or a moveable feast he is doomed even before he can get killed. You even want to minimize max HP. This is well beyond little things like the immunity to stunners. I think it is entirely reasonable to count on the player to fight without help from BatBrain.

Though I admit it wouldn't hurt to add Yog-Urt to the anti-stunners and anti-physical damage lists.
 

Theraze

Active member
I'd mostly just want to not be punished for using BatMan. Currently I completely ignore it and just keep switching back to KoL for each click, but... if it stays completely unsupported, BatMan should default to the KoL tab rather than giving wrong information. Or at least, eventually my version will. :) But it's better for other people if it's supported in the official version, rather than just personal avoidance of incorrect death-suggestions.
 

Bale

Minion
That's a good enough reason to make sense to me. Though honestly, even with those two suggestions, BatManRE will still suggest ways of getting yourself killed.
 
Top