Source:NetHack 3.4.0/artifact.h

From NetHackWiki
Jump to navigation Jump to search

Below is the full text to artifact.h from the source code of NetHack 3.4.0. To link to a particular line, write [[NetHack 3.4.0/artifact.h#line123]], for example.

Warning! This is the source code from an old release. For the latest release, see Source code

The NetHack General Public License applies to screenshots, source code and other content from NetHack.

This content was modified from the original NetHack source code distribution (by splitting up NetHack content between wiki pages, and possibly further editing). See the page history for a list of who changed it, and on what dates.

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 */