There's also a link in my sig.
Thanks for the feedback Eliteof.
1. I just bumped ML up to +187 with equipment and
$monster[<monster normally lacking physical resistance>].physical_resistance still returns 0, so I don't believe there is any double-dipping happening.
Ok. Now I just adventured at the Noob Cave with that +ML, and BatBrain reported a bunny physical resistance of 75%, which is 50% applied twice, so it appears double-dipping is indeed the culprit.
> ash last_monster().physical_resistance
Returned: 50
> ash $monster[fluffy bunny].physical_resistance
Returned: 0
Huh? So it includes it if it's the last_monster() but otherwise it doesn't? That could be problematic for predicting combats outside of combat, which has always been a concern in scripting BatBrain. Now, just to confirm what we already suspect, when we access the global variable m, do we get the version with or without physical resistance?
> ashq monster m = last_monster(); print(m.physical_resistance)
50
Looks like it still gets the resistance one. Fortunately, heeheehee has pointed out that ML-resistance is not applied on top of special resistance. That information was evidently not yet spaded when I first added this code -- in fact I believe I "fixed" suggested code which applied the resistance additively, so that it was instead applied multiplicatively. As it happens, both were wrong! Anyway, this means we don't have to make any special checks; since we're calculating the number anyway for all the other elements we can just use our calculated number for physical resistance regardless of which version of the proxy field we get, since we're taking the max of the two.
When was this changed, by the way? I usually keep an eye on the commit messages but don't recall seeing anything about this change.
Anyway, I believe we've found the source of the problem. My local BatBrain is a little bit of a mess at the moment so I won't be able to update this right away, so in the meantime simply changing the unnecessary word "supercold" to the word "none" around line 1738 will at least prevent the doubling until the next update fixes it for realsies. Thank you for the report!
2. Just had a look at the Wiki for smacks, and it looks like the information there concerning the 2013 muscle class revamps is now much more thorough than when I was editing BatBrain to support the revamp. It also makes an even bigger mess of the damage formula, since elemental and weapon damage is evidently only multiplied if you are a Seal Clubber, otherwise only the base weapon damage is multiplied, as before. So presently BatBrain only handles smacks correctly for non-Seal Clubbers wielding melee weapons, ha.
I also noted that evidently the various TT butt skills
also now work with ranged weapons, so I'm just removing the code that filters SC and TT skills based on a melee weapon being equipped. I'll be able to open up all the smacks and butts to non-melee weapons fairly easily, but the class-conditional doubling won't be quite as easy. Will have a go at that soon.
BatMan: Battle Manger. Would like to see someone with photoshop skills have a go at that.