OSDN Git Service

[Refactor] #37353 重傷の治癒の効果をcure_serious_wounds()にまとめる。
[hengband/hengband.git] / src / realm-arcane.c
1 #include "angband.h"\r
2 #include "cmd-spell.h"\r
3 \r
4 /*!\r
5 * @brief \94é\8fp\97Ì\88æ\96\82\96@\82Ì\8ae\8f\88\97\9d\82ð\8ds\82¤\r
6 * @param spell \96\82\96@ID\r
7 * @param mode \8f\88\97\9d\93à\97e (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST)\r
8 * @return SPELL_NAME / SPELL_DESC / SPELL_INFO \8e\9e\82É\82Í\95\8e\9a\97ñ\83|\83C\83\93\83^\82ð\95Ô\82·\81BSPELL_CAST\8e\9e\82ÍNULL\95\8e\9a\97ñ\82ð\95Ô\82·\81B\r
9 */\r
10 cptr do_arcane_spell(SPELL_IDX spell, BIT_FLAGS mode)\r
11 {\r
12         bool name = (mode == SPELL_NAME) ? TRUE : FALSE;\r
13         bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;\r
14         bool info = (mode == SPELL_INFO) ? TRUE : FALSE;\r
15         bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;\r
16 \r
17         int dir;\r
18         int plev = p_ptr->lev;\r
19 \r
20         switch (spell)\r
21         {\r
22         case 0:\r
23                 if (name) return _("\93d\8c\82", "Zap");\r
24                 if (desc) return _("\93d\8c\82\82Ì\83{\83\8b\83g\82à\82µ\82­\82Í\83r\81[\83\80\82ð\95ú\82Â\81B", "Fires a bolt or beam of lightning.");\r
25 \r
26                 {\r
27                         int dice = 3 + (plev - 1) / 5;\r
28                         int sides = 3;\r
29 \r
30                         if (info) return info_damage(dice, sides, 0);\r
31 \r
32                         if (cast)\r
33                         {\r
34                                 if (!get_aim_dir(&dir)) return NULL;\r
35 \r
36                                 fire_bolt_or_beam(beam_chance() - 10, GF_ELEC, dir, damroll(dice, sides));\r
37                         }\r
38                 }\r
39                 break;\r
40 \r
41         case 1:\r
42                 if (name) return _("\96\82\96@\82Ì\8e{\8fù", "Wizard Lock");\r
43                 if (desc) return _("\94à\82É\8c®\82ð\82©\82¯\82é\81B", "Locks a door.");\r
44 \r
45                 {\r
46                         if (cast)\r
47                         {\r
48                                 if (!get_aim_dir(&dir)) return NULL;\r
49 \r
50                                 wizard_lock(dir);\r
51                         }\r
52                 }\r
53                 break;\r
54 \r
55         case 2:\r
56                 if (name) return _("\93§\96¾\91Ì\8a´\92m", "Detect Invisibility");\r
57                 if (desc) return _("\8bß\82­\82Ì\93§\96¾\82È\83\82\83\93\83X\83^\81[\82ð\8a´\92m\82·\82é\81B", "Detects all invisible monsters in your vicinity.");\r
58 \r
59                 {\r
60                         int rad = DETECT_RAD_DEFAULT;\r
61 \r
62                         if (info) return info_radius(rad);\r
63 \r
64                         if (cast)\r
65                         {\r
66                                 detect_monsters_invis(rad);\r
67                         }\r
68                 }\r
69                 break;\r
70 \r
71         case 3:\r
72                 if (name) return _("\83\82\83\93\83X\83^\81[\8a´\92m", "Detect Monsters");\r
73                 if (desc) return _("\8bß\82­\82Ì\91S\82Ä\82Ì\8c©\82¦\82é\83\82\83\93\83X\83^\81[\82ð\8a´\92m\82·\82é\81B", "Detects all monsters in your vicinity unless invisible.");\r
74 \r
75                 {\r
76                         int rad = DETECT_RAD_DEFAULT;\r
77 \r
78                         if (info) return info_radius(rad);\r
79 \r
80                         if (cast)\r
81                         {\r
82                                 detect_monsters_normal(rad);\r
83                         }\r
84                 }\r
85                 break;\r
86 \r
87         case 4:\r
88                 if (name) return _("\83V\83\87\81[\83g\81E\83e\83\8c\83|\81[\83g", "Blink");\r
89                 if (desc) return _("\8bß\8b\97\97£\82Ì\83e\83\8c\83|\81[\83g\82ð\82·\82é\81B", "Teleport short distance.");\r
90 \r
91                 {\r
92                         POSITION range = 10;\r
93 \r
94                         if (info) return info_range(range);\r
95 \r
96                         if (cast)\r
97                         {\r
98                                 teleport_player(range, 0L);\r
99                         }\r
100                 }\r
101                 break;\r
102 \r
103         case 5:\r
104                 if (name) return _("\83\89\83C\83g\81E\83G\83\8a\83A", "Light Area");\r
105                 if (desc) return _("\8cõ\8c¹\82ª\8fÆ\82ç\82µ\82Ä\82¢\82é\94Í\88Í\82©\95\94\89®\91S\91Ì\82ð\89i\8bv\82É\96¾\82é\82­\82·\82é\81B", "Lights up nearby area and the inside of a room permanently.");\r
106 \r
107                 {\r
108                         int dice = 2;\r
109                         int sides = plev / 2;\r
110                         int rad = plev / 10 + 1;\r
111 \r
112                         if (info) return info_damage(dice, sides, 0);\r
113 \r
114                         if (cast)\r
115                         {\r
116                                 lite_area(damroll(dice, sides), rad);\r
117                         }\r
118                 }\r
119                 break;\r
120 \r
121         case 6:\r
122                 if (name) return _("ã©\82Æ\94à \94j\89ó", "Trap & Door Destruction");\r
123                 if (desc) return _("\88ê\92¼\90ü\8fã\82Ì\91S\82Ä\82Ìã©\82Æ\94à\82ð\94j\89ó\82·\82é\81B", "Fires a beam which destroy traps and doors.");\r
124 \r
125                 {\r
126                         if (cast)\r
127                         {\r
128                                 if (!get_aim_dir(&dir)) return NULL;\r
129 \r
130                                 destroy_door(dir);\r
131                         }\r
132                 }\r
133                 break;\r
134 \r
135         case 7:\r
136                 if (name) return _("\8cy\8f\9d\82Ì\8e¡\96ü", "Cure Light Wounds");\r
137                 if (desc) return _("\89ö\89ä\82Æ\91Ì\97Í\82ð\8f­\82µ\89ñ\95\9c\82³\82¹\82é\81B", "Heals cut and HP a little.");\r
138 \r
139                 {\r
140                         int dice = 2;\r
141                         int sides = 8;\r
142 \r
143                         if (info) return info_heal(dice, sides, 0);\r
144                         if (cast) (void)cure_light_wound(dice, sides);\r
145                 }\r
146                 break;\r
147 \r
148         case 8:\r
149                 if (name) return _("ã©\82Æ\94à \8a´\92m", "Detect Doors & Traps");\r
150                 if (desc) return _("\8bß\82­\82Ì\91S\82Ä\82Ìã©\82Æ\94à\82Æ\8aK\92i\82ð\8a´\92m\82·\82é\81B", "Detects traps, doors, and stairs in your vicinity.");\r
151 \r
152                 {\r
153                         int rad = DETECT_RAD_DEFAULT;\r
154 \r
155                         if (info) return info_radius(rad);\r
156 \r
157                         if (cast)\r
158                         {\r
159                                 detect_traps(rad, TRUE);\r
160                                 detect_doors(rad);\r
161                                 detect_stairs(rad);\r
162                         }\r
163                 }\r
164                 break;\r
165 \r
166         case 9:\r
167                 if (name) return _("\94R\91f", "Phlogiston");\r
168                 if (desc) return _("\8cõ\8c¹\82É\94R\97¿\82ð\95â\8b\8b\82·\82é\81B", "Adds more turns of light to a lantern or torch.");\r
169 \r
170                 {\r
171                         if (cast)\r
172                         {\r
173                                 phlogiston();\r
174                         }\r
175                 }\r
176                 break;\r
177 \r
178         case 10:\r
179                 if (name) return _("\8dà\95ó\8a´\92m", "Detect Treasure");\r
180                 if (desc) return _("\8bß\82­\82Ì\8dà\95ó\82ð\8a´\92m\82·\82é\81B", "Detects all treasures in your vicinity.");\r
181 \r
182                 {\r
183                         int rad = DETECT_RAD_DEFAULT;\r
184 \r
185                         if (info) return info_radius(rad);\r
186 \r
187                         if (cast)\r
188                         {\r
189                                 detect_treasure(rad);\r
190                                 detect_objects_gold(rad);\r
191                         }\r
192                 }\r
193                 break;\r
194 \r
195         case 11:\r
196                 if (name) return _("\96\82\96\8a´\92m", "Detect Enchantment");\r
197                 if (desc) return _("\8bß\82­\82Ì\96\82\96@\82ª\82©\82©\82Á\82½\83A\83C\83e\83\80\82ð\8a´\92m\82·\82é\81B", "Detects all magical items in your vicinity.");\r
198 \r
199                 {\r
200                         int rad = DETECT_RAD_DEFAULT;\r
201 \r
202                         if (info) return info_radius(rad);\r
203 \r
204                         if (cast)\r
205                         {\r
206                                 detect_objects_magic(rad);\r
207                         }\r
208                 }\r
209                 break;\r
210 \r
211         case 12:\r
212                 if (name) return _("\83A\83C\83e\83\80\8a´\92m", "Detect Objects");\r
213                 if (desc) return _("\8bß\82­\82Ì\91S\82Ä\82Ì\83A\83C\83e\83\80\82ð\8a´\92m\82·\82é\81B", "Detects all items in your vicinity.");\r
214 \r
215                 {\r
216                         int rad = DETECT_RAD_DEFAULT;\r
217 \r
218                         if (info) return info_radius(rad);\r
219 \r
220                         if (cast)\r
221                         {\r
222                                 detect_objects_normal(rad);\r
223                         }\r
224                 }\r
225                 break;\r
226 \r
227         case 13:\r
228                 if (name) return _("\89ð\93Å", "Cure Poison");\r
229                 if (desc) return _("\93Å\82ð\91Ì\93à\82©\82ç\8a®\91S\82É\8eæ\82è\8f\9c\82­\81B", "Cures poison status.");\r
230 \r
231                 {\r
232                         if (cast)\r
233                         {\r
234                                 set_poisoned(0);\r
235                         }\r
236                 }\r
237                 break;\r
238 \r
239         case 14:\r
240                 if (name) return _("\91Ï\97â", "Resist Cold");\r
241                 if (desc) return _("\88ê\92è\8e\9e\8aÔ\81A\97â\8bC\82Ö\82Ì\91Ï\90«\82ð\93¾\82é\81B\91\95\94õ\82É\82æ\82é\91Ï\90«\82É\97Ý\90Ï\82·\82é\81B", "Gives resistance to cold. This resistance can be added to which from equipment for more powerful resistance.");\r
242 \r
243                 {\r
244                         int base = 20;\r
245 \r
246                         if (info) return info_duration(base, base);\r
247 \r
248                         if (cast)\r
249                         {\r
250                                 set_oppose_cold(randint1(base) + base, FALSE);\r
251                         }\r
252                 }\r
253                 break;\r
254 \r
255         case 15:\r
256                 if (name) return _("\91Ï\89Î", "Resist Fire");\r
257                 if (desc) return _("\88ê\92è\8e\9e\8aÔ\81A\89\8a\82Ö\82Ì\91Ï\90«\82ð\93¾\82é\81B\91\95\94õ\82É\82æ\82é\91Ï\90«\82É\97Ý\90Ï\82·\82é\81B",\r
258                         "Gives resistance to fire. This resistance can be added to which from equipment for more powerful resistance.");\r
259 \r
260                 {\r
261                         int base = 20;\r
262 \r
263                         if (info) return info_duration(base, base);\r
264 \r
265                         if (cast)\r
266                         {\r
267                                 set_oppose_fire(randint1(base) + base, FALSE);\r
268                         }\r
269                 }\r
270                 break;\r
271 \r
272         case 16:\r
273                 if (name) return _("\91Ï\93d", "Resist Lightning");\r
274                 if (desc) return _("\88ê\92è\8e\9e\8aÔ\81A\93d\8c\82\82Ö\82Ì\91Ï\90«\82ð\93¾\82é\81B\91\95\94õ\82É\82æ\82é\91Ï\90«\82É\97Ý\90Ï\82·\82é\81B",\r
275                         "Gives resistance to electricity. This resistance can be added to which from equipment for more powerful resistance.");\r
276 \r
277                 {\r
278                         int base = 20;\r
279 \r
280                         if (info) return info_duration(base, base);\r
281 \r
282                         if (cast)\r
283                         {\r
284                                 set_oppose_elec(randint1(base) + base, FALSE);\r
285                         }\r
286                 }\r
287                 break;\r
288 \r
289         case 17:\r
290                 if (name) return _("\91Ï\8e_", "Resist Acid");\r
291                 if (desc) return _("\88ê\92è\8e\9e\8aÔ\81A\8e_\82Ö\82Ì\91Ï\90«\82ð\93¾\82é\81B\91\95\94õ\82É\82æ\82é\91Ï\90«\82É\97Ý\90Ï\82·\82é\81B",\r
292                         "Gives resistance to acid. This resistance can be added to which from equipment for more powerful resistance.");\r
293 \r
294                 {\r
295                         int base = 20;\r
296 \r
297                         if (info) return info_duration(base, base);\r
298 \r
299                         if (cast)\r
300                         {\r
301                                 set_oppose_acid(randint1(base) + base, FALSE);\r
302                         }\r
303                 }\r
304                 break;\r
305 \r
306         case 18:\r
307                 if (name) return _("\8fd\8f\9d\82Ì\8e¡\96ü", "Cure Medium Wounds");\r
308                 if (desc) return _("\89ö\89ä\82Æ\91Ì\97Í\82ð\92\86\92ö\93x\89ñ\95\9c\82³\82¹\82é\81B", "Heals cut and HP more.");\r
309 \r
310                 {\r
311                         int dice = 4;\r
312                         int sides = 8;\r
313 \r
314                         if (info) return info_heal(dice, sides, 0);\r
315                         if (cast) (void)cure_serious_wound(4, 8);\r
316                 }\r
317                 break;\r
318 \r
319         case 19:\r
320                 if (name) return _("\83e\83\8c\83|\81[\83g", "Teleport");\r
321                 if (desc) return _("\89\93\8b\97\97£\82Ì\83e\83\8c\83|\81[\83g\82ð\82·\82é\81B", "Teleport long distance.");\r
322 \r
323                 {\r
324                         POSITION range = plev * 5;\r
325 \r
326                         if (info) return info_range(range);\r
327 \r
328                         if (cast)\r
329                         {\r
330                                 teleport_player(range, 0L);\r
331                         }\r
332                 }\r
333                 break;\r
334 \r
335         case 20:\r
336                 if (name) return _("\8aÓ\92è", "Identify");\r
337                 if (desc) return _("\83A\83C\83e\83\80\82ð\8e¯\95Ê\82·\82é\81B", "Identifies an item.");\r
338 \r
339                 {\r
340                         if (cast)\r
341                         {\r
342                                 if (!ident_spell(FALSE)) return NULL;\r
343                         }\r
344                 }\r
345                 break;\r
346 \r
347         case 21:\r
348                 if (name) return _("\8aâ\90Î\97n\89ð", "Stone to Mud");\r
349                 if (desc) return _("\95Ç\82ð\97n\82©\82µ\82Ä\8f°\82É\82·\82é\81B", "Turns one rock square to mud.");\r
350 \r
351                 {\r
352                         int dice = 1;\r
353                         int sides = 30;\r
354                         int base = 20;\r
355 \r
356                         if (info) return info_damage(dice, sides, base);\r
357 \r
358                         if (cast)\r
359                         {\r
360                                 if (!get_aim_dir(&dir)) return NULL;\r
361 \r
362                                 wall_to_mud(dir, 20 + randint1(30));\r
363                         }\r
364                 }\r
365                 break;\r
366 \r
367         case 22:\r
368                 if (name) return _("\91M\8cõ", "Ray of Light");\r
369                 if (desc) return _("\8cõ\90ü\82ð\95ú\82Â\81B\8cõ\82è\82ð\8c\99\82¤\83\82\83\93\83X\83^\81[\82É\8cø\89Ê\82ª\82 \82é\81B", "Fires a beam of light which damages to light-sensitive monsters.");\r
370 \r
371                 {\r
372                         int dice = 6;\r
373                         int sides = 8;\r
374 \r
375                         if (info) return info_damage(dice, sides, 0);\r
376 \r
377                         if (cast)\r
378                         {\r
379                                 if (!get_aim_dir(&dir)) return NULL;\r
380 \r
381                                 msg_print(_("\8cõ\90ü\82ª\95ú\82½\82ê\82½\81B", "A line of light appears."));\r
382                                 lite_line(dir, damroll(6, 8));\r
383                         }\r
384                 }\r
385                 break;\r
386 \r
387         case 23:\r
388                 if (name) return _("\8bó\95 \8f[\91«", "Satisfy Hunger");\r
389                 if (desc) return _("\96\9e\95 \82É\82·\82é\81B", "Satisfies hunger.");\r
390 \r
391                 {\r
392                         if (cast)\r
393                         {\r
394                                 set_food(PY_FOOD_MAX - 1);\r
395                         }\r
396                 }\r
397                 break;\r
398 \r
399         case 24:\r
400                 if (name) return _("\93§\96¾\8e\8b\94F", "See Invisible");\r
401                 if (desc) return _("\88ê\92è\8e\9e\8aÔ\81A\93§\96¾\82È\82à\82Ì\82ª\8c©\82¦\82é\82æ\82¤\82É\82È\82é\81B", "Gives see invisible for a while.");\r
402 \r
403                 {\r
404                         int base = 24;\r
405 \r
406                         if (info) return info_duration(base, base);\r
407 \r
408                         if (cast)\r
409                         {\r
410                                 set_tim_invis(randint1(base) + base, FALSE);\r
411                         }\r
412                 }\r
413                 break;\r
414 \r
415         case 25:\r
416                 if (name) return _("\83G\83\8c\83\81\83\93\83^\83\8b\8f¢\8a«", "Conjure Elemental");\r
417                 if (desc) return _("1\91Ì\82Ì\83G\83\8c\83\81\83\93\83^\83\8b\82ð\8f¢\8a«\82·\82é\81B", "Summons an elemental.");\r
418 \r
419                 {\r
420                         if (cast)\r
421                         {\r
422                                 if (!summon_specific(-1, p_ptr->y, p_ptr->x, plev, SUMMON_ELEMENTAL, (PM_ALLOW_GROUP | PM_FORCE_PET)))\r
423                                 {\r
424                                         msg_print(_("\83G\83\8c\83\81\83\93\83^\83\8b\82Í\8c»\82ê\82È\82©\82Á\82½\81B", "No Elementals arrive."));\r
425                                 }\r
426                         }\r
427                 }\r
428                 break;\r
429 \r
430         case 26:\r
431                 if (name) return _("\83e\83\8c\83|\81[\83g\81E\83\8c\83x\83\8b", "Teleport Level");\r
432                 if (desc) return _("\8fu\8e\9e\82É\8fã\82©\89º\82Ì\8aK\82É\83e\83\8c\83|\81[\83g\82·\82é\81B", "Teleport to up or down stairs in a moment.");\r
433 \r
434                 {\r
435                         if (cast)\r
436                         {\r
437                                 if (!get_check(_("\96{\93\96\82É\91¼\82Ì\8aK\82É\83e\83\8c\83|\81[\83g\82µ\82Ü\82·\82©\81H", "Are you sure? (Teleport Level)"))) return NULL;\r
438                                 teleport_level(0);\r
439                         }\r
440                 }\r
441                 break;\r
442 \r
443         case 27:\r
444                 if (name) return _("\83e\83\8c\83|\81[\83g\81E\83\82\83\93\83X\83^\81[", "Teleport Away");\r
445                 if (desc) return _("\83\82\83\93\83X\83^\81[\82ð\83e\83\8c\83|\81[\83g\82³\82¹\82é\83r\81[\83\80\82ð\95ú\82Â\81B\92ï\8dR\82³\82ê\82é\82Æ\96³\8cø\81B", "Teleports all monsters on the line away unless resisted.");\r
446 \r
447                 {\r
448                         int power = plev;\r
449 \r
450                         if (info) return info_power(power);\r
451 \r
452                         if (cast)\r
453                         {\r
454                                 if (!get_aim_dir(&dir)) return NULL;\r
455 \r
456                                 fire_beam(GF_AWAY_ALL, dir, power);\r
457                         }\r
458                 }\r
459                 break;\r
460 \r
461         case 28:\r
462                 if (name) return _("\8c³\91f\82Ì\8b\85", "Elemental Ball");\r
463                 if (desc) return _("\89\8a\81A\93d\8c\82\81A\97â\8bC\81A\8e_\82Ì\82Ç\82ê\82©\82Ì\8b\85\82ð\95ú\82Â\81B", "Fires a ball of some elements.");\r
464 \r
465                 {\r
466                         HIT_POINT dam = 75 + plev;\r
467                         int rad = 2;\r
468 \r
469                         if (info) return info_damage(0, 0, dam);\r
470 \r
471                         if (cast)\r
472                         {\r
473                                 int type;\r
474 \r
475                                 if (!get_aim_dir(&dir)) return NULL;\r
476 \r
477                                 switch (randint1(4))\r
478                                 {\r
479                                 case 1:  type = GF_FIRE; break;\r
480                                 case 2:  type = GF_ELEC; break;\r
481                                 case 3:  type = GF_COLD; break;\r
482                                 default: type = GF_ACID; break;\r
483                                 }\r
484 \r
485                                 fire_ball(type, dir, dam, rad);\r
486                         }\r
487                 }\r
488                 break;\r
489 \r
490         case 29:\r
491                 if (name) return _("\91S\8a´\92m", "Detection");\r
492                 if (desc) return _("\8bß\82­\82Ì\91S\82Ä\82Ì\83\82\83\93\83X\83^\81[\81Aã©\81A\94à\81A\8aK\92i\81A\8dà\95ó\81A\82»\82µ\82Ä\83A\83C\83e\83\80\82ð\8a´\92m\82·\82é\81B",\r
493                         "Detects all monsters, traps, doors, stairs, treasures and items in your vicinity.");\r
494 \r
495                 {\r
496                         int rad = DETECT_RAD_DEFAULT;\r
497 \r
498                         if (info) return info_radius(rad);\r
499 \r
500                         if (cast)\r
501                         {\r
502                                 detect_all(rad);\r
503                         }\r
504                 }\r
505                 break;\r
506 \r
507         case 30:\r
508                 if (name) return _("\8bA\8aÒ\82Ì\8eô\95¶", "Word of Recall");\r
509                 if (desc) return _("\92n\8fã\82É\82¢\82é\82Æ\82«\82Í\83_\83\93\83W\83\87\83\93\82Ì\8dÅ\90[\8aK\82Ö\81A\83_\83\93\83W\83\87\83\93\82É\82¢\82é\82Æ\82«\82Í\92n\8fã\82Ö\82Æ\88Ú\93®\82·\82é\81B",\r
510                         "Recalls player from dungeon to town, or from town to the deepest level of dungeon.");\r
511 \r
512                 {\r
513                         int base = 15;\r
514                         int sides = 20;\r
515 \r
516                         if (info) return info_delay(base, sides);\r
517 \r
518                         if (cast)\r
519                         {\r
520                                 if (!word_of_recall()) return NULL;\r
521                         }\r
522                 }\r
523                 break;\r
524 \r
525         case 31:\r
526                 if (name) return _("\90ç\97¢\8aá", "Clairvoyance");\r
527                 if (desc) return _("\82»\82Ì\8aK\91S\91Ì\82ð\89i\8bv\82É\8fÆ\82ç\82µ\81A\83_\83\93\83W\83\87\83\93\93à\82·\82×\82Ä\82Ì\83A\83C\83e\83\80\82ð\8a´\92m\82·\82é\81B\82³\82ç\82É\81A\88ê\92è\8e\9e\8aÔ\83e\83\8c\83p\83V\81[\94\\97Í\82ð\93¾\82é\81B",\r
528                         "Maps and lights whole dungeon level. Knows all objects location. And gives telepathy for a while.");\r
529 \r
530                 {\r
531                         int base = 25;\r
532                         int sides = 30;\r
533 \r
534                         if (info) return info_duration(base, sides);\r
535 \r
536                         if (cast)\r
537                         {\r
538                                 chg_virtue(V_KNOWLEDGE, 1);\r
539                                 chg_virtue(V_ENLIGHTEN, 1);\r
540 \r
541                                 wiz_lite(FALSE);\r
542 \r
543                                 if (!p_ptr->telepathy)\r
544                                 {\r
545                                         set_tim_esp(randint1(sides) + base, FALSE);\r
546                                 }\r
547                         }\r
548                 }\r
549                 break;\r
550         }\r
551 \r
552         return "";\r
553 }\r