1 /* NetHack 3.6 permonst.h $NHDT-Date: 1539804913 2018/10/17 19:35:13 $ $NHDT-Branch: keni-makedefsm $:$NHDT-Revision: 1.12 $ */
2 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
3 /*-Copyright (c) Kenneth Lorber, Kensington, Maryland, 2015. */
4 /* NetHack may be freely redistributed. See license for details. */
9 /* This structure covers all attack forms.
10 * aatyp is the gross attack type (eg. claw, bite, breath, ...)
11 * adtyp is the damage type (eg. physical, fire, cold, spell, ...)
12 * damn is the number of hit dice of damage from the attack.
13 * damd is the number of sides on each die.
15 * Some attacks can do no points of damage. Additionally, some can
16 * have special effects *and* do damage as well. If damn and damd
17 * are set, they may have a special meaning. For example, if set
18 * for a blinding attack, they determine the amount of time blinded.
23 uchar adtyp, damn, damd;
26 /* Max # of attacks for any given monster.
31 /* Weight of a human body
43 const char *mname; /* full name */
44 char mlet; /* symbol */
45 schar mlevel, /* base monster level */
46 mmove, /* move speed */
47 ac, /* (base) armor class */
48 mr; /* (base) magic resistance */
49 aligntyp maligntyp; /* basic monster alignment */
50 unsigned short geno; /* creation/geno mask value */
51 struct attack mattk[NATTK]; /* attacks matrix */
52 unsigned short cwt, /* weight of corpse */
53 cnutrit; /* its nutritional value */
54 uchar msound; /* noise it makes (6 bits) */
55 uchar msize; /* physical size (3 bits) */
56 uchar mresists; /* resistances */
57 uchar mconveys; /* conveyed by eating */
58 unsigned long mflags1, /* boolean bitflags */
59 mflags2; /* more boolean bitflags */
60 unsigned short mflags3; /* yet more boolean bitflags */
61 uchar difficulty; /* toughness (formerly from makedefs -m) */
63 uchar mcolor; /* color to use */
67 extern NEARDATA struct permonst mons[]; /* the master list of monster types */
71 #define NORMAL_SPEED 12 /* movement rates */
75 #define NON_PM (-1) /* "not a monster" */
76 #define LOW_PM (NON_PM + 1) /* first monster in mons[] */
77 #define SPECIAL_PM PM_LONG_WORM_TAIL /* [normal] < ~ < [special] */
78 /* mons[SPECIAL_PM] through mons[NUMMONS-1], inclusive, are
79 never generated randomly and cannot be polymorphed into */
81 #endif /* PERMONST_H */