BatBrain -- a central nervous system for consult scripts

Of course by that time, I was also finding monsters I couldn't figure out how to kill at all.

You mean the ones you kill by throwing a shard of double-ice (therefore removing their immunity to sleaze) and then using sleazy attacks?
 
You mean the ones you kill by throwing a shard of double-ice (therefore removing their immunity to sleaze) and then using sleazy attacks?
Probably. We probably even talked about it in this thread. I don't expect that to be a strategy used by WHAM. Then again, there's now another element changing item, so it might become more common.
 
As long as you have patch and diff. :rolleyes:
What's so hard about "sudo apt-get install svn"? :p

EDIT: I'm glad to hear someone is trying this patch out. It was a fun weekend goofing off, but when I got it pretty much working I started wondered why I'd bothered.
 
Last edited:
Crowther: I tried your patch today and while I only ran through 350 turns in the Fun Guy Mansion it performed flawlessly. I'll run more turns after rollover. Thank you!
 
Currently, BatBrain is broken for understanding current ML in the Heavy Rains path. I suggest that the relevant code be changed to:

Code:
  // account for +ML
   int monster_level = numeric_modifier("_spec", "Monster Level");  
   if(my_path == "Heavy Rains")
      monster_level += (my_location().water_level + numeric_modifier("_spec", "Water Level")) * 10
   if (monster_level > 25) {
      float ml_res = min(monster_level * .004, .5);
      foreach res,amt in mres mres[res] = ml_res + amt - (ml_res * amt);
      if (monster_level > 150) setmatt("nostun","");
       else if (monster_level > 100) setmatt("nomultistun","");
   }
 
Thank you Bale. Two minor typos:

Line 3 - my_path should be my_path()
Line 4 - should end in a semi-colon

Code:
  // account for +ML
   int monster_level = numeric_modifier("_spec", "Monster Level");  
   if(my_path() == "Heavy Rains")
      monster_level += (my_location().water_level + numeric_modifier("_spec", "Water Level")) * 10;
   if (monster_level > 25) {
      float ml_res = min(monster_level * .004, .5);
      foreach res,amt in mres mres[res] = ml_res + amt - (ml_res * amt);
      if (monster_level > 150) setmatt("nostun","");
       else if (monster_level > 100) setmatt("nomultistun","");
   }
 
So ML from water level contributes towards their total +ML for the purpose of stun/stagger resistances and elemental resistances? Interesting. I was actually just working on some Rains related stuff so will pop that out right now.

EDIT: And there we go; r40 adds Bale's fix. I've also added the Rain bosses to batfactors to specify their damage caps.
 
Last edited:
So ML from water level contributes towards their total +ML for the purpose of stun/stagger resistances and elemental resistances?

It gorram does. My poor beat up ass testifies to that. Not being able to stagger when batbrain thinks I only have +100ML (and I'm over my head in water) really hurts.


EDIT: And there we go; r40 adds Bale's fix. I've also added the Rain bosses to batfactors to specify their damage caps.

And you added the damage from Ninja Snowman Assassins. Nice work!
 
I must be missing something...

Latest Mafia + r40 and I am getting:

Invalid field name 'water_level' (BatBrain.ash, line 1567)
 
Question: Does BB know if you have a club weapon as a Seal Clubber that your smack attacks always hit? I keep getting Lunge Smack at 14% to-hit with a Brimstone Bludgeon.
 
It seems that my fix for Water Level's affect on +ML was unnecessary. monster_level_adjustment() does the job perfectly and would future proof the code against any such mechanic that might come to exist.

Code:
  // account for +ML
   float ml = monster_level_adjustment();
   if (ml > 25) {
      if (ml > 150) setmatt("nostun","");
       else if (ml > 100) setmatt("nomultistun","");
      ml = min(ml * .004, .5);
      foreach res,amt in mres mres[res] = ml + amt - (ml * amt);
   }
 
Last edited:
Ha, I looked through "modref" thinking I was sure that existed somewhere, but forgot to check "ashref".

There's something I need to know before I start to implement a partial stagger success chance: when a stagger is ignored, does that mean all effects of the item are ignored (e.g. damage, deleveling), or just the stagger effect? For example, a disease has a base 50% stagger chance, in addition to some deleveling. A monster with a 50% chance to ignore staggers will only be staggered by a disease 25% of the time, but will the deleveling always occur? Please say yes.

While I'm at it, I'm also going to take this opportunity to rejigger BatBrain to follow KoL's terminology (i.e. "nostagger" rather than "nostun").

EDIT: r41 converts the old boolean "nostun" to a float "nostagger", allowing us to support the progressive chance to ignore staggers granted by +ML. Terminology was likewise changed in batfactors, though the old "nostun" language is deprecated but still supported just in case.
 
Last edited:
There's something I need to know before I start to implement a partial stagger success chance: when a stagger is ignored, does that mean all effects of the item are ignored (e.g. damage, deleveling), or just the stagger effect? For example, a disease has a base 50% stagger chance, in addition to some deleveling. A monster with a 50% chance to ignore staggers will only be staggered by a disease 25% of the time, but will the deleveling always occur? Please say yes.

All of the other stuff happens regardless.
 
Back
Top