]>
git.cameronkatri.com Git - bsdgames-darwin.git/blob - hack/def.objects.h
2 * Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985.
4 * $Id: def.objects.h,v 1.2 1993/08/02 17:16:51 mycroft Exp $
7 /* objects have letter " % ) ( 0 _ ` [ ! ? / = * */
9 #include "def.objclass.h"
10 #define NULL (char *)0
12 struct objclass objects
[] = {
14 { "strange object", NULL
, NULL
, 1, 0,
15 ILLOBJ_SYM
, 0, 0, 0, 0, 0, 0 },
16 { "amulet of Yendor", NULL
, NULL
, 1, 0,
17 AMULET_SYM
, 100, 0, 2, 0, 0, 0 },
19 #define FOOD(name,prob,delay,weight,nutrition) { name, NULL, NULL, 1, 1,\
20 FOOD_SYM, prob, delay, weight, 0, 0, nutrition }
22 /* dog eats foods 0-4 but prefers 1 above 0,2,3,4 */
23 /* food 4 can be read */
24 /* food 5 improves your vision */
25 /* food 6 makes you stronger (like Popeye) */
26 /* foods CORPSE up to CORPSE+52 are cadavers */
28 FOOD("food ration", 50, 5, 4, 800),
29 FOOD("tripe ration", 20, 1, 2, 200),
30 FOOD("pancake", 3, 1, 1, 200),
31 FOOD("dead lizard", 3, 0, 1, 40),
32 FOOD("fortune cookie", 7, 0, 1, 40),
33 FOOD("carrot", 2, 0, 1, 50),
34 FOOD("tin", 7, 0, 1, 0),
35 FOOD("orange", 1, 0, 1, 80),
36 FOOD("apple", 1, 0, 1, 50),
37 FOOD("pear", 1, 0, 1, 50),
38 FOOD("melon", 1, 0, 1, 100),
39 FOOD("banana", 1, 0, 1, 80),
40 FOOD("candy bar", 1, 0, 1, 100),
41 FOOD("egg", 1, 0, 1, 80),
42 FOOD("clove of garlic", 1, 0, 1, 40),
43 FOOD("lump of royal jelly", 0, 0, 1, 200),
45 FOOD("dead human", 0, 4, 40, 400),
46 FOOD("dead giant ant", 0, 1, 3, 30),
47 FOOD("dead giant bat", 0, 1, 3, 30),
48 FOOD("dead centaur", 0, 5, 50, 500),
49 FOOD("dead dragon", 0, 15, 150, 1500),
50 FOOD("dead floating eye", 0, 1, 1, 10),
51 FOOD("dead freezing sphere", 0, 1, 1, 10),
52 FOOD("dead gnome", 0, 1, 10, 100),
53 FOOD("dead hobgoblin", 0, 2, 20, 200),
54 FOOD("dead stalker", 0, 4, 40, 400),
55 FOOD("dead jackal", 0, 1, 10, 100),
56 FOOD("dead kobold", 0, 1, 10, 100),
57 FOOD("dead leprechaun", 0, 4, 40, 400),
58 FOOD("dead mimic", 0, 4, 40, 400),
59 FOOD("dead nymph", 0, 4, 40, 400),
60 FOOD("dead orc", 0, 2, 20, 200),
61 FOOD("dead purple worm", 0, 7, 70, 700),
62 FOOD("dead quasit", 0, 2, 20, 200),
63 FOOD("dead rust monster", 0, 5, 50, 500),
64 FOOD("dead snake", 0, 1, 10, 100),
65 FOOD("dead troll", 0, 4, 40, 400),
66 FOOD("dead umber hulk", 0, 5, 50, 500),
67 FOOD("dead vampire", 0, 4, 40, 400),
68 FOOD("dead wraith", 0, 1, 1, 10),
69 FOOD("dead xorn", 0, 7, 70, 700),
70 FOOD("dead yeti", 0, 7, 70, 700),
71 FOOD("dead zombie", 0, 1, 3, 30),
72 FOOD("dead acid blob", 0, 1, 3, 30),
73 FOOD("dead giant beetle", 0, 1, 1, 10),
74 FOOD("dead cockatrice", 0, 1, 3, 30),
75 FOOD("dead dog", 0, 2, 20, 200),
76 FOOD("dead ettin", 0, 1, 3, 30),
77 FOOD("dead fog cloud", 0, 1, 1, 10),
78 FOOD("dead gelatinous cube", 0, 1, 10, 100),
79 FOOD("dead homunculus", 0, 2, 20, 200),
80 FOOD("dead imp", 0, 1, 1, 10),
81 FOOD("dead jaguar", 0, 3, 30, 300),
82 FOOD("dead killer bee", 0, 1, 1, 10),
83 FOOD("dead leocrotta", 0, 5, 50, 500),
84 FOOD("dead minotaur", 0, 7, 70, 700),
85 FOOD("dead nurse", 0, 4, 40, 400),
86 FOOD("dead owlbear", 0, 7, 70, 700),
87 FOOD("dead piercer", 0, 2, 20, 200),
88 FOOD("dead quivering blob", 0, 1, 10, 100),
89 FOOD("dead giant rat", 0, 1, 3, 30),
90 FOOD("dead giant scorpion", 0, 1, 10, 100),
91 FOOD("dead tengu", 0, 3, 30, 300),
92 FOOD("dead unicorn", 0, 3, 30, 300),
93 FOOD("dead violet fungi", 0, 1, 10, 100),
94 FOOD("dead long worm", 0, 5, 50, 500),
95 /* %% wt of long worm should be proportional to its length */
96 FOOD("dead xan", 0, 3, 30, 300),
97 FOOD("dead yellow light", 0, 1, 1, 10),
98 FOOD("dead zruty", 0, 6, 60, 600),
100 /* weapons ... - ROCK come several at a time */
101 /* weapons ... - (ROCK-1) are shot using idem+(BOW-ARROW) */
102 /* weapons AXE, SWORD, THSWORD are good for worm-cutting */
103 /* weapons (PICK-)AXE, DAGGER, CRYSKNIFE are good for tin-opening */
104 #define WEAPON(name,prob,wt,ldam,sdam) { name, NULL, NULL, 1, 0 /*%%*/,\
105 WEAPON_SYM, prob, 0, wt, ldam, sdam, 0 }
107 WEAPON("arrow", 7, 0, 6, 6),
108 WEAPON("sling bullet", 7, 0, 4, 6),
109 WEAPON("crossbow bolt", 7, 0, 4, 6),
110 WEAPON("dart", 7, 0, 3, 2),
111 WEAPON("rock", 6, 1, 3, 3),
112 WEAPON("boomerang", 2, 3, 9, 9),
113 WEAPON("mace", 9, 3, 6, 7),
114 WEAPON("axe", 6, 3, 6, 4),
115 WEAPON("flail", 6, 3, 6, 5),
116 WEAPON("long sword", 8, 3, 8, 12),
117 WEAPON("two handed sword", 6, 4, 12, 6),
118 WEAPON("dagger", 6, 3, 4, 3),
119 WEAPON("worm tooth", 0, 4, 2, 2),
120 WEAPON("crysknife", 0, 3, 10, 10),
121 WEAPON("spear", 6, 3, 6, 8),
122 WEAPON("bow", 6, 3, 4, 6),
123 WEAPON("sling", 5, 3, 6, 6),
124 WEAPON("crossbow", 6, 3, 4, 6),
126 { "whistle", "whistle", NULL
, 0, 0,
127 TOOL_SYM
, 90, 0, 2, 0, 0, 0 },
128 { "magic whistle", "whistle", NULL
, 0, 0,
129 TOOL_SYM
, 10, 0, 2, 0, 0, 0 },
130 { "expensive camera", NULL
, NULL
, 1, 1,
131 TOOL_SYM
, 0, 0, 3, 0, 0, 0 },
132 { "ice box", "large box", NULL
, 0, 0,
133 TOOL_SYM
, 0, 0, 40, 0, 0, 0 },
134 { "pick-axe", NULL
, NULL
, 1, 1,
135 TOOL_SYM
, 0, 0, 5, 6, 3, 0 },
136 { "can opener", NULL
, NULL
, 1, 1,
137 TOOL_SYM
, 0, 0, 1, 0, 0, 0 },
138 { "heavy iron ball", NULL
, NULL
, 1, 0,
139 BALL_SYM
, 100, 0, 20, 0, 0, 0 },
140 { "iron chain", NULL
, NULL
, 1, 0,
141 CHAIN_SYM
, 100, 0, 20, 0, 0, 0 },
142 { "enormous rock", NULL
, NULL
, 1, 0,
143 ROCK_SYM
, 100, 0, 200 /* > MAX_CARR_CAP */, 0, 0, 0 },
145 #define ARMOR(name,prob,delay,ac,can) { name, NULL, NULL, 1, 0,\
146 ARMOR_SYM, prob, delay, 8, ac, can, 0 }
147 ARMOR("helmet", 3, 1, 9, 0),
148 ARMOR("plate mail", 5, 5, 3, 2),
149 ARMOR("splint mail", 8, 5, 4, 1),
150 ARMOR("banded mail", 10, 5, 4, 0),
151 ARMOR("chain mail", 10, 5, 5, 1),
152 ARMOR("scale mail", 10, 5, 6, 0),
153 ARMOR("ring mail", 15, 5, 7, 0),
154 /* the armors below do not rust */
155 ARMOR("studded leather armor", 13, 3, 7, 1),
156 ARMOR("leather armor", 17, 3, 8, 0),
157 ARMOR("elven cloak", 5, 0, 9, 3),
158 ARMOR("shield", 3, 0, 9, 0),
159 ARMOR("pair of gloves", 1, 1, 9, 0),
161 #define POTION(name,color) { name, color, NULL, 0, 1,\
162 POTION_SYM, 0, 0, 2, 0, 0, 0 }
164 POTION("restore strength", "orange"),
165 POTION("booze", "bubbly"),
166 POTION("invisibility", "glowing"),
167 POTION("fruit juice", "smoky"),
168 POTION("healing", "pink"),
169 POTION("paralysis", "puce"),
170 POTION("monster detection", "purple"),
171 POTION("object detection", "yellow"),
172 POTION("sickness", "white"),
173 POTION("confusion", "swirly"),
174 POTION("gain strength", "purple-red"),
175 POTION("speed", "ruby"),
176 POTION("blindness", "dark green"),
177 POTION("gain level", "emerald"),
178 POTION("extra healing", "sky blue"),
179 POTION("levitation", "brown"),
180 POTION(NULL
, "brilliant blue"),
181 POTION(NULL
, "clear"),
182 POTION(NULL
, "magenta"),
183 POTION(NULL
, "ebony"),
185 #define SCROLL(name,text,prob) { name, text, NULL, 0, 1,\
186 SCROLL_SYM, prob, 0, 3, 0, 0, 0 }
187 SCROLL("mail", "KIRJE", 0),
188 SCROLL("enchant armor", "ZELGO MER", 6),
189 SCROLL("destroy armor", "JUYED AWK YACC", 5),
190 SCROLL("confuse monster", "NR 9", 5),
191 SCROLL("scare monster", "XIXAXA XOXAXA XUXAXA", 4),
192 SCROLL("blank paper", "READ ME", 3),
193 SCROLL("remove curse", "PRATYAVAYAH", 6),
194 SCROLL("enchant weapon", "DAIYEN FOOELS", 6),
195 SCROLL("damage weapon", "HACKEM MUCHE", 5),
196 SCROLL("create monster", "LEP GEX VEN ZEA", 5),
197 SCROLL("taming", "PRIRUTSENIE", 1),
198 SCROLL("genocide", "ELBIB YLOH",2),
199 SCROLL("light", "VERR YED HORRE", 10),
200 SCROLL("teleportation", "VENZAR BORGAVVE", 5),
201 SCROLL("gold detection", "THARR", 4),
202 SCROLL("food detection", "YUM YUM", 1),
203 SCROLL("identify", "KERNOD WEL", 18),
204 SCROLL("magic mapping", "ELAM EBOW", 5),
205 SCROLL("amnesia", "DUAM XNAHT", 3),
206 SCROLL("fire", "ANDOVA BEGARIN", 5),
207 SCROLL("punishment", "VE FORBRYDERNE", 1),
208 SCROLL(NULL
, "VELOX NEB", 0),
209 SCROLL(NULL
, "FOOBIE BLETCH", 0),
210 SCROLL(NULL
, "TEMOV", 0),
211 SCROLL(NULL
, "GARVEN DEH", 0),
213 #define WAND(name,metal,prob,flags) { name, metal, NULL, 0, 0,\
214 WAND_SYM, prob, 0, 3, flags, 0, 0 }
216 WAND("light", "iridium", 10, NODIR
),
217 WAND("secret door detection", "tin", 5, NODIR
),
218 WAND("create monster", "platinum", 5, NODIR
),
219 WAND("wishing", "glass", 1, NODIR
),
220 WAND("striking", "zinc", 9, IMMEDIATE
),
221 WAND("slow monster", "balsa", 5, IMMEDIATE
),
222 WAND("speed monster", "copper", 5, IMMEDIATE
),
223 WAND("undead turning", "silver", 5, IMMEDIATE
),
224 WAND("polymorph", "brass", 5, IMMEDIATE
),
225 WAND("cancellation", "maple", 5, IMMEDIATE
),
226 WAND("teleportation", "pine", 5, IMMEDIATE
),
227 WAND("make invisible", "marble", 9, IMMEDIATE
),
228 WAND("digging", "iron", 5, RAY
),
229 WAND("magic missile", "aluminium", 10, RAY
),
230 WAND("fire", "steel", 5, RAY
),
231 WAND("sleep", "curved", 5, RAY
),
232 WAND("cold", "short", 5, RAY
),
233 WAND("death", "long", 1, RAY
),
234 WAND(NULL
, "oak", 0, 0),
235 WAND(NULL
, "ebony", 0, 0),
236 WAND(NULL
, "runed", 0, 0),
238 #define RING(name,stone,spec) { name, stone, NULL, 0, 0,\
239 RING_SYM, 0, 0, 1, spec, 0, 0 }
241 RING("adornment", "engagement", 0),
242 RING("teleportation", "wooden", 0),
243 RING("regeneration", "black onyx", 0),
244 RING("searching", "topaz", 0),
245 RING("see invisible", "pearl", 0),
246 RING("stealth", "sapphire", 0),
247 RING("levitation", "moonstone", 0),
248 RING("poison resistance", "agate", 0),
249 RING("aggravate monster", "tiger eye", 0),
250 RING("hunger", "shining", 0),
251 RING("fire resistance", "gold", 0),
252 RING("cold resistance", "copper", 0),
253 RING("protection from shape changers", "diamond", 0),
254 RING("conflict", "jade", 0),
255 RING("gain strength", "ruby", SPEC
),
256 RING("increase damage", "silver", SPEC
),
257 RING("protection", "granite", SPEC
),
258 RING("warning", "wire", 0),
259 RING("teleport control", "iron", 0),
260 RING(NULL
, "ivory", 0),
261 RING(NULL
, "blackened", 0),
263 /* gems ************************************************************/
264 #define GEM(name,color,prob,gval) { name, color, NULL, 0, 1,\
265 GEM_SYM, prob, 0, 1, 0, 0, gval }
266 GEM("diamond", "blue", 1, 4000),
267 GEM("ruby", "red", 1, 3500),
268 GEM("sapphire", "blue", 1, 3000),
269 GEM("emerald", "green", 1, 2500),
270 GEM("turquoise", "green", 1, 2000),
271 GEM("aquamarine", "blue", 1, 1500),
272 GEM("tourmaline", "green", 1, 1000),
273 GEM("topaz", "yellow", 1, 900),
274 GEM("opal", "yellow", 1, 800),
275 GEM("garnet", "dark", 1, 700),
276 GEM("amethyst", "violet", 2, 650),
277 GEM("agate", "green", 2, 600),
278 GEM("onyx", "white", 2, 550),
279 GEM("jasper", "yellowish brown", 2, 500),
280 GEM("jade", "green", 2, 450),
281 GEM("worthless piece of blue glass", "blue", 20, 0),
282 GEM("worthless piece of red glass", "red", 20, 0),
283 GEM("worthless piece of yellow glass", "yellow", 20, 0),
284 GEM("worthless piece of green glass", "green", 20, 0),
285 { NULL
, NULL
, NULL
, 0, 0, ILLOBJ_SYM
, 0, 0, 0, 0, 0, 0 }
288 char obj_symbols
[] = {
289 ILLOBJ_SYM
, AMULET_SYM
, FOOD_SYM
, WEAPON_SYM
, TOOL_SYM
,
290 BALL_SYM
, CHAIN_SYM
, ROCK_SYM
, ARMOR_SYM
, POTION_SYM
, SCROLL_SYM
,
291 WAND_SYM
, RING_SYM
, GEM_SYM
, 0 };
292 int bases
[sizeof(obj_symbols
)];