Home
About
Blog
Products
Forum
Support
Contact
Sunbelt Computer Software
PL/B Language Development and Support
Home
About
Blog
Products
Forum
Support
Contact
NetHack-collaboration/include/artifact.h at NetHack-3.7 · NetHack/NetHack-collaboration · GitHub
Skip to content
Navigation Menu
Sign in
Appearance settings
Platform
AI CODE CREATION
GitHub Copilot
Write better code with AI
GitHub Copilot app
Direct agents from issue to merge
MCP Registry
Integrate external tools
DEVELOPER WORKFLOWS
Actions
Automate any workflow
Codespaces
Instant dev environments
Issues
Plan and track work
Code Review
Manage code changes
Code Quality
Enforce quality at merge
APPLICATION SECURITY
GitHub Advanced Security
Find and fix vulnerabilities
Code security
Secure your code as you build
Secret protection
Stop leaks before they start
EXPLORE
Why GitHub
Documentation
Blog
Changelog
Marketplace
View all features
Solutions
BY COMPANY SIZE
Enterprises
Small and medium teams
Startups
Nonprofits
BY USE CASE
App Modernization
DevSecOps
DevOps
CI/CD
View all use cases
BY INDUSTRY
Healthcare
Financial services
Manufacturing
Government
See all industries
View all solutions
Resources
EXPLORE BY TOPIC
AI
Software Development
DevOps
Security
View all topics
EXPLORE BY TYPE
Customer stories
Events & webinars
Ebooks & reports
Business insights
GitHub Skills
SUPPORT & SERVICES
Documentation
Customer support
Community forum
Trust center
Partners
View all resources
Open Source
COMMUNITY
GitHub Sponsors
Fund open source developers
PROGRAMS
Security Lab
Maintainer Community
GitHub Stars
Archive Program
REPOSITORIES
Topics
Trending
Collections
Enterprise
ENTERPRISE SOLUTIONS
Enterprise platform
AI-powered developer platform
AVAILABLE ADD-ONS
GitHub Advanced Security
Enterprise-grade security features
Copilot for Business
Enterprise-grade AI features
Premium Support
Enterprise-grade 24/7 support
Pricing
Search
/
Sign in
Sign up
Appearance settings
You signed in with another tab or window.
Reload
to refresh your session.
You signed out in another tab or window.
Reload
to refresh your session.
You switched accounts on another tab or window.
Reload
to refresh your session.
Dismiss alert
{{ message }}
NetHack
NetHack-collaboration
Repository navigation
Code
Pull requests
Discussions
Actions
Projects
Security and quality
Insights
More
items
Files
Expand file tree
NetHack-3.7
Breadcrumbs
NetHack-collaboration
/
include
/
artifact.h
Copy path
Blame
More file actions
Blame
More file actions
Latest commit
History
History
History
95 lines (87 loc) · 4.29 KB
NetHack-3.7
Breadcrumbs
NetHack-collaboration
/
include
/
artifact.h
Copy path
Top
File metadata and controls
Code
Blame
95 lines (87 loc) · 4.29 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
/* NetHack 3.7 artifact.h $NHDT-Date: 1602692711 2020/10/14 16:25:11 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.15 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2011. */
/* NetHack may be freely redistributed. See license for details. */
#ifndef
ARTIFACT_H
#define
ARTIFACT_H
#include
"permonst.h"
#include
"prop.h"
/* clang-format off */
#define
SPFX_NONE
0x00000000L
/* no special effects, just a bonus */
#define
SPFX_NOGEN
0x00000001L
/* item is special, bequeathed by gods */
#define
SPFX_RESTR
0x00000002L
/* item is restricted - can't be named */
#define
SPFX_INTEL
0x00000004L
/* item is self-willed - intelligent */
#define
SPFX_SPEAK
0x00000008L
/* item can speak (not implemented) */
#define
SPFX_SEEK
0x00000010L
/* item helps you search for things */
#define
SPFX_WARN
0x00000020L
/* item warns you of danger */
#define
SPFX_ATTK
0x00000040L
/* item has a special attack (attk) */
#define
SPFX_DEFN
0x00000080L
/* item has a special defence (defn) */
#define
SPFX_DRLI
0x00000100L
/* drains a level from monsters */
#define
SPFX_SEARCH
0x00000200L
/* helps searching */
#define
SPFX_BEHEAD
0x00000400L
/* beheads monsters */
#define
SPFX_HALRES
0x00000800L
/* blocks hallucinations */
#define
SPFX_ESP
0x00001000L
/* ESP (like amulet of ESP) */
#define
SPFX_STLTH
0x00002000L
/* Stealth */
#define
SPFX_REGEN
0x00004000L
/* Regeneration */
#define
SPFX_EREGEN
0x00008000L
/* Energy Regeneration */
#define
SPFX_HSPDAM
0x00010000L
/* 1/2 spell damage (on player) in combat */
#define
SPFX_HPHDAM
0x00020000L
/* 1/2 physical damage (on player) in combat */
#define
SPFX_TCTRL
0x00040000L
/* Teleportation Control */
#define
SPFX_LUCK
0x00080000L
/* Increase Luck (like Luckstone) */
#define
SPFX_DMONS
0x00100000L
/* attack bonus on one monster type */
#define
SPFX_DCLAS
0x00200000L
/* attack bonus on monsters w/ symbol mtype */
#define
SPFX_DFLAG1
0x00400000L
/* attack bonus on monsters w/ mflags1 flag */
#define
SPFX_DFLAG2
0x00800000L
/* attack bonus on monsters w/ mflags2 flag */
#define
SPFX_DALIGN
0x01000000L
/* attack bonus on non-aligned monsters */
#define
SPFX_DBONUS
0x01F00000L
/* attack bonus mask */
#define
SPFX_XRAY
0x02000000L
/* gives X-RAY vision to player */
#define
SPFX_REFLECT
0x04000000L
/* Reflection */
#define
SPFX_PROTECT
0x08000000L
/* Protection */
struct
artifact
{
short
otyp
;
const
char
*
name
;
unsigned long
spfx
;
/* special effect from wielding/wearing */
unsigned long
cspfx
;
/* special effect just from carrying obj */
unsigned long
mtype
;
/* monster type, symbol, or flag */
struct
attack
attk
,
defn
,
cary
;
uchar
inv_prop
;
/* property obtained by invoking artifact */
aligntyp
alignment
;
/* alignment of bequeathing gods */
short
role
;
/* character role associated with */
short
race
;
/* character race associated with */
schar
gen_spe
;
/* bias to spe when gifted or randomly generated */
uchar
gift_value
;
/* minimum sacrifice value to be gifted this */
long
cost
;
/* price when sold to hero (default 100 x base cost) */
char
acolor
;
/* color to use if artifact 'glows' */
};
/* invoked properties with special powers */
enum
invoke_prop_types
{
TAMING
=
(
LAST_PROP
+
1
),
HEALING
,
ENERGY_BOOST
,
UNTRAP
,
CHARGE_OBJ
,
LEV_TELE
,
CREATE_PORTAL
,
ENLIGHTENING
,
CREATE_AMMO
,
BANISH
,
FLING_POISON
,
FIRESTORM
,
SNOWSTORM
,
BLINDING_RAY
};
/* artifact tracking; gift and wish imply found; it also gets set for items
seen on the floor, in containers, and wielded or dropped by monsters */
struct
arti_info
{
Bitfield
(
exists
,
1
);
/* 1 if corresponding artifact has been created */
Bitfield
(
found
,
1
);
/* 1 if artifact is known by hero to exist */
Bitfield
(
gift
,
1
);
/* 1 iff artifact was created as a prayer reward */
Bitfield
(
wish
,
1
);
/* 1 iff artifact was created via wish */
Bitfield
(
named
,
1
);
/* 1 iff artifact was made by naming an item */
Bitfield
(
viadip
,
1
);
/* 1 iff dipped long sword became Excalibur */
Bitfield
(
lvldef
,
1
);
/* 1 iff created by special level definition */
Bitfield
(
bones
,
1
);
/* 1 iff came from bones file */
Bitfield
(
rndm
,
1
);
/* 1 iff randomly generated */
};
/* clang-format on */
#endif
/* ARTIFACT_H */
You can’t perform that action at this time.