OSDN Git Service

shrink mine
[nethackexpress/trunk.git] / include / artifact.h
1 /*      SCCS Id: @(#)artifact.h 3.4     1995/05/31      */
2 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
3 /* NetHack may be freely redistributed.  See license for details. */
4
5 #ifndef ARTIFACT_H
6 #define ARTIFACT_H
7
8 #define SPFX_NONE   0x0000000L  /* no special effects, just a bonus */
9 #define SPFX_NOGEN  0x0000001L  /* item is special, bequeathed by gods */
10 #define SPFX_RESTR  0x0000002L  /* item is restricted - can't be named */
11 #define SPFX_INTEL  0x0000004L  /* item is self-willed - intelligent */
12 #define SPFX_SPEAK  0x0000008L  /* item can speak (not implemented) */
13 #define SPFX_SEEK   0x0000010L  /* item helps you search for things */
14 #define SPFX_WARN   0x0000020L  /* item warns you of danger */
15 #define SPFX_ATTK   0x0000040L  /* item has a special attack (attk) */
16 #define SPFX_DEFN   0x0000080L  /* item has a special defence (defn) */
17 #define SPFX_DRLI   0x0000100L  /* drains a level from monsters */
18 #define SPFX_SEARCH 0x0000200L  /* helps searching */
19 #define SPFX_BEHEAD 0x0000400L  /* beheads monsters */
20 #define SPFX_HALRES 0x0000800L  /* blocks hallucinations */
21 #define SPFX_ESP    0x0001000L  /* ESP (like amulet of ESP) */
22 #define SPFX_STLTH  0x0002000L  /* Stealth */
23 #define SPFX_REGEN  0x0004000L  /* Regeneration */
24 #define SPFX_EREGEN 0x0008000L  /* Energy Regeneration */
25 #define SPFX_HSPDAM 0x0010000L  /* 1/2 spell damage (on player) in combat */
26 #define SPFX_HPHDAM 0x0020000L  /* 1/2 physical damage (on player) in combat */
27 #define SPFX_TCTRL  0x0040000L  /* Teleportation Control */
28 #define SPFX_LUCK   0x0080000L  /* Increase Luck (like Luckstone) */
29 #define SPFX_DMONS  0x0100000L  /* attack bonus on one monster type */
30 #define SPFX_DCLAS  0x0200000L  /* attack bonus on monsters w/ symbol mtype */
31 #define SPFX_DFLAG1 0x0400000L  /* attack bonus on monsters w/ mflags1 flag */
32 #define SPFX_DFLAG2 0x0800000L  /* attack bonus on monsters w/ mflags2 flag */
33 #define SPFX_DALIGN 0x1000000L  /* attack bonus on non-aligned monsters  */
34 #define SPFX_DBONUS 0x1F00000L  /* attack bonus mask */
35 #define SPFX_XRAY   0x2000000L  /* gives X-RAY vision to player */
36 #define SPFX_REFLECT 0x4000000L /* Reflection */
37
38
39 struct artifact {
40         short       otyp;
41         const char  *name;
42         unsigned long spfx;     /* special effect from wielding/wearing */
43         unsigned long cspfx;    /* special effect just from carrying obj */
44         unsigned long mtype;    /* monster type, symbol, or flag */
45         struct attack attk, defn, cary;
46         uchar       inv_prop;   /* property obtained by invoking artifact */
47         aligntyp    alignment;  /* alignment of bequeathing gods */
48         short       role;       /* character role associated with */
49         short       race;       /* character race associated with */
50         long        cost;       /* price when sold to hero (default 100 x base cost) */
51 };
52
53 /* invoked properties with special powers */
54 #define TAMING          (LAST_PROP+1)
55 #define HEALING         (LAST_PROP+2)
56 #define ENERGY_BOOST    (LAST_PROP+3)
57 #define UNTRAP          (LAST_PROP+4)
58 #define CHARGE_OBJ      (LAST_PROP+5)
59 #define LEV_TELE        (LAST_PROP+6)
60 #define CREATE_PORTAL   (LAST_PROP+7)
61 #define ENLIGHTENING    (LAST_PROP+8)
62 #define CREATE_AMMO     (LAST_PROP+9)
63
64 #endif /* ARTIFACT_H */