zarqon
Well-known member
@Bale: I've just added code that adds "songduration" to fvars if you have the skill and an equipped accordion. Will tweak batfactors accordingly when I post the update. Thanks Veracity for making that an easy fix!
@heeheehee: Oh my, that is helpful. To help me organize, I've gone through the images and made notes of the flags that are definitely or probably BatBrain-relevant, and added some notes below as to whether I think BatBrain currently handles those flags correctly. All feedback welcomed here -- particularly if you have more information to contribute that would allow BatBrain to more correctly handle one of the flags.
Resistance
BatBrain has fairly decent handling already for most of these flags, but some need work.
Misc
The exposure of these KoL flags has shed a lot of light on how things are handled over there. BatBrain seems to have the most important of them fairly well covered, but there are quite a few less common cases that aren't presently accounted for.
Penetration
I don't think that BatBrain presently has any support for anything in this category -- mostly because this information seemed to remain largely unknown. At various times some new monsters were suspected of having some kind of special mechanic, as they somehow were dealing greater damage than expected, but the mechanic was unknown. This category being revealed provides a very helpful clue towards spading these values.
Retal
Happy to report that BatBrain has supported these since very early on.
So, that's what I've got from looking at those screenshots. Thanks a lot for sharing them heeheehee! Anyone have any feedback about the list? Something I missed?
@heeheehee: Oh my, that is helpful. To help me organize, I've gone through the images and made notes of the flags that are definitely or probably BatBrain-relevant, and added some notes below as to whether I think BatBrain currently handles those flags correctly. All feedback welcomed here -- particularly if you have more information to contribute that would allow BatBrain to more correctly handle one of the flags.
Resistance
BatBrain has fairly decent handling already for most of these flags, but some need work.
- stunresist: % per round to break out of any stun. BatBrain presently handles this differently to KoL, with a boolean nomultistun, meaning the only available values for this flag according to BatBrain are 100% and 0%. I don't know if any of the 0 < x < 100 values have been spaded anywhere, but if it were to become so, it would be nice for BatBrain to be able to correctly account for stunshruggage as soon as there are values to plug in. Needs addressing.
- nopowder: if true, shrinking powder doesn't work. BatBrain has no special handling for this item. Which monsters can't be shrunk? Needs addressing.
- Xresist: % X resistance. All elemental resistance from monster element, special cases, and +ML are handled.
- damagecapX: per-element damage cap. BatBrain presently uses one shared number for all elements. May need tweaking.
- mitigation: specify soft cap at X. BatBrain handles this with its damagecap flag (again sharing with the previous). May need tweaking.
- mitigationrate: specify exponent to apply to all damage above X. Identical to BatBrain's capexp flag.
- delevelresist: deleveling effects are reduced by %. BatBrain has no handling for this. Has anyone noted any monsters for which this flag is nonzero?
- combatitemresist: damage from combat items reduced by %. BatBrain handles this with its noitems flag, but the wording here is suspicious. For items that have other effects besides damage, evidently they still take effect. We may need to rejigger BatBrain's flags to match KoL's here.
- spellresist: damage from spells reduced by %. Correctly handled with the nospells flag.
- nopotato: potato-types don't work. No handling for this. Again, does anyone know which monsters have this flag set?
- nostagger: monster cannot be same-round stunned. Handled with BatBrain's nostagger flag.
Misc
The exposure of these KoL flags has shed a lot of light on how things are handled over there. BatBrain seems to have the most important of them fairly well covered, but there are quite a few less common cases that aren't presently accounted for.
- fratboy: for Zombo's skull ring. BatBrain has no handling for this, but it's easy enough to add the list of affected monsters to the "gear" entry for the ring (which as I just confirmed, already exists but has no information).
- cavefratboy: for Zombo's skull ring. Same as above.
- hoboautohit (element, chance): % chance of hobo auto attack of specified element. Evidently the damage formula is hardcoded for all hobo attacks, but the attack chance may be different for different varieties of hobo. BatBrain has had special code for the hobo autoattacks for quite a while in its m_event() function, wherein it assumes that all hobo auto-attacks deal an average of 10% of your max HP per round. Haven't heard any complaints since implementation so calling this handled.
- crazyoutmoxbonus: Multiplies monster's damage bonus from outmoxing a player by x. This seems new. Anyone know what this is about? Not handled.
- damageaura (element, amount): Monster has an elemental aura (and can have no more than 2 such auras, evidently). I don't remember coding any support for this. Needs addressing.
- noncorporeal: scrolls of AFUE insta-kill it. BatBrain has never had handling for the AFUE scroll insta-kill mechanic to begin with. Which monsters do you think this is? Would filtering monsters based on 100% physical resistance and <100% hot resistance (chosen randomly) work?
- noputty: cannot be puttied. BatBrain doesn't know anything about this, which is mostly fine as putty is flagged as a custom action. SmartStasis checks m.boss so at least it won't attempt to putty bosses, but there are certain monsters which are non-bosses but are also putty-immune. This has mostly not been an issue since players usually don't attempt to putty monsters that can't be puttied. Adding extra support for those other monsters would be mostly needless overhead for a script that really needs to run as swiftly as possible, so I doubt I'll add that support unless mafia were to add a "copyable" proxy field and make it easy.
- nostatvariance: BatBrain doesn't handle this, but I don't think it's particularly relevant. BatBrain is currently pessimistic about monster stats for Manuel-less fights -- meaning that at worst you may slightly overkill the monster. Don't think this needs to be handled (again, needless overhead).
- nomlhp: don't increase HP from +ML. Which monsters is this true for? BatBrain doesn't handle this, but should it? Again, a little extra pessimism doesn't hurt.
- holiday: is a wandering holiday monster, evidently used by KoL for Jarlsberg's pan to not convert special food drops to Cosmic Calories. Don't think BatBrain needs to care about this one.
- nostats: monster awards no stats. BatBrain has no support for this, and it probably should, given that it considers the meat value of your expected stat gain from defeating the monster as part of the cost of running away. Anyone know which monsters this is true for?
- autohit: % chance of auto-hitting. BatBrain handles this slightly differently with its nomiss flag, which again only accounts for boolean possibilities. Needs addressing.
- automiss: % chance of auto-missing. As with the previous, BatBrain handles this with its nohit flag. Needs addressing.
Penetration
I don't think that BatBrain presently has any support for anything in this category -- mostly because this information seemed to remain largely unknown. At various times some new monsters were suspected of having some kind of special mechanic, as they somehow were dealing greater damage than expected, but the mechanic was unknown. This category being revealed provides a very helpful clue towards spading these values.
- penetration: ignore the first X DA. No handling, and would be tricky to support, as we would have to manually recalculate the player's adjusted DA percent based on the new DA value.
- drpenetration: ignore the first x DR. Same as previous, but would be trivial to support since calculating the adjusted value only needs basic arithmetic. (Also: The Dr. is in. WAY IN! bwahahaha)
- [elem]penetration: ignore the first x levels of [elem] resistance. One for each element. This is obviously what our friend the ninja snowman assassin has. This is also not supported, but is unfortunately much more difficult to implement since we will have to manually recalculate the player's resistance to the given element and won't be able to use mafia's built-in calculations.
Retal
Happy to report that BatBrain has supported these since very early on.
- apathy/cunct/corrode: 10 turns of x on melee hit. Not sure of the level of support for this, but I don't think it's quite thorough.
- thorns: x damage on melee hit. Handled by BatBrain's retal flag.
- hotthorns: Same as previous but for hot damage. Evidently thorns can only deal physical or hot damage. BatBrain is ahead of the curve here, with flexibility to specify other elements or even multiple elements.
So, that's what I've got from looking at those screenshots. Thanks a lot for sharing them heeheehee! Anyone have any feedback about the list? Something I missed?