home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!news.tek.com!master!saab!billr
- From: billr@saab.CNA.TEK.COM (Bill Randle)
- Newsgroups: comp.sources.games
- Subject: v16i011: nethack31 - display oriented dungeons & dragons (Ver. 3.1), Part11/108
- Message-ID: <4294@master.CNA.TEK.COM>
- Date: 28 Jan 93 19:12:22 GMT
- Sender: news@master.CNA.TEK.COM
- Lines: 1269
- Approved: billr@saab.CNA.TEK.COM
-
- Submitted-by: izchak@linc.cis.upenn.edu (Izchak Miller)
- Posting-number: Volume 16, Issue 11
- Archive-name: nethack31/Part11
- Supersedes: nethack3p9: Volume 10, Issue 46-102
- Environment: Amiga, Atari, Mac, MS-DOS, OS2, Unix, VMS, X11
-
-
-
- #! /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 11 (of 108)."
- # Contents: src/monst.c1 sys/amiga/amimenu.c
- # Wrapped by billr@saab on Wed Jan 27 16:08:49 1993
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'src/monst.c1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/monst.c1'\"
- else
- echo shar: Extracting \"'src/monst.c1'\" \(48860 characters\)
- sed "s/^X//" >'src/monst.c1' <<'END_OF_FILE'
- X/* SCCS Id: @(#)monst.c 3.1 92/11/25 */
- X/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
- X/* NetHack may be freely redistributed. See license for details. */
- X
- 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#ifdef MUSE
- X#define MARM(x,y) x /* x is usually 10 */
- X#else
- X#define MARM(x,y) y
- X#endif
- X
- X#define NO_ATTK { 0, 0, 0, 0 }
- X
- X#define WT_ELF 800
- X#define WT_DRAGON 4500
- X
- X#ifdef C
- X#undef C
- X#endif
- X#ifdef TEXTCOLOR
- X#include "color.h"
- X#define C(color) color
- X#define HI_DOMESTIC WHITE /* use for player + friendlies */
- X#define HI_LORD MAGENTA
- X#else
- X#define C(color)
- X#endif
- X
- Xvoid NDECL(monst_init);
- X/*
- X * Entry Format: (from permonst.h)
- X *
- X * name, symbol (S_* defines),
- X * difficulty level, move rate, armor class, magic resistance,
- X * alignment, creation/geno flags (G_* defines),
- X * 6 * attack structs ( type , damage-type, # dice, # sides ),
- X * weight (WT_* defines), nutritional value, extension length,
- X * sounds made (MS_* defines), physical size (MZ_* defines),
- X * resistances, resistances conferred (both MR_* defines),
- X * 3 * flag bitmaps (M1_*, M2_*, and M3_* defines respectively)
- X * symbol color (C(x) macro)
- X */
- X
- X#ifndef SPLITMON_2
- Xstruct permonst NEARDATA 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,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X WT_HUMAN, 400, PL_NSIZ, MS_HUMANOID, MZ_HUMAN, 0, 0,
- X M1_NEEDPICK | M1_HUMANOID | M1_OMNIVORE,
- X M2_HUMAN | M2_STRONG | M2_COLLECT, 0, C(HI_DOMESTIC)
- X}, NEARDATA *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 * Rule #4: monster subclasses (e.g. giants) should be kept
- X * together, unless it violates Rule 2. NOGEN monsters
- X * won't violate Rule 2.
- 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.
- X *
- X * * Use colors given in names 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, &c.).
- X *
- X * * Subject to all these constraints, try to use color to make as many
- X * distinctions as the / command (that is, within a monster letter
- X * distinct names should map to distinct colors).
- 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 NEARDATA 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,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 10, 10, 0, MS_SILENT, MZ_TINY, 0, 0,
- X M1_ANIMAL | M1_NOHANDS | M1_OVIPAROUS | M1_CARNIVORE,
- X M2_HOSTILE, 0, C(BROWN) },
- X { "killer bee", S_ANT, 1, 18, -1, 0, 0, (G_GENO | G_LGROUP | 2),
- X { { AT_STNG, AD_DRST, 1, 3 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 1, 5, 0, MS_BUZZ, MZ_TINY, MR_POISON, MR_POISON,
- X M1_ANIMAL | M1_FLY | M1_NOHANDS | M1_POIS, M2_HOSTILE | M2_FEMALE,
- X 0, C(YELLOW) },
- 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, NO_ATTK },
- X 20, 5, 0, MS_SILENT, MZ_TINY, MR_POISON, MR_POISON,
- X M1_ANIMAL | M1_NOHANDS | M1_OVIPAROUS | M1_POIS | M1_CARNIVORE,
- X M2_HOSTILE, 0, C(BLUE) },
- X { "fire ant", S_ANT, 3, 18, 3, 10, 0, (G_GENO | G_SGROUP | 1),
- X { { AT_BITE, AD_PHYS, 2, 4 }, { AT_BITE, AD_FIRE, 2, 4 },
- X NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 30, 10, 0, MS_SILENT, MZ_TINY, MR_FIRE, MR_FIRE,
- X M1_ANIMAL | M1_NOHANDS | M1_OVIPAROUS | M1_CARNIVORE,
- X M2_HOSTILE, 0, 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,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 10, 10, 0, MS_SILENT, MZ_LARGE, MR_POISON, MR_POISON,
- X M1_ANIMAL | M1_NOHANDS | M1_POIS | M1_CARNIVORE,
- X M2_HOSTILE, 0, C(BLACK) },
- X { "queen bee", S_ANT, 9, 24, -4, 0, 0, (G_GENO | G_NOGEN),
- X { { AT_STNG, AD_DRST, 1, 8 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 1, 5, 0, MS_BUZZ, MZ_TINY, MR_POISON, MR_POISON,
- X M1_ANIMAL | M1_FLY | M1_NOHANDS | M1_POIS,
- X M2_HOSTILE | M2_FEMALE | M2_PRINCE, 0, C(HI_LORD) },
- 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,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 30, 10, 0, MS_SILENT, MZ_TINY,
- X MR_SLEEP | MR_POISON | MR_ACID | MR_STONE, MR_SLEEP | MR_STONE,
- X M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
- X M1_MINDLESS | M1_ACID, M2_WANDER | M2_NEUTER, 0, C(GREEN) },
- X { "quivering blob", S_BLOB, 5, 1, 8, 0, 0, (G_GENO | 2),
- X { { AT_TUCH, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 200, 100, 0, MS_SILENT, MZ_SMALL,
- X MR_SLEEP | MR_POISON, MR_POISON,
- X M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS,
- X M2_WANDER | M2_HOSTILE | M2_NEUTER, 0, C(WHITE) },
- X { "gelatinous cube", S_BLOB, 6, 6, 8, 0, 0, (G_GENO | 2),
- X { { AT_TUCH, AD_PLYS, 2, 4 }, { AT_NONE, AD_PLYS, 1, 4 },
- X NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 600, 150, 0, MS_SILENT, MZ_LARGE,
- X MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON | MR_ACID |
- X MR_STONE, MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP,
- X M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS | M1_OMNIVORE |
- X M1_ACID, M2_WANDER | M2_HOSTILE | M2_NEUTER,
- X 0, C(CYAN) },
- 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 { AT_NONE, AD_STON, 0, 0 }, NO_ATTK, NO_ATTK, NO_ATTK },
- X 30, 30, 0, MS_HISS, MZ_SMALL,
- X MR_POISON | MR_STONE, MR_POISON | MR_STONE,
- X M1_ANIMAL | M1_NOHANDS | M1_OVIPAROUS, M2_HOSTILE, 0, C(YELLOW) },
- X/* dogs and other canines */
- 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,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 300, 250, 0, MS_BARK, MZ_SMALL, 0, 0,
- X M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, 0, C(BROWN) },
- X { "werejackal", S_DOG, 2, 12, 7, 10, -7, G_NOGEN | G_NOCORPSE,
- X { { AT_BITE, AD_WERE, 1, 4 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 300, 250, 0, MS_BARK, MZ_SMALL, MR_POISON, 0,
- X M1_NOHANDS | M1_POIS | M1_REGEN | M1_CARNIVORE,
- X M2_NOPOLY | M2_WERE | M2_HOSTILE, 0, C(BROWN) },
- X { "little dog", S_DOG, 2, 18, 6, 0, 0, (G_GENO | 1),
- X { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 150, 150, 0, MS_BARK, MZ_SMALL, 0, 0,
- X M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
- X M2_DOMESTIC, 0, C(HI_DOMESTIC) },
- X { "dog", S_DOG, 4, 16, 5, 0, 0, (G_GENO | 1),
- X { { AT_BITE, AD_PHYS, 1 ,6 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 400, 200, 0, MS_BARK, MZ_MEDIUM, 0, 0,
- X M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
- X M2_DOMESTIC, 0, C(HI_DOMESTIC) },
- X { "large dog", S_DOG, 6, 15, 4, 0, 0, (G_GENO | 1),
- X { { AT_BITE, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 800, 250, 0, MS_BARK, MZ_MEDIUM, 0, 0,
- X M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_STRONG | M2_DOMESTIC,
- X 0, C(HI_DOMESTIC) },
- 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,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 500, 250, 0, MS_BARK, MZ_SMALL, 0, 0,
- X M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, 0, C(BROWN) },
- X { "werewolf", S_DOG, 5, 12, 4, 20, -7, G_NOGEN | G_NOCORPSE,
- X { { AT_BITE, AD_WERE, 2, 6 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 500, 250, 0, MS_BARK, MZ_MEDIUM, MR_POISON, 0,
- X M1_NOHANDS | M1_POIS | M1_REGEN | M1_CARNIVORE,
- X M2_NOPOLY | M2_WERE | M2_HOSTILE, 0, C(BROWN) },
- 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,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 850, 350, 0, MS_BARK, MZ_MEDIUM, 0, 0,
- X M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
- X M2_HOSTILE, 0, 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, NO_ATTK },
- X 700, 300, 0, MS_BARK, MZ_LARGE, MR_COLD, MR_COLD,
- X M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
- X M2_HOSTILE | M2_STRONG, 0, C(CYAN) },
- 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, NO_ATTK },
- X 200, 200, 0, MS_BARK, MZ_SMALL,
- X MR_FIRE, MR_FIRE, M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
- X M2_HOSTILE, 0, 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, NO_ATTK },
- X 600, 300, 0, MS_BARK, MZ_MEDIUM,
- X MR_FIRE, MR_FIRE, M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
- X M2_HOSTILE | M2_STRONG, 0, 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, NO_ATTK },
- X 1000, 350, 0, MS_BARK, MZ_LARGE, MR_FIRE, MR_FIRE,
- X M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
- X M2_NOPOLY | M2_HOSTILE | M2_STRONG | M2_PNAME | M2_MALE, 0,
- X 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,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 10, 10, 0, MS_SILENT, MZ_SMALL, 0, 0,
- X M1_FLY | M1_AMPHIBIOUS | M1_NOLIMBS | M1_NOHEAD,
- X M2_HOSTILE | M2_NEUTER, 0, 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,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 10, 10, 0, MS_SILENT, MZ_SMALL, MR_COLD, MR_COLD,
- X M1_FLY | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS,
- X M2_HOSTILE | M2_NEUTER, 0, 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,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 150, 150, 0, MS_MEW, MZ_SMALL, 0, 0,
- X M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
- X M2_WANDER | M2_DOMESTIC, 0, C(HI_DOMESTIC) },
- X { "housecat", S_FELINE, 4, 16, 5, 0, 0, (G_GENO | 1),
- X { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 200, 200, 0, MS_MEW, MZ_SMALL, 0, 0,
- X M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
- X M2_DOMESTIC, 0, C(HI_DOMESTIC) },
- X { "jaguar", S_FELINE, 4, 15, 6, 0, 0, (G_GENO | 2),
- X { { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 },
- X { AT_BITE, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK, NO_ATTK },
- X 600, 300, 0, MS_GROWL, MZ_LARGE, 0, 0,
- X M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
- X M2_HOSTILE, 0, C(BROWN) },
- X { "large cat", S_FELINE, 6, 15, 4, 0, 0, (G_GENO | 1),
- X { { AT_BITE, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 250, 250, 0, MS_MEW, MZ_SMALL, 0, 0,
- X M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
- X M2_STRONG | M2_DOMESTIC, 0, C(HI_DOMESTIC) },
- X { "tiger", S_FELINE, 6, 12, 6, 0, 0, (G_GENO | 2),
- X { { AT_CLAW, AD_PHYS, 2, 4 }, { AT_CLAW, AD_PHYS, 2, 4 },
- X { AT_BITE, AD_PHYS, 1, 10 }, NO_ATTK, NO_ATTK, NO_ATTK },
- X 600, 300, 0, MS_GROWL, MZ_LARGE, 0, 0,
- X M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
- X M2_HOSTILE, 0, 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 },
- X NO_ATTK, NO_ATTK },
- X 100, 20, 0, MS_LAUGH, MZ_SMALL, MR_POISON, 0,
- X M1_SWIM | M1_HUMANOID | M1_POIS, M2_STALK, 0, C(GREEN) },
- X/* humanoids */
- X { "hobbit", S_HUMANOID, 1, 9, MARM(10,7), 0, 6, (G_GENO | 2),
- X { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 500, 200, 0, MS_HUMANOID, MZ_SMALL, 0, 0,
- X M1_HUMANOID, M2_COLLECT, 0, C(GREEN) },
- X { "dwarf", S_HUMANOID, 2, 6, MARM(10,4), 10, 4, (G_GENO | 3),
- X { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 900, 300, 0, MS_HUMANOID, MZ_HUMAN, 0, 0,
- X M1_TUNNEL | M1_NEEDPICK | M1_HUMANOID,
- X M2_DWARF | M2_STRONG | M2_GREEDY | M2_JEWELS | M2_COLLECT,
- X 0, C(RED) },
- X { "bugbear", S_HUMANOID, 3, 9, 5, 0, -6, (G_GENO | 1),
- X { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 1250, 250, 0, MS_GROWL, MZ_LARGE, 0, 0,
- X M1_HUMANOID, M2_STRONG | M2_COLLECT, 0, C(BROWN) },
- X { "dwarf lord", S_HUMANOID, 4, 6, MARM(10,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, NO_ATTK },
- X 900, 300, 0, MS_HUMANOID, MZ_HUMAN,
- X 0, 0, M1_TUNNEL | M1_NEEDPICK | M1_HUMANOID,
- X M2_DWARF | M2_STRONG | M2_LORD | M2_MALE | M2_GREEDY | M2_JEWELS |
- X M2_COLLECT, 0, C(BLUE) },
- X { "dwarf king", S_HUMANOID, 6, 6, MARM(10,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, NO_ATTK },
- X 900, 300, 0, MS_HUMANOID, MZ_HUMAN,
- X 0, 0, M1_TUNNEL | M1_NEEDPICK | M1_HUMANOID,
- X M2_DWARF | M2_STRONG | M2_PRINCE | M2_MALE | M2_GREEDY | M2_JEWELS |
- X M2_COLLECT, 0, C(HI_LORD) },
- X { "mind flayer", S_HUMANOID, 9, 12, 5, 90, -8, (G_GENO | 1),
- X { { AT_WEAP, AD_PHYS, 1, 4 }, { AT_TENT, AD_DRIN, 2, 1 },
- X { AT_TENT, AD_DRIN, 2, 1 }, { AT_TENT, AD_DRIN, 2, 1 },
- X { AT_TENT, AD_DRIN, 2, 1 }, NO_ATTK },
- X 1450, 400, 0, MS_HISS, MZ_HUMAN,
- X 0, 0, M1_HUMANOID | M1_FLY | M1_SEE_INVIS | M1_OMNIVORE,
- X M2_HOSTILE | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_COLLECT,
- X 0, 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, NO_ATTK },
- X 100, 100, 0, MS_SILENT, MZ_SMALL,
- X MR_SLEEP | MR_POISON, 0, M1_POIS, M2_HOSTILE | M2_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,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 60, 100, 0, MS_SILENT, MZ_TINY,
- X MR_SLEEP | MR_POISON, MR_SLEEP | MR_POISON,
- X M1_FLY | M1_POIS, M2_STALK, 0, C(GREEN) },
- X { "imp", S_IMP, 3, 12, 2, 20, -7, (G_GENO | 1),
- X { { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 20, 10, 0, MS_CUSS, MZ_TINY, 0, 0,
- X M1_REGEN, M2_WANDER | M2_STALK, 0, C(RED) },
- 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,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 150, 100, 0, MS_SILENT, MZ_MEDIUM, MR_SLEEP | MR_POISON, MR_SLEEP,
- X M1_POIS | M1_REGEN, M2_HOSTILE | M2_WANDER | M2_STALK | M2_NEUTER,
- X 0, C(BROWN) },
- 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, NO_ATTK },
- X 200, 200, 0, MS_SILENT, MZ_SMALL, MR_POISON, MR_POISON,
- X M1_REGEN, M2_STALK, 0, C(BLUE) },
- X { "tengu", S_IMP, 6, 13, 5, 30, 7, (G_GENO | 3),
- X { { AT_BITE, AD_PHYS, 1, 7 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 300, 200, 0, MS_SQAWK, MZ_SMALL, MR_POISON, MR_POISON,
- X M1_TPORT | M1_TPORT_CNTRL, M2_STALK, 0, C(CYAN) },
- X/* jellies */
- X { "blue jelly", S_JELLY, 4, 0, 8, 10, 0, (G_GENO | 2),
- X { { AT_NONE, AD_COLD, 0, 6 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 50, 20, 0, MS_SILENT, MZ_MEDIUM,
- X MR_COLD | MR_POISON, MR_COLD | MR_POISON,
- X M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
- X M1_MINDLESS | M1_OMNIVORE, M2_HOSTILE | M2_NEUTER, 0, C(BLUE) },
- X { "spotted jelly", S_JELLY, 5, 0, 8, 10, 0, (G_GENO | 1),
- X { { AT_NONE, AD_ACID, 0, 6 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 50, 20, 0, MS_SILENT, MZ_MEDIUM, MR_ACID | MR_STONE, 0,
- X M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
- X M1_MINDLESS | M1_ACID | M1_OMNIVORE, M2_HOSTILE | M2_NEUTER,
- X 0, C(GREEN) },
- X { "ochre jelly", S_JELLY, 6, 3, 8, 20, 0, (G_GENO | 2),
- X { { AT_ENGL, AD_ACID, 3, 6 }, { AT_NONE, AD_ACID, 3, 6 },
- X NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 50, 20, 0, MS_SILENT, MZ_MEDIUM, MR_ACID | MR_STONE, 0,
- X M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
- X M1_MINDLESS | M1_ACID | M1_OMNIVORE, M2_HOSTILE | M2_NEUTER,
- X 0, C(BROWN) },
- X/* kobolds */
- X { "kobold", S_KOBOLD, 0, 6, MARM(10,7), 0, -2, (G_GENO | 1),
- X { { AT_WEAP, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 400, 100, 0, MS_ORC, MZ_SMALL, MR_POISON, 0,
- X M1_HUMANOID | M1_POIS, M2_HOSTILE | M2_COLLECT, 0, C(BROWN) },
- X { "large kobold", S_KOBOLD, 1, 6, MARM(10,6), 0, -3, (G_GENO | 1),
- X { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 450, 150, 0, MS_ORC, MZ_SMALL, MR_POISON, 0,
- X M1_HUMANOID | M1_POIS, M2_HOSTILE | M2_COLLECT, 0, C(RED) },
- X { "kobold lord", S_KOBOLD, 2, 6, MARM(10,5), 0, -4, (G_GENO | 1),
- X { { AT_WEAP, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 500, 200, 0, MS_ORC, MZ_SMALL, MR_POISON, 0,
- X M1_HUMANOID | M1_POIS,
- X M2_HOSTILE | M2_LORD | M2_MALE | M2_COLLECT, 0, C(HI_LORD) },
- X { "kobold shaman", S_KOBOLD, 1, 6, 6, 10, -4, (G_GENO | 1),
- X { { AT_MAGC, AD_SPEL, 0, 0 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 450, 150, 0, MS_ORC, MZ_SMALL, MR_POISON, 0,
- X M1_HUMANOID | M1_POIS, M2_HOSTILE | M2_MAGIC, 0, C(HI_ZAP) },
- X/* leprechauns */
- X { "leprechaun", S_LEPRECHAUN, 5, 15, 8, 20, 0, (G_GENO | 4),
- X { { AT_CLAW, AD_SGLD, 1, 2 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 60, 30, 0, MS_LAUGH, MZ_TINY, 0, 0,
- X M1_HUMANOID | M1_TPORT, M2_HOSTILE | M2_GREEDY, 0, C(GREEN) },
- 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,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 300, 200, 0, MS_SILENT, MZ_MEDIUM, MR_ACID, 0,
- X M1_BREATHLESS | M1_AMORPHOUS | M1_HIDE | M1_ANIMAL |
- X M1_NOEYES | M1_NOHEAD | M1_NOLIMBS | M1_THICK_HIDE | M1_CARNIVORE,
- X M2_HOSTILE, 0, 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,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 600, 400, 0, MS_SILENT, MZ_LARGE, MR_ACID, 0,
- X M1_CLING | M1_BREATHLESS | M1_AMORPHOUS | M1_HIDE | M1_ANIMAL |
- X M1_NOEYES | M1_NOHEAD | M1_NOLIMBS | M1_THICK_HIDE | M1_CARNIVORE,
- X M2_HOSTILE | M2_STRONG, 0, C(RED) },
- 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, NO_ATTK },
- X 800, 500, 0, MS_SILENT, MZ_LARGE, MR_ACID, 0,
- X M1_CLING | M1_BREATHLESS | M1_AMORPHOUS | M1_HIDE | M1_ANIMAL |
- X M1_NOEYES | M1_NOHEAD | M1_NOLIMBS | M1_THICK_HIDE | M1_CARNIVORE,
- X M2_HOSTILE | M2_STRONG, 0, C(HI_LORD) },
- X/* nymphs */
- X { "wood nymph", S_NYMPH, 3, 12, 9, 20, 0, (G_GENO | 2),
- X { { AT_CLAW, AD_SITM, 0, 0 }, { AT_CLAW, AD_SEDU, 0, 0 },
- X NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 600, 300, 0, MS_SEDUCE, MZ_HUMAN,
- X 0, 0, M1_HUMANOID | M1_TPORT, M2_HOSTILE | M2_FEMALE | M2_COLLECT,
- X 0, C(GREEN) },
- X { "water nymph", S_NYMPH, 3, 12, 9, 20, 0, (G_GENO | 2),
- X { { AT_CLAW, AD_SITM, 0, 0 }, { AT_CLAW, AD_SEDU, 0, 0 },
- X NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 600, 300, 0, MS_SEDUCE, MZ_HUMAN,
- X 0, 0, M1_HUMANOID | M1_TPORT | M1_SWIM,
- X M2_HOSTILE | M2_FEMALE | M2_COLLECT, 0, C(BLUE) },
- X { "mountain nymph", S_NYMPH, 3, 12, 9, 20, 0, (G_GENO | 2),
- X { { AT_CLAW, AD_SITM, 0, 0 }, { AT_CLAW, AD_SEDU, 0, 0 },
- X NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 600, 300, 0, MS_SEDUCE, MZ_HUMAN,
- X 0, 0, M1_HUMANOID | M1_TPORT, M2_HOSTILE | M2_FEMALE | M2_COLLECT,
- X 0, C(BROWN) },
- X/* orcs */
- X { "goblin", S_ORC, 0, 6, MARM(10,6), 0, -3, (G_GENO | 2),
- X { { AT_WEAP, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 400, 100, 0, MS_ORC, MZ_SMALL, 0, 0,
- X M1_HUMANOID, M2_ORC | M2_COLLECT, 0, C(GRAY) },
- X { "hobgoblin", S_ORC, 1, 9, MARM(10,6), 0, -4, (G_GENO | 2),
- X { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 1000, 200, 0, MS_ORC, MZ_HUMAN, 0, 0,
- X M1_HUMANOID, M2_ORC | M2_STRONG | M2_COLLECT, 0, C(BROWN) },
- X /* "orc" for zombie corpses only; they don't get created at random */
- X { "orc", S_ORC, 1, 9, MARM(10,6), 0, -3, (G_GENO | G_NOGEN | G_LGROUP),
- X { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 850, 150, 0, MS_ORC, MZ_HUMAN, 0, 0, M1_HUMANOID,
- X M2_ORC | M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS | M2_COLLECT,
- X 0, C(RED) },
- X { "hill orc", S_ORC, 2, 9, MARM(10,6), 0, -4, (G_GENO | G_LGROUP | 2),
- X { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 1000, 200, 0, MS_ORC, MZ_HUMAN, 0, 0, M1_HUMANOID,
- X M2_ORC | M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS | M2_COLLECT,
- X 0, C(YELLOW) },
- X { "Mordor orc", S_ORC, 3, 5, MARM(10,6), 0, -5, (G_GENO | G_LGROUP | 1),
- X { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 1200, 200, 0, MS_ORC, MZ_HUMAN, 0, 0, M1_HUMANOID,
- X M2_ORC | M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS | M2_COLLECT,
- X 0, C(BLUE) },
- X { "Uruk-hai", S_ORC, 3, 7, MARM(10,5), 0, -4, (G_GENO | G_LGROUP | 1),
- X { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 1300, 300, 0, MS_ORC, MZ_HUMAN, 0, 0, M1_HUMANOID,
- X M2_ORC | M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS | M2_COLLECT,
- X 0, C(BLACK) },
- X { "orc shaman", S_ORC, 3, 9, 5, 10, -5, (G_GENO | 1),
- X { { AT_MAGC, AD_SPEL, 0, 0 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 1000, 300, 0, MS_ORC, MZ_HUMAN, 0, 0, M1_HUMANOID,
- X M2_ORC | M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS | M2_MAGIC,
- X 0, C(HI_ZAP) },
- X { "orc-captain", S_ORC, 5, 5, MARM(10,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, NO_ATTK },
- X 1350, 350, 0, MS_ORC, MZ_HUMAN, 0, 0, M1_HUMANOID,
- X M2_ORC | M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS | M2_COLLECT,
- X 0, C(HI_LORD) },
- X/* piercers */
- X { "rock piercer", S_PIERCER, 3, 1, 3, 0, 0, (G_GENO | 4),
- X { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 200, 200, 0, MS_SILENT, MZ_SMALL, 0, 0,
- X M1_CLING | M1_HIDE | M1_ANIMAL | M1_NOEYES | M1_NOLIMBS |
- X M1_CARNIVORE, M2_HOSTILE, 0, C(GRAY) },
- X { "iron piercer", S_PIERCER, 5, 1, 0, 0, 0, (G_GENO | 2),
- X { { AT_BITE, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 400, 300, 0, MS_SILENT, MZ_MEDIUM, 0, 0,
- X M1_CLING | M1_HIDE | M1_ANIMAL | M1_NOEYES | M1_NOLIMBS |
- X M1_CARNIVORE, M2_HOSTILE, 0, C(CYAN) },
- 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, NO_ATTK },
- X 400, 100, 0, MS_SILENT, MZ_LARGE, 0, 0,
- X M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, 0, C(GRAY) },
- X { "mumak", 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, NO_ATTK },
- X 2500, 500, 0, MS_SILENT, MZ_LARGE, 0, 0,
- X M1_ANIMAL | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE,
- X M2_HOSTILE | M2_STRONG, 0, C(GRAY) },
- 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, NO_ATTK },
- X 1200, 500, 0, MS_IMITATE, MZ_LARGE, 0, 0,
- X M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
- X M2_HOSTILE | M2_STRONG, 0, 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,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 2500, 500, 0, MS_SILENT, MZ_LARGE, 0, 0,
- X M1_CLING | M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
- X M2_HOSTILE | M2_STRONG, 0, C(CYAN) },
- X { "titanothere", S_QUADRUPED, 12, 12, 6, 0, 0, (G_GENO | 2),
- X { { AT_CLAW, AD_PHYS, 2, 8 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 2650, 650, 0, MS_SILENT, MZ_LARGE, 0, 0,
- X M1_ANIMAL | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE,
- X M2_HOSTILE | M2_STRONG, 0, 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, NO_ATTK },
- X 3800, 800, 0, MS_SILENT, MZ_LARGE, 0, 0,
- X M1_ANIMAL | M1_THICK_HIDE | M1_NOHANDS | M1_HERBIVORE,
- X M2_HOSTILE | M2_STRONG, 0, 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,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 20, 12, 0, MS_SQEEK, MZ_TINY, 0, 0,
- X M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
- X M2_HOSTILE, 0, 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,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 30, 30, 0, MS_SQEEK, MZ_TINY, 0, 0,
- X M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
- X M2_HOSTILE, 0, 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,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 30, 5, 0, MS_SQEEK, MZ_TINY, MR_POISON, 0,
- X M1_ANIMAL | M1_NOHANDS | M1_POIS | M1_CARNIVORE,
- X M2_HOSTILE, 0, C(BROWN) },
- X { "wererat", S_RODENT, 2, 12, 6, 10, -7, G_NOGEN | G_NOCORPSE,
- X { { AT_BITE, AD_WERE, 1, 4 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 40, 30, 0, MS_SQEEK, MZ_TINY, MR_POISON, 0,
- X M1_NOHANDS | M1_POIS | M1_REGEN | M1_CARNIVORE,
- X M2_NOPOLY | M2_WERE | M2_HOSTILE, 0, 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,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 30, 30, 0, MS_SILENT, MZ_SMALL, 0, 0,
- X M1_TUNNEL | M1_ANIMAL | M1_NOHANDS | M1_METALLIVORE,
- X M2_HOSTILE | M2_GREEDY | M2_JEWELS | M2_COLLECT, 0, C(GRAY) },
- 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,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 50, 50, 0, MS_SILENT, MZ_TINY, MR_POISON, MR_POISON,
- X M1_CONCEAL | M1_ANIMAL | M1_NOHANDS | M1_OVIPAROUS | M1_CARNIVORE,
- X M2_HOSTILE, 0, C(GRAY) },
- X { "giant spider", S_SPIDER, 5, 15, 4, 0, 0, (G_GENO | 1),
- X { { AT_BITE, AD_DRST, 2, 4 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 100, 100, 0, MS_SILENT, MZ_LARGE, MR_POISON, MR_POISON,
- X M1_ANIMAL | M1_NOHANDS | M1_OVIPAROUS | M1_POIS | M1_CARNIVORE,
- X M2_HOSTILE | M2_STRONG, 0, C(MAGENTA) },
- 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, NO_ATTK },
- X 50, 100, 0, MS_SILENT, MZ_SMALL, MR_POISON, MR_POISON,
- X M1_CONCEAL | M1_ANIMAL | M1_NOHANDS | M1_OVIPAROUS | M1_POIS |
- X M1_CARNIVORE, M2_HOSTILE, 0, C(RED) },
- X/* trappers, lurkers, &c. */
- X { "lurker above", S_TRAPPER, 10, 3, 3, 0, 0, (G_GENO | 2),
- X { { AT_ENGL, AD_DGST, 1, 8 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 800, 350, 0, MS_SILENT, MZ_HUGE, 0, 0,
- X M1_HIDE | M1_FLY | M1_ANIMAL | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
- X M1_CARNIVORE, M2_HOSTILE | M2_STALK | M2_STRONG, 0, 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,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 800, 350, 0, MS_SILENT, MZ_HUGE, 0, 0,
- X M1_HIDE | M1_ANIMAL | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
- X M1_CARNIVORE, M2_HOSTILE | M2_STALK | M2_STRONG, 0, C(GREEN) },
- 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, NO_ATTK },
- X 1300, 300, 0, MS_NEIGH, MZ_LARGE,
- X MR_POISON, MR_POISON, M1_NOHANDS | M1_HERBIVORE,
- X M2_WANDER | M2_STRONG | M2_JEWELS, 0, 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, NO_ATTK },
- X 1300, 300, 0, MS_NEIGH, MZ_LARGE,
- X MR_POISON, MR_POISON, M1_NOHANDS | M1_HERBIVORE,
- X M2_WANDER | M2_STRONG | M2_JEWELS, 0, 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, NO_ATTK },
- X 1300, 300, 0, MS_NEIGH, MZ_LARGE,
- X MR_POISON, MR_POISON, M1_NOHANDS | M1_HERBIVORE,
- X M2_WANDER | M2_STRONG | M2_JEWELS, 0, 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,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 0, 0, 0, MS_SILENT, MZ_HUGE,
- X MR_SLEEP | MR_POISON | MR_STONE, 0,
- X M1_FLY | M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
- X M1_MINDLESS | M1_AMORPHOUS | M1_UNSOLID,
- X M2_HOSTILE | M2_NEUTER, 0, 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,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 0, 0, 0, MS_SILENT, MZ_HUGE,
- X MR_SLEEP | MR_POISON | MR_STONE, 0,
- X M1_FLY | M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
- X M1_MINDLESS,
- X M2_HOSTILE | M2_NEUTER, 0, C(BROWN) },
- 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,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 0, 0, 0, MS_SILENT, MZ_HUGE,
- X MR_COLD | MR_SLEEP | MR_POISON | MR_STONE, 0,
- X M1_FLY | M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
- X M1_MINDLESS,
- X M2_HOSTILE | M2_NEUTER, 0, C(CYAN) },
- 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 { AT_NONE, AD_ELEC, 0, 4 }, NO_ATTK, NO_ATTK, NO_ATTK },
- X 0, 0, 0, MS_SILENT, MZ_HUGE,
- X MR_ELEC | MR_SLEEP | MR_DISINT | MR_POISON | MR_STONE, 0,
- X M1_FLY | M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
- X M1_MINDLESS | M1_UNSOLID, M2_HOSTILE | M2_NEUTER, 0, C(HI_ZAP) },
- 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,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 0, 0, 0, MS_SILENT, MZ_HUGE,
- X MR_FIRE | MR_SLEEP | MR_POISON | MR_STONE, 0,
- X M1_FLY | M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
- X M1_MINDLESS | M1_UNSOLID, M2_HOSTILE | M2_NEUTER, 0, C(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 }, { AT_NONE, AD_FIRE, 0, 4 },
- X NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 0, 0, 0, MS_SILENT, MZ_HUGE,
- X MR_FIRE | MR_SLEEP | MR_POISON | MR_STONE, 0,
- X M1_FLY | M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD |
- X M1_MINDLESS | M1_UNSOLID, M2_HOSTILE | M2_NEUTER, 0, C(YELLOW) },
- X/* worms */
- X { "baby long worm", S_WORM, 8, 3, 5, 0, 0, G_GENO,
- X { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 600, 250, 0, MS_SILENT, MZ_LARGE, 0, 0,
- X M1_ANIMAL | M1_SLITHY | M1_NOLIMBS | M1_CARNIVORE,
- X M2_HOSTILE, 0, C(BROWN) },
- X { "baby purple worm", S_WORM, 8, 3, 5, 0, 0, G_GENO,
- X { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 600, 250, 0, MS_SILENT, MZ_LARGE, 0, 0,
- X M1_ANIMAL | M1_SLITHY | M1_NOLIMBS | M1_CARNIVORE,
- X M2_HOSTILE, 0, C(MAGENTA) },
- X { "long worm", S_WORM, 8, 3, 5, 10, 0, (G_GENO | 2),
- X { { AT_BITE, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 1500, 500, 0, MS_SILENT, MZ_GIGANTIC, 0, 0,
- X M1_ANIMAL | M1_SLITHY | M1_NOLIMBS | M1_OVIPAROUS | M1_CARNIVORE,
- X M2_HOSTILE | M2_STRONG | M2_NASTY,
- X 0, C(BROWN) },
- 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, NO_ATTK },
- X 2700, 700, 0, MS_SILENT, MZ_GIGANTIC, 0, 0,
- X M1_ANIMAL | M1_SLITHY | M1_NOLIMBS | M1_OVIPAROUS | M1_CARNIVORE,
- X M2_HOSTILE | M2_STRONG | M2_NASTY,
- X 0, C(MAGENTA) },
- X/* Dummy monster needed for visual interface. */
- X { "long worm tail", S_WORM_TAIL, 0, 0, 0, 0, 0, G_NOGEN | G_NOCORPSE,
- X { NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 0, 0, 0, 0, 0, 0, 0, 0, M2_NOPOLY, 0, C(BROWN) },
- X/* xan, &c. */
- X { "grid bug", S_XAN, 0, 12, 9, 0, 0,
- X (G_GENO | G_SGROUP | G_NOCORPSE | 3),
- X { { AT_BITE, AD_ELEC, 1, 1 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 15, 10, 0, MS_BUZZ, MZ_TINY, MR_ELEC | MR_POISON, 0,
- X M1_ANIMAL, M2_HOSTILE, 0, C(MAGENTA) },
- X { "xan", S_XAN, 7, 18, -4, 0, 0, (G_GENO | 3),
- X { { AT_STNG, AD_LEGS, 1, 4 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 300, 300, 0, MS_BUZZ, MZ_TINY, MR_POISON, MR_POISON,
- X M1_FLY | M1_ANIMAL | M1_NOHANDS | M1_POIS, M2_HOSTILE, 0, C(RED) },
- X/* lights */
- X { "yellow light", S_LIGHT, 3, 15, 0, 0, 0, (G_NOCORPSE| G_GENO | 4),
- X { { AT_EXPL, AD_BLND, 10, 20 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 0, 0, 0, MS_SILENT, MZ_SMALL,
- X MR_FIRE | MR_COLD | MR_ELEC | MR_DISINT | MR_SLEEP | MR_POISON |
- X MR_ACID | MR_STONE, 0,
- X M1_FLY | M1_BREATHLESS | M1_AMORPHOUS | M1_NOEYES | M1_NOLIMBS |
- X M1_NOHEAD | M1_MINDLESS | M1_UNSOLID, M2_HOSTILE | M2_NEUTER,
- X 0, C(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, NO_ATTK },
- X 1200, 600, 0, MS_SILENT, MZ_LARGE, 0, 0,
- X M1_ANIMAL | M1_HUMANOID | M1_CARNIVORE,
- X M2_HOSTILE | M2_STRONG, 0, C(BROWN) },
- X/* Angels and other lawful minions */
- X { "couatl", S_ANGEL, 8, 10, 5, 30, 7,
- X (G_NOHELL | G_SGROUP | G_NOCORPSE | 1),
- X { { AT_BITE, AD_DRST, 2, 4 }, { AT_BITE, AD_PHYS, 1, 3 },
- X { AT_HUGS, AD_WRAP, 2, 4 }, NO_ATTK, NO_ATTK, NO_ATTK },
- X 900, 400, 0, MS_SILENT, MZ_LARGE, MR_POISON, 0, M1_FLY | M1_POIS,
- X M2_MINION | M2_STALK | M2_STRONG | M2_NASTY, 0, C(GREEN) },
- X { "Aleax", S_ANGEL, 10, 8, 0, 30, 7, (G_NOHELL | G_NOCORPSE | 1),
- X { { AT_WEAP, AD_PHYS, 1, 6 }, { AT_WEAP, AD_PHYS, 1, 6 },
- X { AT_KICK, AD_PHYS, 1, 4 }, NO_ATTK, NO_ATTK, NO_ATTK },
- X WT_HUMAN, 400, 0,
- X MS_SILENT, MZ_HUMAN, MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON, 0,
- X M1_HUMANOID | M1_SEE_INVIS,
- X M2_MINION | M2_STALK | M2_NASTY | M2_COLLECT, 0, C(YELLOW) },
- X { "Angel", S_ANGEL, 14, 10, -4, 55, 12, (G_NOHELL | G_NOCORPSE | 1),
- X { { AT_WEAP, AD_PHYS, 1, 6 }, { AT_CLAW, AD_PHYS, 1, 4 },
- X { AT_WEAP, AD_PHYS, 1, 6 }, { AT_MAGC, AD_MAGM, 2, 6 },
- X NO_ATTK, NO_ATTK },
- X WT_HUMAN, 400, sizeof(struct epri), MS_CUSS, MZ_HUMAN,
- X MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON, 0,
- X M1_HUMANOID | M1_SEE_INVIS,
- X M2_NOPOLY | M2_MINION | M2_STALK | M2_STRONG | M2_NASTY | M2_COLLECT,
- X 0, C(WHITE) },
- X { "ki-rin", S_ANGEL, 16, 18, -5, 90, 15, (G_NOHELL | G_NOCORPSE | 1),
- X { { AT_KICK, AD_PHYS, 2, 4 }, { AT_KICK, AD_BLND, 2, 4 },
- X { AT_BUTT, AD_PHYS, 3, 6 }, NO_ATTK, NO_ATTK, NO_ATTK },
- X WT_HUMAN, 400, 0, MS_NEIGH, MZ_LARGE, 0, 0,
- X M1_FLY | M1_HUMANOID | M1_SEE_INVIS,
- X M2_NOPOLY | M2_MINION | M2_STALK | M2_STRONG | M2_NASTY | M2_LORD,
- X 0, C(HI_GOLD) },
- X { "Archon", S_ANGEL, 19, 16, -6, 80, 15, (G_NOHELL | G_NOCORPSE |1),
- X { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_GAZE, AD_BLND, 2, 6 },
- X { AT_WEAP, AD_PHYS, 2, 4 }, { AT_CLAW, AD_PHYS, 1, 8 },
- X { AT_MAGC, AD_SPEL, 4, 6 }, NO_ATTK },
- X WT_HUMAN, 400, 0, MS_CUSS, MZ_LARGE,
- X MR_FIRE | MR_COLD | MR_ELEC | MR_SLEEP | MR_POISON, 0,
- X M1_FLY | M1_HUMANOID | M1_SEE_INVIS | M1_REGEN,
- X M2_NOPOLY | M2_MINION | M2_STALK | M2_STRONG | M2_NASTY | M2_LORD |
- X M2_COLLECT | M2_MAGIC,
- X 0, C(HI_LORD) },
- 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,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 20, 20, 0, MS_SQEEK, MZ_TINY, 0, 0,
- X M1_FLY | M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
- X M2_WANDER, 0, C(BROWN) },
- X { "giant bat", S_BAT, 2, 22, 7, 0, 0, (G_GENO | 2),
- X { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 30, 30, 0, MS_SQEEK, MZ_MEDIUM, 0, 0,
- X M1_FLY | M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
- X M2_WANDER | M2_HOSTILE, 0, C(RED) },
- 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, NO_ATTK },
- X 30, 20, 0, MS_SQEEK, MZ_TINY, MR_SLEEP | MR_POISON, 0,
- X M1_FLY | M1_BREATHLESS | M1_ANIMAL | M1_NOHANDS | M1_POIS | M1_REGEN,
- X M2_UNDEAD | M2_HOSTILE, 0, 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, NO_ATTK },
- X 2500, 500, 0, MS_SILENT, MZ_LARGE, 0, 0,
- X M1_HUMANOID, M2_STRONG | M2_GREEDY | M2_COLLECT, 0, 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, NO_ATTK },
- X 2550, 600, 0, MS_SILENT, MZ_LARGE, 0, 0,
- X M1_HUMANOID, M2_STRONG | M2_GREEDY | M2_COLLECT, 0, 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, NO_ATTK },
- X 2550, 500, 0, MS_SILENT, MZ_LARGE, 0, 0,
- X M1_HUMANOID, M2_STRONG | M2_GREEDY | M2_COLLECT, 0, C(CYAN) },
- X/* Dragons. The order of the dragons is VERY IMPORTANT. Quite a few
- X pieces of code depend on gray being first and yellow being last.
- X The code also depends on the *order* being the same as that for
- X dragon scale mail and dragon scales in objects.c */
- X { "baby gray dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
- X { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 1500, 500, 0, MS_ROAR, MZ_HUGE, 0, 0,
- X M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE,
- X M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS, 0, 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,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 1500, 500, 0, MS_ROAR, MZ_HUGE, MR_FIRE, MR_FIRE,
- X M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE,
- X M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS, 0, 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,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 1500, 500, 0, MS_ROAR, MZ_HUGE, MR_COLD, MR_COLD,
- X M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE,
- X M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS, 0, C(WHITE) },
- X { "baby orange dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
- X { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 1500, 500, 0, MS_ROAR, MZ_HUGE, MR_SLEEP, MR_SLEEP,
- X M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE,
- X M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS, 0, 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,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 1500, 500, 0, MS_ROAR, MZ_HUGE, MR_DISINT, MR_DISINT,
- X M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE,
- X M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS, 0, C(BLACK) },
- X { "baby blue dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
- X { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 1500, 500, 0, MS_ROAR, MZ_HUGE, MR_ELEC, MR_ELEC,
- X M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE,
- X M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS, 0, 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,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 1500, 500, 0, MS_ROAR, MZ_HUGE, MR_POISON, MR_POISON,
- X M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE | M1_POIS,
- X M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS, 0, C(GREEN) },
- X { "baby yellow dragon", S_DRAGON, 12, 9, 2, 10, 0, G_GENO,
- X { { AT_BITE, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 1500, 500, 0, MS_ROAR, MZ_HUGE, MR_ACID | MR_STONE, MR_STONE,
- X M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_CARNIVORE | M1_ACID,
- X M2_HOSTILE | M2_STRONG | M2_GREEDY | M2_JEWELS, 0, C(YELLOW) },
- X { "gray dragon", S_DRAGON, 15, 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 },
- X NO_ATTK, NO_ATTK },
- X WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC, 0, 0,
- X M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS | M1_OVIPAROUS |
- X M1_CARNIVORE,
- X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
- X 0, C(GRAY) },
- X { "red dragon", S_DRAGON, 15, 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 },
- X NO_ATTK, NO_ATTK },
- X WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC, MR_FIRE, MR_FIRE,
- X M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS | M1_OVIPAROUS |
- X M1_CARNIVORE,
- X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
- X 0, C(RED) },
- X { "white dragon", S_DRAGON, 15, 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 },
- X NO_ATTK, NO_ATTK },
- X WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC, MR_COLD, MR_COLD,
- X M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS | M1_OVIPAROUS |
- X M1_CARNIVORE,
- X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
- X 0, C(WHITE) },
- X { "orange dragon", S_DRAGON, 15, 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 },
- X NO_ATTK, NO_ATTK },
- X WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC, MR_SLEEP, MR_SLEEP,
- X M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS | M1_OVIPAROUS |
- X M1_CARNIVORE,
- X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
- X 0, C(ORANGE_COLORED) },
- X { "black dragon", S_DRAGON, 15, 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 },
- X NO_ATTK, NO_ATTK },
- X WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC, MR_DISINT, MR_DISINT,
- X M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS | M1_OVIPAROUS |
- X M1_CARNIVORE,
- X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
- X 0, C(BLACK) },
- X { "blue dragon", S_DRAGON, 15, 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 },
- X NO_ATTK, NO_ATTK },
- X WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC, MR_ELEC, MR_ELEC,
- X M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS | M1_OVIPAROUS |
- X M1_CARNIVORE,
- X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
- X 0, C(BLUE) },
- X { "green dragon", S_DRAGON, 15, 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 },
- X NO_ATTK, NO_ATTK },
- X WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC, MR_POISON, MR_POISON,
- X M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS | M1_OVIPAROUS |
- X M1_CARNIVORE | M1_POIS,
- X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
- X 0, C(GREEN) },
- X { "yellow dragon", S_DRAGON, 15, 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 },
- X NO_ATTK, NO_ATTK },
- X WT_DRAGON, 1500, 0, MS_ROAR, MZ_GIGANTIC,
- X MR_ACID | MR_STONE, MR_STONE,
- X M1_FLY | M1_THICK_HIDE | M1_NOHANDS | M1_SEE_INVIS | M1_OVIPAROUS |
- X M1_CARNIVORE | M1_ACID,
- X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_GREEDY | M2_JEWELS | M2_MAGIC,
- X 0, 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,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 0, 0, 0, MS_SILENT, MZ_HUGE, MR_POISON | MR_STONE, 0,
- X M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS | M1_UNSOLID |
- X M1_FLY,
- X M2_STRONG | M2_NEUTER, 0, C(CYAN) },
- X { "fire elemental", S_ELEMENTAL, 8, 12, 2, 30, 0, (G_NOCORPSE | 1),
- X { { AT_CLAW, AD_FIRE, 3, 6 }, { AT_NONE, AD_FIRE, 0, 4 },
- X NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 0, 0, 0, MS_SILENT, MZ_HUGE, MR_FIRE | MR_POISON | MR_STONE, 0,
- X M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS | M1_UNSOLID |
- X M1_FLY,
- X M2_STRONG | M2_NEUTER, 0, 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,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 2500, 0, 0, MS_SILENT, MZ_HUGE,
- X MR_FIRE | MR_COLD | MR_POISON | MR_STONE, 0,
- X M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS | M1_BREATHLESS |
- X M1_WALLWALK | M1_THICK_HIDE, M2_STRONG | M2_NEUTER, 0, 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,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 2500, 0, 0, MS_SILENT, MZ_HUGE, MR_POISON | MR_STONE, 0,
- X M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS | M1_AMPHIBIOUS |
- X M1_SWIM,
- X M2_STRONG | M2_NEUTER, 0, C(BLUE) },
- X/* Fungi */
- X { "brown mold", S_FUNGUS, 1, 0, 9, 0, 0, (G_GENO | 1),
- X { { AT_NONE, AD_COLD, 0, 6 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 50, 30, 0, MS_SILENT, MZ_SMALL,
- X MR_COLD | MR_POISON, MR_COLD | MR_POISON,
- X M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS |
- X M1_OMNIVORE,
- X M2_HOSTILE | M2_NEUTER, 0, 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,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 50, 30, 0, MS_SILENT, MZ_SMALL, MR_POISON, MR_POISON,
- X M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS |
- X M1_OMNIVORE | M1_POIS,
- X M2_HOSTILE | M2_NEUTER, 0, 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,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 50, 30, 0, MS_SILENT, MZ_SMALL, MR_ACID | MR_STONE, MR_STONE,
- X M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS |
- X M1_OMNIVORE | M1_ACID,
- X M2_HOSTILE | M2_NEUTER, 0, 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,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 50, 30, 0, MS_SILENT, MZ_SMALL,
- X MR_FIRE | MR_POISON, MR_FIRE | MR_POISON,
- X M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS |
- X M1_OMNIVORE,
- X M2_HOSTILE | M2_NEUTER, 0, C(RED) },
- X { "shrieker", S_FUNGUS, 3, 1, 7, 0, 0, (G_GENO | 1),
- X { NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
- X 100, 100, 0, MS_SHRIEK, MZ_SMALL, MR_POISON, MR_POISON,
- X M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS,
- X M2_HOSTILE | M2_NEUTER, 0, C(MAGENTA) },
- 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, NO_ATTK },
- X 100, 100, 0, MS_SILENT, MZ_SMALL, MR_POISON, MR_POISON,
- X M1_BREATHLESS | M1_NOEYES | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS |
- X M1_OMNIVORE,
- X M2_HOSTILE | M2_NEUTER, 0, C(MAGENTA) },
- X/* Gnomes */
- X { "gnome", S_GNOME, 1, 6, MARM(10,5), 4, 0, (G_GENO | G_SGROUP | 1),
- X { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 650, 100, 0, MS_ORC, MZ_SMALL, 0, 0,
- X M1_HUMANOID, M2_COLLECT, 0, C(BROWN) },
- X { "gnome lord", S_GNOME, 3, 8, MARM(10,4), 4, 0, (G_GENO | 2),
- X { { AT_WEAP, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 700, 120, 0, MS_ORC, MZ_SMALL, 0, 0,
- X M1_HUMANOID, M2_LORD | M2_MALE | M2_COLLECT, 0, C(BLUE) },
- X { "gnomish wizard", S_GNOME, 3, 10, 4, 10, 0, (G_GENO | 1),
- X { { AT_MAGC, AD_SPEL, 0, 0 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 700, 120, 0, MS_ORC, MZ_SMALL, 0, 0,
- X M1_HUMANOID, M2_MAGIC, 0, C(HI_ZAP) },
- X { "gnome king", S_GNOME, 5, 10, MARM(10,2), 20, 0, (G_GENO | 1),
- X { { AT_WEAP, AD_PHYS, 2, 6 }, NO_ATTK, NO_ATTK,
- X NO_ATTK, NO_ATTK, NO_ATTK },
- X 750, 150, 0, MS_ORC, MZ_SMALL, 0, 0,
- X M1_HUMANOID, M2_PRINCE | M2_MALE | M2_COLLECT, 0, C(HI_LORD) },
- X#ifdef SPLITMON_1
- X};
- X#endif
- X#endif /* !SPLITMON_2 */
- X
- END_OF_FILE
- if test 48860 -ne `wc -c <'src/monst.c1'`; then
- echo shar: \"'src/monst.c1'\" unpacked with wrong size!
- fi
- # end of 'src/monst.c1'
- fi
- if test -f 'sys/amiga/amimenu.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'sys/amiga/amimenu.c'\"
- else
- echo shar: Extracting \"'sys/amiga/amimenu.c'\" \(6187 characters\)
- sed "s/^X//" >'sys/amiga/amimenu.c' <<'END_OF_FILE'
- X/* SCCS Id: @(#)amimenu.c 3.1 93/01/08
- X/* Copyright (c) Olaf 'Rhialto' Seibert, 1989 */
- X/* Copyright (c) Kenneth Lorber, Bethesda, Maryland, 1992, 1993 */
- X/* NetHack may be freely redistributed. See license for details. */
- X
- X/* Originally by John Toebes. */
- X
- X#define TEXT(nam,str) \
- Xstatic struct IntuiText nam = \
- X {1,5,JAM2,0,0,0L,(UBYTE*)str,0L} /* 1,5 == C_WHITE,C_MAGENTA */
- X
- X /* Commands */
- X TEXT(T_HELP, "? Display help menu");
- X TEXT(T_amp, "& Explain a command");
- X TEXT(T_O, "O Set options");
- X TEXT(T_SHELL, "! AmigaDos commands");
- X TEXT(T_v, "v Version number");
- X TEXT(T_CR, "^R Redraw screen");
- X TEXT(T_CP, "^P Repeat last message");
- X TEXT(T_Q, "Q Quit game");
- X TEXT(T_S, "S Save the game");
- X
- X /* Inventory */
- X TEXT(T_i, "i Inventory");
- X TEXT(T_p, "p Pay your bill");
- X TEXT(T_d, "d Drop an object");
- X TEXT(T_D, "D Drop several things");
- X TEXT(T_COMMA, ", Pickup an object");
- X TEXT(T_AT, "@ Toggle pickup");
- X TEXT(T_SLASH, "/ Identify something");
- X TEXT(T_C, "C Christen a monster");
- X
- X /* Actions */
- X TEXT(T_a, "a Apply/use something");
- X TEXT(T_e, "e Eat something");
- X TEXT(T_q, "q Quaff a potion");
- X TEXT(T_r, "r Read scroll/book");
- X TEXT(T_t, "t Throw/shoot weapon");
- X TEXT(T_z, "z Zap a wand");
- X TEXT(T_Z, "Z Cast a spell");
- X TEXT(T_HASH, "# Extended command");
- X
- X /* Preparations */
- X TEXT(T_w, "w Wield a weapon");
- X TEXT(T_P, "P Put on ring");
- X TEXT(T_R, "R Remove ring");
- X TEXT(T_T, "T Take off armor");
- X TEXT(T_W, "W Wear armor");
- X TEXT(T_WPN, ") Current weapon");
- X TEXT(T_ARMOR, "[ Current armor");
- X TEXT(T_RING, "= Current rings");
- X TEXT(T_AMU, "\" Current amulet");
- X TEXT(T_TOOL, "( Current tools");
- X
- X /* Movement */
- X TEXT(T_o, "o Open door");
- X TEXT(T_c, "c Close door");
- X TEXT(T_KICK, "^D Kick door");
- X TEXT(T_s, "s Search");
- X TEXT(T_UP, "< Go up stairs");
- X TEXT(T_DOWN, "> Go down stairs");
- X TEXT(T_CT, "^T Teleport");
- X TEXT(T_WAIT, ". Wait a moment");
- X TEXT(T_E, "E Engrave msg on floor");
- X
- X#define IFLAGS ITEMENABLED|ITEMTEXT|HIGHCOMP
- X#define IDATA(cmd,str,off) 0,off,WDT,9,IFLAGS,0,(APTR)&str,(APTR)0,cmd,0L,0
- X
- X/* Commands */
- X
- X#undef WDT
- X#define WDT 184
- X
- Xstatic struct MenuItem cmdsub[] = {
- X { &cmdsub[1], IDATA('?', T_HELP, 0) }, /* Display help */
- X { &cmdsub[2], IDATA('&', T_amp, 10) }, /* Explain a command */
- X { &cmdsub[3], IDATA('O', T_O, 20) }, /* Set options */
- X { &cmdsub[4], IDATA('!', T_SHELL, 30) }, /* AmigaDos commands */
- X { &cmdsub[5], IDATA('v', T_v, 40) }, /* Version number */
- X { &cmdsub[6], IDATA(022, T_CR, 50) }, /*R Redraw screen */
- X { &cmdsub[7], IDATA(020 ,T_CP, 60) }, /*P Repeat last message */
- X { &cmdsub[8], IDATA('Q', T_Q, 70) }, /* Quit game */
- X { NULL, IDATA('S', T_S, 80) }, /* Save the game */
- X};
- X
- X/* Inventory */
- X
- X#undef WDT
- X#define WDT 184
- X
- Xstatic struct MenuItem invsub[] = {
- X { &invsub[1], IDATA('i', T_i, 0) }, /* Inventory */
- X { &invsub[2], IDATA('p', T_p, 10) }, /* Pay your bill */
- X { &invsub[3], IDATA('d', T_d, 20) }, /* Drop an object */
- X { &invsub[4], IDATA('D', T_D, 30) }, /* Drop several things */
- X { &invsub[5], IDATA(',', T_COMMA, 40) }, /* Pickup an object */
- X { &invsub[6], IDATA('/', T_SLASH, 50) }, /* Identify something */
- X { NULL, IDATA('C', T_C, 60) }, /* Christen a monster */
- X};
- X
- X/* Actions */
- X
- X#undef WDT
- X#define WDT 184
- X
- Xstatic struct MenuItem actsub[] = {
- X { &actsub[1], IDATA('a', T_a, 0) }, /* Apply/use something */
- X { &actsub[2], IDATA('e', T_e, 10) }, /* Eat something */
- X { &actsub[3], IDATA('q', T_q, 20) }, /* Quaff a potion */
- X { &actsub[4], IDATA('r', T_r, 30) }, /* Read a scroll/spellbook */
- X { &actsub[5], IDATA('t', T_t, 40) }, /* Throw/shoot weapon */
- X { &actsub[6], IDATA('z', T_z, 50) }, /* Zap a wand */
- X { &actsub[7], IDATA('Z', T_Z, 60) }, /* Cast a spell */
- X { NULL , IDATA('#', T_HASH, 70) }, /* Extended command */
- X};
- X
- X/* Preparations */
- X
- X#undef WDT
- X#define WDT 144
- X
- Xstatic struct MenuItem armsub[] = {
- X { &armsub[1], IDATA('w', T_w, 0) }, /* Wield a weapon */
- X { &armsub[2], IDATA('R', T_R, 10) }, /* Remove ring */
- X { &armsub[3], IDATA('P', T_P, 20) }, /* Put on ring */
- X { &armsub[4], IDATA('T', T_T, 30) }, /* Take off armor */
- X { &armsub[5], IDATA('W', T_W, 40) }, /* Wear armor */
- X { &armsub[6], IDATA(')', T_WPN, 50) }, /* Current weapon */
- X { &armsub[7], IDATA('[', T_ARMOR, 60) }, /* Current armor */
- X { &armsub[8], IDATA('=', T_RING, 70) }, /* Current rings */
- X { &armsub[9], IDATA('"', T_AMU, 80) }, /* Current amulet */
- X { NULL , IDATA('(', T_TOOL, 90) }, /* Current tools */
- X};
- X
- X/* Movement */
- X
- X#undef WDT
- X#define WDT 192
- X
- Xstatic struct MenuItem movsub[] = {
- X { &movsub[1], IDATA('o', T_o, 0) }, /* Open door */
- X { &movsub[2], IDATA('c', T_c, 10) }, /* Close door */
- X { &movsub[3], IDATA(004, T_KICK, 20) }, /*D Kick door */
- X { &movsub[4], IDATA('s', T_s, 30) }, /* Search */
- X { &movsub[5], IDATA('<', T_UP, 40) }, /* Go up stairs */
- X { &movsub[6], IDATA('>', T_DOWN, 50) }, /* Go down stairs */
- X { &movsub[7], IDATA(024, T_CT, 60) }, /*T Teleport */
- X { &movsub[8], IDATA('.', T_WAIT, 70) }, /* Wait a moment */
- X { NULL , IDATA('E', T_E, 80) }, /* Engrave msg on floor */
- X};
- X
- X/* Menustrip */
- X
- X/* Width = #letters * 8 + 8 + 10 */
- X
- Xstruct Menu HackMenu[] = {
- X { &HackMenu[1], 10,0, 72,0,MENUENABLED,"Commands", &cmdsub[0] }, /*8*/
- X { &HackMenu[2], 92,0, 80,0,MENUENABLED,"Inventory", &invsub[0] }, /*9*/
- X { &HackMenu[3],182,0, 64,0,MENUENABLED,"Actions", &actsub[0] }, /*7*/
- X { &HackMenu[4],256,0,104,0,MENUENABLED,"Preparations", &armsub[0] }, /*12*/
- X { NULL, 370,0, 72,0,MENUENABLED,"Movement", &movsub[0] }, /*8*/
- X};
- END_OF_FILE
- if test 6187 -ne `wc -c <'sys/amiga/amimenu.c'`; then
- echo shar: \"'sys/amiga/amimenu.c'\" unpacked with wrong size!
- fi
- # end of 'sys/amiga/amimenu.c'
- fi
- echo shar: End of archive 11 \(of 108\).
- cp /dev/null ark11isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 \
- 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 \
- 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 \
- 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 \
- 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 \
- 101 102 103 104 105 106 107 108 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 108 archives.
- echo "Now execute 'rebuild.sh'"
- rm -f ark10[0-8]isdone 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
-