record monster_data {
int variable; // the +ML currently being run; if the same, the monster will be reloaded from cache
boolean nopotato; // potatos are useless here
boolean nofamiliar; // your familiar will not act
spread aura; // passive damage dealt to you every round
spread retal; // damage dealt to you if you hit with a melee attack
spread res; // resistances to each element, expressed as -1.0 (vulnerability) to 1.0 (immunity)
spread pen; // the monster's penetration ($element[none] for DA penetration)
int drpen; // DR penetration. The doctor is IN!
int howmany; // group monster size (default 1)
int multiattack; // number of attacks per round (default 1)
int maxround; // combat lasts till this round (default 30)
int damagecap; // damage in amounts beyond this will be reduced...
float capexp; // ...by this exponent
float autohit; // chance of automatically hitting, regardless of moxie
float automiss; // chance of automatically missing
float nostagger; // chance of shrugging staggers. Usually 1.0 if anything
float nostun; // chance of shrugging multi-round stuns
float noitems; // chance of ignoring combat items
float noskills; // chance of ignoring skills
float delevelres; // percent resistance to deleveling
float spellres; // percent resistance to spells
float dodge; // chance of dodging melee attacks
string onlyhurtby; // can only be damaged by X. possible: club, pottery, healing
string[string] dmgkey; // normalized damage type(s) vs. this monster (sauce, pasta, perfect)
};
static monster_data[monster] mdb; // keep all monsters loaded as encountered for faster loading
monster_data mdata; // m's monster_data