artifact.h

Go to the documentation of this file.
00001 /*      SCCS Id: @(#)artifact.h 3.4     1995/05/31      */
00002 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
00003 /* NetHack may be freely redistributed.  See license for details. */
00004 
00005 #ifndef ARTIFACT_H
00006 #define ARTIFACT_H
00007 
00008 #define SPFX_NONE   0x0000000L  /* no special effects, just a bonus */
00009 #define SPFX_NOGEN  0x0000001L  /* item is special, bequeathed by gods */
00010 #define SPFX_RESTR  0x0000002L  /* item is restricted - can't be named */
00011 #define SPFX_INTEL  0x0000004L  /* item is self-willed - intelligent */
00012 #define SPFX_SPEAK  0x0000008L  /* item can speak (not implemented) */
00013 #define SPFX_SEEK   0x0000010L  /* item helps you search for things */
00014 #define SPFX_WARN   0x0000020L  /* item warns you of danger */
00015 #define SPFX_ATTK   0x0000040L  /* item has a special attack (attk) */
00016 #define SPFX_DEFN   0x0000080L  /* item has a special defence (defn) */
00017 #define SPFX_DRLI   0x0000100L  /* drains a level from monsters */
00018 #define SPFX_SEARCH 0x0000200L  /* helps searching */
00019 #define SPFX_BEHEAD 0x0000400L  /* beheads monsters */
00020 #define SPFX_HALRES 0x0000800L  /* blocks hallucinations */
00021 #define SPFX_ESP    0x0001000L  /* ESP (like amulet of ESP) */
00022 #define SPFX_DISPL  0x0002000L  /* Displacement */
00023 #define SPFX_REGEN  0x0004000L  /* Regeneration */
00024 #define SPFX_EREGEN 0x0008000L  /* Energy Regeneration */
00025 #define SPFX_HSPDAM 0x0010000L  /* 1/2 spell damage (on player) in combat */
00026 #define SPFX_HPHDAM 0x0020000L  /* 1/2 physical damage (on player) in combat */
00027 #define SPFX_TCTRL  0x0040000L  /* Teleportation Control */
00028 #define SPFX_LUCK   0x0080000L  /* Increase Luck (like Luckstone) */
00029 #define SPFX_DMONS  0x0100000L  /* attack bonus on one monster type */
00030 #define SPFX_DCLAS  0x0200000L  /* attack bonus on monsters w/ symbol mtype */
00031 #define SPFX_DFLAG1 0x0400000L  /* attack bonus on monsters w/ mflags1 flag */
00032 #define SPFX_DFLAG2 0x0800000L  /* attack bonus on monsters w/ mflags2 flag */
00033 #define SPFX_DALIGN 0x1000000L  /* attack bonus on non-aligned monsters  */
00034 #define SPFX_DBONUS 0x1F00000L  /* attack bonus mask */
00035 #define SPFX_XRAY   0x2000000L  /* gives X-RAY vision to player */
00036 #define SPFX_REFLECT 0x4000000L /* Reflection */
00037 #define SPFX_WARN_S 0x8000000L  /* item warns you of danger of S_MONSTER */
00038 
00039 
00040 struct artifact {
00041         short       otyp;
00042         const char  *name;
00043         unsigned long spfx;     /* special effect from wielding/wearing */
00044         unsigned long cspfx;    /* special effect just from carrying obj */
00045         unsigned long mtype;    /* monster type, symbol, or flag */
00046         struct attack attk, defn, cary;
00047         uchar       inv_prop;   /* property obtained by invoking artifact */
00048         aligntyp    alignment;  /* alignment of bequeathing gods */
00049         short       role;       /* character role associated with */
00050         short       race;       /* character race associated with */
00051         long        cost;       /* price when sold to hero (default 100 x base cost) */
00052 };
00053 
00054 /* invoked properties with special powers */
00055 #define TAMING          (LAST_PROP+1)
00056 #define HEALING         (LAST_PROP+2)
00057 #define ENERGY_BOOST    (LAST_PROP+3)
00058 #define UNTRAP          (LAST_PROP+4)
00059 #define CHARGE_OBJ      (LAST_PROP+5)
00060 #define LEV_TELE        (LAST_PROP+6)
00061 #define CREATE_PORTAL   (LAST_PROP+7)
00062 #define ENLIGHTENING    (LAST_PROP+8)
00063 #define CREATE_AMMO     (LAST_PROP+9)
00064 
00065 #endif /* ARTIFACT_H */