1 /* NetHack 3.6 objects.c $NHDT-Date: 1447313395 2015/11/12 07:29:55 $ $NHDT-Branch: master $:$NHDT-Revision: 1.49 $ */
2 /* Copyright (c) Mike Threepoint, 1989. */
3 /* NetHack may be freely redistributed. See license for details. */
6 * The data in this file is processed twice, to construct two arrays.
7 * On the first pass, only object name and object description matter.
8 * On the second pass, all object-class fields except those two matter.
9 * 2nd pass is a recursive inclusion of this file, not a 2nd compilation.
10 * The name/description array is also used by makedefs and lev_comp.
12 * #ifndef OBJECTS_PASS_2_
13 * # define OBJECT(name,desc,foo,bar,glorkum) name,desc
14 * struct objdescr obj_descr[] =
16 * # define OBJECT(name,desc,foo,bar,glorkum) foo,bar,glorkum
17 * struct objclass objects[] =
20 * { OBJECT("strange object",NULL, 1,2,3) },
21 * { OBJECT("arrow","pointy stick", 4,5,6) },
23 * { OBJECT(NULL,NULL, 0,0,0) }
25 * #define OBJECTS_PASS_2_
26 * #include "objects.c"
30 /* clang-format off */
32 #ifndef OBJECTS_PASS_2_
34 struct monst { struct monst *dummy; }; /* lint: struct obj's union */
41 #else /* !OBJECTS_PASS_2_ */
44 #define COLOR_FIELD(X) X,
45 #endif /* !OBJECTS_PASS_2_ */
47 /* objects have symbols: ) [ = " ( % ! ? + / $ * ` 0 _ . */
50 * Note: OBJ() and BITS() macros are used to avoid exceeding argument
51 * limits imposed by some compilers. The ctnr field of BITS currently
52 * does not map into struct objclass, and is ignored in the expansion.
53 * The 0 in the expansion corresponds to oc_pre_discovered, which is
54 * set at run-time during role-specific character initialization.
57 #ifndef OBJECTS_PASS_2_
58 /* first pass -- object descriptive text */
59 #define OBJ(name,desc) name, desc
60 #define OBJECT(obj,bits,prp,sym,prob,dly,wt, \
61 cost,sdam,ldam,oc1,oc2,nut,color) { obj }
62 #define None (char *) 0 /* less visual distraction for 'no description' */
64 NEARDATA struct objdescr obj_descr[] =
66 /* second pass -- object definitions */
67 #define BITS(nmkn,mrg,uskn,ctnr,mgc,chrg,uniq,nwsh,big,tuf,dir,sub,mtrl) \
68 nmkn,mrg,uskn,0,mgc,chrg,uniq,nwsh,big,tuf,dir,mtrl,sub /*SCO cpp fodder*/
69 #define OBJECT(obj,bits,prp,sym,prob,dly,wt,cost,sdam,ldam,oc1,oc2,nut,color) \
70 { 0, 0, (char *) 0, bits, prp, sym, dly, COLOR_FIELD(color) prob, wt, \
71 cost, sdam, ldam, oc1, oc2, nut }
73 #define HARDGEM(n) (n >= 8)
75 #define HARDGEM(n) (0)
78 NEARDATA struct objclass objects[] =
81 /* dummy object[0] -- description [2nd arg] *must* be NULL */
82 OBJECT(OBJ("
\8aï
\96
\82È
\95¨
\91Ì", None),
83 BITS(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, P_NONE, 0),
84 0, ILLOBJ_CLASS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
87 #define WEAPON(name,desc,kn,mg,bi,prob,wt, \
88 cost,sdam,ldam,hitbon,typ,sub,metal,color) \
89 OBJECT(OBJ(name,desc), \
90 BITS(kn, mg, 1, 0, 0, 1, 0, 0, bi, 0, typ, sub, metal), \
91 0, WEAPON_CLASS, prob, 0, wt, \
92 cost, sdam, ldam, hitbon, 0, wt, color)
93 #define PROJECTILE(name,desc,kn,prob,wt, \
94 cost,sdam,ldam,hitbon,metal,sub,color) \
95 OBJECT(OBJ(name,desc), \
96 BITS(kn, 1, 1, 0, 0, 1, 0, 0, 0, 0, PIERCE, sub, metal), \
97 0, WEAPON_CLASS, prob, 0, wt, \
98 cost, sdam, ldam, hitbon, 0, wt, color)
99 #define BOW(name,desc,kn,prob,wt,cost,hitbon,metal,sub,color) \
100 OBJECT(OBJ(name,desc), \
101 BITS(kn, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, sub, metal), \
102 0, WEAPON_CLASS, prob, 0, wt, \
103 cost, 2, 2, hitbon, 0, wt, color)
105 /* Note: for weapons that don't do an even die of damage (ex. 2-7 or 3-18)
106 the extra damage is added on in weapon.c, not here! */
112 /* missiles; materiel reflects the arrowhead, not the shaft */
113 PROJECTILE("
\96î", None,
114 1, 55, 1, 2, 6, 6, 0, IRON, -P_BOW, HI_METAL),
115 PROJECTILE("
\83G
\83\8b\83t
\82Ì
\96î", "
\90_
\94é
\93I
\82È
\96î",
116 0, 20, 1, 2, 7, 6, 0, WOOD, -P_BOW, HI_WOOD),
117 PROJECTILE("
\83I
\81[
\83N
\82Ì
\96î", "
\91e
\96\96\82È
\96î",
118 0, 20, 1, 2, 5, 6, 0, IRON, -P_BOW, CLR_BLACK),
119 PROJECTILE("
\8bâ
\82Ì
\96î", None,
120 1, 12, 1, 5, 6, 6, 0, SILVER, -P_BOW, HI_SILVER),
121 PROJECTILE("
\92|
\96î", "
\92|
\82Ì
\96î",
122 0, 15, 1, 4, 7, 7, 1, METAL, -P_BOW, HI_METAL),
123 PROJECTILE("
\83N
\83\8d\83X
\83{
\83D
\83{
\83\8b\83g", None,
124 1, 55, 1, 2, 4, 6, 0, IRON, -P_CROSSBOW, HI_METAL),
126 /* missiles that don't use a launcher */
127 WEAPON("
\93\8a\82°
\96î", None,
128 1, 1, 0, 60, 1, 2, 3, 2, 0, P, -P_DART, IRON, HI_METAL),
129 WEAPON("
\8eè
\97 \8c\95", "
\90¯
\8c^
\82Ì
\93\8a\82°
\82é
\82à
\82Ì",
130 0, 1, 0, 35, 1, 5, 8, 6, 2, P, -P_SHURIKEN, IRON, HI_METAL),
131 WEAPON("
\83u
\81[
\83\81\83\89\83\93", None,
132 1, 1, 0, 15, 5, 20, 9, 9, 0, 0, -P_BOOMERANG, WOOD, HI_WOOD),
134 /* spears [note: javelin used to have a separate skill from spears,
135 because the latter are primarily stabbing weapons rather than
136 throwing ones; but for playability, they've been merged together
137 under spear skill and spears can now be thrown like javelins] */
138 WEAPON("
\91\84", None,
139 1, 1, 0, 50, 30, 3, 6, 8, 0, P, P_SPEAR, IRON, HI_METAL),
140 WEAPON("
\83G
\83\8b\83t
\82Ì
\91\84", "
\90_
\94é
\93I
\82È
\91\84",
141 0, 1, 0, 10, 30, 3, 7, 8, 0, P, P_SPEAR, WOOD, HI_WOOD),
142 WEAPON("
\83I
\81[
\83N
\82Ì
\91\84", "
\91e
\96\96\82È
\91\84",
143 0, 1, 0, 13, 30, 3, 5, 8, 0, P, P_SPEAR, IRON, CLR_BLACK),
144 WEAPON("
\83h
\83\8f\81[
\83t
\82Ì
\91\84", "
\8fä
\95v
\82È
\91\84",
145 0, 1, 0, 12, 35, 3, 8, 8, 0, P, P_SPEAR, IRON, HI_METAL),
146 WEAPON("
\8bâ
\82Ì
\91\84", None,
147 1, 1, 0, 2, 36, 40, 6, 8, 0, P, P_SPEAR, SILVER, HI_SILVER),
148 WEAPON("
\83W
\83\83\83x
\83\8a\83\93", "
\93\8a\82°
\91\84",
149 0, 1, 0, 10, 20, 3, 6, 6, 0, P, P_SPEAR, IRON, HI_METAL),
151 /* spearish; doesn't stack, not intended to be thrown */
152 WEAPON("
\83g
\83\89\83C
\83f
\83\93\83g", None,
153 1, 0, 0, 8, 25, 5, 6, 4, 0, P, P_TRIDENT, IRON, HI_METAL),
154 /* +1 small, +2d4 large */
156 /* blades; all stack */
157 WEAPON("
\92Z
\8c\95", None,
158 1, 1, 0, 30, 10, 4, 4, 3, 2, P, P_DAGGER, IRON, HI_METAL),
159 WEAPON("
\83G
\83\8b\83t
\82Ì
\92Z
\8c\95", "
\90_
\94é
\93I
\82È
\92Z
\8c\95",
160 0, 1, 0, 10, 10, 4, 5, 3, 2, P, P_DAGGER, WOOD, HI_WOOD),
161 WEAPON("
\83I
\81[
\83N
\82Ì
\92Z
\8c\95", "
\91e
\96\96\82È
\92Z
\8c\95",
162 0, 1, 0, 12, 10, 4, 3, 3, 2, P, P_DAGGER, IRON, CLR_BLACK),
163 WEAPON("
\8bâ
\82Ì
\92Z
\8c\95", None,
164 1, 1, 0, 3, 12, 40, 4, 3, 2, P, P_DAGGER, SILVER, HI_SILVER),
165 WEAPON("
\83A
\83T
\83\81", None,
166 1, 1, 0, 0, 10, 4, 4, 3, 2, S, P_DAGGER, IRON, HI_METAL),
167 WEAPON("
\83\81\83X", None,
168 1, 1, 0, 0, 5, 6, 3, 3, 2, S, P_KNIFE, METAL, HI_METAL),
169 WEAPON("
\83i
\83C
\83t", None,
170 1, 1, 0, 20, 5, 4, 3, 2, 0, P|S, P_KNIFE, IRON, HI_METAL),
171 WEAPON("
\83X
\83e
\83B
\83\8c\83b
\83g", None,
172 1, 1, 0, 5, 5, 4, 3, 2, 0, P|S, P_KNIFE, IRON, HI_METAL),
173 /* 3.6: worm teeth and crysknives now stack;
174 when a stack of teeth is enchanted at once, they fuse into one crysknife;
175 when a stack of crysknives drops, the whole stack reverts to teeth */
176 WEAPON("
\83\8f\81[
\83\80\82Ì
\8e\95", None,
177 1, 1, 0, 0, 20, 2, 2, 2, 0, 0, P_KNIFE, 0, CLR_WHITE),
178 WEAPON("
\83N
\83\8a\83X
\83i
\83C
\83t", None,
179 1, 1, 0, 0, 20, 100, 10, 10, 3, P, P_KNIFE, MINERAL, CLR_WHITE),
182 WEAPON("
\95\80", None,
183 1, 0, 0, 40, 60, 8, 6, 4, 0, S, P_AXE, IRON, HI_METAL),
184 WEAPON("
\90í
\95\80", "
\97¼
\90n
\82Ì
\95\80", /* "double-bitted"? */
185 0, 0, 1, 10, 120, 40, 8, 6, 0, S, P_AXE, IRON, HI_METAL),
188 WEAPON("
\8f¬
\8c\95", None,
189 1, 0, 0, 8, 30, 10, 6, 8, 0, P, P_SHORT_SWORD, IRON, HI_METAL),
190 WEAPON("
\83G
\83\8b\83t
\82Ì
\8f¬
\8c\95", "
\90_
\94é
\93I
\82È
\8f¬
\8c\95",
191 0, 0, 0, 2, 30, 10, 8, 8, 0, P, P_SHORT_SWORD, WOOD, HI_WOOD),
192 WEAPON("
\83I
\81[
\83N
\82Ì
\8f¬
\8c\95", "
\91e
\96\96\82È
\8f¬
\8c\95",
193 0, 0, 0, 3, 30, 10, 5, 8, 0, P, P_SHORT_SWORD, IRON, CLR_BLACK),
194 WEAPON("
\83h
\83\8f\81[
\83t
\82Ì
\8f¬
\8c\95", "
\95\9d\8dL
\82Ì
\8f¬
\8c\95",
195 0, 0, 0, 2, 30, 10, 7, 8, 0, P, P_SHORT_SWORD, IRON, HI_METAL),
196 WEAPON("
\83V
\83~
\83^
\81[", "
\8bÈ
\82Á
\82½
\8c\95",
197 0, 0, 0, 15, 40, 15, 8, 8, 0, S, P_SCIMITAR, IRON, HI_METAL),
198 WEAPON("
\8bâ
\82Ì
\83T
\81[
\83x
\83\8b", None,
199 1, 0, 0, 6, 40, 75, 8, 8, 0, S, P_SABER, SILVER, HI_SILVER),
200 WEAPON("
\95\9d\8dL
\82Ì
\8c\95", None,
201 1, 0, 0, 8, 70, 10, 4, 6, 0, S, P_BROAD_SWORD, IRON, HI_METAL),
202 /* +d4 small, +1 large */
203 WEAPON("
\83G
\83\8b\83t
\82Ì
\95\9d\8dL
\82Ì
\8c\95", "
\90_
\94é
\93I
\82È
\95\9d\8dL
\82Ì
\8c\95",
204 0, 0, 0, 4, 70, 10, 6, 6, 0, S, P_BROAD_SWORD, WOOD, HI_WOOD),
205 /* +d4 small, +1 large */
206 WEAPON("
\92·
\8c\95", None,
207 1, 0, 0, 50, 40, 15, 8, 12, 0, S, P_LONG_SWORD, IRON, HI_METAL),
208 WEAPON("
\97¼
\8eè
\8c\95", None,
209 1, 0, 1, 22, 150, 50, 12, 6, 0, S, P_TWO_HANDED_SWORD,
212 WEAPON("
\93\81", "
\8e\98\82Ì
\8c\95",
213 0, 0, 0, 4, 40, 80, 10, 12, 1, S, P_LONG_SWORD, IRON, HI_METAL),
214 /* special swords set up for artifacts */
215 WEAPON("
\91å
\93\81", "
\8e\98\82Ì
\92·
\8c\95",
216 0, 0, 1, 0, 60, 500, 16, 8, 2, S, P_TWO_HANDED_SWORD,
219 WEAPON("
\83\8b\81[
\83\93\82Ì
\8c\95", "
\90_
\94é
\93I
\82È
\95\9d\8dL
\82Ì
\8c\95",
220 0, 0, 0, 0, 40, 300, 4, 6, 0, S, P_BROAD_SWORD, IRON, CLR_BLACK),
221 /* +d4 small, +1 large; Stormbringer: +5d2 +d8 from level drain */
225 WEAPON("
\83p
\83\8b\83`
\83U
\83\93", "
\91e
\8eG
\82È
\92·
\95\80",
226 0, 0, 1, 5, 80, 10, 6, 6, 0, P, P_POLEARMS, IRON, HI_METAL),
228 WEAPON("
\83\89\83\93\83T
\81[", "
\95¿
\95t
\82Ì
\92·
\95\80",
229 0, 0, 1, 5, 50, 6, 4, 4, 0, P, P_POLEARMS, IRON, HI_METAL),
231 WEAPON("
\83X
\83y
\83^
\83\80", "
\83t
\83H
\81[
\83N
\95t
\82«
\92·
\95\80",
232 0, 0, 1, 5, 50, 5, 6, 6, 0, P, P_POLEARMS, IRON, HI_METAL),
233 /* +1 small, +d6 large */
234 WEAPON("
\83O
\83\8c\83C
\83u", "
\95Ð
\90n
\92·
\95\80",
235 0, 0, 1, 8, 75, 6, 6, 10, 0, S, P_POLEARMS, IRON, HI_METAL),
236 WEAPON("
\83\89\83\93\83X", None,
237 1, 0, 0, 4, 180, 10, 6, 8, 0, P, P_LANCE, IRON, HI_METAL),
238 /* +2d10 when jousting with lance as primary weapon */
240 WEAPON("
\83n
\83\8b\83o
\81[
\83h", "
\8bÈ
\82Á
\82½
\82Ü
\82³
\82©
\82è",
241 0, 0, 1, 8, 150, 10, 10, 6, 0, P|S, P_POLEARMS, IRON, HI_METAL),
243 WEAPON("
\83o
\81[
\83f
\83B
\83b
\83N", "
\92·
\82¢
\82Ü
\82³
\82©
\82è",
244 0, 0, 1, 4, 120, 7, 4, 4, 0, S, P_POLEARMS, IRON, HI_METAL),
245 /* +1d4 small, +2d4 large */
246 WEAPON("
\83\94\83H
\83E
\83W
\83F", "
\95ï
\92\9a\95t
\82«
\8aÆ",
247 0, 0, 1, 4, 125, 5, 4, 4, 0, S, P_POLEARMS, IRON, HI_METAL),
249 WEAPON("
\83h
\83\8f\81[
\83t
\82Ì
\82Â
\82é
\82Í
\82µ", "
\95\9d\8dL
\82Ì
\82Â
\82é
\82Í
\82µ",
250 0, 0, 1, 13, 120, 50, 12, 8, -1, B, P_PICK_AXE, IRON, HI_METAL),
252 WEAPON("
\83t
\83H
\83V
\83\83\81[
\83\8b", "
\8a\99\95t
\82«
\8aÆ",
253 0, 0, 1, 6, 60, 5, 6, 8, 0, P|S, P_POLEARMS, IRON, HI_METAL),
254 WEAPON("
\83M
\83U
\83\8b\83\80", "
\8a \82è
\8d\9e\82Ý
\82ª
\82Ü",
255 0, 0, 1, 6, 80, 5, 4, 8, 0, S, P_POLEARMS, IRON, HI_METAL),
257 WEAPON("
\83r
\83\8b\81E
\83M
\83U
\83\8b\83\80", "
\8ab
\95t
\82«
\92·
\95\80",
258 0, 0, 1, 4, 120, 7, 4, 10, 0, P|S, P_POLEARMS, IRON, HI_METAL),
261 WEAPON("
\83\8b\83b
\83c
\83F
\83\8b\83\93\83n
\83\93\83}
\81[", "
\93ñ
\8cÒ
\82Ì
\92·
\95\80",
262 0, 0, 1, 5, 150, 7, 4, 6, 0, B|P, P_POLEARMS, IRON, HI_METAL),
264 WEAPON("
\83x
\83b
\83N
\81E
\83h
\81E
\83R
\83\8b\83o
\83\93", "
\82
\82¿
\82Î
\82µ
\95t
\82«
\92·
\95\80",
265 0, 0, 1, 4, 100, 8, 8, 6, 0, B|P, P_POLEARMS, IRON, HI_METAL),
268 WEAPON("
\83\81\83C
\83X", None,
269 1, 0, 0, 40, 30, 5, 6, 6, 0, B, P_MACE, IRON, HI_METAL),
271 WEAPON("
\83\82\81[
\83j
\83\93\83O
\83X
\83^
\81[", None,
272 1, 0, 0, 12, 120, 10, 4, 6, 0, B, P_MORNING_STAR, IRON, HI_METAL),
273 /* +d4 small, +1 large */
274 WEAPON("
\83E
\83H
\81[
\83n
\83\93\83}
\81[", None,
275 1, 0, 0, 15, 50, 5, 4, 4, 0, B, P_HAMMER, IRON, HI_METAL),
277 WEAPON("
\82±
\82ñ
\96_", None,
278 1, 0, 0, 12, 30, 3, 6, 3, 0, B, P_CLUB, WOOD, HI_WOOD),
279 WEAPON("
\83S
\83\80\83z
\81[
\83X", None,
280 1, 0, 0, 0, 20, 3, 4, 3, 0, B, P_WHIP, PLASTIC, CLR_BROWN),
281 WEAPON("
\98Z
\8eÚ
\96_", "
\96_",
282 0, 0, 1, 11, 40, 5, 6, 6, 0, B, P_QUARTERSTAFF, WOOD, HI_WOOD),
284 WEAPON("
\83A
\83L
\83\8a\83X", "
\95R
\95t
\82Ì
\82±
\82ñ
\96_",
285 0, 0, 0, 8, 15, 4, 6, 3, 0, B, P_CLUB, IRON, HI_METAL),
286 WEAPON("
\83t
\83\8c\83C
\83\8b", None,
287 1, 0, 0, 40, 15, 4, 6, 4, 0, B, P_FLAIL, IRON, HI_METAL),
288 /* +1 small, +1d4 large */
292 1, 0, 0, 2, 20, 4, 2, 1, 0, 0, P_WHIP, LEATHER, CLR_BROWN),
295 BOW("
\8b|", None, 1, 24, 30, 60, 0, WOOD, P_BOW, HI_WOOD),
296 BOW("
\83G
\83\8b\83t
\82Ì
\8b|", "
\90_
\94é
\93I
\82È
\8b|", 0, 12, 30, 60, 0, WOOD, P_BOW, HI_WOOD),
297 BOW("
\83I
\81[
\83N
\82Ì
\8b|", "
\91e
\96\96\82È
\8b|", 0, 12, 30, 60, 0, WOOD, P_BOW, CLR_BLACK),
298 BOW("
\98a
\8b|", "
\92·
\8b|", 0, 0, 30, 60, 0, WOOD, P_BOW, HI_WOOD),
299 BOW("
\83X
\83\8a\83\93\83O", None, 1, 40, 3, 20, 0, LEATHER, P_SLING, HI_LEATHER),
300 BOW("
\83N
\83\8d\83X
\83{
\83D", None, 1, 45, 50, 40, 0, WOOD, P_CROSSBOW, HI_WOOD),
311 /* IRON denotes ferrous metals, including steel.
312 * Only IRON weapons and armor can rust.
313 * Only COPPER (including brass) corrodes.
314 * Some creatures are vulnerable to SILVER.
316 #define ARMOR(name,desc,kn,mgc,blk,power,prob,delay,wt, \
317 cost,ac,can,sub,metal,c) \
318 OBJECT(OBJ(name, desc), \
319 BITS(kn, 0, 1, 0, mgc, 1, 0, 0, blk, 0, 0, sub, metal), \
320 power, ARMOR_CLASS, prob, delay, wt, \
321 cost, 0, 0, 10 - ac, can, wt, c)
322 #define HELM(name,desc,kn,mgc,power,prob,delay,wt,cost,ac,can,metal,c) \
323 ARMOR(name, desc, kn, mgc, 0, power, prob, delay, wt, \
324 cost, ac, can, ARM_HELM, metal, c)
325 #define CLOAK(name,desc,kn,mgc,power,prob,delay,wt,cost,ac,can,metal,c) \
326 ARMOR(name, desc, kn, mgc, 0, power, prob, delay, wt, \
327 cost, ac, can, ARM_CLOAK, metal, c)
328 #define SHIELD(name,desc,kn,mgc,blk,power,prob,delay,wt,cost,ac,can,metal,c) \
329 ARMOR(name, desc, kn, mgc, blk, power, prob, delay, wt, \
330 cost, ac, can, ARM_SHIELD, metal, c)
331 #define GLOVES(name,desc,kn,mgc,power,prob,delay,wt,cost,ac,can,metal,c) \
332 ARMOR(name, desc, kn, mgc, 0, power, prob, delay, wt, \
333 cost, ac, can, ARM_GLOVES, metal, c)
334 #define BOOTS(name,desc,kn,mgc,power,prob,delay,wt,cost,ac,can,metal,c) \
335 ARMOR(name, desc, kn, mgc, 0, power, prob, delay, wt, \
336 cost, ac, can, ARM_BOOTS, metal, c)
339 HELM("
\83G
\83\8b\83t
\82Ì
\8av
\96X
\8eq", "
\8av
\96X
\8eq",
340 0, 0, 0, 6, 1, 3, 8, 9, 0, LEATHER, HI_LEATHER),
341 HELM("
\83I
\81[
\83N
\82Ì
\8a\95", "
\93S
\82Ì
\96X
\8eq",
342 0, 0, 0, 6, 1, 30, 10, 9, 0, IRON, CLR_BLACK),
343 HELM("
\83h
\83\8f\81[
\83t
\82Ì
\93S
\8a\95", "
\8cÅ
\82¢
\96X
\8eq",
344 0, 0, 0, 6, 1, 40, 20, 8, 0, IRON, HI_METAL),
345 HELM("
\83t
\83B
\83h
\81[
\83\89", None,
346 1, 0, 0, 0, 0, 3, 1, 10, 0, CLOTH, CLR_BROWN),
347 HELM("
\82Æ
\82ñ
\82ª
\82è
\96X
\8eq", "
\89~
\90\8d\8c`
\82Ì
\96X
\8eq",
348 0, 1, CLAIRVOYANT, 3, 1, 4, 80, 10, 1, CLOTH, CLR_BLUE),
349 /* name coined by devteam; confers clairvoyance for wizards,
350 blocks clairvoyance if worn by role other than wizard */
351 HELM("
\92á
\94\
\96X", "
\89~
\90\8d\8c`
\82Ì
\96X
\8eq",
352 0, 1, 0, 3, 1, 4, 1, 10, 0, CLOTH, CLR_BLUE),
353 HELM("
\82
\82Ú
\82ñ
\82¾
\93ç", None,
354 1, 0, 0, 2, 0, 10, 8, 9, 0, IRON, CLR_BLACK),
355 /* with shuffled appearances... */
356 HELM("
\8a\95", "
\89H
\8a\95",
357 0, 0, 0, 10, 1, 30, 10, 9, 0, IRON, HI_METAL),
358 HELM("
\92m
\90«
\82Ì
\8a\95", "
\96Í
\97l
\93ü
\82è
\8a\95",
359 0, 1, 0, 6, 1, 50, 50, 9, 0, IRON, CLR_GREEN),
360 HELM("
\8bt
\91®
\90«
\82Ì
\8a\95", "
\82Æ
\82³
\82©
\82Ì
\8a\95",
361 0, 1, 0, 6, 1, 50, 50, 9, 0, IRON, HI_METAL),
362 HELM("
\83e
\83\8c\83p
\83V
\81[
\82Ì
\8a\95", "
\96Ê
\96j
\95t
\82«
\82Ì
\8a\95",
363 0, 1, TELEPAT, 2, 1, 50, 50, 9, 0, IRON, HI_METAL),
367 * There is code in polyself.c that assumes (1) and (2).
368 * There is code in obj.h, objnam.c, mon.c, read.c that assumes (2).
369 * (1) The dragon scale mails and the dragon scales are together.
370 * (2) That the order of the dragon scale mail and dragon scales
371 * is the the same as order of dragons defined in monst.c.
373 #define DRGN_ARMR(name,mgc,power,cost,ac,color) \
374 ARMOR(name, None, 1, mgc, 1, power, 0, 5, 40, \
375 cost, ac, 0, ARM_SUIT, DRAGON_HIDE, color)
376 /* 3.4.1: dragon scale mail reclassified as "magic" since magic is
377 needed to create them */
378 DRGN_ARMR("
\8aD
\90F
\83h
\83\89\83S
\83\93\82Ì
\97Ø
\8aZ", 1, ANTIMAGIC, 1200, 1, CLR_GRAY),
379 DRGN_ARMR("
\8bâ
\90F
\83h
\83\89\83S
\83\93\82Ì
\97Ø
\8aZ", 1, REFLECTING, 1200, 1, DRAGON_SILVER),
381 DRGN_ARMR("shimmering dragon scale mail", 1, DISPLACED, 1200, 1, CLR_CYAN),
383 DRGN_ARMR("
\90Ô
\90F
\83h
\83\89\83S
\83\93\82Ì
\97Ø
\8aZ", 1, FIRE_RES, 900, 1, CLR_RED),
384 DRGN_ARMR("
\94\92\83h
\83\89\83S
\83\93\82Ì
\97Ø
\8aZ", 1, COLD_RES, 900, 1, CLR_WHITE),
385 DRGN_ARMR("
\83I
\83\8c\83\93\83W
\83h
\83\89\83S
\83\93\82Ì
\97Ø
\8aZ", 1, SLEEP_RES, 900, 1, CLR_ORANGE),
386 DRGN_ARMR("
\8d\95\83h
\83\89\83S
\83\93\82Ì
\97Ø
\8aZ", 1, DISINT_RES, 1200, 1, CLR_BLACK),
387 DRGN_ARMR("
\90Â
\83h
\83\89\83S
\83\93\82Ì
\97Ø
\8aZ", 1, SHOCK_RES, 900, 1, CLR_BLUE),
388 DRGN_ARMR("
\97Î
\83h
\83\89\83S
\83\93\82Ì
\97Ø
\8aZ", 1, POISON_RES, 900, 1, CLR_GREEN),
389 DRGN_ARMR("
\89©
\90F
\83h
\83\89\83S
\83\93\82Ì
\97Ø
\8aZ", 1, ACID_RES, 900, 1, CLR_YELLOW),
390 /* For now, only dragons leave these. */
391 /* 3.4.1: dragon scales left classified as "non-magic"; they confer
392 magical properties but are produced "naturally" */
393 DRGN_ARMR("
\8aD
\90F
\83h
\83\89\83S
\83\93\82Ì
\97Ø", 0, ANTIMAGIC, 700, 7, CLR_GRAY),
394 DRGN_ARMR("
\8bâ
\90F
\83h
\83\89\83S
\83\93\82Ì
\97Ø", 0, REFLECTING, 700, 7, DRAGON_SILVER),
396 DRGN_ARMR("shimmering dragon scales", 0, DISPLACED, 700, 7, CLR_CYAN),
398 DRGN_ARMR("
\90Ô
\90F
\83h
\83\89\83S
\83\93\82Ì
\97Ø", 0, FIRE_RES, 500, 7, CLR_RED),
399 DRGN_ARMR("
\94\92\83h
\83\89\83S
\83\93\82Ì
\97Ø", 0, COLD_RES, 500, 7, CLR_WHITE),
400 DRGN_ARMR("
\83I
\83\8c\83\93\83W
\83h
\83\89\83S
\83\93\82Ì
\97Ø", 0, SLEEP_RES, 500, 7, CLR_ORANGE),
401 DRGN_ARMR("
\8d\95\83h
\83\89\83S
\83\93\82Ì
\97Ø", 0, DISINT_RES, 700, 7, CLR_BLACK),
402 DRGN_ARMR("
\90Â
\83h
\83\89\83S
\83\93\82Ì
\97Ø", 0, SHOCK_RES, 500, 7, CLR_BLUE),
403 DRGN_ARMR("
\97Î
\83h
\83\89\83S
\83\93\82Ì
\97Ø", 0, POISON_RES, 500, 7, CLR_GREEN),
404 DRGN_ARMR("
\89©
\90F
\83h
\83\89\83S
\83\93\82Ì
\97Ø", 0, ACID_RES, 500, 7, CLR_YELLOW),
407 ARMOR("
\8d|
\93S
\82Ì
\8aZ", None,
408 1, 0, 1, 0, 44, 5, 450, 600, 3, 2, ARM_SUIT, IRON, HI_METAL),
409 ARMOR("
\90\85\8f»
\82Ì
\8aZ", None,
410 1, 0, 1, 0, 10, 5, 450, 820, 3, 2, ARM_SUIT, GLASS, CLR_WHITE),
411 ARMOR("
\90Â
\93º
\82Ì
\8aZ", None,
412 1, 0, 1, 0, 25, 5, 450, 400, 4, 1, ARM_SUIT, COPPER, HI_COPPER),
413 ARMOR("
\93S
\95Ð
\82Ì
\8aZ", None,
414 1, 0, 1, 0, 62, 5, 400, 80, 4, 1, ARM_SUIT, IRON, HI_METAL),
415 ARMOR("
\91Ñ
\8bà
\82Ì
\8aZ", None,
416 1, 0, 1, 0, 72, 5, 350, 90, 4, 1, ARM_SUIT, IRON, HI_METAL),
417 ARMOR("
\83h
\83\8f\81[
\83t
\82Ì
\83~
\83X
\83\8a\83\8b\95\9e", None,
418 1, 0, 0, 0, 10, 1, 150, 240, 4, 2, ARM_SUIT, MITHRIL, HI_SILVER),
419 ARMOR("
\83G
\83\8b\83t
\82Ì
\83~
\83X
\83\8a\83\8b\95\9e", None,
420 1, 0, 0, 0, 15, 1, 150, 240, 5, 2, ARM_SUIT, MITHRIL, HI_SILVER),
421 ARMOR("
\8d½
\82©
\82½
\82Ñ
\82ç", None,
422 1, 0, 0, 0, 72, 5, 300, 75, 5, 1, ARM_SUIT, IRON, HI_METAL),
423 ARMOR("
\83I
\81[
\83N
\82Ì
\8d½
\82©
\82½
\82Ñ
\82ç", "
\91e
\96\96\82È
\8d½
\82©
\82½
\82Ñ
\82ç",
424 0, 0, 0, 0, 20, 5, 300, 75, 6, 1, ARM_SUIT, IRON, CLR_BLACK),
425 ARMOR("
\97Ø
\82Ì
\8aZ", None,
426 1, 0, 0, 0, 72, 5, 250, 45, 6, 1, ARM_SUIT, IRON, HI_METAL),
427 ARMOR("
\95e
\95t
\82«
\8av
\8aZ", None,
428 1, 0, 0, 0, 72, 3, 200, 15, 7, 1, ARM_SUIT, LEATHER, HI_LEATHER),
429 ARMOR("
\93S
\8aÂ
\82Ì
\8aZ", None,
430 1, 0, 0, 0, 72, 5, 250, 100, 7, 1, ARM_SUIT, IRON, HI_METAL),
431 ARMOR("
\83I
\81[
\83N
\82Ì
\93S
\8aÂ
\82Ì
\8aZ", "
\91e
\96\96\82È
\93S
\8aÂ
\82Ì
\8aZ",
432 0, 0, 0, 0, 20, 5, 250, 80, 8, 1, ARM_SUIT, IRON, CLR_BLACK),
433 ARMOR("
\8av
\8aZ", None,
434 1, 0, 0, 0, 82, 3, 150, 5, 8, 1, ARM_SUIT, LEATHER, HI_LEATHER),
435 ARMOR("
\8av
\82Ì
\95\9e", None,
436 1, 0, 0, 0, 12, 0, 30, 10, 9, 0, ARM_SUIT, LEATHER, CLR_BLACK),
439 ARMOR("
\83A
\83\8d\83n
\83V
\83\83\83c", None,
440 1, 0, 0, 0, 8, 0, 5, 3, 10, 0, ARM_SHIRT, CLOTH, CLR_MAGENTA),
441 ARMOR("
\82s
\83V
\83\83\83c", None,
442 1, 0, 0, 0, 2, 0, 5, 2, 10, 0, ARM_SHIRT, CLOTH, CLR_WHITE),
445 CLOAK("
\83~
\83C
\83\89\82Ì
\95ï
\91Ñ", None,
446 1, 0, 0, 0, 0, 3, 2, 10, 1, CLOTH, CLR_GRAY),
447 /* worn mummy wrapping blocks invisibility */
448 CLOAK("
\83G
\83\8b\83t
\82Ì
\83N
\83\8d\81[
\83N", "
\89A
\8bC
\82È
\8aO
\93\85",
449 0, 1, STEALTH, 8, 0, 10, 60, 9, 1, CLOTH, CLR_BLACK),
450 CLOAK("
\83I
\81[
\83N
\82Ì
\83N
\83\8d\81[
\83N", "
\91e
\96\96\82È
\83}
\83\93\83g",
451 0, 0, 0, 8, 0, 10, 40, 10, 1, CLOTH, CLR_BLACK),
452 CLOAK("
\83h
\83\8f\81[
\83t
\82Ì
\83N
\83\8d\81[
\83N", "
\83t
\81[
\83h
\82Â
\82«
\82Ì
\83N
\83\8d\81[
\83N",
453 0, 0, 0, 8, 0, 10, 50, 10, 1, CLOTH, HI_CLOTH),
454 CLOAK("
\96h
\90\85\83N
\83\8d\81[
\83N", "
\82Â
\82é
\82Â
\82é
\82µ
\82½
\83N
\83\8d\81[
\83N",
455 0, 0, 0, 8, 0, 10, 50, 9, 2, CLOTH, HI_CLOTH),
456 CLOAK("
\83\8d\81[
\83u", None,
457 1, 1, 0, 3, 0, 15, 50, 8, 2, CLOTH, CLR_RED),
458 /* robe was adopted from slash'em, where it's worn as a suit
459 rather than as a cloak and there are several variations */
460 CLOAK("
\98B
\8bà
\8fp
\82Ì
\8ed
\8e\96\92\85", "
\83G
\83v
\83\8d\83\93",
461 0, 1, POISON_RES, 9, 0, 10, 50, 9, 1, CLOTH, CLR_WHITE),
462 CLOAK("
\8av
\82Ì
\83N
\83\8d\81[
\83N", None,
463 1, 0, 0, 8, 0, 15, 40, 9, 1, LEATHER, CLR_BROWN),
464 /* with shuffled appearances... */
465 CLOAK("
\8eç
\82è
\82Ì
\83N
\83\8d\81[
\83N", "
\82Ú
\82ë
\82Ú
\82ë
\82Ì
\83P
\81[
\83v",
466 0, 1, PROTECTION, 9, 0, 10, 50, 7, 3, CLOTH, HI_CLOTH),
467 /* cloak of protection is now the only item conferring MC 3 */
468 CLOAK("
\93§
\96¾
\82Ì
\83N
\83\8d\81[
\83N", "
\83I
\83y
\83\89\83N
\83\8d\81[
\83N",
469 0, 1, INVIS, 10, 0, 10, 60, 9, 1, CLOTH, CLR_BRIGHT_MAGENTA),
470 CLOAK("
\96\82\96@
\82ð
\96h
\82®
\83N
\83\8d\81[
\83N", "
\91\95\8fü
\97p
\82Ì
\8aO
\93\85",
471 0, 1, ANTIMAGIC, 2, 0, 10, 60, 9, 1, CLOTH, CLR_WHITE),
472 /* 'cope' is not a spelling mistake... leave it be */
473 CLOAK("
\8c¶
\89e
\82Ì
\83N
\83\8d\81[
\83N", "
\95z
\90Ø
\82ê",
474 0, 1, DISPLACED, 10, 0, 10, 50, 9, 1, CLOTH, HI_CLOTH),
477 SHIELD("
\8f¬
\82³
\82È
\8f\82", None,
478 1, 0, 0, 0, 6, 0, 30, 3, 9, 0, WOOD, HI_WOOD),
479 SHIELD("
\83G
\83\8b\83t
\82Ì
\8f\82", "
\90Â
\82Æ
\97Î
\82Ì
\8f\82",
480 0, 0, 0, 0, 2, 0, 40, 7, 8, 0, WOOD, CLR_GREEN),
481 SHIELD("
\83E
\83\8b\83N
\81E
\83n
\83C
\82Ì
\8f\82", "
\94\92\82Ì
\8eè
\82Ì
\8f\82",
482 0, 0, 0, 0, 2, 0, 50, 7, 9, 0, IRON, HI_METAL),
483 SHIELD("
\83I
\81[
\83N
\82Ì
\8f\82", "
\90Ô
\82¢
\96Ú
\82Ì
\8f\82",
484 0, 0, 0, 0, 2, 0, 50, 7, 9, 0, IRON, CLR_RED),
485 SHIELD("
\91å
\82«
\82È
\8f\82", None,
486 1, 0, 1, 0, 7, 0, 100, 10, 8, 0, IRON, HI_METAL),
487 SHIELD("
\83h
\83\8f\81[
\83t
\82Ì
\8aÛ
\8f\82", "
\91å
\82«
\82È
\8aÛ
\8f\82",
488 0, 0, 0, 0, 4, 0, 100, 10, 8, 0, IRON, HI_METAL),
489 SHIELD("
\94½
\8eË
\82Ì
\8f\82", "
\8bâ
\90F
\82Ì
\96\81\82©
\82ê
\82½
\8f\82",
490 0, 1, 0, REFLECTING, 3, 0, 50, 50, 8, 0, SILVER, HI_SILVER),
493 /* These have their color but not material shuffled, so the IRON must
494 * stay CLR_BROWN (== HI_LEATHER) even though it's normally either
495 * HI_METAL or CLR_BLACK. All have shuffled descriptions.
497 GLOVES("
\8av
\82Ì
\8eè
\91Ü", "
\8cÃ
\82¢
\8eè
\91Ü",
498 0, 0, 0, 16, 1, 10, 8, 9, 0, LEATHER, HI_LEATHER),
499 GLOVES("
\82¨
\8eè
\8bÊ
\82Ì
\8f¬
\8eè", "
\8bl
\82ß
\82à
\82Ì
\82Ì
\82 \82é
\8eè
\91Ü",
500 0, 1, FUMBLING, 8, 1, 10, 50, 9, 0, LEATHER, HI_LEATHER),
501 GLOVES("
\97Í
\82Ì
\8f¬
\8eè", "
\8fæ
\94n
\97p
\82Ì
\8eè
\91Ü",
502 0, 1, 0, 8, 1, 30, 50, 9, 0, IRON, CLR_BROWN),
503 GLOVES("
\8aí
\97p
\82³
\82Ì
\8f¬
\8eè", "
\83t
\83F
\83\93\83V
\83\93\83O
\82Ì
\8f¬
\8eè",
504 0, 1, 0, 8, 1, 10, 50, 9, 0, LEATHER, HI_LEATHER),
507 BOOTS("
\82©
\82©
\82Æ
\82Ì
\92á
\82¢
\8cC", "
\8eU
\95à
\97p
\82Ì
\8cC",
508 0, 0, 0, 25, 2, 10, 8, 9, 0, LEATHER, HI_LEATHER),
509 BOOTS("
\93S
\82Ì
\8cC", "
\8cÅ
\82¢
\8cC",
510 0, 0, 0, 7, 2, 50, 16, 8, 0, IRON, HI_METAL),
511 BOOTS("
\82©
\82©
\82Æ
\82Ì
\8d\82\82¢
\8cC", "
\8cR
\91à
\8cC",
512 0, 0, 0, 15, 2, 20, 12, 8, 0, LEATHER, HI_LEATHER),
513 /* with shuffled appearances... */
514 BOOTS("èè
\91Ê
\93V
\82Ì
\8cC", "
\90í
\93¬
\8cC",
515 0, 1, FAST, 12, 2, 20, 50, 9, 0, LEATHER, HI_LEATHER),
516 BOOTS("
\90\85\8fã
\95à
\8ds
\82Ì
\8cC", "
\83W
\83\83\83\93\83O
\83\8b\82Ì
\8cC",
517 0, 1, WWALKING, 12, 2, 15, 50, 9, 0, LEATHER, HI_LEATHER),
518 BOOTS("
\94ò
\82Ñ
\92µ
\82Ë
\82é
\8cC", "
\83n
\83C
\83L
\83\93\83O
\82Ì
\8cC",
519 0, 1, JUMPING, 12, 2, 20, 50, 9, 0, LEATHER, HI_LEATHER),
520 BOOTS("
\83G
\83\8b\83t
\82Ì
\8cC", "
\92·
\8cC",
521 0, 1, STEALTH, 12, 2, 15, 8, 9, 0, LEATHER, HI_LEATHER),
522 BOOTS("
\8fR
\82è
\8b\93\82°
\8cC", "
\97¯
\82ß
\8bà
\82Ì
\82 \82é
\8cC",
523 0, 1, 0, 12, 2, 50, 8, 9, 0, IRON, CLR_BROWN),
524 /* CLR_BROWN for same reason as gauntlets of power */
525 BOOTS("
\82Â
\82Ü
\82¸
\82«
\82Ì
\8cC", "
\8fæ
\94n
\97p
\82Ì
\8cC",
526 0, 1, FUMBLING, 12, 2, 20, 30, 9, 0, LEATHER, HI_LEATHER),
527 BOOTS("
\95\82\97V
\82Ì
\8cC", "
\90á
\8cC",
528 0, 1, LEVITATION, 12, 2, 15, 30, 9, 0, LEATHER, HI_LEATHER),
537 #define RING(name,stone,power,cost,mgc,spec,mohs,metal,color) \
538 OBJECT(OBJ(name, stone), \
539 BITS(0, 0, spec, 0, mgc, spec, 0, 0, 0, \
540 HARDGEM(mohs), 0, P_NONE, metal), \
541 power, RING_CLASS, 0, 0, 3, cost, 0, 0, 0, 0, 15, color)
542 RING("
\8fü
\82è
\82Ì
\8ew
\97Ö", "
\96Ø
\82Ì
\8ew
\97Ö",
543 ADORNED, 100, 1, 1, 2, WOOD, HI_WOOD),
544 RING("
\8b
\82³
\82Ì
\8ew
\97Ö", "
\89Ô
\9b¼
\8aâ
\82Ì
\8ew
\97Ö",
545 0, 150, 1, 1, 7, MINERAL, HI_MINERAL),
546 RING("
\91Ì
\97Í
\82Ì
\8ew
\97Ö", "
\83I
\83p
\81[
\83\8b\82Ì
\8ew
\97Ö",
547 0, 150, 1, 1, 7, MINERAL, HI_MINERAL),
548 RING("
\96½
\92\86\82Ì
\8ew
\97Ö", "
\93y
\82Ì
\8ew
\97Ö",
549 0, 150, 1, 1, 4, MINERAL, CLR_RED),
550 RING("
\8dU
\8c\82\82Ì
\8ew
\97Ö", "
\8eX
\8cè
\82Ì
\8ew
\97Ö",
551 0, 150, 1, 1, 4, MINERAL, CLR_ORANGE),
552 RING("
\8eç
\82è
\82Ì
\8ew
\97Ö", "
\8d\95\82ß
\82Ì
\82¤
\82Ì
\8ew
\97Ö",
553 PROTECTION, 100, 1, 1, 7, MINERAL, CLR_BLACK),
554 /* 'PROTECTION' intrinsic enhances MC from worn armor by +1,
555 regardless of ring's enchantment; wearing a second ring of
556 protection (or even one ring of protection combined with
557 cloak of protection) doesn't give a second MC boost */
558 RING("
\89ñ
\95\9c\82Ì
\8ew
\97Ö", "
\8c\8e\92·
\90Î
\82Ì
\8ew
\97Ö",
559 REGENERATION, 200, 1, 0, 6, MINERAL, HI_MINERAL),
560 RING("
\92T
\8dõ
\82Ì
\8ew
\97Ö", "
\8cÕ
\96Ú
\90Î
\82Ì
\8ew
\97Ö",
561 SEARCHING, 200, 1, 0, 6, GEMSTONE, CLR_BROWN),
562 RING("
\94E
\82Ñ
\82Ì
\8ew
\97Ö", "
\82Ð
\82·
\82¢
\82Ì
\8ew
\97Ö",
563 STEALTH, 100, 1, 0, 6, GEMSTONE, CLR_GREEN),
564 RING("
\94\
\97Í
\88Û
\8e\9d\82Ì
\8ew
\97Ö", "
\90Â
\93º
\82Ì
\8ew
\97Ö",
565 FIXED_ABIL, 100, 1, 0, 4, COPPER, HI_COPPER),
566 RING("
\95\82\97V
\82Ì
\8ew
\97Ö", "
\82ß
\82Ì
\82¤
\82Ì
\8ew
\97Ö",
567 LEVITATION, 200, 1, 0, 7, GEMSTONE, CLR_RED),
568 RING("
\8bQ
\89ì
\82Ì
\8ew
\97Ö", "
\83g
\83p
\81[
\83Y
\82Ì
\8ew
\97Ö",
569 HUNGER, 100, 1, 0, 8, GEMSTONE, CLR_CYAN),
570 RING("
\94½
\8a´
\82Ì
\8ew
\97Ö", "
\83T
\83t
\83@
\83C
\83A
\82Ì
\8ew
\97Ö",
571 AGGRAVATE_MONSTER, 150, 1, 0, 9, GEMSTONE, CLR_BLUE),
572 RING("
\91\88\82¢
\82Ì
\8ew
\97Ö", "
\83\8b\83r
\81[
\82Ì
\8ew
\97Ö",
573 CONFLICT, 300, 1, 0, 9, GEMSTONE, CLR_RED),
574 RING("
\8cx
\8d\90\82Ì
\8ew
\97Ö", "
\83_
\83C
\83\84\83\82\83\93\83h
\82Ì
\8ew
\97Ö",
575 WARNING, 100, 1, 0, 10, GEMSTONE, CLR_WHITE),
576 RING("
\91Ï
\93Å
\82Ì
\8ew
\97Ö", "
\90^
\8eì
\82Ì
\8ew
\97Ö",
577 POISON_RES, 150, 1, 0, 4, BONE, CLR_WHITE),
578 RING("
\91Ï
\89\8a\82Ì
\8ew
\97Ö", "
\93S
\82Ì
\8ew
\97Ö",
579 FIRE_RES, 200, 1, 0, 5, IRON, HI_METAL),
580 RING("
\91Ï
\97â
\82Ì
\8ew
\97Ö", "
\90^èJ
\82Ì
\8ew
\97Ö",
581 COLD_RES, 150, 1, 0, 4, COPPER, HI_COPPER),
582 RING("
\91Ï
\93d
\82Ì
\8ew
\97Ö", "
\93º
\82Ì
\8ew
\97Ö",
583 SHOCK_RES, 150, 1, 0, 3, COPPER, HI_COPPER),
584 RING("
\8e©
\97R
\8ds
\93®
\82Ì
\8ew
\97Ö", "
\82Ë
\82¶
\82ê
\82½
\8ew
\97Ö",
585 FREE_ACTION, 200, 1, 0, 6, IRON, HI_METAL),
586 RING("
\8fÁ
\89»
\95s
\97Ç
\82Ì
\8ew
\97Ö", "
\8d|
\93S
\82Ì
\8ew
\97Ö",
587 SLOW_DIGESTION, 200, 1, 0, 8, IRON, HI_METAL),
588 RING("
\8fu
\8aÔ
\88Ú
\93®
\82Ì
\8ew
\97Ö", "
\8bâ
\82Ì
\8ew
\97Ö",
589 TELEPORT, 200, 1, 0, 3, SILVER, HI_SILVER),
590 RING("
\8fu
\8aÔ
\88Ú
\93®
\90§
\8cä
\82Ì
\8ew
\97Ö", "
\8bà
\82Ì
\8ew
\97Ö",
591 TELEPORT_CONTROL, 300, 1, 0, 3, GOLD, HI_GOLD),
592 RING("
\95Ï
\89»
\82Ì
\8ew
\97Ö", "
\8fÛ
\89å
\82Ì
\8ew
\97Ö",
593 POLYMORPH, 300, 1, 0, 4, BONE, CLR_WHITE),
594 RING("
\95Ï
\89»
\90§
\8cä
\82Ì
\8ew
\97Ö", "
\83G
\83\81\83\89\83\8b\83h
\82Ì
\8ew
\97Ö",
595 POLYMORPH_CONTROL, 300, 1, 0, 8, GEMSTONE, CLR_BRIGHT_GREEN),
596 RING("
\93§
\96¾
\82Ì
\8ew
\97Ö", "
\90j
\8bà
\82Ì
\8ew
\97Ö",
597 INVIS, 150, 1, 0, 5, IRON, HI_METAL),
598 RING("
\89Â
\8e\8b\82Ì
\8ew
\97Ö", "
\8d¥
\96ñ
\8ew
\97Ö",
599 SEE_INVIS, 150, 1, 0, 5, IRON, HI_METAL),
600 RING("
\91Ï
\95Ï
\89»
\89ö
\95¨
\82Ì
\8ew
\97Ö", "
\8cõ
\82é
\8ew
\97Ö",
601 PROT_FROM_SHAPE_CHANGERS, 100, 1, 0, 5, IRON, CLR_BRIGHT_CYAN),
604 /* amulets ... - THE Amulet comes last because it is special */
605 #define AMULET(name,desc,power,prob) \
606 OBJECT(OBJ(name, desc), \
607 BITS(0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, P_NONE, IRON), \
608 power, AMULET_CLASS, prob, 0, 20, 150, 0, 0, 0, 0, 20, HI_METAL)
609 AMULET("
\89\93\8e\8b\82Ì
\96\82\8f\9c\82¯", "
\89~
\8c`
\82Ì
\96\82\8f\9c\82¯", TELEPAT, 175),
610 AMULET("
\96½
\82Ì
\96\82\8f\9c\82¯", "
\8b\85\8c`
\82Ì
\96\82\8f\9c\82¯", LIFESAVED, 75),
611 AMULET("
\8di
\8eE
\82Ì
\96\82\8f\9c\82¯", "
\97\91\8c^
\82Ì
\96\82\8f\9c\82¯", STRANGLED, 135),
612 AMULET("
\88À
\96°
\82Ì
\96\82\8f\9c\82¯", "
\8eO
\8ap
\8c`
\82Ì
\96\82\8f\9c\82¯", SLEEPY, 135),
613 AMULET("
\91Ï
\93Å
\82Ì
\96\82\8f\9c\82¯", "
\8el
\8ap
\90\8d\82Ì
\96\82\8f\9c\82¯", POISON_RES, 165),
614 AMULET("
\90«
\93]
\8a·
\82Ì
\96\82\8f\9c\82¯", "
\8el
\8ap
\82Ì
\96\82\8f\9c\82¯", 0, 130),
615 AMULET("
\96³
\95Ï
\89»
\82Ì
\96\82\8f\9c\82¯", "
\89\9a\96Ê
\82Ì
\96\82\8f\9c\82¯", UNCHANGING, 45),
616 AMULET("
\94½
\8eË
\82Ì
\96\82\8f\9c\82¯", "
\98Z
\8ap
\8c`
\82Ì
\96\82\8f\9c\82¯", REFLECTING, 75),
617 AMULET("
\8cÄ
\8bz
\82Ì
\96\82\8f\9c\82¯", "
\94ª
\8ap
\8c`
\82Ì
\96\82\8f\9c\82¯", MAGICAL_BREATHING, 65),
618 /* fixed descriptions; description duplication is deliberate;
619 * fake one must come before real one because selection for
620 * description shuffling stops when a non-magic amulet is encountered
622 OBJECT(OBJ("
\8bU
\95¨
\82Ì
\83C
\83F
\83\93\83_
\81[
\82Ì
\96\82\8f\9c\82¯",
623 "
\83C
\83F
\83\93\83_
\81[
\82Ì
\96\82\8f\9c\82¯"),
624 BITS(0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, PLASTIC),
625 0, AMULET_CLASS, 0, 0, 20, 0, 0, 0, 0, 0, 1, HI_METAL),
626 OBJECT(OBJ("
\83C
\83F
\83\93\83_
\81[
\82Ì
\96\82\8f\9c\82¯", /* note: description == name */
627 "
\83C
\83F
\83\93\83_
\81[
\82Ì
\96\82\8f\9c\82¯"),
628 BITS(0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, MITHRIL),
629 0, AMULET_CLASS, 0, 0, 20, 30000, 0, 0, 0, 0, 20, HI_METAL),
633 /* tools with weapon characteristics come last */
634 #define TOOL(name,desc,kn,mrg,mgc,chg,prob,wt,cost,mat,color) \
635 OBJECT(OBJ(name, desc), \
636 BITS(kn, mrg, chg, 0, mgc, chg, 0, 0, 0, 0, 0, P_NONE, mat), \
637 0, TOOL_CLASS, prob, 0, wt, cost, 0, 0, 0, 0, wt, color)
638 #define CONTAINER(name,desc,kn,mgc,chg,prob,wt,cost,mat,color) \
639 OBJECT(OBJ(name, desc), \
640 BITS(kn, 0, chg, 1, mgc, chg, 0, 0, 0, 0, 0, P_NONE, mat), \
641 0, TOOL_CLASS, prob, 0, wt, cost, 0, 0, 0, 0, wt, color)
642 #define WEPTOOL(name,desc,kn,mgc,bi,prob,wt,cost,sdam,ldam,hitbon,sub,mat,clr)\
643 OBJECT(OBJ(name, desc), \
644 BITS(kn, 0, 1, 0, mgc, 1, 0, 0, bi, 0, hitbon, sub, mat), \
645 0, TOOL_CLASS, prob, 0, wt, cost, sdam, ldam, hitbon, 0, wt, clr)
647 CONTAINER("
\91å
\94 ", None, 1, 0, 0, 40, 350, 8, WOOD, HI_WOOD),
648 CONTAINER("
\95ó
\94 ", None, 1, 0, 0, 35, 600, 16, WOOD, HI_WOOD),
649 CONTAINER("
\83A
\83C
\83X
\83{
\83b
\83N
\83X", None, 1, 0, 0, 5, 900, 42, PLASTIC, CLR_WHITE),
650 CONTAINER("
\91Ü", "
\8a\93", 0, 0, 0, 35, 15, 2, CLOTH, HI_CLOTH),
651 CONTAINER("
\96h
\90\85\91Ü", "
\8a\93", 0, 0, 0, 5, 15, 100, CLOTH, HI_CLOTH),
652 CONTAINER("
\8cy
\97Ê
\89»
\82Ì
\8a\93", "
\8a\93", 0, 1, 0, 20, 15, 100, CLOTH, HI_CLOTH),
653 CONTAINER("
\83g
\83\8a\83b
\83N
\82Ì
\8a\93", "
\8a\93", 0, 1, 1, 20, 15, 100, CLOTH, HI_CLOTH),
656 /* lock opening tools */
657 TOOL("
\96\9c\94\
\8c®", "
\8c®", 0, 0, 0, 0, 80, 3, 10, IRON, HI_METAL),
658 TOOL("
\8c®
\8aJ
\82¯
\8aí
\8bï", None, 1, 0, 0, 0, 60, 4, 20, IRON, HI_METAL),
659 TOOL("
\83N
\83\8c\83W
\83b
\83g
\83J
\81[
\83h", None, 1, 0, 0, 0, 15, 1, 10, PLASTIC, CLR_WHITE),
661 TOOL("
\8fb
\8e\89\82Ì
\82ë
\82¤
\82»
\82", "
\82ë
\82¤
\82»
\82", 0, 1, 0, 0, 20, 2, 10, WAX, CLR_WHITE),
662 TOOL("
\96¨
\98X
\82Ì
\82ë
\82¤
\82»
\82", "
\82ë
\82¤
\82»
\82", 0, 1, 0, 0, 5, 2, 20, WAX, CLR_WHITE),
663 TOOL("
\90^èJ
\82Ì
\83\89\83\93\83^
\83\93", None, 1, 0, 0, 0, 30, 30, 12, COPPER, CLR_YELLOW),
664 TOOL("
\83I
\83C
\83\8b\83\89\83\93\83v", "
\83\89\83\93\83v", 0, 0, 0, 0, 45, 20, 10, COPPER, CLR_YELLOW),
665 TOOL("
\96\82\96@
\82Ì
\83\89\83\93\83v", "
\83\89\83\93\83v", 0, 0, 1, 0, 15, 20, 50, COPPER, CLR_YELLOW),
667 TOOL("
\8d\82\89¿
\82È
\83J
\83\81\83\89", None, 1, 0, 0, 1, 15, 12,200, PLASTIC, CLR_BLACK),
668 TOOL("
\8b¾", "
\83K
\83\89\83X", 0, 0, 0, 0, 45, 13, 10, GLASS, HI_SILVER),
669 TOOL("
\90\85\8f»
\8bÊ", "
\83K
\83\89\83X
\82Ì
\8b\85", 0, 0, 1, 1, 15,150, 60, GLASS, HI_GLASS),
670 TOOL("
\83\8c\83\93\83Y", None, 1, 0, 0, 0, 5, 3, 80, GLASS, HI_GLASS),
671 TOOL("
\96Ú
\89B
\82µ", None, 1, 0, 0, 0, 50, 2, 20, CLOTH, CLR_BLACK),
672 TOOL("
\83^
\83I
\83\8b", None, 1, 0, 0, 0, 50, 2, 50, CLOTH, CLR_MAGENTA),
673 TOOL("
\88Æ", None, 1, 0, 0, 0, 5,200,150, LEATHER, HI_LEATHER),
674 TOOL("
\95R", None, 1, 0, 0, 0, 65, 12, 20, LEATHER, HI_LEATHER),
675 TOOL("
\92®
\90f
\8aí", None, 1, 0, 0, 0, 25, 4, 75, IRON, HI_METAL),
676 TOOL("
\8aÊ
\8bl
\8dì
\90¬
\93¹
\8bï", None, 1, 0, 0, 1, 15,100, 30, IRON, HI_METAL),
677 TOOL("
\8aÊ
\90Ø
\82è", None, 1, 0, 0, 0, 35, 4, 30, IRON, HI_METAL),
678 TOOL("
\8e\89\82Ì
\8aÊ", None, 1, 0, 0, 1, 15, 15, 20, IRON, HI_METAL),
679 TOOL("
\90l
\8c`", None, 1, 0, 1, 0, 25, 50, 80, MINERAL, HI_MINERAL),
680 /* monster type specified by obj->corpsenm */
681 TOOL("
\96\82\96@
\82Ì
\83}
\81[
\83J", None, 1, 0, 1, 1, 15, 2, 50, PLASTIC, CLR_RED),
683 TOOL("
\92n
\97\8b", None, 1, 0, 0, 0, 0, 300,180, IRON, CLR_RED),
684 TOOL("
\8cF
\82Ìã©", None, 1, 0, 0, 0, 0, 200, 60, IRON, HI_METAL),
686 "If tin whistles are made out of tin, what do they make foghorns out of?" */
687 TOOL("
\83u
\83\8a\83L
\82Ì
\93J", "
\93J", 0, 0, 0, 0,100, 3, 10, METAL, HI_METAL),
688 TOOL("
\96\82\96@
\82Ì
\93J", "
\93J", 0, 0, 1, 0, 30, 3, 10, METAL, HI_METAL),
689 TOOL("
\96Ø
\82Ì
\83t
\83\8b\81[
\83g", "
\83t
\83\8b\81[
\83g", 0, 0, 0, 0, 4, 5, 12, WOOD, HI_WOOD),
690 TOOL("
\96\82\96@
\82Ì
\83t
\83\8b\81[
\83g", "
\83t
\83\8b\81[
\83g", 0, 0, 1, 1, 2, 5, 36, WOOD, HI_WOOD),
691 TOOL("
\8d×
\8dH
\82Ì
\82Ù
\82Ç
\82±
\82³
\82ê
\82½
\83z
\83\8b\83\93", "
\83z
\83\8b\83\93", 0, 0, 0, 0, 5, 18, 15, BONE, CLR_WHITE),
692 TOOL("
\90\81\90á
\82Ì
\83z
\83\8b\83\93", "
\83z
\83\8b\83\93", 0, 0, 1, 1, 2, 18, 50, BONE, CLR_WHITE),
693 TOOL("
\89\8a\82Ì
\83z
\83\8b\83\93", "
\83z
\83\8b\83\93", 0, 0, 1, 1, 2, 18, 50, BONE, CLR_WHITE),
694 TOOL("
\8cb
\82Ý
\82Ì
\83z
\83\8b\83\93", "
\83z
\83\8b\83\93", 0, 0, 1, 1, 2, 18, 50, BONE, CLR_WHITE),
695 /* horn, but not an instrument */
696 TOOL("
\96Ø
\82Ì
\92G
\8bÕ", "
\92G
\8bÕ", 0, 0, 0, 0, 4, 30, 50, WOOD, HI_WOOD),
697 TOOL("
\96\82\96@
\82Ì
\92G
\8bÕ", "
\92G
\8bÕ", 0, 0, 1, 1, 2, 30, 50, WOOD, HI_WOOD),
698 TOOL("
\83x
\83\8b", None, 1, 0, 0, 0, 2, 30, 50, COPPER, HI_COPPER),
699 TOOL("
\83\89\83b
\83p", None, 1, 0, 0, 0, 4, 10, 15, COPPER, HI_COPPER),
700 TOOL("
\8av
\82Ì
\91¾
\8cÛ", "
\91¾
\8cÛ", 0, 0, 0, 0, 4, 25, 25, LEATHER, HI_LEATHER),
701 TOOL("
\92n
\90k
\82Ì
\91¾
\8cÛ", "
\91¾
\8cÛ", 0, 0, 1, 1, 2, 25, 25, LEATHER, HI_LEATHER),
702 /* tools useful as weapons */
703 WEPTOOL("
\82Â
\82é
\82Í
\82µ", None,
704 1, 0, 0, 20, 100, 50, 6, 3, WHACK, P_PICK_AXE, IRON, HI_METAL),
705 WEPTOOL("
\82Ð
\82Á
\82©
\82¯
\96_", "
\93S
\82Ì
\83t
\83b
\83N",
706 0, 0, 0, 5, 30, 50, 2, 6, WHACK, P_FLAIL, IRON, HI_METAL),
707 WEPTOOL("
\83\86\83j
\83R
\81[
\83\93\82Ì
\8ap", None,
708 1, 1, 1, 0, 20, 100, 12, 12, PIERCE, P_UNICORN_HORN,
710 /* 3.4.1: unicorn horn left classified as "magic" */
712 * not artifacts, despite the comment which used to be here
714 OBJECT(OBJ("
\8bF
\82è
\82Ì
\90C
\91ä", "
\90C
\91ä"),
715 BITS(0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, P_NONE, GOLD),
716 0, TOOL_CLASS, 0, 0, 10, 5000, 0, 0, 0, 0, 200, HI_GOLD),
717 OBJECT(OBJ("
\8aJ
\95ú
\82Ì
\83x
\83\8b", "
\8bâ
\82Ì
\83x
\83\8b"),
718 BITS(0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, P_NONE, SILVER),
719 0, TOOL_CLASS, 0, 0, 10, 5000, 0, 0, 0, 0, 50, HI_SILVER),
723 /* Comestibles ... */
724 #define FOOD(name, prob, delay, wt, unk, tin, nutrition, color) \
725 OBJECT(OBJ(name, None), \
726 BITS(1, 1, unk, 0, 0, 0, 0, 0, 0, 0, 0, P_NONE, tin), 0, \
727 FOOD_CLASS, prob, delay, wt, nutrition / 20 + 5, 0, 0, 0, 0, \
729 /* All types of food (except tins & corpses) must have a delay of at least 1.
730 * Delay on corpses is computed and is weight dependant.
731 * Domestic pets prefer tripe rations above all others.
732 * Fortune cookies can be read, using them up without ingesting them.
733 * Carrots improve your vision.
734 * +0 tins contain monster meat.
735 * +1 tins (of spinach) make you stronger (like Popeye).
736 * Meatballs/sticks/rings are only created from objects via stone to flesh.
739 FOOD("
\8a£
\82µ
\93÷", 140, 2, 10, 0, FLESH, 200, CLR_BROWN),
740 FOOD("
\8e\80\91Ì", 0, 1, 0, 0, FLESH, 0, CLR_BROWN),
741 FOOD("
\97\91", 85, 1, 1, 1, FLESH, 80, CLR_WHITE),
742 FOOD("
\83~
\81[
\83g
\83{
\81[
\83\8b", 0, 1, 1, 0, FLESH, 5, CLR_BROWN),
743 FOOD("
\83~
\81[
\83g
\83X
\83e
\83B
\83b
\83N", 0, 1, 1, 0, FLESH, 5, CLR_BROWN),
744 FOOD("
\91å
\82«
\82È
\93÷
\82Ì
\82©
\82½
\82Ü
\82è", 0, 20,400, 0, FLESH,2000, CLR_BROWN),
745 /* special case because it's not mergable */
746 OBJECT(OBJ("meat ring", None),
747 BITS(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, FLESH),
748 0, FOOD_CLASS, 0, 1, 5, 1, 0, 0, 0, 0, 5, CLR_BROWN),
749 /* pudding 'corpses' will turn into these and combine;
750 must be in same order as the pudding monsters */
751 FOOD("
\8aD
\90F
\83E
\81[
\83Y
\82Ì
\89ò", 0, 2, 20, 0, FLESH, 20, CLR_GRAY),
752 FOOD("
\92\83\90F
\83v
\83\8a\83\93\82Ì
\89ò", 0, 2, 20, 0, FLESH, 20, CLR_BROWN),
753 FOOD("
\97Î
\83X
\83\89\83C
\83\80\82Ì
\89ò", 0, 2, 20, 0, FLESH, 20, CLR_GREEN),
754 FOOD("
\8d\95\83v
\83\8a\83\93\82Ì
\89ò", 0, 2, 20, 0, FLESH, 20, CLR_BLACK),
756 /* fruits & veggies */
757 FOOD("
\83\8f\83J
\83\81", 0, 1, 1, 0, VEGGY, 30, CLR_GREEN),
758 FOOD("
\83\86\81[
\83J
\83\8a\82Ì
\97t", 3, 1, 1, 0, VEGGY, 30, CLR_GREEN),
759 FOOD("
\82è
\82ñ
\82²", 15, 1, 2, 0, VEGGY, 50, CLR_RED),
760 FOOD("
\83I
\83\8c\83\93\83W", 10, 1, 2, 0, VEGGY, 80, CLR_ORANGE),
761 FOOD("
\97m
\83i
\83V", 10, 1, 2, 0, VEGGY, 50, CLR_BRIGHT_GREEN),
762 FOOD("
\83\81\83\8d\83\93", 10, 1, 5, 0, VEGGY, 100, CLR_BRIGHT_GREEN),
763 FOOD("
\83o
\83i
\83i", 10, 1, 2, 0, VEGGY, 80, CLR_YELLOW),
764 FOOD("
\82É
\82ñ
\82¶
\82ñ", 15, 1, 2, 0, VEGGY, 50, CLR_ORANGE),
765 FOOD("
\83g
\83\8a\83J
\83u
\83g", 7, 1, 1, 0, VEGGY, 40, CLR_GREEN),
766 FOOD("
\82É
\82ñ
\82É
\82", 7, 1, 1, 0, VEGGY, 40, CLR_WHITE),
767 /* name of slime mold is changed based on player's OPTION=fruit:something
768 and bones data might have differently named ones from prior games */
769 FOOD("
\82Ë
\82Î
\82Ë
\82Î
\83J
\83r", 75, 1, 5, 0, VEGGY, 250, HI_ORGANIC),
772 FOOD("
\83\8d\83C
\83\84\83\8b\83[
\83\8a\81[", 0, 1, 2, 0, VEGGY, 200, CLR_YELLOW),
773 FOOD("
\83N
\83\8a\81[
\83\80\83p
\83C", 25, 1, 10, 0, VEGGY, 100, CLR_WHITE),
774 FOOD("
\83L
\83\83\83\93\83f
\83B", 13, 1, 2, 0, VEGGY, 100, CLR_BROWN),
775 FOOD("
\90è
\82¢
\83N
\83b
\83L
\81[", 55, 1, 1, 0, VEGGY, 40, CLR_YELLOW),
776 FOOD("
\83p
\83\93\83P
\81[
\83L", 25, 2, 2, 0, VEGGY, 200, CLR_YELLOW),
777 FOOD("
\83\8c\83\93\83o
\83X", 20, 2, 5, 0, VEGGY, 800, CLR_WHITE),
778 FOOD("
\83N
\83\89\83\80", 20, 3, 15, 0, VEGGY, 600, HI_ORGANIC),
779 FOOD("
\90H
\97¿", 380, 5, 20, 0, VEGGY, 800, HI_ORGANIC),
780 FOOD("
\82j
\83\8c\81[
\83V
\83\87\83\93", 0, 1, 10, 0, VEGGY, 400, HI_ORGANIC),
781 FOOD("
\82b
\83\8c\81[
\83V
\83\87\83\93", 0, 1, 10, 0, VEGGY, 300, HI_ORGANIC),
782 /* tins have type specified by obj->spe (+1 for spinach, other implies
783 flesh; negative specifies preparation method {homemade,boiled,&c})
784 and by obj->corpsenm (type of monster flesh) */
785 FOOD("
\8aÊ", 75, 0, 10, 1, METAL, 0, HI_METAL),
789 #define POTION(name,desc,mgc,power,prob,cost,color) \
790 OBJECT(OBJ(name, desc), \
791 BITS(0, 1, 0, 0, mgc, 0, 0, 0, 0, 0, 0, P_NONE, GLASS), \
792 power, POTION_CLASS, prob, 0, 20, cost, 0, 0, 0, 0, 10, color)
793 POTION("
\94\
\97Í
\8al
\93¾
\82Ì
\96ò", "
\83\8b\83r
\81[
\90F
\82Ì
\96ò", 1, 0, 42, 300, CLR_RED),
794 POTION("
\94\
\97Í
\89ñ
\95\9c\82Ì
\96ò", "
\83s
\83\93\83N
\90F
\82Ì
\96ò", 1, 0, 40, 100, CLR_BRIGHT_MAGENTA),
795 POTION("
\8d¬
\97\90\82Ì
\96ò", "
\83I
\83\8c\83\93\83W
\90F
\82Ì
\96ò", 1, CONFUSION, 42, 100, CLR_ORANGE),
796 POTION("
\96Ó
\96Ú
\82Ì
\96ò", "
\89©
\90F
\82Ì
\96ò", 1, BLINDED, 40, 150, CLR_YELLOW),
797 POTION("
\96\83á
\83\82Ì
\96ò", "
\83G
\83\81\83\89\83\8b\83h
\90F
\82Ì
\96ò", 1, 0, 42, 300, CLR_BRIGHT_GREEN),
798 POTION("
\89Á
\91¬
\82Ì
\96ò", "
\88Ã
\97Î
\90F
\82Ì
\96ò", 1, FAST, 42, 200, CLR_GREEN),
799 POTION("
\95\82\97V
\82Ì
\96ò", "
\83V
\83A
\83\93\90F
\82Ì
\96ò", 1, LEVITATION, 42, 200, CLR_CYAN),
800 POTION("
\8c¶
\8ao
\82Ì
\96ò", "
\90\85\90F
\82Ì
\96ò", 1, HALLUC, 40, 100, CLR_CYAN),
801 POTION("
\93§
\96¾
\82Ì
\96ò", "
\96¾
\82é
\82¢
\90Â
\90F
\82Ì
\96ò", 1, INVIS, 40, 150, CLR_BRIGHT_BLUE),
802 POTION("
\89Â
\8e\8b\82Ì
\96ò", "
\83}
\83[
\83\93\83_
\90F
\82Ì
\96ò", 1, SEE_INVIS, 42, 50, CLR_MAGENTA),
803 POTION("
\89ñ
\95\9c\82Ì
\96ò", "
\90Ô
\8e\87\90F
\82Ì
\96ò", 1, 0, 57, 100, CLR_MAGENTA),
804 POTION("
\92´
\89ñ
\95\9c\82Ì
\96ò", "
\88Ã
\8a\8c\90F
\82Ì
\96ò", 1, 0, 47, 100, CLR_RED),
805 POTION("
\83\8c\83x
\83\8b\83A
\83b
\83v
\82Ì
\96ò", "
\83~
\83\8b\83N
\90F
\82Ì
\96ò", 1, 0, 20, 300, CLR_WHITE),
806 POTION("
\8c[
\96Ö
\82Ì
\96ò", "
\89Q
\82ð
\8aª
\82¢
\82Ä
\82¢
\82é
\96ò", 1, 0, 20, 200, CLR_BROWN),
807 POTION("
\89ö
\95¨
\82ð
\92T
\82·
\96ò", "
\96A
\82¾
\82Á
\82Ä
\82¢
\82é
\96ò", 1, 0, 40, 150, CLR_WHITE),
808 POTION("
\95¨
\91Ì
\82ð
\92T
\82·
\96ò", "
\89\8c\82ª
\82Å
\82Ä
\82¢
\82é
\96ò", 1, 0, 42, 150, CLR_GRAY),
809 POTION("
\96\82\97Í
\82Ì
\96ò", "
\93Ü
\82Á
\82Ä
\82¢
\82é
\96ò", 1, 0, 42, 150, CLR_WHITE),
810 POTION("
\90\87\96°
\82Ì
\96ò", "
\95¦
\93«
\82µ
\82Ä
\82¢
\82é
\96ò", 1, 0, 42, 100, CLR_GRAY),
811 POTION("
\8a®
\91S
\89ñ
\95\9c\82Ì
\96ò", "
\8d\95\82¢
\96ò", 1, 0, 10, 200, CLR_BLACK),
812 POTION("
\95Ï
\89»
\82Ì
\96ò", "
\8bà
\90F
\82Ì
\96ò", 1, 0, 10, 200, CLR_YELLOW),
813 POTION("
\90\8c\82Á
\82Ï
\82ç
\82¢
\82Ì
\96ò", "
\92\83\90F
\82Ì
\96ò", 0, 0, 42, 50, CLR_BROWN),
814 POTION("
\95a
\8bC
\82Ì
\96ò", "
\94
\96A
\82µ
\82Ä
\82¢
\82é
\96ò", 0, 0, 42, 50, CLR_CYAN),
815 POTION("
\83t
\83\8b\81[
\83c
\83W
\83\85\81[
\83X", "
\89A
\8bC
\82È
\90F
\82Ì
\96ò", 0, 0, 42, 50, CLR_BLACK),
816 POTION("
\8e_
\82Ì
\96ò", "
\94\92\82¢
\96ò", 0, 0, 10, 250, CLR_WHITE),
817 POTION("
\96û", "
\94Z
\8d\95\82Ì
\96ò", 0, 0, 30, 250, CLR_BROWN),
820 POTION("
\90\85", "
\96³
\90F
\82Ì
\96ò", 0, 0, 92, 100, CLR_CYAN),
824 #define SCROLL(name,text,mgc,prob,cost) \
825 OBJECT(OBJ(name, text), \
826 BITS(0, 1, 0, 0, mgc, 0, 0, 0, 0, 0, 0, P_NONE, PAPER), \
827 0, SCROLL_CLASS, prob, 0, 5, cost, 0, 0, 0, 0, 6, HI_PAPER)
828 SCROLL("
\8aZ
\82É
\96\82\96@
\82ð
\82©
\82¯
\82é
\8aª
\95¨", "
\81w
\82Ö
\82ë
\82Ö
\82ë
\82Á
\82·
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 63, 80),
829 SCROLL("
\8aZ
\82ð
\94j
\89ó
\82·
\82é
\8aª
\95¨", "
\81w
\82Ï
\81[
\82é
\82 \82Ï
\82Á
\82¿
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 45, 100),
830 SCROLL("
\89ö
\95¨
\82ð
\8d¬
\97\90\82³
\82¹
\82é
\8aª
\95¨", "
\81w
\82¹
\82Ô
\82ñ
\82·
\82¬
\82å
\82´
\81[
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 53, 100),
831 SCROLL("
\89ö
\95¨
\82ð
\8b¯
\82¦
\82³
\82¹
\82é
\8aª
\95¨", "
\81w
\82Ñ
\81[
\82¦
\82·
\82Å
\81[
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 35, 100),
832 SCROLL("
\89ð
\8eô
\82Ì
\8aª
\95¨", "
\81w
\82¨
\82ë
\82©
\82Ô
\81[
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 65, 80),
833 SCROLL("
\95\90\8aí
\82É
\96\82\96@
\82ð
\82©
\82¯
\82é
\8aª
\95¨", "
\81w
\82 \82ç
\82Ù
\82ç
\82³
\82Á
\82³
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 80, 60),
834 SCROLL("
\89ö
\95¨
\82ð
\8dì
\82é
\8aª
\95¨", "
\81w
\82è
\82È
\82Á
\82
\82·
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 45, 200),
835 SCROLL("
\89ö
\95¨
\82ð
\8e\94\82¢
\82È
\82ç
\82·
\8aª
\95¨", "
\81w
\82°
\82ë
\82°
\81[
\82ë
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 15, 200),
836 SCROLL("
\8bs
\8eE
\82Ì
\8aª
\95¨", "
\81w
\82Î
\82
\82µ
\82å
\82¤
\82à
\82ñ
\82¾
\82¢
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 15, 300),
837 SCROLL("
\8cõ
\82Ì
\8aª
\95¨", "
\81w
\82¿
\82¥
\82Á
\82
\82ß
\82¢
\82Æ
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 90, 50),
838 SCROLL("
\8fu
\8aÔ
\88Ú
\93®
\82Ì
\8aª
\95¨", "
\81w
\82¨
\81[
\82
\82·
\82¾
\81[
\82Ñ
\81[
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 55, 100),
839 SCROLL("
\8bà
\89Ý
\82ð
\92T
\82·
\8aª
\95¨", "
\81w
\82©
\82Ë
\82©
\82Ë
\82©
\82Ë
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 33, 100),
840 SCROLL("
\90H
\97¿
\82ð
\92T
\82·
\8aª
\95¨", "
\81w
\82¨
\82Ô
\82¿
\82¯
\82¢
\82¼
\82¤
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 25, 100),
841 SCROLL("
\8e¯
\95Ê
\82Ì
\8aª
\95¨", "
\81w
\82
\82Á
\82
\81[
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 180, 20),
842 SCROLL("
\92n
\90}
\82Ì
\8aª
\95¨", "
\81w
\82¶
\82á
\82¢
\82·
\82Æ
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 45, 100),
843 SCROLL("
\8bL
\89¯
\91r
\8e¸
\82Ì
\8aª
\95¨", "
\81w
\82Ü
\82¦
\82ð
\82Ý
\82ë
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 35, 200),
844 SCROLL("
\89\8a\82Ì
\8aª
\95¨", "
\81w
\82Ç
\82Á
\82
\82è
\82Ñ
\82ñ
\82«
\81[
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 30, 100),
845 SCROLL("
\91å
\92n
\82Ì
\8aª
\95¨", "
\81w
\82æ
\82µ
\82Ì
\82â
\82¬
\82ã
\82Ç
\81[
\82ñ
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 18, 200),
846 SCROLL("
\94±
\82Ì
\8aª
\95¨", "
\81w
\82·
\82Ä
\81[
\82«
\82Ý
\82á
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 15, 300),
847 SCROLL("
\8f[
\93U
\82Ì
\8aª
\95¨", "
\81w
\82¶
\82á
\82¢
\82µ
\82å
\82
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 15, 300),
848 SCROLL("
\88«
\8fL
\89_
\82Ì
\8aª
\95¨", "
\81w
\82¿
\82á
\82ñ
\82Ò
\82¨
\81`
\82ñ
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 15, 300),
849 /* Extra descriptions, shuffled into use at start of new game.
850 * Code in win/share/tilemap.c depends on SCR_STINKING_CLOUD preceding
851 * these and on how many of them there are. If a real scroll gets added
852 * after stinking cloud or the number of extra descriptions changes,
853 * tilemap.c must be modified to match.
855 SCROLL(None, "
\81w
\82Í
\82É
\82á
\81`
\82ñ
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 0, 100),
856 SCROLL(None, "
\81w
\82Û
\82¿
\82Á
\82Æ
\82È
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 0, 100),
857 SCROLL(None, "
\81w
\82µ
\82Ñ
\82Ñ
\82ñ
\82µ
\82Ñ
\82Ñ
\82ñ
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 0, 100),
858 SCROLL(None, "
\81w
\82¤
\82µ
\82ë
\82ð
\82Ý
\82ë
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 0, 100),
859 SCROLL(None, "
\81wETAOIN SHRDLU
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 0, 100),
860 SCROLL(None, "
\81wLOREM IPSUM
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 0, 100),
861 SCROLL(None, "
\81wFNORD
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 0, 100), /* Illuminati */
862 SCROLL(None, "
\81wKO BATE
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 0, 100), /* Kurd Lasswitz */
863 SCROLL(None, "
\81wABRA KA DABRA
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 0, 100), /* traditional incantation */
864 SCROLL(None, "
\81wASHPD SODALG
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 0, 100), /* Portal */
865 SCROLL(None, "
\81wZLORFIK
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 0, 100), /* Zak McKracken */
866 SCROLL(None, "
\81wGNIK SISI VLE
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 0, 100), /* Zak McKracken */
867 SCROLL(None, "
\81wHAPAX LEGOMENON
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 0, 100),
868 SCROLL(None, "
\81wEIRIS SAZUN IDISI
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 0, 100), /* Merseburg Incantations */
869 SCROLL(None, "
\81wPHOL ENDE WODAN
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 0, 100), /* Merseburg Incantations */
870 SCROLL(None, "
\81wGHOTI
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 0, 100), /* pronounced as 'fish',
871 George Bernard Shaw */
872 SCROLL(None, "
\81wMAPIRO MAHAMA DIROMAT
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 0, 100), /* Wizardry */
873 SCROLL(None, "
\81wVAS CORP BET MANI
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 0, 100), /* Ultima */
874 SCROLL(None, "
\81wXOR OTA
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 0, 100), /* Aarne Haapakoski */
875 SCROLL(None, "
\81wSTRC PRST SKRZ KRK
\81x
\82Æ
\8f\91\82©
\82ê
\82½
\8aª
\95¨", 1, 0, 100), /* Czech and Slovak
877 /* These must come last because they have special fixed descriptions.
880 SCROLL("
\8eè
\8e\86\82Ì
\8aª
\95¨", "
\8fÁ
\88ó
\82Ì
\89\9f\82³
\82ê
\82½
\8aª
\95¨", 0, 0, 0),
882 SCROLL("
\94\92\8e\86\82Ì
\8aª
\95¨", "
\83\89\83x
\83\8b\82Ì
\82È
\82¢
\8aª
\95¨", 0, 28, 60),
886 /* expanding beyond 52 spells would require changes in spellcasting
887 or imposition of a limit on number of spells hero can know because
888 they are currently assigned successive letters, a-zA-Z, when learned */
889 #define SPELL(name,desc,sub,prob,delay,level,mgc,dir,color) \
890 OBJECT(OBJ(name, desc), \
891 BITS(0, 0, 0, 0, mgc, 0, 0, 0, 0, 0, dir, sub, PAPER), \
892 0, SPBOOK_CLASS, prob, delay, 50, level * 100, \
893 0, 0, 0, level, 20, color)
894 SPELL("
\8c\8a\8c@
\82è
\82Ì
\96\82\96@
\8f\91", "
\97r
\94ç
\8e\86\82Ì
\96\82\96@
\8f\91",
895 P_MATTER_SPELL, 20, 6, 5, 1, RAY, HI_PAPER),
896 SPELL("
\96î
\82Ì
\96\82\96@
\8f\91", "
\8eq
\8b\8d\94ç
\82Ì
\96\82\96@
\8f\91",
897 P_ATTACK_SPELL, 45, 2, 2, 1, RAY, HI_PAPER),
898 SPELL("
\89Î
\82Ì
\8bÊ
\82Ì
\96\82\96@
\8f\91", "
\82Ú
\82ë
\82Ú
\82ë
\82Ì
\96\82\96@
\8f\91",
899 P_ATTACK_SPELL, 20, 4, 4, 1, RAY, HI_PAPER),
900 SPELL("
\97â
\8bC
\82Ì
\96\82\96@
\8f\91", "
\83y
\81[
\83W
\82Ì
\90Ü
\82ç
\82ê
\82½
\96\82\96@
\8f\91",
901 P_ATTACK_SPELL, 10, 7, 4, 1, RAY, HI_PAPER),
902 SPELL("
\96°
\82è
\82Ì
\96\82\96@
\8f\91", "
\82Ü
\82¾
\82ç
\82Ì
\96\82\96@
\8f\91",
903 P_ENCHANTMENT_SPELL, 50, 1, 1, 1, RAY, HI_PAPER),
904 SPELL("
\8e\80\82Ì
\8ew
\82Ì
\96\82\96@
\8f\91", "
\82æ
\82²
\82ê
\82½
\96\82\96@
\8f\91",
905 P_ATTACK_SPELL, 5, 10, 7, 1, RAY, HI_PAPER),
906 SPELL("
\93\94\82è
\82Ì
\96\82\96@
\8f\91", "
\95z
\92n
\82Ì
\96\82\96@
\8f\91",
907 P_DIVINATION_SPELL, 45, 1, 1, 1, NODIR, HI_CLOTH),
908 SPELL("
\89ö
\95¨
\82ð
\92T
\82·
\96\82\96@
\8f\91", "leathery",
909 P_DIVINATION_SPELL, 43, 1, 1, 1, NODIR, HI_LEATHER),
910 SPELL("
\89ñ
\95\9c\82Ì
\96\82\96@
\8f\91", "
\94\92\82¢
\96\82\96@
\8f\91",
911 P_HEALING_SPELL, 40, 2, 1, 1, IMMEDIATE, CLR_WHITE),
912 SPELL("
\8aJ
\8fù
\82Ì
\96\82\96@
\8f\91", "
\83s
\83\93\83N
\90F
\82Ì
\96\82\96@
\8f\91",
913 P_MATTER_SPELL, 35, 1, 1, 1, IMMEDIATE, CLR_BRIGHT_MAGENTA),
914 SPELL("
\8fÕ
\8c\82\82Ì
\96\82\96@
\8f\91", "
\90Ô
\82¢
\96\82\96@
\8f\91",
915 P_ATTACK_SPELL, 35, 2, 1, 1, IMMEDIATE, CLR_RED),
916 SPELL("
\8d¬
\97\90\82Ì
\96\82\96@
\8f\91", "
\83I
\83\8c\83\93\83W
\90F
\82Ì
\96\82\96@
\8f\91",
917 P_ENCHANTMENT_SPELL, 30, 2, 2, 1, IMMEDIATE, CLR_ORANGE),
918 SPELL("
\96Ó
\96Ú
\82ð
\96ü
\82·
\96\82\96@
\8f\91", "
\89©
\90F
\82¢
\96\82\96@
\8f\91",
919 P_HEALING_SPELL, 25, 2, 2, 1, IMMEDIATE, CLR_YELLOW),
920 SPELL("
\92E
\97Í
\82Ì
\96\82\96@
\8f\91", "
\83r
\83\8d\81[
\83h
\82Ì
\96\82\96@
\8f\91",
921 P_ATTACK_SPELL, 10, 2, 2, 1, IMMEDIATE, CLR_MAGENTA),
922 SPELL("
\8b\8d\95à
\82Ì
\96\82\96@
\8f\91", "
\92W
\97Î
\90F
\82Ì
\96\82\96@
\8f\91",
923 P_ENCHANTMENT_SPELL, 30, 2, 2, 1, IMMEDIATE, CLR_BRIGHT_GREEN),
924 SPELL("
\8e{
\8fù
\82Ì
\96\82\96@
\8f\91", "
\94Z
\97Î
\90F
\82Ì
\96\82\96@
\8f\91",
925 P_MATTER_SPELL, 30, 3, 2, 1, IMMEDIATE, CLR_GREEN),
926 SPELL("
\89ö
\95¨
\82ð
\91¢
\82é
\96\82\96@
\8f\91", "
\90Â
\97Î
\90F
\82Ì
\96\82\96@
\8f\91",
927 P_CLERIC_SPELL, 35, 3, 2, 1, NODIR, CLR_BRIGHT_CYAN),
928 SPELL("
\90H
\97¿
\82ð
\92T
\82·
\96\82\96@
\8f\91", "
\83V
\83A
\83\93\90F
\82Ì
\96\82\96@
\8f\91",
929 P_DIVINATION_SPELL, 30, 3, 2, 1, NODIR, CLR_CYAN),
930 SPELL("
\8b°
\95|
\82Ì
\96\82\96@
\8f\91", "
\92W
\90Â
\82Ì
\96\82\96@
\8f\91",
931 P_ENCHANTMENT_SPELL, 25, 3, 3, 1, NODIR, CLR_BRIGHT_BLUE),
932 SPELL("
\90ç
\97¢
\8aá
\82Ì
\96\82\96@
\8f\91", "
\94Z
\90Â
\82Ì
\96\82\96@
\8f\91",
933 P_DIVINATION_SPELL, 15, 3, 3, 1, NODIR, CLR_BLUE),
934 SPELL("
\95a
\8bC
\82ð
\96ü
\82·
\96\82\96@
\8f\91", "
\97\95\90F
\82Ì
\96\82\96@
\8f\91",
935 P_HEALING_SPELL, 32, 3, 3, 1, NODIR, CLR_BLUE),
936 SPELL("
\96£
\97¹
\82Ì
\96\82\96@
\8f\91", "
\83}
\83[
\83\93\83_
\90F
\82Ì
\96\82\96@
\8f\91",
937 P_ENCHANTMENT_SPELL, 20, 3, 3, 1, IMMEDIATE, CLR_MAGENTA),
938 SPELL("
\91¬
\8dU
\82Ì
\96\82\96@
\8f\91", "
\8e\87\90F
\82Ì
\96\82\96@
\8f\91",
939 P_ESCAPE_SPELL, 33, 4, 3, 1, NODIR, CLR_MAGENTA),
940 SPELL("
\97ì
\8a´
\82Ì
\96\82\96@
\8f\91", "
\83X
\83~
\83\8c\90F
\82Ì
\96\82\96@
\8f\91",
941 P_DIVINATION_SPELL, 20, 4, 3, 1, NODIR, CLR_MAGENTA),
942 SPELL("
\95\82\97V
\82Ì
\96\82\96@
\8f\91", "
\89©
\8a\8c\90F
\82Ì
\96\82\96@
\8f\91",
943 P_ESCAPE_SPELL, 20, 4, 4, 1, NODIR, CLR_BROWN),
944 SPELL("
\92´
\89ñ
\95\9c\82Ì
\96\82\96@
\8f\91", "
\83\89\83V
\83\83\82Ì
\96\82\96@
\8f\91",
945 P_HEALING_SPELL, 27, 5, 3, 1, IMMEDIATE, CLR_GREEN),
946 SPELL("
\94\
\97Í
\89ñ
\95\9c\82Ì
\96\82\96@
\8f\91", "
\92W
\92\83\90F
\82Ì
\96\82\96@
\8f\91",
947 P_HEALING_SPELL, 25, 5, 4, 1, NODIR, CLR_BROWN),
948 SPELL("
\93§
\96¾
\82Ì
\96\82\96@
\8f\91", "
\94Z
\92\83\90F
\82Ì
\96\82\96@
\8f\91",
949 P_ESCAPE_SPELL, 25, 5, 4, 1, NODIR, CLR_BROWN),
950 SPELL("
\95ó
\82ð
\92T
\82·
\96\82\96@
\8f\91", "
\8aD
\90F
\82Ì
\96\82\96@
\8f\91",
951 P_DIVINATION_SPELL, 20, 5, 4, 1, NODIR, CLR_GRAY),
952 SPELL("
\89ð
\8eô
\82Ì
\96\82\96@
\8f\91", "
\82
\82µ
\82á
\82
\82µ
\82á
\82Ì
\96\82\96@
\8f\91",
953 P_CLERIC_SPELL, 25, 5, 3, 1, NODIR, HI_PAPER),
954 SPELL("
\92n
\90}
\82Ì
\96\82\96@
\8f\91", "
\82Ù
\82±
\82è
\82Á
\82Û
\82¢
\96\82\96@
\8f\91",
955 P_DIVINATION_SPELL, 18, 7, 5, 1, NODIR, HI_PAPER),
956 SPELL("
\8e¯
\95Ê
\82Ì
\96\82\96@
\8f\91", "
\90Â
\93º
\82Ì
\96\82\96@
\8f\91",
957 P_DIVINATION_SPELL, 20, 6, 3, 1, NODIR, HI_COPPER),
958 SPELL("
\91h
\90¶
\82Ì
\96\82\96@
\8f\91", "
\93º
\82Ì
\96\82\96@
\8f\91",
959 P_CLERIC_SPELL, 16, 8, 6, 1, IMMEDIATE, HI_COPPER),
960 SPELL("
\95Ï
\89»
\82Ì
\96\82\96@
\8f\91", "
\8bâ
\82Ì
\96\82\96@
\8f\91",
961 P_MATTER_SPELL, 10, 8, 6, 1, IMMEDIATE, HI_SILVER),
962 SPELL("
\8fu
\8aÔ
\88Ú
\93®
\82Ì
\96\82\96@
\8f\91", "
\8bà
\82Ì
\96\82\96@
\8f\91",
963 P_ESCAPE_SPELL, 15, 6, 6, 1, IMMEDIATE, HI_GOLD),
964 SPELL("
\91¢
\96\82\82Ì
\96\82\96@
\8f\91", "
\82«
\82ç
\82Ñ
\82â
\82©
\82È
\96\82\96@
\8f\91",
965 P_CLERIC_SPELL, 10, 7, 6, 1, NODIR, CLR_WHITE),
966 SPELL("
\96³
\97Í
\89»
\82Ì
\96\82\96@
\8f\91", "
\8bP
\82
\96\82\96@
\8f\91",
967 P_MATTER_SPELL, 15, 8, 7, 1, IMMEDIATE, CLR_WHITE),
968 SPELL("
\8eç
\82è
\82Ì
\96\82\96@
\8f\91", "
\89\94\90F
\82Ì
\96\82\96@
\8f\91",
969 P_CLERIC_SPELL, 18, 3, 1, 1, NODIR, HI_PAPER),
970 SPELL("
\92µ
\96ô
\82Ì
\96\82\96@
\8f\91", "
\94\96\82¢
\90F
\82Ì
\96\82\96@
\8f\91",
971 P_ESCAPE_SPELL, 20, 3, 1, 1, IMMEDIATE, HI_PAPER),
972 SPELL("
\93î
\89»
\82Ì
\96\82\96@
\8f\91", "
\94Z
\82¢
\90F
\82Ì
\96\82\96@
\8f\91",
973 P_HEALING_SPELL, 15, 1, 3, 1, IMMEDIATE, HI_PAPER),
975 /* from slash'em, create a tame critter which explodes when attacking,
976 damaging adjacent creatures--friend or foe--and dying in the process */
977 SPELL("flame sphere", "
\96\83\82Ì
\96\82\96@
\8f\91",
978 P_MATTER_SPELL, 20, 2, 1, 1, NODIR, CLR_BROWN),
979 SPELL("freeze sphere", "
\8cÅ
\82¢
\95\
\8e\86\82Ì
\96\82\96@
\8f\91",
980 P_MATTER_SPELL, 20, 2, 1, 1, NODIR, CLR_BROWN),
982 /* books with fixed descriptions
984 SPELL("
\94\92\8e\86\82Ì
\96\82\96@
\8f\91", "
\90^
\82Á
\94\92\82È
\96\82\96@
\8f\91", P_NONE, 18, 0, 0, 0, 0, HI_PAPER),
985 /* tribute book for 3.6 */
986 OBJECT(OBJ("
\8f¬
\90à", "
\83y
\81[
\83p
\81[
\83o
\83b
\83N
\82Ì
\96\82\96@
\8f\91"),
987 BITS(0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, P_NONE, HI_PAPER),
988 0, SPBOOK_CLASS, 0, 0, 0, 20, 0, 0, 0, 1, 20, CLR_BRIGHT_BLUE),
989 /* a special, one of a kind, spellbook */
990 OBJECT(OBJ("
\8e\80\8eÒ
\82Ì
\8f\91", "
\83p
\83s
\83\8b\83X
\82Ì
\96\82\96@
\8f\91"),
991 BITS(0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, P_NONE, PAPER),
992 0, SPBOOK_CLASS, 0, 0, 20, 10000, 0, 0, 0, 7, 20, HI_PAPER),
996 #define WAND(name,typ,prob,cost,mgc,dir,metal,color) \
997 OBJECT(OBJ(name, typ), \
998 BITS(0, 0, 1, 0, mgc, 1, 0, 0, 0, 0, dir, P_NONE, metal), \
999 0, WAND_CLASS, prob, 0, 7, cost, 0, 0, 0, 0, 30, color)
1000 WAND("
\93\94\82è
\82Ì
\8fñ", "
\83K
\83\89\83X
\82Ì
\8fñ", 95, 100, 1, NODIR, GLASS, HI_GLASS),
1001 WAND("
\94à
\92T
\8dõ
\82Ì
\8fñ",
1002 "
\83o
\83\8b\83T
\82Ì
\8fñ", 50, 150, 1, NODIR, WOOD, HI_WOOD),
1003 WAND("
\8c[
\96Ö
\82Ì
\8fñ", "
\90\85\8f»
\82Ì
\8fñ", 15, 150, 1, NODIR, GLASS, HI_GLASS),
1004 WAND("
\89ö
\95¨
\82ð
\91¢
\82é
\8fñ", "
\95\96\82Ì
\8fñ", 45, 200, 1, NODIR, WOOD, HI_WOOD),
1005 WAND("
\8aè
\82¢
\82Ì
\8fñ", "
\8f¼
\82Ì
\8fñ", 5, 500, 1, NODIR, WOOD, HI_WOOD),
1006 WAND("
\92P
\82È
\82é
\8fñ", "
\8a~
\82Ì
\8fñ", 25, 100, 0, IMMEDIATE, WOOD, HI_WOOD),
1007 WAND("
\8fÕ
\8c\82\82Ì
\8fñ", "
\8d\95\92h
\82Ì
\8fñ", 75, 150, 1, IMMEDIATE, WOOD, HI_WOOD),
1008 WAND("
\93§
\96¾
\89»
\82Ì
\8fñ", "
\91å
\97\9d\90Î
\82Ì
\8fñ", 45, 150, 1, IMMEDIATE, MINERAL, HI_MINERAL),
1009 WAND("
\8c¸
\91¬
\82Ì
\8fñ", "
\83u
\83\8a\83L
\82Ì
\8fñ", 50, 150, 1, IMMEDIATE, METAL, HI_METAL),
1010 WAND("
\89Á
\91¬
\82Ì
\8fñ", "
\90^èJ
\82Ì
\8fñ", 50, 150, 1, IMMEDIATE, COPPER, HI_COPPER),
1011 WAND("
\91h
\90¶
\82Ì
\8fñ", "
\93º
\82Ì
\8fñ", 50, 150, 1, IMMEDIATE, COPPER, HI_COPPER),
1012 WAND("
\95Ï
\89»
\82Ì
\8fñ", "
\8bâ
\82Ì
\8fñ", 45, 200, 1, IMMEDIATE, SILVER, HI_SILVER),
1013 WAND("
\96³
\97Í
\89»
\82Ì
\8fñ", "
\83v
\83\89\83`
\83i
\82Ì
\8fñ", 45, 200, 1, IMMEDIATE, PLATINUM, CLR_WHITE),
1014 WAND("
\8fu
\8aÔ
\88Ú
\93®
\82Ì
\8fñ", "
\83C
\83\8a\83W
\83E
\83\80\82Ì
\8fñ", 45, 200, 1, IMMEDIATE, METAL,
1016 WAND("
\8aJ
\8fù
\82Ì
\8fñ", "
\88\9f\89\94\82Ì
\8fñ", 25, 150, 1, IMMEDIATE, METAL, HI_METAL),
1017 WAND("
\8e{
\8fù
\82Ì
\8fñ", "
\83A
\83\8b\83~
\83j
\83E
\83\80\82Ì
\8fñ", 25, 150, 1, IMMEDIATE, METAL, HI_METAL),
1018 WAND("
\92T
\8d¸
\82·
\82é
\8fñ", "
\83E
\83\89\83j
\83E
\83\80\82Ì
\8fñ", 30, 150, 1, IMMEDIATE, METAL, HI_METAL),
1019 WAND("
\8c\8a\8c@
\82è
\82Ì
\8fñ", "
\93S
\82Ì
\8fñ", 55, 150, 1, RAY, IRON, HI_METAL),
1020 WAND("
\96î
\82Ì
\8fñ", "
\8d|
\93S
\82Ì
\8fñ", 50, 150, 1, RAY, IRON, HI_METAL),
1021 WAND("
\89\8a\82Ì
\8fñ", "
\98Z
\8ap
\8c`
\82Ì
\8fñ", 40, 175, 1, RAY, IRON, HI_METAL),
1022 WAND("
\90\81\90á
\82Ì
\8fñ", "
\92Z
\82¢
\8fñ", 40, 175, 1, RAY, IRON, HI_METAL),
1023 WAND("
\96°
\82è
\82Ì
\8fñ", "
\83\8b\81[
\83\93\95¶
\8e\9a\82Ì
\8f\91\82©
\82ê
\82½
\8fñ", 50, 175, 1, RAY, IRON, HI_METAL),
1024 WAND("
\8e\80\82Ì
\8fñ", "
\92·
\82¢
\8fñ", 5, 500, 1, RAY, IRON, HI_METAL),
1025 WAND("
\97\8b\82Ì
\8fñ", "
\8bÈ
\82Á
\82½
\8fñ", 40, 175, 1, RAY, IRON, HI_METAL),
1026 /* extra descriptions, shuffled into use at start of new game */
1027 WAND(None, "
\93ñ
\8d³
\82Ì
\8fñ", 0, 150, 1, 0, WOOD, HI_WOOD),
1028 WAND(None, "
\82
\82³
\82Ñ
\82Ì
\91Å
\82¿
\82Â
\82¯
\82ç
\82ê
\82½
\8fñ", 0, 150, 1, 0, IRON, HI_METAL),
1029 WAND(None, "
\95ó
\90Î
\82ª
\96\84\82ß
\82ç
\82ê
\82½
\8fñ", 0, 150, 1, 0, IRON, HI_MINERAL),
1032 /* coins ... - so far, gold is all there is */
1033 #define COIN(name,prob,metal,worth) \
1034 OBJECT(OBJ(name, None), \
1035 BITS(0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, P_NONE, metal), \
1036 0, COIN_CLASS, prob, 0, 1, worth, 0, 0, 0, 0, 0, HI_GOLD)
1037 COIN("
\8bà
\89Ý", 1000, GOLD, 1),
1040 /* gems ... - includes stones and rocks but not boulders */
1041 #define GEM(name,desc,prob,wt,gval,nutr,mohs,glass,color) \
1042 OBJECT(OBJ(name, desc), \
1043 BITS(0, 1, 0, 0, 0, 0, 0, 0, 0, \
1044 HARDGEM(mohs), 0, -P_SLING, glass), \
1045 0, GEM_CLASS, prob, 0, 1, gval, 3, 3, 0, 0, nutr, color)
1046 #define ROCK(name,desc,kn,prob,wt,gval,sdam,ldam,mgc,nutr,mohs,glass,color) \
1047 OBJECT(OBJ(name, desc), \
1048 BITS(kn, 1, 0, 0, mgc, 0, 0, 0, 0, \
1049 HARDGEM(mohs), 0, -P_SLING, glass), \
1050 0, GEM_CLASS, prob, 0, wt, gval, sdam, ldam, 0, 0, nutr, color)
1051 GEM("
\83f
\83B
\83\8a\83W
\83E
\83\80\82Ì
\8c\8b\8f»", "
\94\92\82¢
\90Î", 2, 1, 4500, 15, 5, GEMSTONE, CLR_WHITE),
1052 GEM("
\83_
\83C
\83\84\83\82\83\93\83h", "
\94\92\82¢
\90Î", 3, 1, 4000, 15, 10, GEMSTONE, CLR_WHITE),
1053 GEM("
\83\8b\83r
\81[", "
\90Ô
\82¢
\90Î", 4, 1, 3500, 15, 9, GEMSTONE, CLR_RED),
1054 GEM("
\9eò
\90\85\8f»", "
\9eò
\90F
\82Ì
\90Î", 3, 1, 3250, 15, 9, GEMSTONE, CLR_ORANGE),
1055 GEM("
\83T
\83t
\83@
\83C
\83A", "
\90Â
\82¢
\90Î", 4, 1, 3000, 15, 9, GEMSTONE, CLR_BLUE),
1056 GEM("
\8d\95\83I
\83p
\81[
\83\8b", "
\8d\95\82¢
\90Î", 3, 1, 2500, 15, 8, GEMSTONE, CLR_BLACK),
1057 GEM("
\83G
\83\81\83\89\83\8b\83h", "
\97Î
\82Ì
\90Î", 5, 1, 2500, 15, 8, GEMSTONE, CLR_GREEN),
1058 GEM("
\83g
\83\8b\83R
\90Î", "
\97Î
\82Ì
\90Î", 6, 1, 2000, 15, 6, GEMSTONE, CLR_GREEN),
1059 GEM("
\89©
\90\85\8f»", "
\89©
\90F
\82¢
\90Î", 4, 1, 1500, 15, 6, GEMSTONE, CLR_YELLOW),
1060 GEM("
\83A
\83N
\83A
\83}
\83\8a\83\93", "
\97Î
\82Ì
\90Î", 6, 1, 1500, 15, 8, GEMSTONE, CLR_GREEN),
1061 GEM("àæàß", "
\92\83\8a\8c\90F
\82Ì
\90Î", 8, 1, 1000, 15, 2, GEMSTONE, CLR_BROWN),
1062 GEM("
\83g
\83p
\81[
\83Y", "
\92\83\8a\8c\90F
\82Ì
\90Î", 10, 1, 900, 15, 8, GEMSTONE, CLR_BROWN),
1063 GEM("
\8d\95\8bÊ", "
\8d\95\82¢
\90Î", 6, 1, 850, 15, 7, GEMSTONE, CLR_BLACK),
1064 GEM("
\83I
\83p
\81[
\83\8b", "
\94\92\82¢
\90Î", 12, 1, 800, 15, 6, GEMSTONE, CLR_WHITE),
1065 GEM("
\8bà
\97Î
\90Î", "
\89©
\90F
\82¢
\90Î", 8, 1, 700, 15, 5, GEMSTONE, CLR_YELLOW),
1066 GEM("
\83K
\81[
\83l
\83b
\83g", "
\90Ô
\82¢
\90Î", 12, 1, 700, 15, 7, GEMSTONE, CLR_RED),
1067 GEM("
\83A
\83\81\83W
\83X
\83g", "
\8e\87\82Ì
\90Î", 14, 1, 600, 15, 7, GEMSTONE, CLR_MAGENTA),
1068 GEM("
\83W
\83\83\83X
\83p
\81[", "
\90Ô
\82¢
\90Î", 15, 1, 500, 15, 7, GEMSTONE, CLR_RED),
1069 GEM("
\83t
\83\8b\83I
\83\89\83C
\83g", "
\8e\87\82Ì
\90Î", 15, 1, 400, 15, 4, GEMSTONE, CLR_MAGENTA),
1070 GEM("
\8d\95à
\90Î", "
\8d\95\82¢
\90Î", 9, 1, 200, 15, 6, GEMSTONE, CLR_BLACK),
1071 GEM("
\82ß
\82Ì
\82¤", "
\9eò
\90F
\82Ì
\90Î", 12, 1, 200, 15, 6, GEMSTONE, CLR_ORANGE),
1072 GEM("
\82Ð
\82·
\82¢", "
\97Î
\82Ì
\90Î", 10, 1, 300, 15, 6, GEMSTONE, CLR_GREEN),
1073 GEM("
\94\92\82¢
\83K
\83\89\83X", "
\94\92\82¢
\90Î",
1074 77, 1, 0, 6, 5, GLASS, CLR_WHITE),
1075 GEM("
\90Â
\82¢
\83K
\83\89\83X", "
\90Â
\82¢
\90Î",
1076 77, 1, 0, 6, 5, GLASS, CLR_BLUE),
1077 GEM("
\90Ô
\82¢
\83K
\83\89\83X", "
\90Ô
\82¢
\90Î",
1078 77, 1, 0, 6, 5, GLASS, CLR_RED),
1079 GEM("
\92\83\8a\8c\90F
\82Ì
\83K
\83\89\83X", "
\92\83\8a\8c\90F
\82Ì
\90Î",
1080 77, 1, 0, 6, 5, GLASS, CLR_BROWN),
1081 GEM("
\9eò
\90F
\82Ì
\83K
\83\89\83X", "
\9eò
\90F
\82Ì
\90Î",
1082 76, 1, 0, 6, 5, GLASS, CLR_ORANGE),
1083 GEM("
\89©
\90F
\82Ì
\83K
\83\89\83X", "
\89©
\90F
\82¢
\90Î",
1084 77, 1, 0, 6, 5, GLASS, CLR_YELLOW),
1085 GEM("
\8d\95\90F
\82Ì
\83K
\83\89\83X", "
\8d\95\82¢
\90Î",
1086 76, 1, 0, 6, 5, GLASS, CLR_BLACK),
1087 GEM("
\97Î
\82Ì
\83K
\83\89\83X", "
\97Î
\82Ì
\90Î",
1088 77, 1, 0, 6, 5, GLASS, CLR_GREEN),
1089 GEM("
\8e\87\82Ì
\83K
\83\89\83X", "
\8e\87\82Ì
\90Î",
1090 77, 1, 0, 6, 5, GLASS, CLR_MAGENTA),
1092 /* Placement note: there is a wishable subrange for
1093 * "gray stones" in the o_ranges[] array in objnam.c
1094 * that is currently everything between luckstones and flint
1097 ROCK("
\8dK
\82¹
\82Ì
\90Î", "
\8aD
\90F
\82Ì
\95ó
\90Î", 0, 10, 10, 60, 3, 3, 1, 10, 7, MINERAL, CLR_GRAY),
1098 ROCK("
\8fd
\82µ", "
\8aD
\90F
\82Ì
\95ó
\90Î", 0, 10, 500, 1, 3, 3, 1, 10, 6, MINERAL, CLR_GRAY),
1099 ROCK("
\8e\8e\8bà
\90Î", "
\8aD
\90F
\82Ì
\95ó
\90Î", 0, 8, 10, 45, 3, 3, 1, 10, 6, MINERAL, CLR_GRAY),
1100 ROCK("
\89Î
\91Å
\82¿
\90Î", "
\8aD
\90F
\82Ì
\95ó
\90Î", 0, 10, 10, 1, 6, 6, 0, 10, 7, MINERAL, CLR_GRAY),
1101 ROCK("
\90Î", None, 1, 100, 10, 0, 3, 3, 0, 10, 7, MINERAL, CLR_GRAY),
1105 /* miscellaneous ... */
1106 /* Note: boulders and rocks are not normally created at random; the
1107 * probabilities only come into effect when you try to polymorph them.
1108 * Boulders weigh more than MAX_CARR_CAP; statues use corpsenm to take
1109 * on a specific type and may act as containers (both affect weight).
1111 OBJECT(OBJ("
\8aâ", None),
1112 BITS(1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, P_NONE, MINERAL), 0,
1113 ROCK_CLASS, 100, 0, 6000, 0, 20, 20, 0, 0, 2000, HI_MINERAL),
1114 OBJECT(OBJ("
\91\9c", None),
1115 BITS(1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, P_NONE, MINERAL), 0,
1116 ROCK_CLASS, 900, 0, 2500, 0, 20, 20, 0, 0, 2500, CLR_WHITE),
1118 OBJECT(OBJ("
\8fd
\82¢
\93S
\8b\85", None),
1119 BITS(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, WHACK, P_NONE, IRON), 0,
1120 BALL_CLASS, 1000, 0, 480, 10, 25, 25, 0, 0, 200, HI_METAL),
1121 /* +d4 when "very heavy" */
1122 OBJECT(OBJ("
\93S
\82Ì
\8d½", None),
1123 BITS(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, WHACK, P_NONE, IRON), 0,
1124 CHAIN_CLASS, 1000, 0, 120, 0, 4, 4, 0, 0, 200, HI_METAL),
1127 /* Venom is normally a transitory missile (spit by various creatures)
1128 * but can be wished for in wizard mode so could occur in bones data.
1130 OBJECT(OBJ("
\96Ó
\96Ú
\82Ì
\93Å
\89t", "
\93Å
\89t
\82Ì
\82µ
\82Ô
\82«"),
1131 BITS(0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, P_NONE, LIQUID), 0,
1132 VENOM_CLASS, 500, 0, 1, 0, 0, 0, 0, 0, 0, HI_ORGANIC),
1133 OBJECT(OBJ("
\8e_
\82Ì
\93Å
\89t", "
\93Å
\89t
\82Ì
\82µ
\82Ô
\82«"),
1134 BITS(0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, P_NONE, LIQUID), 0,
1135 VENOM_CLASS, 500, 0, 1, 0, 6, 6, 0, 0, 0, HI_ORGANIC),
1136 /* +d6 small or large */
1138 /* fencepost, the deadly Array Terminator -- name [1st arg] *must* be NULL */
1139 OBJECT(OBJ(None, None),
1140 BITS(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, P_NONE, 0), 0,
1141 ILLOBJ_CLASS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
1144 #ifndef OBJECTS_PASS_2_
1146 /* perform recursive compilation for second structure */
1149 #define OBJECTS_PASS_2_
1150 #include "objects.c"
1152 /* clang-format on */
1155 void NDECL(objects_init);
1157 /* dummy routine used to force linkage */
1164 #endif /* !OBJECTS_PASS_2_ */