billr@saab.CNA.TEK.COM (Bill Randle) (09/30/89)
Submitted-by: Izchak Miller <izchak@linc.cis.upenn.edu> Posting-number: Volume 8, Issue 46 Archive-name: NetHack3/Patch4j Patch-To: NetHack3: Volume 7, Issue 56-93 #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh <file", e.g.. If this archive is complete, you # will see the following message at the end: # "End of archive 10 (of 11)." # Contents: src/monst.c1 # Wrapped by billr@saab on Fri Sep 29 13:11:26 1989 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f 'src/monst.c1' -a "${1}" != "-c" ; then mv -f src/monst.c1 src/monst.c1.orig fi echo shar: Extracting \"'src/monst.c1'\" \(44627 characters\) sed "s/^X//" >'src/monst.c1' <<'END_OF_FILE' X/* SCCS Id: @(#)monst.c 3.0 89/03/11 X/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ X/* NetHack may be freely redistributed. See license for details. */ X X/* since this file is also used in auxiliary programs, don't include all the X * function declarations for all of nethack X */ X#define EXTERN_H X#include "config.h" X#include "permonst.h" X#include "monsym.h" X#include "eshk.h" X#include "vault.h" X#include "epri.h" X X#define NO_ATTK { 0, 0, 0, 0 } X X#ifdef C X#undef C X#endif X#ifdef TEXTCOLOR X#include "decl.h" /* for colors */ X#define C(color) color X#else X#define C(color) X#endif X X#ifndef SPLITMON_2 Xstruct permonst playermon = { /* used by weapons bonus code */ X "player", S_HUMAN, 1, 10, 10, 0, 0, G_GENO | G_NOGEN, X { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 45, 400, PL_NSIZ, MS_SILENT, M1_HUMANOID | M1_COLLECT, X M2_HUMAN | M2_STRONG | M2_NEEDPICK, C(HI_MON) X}, *uasmon = &playermon; X#endif /* SPLITMON_2 */ X X/* X * Rule #1: monsters of a given class are contiguous in the X * mons[] array. X * X * Rule #2: monsters of a given class are presented in ascending X * order of strength. X * X * Rule #3: monster frequency is included in the geno mask; X * the frequency can be from 0 to 7. 0's will also X * be skipped during generation. X * X * Guidelines for color assignment: X * X * * Use the same color for all `growth stages' of a monster (ex. X * little dog/big dog, baby naga/full-grown naga. Other than this, X * the combination of monster class and color should be unique! X * X * * Use described color wherever possible. If the class has `real' X * members with strong color associations, use those. X * X * * Favor `cool' colors for cold-resistent monsters, `warm' ones for X * fire-resistent ones. X * X * * Try to reserve purple (magenta) for powerful `ruler' monsters (queen X * bee, kobold lord, etc.). X * X * The aim in assigning colors is to be consistent enough so a player can X * become `intuitive' about them, deducing some or all of these rules X * unconsciously. Use your common sense. X */ X X#ifndef SPLITMON_2 Xstruct permonst mons[] = { X/* ants */ X { "giant ant", S_ANT, 2, 18, 3, 0, 0, (G_GENO | G_SGROUP | 3), X { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 1, 10, 0, MS_SILENT, M1_VSMALL | M1_ANIMAL | M1_NOHANDS | M1_EGGS, X M2_HOSTILE | M2_CARNIVORE, C(BLACK) }, X { "soldier ant", S_ANT, 3, 18, 3, 0, 0, (G_GENO | G_SGROUP | 2), X { { AT_BITE, AD_PHYS, 2, 4 }, { AT_STNG, AD_DRST, 3, 4 }, X NO_ATTK, NO_ATTK, NO_ATTK }, 2, 20, 0, MS_SILENT, X M1_VSMALL | M1_ANIMAL | M1_NOHANDS | M1_EGGS | M1_POIS | M1_POIS_RES, X M2_HOSTILE | M2_CARNIVORE, C(BLUE) }, X { "fire ant", S_ANT, 3, 18, 3, 10, 0, (G_GENO | G_SGROUP | 1), X { { AT_BITE, AD_FIRE, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 3, 30, 0, MS_SILENT, M1_VSMALL | M1_ANIMAL | M1_NOHANDS | M1_EGGS | X M1_FIRE_RES, M2_HOSTILE | M2_CARNIVORE, C(RED) }, X { "giant beetle", S_ANT, 5, 6, 4, 0, 0, (G_GENO | 3), X { { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 1, 10, 0, MS_SILENT, M1_BIG | M1_ANIMAL | M1_NOHANDS | M1_POIS | X M1_POIS_RES, M2_HOSTILE | M2_CARNIVORE, C(BLACK) }, X { "killer bee", S_ANT, 1, 18, -4, 0, 0, (G_GENO | G_LGROUP | 2), X { { AT_STNG, AD_DRST, 1, 3 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 1, 10, 0, MS_BUZZ, M1_VSMALL | M1_ANIMAL | M1_FLY | M1_NOHANDS | X M1_POIS | M1_POIS_RES, M2_HOSTILE, C(YELLOW) }, X { "queen bee", S_ANT, 9, 24, -6, 0, 0, (G_GENO | G_NOGEN), X { { AT_STNG, AD_DRST, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 1, 10, 0, MS_BUZZ, M1_VSMALL | M1_ANIMAL | M1_FLY | M1_NOHANDS | X M1_POIS | M1_POIS_RES | M1_PRINCE, M2_HOSTILE, C(MAGENTA) }, X/* blobs */ X { "acid blob", S_BLOB, 1, 3, 8, 0, 0, (G_GENO | 2), X { { AT_NONE, AD_ACID, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 3, 30, 0, MS_SILENT, M1_VSMALL | M1_NOEYES | M1_NOHANDS | X M1_POIS | M1_SLEE_RES | M1_STON_RES, X M2_WANDER | M2_NOLIMBS | M2_AMORPHOUS, C(GREEN) }, X { "gelatinous cube", S_BLOB, 6, 6, 8, 0, 0, (G_GENO | 2), X { { AT_TUCH, AD_PLYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 30, 300, 0, MS_SILENT, M1_BIG | M1_NOEYES | M1_NOHANDS | X M1_FIRE_RES | M1_COLD_RES | M1_ELEC_RES | M1_SLEE_RES, X M2_WANDER | M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE, C(CYAN) }, X { "quivering blob", S_BLOB, 5, 1, 8, 0, 0, (G_GENO | 2), X { { AT_TUCH, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 20, 200, 0, MS_SILENT, M1_NOEYES | M1_NOHANDS | M1_POIS_RES, X M2_WANDER | M2_HOSTILE | M2_NOLIMBS, C(WHITE) }, X/* cockatrice */ X { "cockatrice", S_COCKATRICE, 5, 6, 6, 30, 0, (G_GENO | 5), X { { AT_BITE, AD_PHYS, 1, 3 }, { AT_TUCH, AD_STON, 0, 0 }, X NO_ATTK, NO_ATTK, NO_ATTK }, 3, 30, 0, MS_HISS, M1_VSMALL | X M1_ANIMAL | M1_NOHANDS | M1_EGGS | M1_POIS_RES | M1_STON_RES, X M2_HOSTILE, C(YELLOW) }, X/* dog */ X { "little dog", S_DOG, 2, 18, 6, 0, 0, (G_GENO | 1), X { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 15, 150, 0, MS_BARK, X M1_VSMALL | M1_ANIMAL | M1_NOHANDS, M2_CARNIVORE, C(BLUE) }, X { "dog", S_DOG, 4, 16, 5, 0, 0, (G_GENO | 1), X { { AT_BITE, AD_PHYS, 1 ,6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 20, 200, 0, MS_BARK, M1_ANIMAL | M1_NOHANDS, M2_CARNIVORE, X C(BLUE) }, X { "large dog", S_DOG, 6, 15, 4, 0, 0, G_GENO, X { { AT_BITE, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 25, 250, 0, MS_BARK, M1_ANIMAL | M1_NOHANDS, X M2_STRONG | M2_CARNIVORE, C(BLUE) }, X { "jackal", S_DOG, 0, 12, 7, 0, 0, (G_GENO | G_SGROUP | 3), X { { AT_BITE, AD_PHYS, 1, 2 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 25, 250, 0, MS_BARK, M1_VSMALL | M1_ANIMAL | M1_NOHANDS, X M2_HOSTILE | M2_CARNIVORE, C(BROWN) }, X { "jackalwere", S_DOG, 2, 12, 7, 10, -7, G_NOGEN | G_NOCORPSE, X { { AT_BITE, AD_WERE, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 25, 250, 0, MS_BARK, M1_NOPOLY | M1_WERE | M1_NOHANDS | M1_POIS | X M1_REGEN, M2_HOSTILE | M2_CARNIVORE, C(BROWN) }, X { "wolf", S_DOG, 5, 12, 4, 0, 0, (G_GENO | G_SGROUP | 2), X { { AT_BITE, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 25, 250, 0, MS_BARK, X M1_ANIMAL | M1_NOHANDS, M2_HOSTILE | M2_CARNIVORE, C(BROWN) }, X { "wolfwere", S_DOG, 5, 12, 4, 20, -7, G_NOGEN | G_NOCORPSE, X { { AT_BITE, AD_WERE, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 25, 250, 0, MS_BARK, M1_NOPOLY | M1_WERE | M1_NOHANDS | M1_POIS | X M1_REGEN, M2_HOSTILE | M2_CARNIVORE, C(BROWN) }, X { "winter wolf", S_DOG, 7, 12, 4, 0, 0, (G_GENO | 1), X { { AT_BITE, AD_PHYS, 2, 6 }, { AT_BREA, AD_COLD, 2, 6 }, X NO_ATTK, NO_ATTK, NO_ATTK, }, X 30, 300, 0, MS_BARK, M1_BIG | M1_ANIMAL | M1_NOHANDS | M1_COLD_RES, X M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(WHITE) }, X { "warg", S_DOG, 7, 12, 4, 0, -5, (G_GENO | G_SGROUP | 2), X { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 35, 350, 0, MS_BARK, M1_ANIMAL | M1_NOHANDS, X M2_HOSTILE | M2_CARNIVORE, C(BROWN) }, X { "hell hound pup", S_DOG, 7, 12, 4, 20, -5, X (G_HELL | G_GENO | G_SGROUP | 1), X { { AT_BITE, AD_PHYS, 2, 6 }, { AT_BREA, AD_FIRE, 2, 6 }, X NO_ATTK, NO_ATTK, NO_ATTK }, X 20, 200, 0, MS_BARK, M1_VSMALL | M1_ANIMAL | M1_NOHANDS | M1_FIRE_RES, X M2_HOSTILE | M2_CARNIVORE, C(RED) }, X { "hell hound", S_DOG, 12, 14, 2, 20, 0, (G_HELL | G_GENO | 1), X { { AT_BITE, AD_PHYS, 3, 6 }, { AT_BREA, AD_FIRE, 3, 6 }, X NO_ATTK, NO_ATTK, NO_ATTK, }, X 30, 300, 0, MS_BARK, M1_BIG | M1_ANIMAL | M1_NOHANDS | M1_FIRE_RES, X M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(RED) }, X#ifdef CHARON X { "Cerberus", S_DOG, 12, 10, 2, 20, -7, (G_HELL | G_UNIQ | 1), X { { AT_BITE, AD_PHYS, 3, 6 }, { AT_BITE, AD_PHYS, 3, 6 }, X { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK }, X 50, 350, 0, MS_BARK, M1_NOPOLY | M1_ANIMAL | M1_NOHANDS | M1_FIRE_RES, X M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(RED) }, X#endif X/* eyes */ X { "floating eye", S_EYE, 2, 1, 9, 10, 0, (G_GENO | 5), X { { AT_NONE, AD_PLYS, 0, 70 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 1, 10, 0, MS_SILENT, M1_FLY | M1_NOHANDS, M2_HOSTILE | M2_NOLIMBS, X C(BLUE)}, X { "freezing sphere", S_EYE, 6, 13, 4, 0, 0, (G_GENO | 2), X { { AT_EXPL, AD_COLD, 4, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 1, 10, 0, MS_SILENT, M1_FLY | M1_NOHANDS | M1_COLD_RES, M2_HOSTILE | X M2_NOLIMBS, C(WHITE) }, X/* felines */ X { "kitten", S_FELINE, 2, 18, 6, 0, 0, (G_GENO | 1), X { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 15, 150, 0, MS_MEW, M1_VSMALL | M1_ANIMAL | M1_NOHANDS, X M2_WANDER | M2_CARNIVORE, C(BLUE) }, X { "housecat", S_FELINE, 4, 16, 5, 0, 0, (G_GENO | 1), X { { AT_BITE, AD_PHYS, 1 ,6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 20, 200, 0, MS_MEW, M1_ANIMAL | M1_NOHANDS, M2_CARNIVORE, C(BLUE) }, X { "large cat", S_FELINE, 6, 15, 4, 0, 0, G_GENO, X { { AT_BITE, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 25, 250, 0, MS_MEW, M1_BIG | M1_ANIMAL | M1_NOHANDS, X M2_STRONG | M2_CARNIVORE, C(BLUE) }, X { "jaguar", S_FELINE, 5, 15, 6, 0, 0, (G_GENO | 2), X { { AT_CLAW, AD_PHYS, 1, 8 }, { AT_CLAW, AD_PHYS, 1, 8 }, X { AT_BITE, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK }, X 30, 300, 0, MS_GROWL, M1_ANIMAL | M1_NOHANDS, X M2_HOSTILE | M2_CARNIVORE, C(YELLOW) }, X/* gremlins */ X { "gremlin", S_GREMLIN, 5, 12, 2, 25, -9, (G_GENO | 2), X { { AT_CLAW, AD_PHYS, 1, 6 }, { AT_CLAW, AD_PHYS, 1, 6 }, X { AT_BITE, AD_PHYS, 1, 4 }, { AT_CLAW, AD_CURS, 0, 0 }, NO_ATTK }, X 10, 30, 0, MS_LAUGH, M1_VSMALL | M1_SWIM | M1_HUMANOID | M1_POIS | X M1_STALK, 0, C(GREEN) }, X/* humanoids */ X#ifdef TOLKIEN X { "hobbit", S_HUMANOID, 1, 9, 7, 0, 6, (G_GENO | 2), X { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 20, 200, 0, MS_HUMANOID, M1_HUMANOID | M1_COLLECT, 0, C(HI_MON) }, X#endif X { "bugbear", S_HUMANOID, 3, 9, 5, 0, -6, (G_GENO | 1), X { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 25, 250, 0, MS_GROWL, M1_BIG | M1_HUMANOID | M1_COLLECT, X M2_STRONG, C(BROWN) }, X { "dwarf", S_HUMANOID, 2, 6, 4, 10, 4, (G_GENO | 3), X { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 30, 300, 0, MS_HUMANOID, M1_HUMANOID | M1_GREEDY | M1_JEWELS | X M1_COLLECT, M2_DWARF | M2_TUNNEL | M2_NEEDPICK | M2_STRONG, C(HI_MON)}, X { "dwarf lord", S_HUMANOID, 4, 6, 4, 10, 5, (G_GENO | 2), X { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 }, X NO_ATTK, NO_ATTK, NO_ATTK }, 30, 300, 0, MS_HUMANOID, X M1_HUMANOID | M1_LORD | M1_GREEDY | M1_JEWELS | M1_COLLECT, X M2_DWARF | M2_TUNNEL | M2_NEEDPICK | M2_STRONG, C(HI_MON) }, X { "dwarf king", S_HUMANOID, 6, 6, 4, 20, 6, (G_GENO | 1), X { { AT_WEAP, AD_PHYS, 2, 6 }, { AT_WEAP, AD_PHYS, 2, 6 }, X NO_ATTK, NO_ATTK, NO_ATTK }, 30, 300, 0, MS_HUMANOID, X M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT | M1_PRINCE, X M2_DWARF | M2_TUNNEL | M2_NEEDPICK | M2_STRONG, C(MAGENTA) }, X/* imps & other minor demons/devils */ X { "manes", S_IMP, 1, 3, 7, 0, -7, (G_GENO | G_LGROUP | G_NOCORPSE | 1), X { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 }, X { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK }, X 10, 100, 0, MS_JEER, M1_VSMALL | M1_POIS | M1_STALK, 0, C(RED) }, X { "homunculus", S_IMP, 2, 12, 6, 10, -7, (G_GENO | 2), X { { AT_BITE, AD_SLEE, 1, 3 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 20, 200, 0, MS_SILENT, M1_VSMALL | M1_FLY | M1_POIS | M1_POIS_RES | X M1_SLEE_RES | M1_STALK, 0, C(GREEN) }, X { "lemure", S_IMP, 3, 3, 7, 0, -7, X (G_HELL | G_GENO | G_LGROUP | G_NOCORPSE | 1), X { { AT_CLAW, AD_PHYS, 1, 3 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 10, 100, 0, MS_SILENT, M1_POIS | M1_SLEE_RES | M1_REGEN | M1_STALK, X M2_HOSTILE | M2_WANDER, C(RED) }, X { "imp", S_IMP, 3, 12, 2, 20, -7, (G_GENO | 1), X { { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 1, 10, 0, MS_JEER, M1_VSMALL | M1_REGEN | M1_STALK, X M2_WANDER, C(RED) }, X { "quasit", S_IMP, 3, 15, 2, 20, -7, (G_GENO | 2), X { { AT_CLAW, AD_DRDX, 1, 2 }, { AT_CLAW, AD_DRDX, 1, 2 }, X { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK }, X 20, 200, 0, MS_SILENT, M1_VSMALL | M1_POIS_RES | M1_REGEN | M1_STALK, X 0, C(RED) }, X { "tengu", S_IMP, 6, 13, 5, 30, 7, (G_GENO | 3), X { { AT_BITE, AD_PHYS, 1, 7 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 30, 300, 0, MS_SQAWK, M1_VSMALL | M1_POIS_RES | M1_TPORT | X M1_TPORT_CONTROL | M1_STALK, 0, C(CYAN) }, X/* j ??? */ X/* kobolds */ X { "kobold", S_KOBOLD, 0, 6, 7, 0, -2, (G_GENO | 1), X { { AT_WEAP, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 10, 100, 0, MS_ORC, M1_HUMANOID | M1_POIS | M1_COLLECT, X M2_HOSTILE, C(BROWN) }, X { "large kobold", S_KOBOLD, 1, 6, 6, 0, -3, (G_GENO | 1), X { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 15, 150, 0, MS_ORC, M1_HUMANOID | M1_POIS | M1_COLLECT, X M2_HOSTILE, C(BROWN) }, X { "kobold lord", S_KOBOLD, 2, 6, 5, 0, -4, (G_GENO | 1), X { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 20, 200, 0, MS_ORC, M1_HUMANOID | M1_POIS | M1_COLLECT | M1_LORD, X M2_HOSTILE, C(MAGENTA) }, X { "kobold shaman", S_KOBOLD, 1, 6, 6, 10, -4, (G_GENO | 1), X { { AT_MAGC, AD_SPEL, 0, 0 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 15, 150, 0, MS_ORC, M1_HUMANOID | M1_POIS | M1_MAGIC, M2_HOSTILE, X C(BROWN) }, X/* liches */ X { "lich", S_LICH, 11, 6, 0, 30, -9, (G_GENO | 1), X { { AT_TUCH, AD_COLD, 1, 10 }, { AT_MAGC, AD_SPEL, 0, 0 }, X NO_ATTK, NO_ATTK, NO_ATTK }, X 30, 100, 0, MS_MUMBLE, M1_HUMANOID | M1_UNDEAD | M1_POIS | X M1_COLD_RES | M1_REGEN, M2_HOSTILE, C(BROWN) }, X { "demilich", S_LICH, 14, 9, -2, 60, -12, (G_GENO | 1), X { { AT_TUCH, AD_COLD, 3, 4 }, { AT_MAGC, AD_SPEL, 0, 0 }, X NO_ATTK, NO_ATTK, NO_ATTK }, X 30, 100, 0, MS_MUMBLE, M1_HUMANOID | M1_UNDEAD | M1_POIS | X M1_COLD_RES | M1_REGEN, M2_HOSTILE, C(BROWN) }, X { "master lich", S_LICH, 17, 9, -4, 90, -15, (G_HELL | G_GENO | 1), X { { AT_TUCH, AD_COLD, 3, 6 }, { AT_MAGC, AD_SPEL, 0, 0 }, X NO_ATTK, NO_ATTK, NO_ATTK }, X 30, 100, 0, MS_MUMBLE, M1_HUMANOID | M1_UNDEAD | M1_POIS | X M1_FIRE_RES | M1_COLD_RES | M1_REGEN, M2_HOSTILE, C(BROWN) }, X/* mimics */ X { "small mimic", S_MIMIC, 7, 3, 7, 0, 0, (G_GENO | 2), X { { AT_CLAW, AD_PHYS, 3, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 20, 200, 0, MS_SILENT, M1_ANIMAL | M1_NOEYES | M1_NOHANDS, X M2_HOSTILE | M2_HIDE | M2_NOLIMBS | M2_CARNIVORE, C(BROWN) }, X { "large mimic", S_MIMIC, 8, 3, 7, 10, 0, (G_GENO | 1), X { { AT_CLAW, AD_STCK, 3, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 40, 400, 0, MS_SILENT, M1_BIG | M1_ANIMAL | M1_NOEYES | M1_NOHANDS, X M2_HOSTILE | M2_STRONG | M2_HIDE | M2_NOLIMBS | M2_CARNIVORE, X C(BROWN) }, X { "giant mimic", S_MIMIC, 9, 3, 7, 20, 0, (G_GENO | 1), X { { AT_CLAW, AD_STCK, 3, 6 }, { AT_CLAW, AD_STCK, 3, 6 }, X NO_ATTK, NO_ATTK, NO_ATTK }, X 60, 500, 0, MS_SILENT, M1_BIG | M1_ANIMAL | M1_NOEYES | M1_NOHANDS, X M2_HOSTILE | M2_STRONG | M2_HIDE | M2_NOLIMBS | M2_CARNIVORE, X C(BROWN) }, X/* nagas */ X { "red naga hatchling", S_NAGA, 3, 10, 6, 0, 0, G_GENO, X { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 20, 100, 0, MS_MUMBLE, M1_BIG | M1_NOHANDS | M1_POIS_RES | X M1_FIRE_RES, M2_STRONG | M2_NOLIMBS | M2_THICK_HIDE, C(RED) }, X { "black naga hatchling", S_NAGA, 3, 10, 6, 0, 0, G_GENO, X { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 20, 100, 0, MS_MUMBLE, M1_BIG | M1_NOHANDS | M1_POIS_RES | X M1_STON_RES, M2_STRONG | M2_NOLIMBS | M2_THICK_HIDE, C(BLACK) }, X { "golden naga hatchling", S_NAGA, 3, 10, 6, 0, 0, G_GENO, X { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 20, 100, 0, MS_MUMBLE, M1_BIG | M1_NOHANDS | M1_POIS_RES, M2_STRONG | X M2_NOLIMBS | M2_THICK_HIDE, C(HI_GOLD) }, X { "guardian naga hatchling", S_NAGA, 3, 10, 6, 0, 0, G_GENO, X { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 20, 100, 0, MS_MUMBLE, M1_BIG | M1_NOHANDS | M1_POIS_RES, M2_STRONG | X M2_NOLIMBS | M2_THICK_HIDE, C(GREEN) }, X { "red naga", S_NAGA, 6, 12, 4, 0, -4, (G_GENO | 1), X { { AT_BITE, AD_PHYS, 2, 4 }, { AT_BREA, AD_FIRE, 2, 6 }, X NO_ATTK, NO_ATTK, NO_ATTK }, 60, 400, 0, MS_MUMBLE, X M1_BIG | M1_NOHANDS | M1_EGGS | M1_POIS_RES | M1_FIRE_RES, X M2_STRONG | M2_NOLIMBS | M2_THICK_HIDE, C(RED) }, X { "black naga", S_NAGA, 8, 14, 2, 10, 4, (G_GENO | 1), X { { AT_BITE, AD_PHYS, 2, 6 }, { AT_SPIT, AD_ACID, 0, 0 }, X NO_ATTK, NO_ATTK, NO_ATTK }, 60, 400, 0, MS_MUMBLE, X M1_BIG | M1_NOHANDS | M1_EGGS | M1_POIS | M1_POIS_RES | M1_STON_RES, X M2_STRONG | M2_NOLIMBS | M2_THICK_HIDE, C(BLACK) }, X { "golden naga", S_NAGA, 10, 14, 2, 70, 5, (G_GENO | 1), X { { AT_BITE, AD_PHYS, 2, 6 }, { AT_MAGC, AD_SPEL, 4, 6 }, X NO_ATTK, NO_ATTK, NO_ATTK }, X 60, 400, 0, MS_MUMBLE, M1_BIG | M1_NOHANDS | M1_EGGS | M1_POIS_RES, X M2_STRONG | M2_NOLIMBS | M2_THICK_HIDE, C(HI_GOLD) }, X { "guardian naga", S_NAGA, 12, 16, 0, 50, 7, (G_GENO | 1), X { { AT_BITE, AD_PLYS, 1, 6 }, { AT_HUGS, AD_PHYS, 2, 4 }, X { AT_SPIT, AD_ACID, 1, 6 }, NO_ATTK, NO_ATTK }, X 60, 400, 0, MS_MUMBLE, M1_BIG | M1_NOHANDS | M1_EGGS | M1_POIS_RES, X M2_STRONG | M2_NOLIMBS | M2_THICK_HIDE, C(GREEN) }, X/* orcs */ X { "goblin", S_ORC, 0, 6, 6, 0, -3, (G_GENO | 2), X { { AT_WEAP, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 10, 100, 0, MS_ORC, M1_HUMANOID | M1_COLLECT, M2_ORC, C(YELLOW) }, X { "hobgoblin", S_ORC, 1, 9, 6, 0, -4, (G_GENO | 2), X { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 20, 200, 0, MS_ORC, M1_HUMANOID | M1_COLLECT, M2_ORC | M2_STRONG, X C(RED)}, X /* "orc" for zombie corpses only; they don't get created at random */ X { "orc", S_ORC, 1, 9, 6, 0, -3, (G_GENO | G_NOGEN | G_LGROUP), X { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 15, 150, 0, MS_ORC, X M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT, X M2_ORC | M2_HOSTILE | M2_STRONG, C(BROWN) }, X { "hill orc", S_ORC, 2, 9, 6, 0, -4, (G_GENO | G_LGROUP | 2), X { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 20, 200, 0, MS_ORC, X M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT, X M2_ORC | M2_HOSTILE | M2_STRONG, C(BROWN) }, X#ifdef TOLKIEN X { "Mordor orc", S_ORC, 3, 5, 6, 0, -5, (G_GENO | G_LGROUP | 1), X { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 20, 200, 0, MS_ORC, X M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT, X M2_ORC | M2_HOSTILE | M2_STRONG, C(BROWN) }, X { "Uruk-hai", S_ORC, 3, 7, 5, 0, -4, (G_GENO | G_LGROUP | 1), X { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 30, 300, 0, MS_ORC, X M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT, X M2_ORC | M2_HOSTILE | M2_STRONG, C(BROWN) }, X#endif X { "orc shaman", S_ORC, 3, 9, 5, 10, -5, (G_GENO | 1), X { { AT_MAGC, AD_SPEL, 0, 0 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 30, 300, 0, MS_ORC, M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_MAGIC, X M2_ORC | M2_HOSTILE | M2_STRONG, C(BROWN) }, X { "orc-captain", S_ORC, 5, 5, 4, 0, -5, (G_GENO | 1), X { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 }, X NO_ATTK, NO_ATTK, NO_ATTK }, X 35, 350, 0, MS_ORC, X M1_HUMANOID | M1_GREEDY | M1_JEWELS | M1_COLLECT, X M2_ORC | M2_HOSTILE | M2_STRONG, C(BROWN) }, X/* piercers */ X { "rock piercer", S_PIERCER, 3, 1, 3, 0, 0, (G_GENO | 2), X { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 20, 200, 0, MS_SILENT, M1_ANIMAL | M1_NOEYES | M1_NOHANDS, X M2_HOSTILE | M2_HIDE | M2_NOLIMBS | M2_CARNIVORE, C(GRAY) }, X { "iron piercer", S_PIERCER, 5, 1, 0, 0, 0, (G_GENO | 1), X { { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 40, 300, 0, MS_SILENT, M1_ANIMAL | M1_NOEYES | M1_NOHANDS, X M2_HOSTILE | M2_HIDE | M2_NOLIMBS | M2_CARNIVORE, C(GRAY) }, X/* quadrupeds (generic) */ X { "rothe", S_QUADRUPED, 2, 9, 7, 0, 0, (G_GENO | G_SGROUP | 4), X { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_BITE, AD_PHYS, 1, 3 }, X { AT_BITE, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK }, X 10, 100, 0, MS_SILENT, M1_ANIMAL | M1_NOHANDS, X M2_HOSTILE | M2_CARNIVORE, C(WHITE) }, X { "osquip", S_QUADRUPED, 3, 12, 7, 0, 0, (G_GENO | G_SGROUP | 3), X { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 20, 200, 0, MS_SILENT, M1_ANIMAL | M1_NOHANDS, X M2_HOSTILE | M2_CARNIVORE, C(BROWN) }, X#ifdef TOLKIEN X { "mumakil", S_QUADRUPED, 5, 9, 0, 0, -2, (G_GENO | 1), X { { AT_BUTT, AD_PHYS, 4, 12 }, { AT_BITE, AD_PHYS, 2, 6 }, X NO_ATTK, NO_ATTK, NO_ATTK }, X 70, 500, 0, MS_SILENT, M1_ANIMAL | M1_NOHANDS | M1_BIG, X M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE, C(GRAY) }, X#endif X { "leocrotta", S_QUADRUPED, 6, 18, 4, 10, 0, (G_GENO | 2), X { { AT_CLAW, AD_PHYS, 2, 6 }, { AT_BITE, AD_PHYS, 2, 6 }, X { AT_CLAW, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK }, X 50, 500, 0, MS_IMITATE, M1_BIG | M1_ANIMAL | M1_NOHANDS, X M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(RED) }, X { "wumpus", S_QUADRUPED, 8, 3, 2, 10, 0, (G_GENO | 1), X { { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 50, 500, 0, MS_SILENT, M1_BIG | M1_ANIMAL | M1_NOHANDS, X M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(HI_MON) }, X { "titanothere", S_QUADRUPED, 12, 12, 6, 0, 0, (G_GENO | 2), X { { AT_CLAW, AD_PHYS, 2, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 65, 650, 0, MS_SILENT, M1_BIG | M1_ANIMAL | M1_NOHANDS, X M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE, C(GRAY) }, X { "baluchitherium", S_QUADRUPED, 14, 12, 5, 0, 0, (G_GENO | 2), X { { AT_CLAW, AD_PHYS, 5, 4 }, { AT_CLAW, AD_PHYS, 5, 4 }, X NO_ATTK, NO_ATTK, NO_ATTK }, X 80, 800, 0, MS_SILENT, M1_BIG | M1_ANIMAL | M1_NOHANDS, X M2_HOSTILE | M2_STRONG | M2_HERBIVORE | M2_THICK_HIDE, C(GRAY) }, X/* rodents */ X { "sewer rat", S_RODENT, 0, 12, 7, 0, 0, (G_GENO | G_SGROUP | 1), X { { AT_BITE, AD_PHYS, 1, 3 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 2, 20, 0, MS_SQEEK, M1_VSMALL | M1_ANIMAL | M1_NOHANDS, X M2_HOSTILE | M2_CARNIVORE, C(BROWN) }, X { "giant rat", S_RODENT, 1, 10, 7, 0, 0, (G_GENO | G_SGROUP | 2), X { { AT_BITE, AD_PHYS, 1, 3 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 3, 30, 0, MS_SQEEK, M1_VSMALL | M1_ANIMAL | M1_NOHANDS, X M2_HOSTILE | M2_CARNIVORE, C(BROWN) }, X { "rabid rat", S_RODENT, 2, 12, 6, 0, 0, (G_GENO | 1), X { { AT_BITE, AD_DRCO, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 3, 10, 0, MS_SQEEK, M1_VSMALL | M1_ANIMAL | M1_NOHANDS | M1_POIS, X M2_HOSTILE | M2_CARNIVORE, C(BROWN) }, X { "ratwere", S_RODENT, 2, 12, 6, 10, -7, G_NOGEN | G_NOCORPSE, X { { AT_BITE, AD_WERE, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 3, 30, 0, MS_SQEEK, M1_VSMALL | M1_WERE | M1_NOHANDS | M1_NOPOLY | X M1_POIS | M1_REGEN, M2_HOSTILE | M2_CARNIVORE, C(BROWN) }, X { "rock mole", S_RODENT, 3, 3, 0, 20, 0, (G_GENO | 2), X { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 3, 30, 0, MS_SILENT, M1_VSMALL | M1_ANIMAL | M1_NOHANDS | X M1_GREEDY | M1_JEWELS | M1_COLLECT, M2_HOSTILE | M2_TUNNEL, C(BROWN)}, X/* spiders and scorpions */ X { "cave spider", S_SPIDER, 1, 12, 3, 0, 0, (G_GENO | G_SGROUP | 2), X { { AT_BITE, AD_PHYS, 1, 2 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 5, 50, 0, MS_SILENT, M1_VSMALL | M1_ANIMAL | M1_NOHANDS | M1_EGGS | X M1_POIS_RES, M2_HOSTILE | M2_CONCEAL | M2_CARNIVORE, C(WHITE) }, X { "scorpion", S_SPIDER, 5, 15, 3, 0, 0, (G_GENO | 2), X { { AT_CLAW, AD_PHYS, 1, 2 }, { AT_CLAW, AD_PHYS, 1, 2 }, X { AT_STNG, AD_DRST, 1, 4 }, NO_ATTK, NO_ATTK }, X 10, 100, 0, MS_SILENT, M1_VSMALL | M1_ANIMAL | M1_NOHANDS | M1_EGGS | X M1_POIS, M2_HOSTILE | M2_CONCEAL | M2_CARNIVORE, C(RED) }, X { "giant spider", S_SPIDER, 5, 15, 4, 0, 0, (G_GENO | 1), X { { AT_BITE, AD_DRST, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 10, 100, 0, MS_SILENT, X M1_BIG | M1_ANIMAL | M1_NOHANDS | M1_EGGS | M1_POIS | M1_POIS_RES, X M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(MAGENTA) }, X/* trappers, lurkers, etc... */ X { "lurker above", S_TRAPPER, 10, 3, 3, 0, 0, (G_GENO | 2), X { { AT_ENGL, AD_DGST, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 40, 350, 0, MS_SILENT, X M1_BIG | M1_ANIMAL | M1_NOEYES | M1_NOHANDS | M1_STALK | M1_FLY, X M2_HOSTILE | M2_STRONG | M2_NOLIMBS | M2_CARNIVORE, C(GRAY) }, X { "trapper", S_TRAPPER, 12, 3, 3, 0, 0, (G_GENO | 2), X { { AT_ENGL, AD_DGST, 1, 10 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 40, 350, 0, MS_SILENT, X M1_BIG | M1_ANIMAL | M1_NOEYES | M1_NOHANDS | M1_STALK, X M2_HOSTILE | M2_STRONG | M2_NOLIMBS | M2_CARNIVORE, C(GRAY) }, X/* unicorns */ X { "white unicorn", S_UNICORN, 4, 24, 2, 70, 7, (G_GENO | 2), X { { AT_BUTT, AD_PHYS, 1, 12 }, { AT_KICK, AD_PHYS, 1, 6 }, X NO_ATTK, NO_ATTK, NO_ATTK }, X 30, 300, 0, MS_NEIGH, M1_BIG | M1_NOHANDS | M1_POIS_RES | M1_JEWELS, X M2_WANDER | M2_STRONG | M2_HERBIVORE, C(WHITE) }, X { "gray unicorn", S_UNICORN, 4, 24, 2, 70, 0, (G_GENO | 1), X { { AT_BUTT, AD_PHYS, 1, 12 }, { AT_KICK, AD_PHYS, 1, 6 }, X NO_ATTK, NO_ATTK, NO_ATTK }, X 30, 300, 0, MS_NEIGH, M1_BIG | M1_NOHANDS | M1_POIS_RES | M1_JEWELS, X M2_WANDER | M2_STRONG | M2_HERBIVORE, C(GRAY) }, X { "black unicorn", S_UNICORN, 4, 24, 2, 70, -7, (G_GENO | 1), X { { AT_BUTT, AD_PHYS, 1, 12 }, { AT_KICK, AD_PHYS, 1, 6 }, X NO_ATTK, NO_ATTK, NO_ATTK }, X 30, 300, 0, MS_NEIGH, M1_BIG | M1_NOHANDS | M1_POIS_RES | M1_JEWELS, X M2_WANDER | M2_STRONG | M2_HERBIVORE, C(BLACK) }, X/* vortices */ X { "fog cloud", S_VORTEX, 3, 1, 0, 0, 0, (G_GENO | G_NOCORPSE | 2), X { { AT_ENGL, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 10, 0, 0, MS_SILENT, X M1_FLY | M1_NOEYES | M1_NOHANDS | M1_POIS_RES, M2_HOSTILE | X M2_NOLIMBS, C(GRAY) }, X { "dust vortex", S_VORTEX, 4, 20, 2, 30, 0, (G_GENO | G_NOCORPSE | 2), X { { AT_ENGL, AD_BLND, 2, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 20, 0, 0, MS_SILENT, X M1_FLY | M1_NOEYES | M1_NOHANDS | M1_POIS_RES, M2_HOSTILE | X M2_NOLIMBS, C(BROWN) }, X { "energy vortex", S_VORTEX, 6, 20, 2, 30, 0, (G_GENO | G_NOCORPSE | 1), X { { AT_ENGL, AD_ELEC, 1, 6 }, { AT_ENGL, AD_DREN, 0, 0 }, X NO_ATTK, NO_ATTK, NO_ATTK }, 20, 0, 0, MS_SILENT, X M1_FLY | M1_NOEYES | M1_NOHANDS | M1_POIS_RES | M1_ELEC_RES, X M2_HOSTILE | M2_NOLIMBS, C(BLUE) }, X { "ice vortex", S_VORTEX, 5, 20, 2, 30, 0, (G_GENO | G_NOCORPSE | 1), X { { AT_ENGL, AD_COLD, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 30, 0, 0, MS_SILENT, X M1_FLY | M1_NOEYES | M1_NOHANDS | M1_POIS_RES | M1_COLD_RES, X M2_HOSTILE | M2_NOLIMBS, C(CYAN) }, X { "steam vortex", S_VORTEX, 7, 22, 2, 30, 0, X (G_HELL | G_GENO | G_NOCORPSE | 2), X { { AT_ENGL, AD_FIRE, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 30, 0, 0, MS_SILENT, X M1_FLY | M1_NOEYES | M1_NOHANDS | M1_POIS_RES | M1_FIRE_RES, X M2_HOSTILE | M2_NOLIMBS, C(BRIGHT|BLUE) }, X { "fire vortex", S_VORTEX, 8, 22, 2, 30, 0, X (G_HELL | G_GENO | G_NOCORPSE | 1), X { { AT_ENGL, AD_FIRE, 1, 10 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 3, 0, 0, MS_SILENT, X M1_FLY | M1_NOEYES | M1_NOHANDS | M1_POIS_RES | M1_FIRE_RES, X M2_HOSTILE | M2_NOLIMBS, C(YELLOW) }, X/* worms */ X#ifdef WORM X { "baby long worm", S_WORM, 8, 3, 5, 0, 0, G_GENO, X { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 25, 250, 0, MS_SILENT, M1_ANIMAL | M1_NOHANDS, M2_HOSTILE | X M2_NOLIMBS | M2_CARNIVORE, C(BROWN) }, X#endif X { "baby purple worm", S_WORM, 8, 3, 5, 0, 0, G_GENO, X { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 25, 250, 0, MS_SILENT, M1_ANIMAL | M1_NOHANDS, M2_HOSTILE | X M2_NOLIMBS | M2_CARNIVORE, C(MAGENTA) }, X#ifdef WORM X { "long worm", S_WORM, 8, 3, 5, 10, 0, (G_GENO | 2), X { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 50, 500, 0, MS_SILENT, X M1_BIG | M1_ANIMAL | M1_NOHANDS | M1_NOPOLY | M1_EGGS, X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_NOLIMBS | M2_CARNIVORE, X C(BROWN) }, X#endif X { "purple worm", S_WORM, 15, 9, 6, 20, 0, (G_GENO | 2), X { { AT_BITE, AD_PHYS, 2, 8 }, { AT_ENGL, AD_DGST, 1, 10 }, X NO_ATTK, NO_ATTK, NO_ATTK }, 70, 700, 0, MS_SILENT, X M1_BIG | M1_ANIMAL | M1_NOHANDS | M1_EGGS, X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_NOLIMBS | M2_CARNIVORE, X C(MAGENTA)}, X/* xan */ X { "xan", S_XAN, 7, 18, -4, 0, 0, (G_GENO | 3), X { { AT_STNG, AD_LEGS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 30, 300, 0, MS_BUZZ, M1_VSMALL | M1_FLY | M1_ANIMAL | M1_NOHANDS | X M1_POIS | M1_POIS_RES, M2_HOSTILE, C(RED) }, X/* yellow light */ X { "yellow light", S_YLIGHT, 3, 15, 0, 0, 0, (G_GENO | 4), X { { AT_EXPL, AD_BLND, 10, 20 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 1, 10, 0, MS_SILENT, M1_FLY | M1_NOHANDS, M2_HOSTILE | M2_NOLIMBS, X C(BRIGHT|YELLOW)}, X/* zruty */ X { "zruty", S_ZRUTY, 9, 8, 3, 0, 0, (G_GENO | 2), X { { AT_CLAW, AD_PHYS, 3, 4 }, { AT_CLAW, AD_PHYS, 3, 4 }, X { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK }, X 60, 600, 0, MS_SILENT, M1_BIG | M1_ANIMAL | M1_HUMANOID, X M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(BROWN) }, X/* Apes */ X { "ape", S_APE, 4, 12, 6, 0, 0, (G_GENO | G_SGROUP | 2), X { { AT_CLAW, AD_PHYS, 1, 3 }, { AT_CLAW, AD_PHYS, 1, 3 }, X { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK }, X 50, 500, 0, MS_GROWL, M1_BIG | M1_ANIMAL | M1_HUMANOID, X M2_STRONG | M2_CARNIVORE, C(BROWN) }, X { "carnivorous ape", S_APE, 5, 12, 6, 0, 0, (G_GENO | 1), X { { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, X { AT_HUGS, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK }, X 55, 550, 0, MS_GROWL, M1_BIG | M1_ANIMAL | M1_HUMANOID, X M2_HOSTILE | M2_STRONG | M2_CARNIVORE, C(BROWN) }, X/* Bats */ X { "bat", S_BAT, 0, 22, 8, 0, 0, (G_GENO | G_SGROUP | 1), X { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 2, 20, 0, MS_SQEEK, M1_VSMALL | M1_FLY | M1_ANIMAL | M1_NOHANDS, X M2_WANDER | M2_CARNIVORE, C(BLACK) }, X { "giant bat", S_BAT, 2, 22, 7, 0, 0, (G_GENO | 2), X { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 3, 30, 0, MS_SQEEK, M1_FLY | M1_ANIMAL | M1_NOHANDS, X M2_WANDER | M2_HOSTILE | M2_CARNIVORE, C(BLACK) }, X { "vampire bat", S_BAT, 5, 20, 6, 0, 0, (G_GENO | 2), X { { AT_BITE, AD_PHYS, 1, 6 }, { AT_BITE, AD_DRST, 0, 0 }, X NO_ATTK, NO_ATTK, NO_ATTK }, X 3, 20, 0, MS_SQEEK, M1_VSMALL | M1_FLY | M1_ANIMAL | M1_UNDEAD | X M1_NOHANDS | M1_POIS | M1_REGEN, M2_HOSTILE, C(BLACK) }, X/* Centaurs */ X { "plains centaur", S_CENTAUR, 4, 18, 4, 0, 0, (G_GENO | 1), X { { AT_WEAP, AD_PHYS, 1, 6 }, { AT_KICK, AD_PHYS, 1, 6 }, X NO_ATTK, NO_ATTK, NO_ATTK}, X 50, 500, 0, MS_SILENT, M1_BIG | M1_COLLECT | M1_GREEDY, M2_STRONG, X C(BROWN) }, X { "forest centaur", S_CENTAUR, 5, 18, 3, 10, -1, (G_GENO | 1), X { { AT_WEAP, AD_PHYS, 1, 8 }, { AT_KICK, AD_PHYS, 1, 6 }, X NO_ATTK, NO_ATTK, NO_ATTK}, X 55, 600, 0, MS_SILENT, M1_BIG | M1_COLLECT | M1_GREEDY, M2_STRONG, X C(GREEN) }, X { "mountain centaur", S_CENTAUR, 6, 20, 2, 10, -3, (G_GENO | 1), X { { AT_WEAP, AD_PHYS, 1, 10 }, { AT_KICK, AD_PHYS, 1, 6 }, X { AT_KICK, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK }, X 55, 500, 0, MS_SILENT, M1_BIG | M1_COLLECT | M1_GREEDY, M2_STRONG, X C(BROWN)}, X/* Dragons */ X { "baby gray dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO, X { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 50, 500, 0, MS_ROAR, X M1_BIG | M1_FLY | M1_NOHANDS | M1_GREEDY | M1_JEWELS, X M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE, C(GRAY) }, X { "baby red dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO, X { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 50, 500, 0, MS_ROAR, X M1_BIG | M1_FLY | M1_NOHANDS | M1_GREEDY | M1_JEWELS | M1_FIRE_RES, X M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE, C(RED) }, X { "baby white dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO, X { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 50, 500, 0, MS_ROAR, X M1_BIG | M1_FLY | M1_NOHANDS | M1_GREEDY | M1_JEWELS | M1_COLD_RES, X M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE, C(WHITE) }, X { "baby blue dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO, X { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 50, 500, 0, MS_ROAR, X M1_BIG | M1_FLY | M1_NOHANDS | M1_GREEDY | M1_JEWELS | M1_ELEC_RES, X M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE, C(BLUE) }, X { "baby green dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO, X { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 50, 500, 0, MS_ROAR, X M1_BIG | M1_FLY | M1_NOHANDS | M1_GREEDY | M1_JEWELS | M1_POIS | X M1_POIS_RES, M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE, X C(GREEN)}, X { "baby orange dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO, X { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 50, 500, 0, MS_ROAR, X M1_BIG | M1_FLY | M1_NOHANDS | M1_GREEDY | M1_JEWELS | M1_SLEE_RES, X M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE, X C(ORANGE_COLORED) }, X { "baby black dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO, X { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 50, 500, 0, MS_ROAR, X M1_BIG | M1_FLY | M1_NOHANDS | M1_GREEDY | M1_JEWELS, X M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE, C(BLACK) }, X { "baby yellow dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO, X { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 50, 500, 0, MS_ROAR, X M1_BIG | M1_FLY | M1_NOHANDS | M1_GREEDY | M1_JEWELS, X M2_HOSTILE | M2_STRONG | M2_CARNIVORE | M2_THICK_HIDE, C(YELLOW) }, X { "gray dragon", S_DRAGON, 10, 9, -1, 20, 4, (G_GENO | 1), X { { AT_BREA, AD_MAGM, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 }, X { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK }, X 150, 1500, 0, MS_ROAR, M1_BIG | M1_FLY | M1_SEE_INVIS | M1_NOHANDS | X M1_EGGS | M1_GREEDY | M1_JEWELS | M1_MAGIC, X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE, X C(GRAY)}, X { "red dragon", S_DRAGON, 10, 9, -1, 20, -4, (G_GENO | 1), X { { AT_BREA, AD_FIRE, 6, 6 }, { AT_BITE, AD_PHYS, 3, 8 }, X { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK }, X 150, 1500, 0, MS_ROAR, M1_BIG | M1_FLY | M1_SEE_INVIS | M1_NOHANDS | X M1_EGGS | M1_FIRE_RES | M1_GREEDY | M1_JEWELS | M1_MAGIC, X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE, X C(RED)}, X { "orange dragon", S_DRAGON, 10, 9, -1, 20, 5, (G_GENO | 1), X { { AT_BREA, AD_SLEE, 4, 25 }, { AT_BITE, AD_PHYS, 3, 8 }, X { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK }, X 150, 1500, 0, MS_ROAR, M1_BIG | M1_FLY | M1_SEE_INVIS | M1_NOHANDS | X M1_EGGS | M1_SLEE_RES | M1_GREEDY | M1_JEWELS | M1_MAGIC, X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE, X C(ORANGE_COLORED)}, X { "white dragon", S_DRAGON, 10, 9, -1, 20, -5, (G_GENO | 1), X { { AT_BREA, AD_COLD, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 }, X { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK }, X 150, 1500, 0, MS_ROAR, M1_BIG | M1_FLY | M1_SEE_INVIS | M1_NOHANDS | X M1_EGGS | M1_COLD_RES | M1_GREEDY | M1_JEWELS | M1_MAGIC, X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE, X C(WHITE)}, X { "black dragon", S_DRAGON, 10, 9, -1, 20, -6, (G_GENO | 1), X { { AT_BREA, AD_DISN, 4, 10 }, { AT_BITE, AD_PHYS, 3, 8 }, X { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK }, X 150, 1500, 0, MS_ROAR, M1_BIG | M1_FLY | M1_SEE_INVIS | M1_NOHANDS | X M1_EGGS | M1_GREEDY | M1_JEWELS | M1_MAGIC, X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE, X C(BLACK)}, X { "blue dragon", S_DRAGON, 10, 9, -1, 20, -7, (G_GENO | 1), X { { AT_BREA, AD_ELEC, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 }, X { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK }, X 150, 1500, 0, MS_ROAR, M1_BIG | M1_FLY | M1_SEE_INVIS | M1_NOHANDS | X M1_EGGS | M1_ELEC_RES | M1_GREEDY | M1_JEWELS | M1_MAGIC, X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE, X C(BLUE)}, X { "green dragon", S_DRAGON, 10, 9, -1, 20, 6, (G_GENO | 1), X { { AT_BREA, AD_DRST, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 }, X { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK }, X 150, 1500, 0, MS_ROAR, M1_BIG | M1_FLY | M1_SEE_INVIS | M1_NOHANDS | X M1_EGGS | M1_POIS | M1_POIS_RES | M1_GREEDY | M1_JEWELS | M1_MAGIC, X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE, X C(GREEN)}, X { "yellow dragon", S_DRAGON, 10, 9, -1, 20, 7, (G_GENO | 1), X { { AT_BREA, AD_ACID, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 }, X { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK }, X 150, 1500, 0, MS_ROAR, M1_BIG | M1_FLY | M1_SEE_INVIS | M1_NOHANDS | X M1_EGGS | M1_POIS | M1_STON_RES | M1_GREEDY | M1_JEWELS | M1_MAGIC, X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE, X C(YELLOW)}, X/* Elementals */ X { "air elemental", S_ELEMENTAL, 8, 36, 2, 30, 0, (G_NOCORPSE | 1), X { { AT_ENGL, AD_PHYS, 2, 10 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 5, 0, 0, MS_SILENT, X M1_BIG | M1_NOEYES | M1_NOHANDS | M1_POIS_RES | M1_FLY, X M2_STRONG | M2_NOLIMBS, C(CYAN) }, X { "fire elemental", S_ELEMENTAL, 8, 12, 2, 30, 0, (G_NOCORPSE | 1), X { { AT_CLAW, AD_FIRE, 3, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 5, 0, 0, MS_SILENT, X M1_BIG | M1_NOEYES | M1_NOHANDS | M1_POIS_RES | M1_FLY | M1_FIRE_RES, X M2_STRONG | M2_NOLIMBS, C(YELLOW) }, X { "earth elemental", S_ELEMENTAL, 8, 6, 2, 30, 0, (G_NOCORPSE | 1), X { { AT_CLAW, AD_PHYS, 4, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 50, 0, 0, MS_SILENT, X M1_BIG | M1_WALLWALK | M1_NOEYES | M1_NOHANDS | M1_POIS_RES | X M1_STON_RES, M2_STRONG | M2_NOLIMBS | M2_THICK_HIDE, C(BROWN) }, X { "water elemental", S_ELEMENTAL, 8, 6, 2, 30, 0, (G_NOCORPSE | 1), X { { AT_CLAW, AD_PHYS, 5, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 50, 0, 0, MS_SILENT, X M1_BIG | M1_NOEYES | M1_NOHANDS | M1_POIS_RES | M1_SWIM, X M2_STRONG | M2_NOLIMBS, C(BLUE) }, X/* Fungi */ X { "violet fungus", S_FUNGUS, 3, 1, 7, 0, 0, (G_GENO | 2), X { { AT_TUCH, AD_PHYS, 1, 4 }, { AT_TUCH, AD_STCK, 0, 0 }, X NO_ATTK, NO_ATTK, NO_ATTK }, 10, 100, 0, MS_SILENT, M1_VSMALL | X M1_NOEYES | M1_NOHANDS | M1_POIS_RES, X M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE, C(MAGENTA) }, X { "brown mold", S_FUNGUS, 1, 0, 9, 0, 0, (G_GENO | 1), X { { AT_NONE, AD_COLD, 0, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 5, 30, 0, MS_SILENT, M1_VSMALL | M1_NOEYES | M1_NOHANDS | X M1_POIS_RES | M1_COLD_RES, M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE, X C(BROWN)}, X { "yellow mold", S_FUNGUS, 1, 0, 9, 0, 0, (G_GENO | 2), X { { AT_NONE, AD_STUN, 0, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 5, 30, 0, MS_SILENT, M1_VSMALL | M1_NOEYES | M1_NOHANDS | X M1_POIS | M1_POIS_RES, M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE, X C(YELLOW)}, X { "green mold", S_FUNGUS, 1, 0, 9, 0, 0, (G_GENO | 1), X { { AT_NONE, AD_ACID, 0, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 5, 30, 0, MS_SILENT, M1_VSMALL | M1_NOEYES | M1_NOHANDS | X M1_POIS | M1_STON_RES, M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE, X C(GREEN)}, X { "red mold", S_FUNGUS, 1, 0, 9, 0, 0, (G_GENO | 1), X { { AT_NONE, AD_FIRE, 0, 4 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 5, 30, 0, MS_SILENT, M1_VSMALL | M1_NOEYES | M1_NOHANDS | X M1_POIS_RES | M1_FIRE_RES, M2_HOSTILE | M2_NOLIMBS | M2_OMNIVORE, X C(RED)}, X/* Gnomes */ X { "gnome", S_GNOME, 1, 6, 5, 4, 0, (G_GENO | G_SGROUP | 1), X { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 10, 100, 0, MS_ORC, M1_HUMANOID | M1_COLLECT, 0, C(HI_MON) }, X { "gnome lord", S_GNOME, 3, 8, 4, 4, 0, (G_GENO | 2), X { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 15, 120, 0, MS_ORC, M1_HUMANOID | M1_COLLECT | M1_LORD, 0, C(HI_MON) }, X { "gnome king", S_GNOME, 5, 10, 2, 20, 0, (G_GENO | 1), X { { AT_WEAP, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 20, 150, 0, MS_ORC, M1_HUMANOID | M1_COLLECT | M1_PRINCE, 0, X C(MAGENTA)}, X { "gnomish wizard", S_GNOME, 3, 10, 4, 10, 0, (G_GENO | 1), X { { AT_MAGC, AD_SPEL, 0, 0 }, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, X 15, 120, 0, MS_ORC, M1_HUMANOID | M1_MAGIC, 0, C(HI_MON) }, X#ifdef SPLITMON_1 X}; X#endif X#endif /* !SPLITMON_2 */ X END_OF_FILE if test 44627 -ne `wc -c <'src/monst.c1'`; then echo shar: \"'src/monst.c1'\" unpacked with wrong size! fi # end of 'src/monst.c1' echo shar: End of archive 10 \(of 11\). cp /dev/null ark10isdone MISSING="" for I in 1 2 3 4 5 6 7 8 9 10 11 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 11 archives. rm -f ark[1-9]isdone ark[1-9][0-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0