The problem with using the system to spade the stats
I wasn't talking about spading. I'm talking simply about fixing mafia's in-combat knowledge of the monster's current stats (the adjusted values) given known information. You evidently thought it up yourself later though:
Output a message or adjust the variable if it thinks that the miss/dodge shouldn't have happened. Criticals will still throw this off...
This is exactly what I was suggesting here:
If you miss the monster (non-fumble), the monster's defense must be at least (your attack stat - X). If you hit the monster (non-crit) its defense cannot be higher than (your attack stat + X). And so forth. Any ideas for adjusting monster attack within range (In other words, an easy way to tell a monster's crit from a regular hit, or a monster's miss from a fumble)?
All monster stats should be adjusted if we have correct information from spading equipment (detective skulls and so forth). Mafia already detects these messages somewhere so it's probably possible to just add correction of the adjustments there.
After that:
Monster HP
Basically, HP = minmax(1, monster max HP). For unknown monsters (HP 0), bump max HP up to 1 greater than the amount of damage it survived in one turn.
Monster defense
Since it's easy to see when the player gets a critical or fumble, monster defense can be adjusted on successful hits and misses, as I described above. If the player has the Comic Violence effect (from gremlin juice), do not adjust defense at all.
Are there any monsters with 0 defense? Seems like a nonzero lower bound probably exists.
Monster attack
This can only be adjusted if we can find a way to distinguish the monster's regular hits/misses vs. criticals or fumbles. Are there any usable <!--comments--> in fight.php about this? I don't think it's a good idea to detect ALL of the monster critical/fumble messages in mafia just to add range-correction to mafia's current knowledge of the monster's stats -- unless those are part of the data file perhaps. But I feel that there must be a universal solution.
Also, any monsters with 0 attack? Again, it seems like a nonzero lower bound probably exists.
For all of this, I'm talking about mafia's
in-combat values. Not the monster data files. Although... once the stat correction is in place, adding some kind of auto-spading might not be too hard.