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 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 * [The existing spell sorting capability could conceivably be extended
890 * to enable moving spells from beyond Z to within it, bumping others
891 * out in the process, allowing more than 52 spells be known but keeping
892 * only 52 be castable at any given time.]
894 #define SPELL(name,desc,sub,prob,delay,level,mgc,dir,color) \
895 OBJECT(OBJ(name, desc), \
896 BITS(0, 0, 0, 0, mgc, 0, 0, 0, 0, 0, dir, sub, PAPER), \
897 0, SPBOOK_CLASS, prob, delay, 50, level * 100, \
898 0, 0, 0, level, 20, color)
899 /* Spellbook description normally refers to book covers (primarily color).
900 Parchment and vellum would never be used for such, but rather than
901 eliminate those, finagle their definitions to refer to the pages
902 rather than the cover. They are made from animal skin (typically of
903 a goat or sheep) and books using them for pages generally need heavy
904 covers with straps or clamps to tightly close the book in order to
905 keep the pages flat. (However, a wooden cover might itself be covered
906 by a sheet of parchment, making this become less of an exception. Also,
907 changing the internal composition from paper to leather makes eating a
908 parchment or vellum spellbook break vegetarian conduct, as it should.) */
909 #define PAPER LEATHER /* override enum for use in SPELL() expansion */
910 SPELL("
\8c\8a\8c@
\82è
\82Ì
\96\82\96@
\8f\91", "
\97r
\94ç
\8e\86\82Ì
\96\82\96@
\8f\91",
911 P_MATTER_SPELL, 20, 6, 5, 1, RAY, HI_LEATHER),
912 SPELL("
\96î
\82Ì
\96\82\96@
\8f\91", "
\8eq
\8b\8d\94ç
\82Ì
\96\82\96@
\8f\91",
913 P_ATTACK_SPELL, 45, 2, 2, 1, RAY, HI_LEATHER),
914 #undef PAPER /* revert to normal material */
915 SPELL("
\89Î
\82Ì
\8bÊ
\82Ì
\96\82\96@
\8f\91", "
\82Ú
\82ë
\82Ú
\82ë
\82Ì
\96\82\96@
\8f\91",
916 P_ATTACK_SPELL, 20, 4, 4, 1, RAY, HI_PAPER),
917 SPELL("
\97â
\8bC
\82Ì
\96\82\96@
\8f\91", "
\83y
\81[
\83W
\82Ì
\90Ü
\82ç
\82ê
\82½
\96\82\96@
\8f\91",
918 P_ATTACK_SPELL, 10, 7, 4, 1, RAY, HI_PAPER),
919 SPELL("
\96°
\82è
\82Ì
\96\82\96@
\8f\91", "
\82Ü
\82¾
\82ç
\82Ì
\96\82\96@
\8f\91",
920 P_ENCHANTMENT_SPELL, 50, 1, 1, 1, RAY, HI_PAPER),
921 SPELL("
\8e\80\82Ì
\8ew
\82Ì
\96\82\96@
\8f\91", "
\82æ
\82²
\82ê
\82½
\96\82\96@
\8f\91",
922 P_ATTACK_SPELL, 5, 10, 7, 1, RAY, HI_PAPER),
923 SPELL("
\93\94\82è
\82Ì
\96\82\96@
\8f\91", "
\95z
\92n
\82Ì
\96\82\96@
\8f\91",
924 P_DIVINATION_SPELL, 45, 1, 1, 1, NODIR, HI_CLOTH),
925 SPELL("
\89ö
\95¨
\82ð
\92T
\82·
\96\82\96@
\8f\91", "leathery",
926 P_DIVINATION_SPELL, 43, 1, 1, 1, NODIR, HI_LEATHER),
927 SPELL("
\89ñ
\95\9c\82Ì
\96\82\96@
\8f\91", "
\94\92\82¢
\96\82\96@
\8f\91",
928 P_HEALING_SPELL, 40, 2, 1, 1, IMMEDIATE, CLR_WHITE),
929 SPELL("
\8aJ
\8fù
\82Ì
\96\82\96@
\8f\91", "
\83s
\83\93\83N
\90F
\82Ì
\96\82\96@
\8f\91",
930 P_MATTER_SPELL, 35, 1, 1, 1, IMMEDIATE, CLR_BRIGHT_MAGENTA),
931 SPELL("
\8fÕ
\8c\82\82Ì
\96\82\96@
\8f\91", "
\90Ô
\82¢
\96\82\96@
\8f\91",
932 P_ATTACK_SPELL, 35, 2, 1, 1, IMMEDIATE, CLR_RED),
933 SPELL("
\8d¬
\97\90\82Ì
\96\82\96@
\8f\91", "
\83I
\83\8c\83\93\83W
\90F
\82Ì
\96\82\96@
\8f\91",
934 P_ENCHANTMENT_SPELL, 30, 2, 2, 1, IMMEDIATE, CLR_ORANGE),
935 SPELL("
\96Ó
\96Ú
\82ð
\96ü
\82·
\96\82\96@
\8f\91", "
\89©
\90F
\82¢
\96\82\96@
\8f\91",
936 P_HEALING_SPELL, 25, 2, 2, 1, IMMEDIATE, CLR_YELLOW),
937 SPELL("
\92E
\97Í
\82Ì
\96\82\96@
\8f\91", "
\83r
\83\8d\81[
\83h
\82Ì
\96\82\96@
\8f\91",
938 P_ATTACK_SPELL, 10, 2, 2, 1, IMMEDIATE, CLR_MAGENTA),
939 SPELL("
\8b\8d\95à
\82Ì
\96\82\96@
\8f\91", "
\92W
\97Î
\90F
\82Ì
\96\82\96@
\8f\91",
940 P_ENCHANTMENT_SPELL, 30, 2, 2, 1, IMMEDIATE, CLR_BRIGHT_GREEN),
941 SPELL("
\8e{
\8fù
\82Ì
\96\82\96@
\8f\91", "
\94Z
\97Î
\90F
\82Ì
\96\82\96@
\8f\91",
942 P_MATTER_SPELL, 30, 3, 2, 1, IMMEDIATE, CLR_GREEN),
943 SPELL("
\89ö
\95¨
\82ð
\91¢
\82é
\96\82\96@
\8f\91", "
\90Â
\97Î
\90F
\82Ì
\96\82\96@
\8f\91",
944 P_CLERIC_SPELL, 35, 3, 2, 1, NODIR, CLR_BRIGHT_CYAN),
945 SPELL("
\90H
\97¿
\82ð
\92T
\82·
\96\82\96@
\8f\91", "
\83V
\83A
\83\93\90F
\82Ì
\96\82\96@
\8f\91",
946 P_DIVINATION_SPELL, 30, 3, 2, 1, NODIR, CLR_CYAN),
947 SPELL("
\8b°
\95|
\82Ì
\96\82\96@
\8f\91", "
\92W
\90Â
\82Ì
\96\82\96@
\8f\91",
948 P_ENCHANTMENT_SPELL, 25, 3, 3, 1, NODIR, CLR_BRIGHT_BLUE),
949 SPELL("
\90ç
\97¢
\8aá
\82Ì
\96\82\96@
\8f\91", "
\94Z
\90Â
\82Ì
\96\82\96@
\8f\91",
950 P_DIVINATION_SPELL, 15, 3, 3, 1, NODIR, CLR_BLUE),
951 SPELL("
\95a
\8bC
\82ð
\96ü
\82·
\96\82\96@
\8f\91", "
\97\95\90F
\82Ì
\96\82\96@
\8f\91",
952 P_HEALING_SPELL, 32, 3, 3, 1, NODIR, CLR_BLUE),
953 SPELL("
\96£
\97¹
\82Ì
\96\82\96@
\8f\91", "
\83}
\83[
\83\93\83_
\90F
\82Ì
\96\82\96@
\8f\91",
954 P_ENCHANTMENT_SPELL, 20, 3, 3, 1, IMMEDIATE, CLR_MAGENTA),
955 SPELL("
\91¬
\8dU
\82Ì
\96\82\96@
\8f\91", "
\8e\87\90F
\82Ì
\96\82\96@
\8f\91",
956 P_ESCAPE_SPELL, 33, 4, 3, 1, NODIR, CLR_MAGENTA),
957 SPELL("
\97ì
\8a´
\82Ì
\96\82\96@
\8f\91", "
\83X
\83~
\83\8c\90F
\82Ì
\96\82\96@
\8f\91",
958 P_DIVINATION_SPELL, 20, 4, 3, 1, NODIR, CLR_MAGENTA),
959 SPELL("
\95\82\97V
\82Ì
\96\82\96@
\8f\91", "
\89©
\8a\8c\90F
\82Ì
\96\82\96@
\8f\91",
960 P_ESCAPE_SPELL, 20, 4, 4, 1, NODIR, CLR_BROWN),
961 SPELL("
\92´
\89ñ
\95\9c\82Ì
\96\82\96@
\8f\91", "
\83\89\83V
\83\83\82Ì
\96\82\96@
\8f\91",
962 P_HEALING_SPELL, 27, 5, 3, 1, IMMEDIATE, CLR_GREEN),
963 SPELL("
\94\
\97Í
\89ñ
\95\9c\82Ì
\96\82\96@
\8f\91", "
\92W
\92\83\90F
\82Ì
\96\82\96@
\8f\91",
964 P_HEALING_SPELL, 25, 5, 4, 1, NODIR, CLR_BROWN),
965 SPELL("
\93§
\96¾
\82Ì
\96\82\96@
\8f\91", "
\94Z
\92\83\90F
\82Ì
\96\82\96@
\8f\91",
966 P_ESCAPE_SPELL, 25, 5, 4, 1, NODIR, CLR_BROWN),
967 SPELL("
\95ó
\82ð
\92T
\82·
\96\82\96@
\8f\91", "
\8aD
\90F
\82Ì
\96\82\96@
\8f\91",
968 P_DIVINATION_SPELL, 20, 5, 4, 1, NODIR, CLR_GRAY),
969 SPELL("
\89ð
\8eô
\82Ì
\96\82\96@
\8f\91", "
\82
\82µ
\82á
\82
\82µ
\82á
\82Ì
\96\82\96@
\8f\91",
970 P_CLERIC_SPELL, 25, 5, 3, 1, NODIR, HI_PAPER),
971 SPELL("
\92n
\90}
\82Ì
\96\82\96@
\8f\91", "
\82Ù
\82±
\82è
\82Á
\82Û
\82¢
\96\82\96@
\8f\91",
972 P_DIVINATION_SPELL, 18, 7, 5, 1, NODIR, HI_PAPER),
973 SPELL("
\8e¯
\95Ê
\82Ì
\96\82\96@
\8f\91", "
\90Â
\93º
\82Ì
\96\82\96@
\8f\91",
974 P_DIVINATION_SPELL, 20, 6, 3, 1, NODIR, HI_COPPER),
975 SPELL("
\91h
\90¶
\82Ì
\96\82\96@
\8f\91", "
\93º
\82Ì
\96\82\96@
\8f\91",
976 P_CLERIC_SPELL, 16, 8, 6, 1, IMMEDIATE, HI_COPPER),
977 SPELL("
\95Ï
\89»
\82Ì
\96\82\96@
\8f\91", "
\8bâ
\82Ì
\96\82\96@
\8f\91",
978 P_MATTER_SPELL, 10, 8, 6, 1, IMMEDIATE, HI_SILVER),
979 SPELL("
\8fu
\8aÔ
\88Ú
\93®
\82Ì
\96\82\96@
\8f\91", "
\8bà
\82Ì
\96\82\96@
\8f\91",
980 P_ESCAPE_SPELL, 15, 6, 6, 1, IMMEDIATE, HI_GOLD),
981 SPELL("
\91¢
\96\82\82Ì
\96\82\96@
\8f\91", "
\82«
\82ç
\82Ñ
\82â
\82©
\82È
\96\82\96@
\8f\91",
982 P_CLERIC_SPELL, 10, 7, 6, 1, NODIR, CLR_WHITE),
983 SPELL("
\96³
\97Í
\89»
\82Ì
\96\82\96@
\8f\91", "
\8bP
\82
\96\82\96@
\8f\91",
984 P_MATTER_SPELL, 15, 8, 7, 1, IMMEDIATE, CLR_WHITE),
985 SPELL("
\8eç
\82è
\82Ì
\96\82\96@
\8f\91", "
\89\94\90F
\82Ì
\96\82\96@
\8f\91",
986 P_CLERIC_SPELL, 18, 3, 1, 1, NODIR, HI_PAPER),
987 SPELL("
\92µ
\96ô
\82Ì
\96\82\96@
\8f\91", "
\94\96\82¢
\90F
\82Ì
\96\82\96@
\8f\91",
988 P_ESCAPE_SPELL, 20, 3, 1, 1, IMMEDIATE, HI_PAPER),
989 SPELL("
\93î
\89»
\82Ì
\96\82\96@
\8f\91", "
\94Z
\82¢
\90F
\82Ì
\96\82\96@
\8f\91",
990 P_HEALING_SPELL, 15, 1, 3, 1, IMMEDIATE, HI_PAPER),
992 /* from slash'em, create a tame critter which explodes when attacking,
993 damaging adjacent creatures--friend or foe--and dying in the process */
994 SPELL("flame sphere", "
\96\83\82Ì
\96\82\96@
\8f\91",
995 P_MATTER_SPELL, 20, 2, 1, 1, NODIR, CLR_BROWN),
996 SPELL("freeze sphere", "
\8cÅ
\82¢
\95\
\8e\86\82Ì
\96\82\96@
\8f\91",
997 P_MATTER_SPELL, 20, 2, 1, 1, NODIR, CLR_BROWN),
999 /* books with fixed descriptions
1001 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),
1002 /* tribute book for 3.6 */
1003 OBJECT(OBJ("
\8f¬
\90à", "
\83y
\81[
\83p
\81[
\83o
\83b
\83N
\82Ì
\96\82\96@
\8f\91"),
1004 BITS(0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, P_NONE, PAPER),
1005 0, SPBOOK_CLASS, 0, 0, 0, 20, 0, 0, 0, 1, 20, CLR_BRIGHT_BLUE),
1006 /* a special, one of a kind, spellbook */
1007 OBJECT(OBJ("
\8e\80\8eÒ
\82Ì
\8f\91", "
\83p
\83s
\83\8b\83X
\82Ì
\96\82\96@
\8f\91"),
1008 BITS(0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, P_NONE, PAPER),
1009 0, SPBOOK_CLASS, 0, 0, 20, 10000, 0, 0, 0, 7, 20, HI_PAPER),
1013 #define WAND(name,typ,prob,cost,mgc,dir,metal,color) \
1014 OBJECT(OBJ(name, typ), \
1015 BITS(0, 0, 1, 0, mgc, 1, 0, 0, 0, 0, dir, P_NONE, metal), \
1016 0, WAND_CLASS, prob, 0, 7, cost, 0, 0, 0, 0, 30, color)
1017 WAND("
\93\94\82è
\82Ì
\8fñ", "
\83K
\83\89\83X
\82Ì
\8fñ", 95, 100, 1, NODIR, GLASS, HI_GLASS),
1018 WAND("
\94à
\92T
\8dõ
\82Ì
\8fñ",
1019 "
\83o
\83\8b\83T
\82Ì
\8fñ", 50, 150, 1, NODIR, WOOD, HI_WOOD),
1020 WAND("
\8c[
\96Ö
\82Ì
\8fñ", "
\90\85\8f»
\82Ì
\8fñ", 15, 150, 1, NODIR, GLASS, HI_GLASS),
1021 WAND("
\89ö
\95¨
\82ð
\91¢
\82é
\8fñ", "
\95\96\82Ì
\8fñ", 45, 200, 1, NODIR, WOOD, HI_WOOD),
1022 WAND("
\8aè
\82¢
\82Ì
\8fñ", "
\8f¼
\82Ì
\8fñ", 5, 500, 1, NODIR, WOOD, HI_WOOD),
1023 WAND("
\92P
\82È
\82é
\8fñ", "
\8a~
\82Ì
\8fñ", 25, 100, 0, IMMEDIATE, WOOD, HI_WOOD),
1024 WAND("
\8fÕ
\8c\82\82Ì
\8fñ", "
\8d\95\92h
\82Ì
\8fñ", 75, 150, 1, IMMEDIATE, WOOD, HI_WOOD),
1025 WAND("
\93§
\96¾
\89»
\82Ì
\8fñ", "
\91å
\97\9d\90Î
\82Ì
\8fñ", 45, 150, 1, IMMEDIATE, MINERAL, HI_MINERAL),
1026 WAND("
\8c¸
\91¬
\82Ì
\8fñ", "
\83u
\83\8a\83L
\82Ì
\8fñ", 50, 150, 1, IMMEDIATE, METAL, HI_METAL),
1027 WAND("
\89Á
\91¬
\82Ì
\8fñ", "
\90^èJ
\82Ì
\8fñ", 50, 150, 1, IMMEDIATE, COPPER, HI_COPPER),
1028 WAND("
\91h
\90¶
\82Ì
\8fñ", "
\93º
\82Ì
\8fñ", 50, 150, 1, IMMEDIATE, COPPER, HI_COPPER),
1029 WAND("
\95Ï
\89»
\82Ì
\8fñ", "
\8bâ
\82Ì
\8fñ", 45, 200, 1, IMMEDIATE, SILVER, HI_SILVER),
1030 WAND("
\96³
\97Í
\89»
\82Ì
\8fñ", "
\83v
\83\89\83`
\83i
\82Ì
\8fñ", 45, 200, 1, IMMEDIATE, PLATINUM, CLR_WHITE),
1031 WAND("
\8fu
\8aÔ
\88Ú
\93®
\82Ì
\8fñ", "
\83C
\83\8a\83W
\83E
\83\80\82Ì
\8fñ", 45, 200, 1, IMMEDIATE, METAL,
1033 WAND("
\8aJ
\8fù
\82Ì
\8fñ", "
\88\9f\89\94\82Ì
\8fñ", 25, 150, 1, IMMEDIATE, METAL, HI_METAL),
1034 WAND("
\8e{
\8fù
\82Ì
\8fñ", "
\83A
\83\8b\83~
\83j
\83E
\83\80\82Ì
\8fñ", 25, 150, 1, IMMEDIATE, METAL, HI_METAL),
1035 WAND("
\92T
\8d¸
\82·
\82é
\8fñ", "
\83E
\83\89\83j
\83E
\83\80\82Ì
\8fñ", 30, 150, 1, IMMEDIATE, METAL, HI_METAL),
1036 WAND("
\8c\8a\8c@
\82è
\82Ì
\8fñ", "
\93S
\82Ì
\8fñ", 55, 150, 1, RAY, IRON, HI_METAL),
1037 WAND("
\96î
\82Ì
\8fñ", "
\8d|
\93S
\82Ì
\8fñ", 50, 150, 1, RAY, IRON, HI_METAL),
1038 WAND("
\89\8a\82Ì
\8fñ", "
\98Z
\8ap
\8c`
\82Ì
\8fñ", 40, 175, 1, RAY, IRON, HI_METAL),
1039 WAND("
\90\81\90á
\82Ì
\8fñ", "
\92Z
\82¢
\8fñ", 40, 175, 1, RAY, IRON, HI_METAL),
1040 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),
1041 WAND("
\8e\80\82Ì
\8fñ", "
\92·
\82¢
\8fñ", 5, 500, 1, RAY, IRON, HI_METAL),
1042 WAND("
\97\8b\82Ì
\8fñ", "
\8bÈ
\82Á
\82½
\8fñ", 40, 175, 1, RAY, IRON, HI_METAL),
1043 /* extra descriptions, shuffled into use at start of new game */
1044 WAND(None, "
\93ñ
\8d³
\82Ì
\8fñ", 0, 150, 1, 0, WOOD, HI_WOOD),
1045 WAND(None, "
\82
\82³
\82Ñ
\82Ì
\91Å
\82¿
\82Â
\82¯
\82ç
\82ê
\82½
\8fñ", 0, 150, 1, 0, IRON, HI_METAL),
1046 WAND(None, "
\95ó
\90Î
\82ª
\96\84\82ß
\82ç
\82ê
\82½
\8fñ", 0, 150, 1, 0, IRON, HI_MINERAL),
1049 /* coins ... - so far, gold is all there is */
1050 #define COIN(name,prob,metal,worth) \
1051 OBJECT(OBJ(name, None), \
1052 BITS(0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, P_NONE, metal), \
1053 0, COIN_CLASS, prob, 0, 1, worth, 0, 0, 0, 0, 0, HI_GOLD)
1054 COIN("
\8bà
\89Ý", 1000, GOLD, 1),
1057 /* gems ... - includes stones and rocks but not boulders */
1058 #define GEM(name,desc,prob,wt,gval,nutr,mohs,glass,color) \
1059 OBJECT(OBJ(name, desc), \
1060 BITS(0, 1, 0, 0, 0, 0, 0, 0, 0, \
1061 HARDGEM(mohs), 0, -P_SLING, glass), \
1062 0, GEM_CLASS, prob, 0, 1, gval, 3, 3, 0, 0, nutr, color)
1063 #define ROCK(name,desc,kn,prob,wt,gval,sdam,ldam,mgc,nutr,mohs,glass,color) \
1064 OBJECT(OBJ(name, desc), \
1065 BITS(kn, 1, 0, 0, mgc, 0, 0, 0, 0, \
1066 HARDGEM(mohs), 0, -P_SLING, glass), \
1067 0, GEM_CLASS, prob, 0, wt, gval, sdam, ldam, 0, 0, nutr, color)
1068 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),
1069 GEM("
\83_
\83C
\83\84\83\82\83\93\83h", "
\94\92\82¢
\90Î", 3, 1, 4000, 15, 10, GEMSTONE, CLR_WHITE),
1070 GEM("
\83\8b\83r
\81[", "
\90Ô
\82¢
\90Î", 4, 1, 3500, 15, 9, GEMSTONE, CLR_RED),
1071 GEM("
\9eò
\90\85\8f»", "
\9eò
\90F
\82Ì
\90Î", 3, 1, 3250, 15, 9, GEMSTONE, CLR_ORANGE),
1072 GEM("
\83T
\83t
\83@
\83C
\83A", "
\90Â
\82¢
\90Î", 4, 1, 3000, 15, 9, GEMSTONE, CLR_BLUE),
1073 GEM("
\8d\95\83I
\83p
\81[
\83\8b", "
\8d\95\82¢
\90Î", 3, 1, 2500, 15, 8, GEMSTONE, CLR_BLACK),
1074 GEM("
\83G
\83\81\83\89\83\8b\83h", "
\97Î
\82Ì
\90Î", 5, 1, 2500, 15, 8, GEMSTONE, CLR_GREEN),
1075 GEM("
\83g
\83\8b\83R
\90Î", "
\97Î
\82Ì
\90Î", 6, 1, 2000, 15, 6, GEMSTONE, CLR_GREEN),
1076 GEM("
\89©
\90\85\8f»", "
\89©
\90F
\82¢
\90Î", 4, 1, 1500, 15, 6, GEMSTONE, CLR_YELLOW),
1077 GEM("
\83A
\83N
\83A
\83}
\83\8a\83\93", "
\97Î
\82Ì
\90Î", 6, 1, 1500, 15, 8, GEMSTONE, CLR_GREEN),
1078 GEM("àæàß", "
\92\83\8a\8c\90F
\82Ì
\90Î", 8, 1, 1000, 15, 2, GEMSTONE, CLR_BROWN),
1079 GEM("
\83g
\83p
\81[
\83Y", "
\92\83\8a\8c\90F
\82Ì
\90Î", 10, 1, 900, 15, 8, GEMSTONE, CLR_BROWN),
1080 GEM("
\8d\95\8bÊ", "
\8d\95\82¢
\90Î", 6, 1, 850, 15, 7, GEMSTONE, CLR_BLACK),
1081 GEM("
\83I
\83p
\81[
\83\8b", "
\94\92\82¢
\90Î", 12, 1, 800, 15, 6, GEMSTONE, CLR_WHITE),
1082 GEM("
\8bà
\97Î
\90Î", "
\89©
\90F
\82¢
\90Î", 8, 1, 700, 15, 5, GEMSTONE, CLR_YELLOW),
1083 GEM("
\83K
\81[
\83l
\83b
\83g", "
\90Ô
\82¢
\90Î", 12, 1, 700, 15, 7, GEMSTONE, CLR_RED),
1084 GEM("
\83A
\83\81\83W
\83X
\83g", "
\8e\87\82Ì
\90Î", 14, 1, 600, 15, 7, GEMSTONE, CLR_MAGENTA),
1085 GEM("
\83W
\83\83\83X
\83p
\81[", "
\90Ô
\82¢
\90Î", 15, 1, 500, 15, 7, GEMSTONE, CLR_RED),
1086 GEM("
\83t
\83\8b\83I
\83\89\83C
\83g", "
\8e\87\82Ì
\90Î", 15, 1, 400, 15, 4, GEMSTONE, CLR_MAGENTA),
1087 GEM("
\8d\95à
\90Î", "
\8d\95\82¢
\90Î", 9, 1, 200, 15, 6, GEMSTONE, CLR_BLACK),
1088 GEM("
\82ß
\82Ì
\82¤", "
\9eò
\90F
\82Ì
\90Î", 12, 1, 200, 15, 6, GEMSTONE, CLR_ORANGE),
1089 GEM("
\82Ð
\82·
\82¢", "
\97Î
\82Ì
\90Î", 10, 1, 300, 15, 6, GEMSTONE, CLR_GREEN),
1090 GEM("
\94\92\82¢
\83K
\83\89\83X", "
\94\92\82¢
\90Î",
1091 77, 1, 0, 6, 5, GLASS, CLR_WHITE),
1092 GEM("
\90Â
\82¢
\83K
\83\89\83X", "
\90Â
\82¢
\90Î",
1093 77, 1, 0, 6, 5, GLASS, CLR_BLUE),
1094 GEM("
\90Ô
\82¢
\83K
\83\89\83X", "
\90Ô
\82¢
\90Î",
1095 77, 1, 0, 6, 5, GLASS, CLR_RED),
1096 GEM("
\92\83\8a\8c\90F
\82Ì
\83K
\83\89\83X", "
\92\83\8a\8c\90F
\82Ì
\90Î",
1097 77, 1, 0, 6, 5, GLASS, CLR_BROWN),
1098 GEM("
\9eò
\90F
\82Ì
\83K
\83\89\83X", "
\9eò
\90F
\82Ì
\90Î",
1099 76, 1, 0, 6, 5, GLASS, CLR_ORANGE),
1100 GEM("
\89©
\90F
\82Ì
\83K
\83\89\83X", "
\89©
\90F
\82¢
\90Î",
1101 77, 1, 0, 6, 5, GLASS, CLR_YELLOW),
1102 GEM("
\8d\95\90F
\82Ì
\83K
\83\89\83X", "
\8d\95\82¢
\90Î",
1103 76, 1, 0, 6, 5, GLASS, CLR_BLACK),
1104 GEM("
\97Î
\82Ì
\83K
\83\89\83X", "
\97Î
\82Ì
\90Î",
1105 77, 1, 0, 6, 5, GLASS, CLR_GREEN),
1106 GEM("
\8e\87\82Ì
\83K
\83\89\83X", "
\8e\87\82Ì
\90Î",
1107 77, 1, 0, 6, 5, GLASS, CLR_MAGENTA),
1109 /* Placement note: there is a wishable subrange for
1110 * "gray stones" in the o_ranges[] array in objnam.c
1111 * that is currently everything between luckstones and flint
1114 ROCK("
\8dK
\82¹
\82Ì
\90Î", "
\8aD
\90F
\82Ì
\95ó
\90Î", 0, 10, 10, 60, 3, 3, 1, 10, 7, MINERAL, CLR_GRAY),
1115 ROCK("
\8fd
\82µ", "
\8aD
\90F
\82Ì
\95ó
\90Î", 0, 10, 500, 1, 3, 3, 1, 10, 6, MINERAL, CLR_GRAY),
1116 ROCK("
\8e\8e\8bà
\90Î", "
\8aD
\90F
\82Ì
\95ó
\90Î", 0, 8, 10, 45, 3, 3, 1, 10, 6, MINERAL, CLR_GRAY),
1117 ROCK("
\89Î
\91Å
\82¿
\90Î", "
\8aD
\90F
\82Ì
\95ó
\90Î", 0, 10, 10, 1, 6, 6, 0, 10, 7, MINERAL, CLR_GRAY),
1118 ROCK("
\90Î", None, 1, 100, 10, 0, 3, 3, 0, 10, 7, MINERAL, CLR_GRAY),
1122 /* miscellaneous ... */
1123 /* Note: boulders and rocks are not normally created at random; the
1124 * probabilities only come into effect when you try to polymorph them.
1125 * Boulders weigh more than MAX_CARR_CAP; statues use corpsenm to take
1126 * on a specific type and may act as containers (both affect weight).
1128 OBJECT(OBJ("
\8aâ", None),
1129 BITS(1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, P_NONE, MINERAL), 0,
1130 ROCK_CLASS, 100, 0, 6000, 0, 20, 20, 0, 0, 2000, HI_MINERAL),
1131 OBJECT(OBJ("
\91\9c", None),
1132 BITS(1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, P_NONE, MINERAL), 0,
1133 ROCK_CLASS, 900, 0, 2500, 0, 20, 20, 0, 0, 2500, CLR_WHITE),
1135 OBJECT(OBJ("
\8fd
\82¢
\93S
\8b\85", None),
1136 BITS(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, WHACK, P_NONE, IRON), 0,
1137 BALL_CLASS, 1000, 0, 480, 10, 25, 25, 0, 0, 200, HI_METAL),
1138 /* +d4 when "very heavy" */
1139 OBJECT(OBJ("
\93S
\82Ì
\8d½", None),
1140 BITS(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, WHACK, P_NONE, IRON), 0,
1141 CHAIN_CLASS, 1000, 0, 120, 0, 4, 4, 0, 0, 200, HI_METAL),
1144 /* Venom is normally a transitory missile (spit by various creatures)
1145 * but can be wished for in wizard mode so could occur in bones data.
1147 OBJECT(OBJ("
\96Ó
\96Ú
\82Ì
\93Å
\89t", "
\93Å
\89t
\82Ì
\82µ
\82Ô
\82«"),
1148 BITS(0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, P_NONE, LIQUID), 0,
1149 VENOM_CLASS, 500, 0, 1, 0, 0, 0, 0, 0, 0, HI_ORGANIC),
1150 OBJECT(OBJ("
\8e_
\82Ì
\93Å
\89t", "
\93Å
\89t
\82Ì
\82µ
\82Ô
\82«"),
1151 BITS(0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, P_NONE, LIQUID), 0,
1152 VENOM_CLASS, 500, 0, 1, 0, 6, 6, 0, 0, 0, HI_ORGANIC),
1153 /* +d6 small or large */
1155 /* fencepost, the deadly Array Terminator -- name [1st arg] *must* be NULL */
1156 OBJECT(OBJ(None, None),
1157 BITS(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, P_NONE, 0), 0,
1158 ILLOBJ_CLASS, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
1161 #ifndef OBJECTS_PASS_2_
1163 /* perform recursive compilation for second structure */
1166 #define OBJECTS_PASS_2_
1167 #include "objects.c"
1169 /* clang-format on */
1172 void NDECL(objects_init);
1174 /* dummy routine used to force linkage */
1181 #endif /* !OBJECTS_PASS_2_ */