3 @brief ËâË¡¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Èȯư / Purpose: Do everything for each spell
6 2013 Deskull rearranged comment for Doxygen.
14 * ËâË¡¤Î¸ú²Ì¤ò¡Ö¥¥ã¥×¥·¥ç¥ó:¥À¥¤¥¹¡ÜÄê¿ôÃ͡פΥե©¡¼¥Þ¥Ã¥È¤Ç½ÐÎϤ¹¤ë / Generate dice info string such as "foo 2d10"
15 * @param str ¥¥ã¥×¥·¥ç¥ó
16 * @param dice ¥À¥¤¥¹¿ô
17 * @param sides ¥À¥¤¥¹ÌÜ
19 * @return ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë½¾¤¤À°·Á¤µ¤ì¤¿Ê¸»úÎó
21 static cptr info_string_dice(cptr str, int dice, int sides, int base)
25 return format("%s%d", str, base);
29 return format("%s%dd%d", str, dice, sides);
31 /* Dice plus base value */
33 return format("%s%dd%d%+d", str, dice, sides, base);
38 * @brief ËâË¡¤Ë¤è¤ë¥À¥á¡¼¥¸¤ò½ÐÎϤ¹¤ë / Generate damage-dice info string such as "dam 2d10"
39 * @param dice ¥À¥¤¥¹¿ô
40 * @param sides ¥À¥¤¥¹ÌÜ
42 * @return ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë½¾¤¤À°·Á¤µ¤ì¤¿Ê¸»úÎó
44 static cptr info_damage(int dice, int sides, int base)
47 return info_string_dice("»½ý:", dice, sides, base);
49 return info_string_dice("dam ", dice, sides, base);
54 * @brief ËâË¡¤Î¸ú²Ì»þ´Ö¤ò½ÐÎϤ¹¤ë / Generate duration info string such as "dur 20+1d20"
56 * @param sides ¥À¥¤¥¹ÌÜ
57 * @return ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë½¾¤¤À°·Á¤µ¤ì¤¿Ê¸»úÎó
59 static cptr info_duration(int base, int sides)
62 return format("´ü´Ö:%d+1d%d", base, sides);
64 return format("dur %d+1d%d", base, sides);
69 * @brief ËâË¡¤Î¸ú²ÌÈϰϤò½ÐÎϤ¹¤ë / Generate range info string such as "range 5"
70 * @param range ¸ú²ÌÈÏ°Ï
71 * @return ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë½¾¤¤À°·Á¤µ¤ì¤¿Ê¸»úÎó
73 static cptr info_range(int range)
76 return format("ÈÏ°Ï:%d", range);
78 return format("range %d", range);
83 * @brief ËâË¡¤Ë¤è¤ë²óÉüÎ̤ò½ÐÎϤ¹¤ë / Generate heal info string such as "heal 2d8"
84 * @param dice ¥À¥¤¥¹¿ô
85 * @param sides ¥À¥¤¥¹ÌÜ
87 * @return ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë½¾¤¤À°·Á¤µ¤ì¤¿Ê¸»úÎó
89 static cptr info_heal(int dice, int sides, int base)
92 return info_string_dice("²óÉü:", dice, sides, base);
94 return info_string_dice("heal ", dice, sides, base);
99 * @brief ËâË¡¸ú²Ìȯư¤Þ¤Ç¤ÎÃٱ䥿¡¼¥ó¤ò½ÐÎϤ¹¤ë / Generate delay info string such as "delay 15+1d15"
101 * @param sides ¥À¥¤¥¹ÌÜ
102 * @return ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë½¾¤¤À°·Á¤µ¤ì¤¿Ê¸»úÎó
104 static cptr info_delay(int base, int sides)
107 return format("ÃÙ±ä:%d+1d%d", base, sides);
109 return format("delay %d+1d%d", base, sides);
115 * @brief ËâË¡¤Ë¤è¤ë¥À¥á¡¼¥¸¤ò½ÐÎϤ¹¤ë(¸ÇÄêÃÍ¡õÊ£¿ô²ó½èÍý) / Generate multiple-damage info string such as "dam 25 each"
117 * @return ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë½¾¤¤À°·Á¤µ¤ì¤¿Ê¸»úÎó
119 static cptr info_multi_damage(int dam)
122 return format("»½ý:³Æ%d", dam);
124 return format("dam %d each", dam);
130 * @brief ËâË¡¤Ë¤è¤ë¥À¥á¡¼¥¸¤ò½ÐÎϤ¹¤ë(¥À¥¤¥¹¤Î¤ß¡õÊ£¿ô²ó½èÍý) / Generate multiple-damage-dice info string such as "dam 5d2 each"
131 * @param dice ¥À¥¤¥¹¿ô
132 * @param sides ¥À¥¤¥¹ÌÜ
133 * @return ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë½¾¤¤À°·Á¤µ¤ì¤¿Ê¸»úÎó
135 static cptr info_multi_damage_dice(int dice, int sides)
138 return format("»½ý:³Æ%dd%d", dice, sides);
140 return format("dam %dd%d each", dice, sides);
145 * @brief ËâË¡¤Ë¤è¤ë°ìÈÌŪ¤Ê¸úÎÏÃͤò½ÐÎϤ¹¤ë¡Ê¸ÇÄêÃÍ¡Ë / Generate power info string such as "power 100"
146 * @param power ¸ÇÄêÃÍ
147 * @return ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë½¾¤¤À°·Á¤µ¤ì¤¿Ê¸»úÎó
149 static cptr info_power(int power)
152 return format("¸úÎÏ:%d", power);
154 return format("power %d", power);
160 * @brief ËâË¡¤Ë¤è¤ë°ìÈÌŪ¤Ê¸úÎÏÃͤò½ÐÎϤ¹¤ë¡Ê¥À¥¤¥¹ÃÍ¡Ë / Generate power info string such as "power 100"
161 * @param dice ¥À¥¤¥¹¿ô
162 * @param sides ¥À¥¤¥¹ÌÜ
163 * @return ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë½¾¤¤À°·Á¤µ¤ì¤¿Ê¸»úÎó
166 * Generate power info string such as "power 1d100"
168 static cptr info_power_dice(int dice, int sides)
171 return format("¸úÎÏ:%dd%d", dice, sides);
173 return format("power %dd%d", dice, sides);
179 * @brief ËâË¡¤Î¸ú²ÌȾ·Â¤ò½ÐÎϤ¹¤ë / Generate radius info string such as "rad 100"
180 * @param rad ¸ú²ÌȾ·Â
181 * @return ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë½¾¤¤À°·Á¤µ¤ì¤¿Ê¸»úÎó
183 static cptr info_radius(int rad)
186 return format("Ⱦ·Â:%d", rad);
188 return format("rad %d", rad);
194 * @brief ËâË¡¸ú²Ì¤Î¸Â³¦½ÅÎ̤ò½ÐÎϤ¹¤ë / Generate weight info string such as "max wgt 15"
195 * @param weight ºÇÂç½ÅÎÌ
196 * @return ¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë½¾¤¤À°·Á¤µ¤ì¤¿Ê¸»úÎó
198 static cptr info_weight(int weight)
201 return format("ºÇÂç½ÅÎÌ:%d.%dkg", lbtokg1(weight), lbtokg2(weight));
203 return format("max wgt %d", weight/10);
209 * Prepare standard probability to become beam for fire_bolt_or_beam()
211 static int beam_chance(void)
213 if (p_ptr->pclass == CLASS_MAGE)
215 if (p_ptr->pclass == CLASS_HIGH_MAGE || p_ptr->pclass == CLASS_SORCERER)
216 return p_ptr->lev + 10;
218 return p_ptr->lev / 2;
223 * Handle summoning and failure of trump spells
225 static bool trump_summoning(int num, bool pet, int y, int x, int lev, int type, u32b mode)
227 int plev = p_ptr->lev;
231 bool success = FALSE;
234 if (!lev) lev = plev * 2 / 3 + randint1(plev / 2);
239 mode |= PM_FORCE_PET;
241 /* Only sometimes allow unique monster */
242 if (mode & PM_ALLOW_UNIQUE)
245 if (randint1(50 + plev) >= plev / 10)
246 mode &= ~PM_ALLOW_UNIQUE;
249 /* Player is who summons */
254 /* Prevent taming, allow unique monster */
257 /* Behave as if they appear by themselfs */
261 for (i = 0; i < num; i++)
263 if (summon_specific(who, y, x, lev, type, mode))
270 msg_print("ï¤â¤¢¤Ê¤¿¤Î¥«¡¼¥É¤Î¸Æ¤ÓÀ¼¤ËÅú¤¨¤Ê¤¤¡£");
272 msg_print("Nobody answers to your Trump call.");
281 * This spell should become more useful (more controlled) as the
282 * player gains experience levels. Thus, add 1/5 of the player's
283 * level to the die roll. This eliminates the worst effects later on,
284 * while keeping the results quite random. It also allows some potent
285 * effects only at high level.
287 static void cast_wonder(int dir)
289 int plev = p_ptr->lev;
290 int die = randint1(100) + plev / 5;
291 int vir = virtue_number(V_CHANCE);
295 if (p_ptr->virtues[vir - 1] > 0)
297 while (randint1(400) < p_ptr->virtues[vir - 1]) die++;
301 while (randint1(400) < (0-p_ptr->virtues[vir - 1])) die--;
306 chg_virtue(V_CHANCE, 1);
311 msg_print("¤¢¤Ê¤¿¤ÏÎϤ¬¤ß¤Ê¤®¤ë¤Î¤ò´¶¤¸¤¿¡ª");
313 msg_print("You feel a surge of power!");
317 if (die < 8) clone_monster(dir);
318 else if (die < 14) speed_monster(dir, plev);
319 else if (die < 26) heal_monster(dir, damroll(4, 6));
320 else if (die < 31) poly_monster(dir, plev);
322 fire_bolt_or_beam(beam_chance() - 10, GF_MISSILE, dir,
323 damroll(3 + ((plev - 1) / 5), 4));
324 else if (die < 41) confuse_monster(dir, plev);
325 else if (die < 46) fire_ball(GF_POIS, dir, 20 + (plev / 2), 3);
326 else if (die < 51) (void)lite_line(dir, damroll(6, 8));
328 fire_bolt_or_beam(beam_chance() - 10, GF_ELEC, dir,
329 damroll(3 + ((plev - 5) / 4), 8));
331 fire_bolt_or_beam(beam_chance() - 10, GF_COLD, dir,
332 damroll(5 + ((plev - 5) / 4), 8));
334 fire_bolt_or_beam(beam_chance(), GF_ACID, dir,
335 damroll(6 + ((plev - 5) / 4), 8));
337 fire_bolt_or_beam(beam_chance(), GF_FIRE, dir,
338 damroll(8 + ((plev - 5) / 4), 8));
339 else if (die < 76) drain_life(dir, 75);
340 else if (die < 81) fire_ball(GF_ELEC, dir, 30 + plev / 2, 2);
341 else if (die < 86) fire_ball(GF_ACID, dir, 40 + plev, 2);
342 else if (die < 91) fire_ball(GF_ICE, dir, 70 + plev, 3);
343 else if (die < 96) fire_ball(GF_FIRE, dir, 80 + plev, 3);
344 else if (die < 101) drain_life(dir, 100 + plev);
347 earthquake(py, px, 12);
351 (void)destroy_area(py, px, 13 + randint0(5), FALSE);
355 symbol_genocide(plev+50, TRUE);
357 else if (die < 110) dispel_monsters(120);
360 dispel_monsters(150);
362 sleep_monsters(plev);
368 static void cast_invoke_spirits(int dir)
370 int plev = p_ptr->lev;
371 int die = randint1(100) + plev / 5;
372 int vir = virtue_number(V_CHANCE);
376 if (p_ptr->virtues[vir - 1] > 0)
378 while (randint1(400) < p_ptr->virtues[vir - 1]) die++;
382 while (randint1(400) < (0-p_ptr->virtues[vir - 1])) die--;
387 msg_print("¤¢¤Ê¤¿¤Ï»à¼Ô¤¿¤Á¤ÎÎϤò¾·½¸¤·¤¿...");
389 msg_print("You call on the power of the dead...");
392 chg_virtue(V_CHANCE, 1);
397 msg_print("¤¢¤Ê¤¿¤Ï¤ª¤É¤í¤ª¤É¤í¤·¤¤ÎϤΤ¦¤Í¤ê¤ò´¶¤¸¤¿¡ª");
399 msg_print("You feel a surge of eldritch force!");
407 msg_print("¤Ê¤ó¤Æ¤³¤Ã¤¿¡ª¤¢¤Ê¤¿¤Î¼þ¤ê¤ÎÃÏÌ̤«¤éµà¤Á¤¿¿Í±Æ¤¬Î©¤Á¾å¤¬¤Ã¤Æ¤¤¿¡ª");
409 msg_print("Oh no! Mouldering forms rise from the earth around you!");
412 (void)summon_specific(0, py, px, dun_level, SUMMON_UNDEAD, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
413 chg_virtue(V_UNLIFE, 1);
418 msg_print("̾¾õ¤·Æñ¤¤¼Ù°¤Ê¸ºß¤¬¤¢¤Ê¤¿¤Î¿´¤òÄ̤ê²á¤®¤Æ¹Ô¤Ã¤¿...");
420 msg_print("An unnamable evil brushes against your mind...");
423 set_afraid(p_ptr->afraid + randint1(4) + 4);
428 msg_print("¤¢¤Ê¤¿¤ÎƬ¤ËÂçÎ̤ÎÍ©Î¤Á¤ÎÁû¡¹¤·¤¤À¼¤¬²¡¤·´ó¤»¤Æ¤¤¿...");
430 msg_print("Your head is invaded by a horde of gibbering spectral voices...");
433 set_confused(p_ptr->confused + randint1(4) + 4);
437 poly_monster(dir, plev);
441 fire_bolt_or_beam(beam_chance() - 10, GF_MISSILE, dir,
442 damroll(3 + ((plev - 1) / 5), 4));
446 confuse_monster (dir, plev);
450 fire_ball(GF_POIS, dir, 20 + (plev / 2), 3);
454 (void)lite_line(dir, damroll(6, 8));
458 fire_bolt_or_beam(beam_chance() - 10, GF_ELEC, dir,
459 damroll(3+((plev-5)/4),8));
463 fire_bolt_or_beam(beam_chance() - 10, GF_COLD, dir,
464 damroll(5+((plev-5)/4),8));
468 fire_bolt_or_beam(beam_chance(), GF_ACID, dir,
469 damroll(6+((plev-5)/4),8));
473 fire_bolt_or_beam(beam_chance(), GF_FIRE, dir,
474 damroll(8+((plev-5)/4),8));
482 fire_ball(GF_ELEC, dir, 30 + plev / 2, 2);
486 fire_ball(GF_ACID, dir, 40 + plev, 2);
490 fire_ball(GF_ICE, dir, 70 + plev, 3);
494 fire_ball(GF_FIRE, dir, 80 + plev, 3);
498 drain_life(dir, 100 + plev);
502 earthquake(py, px, 12);
506 (void)destroy_area(py, px, 13 + randint0(5), FALSE);
510 symbol_genocide(plev+50, TRUE);
514 dispel_monsters(120);
518 dispel_monsters(150);
520 sleep_monsters(plev);
527 msg_print("±¢±µ¤ÊÀ¼¤¬¥¯¥¹¥¯¥¹¾Ð¤¦¡£¡Ö¤â¤¦¤¹¤°¤ª¤Þ¤¨¤Ï²æ¡¹¤ÎÃç´Ö¤Ë¤Ê¤ë¤À¤í¤¦¡£¼å¤¼Ô¤è¡£¡×");
529 msg_print("Sepulchral voices chuckle. 'Soon you will join us, mortal.'");
535 static void wild_magic(int spell)
538 int type = SUMMON_BIZARRE1 + randint0(6);
540 if (type < SUMMON_BIZARRE1) type = SUMMON_BIZARRE1;
541 else if (type > SUMMON_BIZARRE6) type = SUMMON_BIZARRE6;
543 switch (randint1(spell) + randint1(8) + 1)
548 teleport_player(10, TELEPORT_PASSIVE);
553 teleport_player(100, TELEPORT_PASSIVE);
557 teleport_player(200, TELEPORT_PASSIVE);
567 lite_area(damroll(2, 3), 2);
570 destroy_doors_touch();
575 sleep_monsters_touch();
579 trap_creation(py, px);
588 aggravate_monsters(0);
591 earthquake(py, px, 5);
595 (void)gain_random_mutation(0);
605 fire_ball(GF_CHAOS, 0, spell + 5, 1 + (spell / 10));
612 while (counter++ < 8)
614 (void)summon_specific(0, py, px, (dun_level * 3) / 2, type, (PM_ALLOW_GROUP | PM_NO_PET));
619 activate_hi_summon(py, px, FALSE);
622 (void)summon_cyber(-1, py, px);
627 (void)activate_ty_curse(FALSE, &count);
634 static void cast_shuffle(void)
636 int plev = p_ptr->lev;
639 int vir = virtue_number(V_CHANCE);
642 /* Card sharks and high mages get a level bonus */
643 if ((p_ptr->pclass == CLASS_ROGUE) ||
644 (p_ptr->pclass == CLASS_HIGH_MAGE) ||
645 (p_ptr->pclass == CLASS_SORCERER))
646 die = (randint1(110)) + plev / 5;
653 if (p_ptr->virtues[vir - 1] > 0)
655 while (randint1(400) < p_ptr->virtues[vir - 1]) die++;
659 while (randint1(400) < (0-p_ptr->virtues[vir - 1])) die--;
664 msg_print("¤¢¤Ê¤¿¤Ï¥«¡¼¥É¤òÀڤäưìËç°ú¤¤¤¿...");
666 msg_print("You shuffle the deck and draw a card...");
670 chg_virtue(V_CHANCE, 1);
675 msg_print("¤Ê¤ó¤Æ¤³¤Ã¤¿¡ª¡Ô»à¡Õ¤À¡ª");
677 msg_print("Oh no! It's Death!");
680 for (i = 0; i < randint1(3); i++)
681 activate_hi_summon(py, px, FALSE);
686 msg_print("¤Ê¤ó¤Æ¤³¤Ã¤¿¡ª¡Ô°Ëâ¡Õ¤À¡ª");
688 msg_print("Oh no! It's the Devil!");
691 summon_specific(0, py, px, dun_level, SUMMON_DEMON, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
697 msg_print("¤Ê¤ó¤Æ¤³¤Ã¤¿¡ª¡ÔÄߤé¤ì¤¿ÃË¡Õ¤À¡ª");
699 msg_print("Oh no! It's the Hanged Man.");
702 activate_ty_curse(FALSE, &count);
707 msg_print("¡ÔÉÔĴϤηõ¡Õ¤À¡£");
709 msg_print("It's the swords of discord.");
712 aggravate_monsters(0);
717 msg_print("¡Ô¶ò¼Ô¡Õ¤À¡£");
719 msg_print("It's the Fool.");
728 msg_print("´ñ̯¤Ê¥â¥ó¥¹¥¿¡¼¤Î³¨¤À¡£");
730 msg_print("It's the picture of a strange monster.");
733 trump_summoning(1, FALSE, py, px, (dun_level * 3 / 2), (32 + randint1(6)), PM_ALLOW_GROUP | PM_ALLOW_UNIQUE);
738 msg_print("¡Ô·î¡Õ¤À¡£");
740 msg_print("It's the Moon.");
748 msg_print("¡Ô±¿Ì¿¤ÎÎØ¡Õ¤À¡£");
750 msg_print("It's the Wheel of Fortune.");
753 wild_magic(randint0(32));
758 msg_print("¥Æ¥ì¥Ý¡¼¥È¡¦¥«¡¼¥É¤À¡£");
760 msg_print("It's a teleport trump card.");
763 teleport_player(10, TELEPORT_PASSIVE);
768 msg_print("¡ÔÀµµÁ¡Õ¤À¡£");
770 msg_print("It's Justice.");
773 set_blessed(p_ptr->lev, FALSE);
778 msg_print("¥Æ¥ì¥Ý¡¼¥È¡¦¥«¡¼¥É¤À¡£");
780 msg_print("It's a teleport trump card.");
783 teleport_player(100, TELEPORT_PASSIVE);
788 msg_print("¥Æ¥ì¥Ý¡¼¥È¡¦¥«¡¼¥É¤À¡£");
790 msg_print("It's a teleport trump card.");
793 teleport_player(200, TELEPORT_PASSIVE);
798 msg_print("¡ÔÅã¡Õ¤À¡£");
800 msg_print("It's the Tower.");
808 msg_print("¡ÔÀáÀ©¡Õ¤À¡£");
810 msg_print("It's Temperance.");
813 sleep_monsters_touch();
818 msg_print("¡ÔÅã¡Õ¤À¡£");
820 msg_print("It's the Tower.");
823 earthquake(py, px, 5);
828 msg_print("ͧ¹¥Åª¤Ê¥â¥ó¥¹¥¿¡¼¤Î³¨¤À¡£");
830 msg_print("It's the picture of a friendly monster.");
833 trump_summoning(1, TRUE, py, px, (dun_level * 3 / 2), SUMMON_BIZARRE1, 0L);
838 msg_print("ͧ¹¥Åª¤Ê¥â¥ó¥¹¥¿¡¼¤Î³¨¤À¡£");
840 msg_print("It's the picture of a friendly monster.");
843 trump_summoning(1, TRUE, py, px, (dun_level * 3 / 2), SUMMON_BIZARRE2, 0L);
848 msg_print("ͧ¹¥Åª¤Ê¥â¥ó¥¹¥¿¡¼¤Î³¨¤À¡£");
850 msg_print("It's the picture of a friendly monster.");
853 trump_summoning(1, TRUE, py, px, (dun_level * 3 / 2), SUMMON_BIZARRE4, 0L);
858 msg_print("ͧ¹¥Åª¤Ê¥â¥ó¥¹¥¿¡¼¤Î³¨¤À¡£");
860 msg_print("It's the picture of a friendly monster.");
863 trump_summoning(1, TRUE, py, px, (dun_level * 3 / 2), SUMMON_BIZARRE5, 0L);
868 msg_print("¡ÔÎø¿Í¡Õ¤À¡£");
870 msg_print("It's the Lovers.");
873 if (get_aim_dir(&dir))
874 charm_monster(dir, MIN(p_ptr->lev, 20));
879 msg_print("¡Ô±£¼Ô¡Õ¤À¡£");
881 msg_print("It's the Hermit.");
889 msg_print("¡Ô¿³È½¡Õ¤À¡£");
891 msg_print("It's the Judgement.");
894 do_cmd_rerate(FALSE);
895 if (p_ptr->muta1 || p_ptr->muta2 || p_ptr->muta3)
898 msg_print("Á´¤Æ¤ÎÆÍÁ³ÊÑ°Û¤¬¼£¤Ã¤¿¡£");
900 msg_print("You are cured of all mutations.");
903 p_ptr->muta1 = p_ptr->muta2 = p_ptr->muta3 = 0;
904 p_ptr->update |= PU_BONUS;
911 msg_print("¡ÔÂÀÍÛ¡Õ¤À¡£");
913 msg_print("It's the Sun.");
916 chg_virtue(V_KNOWLEDGE, 1);
917 chg_virtue(V_ENLIGHTEN, 1);
923 msg_print("¡ÔÀ¤³¦¡Õ¤À¡£");
925 msg_print("It's the World.");
928 if (p_ptr->exp < PY_MAX_EXP)
930 s32b ee = (p_ptr->exp / 25) + 1;
931 if (ee > 5000) ee = 5000;
933 msg_print("¹¹¤Ë·Ð¸³¤òÀѤó¤À¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£");
935 msg_print("You feel more experienced.");
945 * Drop 10+1d10 meteor ball at random places near the player
947 static void cast_meteor(int dam, int rad)
950 int b = 10 + randint1(10);
952 for (i = 0; i < b; i++)
957 for (count = 0; count <= 20; count++)
961 x = px - 8 + randint0(17);
962 y = py - 8 + randint0(17);
964 dx = (px > x) ? (px - x) : (x - px);
965 dy = (py > y) ? (py - y) : (y - py);
967 /* Approximate distance */
968 d = (dy > dx) ? (dy + (dx >> 1)) : (dx + (dy >> 1));
970 if (d >= 9) continue;
972 if (!in_bounds(y, x) || !projectable(py, px, y, x)
973 || !cave_have_flag_bold(y, x, FF_PROJECT)) continue;
979 if (count > 20) continue;
981 project(0, rad, y, x, dam, GF_METEOR, PROJECT_KILL | PROJECT_JUMP | PROJECT_ITEM, -1);
987 * Drop 10+1d10 disintegration ball at random places near the target
989 static bool cast_wrath_of_the_god(int dam, int rad)
994 int b = 10 + randint1(10);
996 if (!get_aim_dir(&dir)) return FALSE;
998 /* Use the given direction */
999 tx = px + 99 * ddx[dir];
1000 ty = py + 99 * ddy[dir];
1002 /* Hack -- Use an actual "target" */
1003 if ((dir == 5) && target_okay())
1014 /* Hack -- Stop at the target */
1015 if ((y == ty) && (x == tx)) break;
1019 mmove2(&ny, &nx, py, px, ty, tx);
1021 /* Stop at maximum range */
1022 if (MAX_RANGE <= distance(py, px, ny, nx)) break;
1024 /* Stopped by walls/doors */
1025 if (!cave_have_flag_bold(ny, nx, FF_PROJECT)) break;
1027 /* Stopped by monsters */
1028 if ((dir != 5) && cave[ny][nx].m_idx != 0) break;
1030 /* Save the new location */
1037 for (i = 0; i < b; i++)
1039 int count = 20, d = 0;
1045 x = tx - 5 + randint0(11);
1046 y = ty - 5 + randint0(11);
1048 dx = (tx > x) ? (tx - x) : (x - tx);
1049 dy = (ty > y) ? (ty - y) : (y - ty);
1051 /* Approximate distance */
1052 d = (dy > dx) ? (dy + (dx >> 1)) : (dx + (dy >> 1));
1053 /* Within the radius */
1057 if (count < 0) continue;
1059 /* Cannot penetrate perm walls */
1060 if (!in_bounds(y,x) ||
1061 cave_stop_disintegration(y,x) ||
1062 !in_disintegration_range(ty, tx, y, x))
1065 project(0, rad, y, x, dam, GF_DISINTEGRATE, PROJECT_JUMP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL, -1);
1073 * An "item_tester_hook" for offer
1075 static bool item_tester_offer(object_type *o_ptr)
1077 /* Flasks of oil are okay */
1078 if (o_ptr->tval != TV_CORPSE) return (FALSE);
1080 if (o_ptr->sval != SV_CORPSE) return (FALSE);
1082 if (my_strchr("pht", r_info[o_ptr->pval].d_char)) return (TRUE);
1084 /* Assume not okay */
1090 * Daemon spell Summon Greater Demon
1092 static bool cast_summon_greater_demon(void)
1094 int plev = p_ptr->lev;
1100 item_tester_hook = item_tester_offer;
1102 q = "¤É¤Î»àÂΤòÊû¤²¤Þ¤¹¤«? ";
1103 s = "Êû¤²¤é¤ì¤ë»àÂΤò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£";
1105 q = "Sacrifice which corpse? ";
1106 s = "You have nothing to scrifice.";
1108 if (!get_item(&item, q, s, (USE_INVEN | USE_FLOOR))) return FALSE;
1110 /* Get the item (in the pack) */
1113 o_ptr = &inventory[item];
1116 /* Get the item (on the floor) */
1119 o_ptr = &o_list[0 - item];
1122 summon_lev = plev * 2 / 3 + r_info[o_ptr->pval].level;
1124 if (summon_specific(-1, py, px, summon_lev, SUMMON_HI_DEMON, (PM_ALLOW_GROUP | PM_FORCE_PET)))
1127 msg_print("ⲫ¤Î°½¤¬½¼Ëþ¤·¤¿¡£");
1129 msg_print("The area fills with a stench of sulphur and brimstone.");
1134 msg_print("¡Ö¤´ÍѤǤ´¤¶¤¤¤Þ¤¹¤«¡¢¤´¼ç¿ÍÍÍ¡×");
1136 msg_print("'What is thy bidding... Master?'");
1139 /* Decrease the item (from the pack) */
1142 inven_item_increase(item, -1);
1143 inven_item_describe(item);
1144 inven_item_optimize(item);
1147 /* Decrease the item (from the floor) */
1150 floor_item_increase(0 - item, -1);
1151 floor_item_describe(0 - item);
1152 floor_item_optimize(0 - item);
1158 msg_print("°Ëâ¤Ï¸½¤ì¤Ê¤«¤Ã¤¿¡£");
1160 msg_print("No Greater Demon arrive.");
1169 * Start singing if the player is a Bard
1171 static void start_singing(int spell, int song)
1173 /* Remember the song index */
1174 p_ptr->magic_num1[0] = song;
1176 /* Remember the index of the spell which activated the song */
1177 p_ptr->magic_num2[0] = spell;
1180 /* Now the player is singing */
1181 set_action(ACTION_SING);
1184 /* Recalculate bonuses */
1185 p_ptr->update |= (PU_BONUS);
1187 /* Redraw status bar */
1188 p_ptr->redraw |= (PR_STATUS);
1193 * Stop singing if the player is a Bard
1195 void stop_singing(void)
1197 if (p_ptr->pclass != CLASS_BARD) return;
1199 /* Are there interupted song? */
1200 if (p_ptr->magic_num1[1])
1202 /* Forget interupted song */
1203 p_ptr->magic_num1[1] = 0;
1207 /* The player is singing? */
1208 if (!p_ptr->magic_num1[0]) return;
1210 /* Hack -- if called from set_action(), avoid recursive loop */
1211 if (p_ptr->action == ACTION_SING) set_action(ACTION_NONE);
1213 /* Message text of each song or etc. */
1214 do_spell(REALM_MUSIC, p_ptr->magic_num2[0], SPELL_STOP);
1216 p_ptr->magic_num1[0] = MUSIC_NONE;
1217 p_ptr->magic_num2[0] = 0;
1219 /* Recalculate bonuses */
1220 p_ptr->update |= (PU_BONUS);
1222 /* Redraw status bar */
1223 p_ptr->redraw |= (PR_STATUS);
1227 static cptr do_life_spell(int spell, int mode)
1229 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
1230 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
1231 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
1232 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
1235 int plev = p_ptr->lev;
1241 if (name) return "·Ú½ý¤Î¼£Ìþ";
1242 if (desc) return "²ø²æ¤ÈÂÎÎϤò¾¯¤·²óÉü¤µ¤»¤ë¡£";
1244 if (name) return "Cure Light Wounds";
1245 if (desc) return "Heals cut and HP a little.";
1252 if (info) return info_heal(dice, sides, 0);
1256 hp_player(damroll(dice, sides));
1257 set_cut(p_ptr->cut - 10);
1264 if (name) return "½ËÊ¡";
1265 if (desc) return "°ìÄê»þ´Ö¡¢Ì¿ÃæΨ¤ÈAC¤Ë¥Ü¡¼¥Ê¥¹¤òÆÀ¤ë¡£";
1267 if (name) return "Bless";
1268 if (desc) return "Gives bonus to hit and AC for a few turns.";
1274 if (info) return info_duration(base, base);
1278 set_blessed(randint1(base) + base, FALSE);
1285 if (name) return "·Ú½ý";
1286 if (desc) return "1ÂΤΥâ¥ó¥¹¥¿¡¼¤Ë¾®¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
1288 if (name) return "Cause Light Wounds";
1289 if (desc) return "Wounds a monster a little unless resisted.";
1293 int dice = 3 + (plev - 1) / 5;
1296 if (info) return info_damage(dice, sides, 0);
1300 if (!get_aim_dir(&dir)) return NULL;
1301 fire_ball_hide(GF_WOUNDS, dir, damroll(dice, sides), 0);
1308 if (name) return "¸÷¤Î¾¤´";
1309 if (desc) return "¸÷¸»¤¬¾È¤é¤·¤Æ¤¤¤ëÈϰϤ«Éô²°Á´ÂΤò±Êµ×¤ËÌÀ¤ë¤¯¤¹¤ë¡£";
1311 if (name) return "Call Light";
1312 if (desc) return "Lights up nearby area and the inside of a room permanently.";
1317 int sides = plev / 2;
1318 int rad = plev / 10 + 1;
1320 if (info) return info_damage(dice, sides, 0);
1324 lite_area(damroll(dice, sides), rad);
1331 if (name) return "æ« & ±£¤·Èâ´¶ÃÎ";
1332 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î櫤ÈÈâ¤È³¬Ãʤò´¶ÃΤ¹¤ë¡£";
1334 if (name) return "Detect Doors & Traps";
1335 if (desc) return "Detects traps, doors, and stairs in your vicinity.";
1339 int rad = DETECT_RAD_DEFAULT;
1341 if (info) return info_radius(rad);
1345 detect_traps(rad, TRUE);
1354 if (name) return "½Å½ý¤Î¼£Ìþ";
1355 if (desc) return "²ø²æ¤ÈÂÎÎϤòÃæÄøÅÙ²óÉü¤µ¤»¤ë¡£";
1357 if (name) return "Cure Medium Wounds";
1358 if (desc) return "Heals cut and HP more.";
1365 if (info) return info_heal(dice, sides, 0);
1369 hp_player(damroll(dice, sides));
1370 set_cut((p_ptr->cut / 2) - 20);
1377 if (name) return "²òÆÇ";
1378 if (desc) return "ÂÎÆâ¤ÎÆǤò¼è¤ê½ü¤¯¡£";
1380 if (name) return "Cure Poison";
1381 if (desc) return "Cure poison status.";
1394 if (name) return "¶õÊ¢½¼Â";
1395 if (desc) return "ËþÊ¢¤Ë¤¹¤ë¡£";
1397 if (name) return "Satisfy Hunger";
1398 if (desc) return "Satisfies hunger.";
1404 set_food(PY_FOOD_MAX - 1);
1411 if (name) return "²ò¼ö";
1412 if (desc) return "¥¢¥¤¥Æ¥à¤Ë¤«¤«¤Ã¤¿¼å¤¤¼ö¤¤¤ò²ò½ü¤¹¤ë¡£";
1414 if (name) return "Remove Curse";
1415 if (desc) return "Removes normal curses from equipped items.";
1424 msg_print("狼¤Ë¸«¼é¤é¤ì¤Æ¤¤¤ë¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£");
1426 msg_print("You feel as if someone is watching over you.");
1435 if (name) return "½Å½ý";
1436 if (desc) return "1ÂΤΥâ¥ó¥¹¥¿¡¼¤ËÃæ¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
1438 if (name) return "Cause Medium Wounds";
1439 if (desc) return "Wounds a monster unless resisted.";
1443 int sides = 8 + (plev - 5) / 4;
1446 if (info) return info_damage(dice, sides, 0);
1450 if (!get_aim_dir(&dir)) return NULL;
1451 fire_ball_hide(GF_WOUNDS, dir, damroll(sides, dice), 0);
1458 if (name) return "Ã×Ì¿½ý¤Î¼£Ìþ";
1459 if (desc) return "ÂÎÎϤòÂçÉý¤Ë²óÉü¤µ¤»¡¢Éé½ý¤ÈÛ¯Û°¾õÂÖ¤âÁ´²÷¤¹¤ë¡£";
1461 if (name) return "Cure Critical Wounds";
1462 if (desc) return "Heals cut, stun and HP greatly.";
1469 if (info) return info_heal(dice, sides, 0);
1473 hp_player(damroll(dice, sides));
1482 if (name) return "ÂÑÇ®ÂÑ´¨";
1483 if (desc) return "°ìÄê»þ´Ö¡¢²Ð±ê¤ÈÎ䵤¤ËÂФ¹¤ëÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
1485 if (name) return "Resist Heat and Cold";
1486 if (desc) return "Gives resistance to fire and cold. These resistances can be added to which from equipment for more powerful resistances.";
1492 if (info) return info_duration(base, base);
1496 set_oppose_cold(randint1(base) + base, FALSE);
1497 set_oppose_fire(randint1(base) + base, FALSE);
1504 if (name) return "¼þÊÕ´¶ÃÎ";
1505 if (desc) return "¼þÊÕ¤ÎÃÏ·Á¤ò´¶ÃΤ¹¤ë¡£";
1507 if (name) return "Sense Surroundings";
1508 if (desc) return "Maps nearby area.";
1512 int rad = DETECT_RAD_MAP;
1514 if (info) return info_radius(rad);
1525 if (name) return "¥Ñ¥Ë¥Ã¥¯¡¦¥¢¥ó¥Ç¥Ã¥É";
1526 if (desc) return "»ë³¦Æâ¤Î¥¢¥ó¥Ç¥Ã¥É¤ò¶²Éݤµ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
1528 if (name) return "Turn Undead";
1529 if (desc) return "Attempts to scare undead monsters in sight.";
1542 if (name) return "ÂÎÎϲóÉü";
1543 if (desc) return "¶Ë¤á¤Æ¶¯ÎϤʲóÉü¼öʸ¤Ç¡¢Éé½ý¤ÈÛ¯Û°¾õÂÖ¤âÁ´²÷¤¹¤ë¡£";
1545 if (name) return "Healing";
1546 if (desc) return "Much powerful healing magic, and heals cut and stun completely.";
1552 if (info) return info_heal(0, 0, heal);
1565 if (name) return "·ë³¦¤ÎÌæ¾Ï";
1566 if (desc) return "¼«Ê¬¤Î¤¤¤ë¾²¤Î¾å¤Ë¡¢¥â¥ó¥¹¥¿¡¼¤¬Ä̤êÈ´¤±¤¿¤ê¾¤´¤µ¤ì¤¿¤ê¤¹¤ë¤³¤È¤¬¤Ç¤¤Ê¤¯¤Ê¤ë¥ë¡¼¥ó¤òÉÁ¤¯¡£";
1568 if (name) return "Glyph of Warding";
1569 if (desc) return "Sets a glyph on the floor beneath you. Monsters cannot attack you if you are on a glyph, but can try to break glyph.";
1582 if (name) return "*²ò¼ö*";
1583 if (desc) return "¥¢¥¤¥Æ¥à¤Ë¤«¤«¤Ã¤¿¶¯ÎϤʼö¤¤¤ò²ò½ü¤¹¤ë¡£";
1585 if (name) return "Dispel Curse";
1586 if (desc) return "Removes normal and heavy curse from equipped items.";
1592 if (remove_all_curse())
1595 msg_print("狼¤Ë¸«¼é¤é¤ì¤Æ¤¤¤ë¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£");
1597 msg_print("You feel as if someone is watching over you.");
1606 if (name) return "´Õ¼±";
1607 if (desc) return "¥¢¥¤¥Æ¥à¤ò¼±Ê̤¹¤ë¡£";
1609 if (name) return "Perception";
1610 if (desc) return "Identifies an item.";
1616 if (!ident_spell(FALSE)) return NULL;
1623 if (name) return "¥¢¥ó¥Ç¥Ã¥ÉÂ໶";
1624 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥¢¥ó¥Ç¥Ã¥É¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
1626 if (name) return "Dispel Undead";
1627 if (desc) return "Damages all undead monsters in sight.";
1632 int sides = plev * 5;
1634 if (info) return info_damage(dice, sides, 0);
1638 dispel_undead(damroll(dice, sides));
1645 if (name) return "Æä¤Î¹ï";
1646 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò̥λ¤¹¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
1648 if (name) return "Day of the Dove";
1649 if (desc) return "Attempts to charm all monsters in sight.";
1653 int power = plev * 2;
1655 if (info) return info_power(power);
1659 charm_monsters(power);
1666 if (name) return "Ã×Ì¿½ý";
1667 if (desc) return "1ÂΤΥâ¥ó¥¹¥¿¡¼¤ËÂç¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
1669 if (name) return "Cause Critical Wounds";
1670 if (desc) return "Wounds a monster critically unless resisted.";
1674 int dice = 5 + (plev - 5) / 3;
1677 if (info) return info_damage(dice, sides, 0);
1681 if (!get_aim_dir(&dir)) return NULL;
1682 fire_ball_hide(GF_WOUNDS, dir, damroll(dice, sides), 0);
1689 if (name) return "µ¢´Ô¤Î¾Û";
1690 if (desc) return "ÃϾå¤Ë¤¤¤ë¤È¤¤Ï¥À¥ó¥¸¥ç¥ó¤ÎºÇ¿¼³¬¤Ø¡¢¥À¥ó¥¸¥ç¥ó¤Ë¤¤¤ë¤È¤¤ÏÃϾå¤Ø¤È°ÜÆ°¤¹¤ë¡£";
1692 if (name) return "Word of Recall";
1693 if (desc) return "Recalls player from dungeon to town, or from town to the deepest level of dungeon.";
1700 if (info) return info_delay(base, sides);
1704 if (!word_of_recall()) return NULL;
1711 if (name) return "¿¿¼Â¤Îº×ÃÅ";
1712 if (desc) return "¸½ºß¤Î³¬¤òºÆ¹½À®¤¹¤ë¡£";
1714 if (name) return "Alter Reality";
1715 if (desc) return "Recreates current dungeon level.";
1722 if (info) return info_delay(base, sides);
1733 if (name) return "¿¿¡¦·ë³¦";
1734 if (desc) return "¼«Ê¬¤Î¤¤¤ë¾²¤È¼þ°Ï8¥Þ¥¹¤Î¾²¤Î¾å¤Ë¡¢¥â¥ó¥¹¥¿¡¼¤¬Ä̤êÈ´¤±¤¿¤ê¾¤´¤µ¤ì¤¿¤ê¤¹¤ë¤³¤È¤¬¤Ç¤¤Ê¤¯¤Ê¤ë¥ë¡¼¥ó¤òÉÁ¤¯¡£";
1736 if (name) return "Warding True";
1737 if (desc) return "Creates glyphs in all adjacent squares and under you.";
1743 if (info) return info_radius(rad);
1755 if (name) return "ÉÔÌÓ²½";
1756 if (desc) return "¤³¤Î³¬¤ÎÁý¿£¤¹¤ë¥â¥ó¥¹¥¿¡¼¤¬Áý¿£¤Ç¤¤Ê¤¯¤Ê¤ë¡£";
1758 if (name) return "Sterilization";
1759 if (desc) return "Prevents any breeders on current level from breeding.";
1765 num_repro += MAX_REPRO;
1772 if (name) return "Á´´¶ÃÎ";
1773 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¡¢æ«¡¢Èâ¡¢³¬ÃÊ¡¢ºâÊõ¡¢¤½¤·¤Æ¥¢¥¤¥Æ¥à¤ò´¶ÃΤ¹¤ë¡£";
1775 if (name) return "Detection";
1776 if (desc) return "Detects all monsters, traps, doors, stairs, treasures and items in your vicinity.";
1780 int rad = DETECT_RAD_DEFAULT;
1782 if (info) return info_radius(rad);
1793 if (name) return "¥¢¥ó¥Ç¥Ã¥É¾ÃÌÇ";
1794 if (desc) return "¼«Ê¬¤Î¼þ°Ï¤Ë¤¤¤ë¥¢¥ó¥Ç¥Ã¥É¤ò¸½ºß¤Î³¬¤«¤é¾Ã¤·µî¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
1796 if (name) return "Annihilate Undead";
1797 if (desc) return "Eliminates all nearby undead monsters, exhausting you. Powerful or unique monsters may be able to resist.";
1801 int power = plev + 50;
1803 if (info) return info_power(power);
1807 mass_genocide_undead(power, TRUE);
1814 if (name) return "ÀéΤ´ã";
1815 if (desc) return "¤½¤Î³¬Á´ÂΤò±Êµ×¤Ë¾È¤é¤·¡¢¥À¥ó¥¸¥ç¥óÆ⤹¤Ù¤Æ¤Î¥¢¥¤¥Æ¥à¤ò´¶ÃΤ¹¤ë¡£";
1817 if (name) return "Clairvoyance";
1818 if (desc) return "Maps and lights whole dungeon level. Knows all objects location. And gives telepathy for a while.";
1831 if (name) return "Á´Éü³è";
1832 if (desc) return "¤¹¤Ù¤Æ¤Î¥¹¥Æ¡¼¥¿¥¹¤È·Ð¸³Ãͤò²óÉü¤¹¤ë¡£";
1834 if (name) return "Restoration";
1835 if (desc) return "Restores all stats and experience.";
1854 if (name) return "*ÂÎÎϲóÉü*";
1855 if (desc) return "ºÇ¶¯¤Î¼£Ìþ¤ÎËâË¡¤Ç¡¢Éé½ý¤ÈÛ¯Û°¾õÂÖ¤âÁ´²÷¤¹¤ë¡£";
1857 if (name) return "Healing True";
1858 if (desc) return "The greatest healing magic. Heals all HP, cut and stun.";
1864 if (info) return info_heal(0, 0, heal);
1877 if (name) return "À»¤Ê¤ë¥Ó¥¸¥ç¥ó";
1878 if (desc) return "¥¢¥¤¥Æ¥à¤Î»ý¤ÄǽÎϤò´°Á´¤ËÃΤ롣";
1880 if (name) return "Holy Vision";
1881 if (desc) return "*Identifies* an item.";
1887 if (!identify_fully(FALSE)) return NULL;
1894 if (name) return "µæ¶Ë¤ÎÂÑÀ";
1895 if (desc) return "°ìÄê»þ´Ö¡¢¤¢¤é¤æ¤ëÂÑÀ¤òÉÕ¤±¡¢AC¤ÈËâË¡ËɸæǽÎϤò¾å¾º¤µ¤»¤ë¡£";
1897 if (name) return "Ultimate Resistance";
1898 if (desc) return "Gives ultimate resistance, bonus to AC and speed.";
1902 int base = plev / 2;
1904 if (info) return info_duration(base, base);
1908 int v = randint1(base) + base;
1910 set_oppose_acid(v, FALSE);
1911 set_oppose_elec(v, FALSE);
1912 set_oppose_fire(v, FALSE);
1913 set_oppose_cold(v, FALSE);
1914 set_oppose_pois(v, FALSE);
1915 set_ultimate_res(v, FALSE);
1925 static cptr do_sorcery_spell(int spell, int mode)
1927 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
1928 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
1929 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
1930 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
1933 int plev = p_ptr->lev;
1939 if (name) return "¥â¥ó¥¹¥¿¡¼´¶ÃÎ";
1940 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î¸«¤¨¤ë¥â¥ó¥¹¥¿¡¼¤ò´¶ÃΤ¹¤ë¡£";
1942 if (name) return "Detect Monsters";
1943 if (desc) return "Detects all monsters in your vicinity unless invisible.";
1947 int rad = DETECT_RAD_DEFAULT;
1949 if (info) return info_radius(rad);
1953 detect_monsters_normal(rad);
1960 if (name) return "¥·¥ç¡¼¥È¡¦¥Æ¥ì¥Ý¡¼¥È";
1961 if (desc) return "¶áµ÷Î¥¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¤¹¤ë¡£";
1963 if (name) return "Phase Door";
1964 if (desc) return "Teleport short distance.";
1970 if (info) return info_range(range);
1974 teleport_player(range, 0L);
1981 if (name) return "櫤ÈÈâ´¶ÃÎ";
1982 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤ÎÈâ¤È櫤ò´¶ÃΤ¹¤ë¡£";
1984 if (name) return "Detect Doors and Traps";
1985 if (desc) return "Detects traps, doors, and stairs in your vicinity.";
1989 int rad = DETECT_RAD_DEFAULT;
1991 if (info) return info_radius(rad);
1995 detect_traps(rad, TRUE);
2004 if (name) return "¥é¥¤¥È¡¦¥¨¥ê¥¢";
2005 if (desc) return "¸÷¸»¤¬¾È¤é¤·¤Æ¤¤¤ëÈϰϤ«Éô²°Á´ÂΤò±Êµ×¤ËÌÀ¤ë¤¯¤¹¤ë¡£";
2007 if (name) return "Light Area";
2008 if (desc) return "Lights up nearby area and the inside of a room permanently.";
2013 int sides = plev / 2;
2014 int rad = plev / 10 + 1;
2016 if (info) return info_damage(dice, sides, 0);
2020 lite_area(damroll(dice, sides), rad);
2027 if (name) return "¥Ñ¥Ë¥Ã¥¯¡¦¥â¥ó¥¹¥¿¡¼";
2028 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤòº®Í𤵤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
2030 if (name) return "Confuse Monster";
2031 if (desc) return "Attempts to confuse a monster.";
2035 int power = (plev * 3) / 2;
2037 if (info) return info_power(power);
2041 if (!get_aim_dir(&dir)) return NULL;
2043 confuse_monster(dir, power);
2050 if (name) return "¥Æ¥ì¥Ý¡¼¥È";
2051 if (desc) return "±óµ÷Î¥¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¤¹¤ë¡£";
2053 if (name) return "Teleport";
2054 if (desc) return "Teleport long distance.";
2058 int range = plev * 5;
2060 if (info) return info_range(range);
2064 teleport_player(range, 0L);
2071 if (name) return "¥¹¥ê¡¼¥×¡¦¥â¥ó¥¹¥¿¡¼";
2072 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤò̲¤é¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
2074 if (name) return "Sleep Monster";
2075 if (desc) return "Attempts to sleep a monster.";
2081 if (info) return info_power(power);
2085 if (!get_aim_dir(&dir)) return NULL;
2087 sleep_monster(dir, plev);
2094 if (name) return "ËâÎϽ¼Å¶";
2095 if (desc) return "¾ó/ËâË¡ËÀ¤Î½¼Å¶²ó¿ô¤òÁý¤ä¤¹¤«¡¢½¼Å¶Ãæ¤Î¥í¥Ã¥É¤Î½¼Å¶»þ´Ö¤ò¸º¤é¤¹¡£";
2097 if (name) return "Recharging";
2098 if (desc) return "Recharges staffs, wands or rods.";
2102 int power = plev * 4;
2104 if (info) return info_power(power);
2108 if (!recharge(power)) return NULL;
2115 if (name) return "ËâË¡¤ÎÃÏ¿Þ";
2116 if (desc) return "¼þÊÕ¤ÎÃÏ·Á¤ò´¶ÃΤ¹¤ë¡£";
2118 if (name) return "Magic Mapping";
2119 if (desc) return "Maps nearby area.";
2123 int rad = DETECT_RAD_MAP;
2125 if (info) return info_radius(rad);
2136 if (name) return "´ÕÄê";
2137 if (desc) return "¥¢¥¤¥Æ¥à¤ò¼±Ê̤¹¤ë¡£";
2139 if (name) return "Identify";
2140 if (desc) return "Identifies an item.";
2146 if (!ident_spell(FALSE)) return NULL;
2153 if (name) return "¥¹¥í¥¦¡¦¥â¥ó¥¹¥¿¡¼";
2154 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤò¸ºÂ®¤µ¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
2156 if (name) return "Slow Monster";
2157 if (desc) return "Attempts to slow a monster.";
2163 if (info) return info_power(power);
2167 if (!get_aim_dir(&dir)) return NULL;
2169 slow_monster(dir, plev);
2176 if (name) return "¼þÊÕ¥¹¥ê¡¼¥×";
2177 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò̲¤é¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
2179 if (name) return "Mass Sleep";
2180 if (desc) return "Attempts to sleep all monsters in sight.";
2186 if (info) return info_power(power);
2190 sleep_monsters(plev);
2197 if (name) return "¥Æ¥ì¥Ý¡¼¥È¡¦¥â¥ó¥¹¥¿¡¼";
2198 if (desc) return "¥â¥ó¥¹¥¿¡¼¤ò¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤ë¥Ó¡¼¥à¤òÊü¤Ä¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
2200 if (name) return "Teleport Away";
2201 if (desc) return "Teleports all monsters on the line away unless resisted.";
2207 if (info) return info_power(power);
2211 if (!get_aim_dir(&dir)) return NULL;
2213 fire_beam(GF_AWAY_ALL, dir, power);
2220 if (name) return "¥¹¥Ô¡¼¥É";
2221 if (desc) return "°ìÄê»þ´Ö¡¢²Ã®¤¹¤ë¡£";
2223 if (name) return "Haste Self";
2224 if (desc) return "Hastes you for a while.";
2229 int sides = 20 + plev;
2231 if (info) return info_duration(base, sides);
2235 set_fast(randint1(sides) + base, FALSE);
2242 if (name) return "¿¿¡¦´¶ÃÎ";
2243 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¡¢æ«¡¢Èâ¡¢³¬ÃÊ¡¢ºâÊõ¡¢¤½¤·¤Æ¥¢¥¤¥Æ¥à¤ò´¶ÃΤ¹¤ë¡£";
2245 if (name) return "Detection True";
2246 if (desc) return "Detects all monsters, traps, doors, stairs, treasures and items in your vicinity.";
2250 int rad = DETECT_RAD_DEFAULT;
2252 if (info) return info_radius(rad);
2263 if (name) return "¿¿¡¦´ÕÄê";
2264 if (desc) return "¥¢¥¤¥Æ¥à¤Î»ý¤ÄǽÎϤò´°Á´¤ËÃΤ롣";
2266 if (name) return "Identify True";
2267 if (desc) return "*Identifies* an item.";
2273 if (!identify_fully(FALSE)) return NULL;
2280 if (name) return "ʪÂΤȺâÊõ´¶ÃÎ";
2281 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î¥¢¥¤¥Æ¥à¤ÈºâÊõ¤ò´¶ÃΤ¹¤ë¡£";
2283 if (name) return "Detect items and Treasure";
2284 if (desc) return "Detects all treasures and items in your vicinity.";
2288 int rad = DETECT_RAD_DEFAULT;
2290 if (info) return info_radius(rad);
2294 detect_objects_normal(rad);
2295 detect_treasure(rad);
2296 detect_objects_gold(rad);
2303 if (name) return "¥Á¥ã¡¼¥à¡¦¥â¥ó¥¹¥¿¡¼";
2304 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤò̥λ¤¹¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
2306 if (name) return "Charm Monster";
2307 if (desc) return "Attempts to charm a monster.";
2313 if (info) return info_power(power);
2317 if (!get_aim_dir(&dir)) return NULL;
2319 charm_monster(dir, power);
2326 if (name) return "Àº¿À´¶ÃÎ";
2327 if (desc) return "°ìÄê»þ´Ö¡¢¥Æ¥ì¥Ñ¥·¡¼Ç½ÎϤòÆÀ¤ë¡£";
2329 if (name) return "Sense Minds";
2330 if (desc) return "Gives telepathy for a while.";
2337 if (info) return info_duration(base, sides);
2341 set_tim_esp(randint1(sides) + base, FALSE);
2348 if (name) return "³¹°ÜÆ°";
2349 if (desc) return "³¹¤Ø°ÜÆ°¤¹¤ë¡£ÃϾå¤Ë¤¤¤ë¤È¤¤·¤«»È¤¨¤Ê¤¤¡£";
2351 if (name) return "Teleport to town";
2352 if (desc) return "Teleport to a town which you choose in a moment. Can only be used outdoors.";
2358 if (!tele_town()) return NULL;
2365 if (name) return "¼«¸ÊʬÀÏ";
2366 if (desc) return "¸½ºß¤Î¼«Ê¬¤Î¾õÂÖ¤ò´°Á´¤ËÃΤ롣";
2368 if (name) return "Self Knowledge";
2369 if (desc) return "Gives you useful info regarding your current resistances, the powers of your weapon and maximum limits of your stats.";
2382 if (name) return "¥Æ¥ì¥Ý¡¼¥È¡¦¥ì¥Ù¥ë";
2383 if (desc) return "½Ö»þ¤Ë¾å¤«²¼¤Î³¬¤Ë¥Æ¥ì¥Ý¡¼¥È¤¹¤ë¡£";
2385 if (name) return "Teleport Level";
2386 if (desc) return "Teleport to up or down stairs in a moment.";
2393 if (!get_check("ËÜÅö¤Ë¾¤Î³¬¤Ë¥Æ¥ì¥Ý¡¼¥È¤·¤Þ¤¹¤«¡©")) return NULL;
2395 if (!get_check("Are you sure? (Teleport Level)")) return NULL;
2404 if (name) return "µ¢´Ô¤Î¼öʸ";
2405 if (desc) return "ÃϾå¤Ë¤¤¤ë¤È¤¤Ï¥À¥ó¥¸¥ç¥ó¤ÎºÇ¿¼³¬¤Ø¡¢¥À¥ó¥¸¥ç¥ó¤Ë¤¤¤ë¤È¤¤ÏÃϾå¤Ø¤È°ÜÆ°¤¹¤ë¡£";
2407 if (name) return "Word of Recall";
2408 if (desc) return "Recalls player from dungeon to town, or from town to the deepest level of dungeon.";
2415 if (info) return info_delay(base, sides);
2419 if (!word_of_recall()) return NULL;
2426 if (name) return "¼¡¸µ¤ÎÈâ";
2427 if (desc) return "ûµ÷Î¥Æâ¤Î»ØÄꤷ¤¿¾ì½ê¤Ë¥Æ¥ì¥Ý¡¼¥È¤¹¤ë¡£";
2429 if (name) return "Dimension Door";
2430 if (desc) return "Teleport to given location.";
2434 int range = plev / 2 + 10;
2436 if (info) return info_range(range);
2441 msg_print("¼¡¸µ¤ÎÈ⤬³«¤¤¤¿¡£ÌÜŪÃϤòÁª¤ó¤Ç²¼¤µ¤¤¡£");
2443 msg_print("You open a dimensional gate. Choose a destination.");
2446 if (!dimension_door()) return NULL;
2453 if (name) return "Ä´ºº";
2454 if (desc) return "¥â¥ó¥¹¥¿¡¼¤Î°À¡¢»Ä¤êÂÎÎÏ¡¢ºÇÂçÂÎÎÏ¡¢¥¹¥Ô¡¼¥É¡¢ÀµÂΤòÃΤ롣";
2456 if (name) return "Probing";
2457 if (desc) return "Proves all monsters' alignment, HP, speed and their true character.";
2470 if (name) return "Çúȯ¤Î¥ë¡¼¥ó";
2471 if (desc) return "¼«Ê¬¤Î¤¤¤ë¾²¤Î¾å¤Ë¡¢¥â¥ó¥¹¥¿¡¼¤¬Ä̤ë¤ÈÇúȯ¤·¤Æ¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¥ë¡¼¥ó¤òÉÁ¤¯¡£";
2473 if (name) return "Explosive Rune";
2474 if (desc) return "Sets a glyph under you. The glyph will explode when a monster moves on it.";
2482 if (info) return info_damage(dice, sides, base);
2493 if (name) return "Ç°Æ°ÎÏ";
2494 if (desc) return "¥¢¥¤¥Æ¥à¤ò¼«Ê¬¤Î¸µ¤Ø°ÜÆ°¤µ¤»¤ë¡£";
2496 if (name) return "Telekinesis";
2497 if (desc) return "Pulls a distant item close to you.";
2501 int weight = plev * 15;
2503 if (info) return info_weight(weight);
2507 if (!get_aim_dir(&dir)) return NULL;
2509 fetch(dir, weight, FALSE);
2516 if (name) return "ÀéΤ´ã";
2517 if (desc) return "¤½¤Î³¬Á´ÂΤò±Êµ×¤Ë¾È¤é¤·¡¢¥À¥ó¥¸¥ç¥óÆ⤹¤Ù¤Æ¤Î¥¢¥¤¥Æ¥à¤ò´¶ÃΤ¹¤ë¡£¤µ¤é¤Ë¡¢°ìÄê»þ´Ö¥Æ¥ì¥Ñ¥·¡¼Ç½ÎϤòÆÀ¤ë¡£";
2519 if (name) return "Clairvoyance";
2520 if (desc) return "Maps and lights whole dungeon level. Knows all objects location. And gives telepathy for a while.";
2527 if (info) return info_duration(base, sides);
2531 chg_virtue(V_KNOWLEDGE, 1);
2532 chg_virtue(V_ENLIGHTEN, 1);
2536 if (!p_ptr->telepathy)
2538 set_tim_esp(randint1(sides) + base, FALSE);
2546 if (name) return "̥λ¤Î»ëÀþ";
2547 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò̥λ¤¹¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
2549 if (name) return "Charm monsters";
2550 if (desc) return "Attempts to charm all monsters in sight.";
2554 int power = plev * 2;
2556 if (info) return info_power(power);
2560 charm_monsters(power);
2567 if (name) return "Ï£¶â½Ñ";
2568 if (desc) return "¥¢¥¤¥Æ¥à1¤Ä¤ò¤ª¶â¤ËÊѤ¨¤ë¡£";
2570 if (name) return "Alchemy";
2571 if (desc) return "Turns an item into 1/3 of its value in gold.";
2577 if (!alchemy()) return NULL;
2584 if (name) return "²øʪÄÉÊü";
2585 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
2587 if (name) return "Banishment";
2588 if (desc) return "Teleports all monsters in sight away unless resisted.";
2592 int power = plev * 4;
2594 if (info) return info_power(power);
2598 banish_monsters(power);
2605 if (name) return "̵½ý¤Îµå";
2606 if (desc) return "°ìÄê»þ´Ö¡¢¥À¥á¡¼¥¸¤ò¼õ¤±¤Ê¤¯¤Ê¤ë¥Ð¥ê¥¢¤òÄ¥¤ë¡£Àڤ줿½Ö´Ö¤Ë¾¯¤·¥¿¡¼¥ó¤ò¾ÃÈñ¤¹¤ë¤Î¤ÇÃí°Õ¡£";
2608 if (name) return "Globe of Invulnerability";
2609 if (desc) return "Generates barrier which completely protect you from almost all damages. Takes a few your turns when the barrier breaks or duration time is exceeded.";
2615 if (info) return info_duration(base, base);
2619 set_invuln(randint1(base) + base, FALSE);
2629 static cptr do_nature_spell(int spell, int mode)
2631 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
2632 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
2633 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
2634 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
2637 static const char s_dam[] = "»½ý:";
2638 static const char s_rng[] = "¼ÍÄø";
2640 static const char s_dam[] = "dam ";
2641 static const char s_rng[] = "rng ";
2645 int plev = p_ptr->lev;
2651 if (name) return "¥â¥ó¥¹¥¿¡¼´¶ÃÎ";
2652 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î¸«¤¨¤ë¥â¥ó¥¹¥¿¡¼¤ò´¶ÃΤ¹¤ë¡£";
2654 if (name) return "Detect Creatures";
2655 if (desc) return "Detects all monsters in your vicinity unless invisible.";
2659 int rad = DETECT_RAD_DEFAULT;
2661 if (info) return info_radius(rad);
2665 detect_monsters_normal(rad);
2672 if (name) return "°ðºÊ";
2673 if (desc) return "ÅÅ·â¤Îû¤¤¥Ó¡¼¥à¤òÊü¤Ä¡£";
2675 if (name) return "Lightning";
2676 if (desc) return "Fires a short beam of lightning.";
2680 int dice = 3 + (plev - 1) / 5;
2682 int range = plev / 6 + 2;
2684 if (info) return format("%s%dd%d %s%d", s_dam, dice, sides, s_rng, range);
2688 project_length = range;
2690 if (!get_aim_dir(&dir)) return NULL;
2692 fire_beam(GF_ELEC, dir, damroll(dice, sides));
2699 if (name) return "櫤ÈÈâ´¶ÃÎ";
2700 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î櫤ÈÈâ¤ò´¶ÃΤ¹¤ë¡£";
2702 if (name) return "Detect Doors and Traps";
2703 if (desc) return "Detects traps, doors, and stairs in your vicinity.";
2707 int rad = DETECT_RAD_DEFAULT;
2709 if (info) return info_radius(rad);
2713 detect_traps(rad, TRUE);
2722 if (name) return "¿©ÎÈÀ¸À®";
2723 if (desc) return "¿©ÎÁ¤ò°ì¤Äºî¤ê½Ð¤¹¡£";
2725 if (name) return "Produce Food";
2726 if (desc) return "Produces a Ration of Food.";
2732 object_type forge, *q_ptr = &forge;
2735 msg_print("¿©ÎÁ¤òÀ¸À®¤·¤¿¡£");
2737 msg_print("A food ration is produced.");
2740 /* Create the food ration */
2741 object_prep(q_ptr, lookup_kind(TV_FOOD, SV_FOOD_RATION));
2743 /* Drop the object from heaven */
2744 drop_near(q_ptr, -1, py, px);
2751 if (name) return "Æü¤Î¸÷";
2752 if (desc) return "¸÷¸»¤¬¾È¤é¤·¤Æ¤¤¤ëÈϰϤ«Éô²°Á´ÂΤò±Êµ×¤ËÌÀ¤ë¤¯¤¹¤ë¡£";
2754 if (name) return "Daylight";
2755 if (desc) return "Lights up nearby area and the inside of a room permanently.";
2760 int sides = plev / 2;
2761 int rad = (plev / 10) + 1;
2763 if (info) return info_damage(dice, sides, 0);
2767 lite_area(damroll(dice, sides), rad);
2769 if ((prace_is_(RACE_VAMPIRE) || (p_ptr->mimic_form == MIMIC_VAMPIRE)) && !p_ptr->resist_lite)
2772 msg_print("Æü¤Î¸÷¤¬¤¢¤Ê¤¿¤ÎÆùÂΤò¾Ç¤¬¤·¤¿¡ª");
2774 msg_print("The daylight scorches your flesh!");
2778 take_hit(DAMAGE_NOESCAPE, damroll(2, 2), "Æü¤Î¸÷", -1);
2780 take_hit(DAMAGE_NOESCAPE, damroll(2, 2), "daylight", -1);
2789 if (name) return "ưʪ½¬¤·";
2790 if (desc) return "ưʪ1ÂΤò̥λ¤¹¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
2792 if (name) return "Animal Taming";
2793 if (desc) return "Attempts to charm an animal.";
2799 if (info) return info_power(power);
2803 if (!get_aim_dir(&dir)) return NULL;
2805 charm_animal(dir, power);
2812 if (name) return "´Ä¶¤Ø¤ÎÂÑÀ";
2813 if (desc) return "°ìÄê»þ´Ö¡¢Î䵤¡¢±ê¡¢ÅÅ·â¤ËÂФ¹¤ëÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
2815 if (name) return "Resist Environment";
2816 if (desc) return "Gives resistance to fire, cold and electricity for a while. These resistances can be added to which from equipment for more powerful resistances.";
2822 if (info) return info_duration(base, base);
2826 set_oppose_cold(randint1(base) + base, FALSE);
2827 set_oppose_fire(randint1(base) + base, FALSE);
2828 set_oppose_elec(randint1(base) + base, FALSE);
2835 if (name) return "½ý¤ÈÆǼ£ÎÅ";
2836 if (desc) return "²ø²æ¤òÁ´²÷¤µ¤»¡¢ÆǤòÂΤ«¤é´°Á´¤Ë¼è¤ê½ü¤¡¢ÂÎÎϤò¾¯¤·²óÉü¤µ¤»¤ë¡£";
2838 if (name) return "Cure Wounds & Poison";
2839 if (desc) return "Heals all cut and poison status. Heals HP a little.";
2846 if (info) return info_heal(dice, sides, 0);
2850 hp_player(damroll(dice, sides));
2859 if (name) return "´äÀÐÍϲò";
2860 if (desc) return "ÊɤòÍϤ«¤·¤Æ¾²¤Ë¤¹¤ë¡£";
2862 if (name) return "Stone to Mud";
2863 if (desc) return "Turns one rock square to mud.";
2871 if (info) return info_damage(dice, sides, base);
2875 if (!get_aim_dir(&dir)) return NULL;
2877 wall_to_mud(dir, 20 + randint1(30));
2884 if (name) return "¥¢¥¤¥¹¡¦¥Ü¥ë¥È";
2885 if (desc) return "Î䵤¤Î¥Ü¥ë¥È¤â¤·¤¯¤Ï¥Ó¡¼¥à¤òÊü¤Ä¡£";
2887 if (name) return "Frost Bolt";
2888 if (desc) return "Fires a bolt or beam of cold.";
2892 int dice = 3 + (plev - 5) / 4;
2895 if (info) return info_damage(dice, sides, 0);
2899 if (!get_aim_dir(&dir)) return NULL;
2900 fire_bolt_or_beam(beam_chance() - 10, GF_COLD, dir, damroll(dice, sides));
2907 if (name) return "¼«Á³¤Î³ÐÀÃ";
2908 if (desc) return "¼þÊÕ¤ÎÃÏ·Á¤ò´¶ÃΤ·¡¢¶á¤¯¤Îæ«¡¢Èâ¡¢³¬ÃÊ¡¢Á´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò´¶ÃΤ¹¤ë¡£";
2910 if (name) return "Nature Awareness";
2911 if (desc) return "Maps nearby area. Detects all monsters, traps, doors and stairs.";
2915 int rad1 = DETECT_RAD_MAP;
2916 int rad2 = DETECT_RAD_DEFAULT;
2918 if (info) return info_radius(MAX(rad1, rad2));
2923 detect_traps(rad2, TRUE);
2925 detect_stairs(rad2);
2926 detect_monsters_normal(rad2);
2933 if (name) return "¥Õ¥¡¥¤¥¢¡¦¥Ü¥ë¥È";
2934 if (desc) return "²Ð±ê¤Î¥Ü¥ë¥È¤â¤·¤¯¤Ï¥Ó¡¼¥à¤òÊü¤Ä¡£";
2936 if (name) return "Fire Bolt";
2937 if (desc) return "Fires a bolt or beam of fire.";
2941 int dice = 5 + (plev - 5) / 4;
2944 if (info) return info_damage(dice, sides, 0);
2948 if (!get_aim_dir(&dir)) return NULL;
2949 fire_bolt_or_beam(beam_chance() - 10, GF_FIRE, dir, damroll(dice, sides));
2956 if (name) return "ÂÀÍÛ¸÷Àþ";
2957 if (desc) return "¸÷Àþ¤òÊü¤Ä¡£¸÷¤ê¤ò·ù¤¦¥â¥ó¥¹¥¿¡¼¤Ë¸ú²Ì¤¬¤¢¤ë¡£";
2959 if (name) return "Ray of Sunlight";
2960 if (desc) return "Fires a beam of light which damages to light-sensitive monsters.";
2967 if (info) return info_damage(dice, sides, 0);
2971 if (!get_aim_dir(&dir)) return NULL;
2973 msg_print("ÂÀÍÛ¸÷Àþ¤¬¸½¤ì¤¿¡£");
2975 msg_print("A line of sunlight appears.");
2978 lite_line(dir, damroll(6, 8));
2985 if (name) return "¤«¤»";
2986 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò¸ºÂ®¤µ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
2988 if (name) return "Entangle";
2989 if (desc) return "Attempts to slow all monsters in sight.";
2995 if (info) return info_power(power);
2999 slow_monsters(plev);
3006 if (name) return "ưʪ¾¤´";
3007 if (desc) return "ưʪ¤ò1Âξ¤´¤¹¤ë¡£";
3009 if (name) return "Summon Animal";
3010 if (desc) return "Summons an animal.";
3016 if (!(summon_specific(-1, py, px, plev, SUMMON_ANIMAL_RANGER, (PM_ALLOW_GROUP | PM_FORCE_PET))))
3019 msg_print("ưʪ¤Ï¸½¤ì¤Ê¤«¤Ã¤¿¡£");
3021 msg_print("No animals arrive.");
3031 if (name) return "ÌôÁð¼£ÎÅ";
3032 if (desc) return "ÂÎÎϤòÂçÉý¤Ë²óÉü¤µ¤»¡¢Éé½ý¡¢Û¯Û°¾õÂÖ¡¢ÆǤ«¤éÁ´²÷¤¹¤ë¡£";
3034 if (name) return "Herbal Healing";
3035 if (desc) return "Heals HP greatly. And heals cut, stun and poison completely.";
3041 if (info) return info_heal(0, 0, heal);
3055 if (name) return "³¬ÃÊÀ¸À®";
3056 if (desc) return "¼«Ê¬¤Î¤¤¤ë°ÌÃ֤˳¬Ãʤòºî¤ë¡£";
3058 if (name) return "Stair Building";
3059 if (desc) return "Creates a stair which goes down or up.";
3072 if (name) return "È©Àв½";
3073 if (desc) return "°ìÄê»þ´Ö¡¢AC¤ò¾å¾º¤µ¤»¤ë¡£";
3075 if (name) return "Stone Skin";
3076 if (desc) return "Gives bonus to AC for a while.";
3083 if (info) return info_duration(base, sides);
3087 set_shield(randint1(sides) + base, FALSE);
3094 if (name) return "¿¿¡¦ÂÑÀ";
3095 if (desc) return "°ìÄê»þ´Ö¡¢»À¡¢ÅÅ·â¡¢±ê¡¢Î䵤¡¢ÆǤËÂФ¹¤ëÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
3097 if (name) return "Resistance True";
3098 if (desc) return "Gives resistance to fire, cold, electricity, acid and poison for a while. These resistances can be added to which from equipment for more powerful resistances.";
3104 if (info) return info_duration(base, base);
3108 set_oppose_acid(randint1(base) + base, FALSE);
3109 set_oppose_elec(randint1(base) + base, FALSE);
3110 set_oppose_fire(randint1(base) + base, FALSE);
3111 set_oppose_cold(randint1(base) + base, FALSE);
3112 set_oppose_pois(randint1(base) + base, FALSE);
3119 if (name) return "¿¹ÎÓÁϤ";
3120 if (desc) return "¼þ°Ï¤ËÌÚ¤òºî¤ê½Ð¤¹¡£";
3122 if (name) return "Forest Creation";
3123 if (desc) return "Creates trees in all adjacent squares.";
3136 if (name) return "ưʪͧÏÂ";
3137 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Îưʪ¤ò̥λ¤¹¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
3139 if (name) return "Animal Friendship";
3140 if (desc) return "Attempts to charm all animals in sight.";
3144 int power = plev * 2;
3146 if (info) return info_power(power);
3150 charm_animals(power);
3157 if (name) return "»î¶âÀÐ";
3158 if (desc) return "¥¢¥¤¥Æ¥à¤Î»ý¤ÄǽÎϤò´°Á´¤ËÃΤ롣";
3160 if (name) return "Stone Tell";
3161 if (desc) return "*Identifies* an item.";
3167 if (!identify_fully(FALSE)) return NULL;
3174 if (name) return "ÀФÎÊÉ";
3175 if (desc) return "¼«Ê¬¤Î¼þ°Ï¤Ë²ÖÖ¾´ä¤ÎÊɤòºî¤ë¡£";
3177 if (name) return "Wall of Stone";
3178 if (desc) return "Creates granite walls in all adjacent squares.";
3191 if (name) return "Éå¿©ËÉ»ß";
3192 if (desc) return "¥¢¥¤¥Æ¥à¤ò»À¤Ç½ý¤Ä¤«¤Ê¤¤¤è¤¦²Ã¹©¤¹¤ë¡£";
3194 if (name) return "Protect from Corrosion";
3195 if (desc) return "Makes an equipment acid-proof.";
3201 if (!rustproof()) return NULL;
3208 if (name) return "ÃÏ¿Ì";
3209 if (desc) return "¼þ°Ï¤Î¥À¥ó¥¸¥ç¥ó¤òÍɤ餷¡¢ÊɤȾ²¤ò¥é¥ó¥À¥à¤ËÆþ¤ìÊѤ¨¤ë¡£";
3211 if (name) return "Earthquake";
3212 if (desc) return "Shakes dungeon structure, and results in random swapping of floors and walls.";
3218 if (info) return info_radius(rad);
3222 earthquake(py, px, rad);
3229 if (name) return "¥«¥Þ¥¤¥¿¥Á";
3230 if (desc) return "Á´Êý¸þ¤Ë¸þ¤«¤Ã¤Æ¹¶·â¤¹¤ë¡£";
3232 if (name) return "Cyclone";
3233 if (desc) return "Attacks all adjacent monsters.";
3241 monster_type *m_ptr;
3243 for (dir = 0; dir < 8; dir++)
3245 y = py + ddy_ddd[dir];
3246 x = px + ddx_ddd[dir];
3247 c_ptr = &cave[y][x];
3249 /* Get the monster */
3250 m_ptr = &m_list[c_ptr->m_idx];
3252 /* Hack -- attack monsters */
3253 if (c_ptr->m_idx && (m_ptr->ml || cave_have_flag_bold(y, x, FF_PROJECT)))
3262 if (name) return "¥Ö¥ê¥¶¡¼¥É";
3263 if (desc) return "µðÂç¤ÊÎ䵤¤Îµå¤òÊü¤Ä¡£";
3265 if (name) return "Blizzard";
3266 if (desc) return "Fires a huge ball of cold.";
3270 int dam = 70 + plev * 3 / 2;
3271 int rad = plev / 12 + 1;
3273 if (info) return info_damage(0, 0, dam);
3277 if (!get_aim_dir(&dir)) return NULL;
3279 fire_ball(GF_COLD, dir, dam, rad);
3286 if (name) return "°ðºÊÍò";
3287 if (desc) return "µðÂç¤ÊÅÅ·â¤Îµå¤òÊü¤Ä¡£";
3289 if (name) return "Lightning Storm";
3290 if (desc) return "Fires a huge electric ball.";
3294 int dam = 90 + plev * 3 / 2;
3295 int rad = plev / 12 + 1;
3297 if (info) return info_damage(0, 0, dam);
3301 if (!get_aim_dir(&dir)) return NULL;
3302 fire_ball(GF_ELEC, dir, dam, rad);
3310 if (name) return "±²Ä¬";
3311 if (desc) return "µðÂç¤Ê¿å¤Îµå¤òÊü¤Ä¡£";
3313 if (name) return "Whirlpool";
3314 if (desc) return "Fires a huge ball of water.";
3318 int dam = 100 + plev * 3 / 2;
3319 int rad = plev / 12 + 1;
3321 if (info) return info_damage(0, 0, dam);
3325 if (!get_aim_dir(&dir)) return NULL;
3326 fire_ball(GF_WATER, dir, dam, rad);
3333 if (name) return "ÍÛ¸÷¾¤´";
3334 if (desc) return "¼«Ê¬¤òÃæ¿´¤È¤·¤¿¸÷¤Îµå¤òȯÀ¸¤µ¤»¤ë¡£¤µ¤é¤Ë¡¢¤½¤Î³¬Á´ÂΤò±Êµ×¤Ë¾È¤é¤·¡¢¥À¥ó¥¸¥ç¥óÆ⤹¤Ù¤Æ¤Î¥¢¥¤¥Æ¥à¤ò´¶ÃΤ¹¤ë¡£";
3336 if (name) return "Call Sunlight";
3337 if (desc) return "Generates ball of light centered on you. Maps and lights whole dungeon level. Knows all objects location.";
3344 if (info) return info_damage(0, 0, dam/2);
3348 fire_ball(GF_LITE, 0, dam, rad);
3349 chg_virtue(V_KNOWLEDGE, 1);
3350 chg_virtue(V_ENLIGHTEN, 1);
3353 if ((prace_is_(RACE_VAMPIRE) || (p_ptr->mimic_form == MIMIC_VAMPIRE)) && !p_ptr->resist_lite)
3356 msg_print("Æü¸÷¤¬¤¢¤Ê¤¿¤ÎÆùÂΤò¾Ç¤¬¤·¤¿¡ª");
3358 msg_print("The sunlight scorches your flesh!");
3362 take_hit(DAMAGE_NOESCAPE, 50, "Æü¸÷", -1);
3364 take_hit(DAMAGE_NOESCAPE, 50, "sunlight", -1);
3373 if (name) return "ÀºÎî¤Î¿Ï";
3374 if (desc) return "Éð´ï¤Ë±ê¤«Î䵤¤Î°À¤ò¤Ä¤±¤ë¡£";
3376 if (name) return "Elemental Branding";
3377 if (desc) return "Makes current weapon fire or frost branded.";
3383 brand_weapon(randint0(2));
3390 if (name) return "¼«Á³¤Î¶¼°Ò";
3391 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¡¢ÃϿ̤òµ¯¤³¤·¡¢¼«Ê¬¤òÃæ¿´¤È¤·¤¿Ê¬²ò¤Îµå¤òȯÀ¸¤µ¤»¤ë¡£";
3393 if (name) return "Nature's Wrath";
3394 if (desc) return "Damages all monsters in sight. Makes quake. Generates disintegration ball centered on you.";
3398 int d_dam = 4 * plev;
3399 int b_dam = (100 + plev) * 2;
3400 int b_rad = 1 + plev / 12;
3401 int q_rad = 20 + plev / 2;
3403 if (info) return format("%s%d+%d", s_dam, d_dam, b_dam/2);
3407 dispel_monsters(d_dam);
3408 earthquake(py, px, q_rad);
3409 project(0, b_rad, py, px, b_dam, GF_DISINTEGRATE, PROJECT_KILL | PROJECT_ITEM, -1);
3419 static cptr do_chaos_spell(int spell, int mode)
3421 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
3422 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
3423 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
3424 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
3427 static const char s_dam[] = "»½ý:";
3428 static const char s_random[] = "¥é¥ó¥À¥à";
3430 static const char s_dam[] = "dam ";
3431 static const char s_random[] = "random";
3435 int plev = p_ptr->lev;
3441 if (name) return "¥Þ¥¸¥Ã¥¯¡¦¥ß¥µ¥¤¥ë";
3442 if (desc) return "¼å¤¤ËâË¡¤ÎÌð¤òÊü¤Ä¡£";
3444 if (name) return "Magic Missile";
3445 if (desc) return "Fires a weak bolt of magic.";
3449 int dice = 3 + ((plev - 1) / 5);
3452 if (info) return info_damage(dice, sides, 0);
3456 if (!get_aim_dir(&dir)) return NULL;
3458 fire_bolt_or_beam(beam_chance() - 10, GF_MISSILE, dir, damroll(dice, sides));
3465 if (name) return "¥È¥é¥Ã¥×/¥É¥¢Ç˲õ";
3466 if (desc) return "ÎÙÀܤ¹¤ë櫤ÈÈâ¤òÇ˲õ¤¹¤ë¡£";
3468 if (name) return "Trap / Door Destruction";
3469 if (desc) return "Destroys all traps in adjacent squares.";
3475 if (info) return info_radius(rad);
3479 destroy_doors_touch();
3486 if (name) return "Á®¸÷";
3487 if (desc) return "¸÷¸»¤¬¾È¤é¤·¤Æ¤¤¤ëÈϰϤ«Éô²°Á´ÂΤò±Êµ×¤ËÌÀ¤ë¤¯¤¹¤ë¡£";
3489 if (name) return "Flash of Light";
3490 if (desc) return "Lights up nearby area and the inside of a room permanently.";
3495 int sides = plev / 2;
3496 int rad = (plev / 10) + 1;
3498 if (info) return info_damage(dice, sides, 0);
3502 lite_area(damroll(dice, sides), rad);
3509 if (name) return "º®Íð¤Î¼ê";
3510 if (desc) return "Áê¼ê¤òº®Í𤵤»¤ë¹¶·â¤ò¤Ç¤¤ë¤è¤¦¤Ë¤¹¤ë¡£";
3512 if (name) return "Touch of Confusion";
3513 if (desc) return "Attempts to confuse the next monster that you hit.";
3519 if (!(p_ptr->special_attack & ATTACK_CONFUSE))
3522 msg_print("¤¢¤Ê¤¿¤Î¼ê¤Ï¸÷¤ê»Ï¤á¤¿¡£");
3524 msg_print("Your hands start glowing.");
3527 p_ptr->special_attack |= ATTACK_CONFUSE;
3528 p_ptr->redraw |= (PR_STATUS);
3536 if (name) return "ËâÎÏßÚÎö";
3537 if (desc) return "ËâË¡¤Îµå¤òÊü¤Ä¡£";
3539 if (name) return "Mana Burst";
3540 if (desc) return "Fires a ball of magic.";
3546 int rad = (plev < 30) ? 2 : 3;
3549 if (p_ptr->pclass == CLASS_MAGE ||
3550 p_ptr->pclass == CLASS_HIGH_MAGE ||
3551 p_ptr->pclass == CLASS_SORCERER)
3552 base = plev + plev / 2;
3554 base = plev + plev / 4;
3557 if (info) return info_damage(dice, sides, base);
3561 if (!get_aim_dir(&dir)) return NULL;
3563 fire_ball(GF_MISSILE, dir, damroll(dice, sides) + base, rad);
3566 * Shouldn't actually use GF_MANA, as
3567 * it will destroy all items on the
3576 if (name) return "¥Õ¥¡¥¤¥¢¡¦¥Ü¥ë¥È";
3577 if (desc) return "±ê¤Î¥Ü¥ë¥È¤â¤·¤¯¤Ï¥Ó¡¼¥à¤òÊü¤Ä¡£";
3579 if (name) return "Fire Bolt";
3580 if (desc) return "Fires a bolt or beam of fire.";
3584 int dice = 8 + (plev - 5) / 4;
3587 if (info) return info_damage(dice, sides, 0);
3591 if (!get_aim_dir(&dir)) return NULL;
3593 fire_bolt_or_beam(beam_chance(), GF_FIRE, dir, damroll(dice, sides));
3600 if (name) return "ÎϤηý";
3601 if (desc) return "¤´¤¯¾®¤µ¤Êʬ²ò¤Îµå¤òÊü¤Ä¡£";
3603 if (name) return "Fist of Force";
3604 if (desc) return "Fires a tiny ball of disintegration.";
3608 int dice = 8 + ((plev - 5) / 4);
3611 if (info) return info_damage(dice, sides, 0);
3615 if (!get_aim_dir(&dir)) return NULL;
3617 fire_ball(GF_DISINTEGRATE, dir,
3618 damroll(dice, sides), 0);
3625 if (name) return "¥Æ¥ì¥Ý¡¼¥È";
3626 if (desc) return "±óµ÷Î¥¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¤¹¤ë¡£";
3628 if (name) return "Teleport Self";
3629 if (desc) return "Teleport long distance.";
3633 int range = plev * 5;
3635 if (info) return info_range(range);
3639 teleport_player(range, 0L);
3646 if (name) return "¥ï¥ó¥À¡¼";
3647 if (desc) return "¥â¥ó¥¹¥¿¡¼¤Ë¥é¥ó¥À¥à¤Ê¸ú²Ì¤òÍ¿¤¨¤ë¡£";
3649 if (name) return "Wonder";
3650 if (desc) return "Fires something with random effects.";
3654 if (info) return s_random;
3659 if (!get_aim_dir(&dir)) return NULL;
3668 if (name) return "¥«¥ª¥¹¡¦¥Ü¥ë¥È";
3669 if (desc) return "¥«¥ª¥¹¤Î¥Ü¥ë¥È¤â¤·¤¯¤Ï¥Ó¡¼¥à¤òÊü¤Ä¡£";
3671 if (name) return "Chaos Bolt";
3672 if (desc) return "Fires a bolt or ball of chaos.";
3676 int dice = 10 + (plev - 5) / 4;
3679 if (info) return info_damage(dice, sides, 0);
3683 if (!get_aim_dir(&dir)) return NULL;
3685 fire_bolt_or_beam(beam_chance(), GF_CHAOS, dir, damroll(dice, sides));
3692 if (name) return "¥½¥Ë¥Ã¥¯¡¦¥Ö¡¼¥à";
3693 if (desc) return "¼«Ê¬¤òÃæ¿´¤È¤·¤¿¹ì²»¤Îµå¤òȯÀ¸¤µ¤»¤ë¡£";
3695 if (name) return "Sonic Boom";
3696 if (desc) return "Generates a ball of sound centered on you.";
3700 int dam = 60 + plev;
3701 int rad = plev / 10 + 2;
3703 if (info) return info_damage(0, 0, dam/2);
3708 msg_print("¥É¡¼¥ó¡ªÉô²°¤¬Íɤ줿¡ª");
3710 msg_print("BOOM! Shake the room!");
3713 project(0, rad, py, px, dam, GF_SOUND, PROJECT_KILL | PROJECT_ITEM, -1);
3720 if (name) return "ÇËÌǤÎÌð";
3721 if (desc) return "½ã¿è¤ÊËâÎϤΥӡ¼¥à¤òÊü¤Ä¡£";
3723 if (name) return "Doom Bolt";
3724 if (desc) return "Fires a beam of pure mana.";
3728 int dice = 11 + (plev - 5) / 4;
3731 if (info) return info_damage(dice, sides, 0);
3735 if (!get_aim_dir(&dir)) return NULL;
3737 fire_beam(GF_MANA, dir, damroll(dice, sides));
3744 if (name) return "¥Õ¥¡¥¤¥¢¡¦¥Ü¡¼¥ë";
3745 if (desc) return "±ê¤Îµå¤òÊü¤Ä¡£";
3747 if (name) return "Fire Ball";
3748 if (desc) return "Fires a ball of fire.";
3752 int dam = plev + 55;
3755 if (info) return info_damage(0, 0, dam);
3759 if (!get_aim_dir(&dir)) return NULL;
3761 fire_ball(GF_FIRE, dir, dam, rad);
3768 if (name) return "¥Æ¥ì¥Ý¡¼¥È¡¦¥¢¥¦¥§¥¤";
3769 if (desc) return "¥â¥ó¥¹¥¿¡¼¤ò¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤ë¥Ó¡¼¥à¤òÊü¤Ä¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
3771 if (name) return "Teleport Other";
3772 if (desc) return "Teleports all monsters on the line away unless resisted.";
3778 if (info) return info_power(power);
3782 if (!get_aim_dir(&dir)) return NULL;
3784 fire_beam(GF_AWAY_ALL, dir, power);
3791 if (name) return "Ç˲õ¤Î¸ÀÍÕ";
3792 if (desc) return "¼þÊդΥ¢¥¤¥Æ¥à¡¢¥â¥ó¥¹¥¿¡¼¡¢ÃÏ·Á¤òÇ˲õ¤¹¤ë¡£";
3794 if (name) return "Word of Destruction";
3795 if (desc) return "Destroy everything in nearby area.";
3804 destroy_area(py, px, base + randint1(sides), FALSE);
3811 if (name) return "¥í¥°¥ë¥¹È¯Æ°";
3812 if (desc) return "µðÂç¤Ê¥«¥ª¥¹¤Îµå¤òÊü¤Ä¡£";
3814 if (name) return "Invoke Logrus";
3815 if (desc) return "Fires a huge ball of chaos.";
3819 int dam = plev * 2 + 99;
3822 if (info) return info_damage(0, 0, dam);
3826 if (!get_aim_dir(&dir)) return NULL;
3828 fire_ball(GF_CHAOS, dir, dam, rad);
3835 if (name) return "¾¼ÔÊÑÍÆ";
3836 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤòÊѿȤµ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
3838 if (name) return "Polymorph Other";
3839 if (desc) return "Attempts to polymorph a monster.";
3845 if (info) return info_power(power);
3849 if (!get_aim_dir(&dir)) return NULL;
3851 poly_monster(dir, plev);
3858 if (name) return "Ï¢º¿°ðºÊ";
3859 if (desc) return "Á´Êý¸þ¤ËÂФ·¤ÆÅÅ·â¤Î¥Ó¡¼¥à¤òÊü¤Ä¡£";
3861 if (name) return "Chain Lightning";
3862 if (desc) return "Fires lightning beams in all directions.";
3866 int dice = 5 + plev / 10;
3869 if (info) return info_damage(dice, sides, 0);
3873 for (dir = 0; dir <= 9; dir++)
3874 fire_beam(GF_ELEC, dir, damroll(dice, sides));
3881 if (name) return "ËâÎÏÉõÆþ";
3882 if (desc) return "¾ó/ËâË¡ËÀ¤Î½¼Å¶²ó¿ô¤òÁý¤ä¤¹¤«¡¢½¼Å¶Ãæ¤Î¥í¥Ã¥É¤Î½¼Å¶»þ´Ö¤ò¸º¤é¤¹¡£";
3884 if (name) return "Arcane Binding";
3885 if (desc) return "Recharges staffs, wands or rods.";
3891 if (info) return info_power(power);
3895 if (!recharge(power)) return NULL;
3902 if (name) return "¸¶»Òʬ²ò";
3903 if (desc) return "µðÂç¤Êʬ²ò¤Îµå¤òÊü¤Ä¡£";
3905 if (name) return "Disintegrate";
3906 if (desc) return "Fires a huge ball of disintegration.";
3910 int dam = plev + 70;
3911 int rad = 3 + plev / 40;
3913 if (info) return info_damage(0, 0, dam);
3917 if (!get_aim_dir(&dir)) return NULL;
3919 fire_ball(GF_DISINTEGRATE, dir, dam, rad);
3926 if (name) return "¸½¼ÂÊÑÍÆ";
3927 if (desc) return "¸½ºß¤Î³¬¤òºÆ¹½À®¤¹¤ë¡£";
3929 if (name) return "Alter Reality";
3930 if (desc) return "Recreates current dungeon level.";
3937 if (info) return info_delay(base, sides);
3948 if (name) return "¥Þ¥¸¥Ã¥¯¡¦¥í¥±¥Ã¥È";
3949 if (desc) return "¥í¥±¥Ã¥È¤òȯ¼Í¤¹¤ë¡£";
3951 if (name) return "Magic Rocket";
3952 if (desc) return "Fires a magic rocket.";
3956 int dam = 120 + plev * 2;
3959 if (info) return info_damage(0, 0, dam);
3963 if (!get_aim_dir(&dir)) return NULL;
3966 msg_print("¥í¥±¥Ã¥Èȯ¼Í¡ª");
3968 msg_print("You launch a rocket!");
3971 fire_rocket(GF_ROCKET, dir, dam, rad);
3978 if (name) return "º®Æ٤οÏ";
3979 if (desc) return "Éð´ï¤Ë¥«¥ª¥¹¤Î°À¤ò¤Ä¤±¤ë¡£";
3981 if (name) return "Chaos Branding";
3982 if (desc) return "Makes current weapon a Chaotic weapon.";
3995 if (name) return "°Ë⾤´";
3996 if (desc) return "°Ëâ¤ò1Âξ¤´¤¹¤ë¡£";
3998 if (name) return "Summon Demon";
3999 if (desc) return "Summons a demon.";
4006 bool pet = !one_in_(3);
4008 if (pet) mode |= PM_FORCE_PET;
4009 else mode |= PM_NO_PET;
4010 if (!(pet && (plev < 50))) mode |= PM_ALLOW_GROUP;
4012 if (summon_specific((pet ? -1 : 0), py, px, (plev * 3) / 2, SUMMON_DEMON, mode))
4015 msg_print("ⲫ¤Î°½¤¬½¼Ëþ¤·¤¿¡£");
4017 msg_print("The area fills with a stench of sulphur and brimstone.");
4023 msg_print("¡Ö¤´ÍѤǤ´¤¶¤¤¤Þ¤¹¤«¡¢¤´¼ç¿ÍÍÍ¡×");
4025 msg_print("'What is thy bidding... Master?'");
4031 msg_print("¡ÖÈܤ·¤¼Ô¤è¡¢²æ¤ÏÆò¤Î²¼Ëͤˤ¢¤é¤º¡ª ¤ªÁ°¤Îº²¤òĺ¤¯¤¾¡ª¡×");
4033 msg_print("'NON SERVIAM! Wretch! I shall feast on thy mortal soul!'");
4043 if (name) return "½ÅÎϸ÷Àþ";
4044 if (desc) return "½ÅÎϤΥӡ¼¥à¤òÊü¤Ä¡£";
4046 if (name) return "Beam of Gravity";
4047 if (desc) return "Fires a beam of gravity.";
4051 int dice = 9 + (plev - 5) / 4;
4054 if (info) return info_damage(dice, sides, 0);
4058 if (!get_aim_dir(&dir)) return NULL;
4060 fire_beam(GF_GRAVITY, dir, damroll(dice, sides));
4067 if (name) return "ήÀ±·²";
4068 if (desc) return "¼«Ê¬¤Î¼þÊÕ¤Ëð¨ÀФòÍî¤È¤¹¡£";
4070 if (name) return "Meteor Swarm";
4071 if (desc) return "Makes meteor balls fall down to nearby random locations.";
4078 if (info) return info_multi_damage(dam);
4082 cast_meteor(dam, rad);
4089 if (name) return "±ë¤Î°ì·â";
4090 if (desc) return "¼«Ê¬¤òÃæ¿´¤È¤·¤¿Ä¶µðÂç¤Ê±ê¤Îµå¤òȯÀ¸¤µ¤»¤ë¡£";
4092 if (name) return "Flame Strike";
4093 if (desc) return "Generate a huge ball of fire centered on you.";
4097 int dam = 300 + 3 * plev;
4100 if (info) return info_damage(0, 0, dam/2);
4104 fire_ball(GF_FIRE, 0, dam, rad);
4111 if (name) return "º®ÆÙ¾¤Íè";
4112 if (desc) return "¥é¥ó¥À¥à¤Ê°À¤Îµå¤ä¥Ó¡¼¥à¤òȯÀ¸¤µ¤»¤ë¡£";
4114 if (name) return "Call Chaos";
4115 if (desc) return "Generate random kind of balls or beams.";
4119 if (info) return format("%s150 / 250", s_dam);
4130 if (name) return "¼«¸ÊÊÑÍÆ";
4131 if (desc) return "¼«Ê¬¤òÊѿȤµ¤»¤è¤¦¤È¤¹¤ë¡£";
4133 if (name) return "Polymorph Self";
4134 if (desc) return "Polymorphs yourself.";
4141 if (!get_check("ÊѿȤ·¤Þ¤¹¡£¤è¤í¤·¤¤¤Ç¤¹¤«¡©")) return NULL;
4143 if (!get_check("You will polymorph yourself. Are you sure? ")) return NULL;
4152 if (name) return "ËâÎϤÎÍò";
4153 if (desc) return "Èó¾ï¤Ë¶¯ÎϤǵðÂç¤Ê½ã¿è¤ÊËâÎϤεå¤òÊü¤Ä¡£";
4155 if (name) return "Mana Storm";
4156 if (desc) return "Fires an extremely powerful huge ball of pure mana.";
4160 int dam = 300 + plev * 4;
4163 if (info) return info_damage(0, 0, dam);
4167 if (!get_aim_dir(&dir)) return NULL;
4169 fire_ball(GF_MANA, dir, dam, rad);
4176 if (name) return "¥í¥°¥ë¥¹¤Î¥Ö¥ì¥¹";
4177 if (desc) return "Èó¾ï¤Ë¶¯ÎϤʥ«¥ª¥¹¤Îµå¤òÊü¤Ä¡£";
4179 if (name) return "Breathe Logrus";
4180 if (desc) return "Fires an extremely powerful ball of chaos.";
4184 int dam = p_ptr->chp;
4187 if (info) return info_damage(0, 0, dam);
4191 if (!get_aim_dir(&dir)) return NULL;
4193 fire_ball(GF_CHAOS, dir, dam, rad);
4200 if (name) return "µõ̵¾¤Íè";
4201 if (desc) return "¼«Ê¬¤Ë¼þ°Ï¤Ë¸þ¤«¤Ã¤Æ¡¢¥í¥±¥Ã¥È¡¢½ã¿è¤ÊËâÎϤε塢Êü¼ÍÀÇÑ´þʪ¤Îµå¤òÊü¤Ä¡£¤¿¤À¤·¡¢ÊɤËÎÙÀܤ·¤Æ»ÈÍѤ¹¤ë¤È¹ÈϰϤòÇ˲õ¤¹¤ë¡£";
4203 if (name) return "Call the Void";
4204 if (desc) return "Fires rockets, mana balls and nuclear waste balls in all directions each unless you are not adjacent to any walls. Otherwise *destroys* huge area.";
4208 if (info) return format("%s3 * 175", s_dam);
4222 static cptr do_death_spell(int spell, int mode)
4224 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
4225 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
4226 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
4227 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
4230 static const char s_dam[] = "»½ý:";
4231 static const char s_random[] = "¥é¥ó¥À¥à";
4233 static const char s_dam[] = "dam ";
4234 static const char s_random[] = "random";
4238 int plev = p_ptr->lev;
4244 if (name) return "̵À¸Ì¿´¶ÃÎ";
4245 if (desc) return "¶á¤¯¤ÎÀ¸Ì¿¤Î¤Ê¤¤¥â¥ó¥¹¥¿¡¼¤ò´¶ÃΤ¹¤ë¡£";
4247 if (name) return "Detect Unlife";
4248 if (desc) return "Detects all nonliving monsters in your vicinity.";
4252 int rad = DETECT_RAD_DEFAULT;
4254 if (info) return info_radius(rad);
4258 detect_monsters_nonliving(rad);
4265 if (name) return "¼ö»¦ÃÆ";
4266 if (desc) return "¤´¤¯¾®¤µ¤Ê¼Ù°¤ÊÎϤò»ý¤Ä¥Ü¡¼¥ë¤òÊü¤Ä¡£Á±Îɤʥâ¥ó¥¹¥¿¡¼¤Ë¤ÏÂ礤ʥÀ¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
4268 if (name) return "Malediction";
4269 if (desc) return "Fires a tiny ball of evil power which hurts good monsters greatly.";
4273 int dice = 3 + (plev - 1) / 5;
4277 if (info) return info_damage(dice, sides, 0);
4281 if (!get_aim_dir(&dir)) return NULL;
4284 * A radius-0 ball may (1) be aimed at
4285 * objects etc., and will affect them;
4286 * (2) may be aimed at ANY visible
4287 * monster, unlike a 'bolt' which must
4288 * travel to the monster.
4291 fire_ball(GF_HELL_FIRE, dir, damroll(dice, sides), rad);
4295 /* Special effect first */
4296 int effect = randint1(1000);
4299 fire_ball_hide(GF_DEATH_RAY, dir, plev * 200, 0);
4300 else if (effect < 500)
4301 fire_ball_hide(GF_TURN_ALL, dir, plev, 0);
4302 else if (effect < 800)
4303 fire_ball_hide(GF_OLD_CONF, dir, plev, 0);
4305 fire_ball_hide(GF_STUN, dir, plev, 0);
4313 if (name) return "¼Ù°´¶ÃÎ";
4314 if (desc) return "¶á¤¯¤Î¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ò´¶ÃΤ¹¤ë¡£";
4316 if (name) return "Detect Evil";
4317 if (desc) return "Detects all evil monsters in your vicinity.";
4321 int rad = DETECT_RAD_DEFAULT;
4323 if (info) return info_radius(rad);
4327 detect_monsters_evil(rad);
4334 if (name) return "°½±À";
4335 if (desc) return "ÆǤεå¤òÊü¤Ä¡£";
4337 if (name) return "Stinking Cloud";
4338 if (desc) return "Fires a ball of poison.";
4342 int dam = 10 + plev / 2;
4345 if (info) return info_damage(0, 0, dam);
4349 if (!get_aim_dir(&dir)) return NULL;
4351 fire_ball(GF_POIS, dir, dam, rad);
4358 if (name) return "¹õ¤¤Ì²¤ê";
4359 if (desc) return "1ÂΤΥâ¥ó¥¹¥¿¡¼¤ò̲¤é¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
4361 if (name) return "Black Sleep";
4362 if (desc) return "Attempts to sleep a monster.";
4368 if (info) return info_power(power);
4372 if (!get_aim_dir(&dir)) return NULL;
4374 sleep_monster(dir, plev);
4381 if (name) return "ÂÑÆÇ";
4382 if (desc) return "°ìÄê»þ´Ö¡¢ÆǤؤÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
4384 if (name) return "Resist Poison";
4385 if (desc) return "Gives resistance to poison. This resistance can be added to which from equipment for more powerful resistance.";
4391 if (info) return info_duration(base, base);
4395 set_oppose_pois(randint1(base) + base, FALSE);
4402 if (name) return "¶²¹²";
4403 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤò¶²Éݤµ¤»¡¢Û¯Û°¤µ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
4405 if (name) return "Horrify";
4406 if (desc) return "Attempts to scare and stun a monster.";
4412 if (info) return info_power(power);
4416 if (!get_aim_dir(&dir)) return NULL;
4418 fear_monster(dir, power);
4419 stun_monster(dir, power);
4426 if (name) return "¥¢¥ó¥Ç¥Ã¥É½¾Â°";
4427 if (desc) return "¥¢¥ó¥Ç¥Ã¥É1ÂΤò̥λ¤¹¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
4429 if (name) return "Enslave Undead";
4430 if (desc) return "Attempts to charm an undead monster.";
4436 if (info) return info_power(power);
4440 if (!get_aim_dir(&dir)) return NULL;
4442 control_one_undead(dir, power);
4449 if (name) return "¥¨¥ó¥È¥í¥Ô¡¼¤Îµå";
4450 if (desc) return "À¸Ì¿¤Î¤¢¤ë¼Ô¤Ë¸ú²Ì¤Î¤¢¤ëµå¤òÊü¤Ä¡£";
4452 if (name) return "Orb of Entropy";
4453 if (desc) return "Fires a ball which damages living monsters.";
4459 int rad = (plev < 30) ? 2 : 3;
4462 if (p_ptr->pclass == CLASS_MAGE ||
4463 p_ptr->pclass == CLASS_HIGH_MAGE ||
4464 p_ptr->pclass == CLASS_SORCERER)
4465 base = plev + plev / 2;
4467 base = plev + plev / 4;
4470 if (info) return info_damage(dice, sides, base);
4474 if (!get_aim_dir(&dir)) return NULL;
4476 fire_ball(GF_OLD_DRAIN, dir, damroll(dice, dice) + base, rad);
4483 if (name) return "ÃϹö¤ÎÌð";
4484 if (desc) return "ÃϹö¤Î¥Ü¥ë¥È¤â¤·¤¯¤Ï¥Ó¡¼¥à¤òÊü¤Ä¡£";
4486 if (name) return "Nether Bolt";
4487 if (desc) return "Fires a bolt or beam of nether.";
4491 int dice = 8 + (plev - 5) / 4;
4494 if (info) return info_damage(dice, sides, 0);
4498 if (!get_aim_dir(&dir)) return NULL;
4500 fire_bolt_or_beam(beam_chance(), GF_NETHER, dir, damroll(dice, sides));
4507 if (name) return "»¦Ù¤±À";
4508 if (desc) return "¼«Ê¬¤òÃæ¿´¤È¤·¤¿ÆǤεå¤òȯÀ¸¤µ¤»¤ë¡£";
4510 if (name) return "Cloud kill";
4511 if (desc) return "Generate a ball of poison centered on you.";
4515 int dam = (30 + plev) * 2;
4516 int rad = plev / 10 + 2;
4518 if (info) return info_damage(0, 0, dam/2);
4522 project(0, rad, py, px, dam, GF_POIS, PROJECT_KILL | PROJECT_ITEM, -1);
4529 if (name) return "¥â¥ó¥¹¥¿¡¼¾ÃÌÇ";
4530 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤò¾Ã¤·µî¤ë¡£·Ð¸³Ãͤ䥢¥¤¥Æ¥à¤Ï¼ê¤ËÆþ¤é¤Ê¤¤¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
4532 if (name) return "Genocide One";
4533 if (desc) return "Attempts to vanish a monster.";
4537 int power = plev + 50;
4539 if (info) return info_power(power);
4543 if (!get_aim_dir(&dir)) return NULL;
4545 fire_ball_hide(GF_GENOCIDE, dir, power, 0);
4552 if (name) return "ÆǤοÏ";
4553 if (desc) return "Éð´ï¤ËÆǤΰÀ¤ò¤Ä¤±¤ë¡£";
4555 if (name) return "Poison Branding";
4556 if (desc) return "Makes current weapon poison branded.";
4569 if (name) return "µÛ·ì¥É¥ì¥¤¥ó";
4570 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤ«¤éÀ¸Ì¿ÎϤòµÛ¤¤¤È¤ë¡£µÛ¤¤¤È¤Ã¤¿À¸Ì¿ÎϤˤè¤Ã¤ÆËþÊ¢ÅÙ¤¬¾å¤¬¤ë¡£";
4572 if (name) return "Vampiric Drain";
4573 if (desc) return "Absorbs some HP from a monster and gives them to you. You will also gain nutritional sustenance from this.";
4578 int sides = plev * 2;
4579 int base = plev * 2;
4581 if (info) return info_damage(dice, sides, base);
4585 int dam = base + damroll(dice, sides);
4587 if (!get_aim_dir(&dir)) return NULL;
4589 if (drain_life(dir, dam))
4591 chg_virtue(V_SACRIFICE, -1);
4592 chg_virtue(V_VITALITY, -1);
4597 * Gain nutritional sustenance:
4600 * A Food ration gives 5000
4601 * food points (by contrast)
4602 * Don't ever get more than
4603 * "Full" this way But if we
4604 * ARE Gorged, it won't cure
4607 dam = p_ptr->food + MIN(5000, 100 * dam);
4609 /* Not gorged already */
4610 if (p_ptr->food < PY_FOOD_MAX)
4611 set_food(dam >= PY_FOOD_MAX ? PY_FOOD_MAX - 1 : dam);
4619 if (name) return "È¿º²¤Î½Ñ";
4620 if (desc) return "¼þ°Ï¤Î»àÂΤä¹ü¤òÀ¸¤ÊÖ¤¹¡£";
4622 if (name) return "Animate dead";
4623 if (desc) return "Resurrects nearby corpse and skeletons. And makes these your pets.";
4629 animate_dead(0, py, px);
4636 if (name) return "Ëõ»¦";
4637 if (desc) return "»ØÄꤷ¤¿Ê¸»ú¤Î¥â¥ó¥¹¥¿¡¼¤ò¸½ºß¤Î³¬¤«¤é¾Ã¤·µî¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
4639 if (name) return "Genocide";
4640 if (desc) return "Eliminates an entire class of monster, exhausting you. Powerful or unique monsters may resist.";
4644 int power = plev+50;
4646 if (info) return info_power(power);
4650 symbol_genocide(power, TRUE);
4657 if (name) return "¶¸Àï»Î²½";
4658 if (desc) return "¶¸Àï»Î²½¤·¡¢¶²Éݤò½üµî¤¹¤ë¡£";
4660 if (name) return "Berserk";
4661 if (desc) return "Gives bonus to hit and HP, immunity to fear for a while. But decreases AC.";
4667 if (info) return info_duration(base, base);
4671 set_shero(randint1(base) + base, FALSE);
4680 if (name) return "°Î´";
4681 if (desc) return "¥é¥ó¥À¥à¤ÇÍÍ¡¹¤Ê¸ú²Ì¤¬µ¯¤³¤ë¡£";
4683 if (name) return "Invoke Spirits";
4684 if (desc) return "Causes random effects.";
4688 if (info) return s_random;
4692 if (!get_aim_dir(&dir)) return NULL;
4694 cast_invoke_spirits(dir);
4701 if (name) return "°Å¹õ¤ÎÌð";
4702 if (desc) return "°Å¹õ¤Î¥Ü¥ë¥È¤â¤·¤¯¤Ï¥Ó¡¼¥à¤òÊü¤Ä¡£";
4704 if (name) return "Dark Bolt";
4705 if (desc) return "Fires a bolt or beam of darkness.";
4709 int dice = 4 + (plev - 5) / 4;
4712 if (info) return info_damage(dice, sides, 0);
4716 if (!get_aim_dir(&dir)) return NULL;
4718 fire_bolt_or_beam(beam_chance(), GF_DARK, dir, damroll(dice, sides));
4725 if (name) return "¶¸ÍðÀï»Î";
4726 if (desc) return "¶¸Àï»Î²½¤·¡¢¶²Éݤò½üµî¤·¡¢²Ã®¤¹¤ë¡£";
4728 if (name) return "Battle Frenzy";
4729 if (desc) return "Gives another bonus to hit and HP, immunity to fear for a while. Hastes you. But decreases AC.";
4734 int sp_base = plev / 2;
4735 int sp_sides = 20 + plev / 2;
4737 if (info) return info_duration(b_base, b_base);
4741 set_shero(randint1(25) + 25, FALSE);
4744 set_fast(randint1(sp_sides) + sp_base, FALSE);
4751 if (name) return "µÛ·ì¤Î¿Ï";
4752 if (desc) return "Éð´ï¤ËµÛ·ì¤Î°À¤ò¤Ä¤±¤ë¡£";
4754 if (name) return "Vampiric Branding";
4755 if (desc) return "Makes current weapon Vampiric.";
4768 if (name) return "¿¿¡¦µÛ·ì";
4769 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤ«¤éÀ¸Ì¿ÎϤòµÛ¤¤¤È¤ë¡£µÛ¤¤¤È¤Ã¤¿À¸Ì¿ÎϤˤè¤Ã¤ÆÂÎÎϤ¬²óÉü¤¹¤ë¡£";
4771 if (name) return "Vampirism True";
4772 if (desc) return "Fires 3 bolts. Each of the bolts absorbs some HP from a monster and gives them to you.";
4778 if (info) return format("%s3*%d", s_dam, dam);
4784 if (!get_aim_dir(&dir)) return NULL;
4786 chg_virtue(V_SACRIFICE, -1);
4787 chg_virtue(V_VITALITY, -1);
4789 for (i = 0; i < 3; i++)
4791 if (drain_life(dir, dam))
4800 if (name) return "»à¤Î¸Àº²";
4801 if (desc) return "»ë³¦Æâ¤ÎÀ¸Ì¿¤Î¤¢¤ë¥â¥ó¥¹¥¿¡¼¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
4803 if (name) return "Nether Wave";
4804 if (desc) return "Damages all living monsters in sight.";
4808 int sides = plev * 3;
4810 if (info) return info_damage(1, sides, 0);
4814 dispel_living(randint1(sides));
4821 if (name) return "°Å¹õ¤ÎÍò";
4822 if (desc) return "µðÂç¤Ê°Å¹õ¤Îµå¤òÊü¤Ä¡£";
4824 if (name) return "Darkness Storm";
4825 if (desc) return "Fires a huge ball of darkness.";
4829 int dam = 100 + plev * 2;
4832 if (info) return info_damage(0, 0, dam);
4836 if (!get_aim_dir(&dir)) return NULL;
4838 fire_ball(GF_DARK, dir, dam, rad);
4845 if (name) return "»à¤Î¸÷Àþ";
4846 if (desc) return "»à¤Î¸÷Àþ¤òÊü¤Ä¡£";
4848 if (name) return "Death Ray";
4849 if (desc) return "Fires a beam of death.";
4855 if (!get_aim_dir(&dir)) return NULL;
4857 death_ray(dir, plev);
4864 if (name) return "»à¼Ô¾¤´";
4865 if (desc) return "1ÂΤΥ¢¥ó¥Ç¥Ã¥É¤ò¾¤´¤¹¤ë¡£";
4867 if (name) return "Raise the Dead";
4868 if (desc) return "Summons an undead monster.";
4875 bool pet = one_in_(3);
4878 type = (plev > 47 ? SUMMON_HI_UNDEAD : SUMMON_UNDEAD);
4880 if (!pet || (pet && (plev > 24) && one_in_(3)))
4881 mode |= PM_ALLOW_GROUP;
4883 if (pet) mode |= PM_FORCE_PET;
4884 else mode |= (PM_ALLOW_UNIQUE | PM_NO_PET);
4886 if (summon_specific((pet ? -1 : 0), py, px, (plev * 3) / 2, type, mode))
4889 msg_print("Î䤿¤¤É÷¤¬¤¢¤Ê¤¿¤Î¼þ¤ê¤Ë¿á¤»Ï¤á¤¿¡£¤½¤ì¤ÏÉåÇÔ½¤ò±¿¤ó¤Ç¤¤¤ë...");
4891 msg_print("Cold winds begin to blow around you, carrying with them the stench of decay...");
4898 msg_print("¸Å¤¨¤Î»à¤»¤ë¼Ô¶¦¤¬¤¢¤Ê¤¿¤Ë»Å¤¨¤ë¤¿¤áÅÚ¤«¤éᴤä¿¡ª");
4900 msg_print("Ancient, long-dead forms arise from the ground to serve you!");
4906 msg_print("»à¼Ô¤¬á´¤Ã¤¿¡£Ì²¤ê¤ò˸¤²¤ë¤¢¤Ê¤¿¤òȳ¤¹¤ë¤¿¤á¤Ë¡ª");
4908 msg_print("'The dead arise... to punish you for disturbing them!'");
4912 chg_virtue(V_UNLIFE, 1);
4920 if (name) return "»à¼Ô¤ÎÈëÅÁ";
4921 if (desc) return "¥¢¥¤¥Æ¥à¤ò1¤Ä¼±Ê̤¹¤ë¡£¥ì¥Ù¥ë¤¬¹â¤¤¤È¥¢¥¤¥Æ¥à¤ÎǽÎϤò´°Á´¤ËÃΤ뤳¤È¤¬¤Ç¤¤ë¡£";
4923 if (name) return "Esoteria";
4924 if (desc) return "Identifies an item. Or *identifies* an item at higher level.";
4930 if (randint1(50) > plev)
4932 if (!ident_spell(FALSE)) return NULL;
4936 if (!identify_fully(FALSE)) return NULL;
4944 if (name) return "µÛ·ìµ´ÊѲ½";
4945 if (desc) return "°ìÄê»þ´Ö¡¢µÛ·ìµ´¤ËÊѲ½¤¹¤ë¡£ÊѲ½¤·¤Æ¤¤¤ë´Ö¤ÏËÜÍè¤Î¼ï²¤ÎǽÎϤò¼º¤¤¡¢Âå¤ï¤ê¤ËµÛ·ìµ´¤È¤·¤Æ¤ÎǽÎϤòÆÀ¤ë¡£";
4947 if (name) return "Polymorph Vampire";
4948 if (desc) return "Mimic a vampire for a while. Loses abilities of original race and gets abilities as a vampire.";
4952 int base = 10 + plev / 2;
4954 if (info) return info_duration(base, base);
4958 set_mimic(base + randint1(base), MIMIC_VAMPIRE, FALSE);
4965 if (name) return "À¸Ì¿ÎÏÉü³è";
4966 if (desc) return "¼º¤Ã¤¿·Ð¸³Ãͤò²óÉü¤¹¤ë¡£";
4968 if (name) return "Restore Life";
4969 if (desc) return "Restore lost experience.";
4982 if (name) return "¼þÊÕËõ»¦";
4983 if (desc) return "¼«Ê¬¤Î¼þ°Ï¤Ë¤¤¤ë¥â¥ó¥¹¥¿¡¼¤ò¸½ºß¤Î³¬¤«¤é¾Ã¤·µî¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
4985 if (name) return "Mass Genocide";
4986 if (desc) return "Eliminates all nearby monsters, exhausting you. Powerful or unique monsters may be able to resist.";
4990 int power = plev + 50;
4992 if (info) return info_power(power);
4996 mass_genocide(power, TRUE);
5003 if (name) return "ÃϹö¤Î¹å²Ð";
5004 if (desc) return "¼Ù°¤ÊÎϤò»ý¤ÄÊõ¼î¤òÊü¤Ä¡£Á±Îɤʥâ¥ó¥¹¥¿¡¼¤Ë¤ÏÂ礤ʥÀ¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
5006 if (name) return "Hellfire";
5007 if (desc) return "Fires a powerful ball of evil power. Hurts good monsters greatly.";
5014 if (info) return info_damage(0, 0, dam);
5018 if (!get_aim_dir(&dir)) return NULL;
5020 fire_ball(GF_HELL_FIRE, dir, dam, rad);
5022 take_hit(DAMAGE_USELIFE, 20 + randint1(30), "ÃϹö¤Î¹å²Ð¤Î¼öʸ¤ò¾§¤¨¤¿ÈèÏ«", -1);
5024 take_hit(DAMAGE_USELIFE, 20 + randint1(30), "the strain of casting Hellfire", -1);
5032 if (name) return "Í©Âβ½";
5033 if (desc) return "°ìÄê»þ´Ö¡¢ÊɤòÄ̤êÈ´¤±¤ë¤³¤È¤¬¤Ç¤¼õ¤±¤ë¥À¥á¡¼¥¸¤¬·Ú¸º¤µ¤ì¤ëÍ©ÂΤξõÂÖ¤ËÊѿȤ¹¤ë¡£";
5035 if (name) return "Wraithform";
5036 if (desc) return "Becomes wraith form which gives ability to pass walls and makes all damages half.";
5040 int base = plev / 2;
5042 if (info) return info_duration(base, base);
5046 set_wraith_form(randint1(base) + base, FALSE);
5056 static cptr do_trump_spell(int spell, int mode)
5058 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
5059 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
5060 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
5061 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
5062 bool fail = (mode == SPELL_FAIL) ? TRUE : FALSE;
5065 static const char s_random[] = "¥é¥ó¥À¥à";
5067 static const char s_random[] = "random";
5071 int plev = p_ptr->lev;
5077 if (name) return "¥·¥ç¡¼¥È¡¦¥Æ¥ì¥Ý¡¼¥È";
5078 if (desc) return "¶áµ÷Î¥¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¤¹¤ë¡£";
5080 if (name) return "Phase Door";
5081 if (desc) return "Teleport short distance.";
5087 if (info) return info_range(range);
5091 teleport_player(range, 0L);
5098 if (name) return "ÃØéá¤Î¥«¡¼¥É";
5099 if (desc) return "ÃØéá¤ò¾¤´¤¹¤ë¡£";
5101 if (name) return "Trump Spiders";
5102 if (desc) return "Summons spiders.";
5109 msg_print("¤¢¤Ê¤¿¤ÏÃØéá¤Î¥«¡¼¥É¤Ë½¸Ã椹¤ë...");
5111 msg_print("You concentrate on the trump of an spider...");
5114 if (trump_summoning(1, !fail, py, px, 0, SUMMON_SPIDER, PM_ALLOW_GROUP))
5119 msg_print("¾¤´¤µ¤ì¤¿ÃØéá¤ÏÅܤäƤ¤¤ë¡ª");
5121 msg_print("The summoned spiders get angry!");
5131 if (name) return "¥·¥ã¥Ã¥Õ¥ë";
5132 if (desc) return "¥«¡¼¥É¤ÎÀꤤ¤ò¤¹¤ë¡£";
5134 if (name) return "Shuffle";
5135 if (desc) return "Causes random effects.";
5139 if (info) return s_random;
5150 if (name) return "¥Õ¥í¥¢¡¦¥ê¥»¥Ã¥È";
5151 if (desc) return "ºÇ¿¼³¬¤òÊѹ¹¤¹¤ë¡£";
5153 if (name) return "Reset Recall";
5154 if (desc) return "Resets the 'deepest' level for recall spell.";
5160 if (!reset_recall()) return NULL;
5167 if (name) return "¥Æ¥ì¥Ý¡¼¥È";
5168 if (desc) return "±óµ÷Î¥¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¤¹¤ë¡£";
5170 if (name) return "Teleport";
5171 if (desc) return "Teleport long distance.";
5175 int range = plev * 4;
5177 if (info) return info_range(range);
5181 teleport_player(range, 0L);
5188 if (name) return "´¶ÃΤΥ«¡¼¥É";
5189 if (desc) return "°ìÄê»þ´Ö¡¢¥Æ¥ì¥Ñ¥·¡¼Ç½ÎϤòÆÀ¤ë¡£";
5191 if (name) return "Trump Spying";
5192 if (desc) return "Gives telepathy for a while.";
5199 if (info) return info_duration(base, sides);
5203 set_tim_esp(randint1(sides) + base, FALSE);
5210 if (name) return "¥Æ¥ì¥Ý¡¼¥È¡¦¥â¥ó¥¹¥¿¡¼";
5211 if (desc) return "¥â¥ó¥¹¥¿¡¼¤ò¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤ë¥Ó¡¼¥à¤òÊü¤Ä¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
5213 if (name) return "Teleport Away";
5214 if (desc) return "Teleports all monsters on the line away unless resisted.";
5220 if (info) return info_power(power);
5224 if (!get_aim_dir(&dir)) return NULL;
5226 fire_beam(GF_AWAY_ALL, dir, power);
5233 if (name) return "ưʪ¤Î¥«¡¼¥É";
5234 if (desc) return "1ÂΤÎưʪ¤ò¾¤´¤¹¤ë¡£";
5236 if (name) return "Trump Animals";
5237 if (desc) return "Summons an animal.";
5243 int type = (!fail ? SUMMON_ANIMAL_RANGER : SUMMON_ANIMAL);
5246 msg_print("¤¢¤Ê¤¿¤Ïưʪ¤Î¥«¡¼¥É¤Ë½¸Ã椹¤ë...");
5248 msg_print("You concentrate on the trump of an animal...");
5251 if (trump_summoning(1, !fail, py, px, 0, type, 0L))
5256 msg_print("¾¤´¤µ¤ì¤¿Æ°Êª¤ÏÅܤäƤ¤¤ë¡ª");
5258 msg_print("The summoned animal gets angry!");
5268 if (name) return "°ÜÆ°¤Î¥«¡¼¥É";
5269 if (desc) return "¥¢¥¤¥Æ¥à¤ò¼«Ê¬¤Î¸µ¤Ø°ÜÆ°¤µ¤»¤ë¡£";
5271 if (name) return "Trump Reach";
5272 if (desc) return "Pulls a distant item close to you.";
5276 int weight = plev * 15;
5278 if (info) return info_weight(weight);
5282 if (!get_aim_dir(&dir)) return NULL;
5284 fetch(dir, weight, FALSE);
5291 if (name) return "¥«¥ß¥«¥¼¤Î¥«¡¼¥É";
5292 if (desc) return "Ê£¿ô¤ÎÇúȯ¤¹¤ë¥â¥ó¥¹¥¿¡¼¤ò¾¤´¤¹¤ë¡£";
5294 if (name) return "Trump Kamikaze";
5295 if (desc) return "Summons monsters which explode by itself.";
5306 if (!target_set(TARGET_KILL)) return NULL;
5312 /* Summons near player when failed */
5317 if (p_ptr->pclass == CLASS_BEASTMASTER)
5318 type = SUMMON_KAMIKAZE_LIVING;
5320 type = SUMMON_KAMIKAZE;
5323 msg_print("¤¢¤Ê¤¿¤Ï¥«¥ß¥«¥¼¤Î¥«¡¼¥É¤Ë½¸Ã椹¤ë...");
5325 msg_print("You concentrate on several trumps at once...");
5328 if (trump_summoning(2 + randint0(plev / 7), !fail, y, x, 0, type, 0L))
5333 msg_print("¾¤´¤µ¤ì¤¿¥â¥ó¥¹¥¿¡¼¤ÏÅܤäƤ¤¤ë¡ª");
5335 msg_print("The summoned creatures get angry!");
5345 if (name) return "¸¸Î´";
5346 if (desc) return "1ÂΤÎÍ©Îî¤ò¾¤´¤¹¤ë¡£";
5348 if (name) return "Phantasmal Servant";
5349 if (desc) return "Summons a ghost.";
5353 /* Phantasmal Servant is not summoned as enemy when failed */
5356 int summon_lev = plev * 2 / 3 + randint1(plev / 2);
5358 if (trump_summoning(1, !fail, py, px, (summon_lev * 3 / 2), SUMMON_PHANTOM, 0L))
5361 msg_print("¸æÍѤǤ´¤¶¤¤¤Þ¤¹¤«¡¢¸æ¼ç¿ÍÍÍ¡©");
5363 msg_print("'Your wish, master?'");
5372 if (name) return "¥¹¥Ô¡¼¥É¡¦¥â¥ó¥¹¥¿¡¼";
5373 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤò²Ã®¤µ¤»¤ë¡£";
5375 if (name) return "Haste Monster";
5376 if (desc) return "Hastes a monster.";
5384 /* Temporary enable target_pet option */
5385 bool old_target_pet = target_pet;
5388 result = get_aim_dir(&dir);
5390 /* Restore target_pet option */
5391 target_pet = old_target_pet;
5393 if (!result) return NULL;
5395 speed_monster(dir, plev);
5402 if (name) return "¥Æ¥ì¥Ý¡¼¥È¡¦¥ì¥Ù¥ë";
5403 if (desc) return "½Ö»þ¤Ë¾å¤«²¼¤Î³¬¤Ë¥Æ¥ì¥Ý¡¼¥È¤¹¤ë¡£";
5405 if (name) return "Teleport Level";
5406 if (desc) return "Teleport to up or down stairs in a moment.";
5413 if (!get_check("ËÜÅö¤Ë¾¤Î³¬¤Ë¥Æ¥ì¥Ý¡¼¥È¤·¤Þ¤¹¤«¡©")) return NULL;
5415 if (!get_check("Are you sure? (Teleport Level)")) return NULL;
5424 if (name) return "¼¡¸µ¤ÎÈâ";
5425 if (desc) return "ûµ÷Î¥Æâ¤Î»ØÄꤷ¤¿¾ì½ê¤Ë¥Æ¥ì¥Ý¡¼¥È¤¹¤ë¡£";
5427 if (name) return "Dimension Door";
5428 if (desc) return "Teleport to given location.";
5432 int range = plev / 2 + 10;
5434 if (info) return info_range(range);
5439 msg_print("¼¡¸µ¤ÎÈ⤬³«¤¤¤¿¡£ÌÜŪÃϤòÁª¤ó¤Ç²¼¤µ¤¤¡£");
5441 msg_print("You open a dimensional gate. Choose a destination.");
5444 if (!dimension_door()) return NULL;
5451 if (name) return "µ¢´Ô¤Î¼öʸ";
5452 if (desc) return "ÃϾå¤Ë¤¤¤ë¤È¤¤Ï¥À¥ó¥¸¥ç¥ó¤ÎºÇ¿¼³¬¤Ø¡¢¥À¥ó¥¸¥ç¥ó¤Ë¤¤¤ë¤È¤¤ÏÃϾå¤Ø¤È°ÜÆ°¤¹¤ë¡£";
5454 if (name) return "Word of Recall";
5455 if (desc) return "Recalls player from dungeon to town, or from town to the deepest level of dungeon.";
5462 if (info) return info_delay(base, sides);
5466 if (!word_of_recall()) return NULL;
5473 if (name) return "²øʪÄÉÊü";
5474 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
5476 if (name) return "Banish";
5477 if (desc) return "Teleports all monsters in sight away unless resisted.";
5481 int power = plev * 4;
5483 if (info) return info_power(power);
5487 banish_monsters(power);
5494 if (name) return "°ÌÃÖ¸ò´¹¤Î¥«¡¼¥É";
5495 if (desc) return "1ÂΤΥâ¥ó¥¹¥¿¡¼¤È°ÌÃÖ¤ò¸ò´¹¤¹¤ë¡£";
5497 if (name) return "Swap Position";
5498 if (desc) return "Swap positions of you and a monster.";
5506 /* HACK -- No range limit */
5507 project_length = -1;
5509 result = get_aim_dir(&dir);
5511 /* Restore range to default */
5514 if (!result) return NULL;
5523 if (name) return "¥¢¥ó¥Ç¥Ã¥É¤Î¥«¡¼¥É";
5524 if (desc) return "1ÂΤΥ¢¥ó¥Ç¥Ã¥É¤ò¾¤´¤¹¤ë¡£";
5526 if (name) return "Trump Undead";
5527 if (desc) return "Summons an undead monster.";
5534 msg_print("¤¢¤Ê¤¿¤Ï¥¢¥ó¥Ç¥Ã¥É¤Î¥«¡¼¥É¤Ë½¸Ã椹¤ë...");
5536 msg_print("You concentrate on the trump of an undead creature...");
5539 if (trump_summoning(1, !fail, py, px, 0, SUMMON_UNDEAD, 0L))
5544 msg_print("¾¤´¤µ¤ì¤¿¥¢¥ó¥Ç¥Ã¥É¤ÏÅܤäƤ¤¤ë¡ª");
5546 msg_print("The summoned undead creature gets angry!");
5556 if (name) return "à¨ÃîÎà¤Î¥«¡¼¥É";
5557 if (desc) return "1ÂΤΥҥɥé¤ò¾¤´¤¹¤ë¡£";
5559 if (name) return "Trump Reptiles";
5560 if (desc) return "Summons a hydra.";
5567 msg_print("¤¢¤Ê¤¿¤Ïà¨ÃîÎà¤Î¥«¡¼¥É¤Ë½¸Ã椹¤ë...");
5569 msg_print("You concentrate on the trump of a reptile...");
5572 if (trump_summoning(1, !fail, py, px, 0, SUMMON_HYDRA, 0L))
5577 msg_print("¾¤´¤µ¤ì¤¿à¨ÃîÎà¤ÏÅܤäƤ¤¤ë¡ª");
5579 msg_print("The summoned reptile gets angry!");
5589 if (name) return "¥â¥ó¥¹¥¿¡¼¤Î¥«¡¼¥É";
5590 if (desc) return "Ê£¿ô¤Î¥â¥ó¥¹¥¿¡¼¤ò¾¤´¤¹¤ë¡£";
5592 if (name) return "Trump Monsters";
5593 if (desc) return "Summons some monsters.";
5602 msg_print("¤¢¤Ê¤¿¤Ï¥â¥ó¥¹¥¿¡¼¤Î¥«¡¼¥É¤Ë½¸Ã椹¤ë...");
5604 msg_print("You concentrate on several trumps at once...");
5607 if (p_ptr->pclass == CLASS_BEASTMASTER)
5608 type = SUMMON_LIVING;
5612 if (trump_summoning((1 + (plev - 15)/ 10), !fail, py, px, 0, type, 0L))
5617 msg_print("¾¤´¤µ¤ì¤¿¥â¥ó¥¹¥¿¡¼¤ÏÅܤäƤ¤¤ë¡ª");
5619 msg_print("The summoned creatures get angry!");
5630 if (name) return "¥Ï¥¦¥ó¥É¤Î¥«¡¼¥É";
5631 if (desc) return "1¥°¥ë¡¼¥×¤Î¥Ï¥¦¥ó¥É¤ò¾¤´¤¹¤ë¡£";
5633 if (name) return "Trump Hounds";
5634 if (desc) return "Summons a group of hounds.";
5641 msg_print("¤¢¤Ê¤¿¤Ï¥Ï¥¦¥ó¥É¤Î¥«¡¼¥É¤Ë½¸Ã椹¤ë...");
5643 msg_print("You concentrate on the trump of a hound...");
5646 if (trump_summoning(1, !fail, py, px, 0, SUMMON_HOUND, PM_ALLOW_GROUP))
5651 msg_print("¾¤´¤µ¤ì¤¿¥Ï¥¦¥ó¥É¤ÏÅܤäƤ¤¤ë¡ª");
5653 msg_print("The summoned hounds get angry!");
5663 if (name) return "¥È¥é¥ó¥×¤Î¿Ï";
5664 if (desc) return "Éð´ï¤Ë¥È¥é¥ó¥×¤Î°À¤ò¤Ä¤±¤ë¡£";
5666 if (name) return "Trump Branding";
5667 if (desc) return "Makes current weapon a Trump weapon.";
5680 if (name) return "¿Í´Ö¥È¥é¥ó¥×";
5681 if (desc) return "¥é¥ó¥À¥à¤Ë¥Æ¥ì¥Ý¡¼¥È¤¹¤ëÆÍÁ³ÊÑ°Û¤«¡¢¼«Ê¬¤Î°Õ»×¤Ç¥Æ¥ì¥Ý¡¼¥È¤¹¤ëÆÍÁ³ÊÑ°Û¤¬¿È¤Ë¤Ä¤¯¡£";
5683 if (name) return "Living Trump";
5684 if (desc) return "Gives mutation which makes you teleport randomly or makes you able to teleport at will.";
5693 /* Teleport control */
5696 /* Random teleportation (uncontrolled) */
5699 /* Gain the mutation */
5700 if (gain_random_mutation(mutation))
5703 msg_print("¤¢¤Ê¤¿¤ÏÀ¸¤¤Æ¤¤¤ë¥«¡¼¥É¤ËÊѤï¤Ã¤¿¡£");
5705 msg_print("You have turned into a Living Trump.");
5714 if (name) return "¥µ¥¤¥Ð¡¼¥Ç¡¼¥â¥ó¤Î¥«¡¼¥É";
5715 if (desc) return "1ÂΤΥµ¥¤¥Ð¡¼¥Ç¡¼¥â¥ó¤ò¾¤´¤¹¤ë¡£";
5717 if (name) return "Trump Cyberdemon";
5718 if (desc) return "Summons a cyber demon.";
5725 msg_print("¤¢¤Ê¤¿¤Ï¥µ¥¤¥Ð¡¼¥Ç¡¼¥â¥ó¤Î¥«¡¼¥É¤Ë½¸Ã椹¤ë...");
5727 msg_print("You concentrate on the trump of a Cyberdemon...");
5730 if (trump_summoning(1, !fail, py, px, 0, SUMMON_CYBER, 0L))
5735 msg_print("¾¤´¤µ¤ì¤¿¥µ¥¤¥Ð¡¼¥Ç¡¼¥â¥ó¤ÏÅܤäƤ¤¤ë¡ª");
5737 msg_print("The summoned Cyberdemon gets angry!");
5747 if (name) return "ͽ¸«¤Î¥«¡¼¥É";
5748 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¡¢æ«¡¢Èâ¡¢³¬ÃÊ¡¢ºâÊõ¡¢¤½¤·¤Æ¥¢¥¤¥Æ¥à¤ò´¶ÃΤ¹¤ë¡£";
5750 if (name) return "Trump Divination";
5751 if (desc) return "Detects all monsters, traps, doors, stairs, treasures and items in your vicinity.";
5755 int rad = DETECT_RAD_DEFAULT;
5757 if (info) return info_radius(rad);
5768 if (name) return "Ãμ±¤Î¥«¡¼¥É";
5769 if (desc) return "¥¢¥¤¥Æ¥à¤Î»ý¤ÄǽÎϤò´°Á´¤ËÃΤ롣";
5771 if (name) return "Trump Lore";
5772 if (desc) return "*Identifies* an item.";
5778 if (!identify_fully(FALSE)) return NULL;
5785 if (name) return "²óÉü¥â¥ó¥¹¥¿¡¼";
5786 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤÎÂÎÎϤò²óÉü¤µ¤»¤ë¡£";
5788 if (name) return "Heal Monster";
5789 if (desc) return "Heal a monster.";
5793 int heal = plev * 10 + 200;
5795 if (info) return info_heal(0, 0, heal);
5801 /* Temporary enable target_pet option */
5802 bool old_target_pet = target_pet;
5805 result = get_aim_dir(&dir);
5807 /* Restore target_pet option */
5808 target_pet = old_target_pet;
5810 if (!result) return NULL;
5812 heal_monster(dir, heal);
5819 if (name) return "¥É¥é¥´¥ó¤Î¥«¡¼¥É";
5820 if (desc) return "1ÂΤΥɥ饴¥ó¤ò¾¤´¤¹¤ë¡£";
5822 if (name) return "Trump Dragon";
5823 if (desc) return "Summons a dragon.";
5830 msg_print("¤¢¤Ê¤¿¤Ï¥É¥é¥´¥ó¤Î¥«¡¼¥É¤Ë½¸Ã椹¤ë...");
5832 msg_print("You concentrate on the trump of a dragon...");
5835 if (trump_summoning(1, !fail, py, px, 0, SUMMON_DRAGON, 0L))
5840 msg_print("¾¤´¤µ¤ì¤¿¥É¥é¥´¥ó¤ÏÅܤäƤ¤¤ë¡ª");
5842 msg_print("The summoned dragon gets angry!");
5852 if (name) return "ð¨ÀФΥ«¡¼¥É";
5853 if (desc) return "¼«Ê¬¤Î¼þÊÕ¤Ëð¨ÀФòÍî¤È¤¹¡£";
5855 if (name) return "Trump Meteor";
5856 if (desc) return "Makes meteor balls fall down to nearby random locations.";
5863 if (info) return info_multi_damage(dam);
5867 cast_meteor(dam, rad);
5874 if (name) return "¥Ç¡¼¥â¥ó¤Î¥«¡¼¥É";
5875 if (desc) return "1ÂΤΰËâ¤ò¾¤´¤¹¤ë¡£";
5877 if (name) return "Trump Demon";
5878 if (desc) return "Summons a demon.";
5885 msg_print("¤¢¤Ê¤¿¤Ï¥Ç¡¼¥â¥ó¤Î¥«¡¼¥É¤Ë½¸Ã椹¤ë...");
5887 msg_print("You concentrate on the trump of a demon...");
5890 if (trump_summoning(1, !fail, py, px, 0, SUMMON_DEMON, 0L))
5895 msg_print("¾¤´¤µ¤ì¤¿¥Ç¡¼¥â¥ó¤ÏÅܤäƤ¤¤ë¡ª");
5897 msg_print("The summoned demon gets angry!");
5907 if (name) return "ÃϹö¤Î¥«¡¼¥É";
5908 if (desc) return "1ÂΤξåµé¥¢¥ó¥Ç¥Ã¥É¤ò¾¤´¤¹¤ë¡£";
5910 if (name) return "Trump Greater Undead";
5911 if (desc) return "Summons a greater undead.";
5918 msg_print("¤¢¤Ê¤¿¤Ï¶¯ÎϤʥ¢¥ó¥Ç¥Ã¥É¤Î¥«¡¼¥É¤Ë½¸Ã椹¤ë...");
5920 msg_print("You concentrate on the trump of a greater undead being...");
5922 /* May allow unique depend on level and dice roll */
5923 if (trump_summoning(1, !fail, py, px, 0, SUMMON_HI_UNDEAD, PM_ALLOW_UNIQUE))
5928 msg_print("¾¤´¤µ¤ì¤¿¾åµé¥¢¥ó¥Ç¥Ã¥É¤ÏÅܤäƤ¤¤ë¡ª");
5930 msg_print("The summoned greater undead creature gets angry!");
5940 if (name) return "¸ÅÂå¥É¥é¥´¥ó¤Î¥«¡¼¥É";
5941 if (desc) return "1ÂΤθÅÂå¥É¥é¥´¥ó¤ò¾¤´¤¹¤ë¡£";
5943 if (name) return "Trump Ancient Dragon";
5944 if (desc) return "Summons an ancient dragon.";
5952 if (p_ptr->pclass == CLASS_BEASTMASTER)
5953 type = SUMMON_HI_DRAGON_LIVING;
5955 type = SUMMON_HI_DRAGON;
5958 msg_print("¤¢¤Ê¤¿¤Ï¸ÅÂå¥É¥é¥´¥ó¤Î¥«¡¼¥É¤Ë½¸Ã椹¤ë...");
5960 msg_print("You concentrate on the trump of an ancient dragon...");
5963 /* May allow unique depend on level and dice roll */
5964 if (trump_summoning(1, !fail, py, px, 0, type, PM_ALLOW_UNIQUE))
5969 msg_print("¾¤´¤µ¤ì¤¿¸ÅÂå¥É¥é¥´¥ó¤ÏÅܤäƤ¤¤ë¡ª");
5971 msg_print("The summoned ancient dragon gets angry!");
5984 static cptr do_arcane_spell(int spell, int mode)
5986 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
5987 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
5988 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
5989 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
5992 int plev = p_ptr->lev;
5998 if (name) return "ÅÅ·â";
5999 if (desc) return "ÅÅ·â¤Î¥Ü¥ë¥È¤â¤·¤¯¤Ï¥Ó¡¼¥à¤òÊü¤Ä¡£";
6001 if (name) return "Zap";
6002 if (desc) return "Fires a bolt or beam of lightning.";
6006 int dice = 3 + (plev - 1) / 5;
6009 if (info) return info_damage(dice, sides, 0);
6013 if (!get_aim_dir(&dir)) return NULL;
6015 fire_bolt_or_beam(beam_chance() - 10, GF_ELEC, dir, damroll(dice, sides));
6022 if (name) return "ËâË¡¤Î»Ü¾û";
6023 if (desc) return "Èâ¤Ë¸°¤ò¤«¤±¤ë¡£";
6025 if (name) return "Wizard Lock";
6026 if (desc) return "Locks a door.";
6032 if (!get_aim_dir(&dir)) return NULL;
6041 if (name) return "Æ©ÌÀÂδ¶ÃÎ";
6042 if (desc) return "¶á¤¯¤ÎÆ©ÌÀ¤Ê¥â¥ó¥¹¥¿¡¼¤ò´¶ÃΤ¹¤ë¡£";
6044 if (name) return "Detect Invisibility";
6045 if (desc) return "Detects all invisible monsters in your vicinity.";
6049 int rad = DETECT_RAD_DEFAULT;
6051 if (info) return info_radius(rad);
6055 detect_monsters_invis(rad);
6062 if (name) return "¥â¥ó¥¹¥¿¡¼´¶ÃÎ";
6063 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î¸«¤¨¤ë¥â¥ó¥¹¥¿¡¼¤ò´¶ÃΤ¹¤ë¡£";
6065 if (name) return "Detect Monsters";
6066 if (desc) return "Detects all monsters in your vicinity unless invisible.";
6070 int rad = DETECT_RAD_DEFAULT;
6072 if (info) return info_radius(rad);
6076 detect_monsters_normal(rad);
6083 if (name) return "¥·¥ç¡¼¥È¡¦¥Æ¥ì¥Ý¡¼¥È";
6084 if (desc) return "¶áµ÷Î¥¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¤¹¤ë¡£";
6086 if (name) return "Blink";
6087 if (desc) return "Teleport short distance.";
6093 if (info) return info_range(range);
6097 teleport_player(range, 0L);
6104 if (name) return "¥é¥¤¥È¡¦¥¨¥ê¥¢";
6105 if (desc) return "¸÷¸»¤¬¾È¤é¤·¤Æ¤¤¤ëÈϰϤ«Éô²°Á´ÂΤò±Êµ×¤ËÌÀ¤ë¤¯¤¹¤ë¡£";
6107 if (name) return "Light Area";
6108 if (desc) return "Lights up nearby area and the inside of a room permanently.";
6113 int sides = plev / 2;
6114 int rad = plev / 10 + 1;
6116 if (info) return info_damage(dice, sides, 0);
6120 lite_area(damroll(dice, sides), rad);
6127 if (name) return "櫤ÈÈâ Ç˲õ";
6128 if (desc) return "°ìľÀþ¾å¤ÎÁ´¤Æ¤Î櫤ÈÈâ¤òÇ˲õ¤¹¤ë¡£";
6130 if (name) return "Trap & Door Destruction";
6131 if (desc) return "Fires a beam which destroy traps and doors.";
6137 if (!get_aim_dir(&dir)) return NULL;
6146 if (name) return "·Ú½ý¤Î¼£Ìþ";
6147 if (desc) return "²ø²æ¤ÈÂÎÎϤò¾¯¤·²óÉü¤µ¤»¤ë¡£";
6149 if (name) return "Cure Light Wounds";
6150 if (desc) return "Heals cut and HP a little.";
6157 if (info) return info_heal(dice, sides, 0);
6161 hp_player(damroll(dice, sides));
6162 set_cut(p_ptr->cut - 10);
6169 if (name) return "櫤ÈÈâ ´¶ÃÎ";
6170 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î櫤ÈÈâ¤È³¬Ãʤò´¶ÃΤ¹¤ë¡£";
6172 if (name) return "Detect Doors & Traps";
6173 if (desc) return "Detects traps, doors, and stairs in your vicinity.";
6177 int rad = DETECT_RAD_DEFAULT;
6179 if (info) return info_radius(rad);
6183 detect_traps(rad, TRUE);
6192 if (name) return "dzÁÇ";
6193 if (desc) return "¸÷¸»¤ËdzÎÁ¤òÊäµë¤¹¤ë¡£";
6195 if (name) return "Phlogiston";
6196 if (desc) return "Adds more turns of light to a lantern or torch.";
6209 if (name) return "ºâÊõ´¶ÃÎ";
6210 if (desc) return "¶á¤¯¤ÎºâÊõ¤ò´¶ÃΤ¹¤ë¡£";
6212 if (name) return "Detect Treasure";
6213 if (desc) return "Detects all treasures in your vicinity.";
6217 int rad = DETECT_RAD_DEFAULT;
6219 if (info) return info_radius(rad);
6223 detect_treasure(rad);
6224 detect_objects_gold(rad);
6231 if (name) return "ËâË¡ ´¶ÃÎ";
6232 if (desc) return "¶á¤¯¤ÎËâË¡¤¬¤«¤«¤Ã¤¿¥¢¥¤¥Æ¥à¤ò´¶ÃΤ¹¤ë¡£";
6234 if (name) return "Detect Enchantment";
6235 if (desc) return "Detects all magical items in your vicinity.";
6239 int rad = DETECT_RAD_DEFAULT;
6241 if (info) return info_radius(rad);
6245 detect_objects_magic(rad);
6252 if (name) return "¥¢¥¤¥Æ¥à´¶ÃÎ";
6253 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î¥¢¥¤¥Æ¥à¤ò´¶ÃΤ¹¤ë¡£";
6255 if (name) return "Detect Objects";
6256 if (desc) return "Detects all items in your vicinity.";
6260 int rad = DETECT_RAD_DEFAULT;
6262 if (info) return info_radius(rad);
6266 detect_objects_normal(rad);
6273 if (name) return "²òÆÇ";
6274 if (desc) return "ÆǤòÂÎÆ⤫¤é´°Á´¤Ë¼è¤ê½ü¤¯¡£";
6276 if (name) return "Cure Poison";
6277 if (desc) return "Cures poison status.";
6290 if (name) return "ÂÑÎä";
6291 if (desc) return "°ìÄê»þ´Ö¡¢Î䵤¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
6293 if (name) return "Resist Cold";
6294 if (desc) return "Gives resistance to cold. This resistance can be added to which from equipment for more powerful resistance.";
6300 if (info) return info_duration(base, base);
6304 set_oppose_cold(randint1(base) + base, FALSE);
6311 if (name) return "ÂѲÐ";
6312 if (desc) return "°ìÄê»þ´Ö¡¢±ê¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
6314 if (name) return "Resist Fire";
6315 if (desc) return "Gives resistance to fire. This resistance can be added to which from equipment for more powerful resistance.";
6321 if (info) return info_duration(base, base);
6325 set_oppose_fire(randint1(base) + base, FALSE);
6332 if (name) return "ÂÑÅÅ";
6333 if (desc) return "°ìÄê»þ´Ö¡¢ÅÅ·â¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
6335 if (name) return "Resist Lightning";
6336 if (desc) return "Gives resistance to electricity. This resistance can be added to which from equipment for more powerful resistance.";
6342 if (info) return info_duration(base, base);
6346 set_oppose_elec(randint1(base) + base, FALSE);
6353 if (name) return "ÂÑ»À";
6354 if (desc) return "°ìÄê»þ´Ö¡¢»À¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
6356 if (name) return "Resist Acid";
6357 if (desc) return "Gives resistance to acid. This resistance can be added to which from equipment for more powerful resistance.";
6363 if (info) return info_duration(base, base);
6367 set_oppose_acid(randint1(base) + base, FALSE);
6374 if (name) return "½Å½ý¤Î¼£Ìþ";
6375 if (desc) return "²ø²æ¤ÈÂÎÎϤòÃæÄøÅÙ²óÉü¤µ¤»¤ë¡£";
6377 if (name) return "Cure Medium Wounds";
6378 if (desc) return "Heals cut and HP more.";
6385 if (info) return info_heal(dice, sides, 0);
6389 hp_player(damroll(dice, sides));
6390 set_cut((p_ptr->cut / 2) - 50);
6397 if (name) return "¥Æ¥ì¥Ý¡¼¥È";
6398 if (desc) return "±óµ÷Î¥¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¤¹¤ë¡£";
6400 if (name) return "Teleport";
6401 if (desc) return "Teleport long distance.";
6405 int range = plev * 5;
6407 if (info) return info_range(range);
6411 teleport_player(range, 0L);
6418 if (name) return "´ÕÄê";
6419 if (desc) return "¥¢¥¤¥Æ¥à¤ò¼±Ê̤¹¤ë¡£";
6421 if (name) return "Identify";
6422 if (desc) return "Identifies an item.";
6428 if (!ident_spell(FALSE)) return NULL;
6435 if (name) return "´äÀÐÍϲò";
6436 if (desc) return "ÊɤòÍϤ«¤·¤Æ¾²¤Ë¤¹¤ë¡£";
6438 if (name) return "Stone to Mud";
6439 if (desc) return "Turns one rock square to mud.";
6447 if (info) return info_damage(dice, sides, base);
6451 if (!get_aim_dir(&dir)) return NULL;
6453 wall_to_mud(dir, 20 + randint1(30));
6460 if (name) return "Á®¸÷";
6461 if (desc) return "¸÷Àþ¤òÊü¤Ä¡£¸÷¤ê¤ò·ù¤¦¥â¥ó¥¹¥¿¡¼¤Ë¸ú²Ì¤¬¤¢¤ë¡£";
6463 if (name) return "Ray of Light";
6464 if (desc) return "Fires a beam of light which damages to light-sensitive monsters.";
6471 if (info) return info_damage(dice, sides, 0);
6475 if (!get_aim_dir(&dir)) return NULL;
6478 msg_print("¸÷Àþ¤¬Êü¤¿¤ì¤¿¡£");
6480 msg_print("A line of light appears.");
6483 lite_line(dir, damroll(6, 8));
6490 if (name) return "¶õÊ¢½¼Â";
6491 if (desc) return "ËþÊ¢¤Ë¤¹¤ë¡£";
6493 if (name) return "Satisfy Hunger";
6494 if (desc) return "Satisfies hunger.";
6500 set_food(PY_FOOD_MAX - 1);
6507 if (name) return "Æ©ÌÀ»ëǧ";
6508 if (desc) return "°ìÄê»þ´Ö¡¢Æ©ÌÀ¤Ê¤â¤Î¤¬¸«¤¨¤ë¤è¤¦¤Ë¤Ê¤ë¡£";
6510 if (name) return "See Invisible";
6511 if (desc) return "Gives see invisible for a while.";
6517 if (info) return info_duration(base, base);
6521 set_tim_invis(randint1(base) + base, FALSE);
6528 if (name) return "¥¨¥ì¥á¥ó¥¿¥ë¾¤´";
6529 if (desc) return "1ÂΤΥ¨¥ì¥á¥ó¥¿¥ë¤ò¾¤´¤¹¤ë¡£";
6531 if (name) return "Conjure Elemental";
6532 if (desc) return "Summons an elemental.";
6538 if (!summon_specific(-1, py, px, plev, SUMMON_ELEMENTAL, (PM_ALLOW_GROUP | PM_FORCE_PET)))
6541 msg_print("¥¨¥ì¥á¥ó¥¿¥ë¤Ï¸½¤ì¤Ê¤«¤Ã¤¿¡£");
6543 msg_print("No Elementals arrive.");
6552 if (name) return "¥Æ¥ì¥Ý¡¼¥È¡¦¥ì¥Ù¥ë";
6553 if (desc) return "½Ö»þ¤Ë¾å¤«²¼¤Î³¬¤Ë¥Æ¥ì¥Ý¡¼¥È¤¹¤ë¡£";
6555 if (name) return "Teleport Level";
6556 if (desc) return "Teleport to up or down stairs in a moment.";
6563 if (!get_check("ËÜÅö¤Ë¾¤Î³¬¤Ë¥Æ¥ì¥Ý¡¼¥È¤·¤Þ¤¹¤«¡©")) return NULL;
6565 if (!get_check("Are you sure? (Teleport Level)")) return NULL;
6574 if (name) return "¥Æ¥ì¥Ý¡¼¥È¡¦¥â¥ó¥¹¥¿¡¼";
6575 if (desc) return "¥â¥ó¥¹¥¿¡¼¤ò¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤ë¥Ó¡¼¥à¤òÊü¤Ä¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
6577 if (name) return "Teleport Away";
6578 if (desc) return "Teleports all monsters on the line away unless resisted.";
6584 if (info) return info_power(power);
6588 if (!get_aim_dir(&dir)) return NULL;
6590 fire_beam(GF_AWAY_ALL, dir, power);
6597 if (name) return "¸µÁǤεå";
6598 if (desc) return "±ê¡¢ÅÅ·â¡¢Î䵤¡¢»À¤Î¤É¤ì¤«¤Îµå¤òÊü¤Ä¡£";
6600 if (name) return "Elemental Ball";
6601 if (desc) return "Fires a ball of some elements.";
6605 int dam = 75 + plev;
6608 if (info) return info_damage(0, 0, dam);
6614 if (!get_aim_dir(&dir)) return NULL;
6616 switch (randint1(4))
6618 case 1: type = GF_FIRE;break;
6619 case 2: type = GF_ELEC;break;
6620 case 3: type = GF_COLD;break;
6621 default: type = GF_ACID;break;
6624 fire_ball(type, dir, dam, rad);
6631 if (name) return "Á´´¶ÃÎ";
6632 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¡¢æ«¡¢Èâ¡¢³¬ÃÊ¡¢ºâÊõ¡¢¤½¤·¤Æ¥¢¥¤¥Æ¥à¤ò´¶ÃΤ¹¤ë¡£";
6634 if (name) return "Detection";
6635 if (desc) return "Detects all monsters, traps, doors, stairs, treasures and items in your vicinity.";
6639 int rad = DETECT_RAD_DEFAULT;
6641 if (info) return info_radius(rad);
6652 if (name) return "µ¢´Ô¤Î¼öʸ";
6653 if (desc) return "ÃϾå¤Ë¤¤¤ë¤È¤¤Ï¥À¥ó¥¸¥ç¥ó¤ÎºÇ¿¼³¬¤Ø¡¢¥À¥ó¥¸¥ç¥ó¤Ë¤¤¤ë¤È¤¤ÏÃϾå¤Ø¤È°ÜÆ°¤¹¤ë¡£";
6655 if (name) return "Word of Recall";
6656 if (desc) return "Recalls player from dungeon to town, or from town to the deepest level of dungeon.";
6663 if (info) return info_delay(base, sides);
6667 if (!word_of_recall()) return NULL;
6674 if (name) return "ÀéΤ´ã";
6675 if (desc) return "¤½¤Î³¬Á´ÂΤò±Êµ×¤Ë¾È¤é¤·¡¢¥À¥ó¥¸¥ç¥óÆ⤹¤Ù¤Æ¤Î¥¢¥¤¥Æ¥à¤ò´¶ÃΤ¹¤ë¡£¤µ¤é¤Ë¡¢°ìÄê»þ´Ö¥Æ¥ì¥Ñ¥·¡¼Ç½ÎϤòÆÀ¤ë¡£";
6677 if (name) return "Clairvoyance";
6678 if (desc) return "Maps and lights whole dungeon level. Knows all objects location. And gives telepathy for a while.";
6685 if (info) return info_duration(base, sides);
6689 chg_virtue(V_KNOWLEDGE, 1);
6690 chg_virtue(V_ENLIGHTEN, 1);
6694 if (!p_ptr->telepathy)
6696 set_tim_esp(randint1(sides) + base, FALSE);
6707 static cptr do_craft_spell(int spell, int mode)
6709 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
6710 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
6711 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
6712 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
6714 int plev = p_ptr->lev;
6720 if (name) return "ÀÖ³°Àþ»ëÎÏ";
6721 if (desc) return "°ìÄê»þ´Ö¡¢ÀÖ³°Àþ»ëÎϤ¬Áý¶¯¤µ¤ì¤ë¡£";
6723 if (name) return "Infravision";
6724 if (desc) return "Gives infravision for a while.";
6730 if (info) return info_duration(base, base);
6734 set_tim_infra(base + randint1(base), FALSE);
6741 if (name) return "²óÉüÎ϶¯²½";
6742 if (desc) return "°ìÄê»þ´Ö¡¢²óÉüÎϤ¬Áý¶¯¤µ¤ì¤ë¡£";
6744 if (name) return "Regeneration";
6745 if (desc) return "Gives regeneration ability for a while.";
6751 if (info) return info_duration(base, base);
6755 set_tim_regen(base + randint1(base), FALSE);
6762 if (name) return "¶õÊ¢½¼Â";
6763 if (desc) return "ËþÊ¢¤Ë¤Ê¤ë¡£";
6765 if (name) return "Satisfy Hunger";
6766 if (desc) return "Satisfies hunger.";
6772 set_food(PY_FOOD_MAX - 1);
6779 if (name) return "ÂÑÎ䵤";
6780 if (desc) return "°ìÄê»þ´Ö¡¢Î䵤¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
6782 if (name) return "Resist Cold";
6783 if (desc) return "Gives resistance to cold. This resistance can be added to which from equipment for more powerful resistance.";
6789 if (info) return info_duration(base, base);
6793 set_oppose_cold(randint1(base) + base, FALSE);
6800 if (name) return "ÂѲбê";
6801 if (desc) return "°ìÄê»þ´Ö¡¢±ê¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
6803 if (name) return "Resist Fire";
6804 if (desc) return "Gives resistance to fire. This resistance can be added to which from equipment for more powerful resistance.";
6810 if (info) return info_duration(base, base);
6814 set_oppose_fire(randint1(base) + base, FALSE);
6821 if (name) return "»Îµ¤¹âÍÈ";
6822 if (desc) return "°ìÄê»þ´Ö¡¢¥Ò¡¼¥í¡¼µ¤Ê¬¤Ë¤Ê¤ë¡£";
6824 if (name) return "Heroism";
6825 if (desc) return "Removes fear, and gives bonus to hit and 10 more HP for a while.";
6831 if (info) return info_duration(base, base);
6835 set_hero(randint1(base) + base, FALSE);
6844 if (name) return "ÂÑÅÅ·â";
6845 if (desc) return "°ìÄê»þ´Ö¡¢ÅÅ·â¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
6847 if (name) return "Resist Lightning";
6848 if (desc) return "Gives resistance to electricity. This resistance can be added to which from equipment for more powerful resistance.";
6854 if (info) return info_duration(base, base);
6858 set_oppose_elec(randint1(base) + base, FALSE);
6865 if (name) return "ÂÑ»À";
6866 if (desc) return "°ìÄê»þ´Ö¡¢»À¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
6868 if (name) return "Resist Acid";
6869 if (desc) return "Gives resistance to acid. This resistance can be added to which from equipment for more powerful resistance.";
6875 if (info) return info_duration(base, base);
6879 set_oppose_acid(randint1(base) + base, FALSE);
6886 if (name) return "Æ©ÌÀ»ëǧ";
6887 if (desc) return "°ìÄê»þ´Ö¡¢Æ©ÌÀ¤Ê¤â¤Î¤¬¸«¤¨¤ë¤è¤¦¤Ë¤Ê¤ë¡£";
6889 if (name) return "See Invisibility";
6890 if (desc) return "Gives see invisible for a while.";
6896 if (info) return info_duration(base, base);
6900 set_tim_invis(randint1(base) + base, FALSE);
6907 if (name) return "²ò¼ö";
6908 if (desc) return "¥¢¥¤¥Æ¥à¤Ë¤«¤«¤Ã¤¿¼å¤¤¼ö¤¤¤ò²ò½ü¤¹¤ë¡£";
6910 if (name) return "Remove Curse";
6911 if (desc) return "Removes normal curses from equipped items.";
6920 msg_print("狼¤Ë¸«¼é¤é¤ì¤Æ¤¤¤ë¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£");
6922 msg_print("You feel as if someone is watching over you.");
6931 if (name) return "ÂÑÆÇ";
6932 if (desc) return "°ìÄê»þ´Ö¡¢ÆǤؤÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
6934 if (name) return "Resist Poison";
6935 if (desc) return "Gives resistance to poison. This resistance can be added to which from equipment for more powerful resistance.";
6941 if (info) return info_duration(base, base);
6945 set_oppose_pois(randint1(base) + base, FALSE);
6952 if (name) return "¶¸Àï»Î²½";
6953 if (desc) return "¶¸Àï»Î²½¤·¡¢¶²Éݤò½üµî¤¹¤ë¡£";
6955 if (name) return "Berserk";
6956 if (desc) return "Gives bonus to hit and HP, immunity to fear for a while. But decreases AC.";
6962 if (info) return info_duration(base, base);
6966 set_shero(randint1(base) + base, FALSE);
6975 if (name) return "¼«¸ÊʬÀÏ";
6976 if (desc) return "¸½ºß¤Î¼«Ê¬¤Î¾õÂÖ¤ò´°Á´¤ËÃΤ롣";
6978 if (name) return "Self Knowledge";
6979 if (desc) return "Gives you useful info regarding your current resistances, the powers of your weapon and maximum limits of your stats.";
6992 if (name) return "Âмٰ·ë³¦";
6993 if (desc) return "¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤Î¹¶·â¤òËɤ°¥Ð¥ê¥¢¤òÄ¥¤ë¡£";
6995 if (name) return "Protection from Evil";
6996 if (desc) return "Gives aura which protect you from evil monster's physical attack.";
7000 int base = 3 * plev;
7003 if (info) return info_duration(base, sides);
7007 set_protevil(randint1(sides) + base, FALSE);
7014 if (name) return "Ìþ¤·";
7015 if (desc) return "ÆÇ¡¢Û¯Û°¾õÂÖ¡¢Éé½ý¤òÁ´²÷¤µ¤»¡¢¸¸³Ð¤òľ¤¹¡£";
7017 if (name) return "Cure";
7018 if (desc) return "Heals poison, stun, cut and hallucination completely.";
7034 if (name) return "ËâË¡·õ";
7035 if (desc) return "°ìÄê»þ´Ö¡¢Éð´ï¤ËÎ䵤¡¢±ê¡¢ÅÅ·â¡¢»À¡¢ÆǤΤ¤¤º¤ì¤«¤Î°À¤ò¤Ä¤±¤ë¡£Éð´ï¤ò»ý¤¿¤Ê¤¤¤È»È¤¨¤Ê¤¤¡£";
7037 if (name) return "Mana Branding";
7038 if (desc) return "Makes current weapon some elemental branded. You must wield weapons.";
7042 int base = plev / 2;
7044 if (info) return info_duration(base, base);
7048 if (!choose_ele_attack()) return NULL;
7055 if (name) return "¥Æ¥ì¥Ñ¥·¡¼";
7056 if (desc) return "°ìÄê»þ´Ö¡¢¥Æ¥ì¥Ñ¥·¡¼Ç½ÎϤòÆÀ¤ë¡£";
7058 if (name) return "Telepathy";
7059 if (desc) return "Gives telepathy for a while.";
7066 if (info) return info_duration(base, sides);
7070 set_tim_esp(randint1(sides) + base, FALSE);
7077 if (name) return "È©Àв½";
7078 if (desc) return "°ìÄê»þ´Ö¡¢AC¤ò¾å¾º¤µ¤»¤ë¡£";
7080 if (name) return "Stone Skin";
7081 if (desc) return "Gives bonus to AC for a while.";
7088 if (info) return info_duration(base, sides);
7092 set_shield(randint1(sides) + base, FALSE);
7099 if (name) return "Á´ÂÑÀ";
7100 if (desc) return "°ìÄê»þ´Ö¡¢»À¡¢ÅÅ·â¡¢±ê¡¢Î䵤¡¢ÆǤËÂФ¹¤ëÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
7102 if (name) return "Resistance";
7103 if (desc) return "Gives resistance to fire, cold, electricity, acid and poison for a while. These resistances can be added to which from equipment for more powerful resistances.";
7109 if (info) return info_duration(base, base);
7113 set_oppose_acid(randint1(base) + base, FALSE);
7114 set_oppose_elec(randint1(base) + base, FALSE);
7115 set_oppose_fire(randint1(base) + base, FALSE);
7116 set_oppose_cold(randint1(base) + base, FALSE);
7117 set_oppose_pois(randint1(base) + base, FALSE);
7124 if (name) return "¥¹¥Ô¡¼¥É";
7125 if (desc) return "°ìÄê»þ´Ö¡¢²Ã®¤¹¤ë¡£";
7127 if (name) return "Haste Self";
7128 if (desc) return "Hastes you for a while.";
7133 int sides = 20 + plev;
7135 if (info) return info_duration(base, sides);
7139 set_fast(randint1(sides) + base, FALSE);
7146 if (name) return "ÊÉÈ´¤±";
7147 if (desc) return "°ìÄê»þ´Ö¡¢È¾Êª¼Á²½¤·ÊɤòÄ̤êÈ´¤±¤é¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£";
7149 if (name) return "Walk through Wall";
7150 if (desc) return "Gives ability to pass walls for a while.";
7154 int base = plev / 2;
7156 if (info) return info_duration(base, base);
7160 set_kabenuke(randint1(base) + base, FALSE);
7167 if (name) return "½âËá¤";
7168 if (desc) return "½â¤ËÈ¿¼Í¤Î°À¤ò¤Ä¤±¤ë¡£";
7170 if (name) return "Polish Shield";
7171 if (desc) return "Makes a shield a shield of reflection.";
7184 if (name) return "¥´¡¼¥ì¥àÀ½Â¤";
7185 if (desc) return "1ÂΤΥ´¡¼¥ì¥à¤òÀ½Â¤¤¹¤ë¡£";
7187 if (name) return "Create Golem";
7188 if (desc) return "Creates a golem.";
7194 if (summon_specific(-1, py, px, plev, SUMMON_GOLEM, PM_FORCE_PET))
7197 msg_print("¥´¡¼¥ì¥à¤òºî¤Ã¤¿¡£");
7199 msg_print("You make a golem.");
7205 msg_print("¤¦¤Þ¤¯¥´¡¼¥ì¥à¤òºî¤ì¤Ê¤«¤Ã¤¿¡£");
7207 msg_print("No Golems arrive.");
7216 if (name) return "ËâË¡¤Î³»";
7217 if (desc) return "°ìÄê»þ´Ö¡¢ËâË¡ËɸæÎϤÈAC¤¬¾å¤¬¤ê¡¢º®Íð¤ÈÌÕÌܤÎÂÑÀ¡¢È¿¼ÍǽÎÏ¡¢ËãáãÃΤ餺¡¢ÉâÍ·¤òÆÀ¤ë¡£";
7219 if (name) return "Magical armor";
7220 if (desc) return "Gives resistance to magic, bonus to AC, resistance to confusion, blindness, reflection, free action and levitation for a while.";
7226 if (info) return info_duration(base, base);
7230 set_magicdef(randint1(base) + base, FALSE);
7237 if (name) return "ÁõÈ÷̵Îϲ½";
7238 if (desc) return "Éð´ï¡¦Ëɶñ¤Ë¤«¤±¤é¤ì¤¿¤¢¤é¤æ¤ëËâÎϤò´°Á´¤Ë²ò½ü¤¹¤ë¡£";
7240 if (name) return "Remove Enchantment";
7241 if (desc) return "Removes all magics completely from any weapon or armor.";
7247 if (!mundane_spell(TRUE)) return NULL;
7254 if (name) return "¼ö¤¤Ê´ºÕ";
7255 if (desc) return "¥¢¥¤¥Æ¥à¤Ë¤«¤«¤Ã¤¿¶¯ÎϤʼö¤¤¤ò²ò½ü¤¹¤ë¡£";
7257 if (name) return "Remove All Curse";
7258 if (desc) return "Removes normal and heavy curse from equipped items.";
7264 if (remove_all_curse())
7267 msg_print("狼¤Ë¸«¼é¤é¤ì¤Æ¤¤¤ë¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£");
7269 msg_print("You feel as if someone is watching over you.");
7278 if (name) return "´°Á´¤Ê¤ëÃμ±";
7279 if (desc) return "¥¢¥¤¥Æ¥à¤Î»ý¤ÄǽÎϤò´°Á´¤ËÃΤ롣";
7281 if (name) return "Knowledge True";
7282 if (desc) return "*Identifies* an item.";
7288 if (!identify_fully(FALSE)) return NULL;
7295 if (name) return "Éð´ï¶¯²½";
7296 if (desc) return "Éð´ï¤ÎÌ¿ÃæΨ½¤Àµ¤È¥À¥á¡¼¥¸½¤Àµ¤ò¶¯²½¤¹¤ë¡£";
7298 if (name) return "Enchant Weapon";
7299 if (desc) return "Attempts to increase +to-hit, +to-dam of a weapon.";
7305 if (!enchant_spell(randint0(4) + 1, randint0(4) + 1, 0)) return NULL;
7312 if (name) return "Ëɶñ¶¯²½";
7313 if (desc) return "³»¤ÎËɸ潤Àµ¤ò¶¯²½¤¹¤ë¡£";
7315 if (name) return "Enchant Armor";
7316 if (desc) return "Attempts to increase +AC of an armor.";
7322 if (!enchant_spell(0, 0, randint0(3) + 2)) return NULL;
7329 if (name) return "Éð´ï°ÀÉÕÍ¿";
7330 if (desc) return "Éð´ï¤Ë¥é¥ó¥À¥à¤Ë°À¤ò¤Ä¤±¤ë¡£";
7332 if (name) return "Brand Weapon";
7333 if (desc) return "Makes current weapon a random ego weapon.";
7339 brand_weapon(randint0(18));
7346 if (name) return "¿Í´Ö¥È¥é¥ó¥×";
7347 if (desc) return "¥é¥ó¥À¥à¤Ë¥Æ¥ì¥Ý¡¼¥È¤¹¤ëÆÍÁ³ÊÑ°Û¤«¡¢¼«Ê¬¤Î°Õ»×¤Ç¥Æ¥ì¥Ý¡¼¥È¤¹¤ëÆÍÁ³ÊÑ°Û¤¬¿È¤Ë¤Ä¤¯¡£";
7349 if (name) return "Living Trump";
7350 if (desc) return "Gives mutation which makes you teleport randomly or makes you able to teleport at will.";
7359 /* Teleport control */
7362 /* Random teleportation (uncontrolled) */
7365 /* Gain the mutation */
7366 if (gain_random_mutation(mutation))
7369 msg_print("¤¢¤Ê¤¿¤ÏÀ¸¤¤Æ¤¤¤ë¥«¡¼¥É¤ËÊѤï¤Ã¤¿¡£");
7371 msg_print("You have turned into a Living Trump.");
7380 if (name) return "°À¤Ø¤ÎÌȱÖ";
7381 if (desc) return "°ìÄê»þ´Ö¡¢Î䵤¡¢±ê¡¢ÅÅ·â¡¢»À¤Î¤¤¤º¤ì¤«¤ËÂФ¹¤ëÌȱ֤òÆÀ¤ë¡£";
7383 if (name) return "Immunity";
7384 if (desc) return "Gives an immunity to fire, cold, electricity or acid for a while.";
7390 if (info) return info_duration(base, base);
7394 if (!choose_ele_immune(base + randint1(base))) return NULL;
7404 static cptr do_daemon_spell(int spell, int mode)
7406 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
7407 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
7408 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
7409 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
7412 static const char s_dam[] = "»½ý:";
7414 static const char s_dam[] = "dam ";
7418 int plev = p_ptr->lev;
7424 if (name) return "¥Þ¥¸¥Ã¥¯¡¦¥ß¥µ¥¤¥ë";
7425 if (desc) return "¼å¤¤ËâË¡¤ÎÌð¤òÊü¤Ä¡£";
7427 if (name) return "Magic Missile";
7428 if (desc) return "Fires a weak bolt of magic.";
7432 int dice = 3 + (plev - 1) / 5;
7435 if (info) return info_damage(dice, sides, 0);
7439 if (!get_aim_dir(&dir)) return NULL;
7441 fire_bolt_or_beam(beam_chance() - 10, GF_MISSILE, dir, damroll(dice, sides));
7448 if (name) return "̵À¸Ì¿´¶ÃÎ";
7449 if (desc) return "¶á¤¯¤ÎÀ¸Ì¿¤Î¤Ê¤¤¥â¥ó¥¹¥¿¡¼¤ò´¶ÃΤ¹¤ë¡£";
7451 if (name) return "Detect Unlife";
7452 if (desc) return "Detects all nonliving monsters in your vicinity.";
7456 int rad = DETECT_RAD_DEFAULT;
7458 if (info) return info_radius(rad);
7462 detect_monsters_nonliving(rad);
7469 if (name) return "¼Ù¤Ê¤ë½ËÊ¡";
7470 if (desc) return "°ìÄê»þ´Ö¡¢Ì¿ÃæΨ¤ÈAC¤Ë¥Ü¡¼¥Ê¥¹¤òÆÀ¤ë¡£";
7472 if (name) return "Evil Bless";
7473 if (desc) return "Gives bonus to hit and AC for a few turns.";
7479 if (info) return info_duration(base, base);
7483 set_blessed(randint1(base) + base, FALSE);
7490 if (name) return "ÂѲбê";
7491 if (desc) return "°ìÄê»þ´Ö¡¢±ê¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
7493 if (name) return "Resist Fire";
7494 if (desc) return "Gives resistance to fire, cold and electricity for a while. These resistances can be added to which from equipment for more powerful resistances.";
7500 if (info) return info_duration(base, base);
7504 set_oppose_fire(randint1(base) + base, FALSE);
7511 if (name) return "¶²¹²";
7512 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤò¶²Éݤµ¤»¡¢Û¯Û°¤µ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
7514 if (name) return "Horrify";
7515 if (desc) return "Attempts to scare and stun a monster.";
7521 if (info) return info_power(power);
7525 if (!get_aim_dir(&dir)) return NULL;
7527 fear_monster(dir, power);
7528 stun_monster(dir, power);
7535 if (name) return "ÃϹö¤ÎÌð";
7536 if (desc) return "ÃϹö¤Î¥Ü¥ë¥È¤â¤·¤¯¤Ï¥Ó¡¼¥à¤òÊü¤Ä¡£";
7538 if (name) return "Nether Bolt";
7539 if (desc) return "Fires a bolt or beam of nether.";
7543 int dice = 6 + (plev - 5) / 4;
7546 if (info) return info_damage(dice, sides, 0);
7550 if (!get_aim_dir(&dir)) return NULL;
7552 fire_bolt_or_beam(beam_chance(), GF_NETHER, dir, damroll(dice, sides));
7559 if (name) return "¸ÅÂå¤Î»àÎ´";
7560 if (desc) return "¸ÅÂå¤Î»àÎî¤ò¾¤´¤¹¤ë¡£";
7562 if (name) return "Summon Manes";
7563 if (desc) return "Summons a manes.";
7569 if (!summon_specific(-1, py, px, (plev * 3) / 2, SUMMON_MANES, (PM_ALLOW_GROUP | PM_FORCE_PET)))
7572 msg_print("¸ÅÂå¤Î»àÎî¤Ï¸½¤ì¤Ê¤«¤Ã¤¿¡£");
7574 msg_print("No Manes arrive.");
7583 if (name) return "ÃϹö¤Î±ë";
7584 if (desc) return "¼Ù°¤ÊÎϤò»ý¤Ä¥Ü¡¼¥ë¤òÊü¤Ä¡£Á±Îɤʥâ¥ó¥¹¥¿¡¼¤Ë¤ÏÂ礤ʥÀ¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
7586 if (name) return "Hellish Flame";
7587 if (desc) return "Fires a ball of evil power. Hurts good monsters greatly.";
7593 int rad = (plev < 30) ? 2 : 3;
7596 if (p_ptr->pclass == CLASS_MAGE ||
7597 p_ptr->pclass == CLASS_HIGH_MAGE ||
7598 p_ptr->pclass == CLASS_SORCERER)
7599 base = plev + plev / 2;
7601 base = plev + plev / 4;
7604 if (info) return info_damage(dice, sides, base);
7608 if (!get_aim_dir(&dir)) return NULL;
7610 fire_ball(GF_HELL_FIRE, dir, damroll(dice, sides) + base, rad);
7617 if (name) return "¥Ç¡¼¥â¥ó»ÙÇÛ";
7618 if (desc) return "°Ëâ1ÂΤò̥λ¤¹¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú";
7620 if (name) return "Dominate Demon";
7621 if (desc) return "Attempts to charm a demon.";
7627 if (info) return info_power(power);
7631 if (!get_aim_dir(&dir)) return NULL;
7633 control_one_demon(dir, power);
7640 if (name) return "¥Ó¥¸¥ç¥ó";
7641 if (desc) return "¼þÊÕ¤ÎÃÏ·Á¤ò´¶ÃΤ¹¤ë¡£";
7643 if (name) return "Vision";
7644 if (desc) return "Maps nearby area.";
7648 int rad = DETECT_RAD_MAP;
7650 if (info) return info_radius(rad);
7661 if (name) return "ÂÑÃϹö";
7662 if (desc) return "°ìÄê»þ´Ö¡¢ÃϹö¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£";
7664 if (name) return "Resist Nether";
7665 if (desc) return "Gives resistance to nether for a while.";
7671 if (info) return info_duration(base, base);
7675 set_tim_res_nether(randint1(base) + base, FALSE);
7682 if (name) return "¥×¥é¥º¥Þ¡¦¥Ü¥ë¥È";
7683 if (desc) return "¥×¥é¥º¥Þ¤Î¥Ü¥ë¥È¤â¤·¤¯¤Ï¥Ó¡¼¥à¤òÊü¤Ä¡£";
7685 if (name) return "Plasma bolt";
7686 if (desc) return "Fires a bolt or beam of plasma.";
7690 int dice = 11 + (plev - 5) / 4;
7693 if (info) return info_damage(dice, sides, 0);
7697 if (!get_aim_dir(&dir)) return NULL;
7699 fire_bolt_or_beam(beam_chance(), GF_PLASMA, dir, damroll(dice, sides));
7706 if (name) return "¥Õ¥¡¥¤¥¢¡¦¥Ü¡¼¥ë";
7707 if (desc) return "±ê¤Îµå¤òÊü¤Ä¡£";
7709 if (name) return "Fire Ball";
7710 if (desc) return "Fires a ball of fire.";
7714 int dam = plev + 55;
7717 if (info) return info_damage(0, 0, dam);
7721 if (!get_aim_dir(&dir)) return NULL;
7723 fire_ball(GF_FIRE, dir, dam, rad);
7730 if (name) return "±ê¤Î¿Ï";
7731 if (desc) return "Éð´ï¤Ë±ê¤Î°À¤ò¤Ä¤±¤ë¡£";
7733 if (name) return "Fire Branding";
7734 if (desc) return "Makes current weapon fire branded.";
7747 if (name) return "ÃϹöµå";
7748 if (desc) return "Â礤ÊÃϹö¤Îµå¤òÊü¤Ä¡£";
7750 if (name) return "Nether Ball";
7751 if (desc) return "Fires a huge ball of nether.";
7755 int dam = plev * 3 / 2 + 100;
7756 int rad = plev / 20 + 2;
7758 if (info) return info_damage(0, 0, dam);
7762 if (!get_aim_dir(&dir)) return NULL;
7764 fire_ball(GF_NETHER, dir, dam, rad);
7771 if (name) return "¥Ç¡¼¥â¥ó¾¤´";
7772 if (desc) return "°Ëâ1ÂΤò¾¤´¤¹¤ë¡£";
7774 if (name) return "Summon Demon";
7775 if (desc) return "Summons a demon.";
7781 bool pet = !one_in_(3);
7784 if (pet) mode |= PM_FORCE_PET;
7785 else mode |= PM_NO_PET;
7786 if (!(pet && (plev < 50))) mode |= PM_ALLOW_GROUP;
7788 if (summon_specific((pet ? -1 : 0), py, px, plev*2/3+randint1(plev/2), SUMMON_DEMON, mode))
7791 msg_print("ⲫ¤Î°½¤¬½¼Ëþ¤·¤¿¡£");
7793 msg_print("The area fills with a stench of sulphur and brimstone.");
7800 msg_print("¡Ö¤´ÍѤǤ´¤¶¤¤¤Þ¤¹¤«¡¢¤´¼ç¿ÍÍÍ¡×");
7802 msg_print("'What is thy bidding... Master?'");
7808 msg_print("¡ÖÈܤ·¤¼Ô¤è¡¢²æ¤ÏÆò¤Î²¼Ëͤˤ¢¤é¤º¡ª ¤ªÁ°¤Îº²¤òĺ¤¯¤¾¡ª¡×");
7810 msg_print("'NON SERVIAM! Wretch! I shall feast on thy mortal soul!'");
7817 msg_print("°Ëâ¤Ï¸½¤ì¤Ê¤«¤Ã¤¿¡£");
7819 msg_print("No demons arrive.");
7829 if (name) return "°Ëâ¤ÎÌÜ";
7830 if (desc) return "°ìÄê»þ´Ö¡¢¥Æ¥ì¥Ñ¥·¡¼Ç½ÎϤòÆÀ¤ë¡£";
7832 if (name) return "Devilish Eye";
7833 if (desc) return "Gives telepathy for a while.";
7840 if (info) return info_duration(base, sides);
7844 set_tim_esp(randint1(base) + sides, FALSE);
7851 if (name) return "°Ëâ¤Î¥¯¥í¡¼¥¯";
7852 if (desc) return "¶²Éݤò¼è¤ê½ü¤¡¢°ìÄê»þ´Ö¡¢±ê¤ÈÎ䵤¤ÎÂÑÀ¡¢±ê¤Î¥ª¡¼¥é¤òÆÀ¤ë¡£ÂÑÀ¤ÏÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
7854 if (name) return "Devil Cloak";
7855 if (desc) return "Removes fear. Gives resistance to fire and cold, and aura of fire. These resistances can be added to which from equipment for more powerful resistances.";
7861 if (info) return info_duration(base, base);
7865 int dur = randint1(base) + base;
7867 set_oppose_fire(dur, FALSE);
7868 set_oppose_cold(dur, FALSE);
7869 set_tim_sh_fire(dur, FALSE);
7878 if (name) return "ÍÏ´äή";
7879 if (desc) return "¼«Ê¬¤òÃæ¿´¤È¤·¤¿±ê¤Îµå¤òºî¤ê½Ð¤·¡¢¾²¤òÍÏ´ä¤ËÊѤ¨¤ë¡£";
7881 if (name) return "The Flow of Lava";
7882 if (desc) return "Generates a ball of fire centered on you which transforms floors to magma.";
7886 int dam = (55 + plev) * 2;
7889 if (info) return info_damage(0, 0, dam/2);
7893 fire_ball(GF_FIRE, 0, dam, rad);
7894 fire_ball_hide(GF_LAVA_FLOW, 0, 2 + randint1(2), rad);
7901 if (name) return "¥×¥é¥º¥Þµå";
7902 if (desc) return "¥×¥é¥º¥Þ¤Îµå¤òÊü¤Ä¡£";
7904 if (name) return "Plasma Ball";
7905 if (desc) return "Fires a ball of plasma.";
7909 int dam = plev * 3 / 2 + 80;
7910 int rad = 2 + plev / 40;
7912 if (info) return info_damage(0, 0, dam);
7916 if (!get_aim_dir(&dir)) return NULL;
7918 fire_ball(GF_PLASMA, dir, dam, rad);
7925 if (name) return "°ËâÊѲ½";
7926 if (desc) return "°ìÄê»þ´Ö¡¢°Ëâ¤ËÊѲ½¤¹¤ë¡£ÊѲ½¤·¤Æ¤¤¤ë´Ö¤ÏËÜÍè¤Î¼ï²¤ÎǽÎϤò¼º¤¤¡¢Âå¤ï¤ê¤Ë°Ëâ¤È¤·¤Æ¤ÎǽÎϤòÆÀ¤ë¡£";
7928 if (name) return "Polymorph Demon";
7929 if (desc) return "Mimic a demon for a while. Loses abilities of original race and gets abilities as a demon.";
7933 int base = 10 + plev / 2;
7935 if (info) return info_duration(base, base);
7939 set_mimic(base + randint1(base), MIMIC_DEMON, FALSE);
7946 if (name) return "ÃϹö¤ÎÇÈÆ°";
7947 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£Á±Îɤʥâ¥ó¥¹¥¿¡¼¤ËÆäËÂ礤ʥÀ¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
7949 if (name) return "Nather Wave";
7950 if (desc) return "Damages all monsters in sight. Hurts good monsters greatly.";
7954 int sides1 = plev * 2;
7955 int sides2 = plev * 2;
7957 if (info) return format("%sd%d+d%d", s_dam, sides1, sides2);
7961 dispel_monsters(randint1(sides1));
7962 dispel_good(randint1(sides2));
7969 if (name) return "¥µ¥¥å¥Ð¥¹¤ÎÀÜÊ";
7970 if (desc) return "°ø²Ìº®Íð¤Îµå¤òÊü¤Ä¡£";
7972 if (name) return "Kiss of Succubus";
7973 if (desc) return "Fires a ball of nexus.";
7977 int dam = 100 + plev * 2;
7980 if (info) return info_damage(0, 0, dam);
7984 if (!get_aim_dir(&dir)) return NULL;
7985 fire_ball(GF_NEXUS, dir, dam, rad);
7992 if (name) return "ÇËÌǤμê";
7993 if (desc) return "ÇËÌǤμê¤òÊü¤Ä¡£¿©¤é¤Ã¤¿¥â¥ó¥¹¥¿¡¼¤Ï¤½¤Î¤È¤¤ÎHP¤ÎȾʬÁ°¸å¤Î¥À¥á¡¼¥¸¤ò¼õ¤±¤ë¡£";
7995 if (name) return "Doom Hand";
7996 if (desc) return "Attempts to make a monster's HP almost half.";
8002 if (!get_aim_dir(&dir)) return NULL;
8004 else msg_print("<ÇËÌǤμê>¤òÊü¤Ã¤¿¡ª");
8006 else msg_print("You invoke the Hand of Doom!");
8009 fire_ball_hide(GF_HAND_DOOM, dir, plev * 2, 0);
8016 if (name) return "»Îµ¤¹âÍÈ";
8017 if (desc) return "°ìÄê»þ´Ö¡¢¥Ò¡¼¥í¡¼µ¤Ê¬¤Ë¤Ê¤ë¡£";
8019 if (name) return "Raise the Morale";
8020 if (desc) return "Removes fear, and gives bonus to hit and 10 more HP for a while.";
8026 if (info) return info_duration(base, base);
8030 set_hero(randint1(base) + base, FALSE);
8039 if (name) return "ÉÔÌǤÎÆùÂÎ";
8040 if (desc) return "°ìÄê»þ´Ö¡¢»þ´ÖµÕž¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£";
8042 if (name) return "Immortal Body";
8043 if (desc) return "Gives resistance to time for a while.";
8049 if (info) return info_duration(base, base);
8053 set_tim_res_time(randint1(base)+base, FALSE);
8060 if (name) return "¶¸µ¤¤Î±ß´Ä";
8061 if (desc) return "¼«Ê¬¤òÃæ¿´¤È¤·¤¿¥«¥ª¥¹¤Îµå¡¢º®Íð¤Îµå¤òȯÀ¸¤µ¤»¡¢¶á¤¯¤Î¥â¥ó¥¹¥¿¡¼¤ò̥λ¤¹¤ë¡£";
8063 if (name) return "Insanity Circle";
8064 if (desc) return "Generate balls of chaos, confusion and charm centered on you.";
8068 int dam = 50 + plev;
8069 int power = 20 + plev;
8070 int rad = 3 + plev / 20;
8072 if (info) return format("%s%d+%d", s_dam, dam/2, dam/2);
8076 fire_ball(GF_CHAOS, 0, dam, rad);
8077 fire_ball(GF_CONFUSION, 0, dam, rad);
8078 fire_ball(GF_CHARM, 0, power, rad);
8085 if (name) return "¥Ú¥Ã¥ÈÇúÇË";
8086 if (desc) return "Á´¤Æ¤Î¥Ú¥Ã¥È¤ò¶¯À©Åª¤ËÇúÇˤµ¤»¤ë¡£";
8088 if (name) return "Explode Pets";
8089 if (desc) return "Makes all pets explode.";
8102 if (name) return "¥°¥ì¡¼¥¿¡¼¥Ç¡¼¥â¥ó¾¤´";
8103 if (desc) return "¾åµé¥Ç¡¼¥â¥ó¤ò¾¤´¤¹¤ë¡£¾¤´¤¹¤ë¤Ë¤Ï¿Í´Ö('p','h','t'¤Çɽ¤µ¤ì¤ë¥â¥ó¥¹¥¿¡¼)¤Î»àÂΤòÊû¤²¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£";
8105 if (name) return "Summon Greater Demon";
8106 if (desc) return "Summons greater demon. It need to sacrifice a corpse of human ('p','h' or 't').";
8112 if (!cast_summon_greater_demon()) return NULL;
8119 if (name) return "ÃϹöÍò";
8120 if (desc) return "ĶµðÂç¤ÊÃϹö¤Îµå¤òÊü¤Ä¡£";
8122 if (name) return "Nether Storm";
8123 if (desc) return "Generate a huge ball of nether.";
8127 int dam = plev * 15;
8130 if (info) return info_damage(0, 0, dam);
8134 if (!get_aim_dir(&dir)) return NULL;
8136 fire_ball(GF_NETHER, dir, dam, rad);
8143 if (name) return "·ì¤Î¼ö¤¤";
8144 if (desc) return "¼«Ê¬¤¬¥À¥á¡¼¥¸¤ò¼õ¤±¤ë¤³¤È¤Ë¤è¤Ã¤ÆÂоݤ˼ö¤¤¤ò¤«¤±¡¢¥À¥á¡¼¥¸¤òÍ¿¤¨ÍÍ¡¹¤Ê¸ú²Ì¤ò°ú¤µ¯¤³¤¹¡£";
8146 if (name) return "Bloody Curse";
8147 if (desc) return "Puts blood curse which damages and causes various effects on a monster. You also take damage.";
8154 if (info) return info_damage(0, 0, dam);
8158 if (!get_aim_dir(&dir)) return NULL;
8160 fire_ball_hide(GF_BLOOD_CURSE, dir, dam, rad);
8162 take_hit(DAMAGE_USELIFE, 20 + randint1(30), "·ì¤Î¼ö¤¤", -1);
8164 take_hit(DAMAGE_USELIFE, 20 + randint1(30), "Blood curse", -1);
8172 if (name) return "ËⲦÊѲ½";
8173 if (desc) return "°Ëâ¤Î²¦¤ËÊѲ½¤¹¤ë¡£ÊѲ½¤·¤Æ¤¤¤ë´Ö¤ÏËÜÍè¤Î¼ï²¤ÎǽÎϤò¼º¤¤¡¢Âå¤ï¤ê¤Ë°Ëâ¤Î²¦¤È¤·¤Æ¤ÎǽÎϤòÆÀ¡¢ÊɤòÇ˲õ¤·¤Ê¤¬¤éÊ⤯¡£";
8175 if (name) return "Polymorph Demonlord";
8176 if (desc) return "Mimic a demon lord for a while. Loses abilities of original race and gets great abilities as a demon lord. Even hard walls can't stop your walking.";
8182 if (info) return info_duration(base, base);
8186 set_mimic(base + randint1(base), MIMIC_DEMON_LORD, FALSE);
8196 static cptr do_crusade_spell(int spell, int mode)
8198 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
8199 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
8200 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
8201 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
8204 int plev = p_ptr->lev;
8210 if (name) return "Ĩȳ";
8211 if (desc) return "ÅÅ·â¤Î¥Ü¥ë¥È¤â¤·¤¯¤Ï¥Ó¡¼¥à¤òÊü¤Ä¡£";
8213 if (name) return "Punishment";
8214 if (desc) return "Fires a bolt or beam of lightning.";
8218 int dice = 3 + (plev - 1) / 5;
8221 if (info) return info_damage(dice, sides, 0);
8225 if (!get_aim_dir(&dir)) return NULL;
8227 fire_bolt_or_beam(beam_chance() - 10, GF_ELEC, dir, damroll(dice, sides));
8234 if (name) return "¼Ù°Â¸ºß´¶ÃÎ";
8235 if (desc) return "¶á¤¯¤Î¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ò´¶ÃΤ¹¤ë¡£";
8237 if (name) return "Detect Evil";
8238 if (desc) return "Detects all evil monsters in your vicinity.";
8242 int rad = DETECT_RAD_DEFAULT;
8244 if (info) return info_radius(rad);
8248 detect_monsters_evil(rad);
8255 if (name) return "¶²Éݽüµî";
8256 if (desc) return "¶²Éݤò¼è¤ê½ü¤¯¡£";
8258 if (name) return "Remove Fear";
8259 if (desc) return "Removes fear.";
8272 if (name) return "°Ò°µ";
8273 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤò¶²Éݤµ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
8275 if (name) return "Scare Monster";
8276 if (desc) return "Attempts to scare a monster.";
8282 if (info) return info_power(power);
8286 if (!get_aim_dir(&dir)) return NULL;
8288 fear_monster(dir, power);
8295 if (name) return "À»°è";
8296 if (desc) return "ÎÙÀܤ·¤¿Á´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò̲¤é¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
8298 if (name) return "Sanctuary";
8299 if (desc) return "Attempts to sleep monsters in the adjacent squares.";
8305 if (info) return info_power(power);
8309 sleep_monsters_touch();
8316 if (name) return "Æþ¸ý";
8317 if (desc) return "Ãæµ÷Î¥¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¤¹¤ë¡£";
8319 if (name) return "Portal";
8320 if (desc) return "Teleport medium distance.";
8324 int range = 25 + plev / 2;
8326 if (info) return info_range(range);
8330 teleport_player(range, 0L);
8337 if (name) return "¥¹¥¿¡¼¥À¥¹¥È";
8338 if (desc) return "¥¿¡¼¥²¥Ã¥ÈÉÕ¶á¤ËÁ®¸÷¤Î¥Ü¥ë¥È¤òÏ¢¼Í¤¹¤ë¡£";
8340 if (name) return "Star Dust";
8341 if (desc) return "Fires many bolts of light near the target.";
8345 int dice = 3 + (plev - 1) / 9;
8348 if (info) return info_multi_damage_dice(dice, sides);
8352 if (!get_aim_dir(&dir)) return NULL;
8353 fire_blast(GF_LITE, dir, dice, sides, 10, 3);
8360 if (name) return "¿ÈÂξô²½";
8361 if (desc) return "½ý¡¢ÆÇ¡¢Û¯Û°¤«¤éÁ´²÷¤¹¤ë¡£";
8363 if (name) return "Purify";
8364 if (desc) return "Heals all cut, stun and poison status.";
8379 if (name) return "¼Ù°Èô¤Ð¤·";
8380 if (desc) return "¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼1ÂΤò¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
8382 if (name) return "Scatter Evil";
8383 if (desc) return "Attempts to teleport an evil monster away.";
8387 int power = MAX_SIGHT * 5;
8389 if (info) return info_power(power);
8393 if (!get_aim_dir(&dir)) return NULL;
8394 fire_ball(GF_AWAY_EVIL, dir, power, 0);
8401 if (name) return "À»¤Ê¤ë¸÷µå";
8402 if (desc) return "À»¤Ê¤ëÎϤò¤â¤ÄÊõ¼î¤òÊü¤Ä¡£¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ËÂФ·¤ÆÂ礤ʥÀ¥á¡¼¥¸¤òÍ¿¤¨¤ë¤¬¡¢Á±Îɤʥâ¥ó¥¹¥¿¡¼¤Ë¤Ï¸ú²Ì¤¬¤Ê¤¤¡£";
8404 if (name) return "Holy Orb";
8405 if (desc) return "Fires a ball with holy power. Hurts evil monsters greatly, but don't effect good monsters.";
8411 int rad = (plev < 30) ? 2 : 3;
8414 if (p_ptr->pclass == CLASS_PRIEST ||
8415 p_ptr->pclass == CLASS_HIGH_MAGE ||
8416 p_ptr->pclass == CLASS_SORCERER)
8417 base = plev + plev / 2;
8419 base = plev + plev / 4;
8422 if (info) return info_damage(dice, sides, base);
8426 if (!get_aim_dir(&dir)) return NULL;
8428 fire_ball(GF_HOLY_FIRE, dir, damroll(dice, sides) + base, rad);
8435 if (name) return "°Ëâʧ¤¤";
8436 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥¢¥ó¥Ç¥Ã¥ÉµÚ¤Ó°Ëâ¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¡¢¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ò¶²Éݤµ¤»¤ë¡£";
8438 if (name) return "Exorcism";
8439 if (desc) return "Damages all undead and demons in sight, and scares all evil monsters in sight.";
8446 if (info) return info_damage(1, sides, 0);
8450 dispel_undead(randint1(sides));
8451 dispel_demons(randint1(sides));
8459 if (name) return "²ò¼ö";
8460 if (desc) return "¥¢¥¤¥Æ¥à¤Ë¤«¤«¤Ã¤¿¼å¤¤¼ö¤¤¤ò²ò½ü¤¹¤ë¡£";
8462 if (name) return "Remove Curse";
8463 if (desc) return "Removes normal curses from equipped items.";
8472 msg_print("狼¤Ë¸«¼é¤é¤ì¤Æ¤¤¤ë¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£");
8474 msg_print("You feel as if someone is watching over you.");
8483 if (name) return "Æ©ÌÀ»ëǧ";
8484 if (desc) return "°ìÄê»þ´Ö¡¢Æ©ÌÀ¤Ê¤â¤Î¤¬¸«¤¨¤ë¤è¤¦¤Ë¤Ê¤ë¡£";
8486 if (name) return "Sense Unseen";
8487 if (desc) return "Gives see invisible for a while.";
8493 if (info) return info_duration(base, base);
8497 set_tim_invis(randint1(base) + base, FALSE);
8504 if (name) return "Âмٰ·ë³¦";
8505 if (desc) return "¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤Î¹¶·â¤òËɤ°¥Ð¥ê¥¢¤òÄ¥¤ë¡£";
8507 if (name) return "Protection from Evil";
8508 if (desc) return "Gives aura which protect you from evil monster's physical attack.";
8513 int sides = 3 * plev;
8515 if (info) return info_duration(base, sides);
8519 set_protevil(randint1(sides) + sides, FALSE);
8526 if (name) return "ºÛ¤¤ÎÍë";
8527 if (desc) return "¶¯ÎϤÊÅÅ·â¤Î¥Ü¥ë¥È¤òÊü¤Ä¡£";
8529 if (name) return "Judgment Thunder";
8530 if (desc) return "Fires a powerful bolt of lightning.";
8536 if (info) return info_damage(0, 0, dam);
8540 if (!get_aim_dir(&dir)) return NULL;
8541 fire_bolt(GF_ELEC, dir, dam);
8548 if (name) return "À»¤Ê¤ë¸æ¸ÀÍÕ";
8549 if (desc) return "»ë³¦Æâ¤Î¼Ù°¤Ê¸ºß¤ËÂ礤ʥÀ¥á¡¼¥¸¤òÍ¿¤¨¡¢ÂÎÎϤò²óÉü¤·¡¢ÆÇ¡¢¶²ÉÝ¡¢Û¯Û°¾õÂÖ¡¢Éé½ý¤«¤éÁ´²÷¤¹¤ë¡£";
8551 if (name) return "Holy Word";
8552 if (desc) return "Damages all evil monsters in sight, heals HP somewhat, and completely heals poison, fear, stun and cut status.";
8556 int dam_sides = plev * 6;
8560 if (info) return format("»:1d%d/²ó%d", dam_sides, heal);
8562 if (info) return format("dam:d%d/h%d", dam_sides, heal);
8567 dispel_evil(randint1(dam_sides));
8579 if (name) return "³«¤«¤ì¤¿Æ»";
8580 if (desc) return "°ìľÀþ¾å¤ÎÁ´¤Æ¤Î櫤ÈÈâ¤òÇ˲õ¤¹¤ë¡£";
8582 if (name) return "Unbarring Ways";
8583 if (desc) return "Fires a beam which destroy traps and doors.";
8589 if (!get_aim_dir(&dir)) return NULL;
8598 if (name) return "ÉõËâ";
8599 if (desc) return "¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ÎÆ°¤¤ò»ß¤á¤ë¡£";
8601 if (name) return "Arrest";
8602 if (desc) return "Attempts to paralyze an evil monster.";
8606 int power = plev * 2;
8608 if (info) return info_power(power);
8612 if (!get_aim_dir(&dir)) return NULL;
8620 if (name) return "À»¤Ê¤ë¥ª¡¼¥é";
8621 if (desc) return "°ìÄê»þ´Ö¡¢¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ò½ý¤Ä¤±¤ëÀ»¤Ê¤ë¥ª¡¼¥é¤òÆÀ¤ë¡£";
8623 if (name) return "Holy Aura";
8624 if (desc) return "Gives aura of holy power which injures evil monsters which attacked you for a while.";
8630 if (info) return info_duration(base, base);
8634 set_tim_sh_holy(randint1(base) + base, FALSE);
8641 if (name) return "¥¢¥ó¥Ç¥Ã¥É&°ËâÂ໶";
8642 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥¢¥ó¥Ç¥Ã¥ÉµÚ¤Ó°Ëâ¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
8644 if (name) return "Dispel Undead & Demons";
8645 if (desc) return "Damages all undead and demons in sight.";
8649 int sides = plev * 4;
8651 if (info) return info_damage(1, sides, 0);
8655 dispel_undead(randint1(sides));
8656 dispel_demons(randint1(sides));
8663 if (name) return "¼Ù°Â໶";
8664 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
8666 if (name) return "Dispel Evil";
8667 if (desc) return "Damages all evil monsters in sight.";
8671 int sides = plev * 4;
8673 if (info) return info_damage(1, sides, 0);
8677 dispel_evil(randint1(sides));
8684 if (name) return "À»¤Ê¤ë¿Ï";
8685 if (desc) return "Ä̾ï¤ÎÉð´ï¤ËÌǼ٤ΰÀ¤ò¤Ä¤±¤ë¡£";
8687 if (name) return "Holy Blade";
8688 if (desc) return "Makes current weapon especially deadly against evil monsters.";
8701 if (name) return "¥¹¥¿¡¼¥Ð¡¼¥¹¥È";
8702 if (desc) return "µðÂç¤ÊÁ®¸÷¤Îµå¤òÊü¤Ä¡£";
8704 if (name) return "Star Burst";
8705 if (desc) return "Fires a huge ball of powerful light.";
8709 int dam = 100 + plev * 2;
8712 if (info) return info_damage(0, 0, dam);
8716 if (!get_aim_dir(&dir)) return NULL;
8718 fire_ball(GF_LITE, dir, dam, rad);
8725 if (name) return "Å·»È¾¤´";
8726 if (desc) return "Å·»È¤ò1Âξ¤´¤¹¤ë¡£";
8728 if (name) return "Summon Angel";
8729 if (desc) return "Summons an angel.";
8735 bool pet = !one_in_(3);
8738 if (pet) mode |= PM_FORCE_PET;
8739 else mode |= PM_NO_PET;
8740 if (!(pet && (plev < 50))) mode |= PM_ALLOW_GROUP;
8742 if (summon_specific((pet ? -1 : 0), py, px, (plev * 3) / 2, SUMMON_ANGEL, mode))
8747 msg_print("¡Ö¤´ÍѤǤ´¤¶¤¤¤Þ¤¹¤«¡¢¤´¼ç¿ÍÍÍ¡×");
8749 msg_print("'What is thy bidding... Master?'");
8755 msg_print("¡Ö²æ¤ÏÆò¤Î²¼Ëͤˤ¢¤é¤º¡ª °¹Ô¼Ô¤è¡¢²ù¤¤²þ¤á¤è¡ª¡×");
8757 msg_print("Mortal! Repent of thy impiousness.");
8767 if (name) return "»Îµ¤¹âÍÈ";
8768 if (desc) return "°ìÄê»þ´Ö¡¢¥Ò¡¼¥í¡¼µ¤Ê¬¤Ë¤Ê¤ë¡£";
8770 if (name) return "Heroism";
8771 if (desc) return "Removes fear, and gives bonus to hit and 10 more HP for a while.";
8777 if (info) return info_duration(base, base);
8781 set_hero(randint1(base) + base, FALSE);
8790 if (name) return "¼ö¤¤Â໶";
8791 if (desc) return "¥¢¥¤¥Æ¥à¤Ë¤«¤«¤Ã¤¿¶¯ÎϤʼö¤¤¤ò²ò½ü¤¹¤ë¡£";
8793 if (name) return "Dispel Curse";
8794 if (desc) return "Removes normal and heavy curse from equipped items.";
8800 if (remove_all_curse())
8803 msg_print("狼¤Ë¸«¼é¤é¤ì¤Æ¤¤¤ë¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£");
8805 msg_print("You feel as if someone is watching over you.");
8814 if (name) return "¼Ù°ÄÉÊü";
8815 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ò¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
8817 if (name) return "Banish Evil";
8818 if (desc) return "Teleports all evil monsters in sight away unless resisted.";
8824 if (info) return info_power(power);
8828 if (banish_evil(power))
8831 msg_print("¿ÀÀ»¤ÊÎϤ¬¼Ù°¤òÂǤÁʧ¤Ã¤¿¡ª");
8833 msg_print("The holy power banishes evil!");
8843 if (name) return "¥Ï¥ë¥Þ¥²¥É¥ó";
8844 if (desc) return "¼þÊդΥ¢¥¤¥Æ¥à¡¢¥â¥ó¥¹¥¿¡¼¡¢ÃÏ·Á¤òÇ˲õ¤¹¤ë¡£";
8846 if (name) return "Armageddon";
8847 if (desc) return "Destroy everything in nearby area.";
8856 destroy_area(py, px, base + randint1(sides), FALSE);
8863 if (name) return "ÌܤˤÏÌܤò";
8864 if (desc) return "°ìÄê»þ´Ö¡¢¼«Ê¬¤¬¥À¥á¡¼¥¸¤ò¼õ¤±¤¿¤È¤¤Ë¹¶·â¤ò¹Ô¤Ã¤¿¥â¥ó¥¹¥¿¡¼¤ËÂФ·¤ÆƱÅù¤Î¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
8866 if (name) return "An Eye for an Eye";
8867 if (desc) return "Gives special aura for a while. When you are attacked by a monster, the monster are injured with same amount of damage as you take.";
8873 if (info) return info_duration(base, base);
8877 set_tim_eyeeye(randint1(base) + base, FALSE);
8884 if (name) return "¿À¤ÎÅܤê";
8885 if (desc) return "¥¿¡¼¥²¥Ã¥È¤Î¼þ°Ï¤Ëʬ²ò¤Îµå¤ò¿¿ôÍî¤È¤¹¡£";
8887 if (name) return "Wrath of the God";
8888 if (desc) return "Drops many balls of disintegration near the target.";
8892 int dam = plev * 3 + 25;
8895 if (info) return info_multi_damage(dam);
8899 if (!cast_wrath_of_the_god(dam, rad)) return NULL;
8906 if (name) return "¿À°Ò";
8907 if (desc) return "ÎÙÀܤ¹¤ë¥â¥ó¥¹¥¿¡¼¤ËÀ»¤Ê¤ë¥À¥á¡¼¥¸¤òÍ¿¤¨¡¢»ë³¦Æâ¤Î¥â¥ó¥¹¥¿¡¼¤Ë¥À¥á¡¼¥¸¡¢¸ºÂ®¡¢Û¯Û°¡¢º®Í𡢶²ÉÝ¡¢Ì²¤ê¤òÍ¿¤¨¤ë¡£¤µ¤é¤ËÂÎÎϤò²óÉü¤¹¤ë¡£";
8909 if (name) return "Divine Intervention";
8910 if (desc) return "Damages all adjacent monsters with holy power. Damages and attempt to slow, stun, confuse, scare and freeze all monsters in sight. And heals HP.";
8914 int b_dam = plev * 11;
8915 int d_dam = plev * 4;
8917 int power = plev * 4;
8920 if (info) return format("²ó%d/»%d+%d", heal, d_dam, b_dam/2);
8922 if (info) return format("h%d/dm%d+%d", heal, d_dam, b_dam/2);
8927 project(0, 1, py, px, b_dam, GF_HOLY_FIRE, PROJECT_KILL, -1);
8928 dispel_monsters(d_dam);
8929 slow_monsters(plev);
8930 stun_monsters(power);
8931 confuse_monsters(power);
8932 turn_monsters(power);
8933 stasis_monsters(power);
8941 if (name) return "À»Àï";
8942 if (desc) return "»ë³¦Æâ¤ÎÁ±Îɤʥâ¥ó¥¹¥¿¡¼¤ò¥Ú¥Ã¥È¤Ë¤·¤è¤¦¤È¤·¡¢¤Ê¤é¤Ê¤«¤Ã¤¿¾ì¹çµÚ¤ÓÁ±ÎɤǤʤ¤¥â¥ó¥¹¥¿¡¼¤ò¶²Éݤµ¤»¤ë¡£¤µ¤é¤Ë¿¿ô¤Î²Ã®¤µ¤ì¤¿µ³»Î¤ò¾¤´¤·¡¢¥Ò¡¼¥í¡¼¡¢½ËÊ¡¡¢²Ã®¡¢Âмٰ·ë³¦¤òÆÀ¤ë¡£";
8944 if (name) return "Crusade";
8945 if (desc) return "Attempts to charm all good monsters in sight, and scare all non-charmed monsters, and summons great number of knights, and gives heroism, bless, speed and protection from evil.";
8952 int sp_sides = 20 + plev;
8957 for (i = 0; i < 12; i++)
8964 scatter(&my, &mx, py, px, 4, 0);
8966 /* Require empty grids */
8967 if (cave_empty_bold2(my, mx)) break;
8969 if (attempt < 0) continue;
8970 summon_specific(-1, my, mx, plev, SUMMON_KNIGHTS, (PM_ALLOW_GROUP | PM_FORCE_PET | PM_HASTE));
8972 set_hero(randint1(base) + base, FALSE);
8973 set_blessed(randint1(base) + base, FALSE);
8974 set_fast(randint1(sp_sides) + sp_base, FALSE);
8975 set_protevil(randint1(base) + base, FALSE);
8986 static cptr do_music_spell(int spell, int mode)
8988 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
8989 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
8990 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
8991 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
8992 bool fail = (mode == SPELL_FAIL) ? TRUE : FALSE;
8993 bool cont = (mode == SPELL_CONT) ? TRUE : FALSE;
8994 bool stop = (mode == SPELL_STOP) ? TRUE : FALSE;
8997 static const char s_dam[] = "»½ý:";
8999 static const char s_dam[] = "dam ";
9003 int plev = p_ptr->lev;
9009 if (name) return "ÃÙÆߤβÎ";
9010 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò¸ºÂ®¤µ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
9012 if (name) return "Song of Holding";
9013 if (desc) return "Attempts to slow all monsters in sight.";
9016 /* Stop singing before start another */
9017 if (cast || fail) stop_singing();
9022 msg_print("¤æ¤Ã¤¯¤ê¤È¤·¤¿¥á¥í¥Ç¥£¤ò¸ý¤º¤µ¤ß»Ï¤á¤¿¡¥¡¥¡¥");
9024 msg_print("You start humming a slow, steady melody...");
9026 start_singing(spell, MUSIC_SLOW);
9032 if (info) return info_power(power);
9036 slow_monsters(plev);
9043 if (name) return "½ËÊ¡¤Î²Î";
9044 if (desc) return "Ì¿ÃæΨ¤ÈAC¤Î¥Ü¡¼¥Ê¥¹¤òÆÀ¤ë¡£";
9046 if (name) return "Song of Blessing";
9047 if (desc) return "Gives bonus to hit and AC for a few turns.";
9050 /* Stop singing before start another */
9051 if (cast || fail) stop_singing();
9056 msg_print("¸·¤«¤Ê¥á¥í¥Ç¥£¤òÁդǻϤ᤿¡¥¡¥¡¥");
9058 msg_print("The holy power of the Music of the Ainur enters you...");
9060 start_singing(spell, MUSIC_BLESS);
9065 if (!p_ptr->blessed)
9068 msg_print("¹â·é¤Êµ¤Ê¬¤¬¾Ã¤¨¼º¤»¤¿¡£");
9070 msg_print("The prayer has expired.");
9079 if (name) return "Êø²õ¤Î²»¿§";
9080 if (desc) return "¹ì²»¤Î¥Ü¥ë¥È¤òÊü¤Ä¡£";
9082 if (name) return "Wrecking Note";
9083 if (desc) return "Fires a bolt of sound.";
9086 /* Stop singing before start another */
9087 if (cast || fail) stop_singing();
9090 int dice = 4 + (plev - 1) / 5;
9093 if (info) return info_damage(dice, sides, 0);
9097 if (!get_aim_dir(&dir)) return NULL;
9099 fire_bolt(GF_SOUND, dir, damroll(dice, sides));
9106 if (name) return "Û¯Û°¤ÎÀûΧ";
9107 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤òÛ¯Û°¤µ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
9109 if (name) return "Stun Pattern";
9110 if (desc) return "Attempts to stun all monsters in sight.";
9113 /* Stop singing before start another */
9114 if (cast || fail) stop_singing();
9119 msg_print("âÁÏǤµ¤»¤ë¥á¥í¥Ç¥£¤òÁդǻϤ᤿¡¥¡¥¡¥");
9121 msg_print("You weave a pattern of sounds to bewilder and daze...");
9123 start_singing(spell, MUSIC_STUN);
9127 int dice = plev / 10;
9130 if (info) return info_power_dice(dice, sides);
9134 stun_monsters(damroll(dice, sides));
9142 if (name) return "À¸Ì¿¤Îή¤ì";
9143 if (desc) return "ÂÎÎϤò¾¯¤·²óÉü¤µ¤»¤ë¡£";
9145 if (name) return "Flow of Life";
9146 if (desc) return "Heals HP a little.";
9149 /* Stop singing before start another */
9150 if (cast || fail) stop_singing();
9155 msg_print("²Î¤òÄ̤·¤ÆÂΤ˳赤¤¬Ìá¤Ã¤Æ¤¤¿¡¥¡¥¡¥");
9157 msg_print("Life flows through you as you sing a song of healing...");
9159 start_singing(spell, MUSIC_L_LIFE);
9166 if (info) return info_heal(dice, sides, 0);
9170 hp_player(damroll(dice, sides));
9178 if (name) return "ÂÀÍۤβÎ";
9179 if (desc) return "¸÷¸»¤¬¾È¤é¤·¤Æ¤¤¤ëÈϰϤ«Éô²°Á´ÂΤò±Êµ×¤ËÌÀ¤ë¤¯¤¹¤ë¡£";
9181 if (name) return "Song of the Sun";
9182 if (desc) return "Lights up nearby area and the inside of a room permanently.";
9185 /* Stop singing before start another */
9186 if (cast || fail) stop_singing();
9190 int sides = plev / 2;
9191 int rad = plev / 10 + 1;
9193 if (info) return info_damage(dice, sides, 0);
9198 msg_print("¸÷¤êµ±¤¯²Î¤¬ÊÕ¤ê¤ò¾È¤é¤·¤¿¡£");
9200 msg_print("Your uplifting song brings brightness to dark places...");
9203 lite_area(damroll(dice, sides), rad);
9210 if (name) return "¶²ÉݤβÎ";
9211 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò¶²Éݤµ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
9213 if (name) return "Song of Fear";
9214 if (desc) return "Attempts to scare all monsters in sight.";
9217 /* Stop singing before start another */
9218 if (cast || fail) stop_singing();
9223 msg_print("¤ª¤É¤í¤ª¤É¤í¤·¤¤¥á¥í¥Ç¥£¤òÁդǻϤ᤿¡¥¡¥¡¥");
9225 msg_print("You start weaving a fearful pattern...");
9227 start_singing(spell, MUSIC_FEAR);
9233 if (info) return info_power(power);
9237 project_hack(GF_TURN_ALL, power);
9245 if (name) return "À襤¤Î²Î";
9246 if (desc) return "¥Ò¡¼¥í¡¼µ¤Ê¬¤Ë¤Ê¤ë¡£";
9248 if (name) return "Heroic Ballad";
9249 if (desc) return "Removes fear, and gives bonus to hit and 10 more HP for a while.";
9252 /* Stop singing before start another */
9253 if (cast || fail) stop_singing();
9258 msg_print("·ã¤·¤¤À襤¤Î²Î¤ò²Î¤Ã¤¿¡¥¡¥¡¥");
9260 msg_print("You start singing a song of intense fighting...");
9263 (void)hp_player(10);
9264 (void)set_afraid(0);
9266 /* Recalculate hitpoints */
9267 p_ptr->update |= (PU_HP);
9269 start_singing(spell, MUSIC_HERO);
9277 msg_print("¥Ò¡¼¥í¡¼¤Îµ¤Ê¬¤¬¾Ã¤¨¼º¤»¤¿¡£");
9279 msg_print("The heroism wears off.");
9281 /* Recalculate hitpoints */
9282 p_ptr->update |= (PU_HP);
9290 if (name) return "ÎîŪÃγÐ";
9291 if (desc) return "¶á¤¯¤Îæ«/Èâ/³¬Ãʤò´¶ÃΤ¹¤ë¡£¥ì¥Ù¥ë15¤ÇÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¡¢20¤ÇºâÊõ¤È¥¢¥¤¥Æ¥à¤ò´¶ÃΤǤ¤ë¤è¤¦¤Ë¤Ê¤ë¡£¥ì¥Ù¥ë25¤Ç¼þÊÕ¤ÎÃÏ·Á¤ò´¶ÃΤ·¡¢40¤Ç¤½¤Î³¬Á´ÂΤò±Êµ×¤Ë¾È¤é¤·¡¢¥À¥ó¥¸¥ç¥óÆâ¤Î¤¹¤Ù¤Æ¤Î¥¢¥¤¥Æ¥à¤ò´¶ÃΤ¹¤ë¡£¤³¤Î¸ú²Ì¤Ï²Î¤¤Â³¤±¤ë¤³¤È¤Ç½ç¤Ëµ¯¤³¤ë¡£";
9293 if (name) return "Clairaudience";
9294 if (desc) return "Detects traps, doors and stairs in your vicinity. And detects all monsters at level 15, treasures and items at level 20. Maps nearby area at level 25. Lights and know the whole level at level 40. These effects occurs by turns while this song continues.";
9297 /* Stop singing before start another */
9298 if (cast || fail) stop_singing();
9303 msg_print("ÀŤ«¤Ê²»³Ú¤¬´¶³Ð¤ò¸¦¤®À¡¤Þ¤µ¤»¤¿¡¥¡¥¡¥");
9305 msg_print("Your quiet music sharpens your sense of hearing...");
9308 /* Hack -- Initialize the turn count */
9309 p_ptr->magic_num1[2] = 0;
9311 start_singing(spell, MUSIC_DETECT);
9315 int rad = DETECT_RAD_DEFAULT;
9317 if (info) return info_radius(rad);
9321 int count = p_ptr->magic_num1[2];
9323 if (count >= 19) wiz_lite(FALSE);
9327 if (plev > 39 && count < 19)
9328 p_ptr->magic_num1[2] = count + 1;
9332 /* There are too many hidden treasure. So... */
9333 /* detect_treasure(rad); */
9334 detect_objects_gold(rad);
9335 detect_objects_normal(rad);
9337 if (plev > 24 && count < 11)
9338 p_ptr->magic_num1[2] = count + 1;
9342 detect_monsters_invis(rad);
9343 detect_monsters_normal(rad);
9345 if (plev > 19 && count < 6)
9346 p_ptr->magic_num1[2] = count + 1;
9348 detect_traps(rad, TRUE);
9352 if (plev > 14 && count < 3)
9353 p_ptr->magic_num1[2] = count + 1;
9361 if (name) return "º²¤Î²Î";
9362 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ËÂФ·¤ÆÀº¿À¹¶·â¤ò¹Ô¤¦¡£";
9364 if (name) return "Soul Shriek";
9365 if (desc) return "Damages all monsters in sight with PSI damages.";
9368 /* Stop singing before start another */
9369 if (cast || fail) stop_singing();
9374 msg_print("Àº¿À¤òDZ¤¸¶Ê¤²¤ë²Î¤ò²Î¤Ã¤¿¡¥¡¥¡¥");
9376 msg_print("You start singing a song of soul in pain...");
9378 start_singing(spell, MUSIC_PSI);
9383 int sides = plev * 3 / 2;
9385 if (info) return info_damage(dice, sides, 0);
9389 project_hack(GF_PSI, damroll(dice, sides));
9397 if (name) return "Ãμ±¤Î²Î";
9398 if (desc) return "¼«Ê¬¤Î¤¤¤ë¥Þ¥¹¤ÈÎÙ¤ê¤Î¥Þ¥¹¤ËÍî¤Á¤Æ¤¤¤ë¥¢¥¤¥Æ¥à¤ò´ÕÄꤹ¤ë¡£";
9400 if (name) return "Song of Lore";
9401 if (desc) return "Identifies all items which are in the adjacent squares.";
9404 /* Stop singing before start another */
9405 if (cast || fail) stop_singing();
9410 msg_print("¤³¤ÎÀ¤³¦¤ÎÃ챤¬Î®¤ì¹þ¤ó¤Ç¤¤¿¡¥¡¥¡¥");
9412 msg_print("You recall the rich lore of the world...");
9414 start_singing(spell, MUSIC_ID);
9420 if (info) return info_radius(rad);
9423 * ²Î¤Î³«»Ï»þ¤Ë¤â¸ú²Ìȯư¡§
9424 * MPÉÔ¤ǴÕÄ꤬ȯư¤µ¤ì¤ëÁ°¤Ë²Î¤¬ÃæÃǤ·¤Æ¤·¤Þ¤¦¤Î¤òËɻߡ£
9428 project(0, rad, py, px, 0, GF_IDENTIFY, PROJECT_ITEM, -1);
9436 if (name) return "±£ÆۤβÎ";
9437 if (desc) return "±£Ì©¹ÔưǽÎϤò¾å¾º¤µ¤»¤ë¡£";
9439 if (name) return "Hiding Tune";
9440 if (desc) return "Gives improved stealth.";
9443 /* Stop singing before start another */
9444 if (cast || fail) stop_singing();
9449 msg_print("¤¢¤Ê¤¿¤Î»Ñ¤¬·Ê¿§¤Ë¤È¤±¤³¤ó¤Ç¤¤¤Ã¤¿¡¥¡¥¡¥");
9451 msg_print("Your song carries you beyond the sight of mortal eyes...");
9453 start_singing(spell, MUSIC_STEALTH);
9458 if (!p_ptr->tim_stealth)
9461 msg_print("»Ñ¤¬¤Ï¤Ã¤¤ê¤È¸«¤¨¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£");
9463 msg_print("You are no longer hided.");
9472 if (name) return "¸¸±Æ¤ÎÀûΧ";
9473 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤òº®Í𤵤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
9475 if (name) return "Illusion Pattern";
9476 if (desc) return "Attempts to confuse all monsters in sight.";
9479 /* Stop singing before start another */
9480 if (cast || fail) stop_singing();
9485 msg_print("ÊÕ¤ê°ìÌ̤˸¸±Æ¤¬¸½¤ì¤¿¡¥¡¥¡¥");
9487 msg_print("You weave a pattern of sounds to beguile and confuse...");
9489 start_singing(spell, MUSIC_CONF);
9493 int power = plev * 2;
9495 if (info) return info_power(power);
9499 confuse_monsters(power);
9507 if (name) return "ÇËÌǤ櫤Ó";
9508 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ËÂФ·¤Æ¹ì²»¹¶·â¤ò¹Ô¤¦¡£";
9510 if (name) return "Doomcall";
9511 if (desc) return "Damages all monsters in sight with booming sound.";
9514 /* Stop singing before start another */
9515 if (cast || fail) stop_singing();
9520 msg_print("¹ì²»¤¬¶Á¤¤¤¿¡¥¡¥¡¥");
9522 msg_print("The fury of the Downfall of Numenor lashes out...");
9524 start_singing(spell, MUSIC_SOUND);
9528 int dice = 10 + plev / 5;
9531 if (info) return info_damage(dice, sides, 0);
9535 project_hack(GF_SOUND, damroll(dice, sides));
9543 if (name) return "¥Õ¥£¥ê¥¨¥ë¤Î²Î";
9544 if (desc) return "¼þ°Ï¤Î»àÂΤä¹ü¤òÀ¸¤ÊÖ¤¹¡£";
9546 if (name) return "Firiel's Song";
9547 if (desc) return "Resurrects nearby corpse and skeletons. And makes these your pets.";
9551 /* Stop singing before start another */
9552 if (cast || fail) stop_singing();
9557 msg_print("À¸Ì¿¤ÈÉü³è¤Î¥Æ¡¼¥Þ¤òÁդǻϤ᤿¡¥¡¥¡¥");
9559 msg_print("The themes of life and revival are woven into your song...");
9562 animate_dead(0, py, px);
9569 if (name) return "ι¤ÎÃç´Ö";
9570 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò̥λ¤¹¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
9572 if (name) return "Fellowship Chant";
9573 if (desc) return "Attempts to charm all monsters in sight.";
9576 /* Stop singing before start another */
9577 if (cast || fail) stop_singing();
9582 msg_print("°Â¤é¤«¤Ê¥á¥í¥Ç¥£¤òÁդǻϤ᤿¡¥¡¥¡¥");
9584 msg_print("You weave a slow, soothing melody of imploration...");
9586 start_singing(spell, MUSIC_CHARM);
9590 int dice = 10 + plev / 15;
9593 if (info) return info_power_dice(dice, sides);
9597 charm_monsters(damroll(dice, sides));
9605 if (name) return "ʬ²ò²»ÇÈ";
9606 if (desc) return "Êɤò·¡¤ê¿Ê¤à¡£¼«Ê¬¤Î¸µ¤Î¥¢¥¤¥Æ¥à¤Ï¾øȯ¤¹¤ë¡£";
9608 if (name) return "Sound of disintegration";
9609 if (desc) return "Makes you be able to burrow into walls. Objects under your feet evaporate.";
9612 /* Stop singing before start another */
9613 if (cast || fail) stop_singing();
9618 msg_print("Ê´ºÕ¤¹¤ë¥á¥í¥Ç¥£¤òÁդǻϤ᤿¡¥¡¥¡¥");
9620 msg_print("You weave a violent pattern of sounds to break wall.");
9622 start_singing(spell, MUSIC_WALL);
9627 * ²Î¤Î³«»Ï»þ¤Ë¤â¸ú²Ìȯư¡§
9628 * MPÉÔ¤Ǹú²Ì¤¬È¯Æ°¤µ¤ì¤ëÁ°¤Ë²Î¤¬ÃæÃǤ·¤Æ¤·¤Þ¤¦¤Î¤òËɻߡ£
9632 project(0, 0, py, px,
9633 0, GF_DISINTEGRATE, PROJECT_KILL | PROJECT_ITEM | PROJECT_HIDE, -1);
9640 if (name) return "¸µÁÇÂÑÀ";
9641 if (desc) return "»À¡¢ÅÅ·â¡¢±ê¡¢Î䵤¡¢ÆǤËÂФ¹¤ëÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
9643 if (name) return "Finrod's Resistance";
9644 if (desc) return "Gives resistance to fire, cold, electricity, acid and poison. These resistances can be added to which from equipment for more powerful resistances.";
9647 /* Stop singing before start another */
9648 if (cast || fail) stop_singing();
9653 msg_print("¸µÁǤÎÎϤËÂФ¹¤ëǦÂѤβΤò²Î¤Ã¤¿¡£");
9655 msg_print("You sing a song of perseverance against powers...");
9657 start_singing(spell, MUSIC_RESIST);
9662 if (!p_ptr->oppose_acid)
9665 msg_print("»À¤Ø¤ÎÂÑÀ¤¬Çö¤ì¤¿µ¤¤¬¤¹¤ë¡£");
9667 msg_print("You feel less resistant to acid.");
9671 if (!p_ptr->oppose_elec)
9674 msg_print("ÅÅ·â¤Ø¤ÎÂÑÀ¤¬Çö¤ì¤¿µ¤¤¬¤¹¤ë¡£");
9676 msg_print("You feel less resistant to elec.");
9680 if (!p_ptr->oppose_fire)
9683 msg_print("²Ð¤Ø¤ÎÂÑÀ¤¬Çö¤ì¤¿µ¤¤¬¤¹¤ë¡£");
9685 msg_print("You feel less resistant to fire.");
9689 if (!p_ptr->oppose_cold)
9692 msg_print("Î䵤¤Ø¤ÎÂÑÀ¤¬Çö¤ì¤¿µ¤¤¬¤¹¤ë¡£");
9694 msg_print("You feel less resistant to cold.");
9698 if (!p_ptr->oppose_pois)
9701 msg_print("ÆǤؤÎÂÑÀ¤¬Çö¤ì¤¿µ¤¤¬¤¹¤ë¡£");
9703 msg_print("You feel less resistant to pois.");
9712 if (name) return "¥Û¥Ó¥Ã¥È¤Î¥á¥í¥Ç¥£";
9713 if (desc) return "²Ã®¤¹¤ë¡£";
9715 if (name) return "Hobbit Melodies";
9716 if (desc) return "Hastes you.";
9719 /* Stop singing before start another */
9720 if (cast || fail) stop_singing();
9725 msg_print("·Ú²÷¤Ê²Î¤ò¸ý¤º¤µ¤ß»Ï¤á¤¿¡¥¡¥¡¥");
9727 msg_print("You start singing joyful pop song...");
9729 start_singing(spell, MUSIC_SPEED);
9737 msg_print("Æ°¤¤ÎÁÇÁᤵ¤¬¤Ê¤¯¤Ê¤Ã¤¿¤è¤¦¤À¡£");
9739 msg_print("You feel yourself slow down.");
9748 if (name) return "ÏĤó¤ÀÀ¤³¦";
9749 if (desc) return "¶á¤¯¤Î¥â¥ó¥¹¥¿¡¼¤ò¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
9751 if (name) return "World Contortion";
9752 if (desc) return "Teleports all nearby monsters away unless resisted.";
9756 int rad = plev / 15 + 1;
9757 int power = plev * 3 + 1;
9759 if (info) return info_radius(rad);
9761 /* Stop singing before start another */
9762 if (cast || fail) stop_singing();
9767 msg_print("²Î¤¬¶õ´Ö¤òÏĤ᤿¡¥¡¥¡¥");
9769 msg_print("Reality whirls wildly as you sing a dizzying melody...");
9772 project(0, rad, py, px, power, GF_AWAY_ALL, PROJECT_KILL, -1);
9779 if (name) return "Â໶¤Î²Î";
9780 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ËÆäËÂ礤ʥÀ¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
9782 if (name) return "Dispelling chant";
9783 if (desc) return "Damages all monsters in sight. Hurts evil monsters greatly.";
9786 /* Stop singing before start another */
9787 if (cast || fail) stop_singing();
9792 msg_print("ÂѤ¨¤é¤ì¤Ê¤¤ÉÔ¶¨Ï²»¤¬Å¨¤òÀÕ¤áΩ¤Æ¤¿¡¥¡¥¡¥");
9794 msg_print("You cry out in an ear-wracking voice...");
9796 start_singing(spell, MUSIC_DISPEL);
9800 int m_sides = plev * 3;
9801 int e_sides = plev * 3;
9803 if (info) return format("%s1d%d+1d%d", s_dam, m_sides, e_sides);
9807 dispel_monsters(randint1(m_sides));
9808 dispel_evil(randint1(e_sides));
9815 if (name) return "¥µ¥ë¥Þ¥ó¤Î´Å¸À";
9816 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò¸ºÂ®¤µ¤»¡¢Ì²¤é¤»¤è¤¦¤È¤¹¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
9818 if (name) return "The Voice of Saruman";
9819 if (desc) return "Attempts to slow and sleep all monsters in sight.";
9822 /* Stop singing before start another */
9823 if (cast || fail) stop_singing();
9828 msg_print("Í¥¤·¤¯¡¢Ì¥ÎÏŪ¤Ê²Î¤ò¸ý¤º¤µ¤ß»Ï¤á¤¿¡¥¡¥¡¥");
9830 msg_print("You start humming a gentle and attractive song...");
9832 start_singing(spell, MUSIC_SARUMAN);
9838 if (info) return info_power(power);
9842 slow_monsters(plev);
9843 sleep_monsters(plev);
9851 if (name) return "Íò¤Î²»¿§";
9852 if (desc) return "¹ì²»¤Î¥Ó¡¼¥à¤òÊü¤Ä¡£";
9854 if (name) return "Song of the Tempest";
9855 if (desc) return "Fires a beam of sound.";
9859 int dice = 15 + (plev - 1) / 2;
9862 if (info) return info_damage(dice, sides, 0);
9864 /* Stop singing before start another */
9865 if (cast || fail) stop_singing();
9869 if (!get_aim_dir(&dir)) return NULL;
9871 fire_beam(GF_SOUND, dir, damroll(dice, sides));
9878 if (name) return "¤â¤¦°ì¤Ä¤ÎÀ¤³¦";
9879 if (desc) return "¸½ºß¤Î³¬¤òºÆ¹½À®¤¹¤ë¡£";
9881 if (name) return "Ambarkanta";
9882 if (desc) return "Recreates current dungeon level.";
9889 if (info) return info_delay(base, sides);
9891 /* Stop singing before start another */
9892 if (cast || fail) stop_singing();
9897 msg_print("¼þ°Ï¤¬ÊѲ½¤·»Ï¤á¤¿¡¥¡¥¡¥");
9899 msg_print("You sing of the primeval shaping of Middle-earth...");
9909 if (name) return "Ç˲õ¤ÎÀûΧ";
9910 if (desc) return "¼þ°Ï¤Î¥À¥ó¥¸¥ç¥ó¤òÍɤ餷¡¢ÊɤȾ²¤ò¥é¥ó¥À¥à¤ËÆþ¤ìÊѤ¨¤ë¡£";
9912 if (name) return "Wrecking Pattern";
9913 if (desc) return "Shakes dungeon structure, and results in random swapping of floors and walls.";
9916 /* Stop singing before start another */
9917 if (cast || fail) stop_singing();
9922 msg_print("Ç˲õŪ¤Ê²Î¤¬¶Á¤¤ï¤¿¤Ã¤¿¡¥¡¥¡¥");
9924 msg_print("You weave a pattern of sounds to contort and shatter...");
9926 start_singing(spell, MUSIC_QUAKE);
9932 if (info) return info_radius(rad);
9936 earthquake(py, px, 10);
9945 if (name) return "ÄäÂڤβÎ";
9946 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤òËãá㤵¤»¤è¤¦¤È¤¹¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
9948 if (name) return "Stationary Shriek";
9949 if (desc) return "Attempts to freeze all monsters in sight.";
9952 /* Stop singing before start another */
9953 if (cast || fail) stop_singing();
9958 msg_print("¤æ¤Ã¤¯¤ê¤È¤·¤¿¥á¥í¥Ç¥£¤òÁդǻϤ᤿¡¥¡¥¡¥");
9960 msg_print("You weave a very slow pattern which is almost likely to stop...");
9962 start_singing(spell, MUSIC_STASIS);
9966 int power = plev * 4;
9968 if (info) return info_power(power);
9972 stasis_monsters(power);
9980 if (name) return "¼é¤ê¤Î²Î";
9981 if (desc) return "¼«Ê¬¤Î¤¤¤ë¾²¤Î¾å¤Ë¡¢¥â¥ó¥¹¥¿¡¼¤¬Ä̤êÈ´¤±¤¿¤ê¾¤´¤µ¤ì¤¿¤ê¤¹¤ë¤³¤È¤¬¤Ç¤¤Ê¤¯¤Ê¤ë¥ë¡¼¥ó¤òÉÁ¤¯¡£";
9983 if (name) return "Endurance";
9984 if (desc) return "Sets a glyph on the floor beneath you. Monsters cannot attack you if you are on a glyph, but can try to break glyph.";
9988 /* Stop singing before start another */
9989 if (cast || fail) stop_singing();
9994 msg_print("²Î¤¬¿ÀÀ»¤Ê¾ì¤òºî¤ê½Ð¤·¤¿¡¥¡¥¡¥");
9996 msg_print("The holy power of the Music is creating sacred field...");
10006 if (name) return "±Ñͺ¤Î»í";
10007 if (desc) return "²Ã®¤·¡¢¥Ò¡¼¥í¡¼µ¤Ê¬¤Ë¤Ê¤ê¡¢»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
10009 if (name) return "The Hero's Poem";
10010 if (desc) return "Hastes you. Gives heroism. Damages all monsters in sight.";
10013 /* Stop singing before start another */
10014 if (cast || fail) stop_singing();
10019 msg_print("±Ñͺ¤Î²Î¤ò¸ý¤º¤µ¤ó¤À¡¥¡¥¡¥");
10021 msg_print("You chant a powerful, heroic call to arms...");
10023 (void)hp_player(10);
10024 (void)set_afraid(0);
10026 /* Recalculate hitpoints */
10027 p_ptr->update |= (PU_HP);
10029 start_singing(spell, MUSIC_SHERO);
10037 msg_print("¥Ò¡¼¥í¡¼¤Îµ¤Ê¬¤¬¾Ã¤¨¼º¤»¤¿¡£");
10039 msg_print("The heroism wears off.");
10041 /* Recalculate hitpoints */
10042 p_ptr->update |= (PU_HP);
10048 msg_print("Æ°¤¤ÎÁÇÁᤵ¤¬¤Ê¤¯¤Ê¤Ã¤¿¤è¤¦¤À¡£");
10050 msg_print("You feel yourself slow down.");
10057 int sides = plev * 3;
10059 if (info) return info_damage(dice, sides, 0);
10063 dispel_monsters(damroll(dice, sides));
10070 if (name) return "¥ä¥ô¥¡¥ó¥Ê¤Î½õ¤±";
10071 if (desc) return "¶¯ÎϤʲóÉü¤Î²Î¤Ç¡¢Éé½ý¤ÈÛ¯Û°¾õÂÖ¤âÁ´²÷¤¹¤ë¡£";
10073 if (name) return "Relief of Yavanna";
10074 if (desc) return "Powerful healing song. Also heals cut and stun completely.";
10077 /* Stop singing before start another */
10078 if (cast || fail) stop_singing();
10083 msg_print("²Î¤òÄ̤·¤ÆÂΤ˳赤¤¬Ìá¤Ã¤Æ¤¤¿¡¥¡¥¡¥");
10085 msg_print("Life flows through you as you sing the song...");
10087 start_singing(spell, MUSIC_H_LIFE);
10094 if (info) return info_heal(dice, sides, 0);
10098 hp_player(damroll(dice, sides));
10108 if (name) return "ºÆÀ¸¤Î²Î";
10109 if (desc) return "¤¹¤Ù¤Æ¤Î¥¹¥Æ¡¼¥¿¥¹¤È·Ð¸³Ãͤò²óÉü¤¹¤ë¡£";
10111 if (name) return "Goddess' rebirth";
10112 if (desc) return "Restores all stats and experience.";
10116 /* Stop singing before start another */
10117 if (cast || fail) stop_singing();
10122 msg_print("°Å¹õ¤ÎÃæ¤Ë¸÷¤ÈÈþ¤ò¤Õ¤ê¤Þ¤¤¤¿¡£ÂΤ¬¸µ¤Î³èÎϤò¼è¤êÌᤷ¤¿¡£");
10124 msg_print("You strewed light and beauty in the dark as you sing. You feel refreshed.");
10126 (void)do_res_stat(A_STR);
10127 (void)do_res_stat(A_INT);
10128 (void)do_res_stat(A_WIS);
10129 (void)do_res_stat(A_DEX);
10130 (void)do_res_stat(A_CON);
10131 (void)do_res_stat(A_CHR);
10132 (void)restore_level();
10139 if (name) return "¥µ¥¦¥í¥ó¤ÎËâ½Ñ";
10140 if (desc) return "Èó¾ï¤Ë¶¯ÎϤǤ´¤¯¾®¤µ¤¤¹ì²»¤Îµå¤òÊü¤Ä¡£";
10142 if (name) return "Wizardry of Sauron";
10143 if (desc) return "Fires an extremely powerful tiny ball of sound.";
10147 int dice = 50 + plev;
10151 if (info) return info_damage(dice, sides, 0);
10153 /* Stop singing before start another */
10154 if (cast || fail) stop_singing();
10158 if (!get_aim_dir(&dir)) return NULL;
10160 fire_ball(GF_SOUND, dir, damroll(dice, sides), rad);
10167 if (name) return "¥Õ¥£¥ó¥´¥ë¥Õ¥£¥ó¤ÎÄ©Àï";
10168 if (desc) return "¥À¥á¡¼¥¸¤ò¼õ¤±¤Ê¤¯¤Ê¤ë¥Ð¥ê¥¢¤òÄ¥¤ë¡£";
10170 if (name) return "Fingolfin's Challenge";
10171 if (desc) return "Generates barrier which completely protect you from almost all damages. Takes a few your turns when the barrier breaks.";
10174 /* Stop singing before start another */
10175 if (cast || fail) stop_singing();
10180 msg_print("¥Õ¥£¥ó¥´¥ë¥Õ¥£¥ó¤Î̽²¦¤Ø¤ÎÄ©Àï¤ò²Î¤Ã¤¿¡¥¡¥¡¥");
10182 msg_print("You recall the valor of Fingolfin's challenge to the Dark Lord...");
10186 p_ptr->redraw |= (PR_MAP);
10188 /* Update monsters */
10189 p_ptr->update |= (PU_MONSTERS);
10192 p_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
10194 start_singing(spell, MUSIC_INVULN);
10199 if (!p_ptr->invuln)
10202 msg_print("̵Ũ¤Ç¤Ï¤Ê¤¯¤Ê¤Ã¤¿¡£");
10204 msg_print("The invulnerability wears off.");
10207 p_ptr->redraw |= (PR_MAP);
10209 /* Update monsters */
10210 p_ptr->update |= (PU_MONSTERS);
10213 p_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
10224 static cptr do_hissatsu_spell(int spell, int mode)
10226 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
10227 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
10228 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
10231 int plev = p_ptr->lev;
10237 if (name) return "ÈôÈÓ¹Ë";
10238 if (desc) return "2¥Þ¥¹Î¥¤ì¤¿¤È¤³¤í¤Ë¤¤¤ë¥â¥ó¥¹¥¿¡¼¤ò¹¶·â¤¹¤ë¡£";
10240 if (name) return "Tobi-Izuna";
10241 if (desc) return "Attacks a two squares distant monster.";
10246 project_length = 2;
10247 if (!get_aim_dir(&dir)) return NULL;
10249 project_hook(GF_ATTACK, dir, HISSATSU_2, PROJECT_STOP | PROJECT_KILL);
10255 if (name) return "¸Þ·î±«»Â¤ê";
10256 if (desc) return "3Êý¸þ¤ËÂФ·¤Æ¹¶·â¤¹¤ë¡£";
10258 if (name) return "3-Way Attack";
10259 if (desc) return "Attacks in 3 directions in one time.";
10267 if (!get_rep_dir2(&dir)) return NULL;
10268 if (dir == 5) return NULL;
10270 for (cdir = 0;cdir < 8; cdir++)
10272 if (cdd[cdir] == dir) break;
10275 if (cdir == 8) return NULL;
10277 y = py + ddy_cdd[cdir];
10278 x = px + ddx_cdd[cdir];
10279 if (cave[y][x].m_idx)
10280 py_attack(y, x, 0);
10283 msg_print("¹¶·â¤Ï¶õ¤òÀڤä¿¡£");
10285 msg_print("You attack the empty air.");
10287 y = py + ddy_cdd[(cdir + 7) % 8];
10288 x = px + ddx_cdd[(cdir + 7) % 8];
10289 if (cave[y][x].m_idx)
10290 py_attack(y, x, 0);
10293 msg_print("¹¶·â¤Ï¶õ¤òÀڤä¿¡£");
10295 msg_print("You attack the empty air.");
10297 y = py + ddy_cdd[(cdir + 1) % 8];
10298 x = px + ddx_cdd[(cdir + 1) % 8];
10299 if (cave[y][x].m_idx)
10300 py_attack(y, x, 0);
10303 msg_print("¹¶·â¤Ï¶õ¤òÀڤä¿¡£");
10305 msg_print("You attack the empty air.");
10312 if (name) return "¥Ö¡¼¥á¥é¥ó";
10313 if (desc) return "Éð´ï¤ò¼ê¸µ¤ËÌá¤Ã¤Æ¤¯¤ë¤è¤¦¤ËÅꤲ¤ë¡£Ìá¤Ã¤Æ¤³¤Ê¤¤¤³¤È¤â¤¢¤ë¡£";
10315 if (name) return "Boomerang";
10316 if (desc) return "Throws current weapon. And it'll return to your hand unless failed.";
10321 if (!do_cmd_throw_aux(1, TRUE, -1)) return NULL;
10327 if (name) return "±ëÎî";
10328 if (desc) return "²Ð±êÂÑÀ¤Î¤Ê¤¤¥â¥ó¥¹¥¿¡¼¤ËÂç¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
10330 if (name) return "Burning Strike";
10331 if (desc) return "Attacks a monster with more damage unless it has resistance to fire.";
10338 if (!get_rep_dir2(&dir)) return NULL;
10339 if (dir == 5) return NULL;
10344 if (cave[y][x].m_idx)
10345 py_attack(y, x, HISSATSU_FIRE);
10349 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10351 msg_print("There is no monster.");
10360 if (name) return "»¦µ¤´¶ÃÎ";
10361 if (desc) return "¶á¤¯¤Î»×¹Í¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¥â¥ó¥¹¥¿¡¼¤ò´¶ÃΤ¹¤ë¡£";
10363 if (name) return "Detect Ferocity";
10364 if (desc) return "Detects all monsters except mindless in your vicinity.";
10369 detect_monsters_mind(DETECT_RAD_DEFAULT);
10375 if (name) return "¤ß¤ÍÂǤÁ";
10376 if (desc) return "Áê¼ê¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤Ê¤¤¤¬¡¢Û¯Û°¤È¤µ¤»¤ë¡£";
10378 if (name) return "Strike to Stun";
10379 if (desc) return "Attempts to stun a monster in the adjacent.";
10386 if (!get_rep_dir2(&dir)) return NULL;
10387 if (dir == 5) return NULL;
10392 if (cave[y][x].m_idx)
10393 py_attack(y, x, HISSATSU_MINEUCHI);
10397 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10399 msg_print("There is no monster.");
10408 if (name) return "¥«¥¦¥ó¥¿¡¼";
10409 if (desc) return "Áê¼ê¤Ë¹¶·â¤µ¤ì¤¿¤È¤¤ËÈ¿·â¤¹¤ë¡£È¿·â¤¹¤ë¤¿¤Ó¤ËMP¤ò¾ÃÈñ¡£";
10411 if (name) return "Counter";
10412 if (desc) return "Prepares to counterattack. When attack by a monster, strikes back using SP each time.";
10420 msg_print("¾èÇÏÃæ¤Ë¤Ï̵Íý¤À¡£");
10422 msg_print("You cannot do it when riding.");
10427 msg_print("Áê¼ê¤Î¹¶·â¤ËÂФ·¤Æ¿È¹½¤¨¤¿¡£");
10429 msg_print("You prepare to counter blow.");
10431 p_ptr->counter = TRUE;
10437 if (name) return "ʧ¤¤È´¤±";
10438 if (desc) return "¹¶·â¤·¤¿¸å¡¢È¿ÂЦ¤ËÈ´¤±¤ë¡£";
10440 if (name) return "Harainuke";
10441 if (desc) return "Attacks monster with your weapons normally, then move through counter side of the monster.";
10451 msg_print("¾èÇÏÃæ¤Ë¤Ï̵Íý¤À¡£");
10453 msg_print("You cannot do it when riding.");
10458 if (!get_rep_dir2(&dir)) return NULL;
10460 if (dir == 5) return NULL;
10464 if (!cave[y][x].m_idx)
10467 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10469 msg_print("There is no monster.");
10474 py_attack(y, x, 0);
10476 if (!player_can_enter(cave[y][x].feat, 0) || is_trap(cave[y][x].feat))
10482 if (player_can_enter(cave[y][x].feat, 0) && !is_trap(cave[y][x].feat) && !cave[y][x].m_idx)
10486 /* Move the player */
10487 (void)move_player_effect(y, x, MPE_FORGET_FLOW | MPE_HANDLE_STUFF | MPE_DONT_PICKUP);
10494 if (name) return "¥µ¡¼¥Ú¥ó¥Ä¥¿¥ó";
10495 if (desc) return "ÆÇÂÑÀ¤Î¤Ê¤¤¥â¥ó¥¹¥¿¡¼¤ËÂç¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
10497 if (name) return "Serpent's Tongue";
10498 if (desc) return "Attacks a monster with more damage unless it has resistance to poison.";
10505 if (!get_rep_dir2(&dir)) return NULL;
10506 if (dir == 5) return NULL;
10511 if (cave[y][x].m_idx)
10512 py_attack(y, x, HISSATSU_POISON);
10516 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10518 msg_print("There is no monster.");
10527 if (name) return "»ÂËâ·õÆõ¤ÎÂÀÅá";
10528 if (desc) return "À¸Ì¿¤Î¤Ê¤¤¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ËÂç¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¤¬¡¢Â¾¤Î¥â¥ó¥¹¥¿¡¼¤Ë¤ÏÁ´¤¯¸ú²Ì¤¬¤Ê¤¤¡£";
10530 if (name) return "Zammaken";
10531 if (desc) return "Attacks an evil unliving monster with great damage. No effect to other monsters.";
10538 if (!get_rep_dir2(&dir)) return NULL;
10539 if (dir == 5) return NULL;
10544 if (cave[y][x].m_idx)
10545 py_attack(y, x, HISSATSU_ZANMA);
10549 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10551 msg_print("There is no monster.");
10560 if (name) return "ÎöÉ÷·õ";
10561 if (desc) return "¹¶·â¤·¤¿Áê¼ê¤ò¸åÊý¤Ø¿á¤Èô¤Ð¤¹¡£";
10563 if (name) return "Wind Blast";
10564 if (desc) return "Attacks an adjacent monster, and blow it away.";
10571 if (!get_rep_dir2(&dir)) return NULL;
10572 if (dir == 5) return NULL;
10577 if (cave[y][x].m_idx)
10578 py_attack(y, x, 0);
10582 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10584 msg_print("There is no monster.");
10588 if (d_info[dungeon_type].flags1 & DF1_NO_MELEE)
10592 if (cave[y][x].m_idx)
10595 int ty = y, tx = x;
10596 int oy = y, ox = x;
10597 int m_idx = cave[y][x].m_idx;
10598 monster_type *m_ptr = &m_list[m_idx];
10601 monster_desc(m_name, m_ptr, 0);
10603 for (i = 0; i < 5; i++)
10607 if (cave_empty_bold(y, x))
10614 if ((ty != oy) || (tx != ox))
10617 msg_format("%s¤ò¿á¤Èô¤Ð¤·¤¿¡ª", m_name);
10619 msg_format("You blow %s away!", m_name);
10621 cave[oy][ox].m_idx = 0;
10622 cave[ty][tx].m_idx = m_idx;
10626 update_mon(m_idx, TRUE);
10630 if (r_info[m_ptr->r_idx].flags7 & (RF7_LITE_MASK | RF7_DARK_MASK))
10631 p_ptr->update |= (PU_MON_LITE);
10639 if (name) return "Åá¾¢¤ÎÌÜÍø¤";
10640 if (desc) return "Éð´ï¡¦Ëɶñ¤ò1¤Ä¼±Ê̤¹¤ë¡£¥ì¥Ù¥ë45°Ê¾å¤ÇÉð´ï¡¦Ëɶñ¤ÎǽÎϤò´°Á´¤ËÃΤ뤳¤È¤¬¤Ç¤¤ë¡£";
10642 if (name) return "Judge";
10643 if (desc) return "Identifies a weapon or armor. Or *identifies* these at level 45.";
10650 if (!identify_fully(TRUE)) return NULL;
10654 if (!ident_spell(TRUE)) return NULL;
10661 if (name) return "ÇË´ä»Â";
10662 if (desc) return "´ä¤ò²õ¤·¡¢´äÀзϤΥâ¥ó¥¹¥¿¡¼¤ËÂç¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
10664 if (name) return "Rock Smash";
10665 if (desc) return "Breaks rock. Or greatly damage a monster made by rocks.";
10672 if (!get_rep_dir2(&dir)) return NULL;
10673 if (dir == 5) return NULL;
10678 if (cave[y][x].m_idx)
10679 py_attack(y, x, HISSATSU_HAGAN);
10681 if (!cave_have_flag_bold(y, x, FF_HURT_ROCK)) break;
10683 /* Destroy the feature */
10684 cave_alter_feat(y, x, FF_HURT_ROCK);
10686 /* Update some things */
10687 p_ptr->update |= (PU_FLOW);
10693 if (name) return "Íð¤ìÀã·î²Ö";
10694 if (desc) return "¹¶·â²ó¿ô¤¬Áý¤¨¡¢Î䵤ÂÑÀ¤Î¤Ê¤¤¥â¥ó¥¹¥¿¡¼¤ËÂç¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
10696 if (name) return "Midare-Setsugekka";
10697 if (desc) return "Attacks a monster with increased number of attacks and more damage unless it has resistance to cold.";
10704 if (!get_rep_dir2(&dir)) return NULL;
10705 if (dir == 5) return NULL;
10710 if (cave[y][x].m_idx)
10711 py_attack(y, x, HISSATSU_COLD);
10715 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10717 msg_print("There is no monster.");
10726 if (name) return "µÞ½êÆͤ";
10727 if (desc) return "¥â¥ó¥¹¥¿¡¼¤ò°ì·â¤ÇÅݤ¹¹¶·â¤ò·«¤ê½Ð¤¹¡£¼ºÇÔ¤¹¤ë¤È1ÅÀ¤·¤«¥À¥á¡¼¥¸¤òÍ¿¤¨¤é¤ì¤Ê¤¤¡£";
10729 if (name) return "Spot Aiming";
10730 if (desc) return "Attempts to kill a monster instantly. If failed cause only 1HP of damage.";
10737 if (!get_rep_dir2(&dir)) return NULL;
10738 if (dir == 5) return NULL;
10743 if (cave[y][x].m_idx)
10744 py_attack(y, x, HISSATSU_KYUSHO);
10748 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10750 msg_print("There is no monster.");
10759 if (name) return "Ëâ¿À»Â¤ê";
10760 if (desc) return "²ñ¿´¤Î°ì·â¤Ç¹¶·â¤¹¤ë¡£¹¶·â¤¬¤«¤ï¤µ¤ì¤ä¤¹¤¤¡£";
10762 if (name) return "Majingiri";
10763 if (desc) return "Attempts to attack with critical hit. But this attack is easy to evade for a monster.";
10770 if (!get_rep_dir2(&dir)) return NULL;
10771 if (dir == 5) return NULL;
10776 if (cave[y][x].m_idx)
10777 py_attack(y, x, HISSATSU_MAJIN);
10781 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10783 msg_print("There is no monster.");
10792 if (name) return "¼Î¤Æ¿È";
10793 if (desc) return "¶¯ÎϤʹ¶·â¤ò·«¤ê½Ð¤¹¡£¼¡¤Î¥¿¡¼¥ó¤Þ¤Ç¤Î´Ö¡¢¿©¤é¤¦¥À¥á¡¼¥¸¤¬Áý¤¨¤ë¡£";
10795 if (name) return "Desperate Attack";
10796 if (desc) return "Attacks with all of your power. But all damages you take will be doubled for one turn.";
10803 if (!get_rep_dir2(&dir)) return NULL;
10804 if (dir == 5) return NULL;
10809 if (cave[y][x].m_idx)
10810 py_attack(y, x, HISSATSU_SUTEMI);
10814 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10816 msg_print("There is no monster.");
10820 p_ptr->sutemi = TRUE;
10826 if (name) return "Íë·âÏÉÄÞ»Â";
10827 if (desc) return "ÅÅ·âÂÑÀ¤Î¤Ê¤¤¥â¥ó¥¹¥¿¡¼¤ËÈó¾ï¤ËÂ礤¤¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
10829 if (name) return "Lightning Eagle";
10830 if (desc) return "Attacks a monster with more damage unless it has resistance to electricity.";
10837 if (!get_rep_dir2(&dir)) return NULL;
10838 if (dir == 5) return NULL;
10843 if (cave[y][x].m_idx)
10844 py_attack(y, x, HISSATSU_ELEC);
10848 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10850 msg_print("There is no monster.");
10859 if (name) return "Æþ¿È";
10860 if (desc) return "ÁÇÁ᤯Áê¼ê¤Ë¶á´ó¤ê¹¶·â¤¹¤ë¡£";
10862 if (name) return "Rush Attack";
10863 if (desc) return "Steps close to a monster and attacks at a time.";
10868 if (!rush_attack(NULL)) return NULL;
10874 if (name) return "ÀÖή±²";
10875 if (desc) return "¼«Ê¬¼«¿È¤â½ý¤òºî¤ê¤Ä¤Ä¡¢¤½¤Î½ý¤¬¿¼¤¤¤Û¤ÉÂ礤¤°ÒÎϤÇÁ´Êý¸þ¤ÎŨ¤ò¹¶·â¤Ç¤¤ë¡£À¸¤¤Æ¤¤¤Ê¤¤¥â¥ó¥¹¥¿¡¼¤Ë¤Ï¸ú²Ì¤¬¤Ê¤¤¡£";
10877 if (name) return "Bloody Maelstrom";
10878 if (desc) return "Attacks all adjacent monsters with power corresponding to your cut status. Then increases your cut status. No effect to unliving monsters.";
10886 monster_type *m_ptr;
10888 if (p_ptr->cut < 300)
10889 set_cut(p_ptr->cut + 300);
10891 set_cut(p_ptr->cut * 2);
10893 for (dir = 0; dir < 8; dir++)
10895 y = py + ddy_ddd[dir];
10896 x = px + ddx_ddd[dir];
10897 c_ptr = &cave[y][x];
10899 /* Get the monster */
10900 m_ptr = &m_list[c_ptr->m_idx];
10902 /* Hack -- attack monsters */
10903 if (c_ptr->m_idx && (m_ptr->ml || cave_have_flag_bold(y, x, FF_PROJECT)))
10905 if (!monster_living(&r_info[m_ptr->r_idx]))
10909 monster_desc(m_name, m_ptr, 0);
10911 msg_format("%s¤Ë¤Ï¸ú²Ì¤¬¤Ê¤¤¡ª", m_name);
10913 msg_format("%s is unharmed!", m_name);
10916 else py_attack(y, x, HISSATSU_SEKIRYUKA);
10924 if (name) return "·ã¿Ì·â";
10925 if (desc) return "ÃϿ̤òµ¯¤³¤¹¡£";
10927 if (name) return "Earthquake Blow";
10928 if (desc) return "Shakes dungeon structure, and results in random swapping of floors and walls.";
10935 if (!get_rep_dir2(&dir)) return NULL;
10936 if (dir == 5) return NULL;
10941 if (cave[y][x].m_idx)
10942 py_attack(y, x, HISSATSU_QUAKE);
10944 earthquake(py, px, 10);
10950 if (name) return "ÃÏÁö¤ê";
10951 if (desc) return "¾×·âÇȤΥӡ¼¥à¤òÊü¤Ä¡£";
10953 if (name) return "Crack";
10954 if (desc) return "Fires a beam of shock wave.";
10959 int total_damage = 0, basedam, i;
10960 u32b flgs[TR_FLAG_SIZE];
10961 object_type *o_ptr;
10962 if (!get_aim_dir(&dir)) return NULL;
10964 msg_print("Éð´ï¤òÂ礤¯¿¶¤ê²¼¤í¤·¤¿¡£");
10966 msg_print("You swing your weapon downward.");
10968 for (i = 0; i < 2; i++)
10972 if (!buki_motteruka(INVEN_RARM+i)) break;
10973 o_ptr = &inventory[INVEN_RARM+i];
10974 basedam = (o_ptr->dd * (o_ptr->ds + 1)) * 50;
10975 damage = o_ptr->to_d * 100;
10976 object_flags(o_ptr, flgs);
10977 if ((o_ptr->name1 == ART_VORPAL_BLADE) || (o_ptr->name1 == ART_CHAINSWORD))
10983 else if (have_flag(flgs, TR_VORPAL))
10985 /* vorpal flag only */
10990 damage *= p_ptr->num_blow[i];
10991 total_damage += damage / 200;
10992 if (i) total_damage = total_damage*7/10;
10994 fire_beam(GF_FORCE, dir, total_damage);
11000 if (name) return "µ¤Ç÷¤Îͺ¶«¤Ó";
11001 if (desc) return "»ë³¦Æâ¤ÎÁ´¥â¥ó¥¹¥¿¡¼¤ËÂФ·¤Æ¹ì²»¤Î¹¶·â¤ò¹Ô¤¦¡£¤µ¤é¤Ë¡¢¶á¤¯¤Ë¤¤¤ë¥â¥ó¥¹¥¿¡¼¤òÅܤ餻¤ë¡£";
11003 if (name) return "War Cry";
11004 if (desc) return "Damages all monsters in sight with sound. Aggravate nearby monsters.";
11010 msg_print("ͺ¶«¤Ó¤ò¤¢¤²¤¿¡ª");
11012 msg_print("You roar out!");
11014 project_hack(GF_SOUND, randint1(plev * 3));
11015 aggravate_monsters(0);
11021 if (name) return "̵Áл°ÃÊ";
11022 if (desc) return "¶¯ÎϤÊ3Ãʹ¶·â¤ò·«¤ê½Ð¤¹¡£";
11024 if (name) return "Musou-Sandan";
11025 if (desc) return "Attacks with powerful 3 strikes.";
11032 if (!get_rep_dir2(&dir)) return NULL;
11033 if (dir == 5) return NULL;
11035 for (i = 0; i < 3; i++)
11041 monster_type *m_ptr;
11045 c_ptr = &cave[y][x];
11048 py_attack(y, x, HISSATSU_3DAN);
11052 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
11054 msg_print("There is no monster.");
11059 if (d_info[dungeon_type].flags1 & DF1_NO_MELEE)
11064 /* Monster is dead? */
11065 if (!c_ptr->m_idx) break;
11069 m_idx = c_ptr->m_idx;
11070 m_ptr = &m_list[m_idx];
11072 /* Monster cannot move back? */
11073 if (!monster_can_enter(ny, nx, &r_info[m_ptr->r_idx], 0))
11076 if (i < 2) msg_print(NULL);
11081 cave[ny][nx].m_idx = m_idx;
11085 update_mon(m_idx, TRUE);
11087 /* Redraw the old spot */
11090 /* Redraw the new spot */
11093 /* Player can move forward? */
11094 if (player_can_enter(c_ptr->feat, 0))
11096 /* Move the player */
11097 if (!move_player_effect(y, x, MPE_FORGET_FLOW | MPE_HANDLE_STUFF | MPE_DONT_PICKUP)) break;
11105 if (i < 2) msg_print(NULL);
11112 if (name) return "µÛ·ìµ´¤Î²ç";
11113 if (desc) return "¹¶·â¤·¤¿Áê¼ê¤ÎÂÎÎϤòµÛ¤¤¤È¤ê¡¢¼«Ê¬¤ÎÂÎÎϤò²óÉü¤µ¤»¤ë¡£À¸Ì¿¤ò»ý¤¿¤Ê¤¤¥â¥ó¥¹¥¿¡¼¤Ë¤ÏÄ̤¸¤Ê¤¤¡£";
11115 if (name) return "Vampire's Fang";
11116 if (desc) return "Attacks with vampiric strikes which absorbs HP from a monster and gives them to you. No effect to unliving monsters.";
11123 if (!get_rep_dir2(&dir)) return NULL;
11124 if (dir == 5) return NULL;
11129 if (cave[y][x].m_idx)
11130 py_attack(y, x, HISSATSU_DRAIN);
11134 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
11136 msg_print("There is no monster.");
11145 if (name) return "¸¸ÏÇ";
11146 if (desc) return "»ë³¦Æâ¤Îµ¯¤¤Æ¤¤¤ëÁ´¥â¥ó¥¹¥¿¡¼¤ËÛ¯Û°¡¢º®Íð¡¢Ì²¤ê¤òÍ¿¤¨¤è¤¦¤È¤¹¤ë¡£";
11148 if (name) return "Moon Dazzling";
11149 if (desc) return "Attempts to stun, confuse and sleep all waking monsters.";
11155 msg_print("Éð´ï¤òÉÔµ¬Â§¤ËÍɤ餷¤¿¡¥¡¥¡¥");
11157 msg_print("You irregularly wave your weapon...");
11159 project_hack(GF_ENGETSU, plev * 4);
11160 project_hack(GF_ENGETSU, plev * 4);
11161 project_hack(GF_ENGETSU, plev * 4);
11167 if (name) return "É´¿Í»Â¤ê";
11168 if (desc) return "Ϣ³¤·¤ÆÆþ¿È¤Ç¥â¥ó¥¹¥¿¡¼¤ò¹¶·â¤¹¤ë¡£¹¶·â¤¹¤ë¤¿¤Ó¤ËMP¤ò¾ÃÈñ¡£MP¤¬¤Ê¤¯¤Ê¤ë¤«¡¢¥â¥ó¥¹¥¿¡¼¤òÅݤ»¤Ê¤«¤Ã¤¿¤éÉ´¿Í»Â¤ê¤Ï½ªÎ»¤¹¤ë¡£";
11170 if (name) return "Hundred Slaughter";
11171 if (desc) return "Performs a series of rush attacks. The series continues while killing each monster in a time and SP remains.";
11176 const int mana_cost_per_monster = 8;
11177 bool is_new = TRUE;
11182 if (!rush_attack(&mdeath)) break;
11185 /* Reserve needed mana point */
11186 p_ptr->csp -= technic_info[REALM_HISSATSU - MIN_TECHNIC][26].smana;
11190 p_ptr->csp -= mana_cost_per_monster;
11192 if (!mdeath) break;
11195 p_ptr->redraw |= PR_MANA;
11198 while (p_ptr->csp > mana_cost_per_monster);
11200 if (is_new) return NULL;
11202 /* Restore reserved mana */
11203 p_ptr->csp += technic_info[REALM_HISSATSU - MIN_TECHNIC][26].smana;
11209 if (name) return "Å·æÆζÁ®";
11210 if (desc) return "»ë³¦Æâ¤Î¾ì½ê¤ò»ØÄꤷ¤Æ¡¢¤½¤Î¾ì½ê¤È¼«Ê¬¤Î´Ö¤Ë¤¤¤ëÁ´¥â¥ó¥¹¥¿¡¼¤ò¹¶·â¤·¡¢¤½¤Î¾ì½ê¤Ë°ÜÆ°¤¹¤ë¡£";
11212 if (name) return "Dragonic Flash";
11213 if (desc) return "Runs toward given location while attacking all monsters on the path.";
11220 if (!tgt_pt(&x, &y)) return NULL;
11222 if (!cave_player_teleportable_bold(y, x, 0L) ||
11223 (distance(y, x, py, px) > MAX_SIGHT / 2) ||
11224 !projectable(py, px, y, x))
11227 msg_print("¼ºÇÔ¡ª");
11229 msg_print("You cannot move to that place!");
11233 if (p_ptr->anti_tele)
11236 msg_print("ÉԻ׵ĤÊÎϤ¬¥Æ¥ì¥Ý¡¼¥È¤òËɤ¤¤À¡ª");
11238 msg_print("A mysterious force prevents you from teleporting!");
11243 project(0, 0, y, x, HISSATSU_ISSEN, GF_ATTACK, PROJECT_BEAM | PROJECT_KILL, -1);
11244 teleport_player_to(y, x, 0L);
11250 if (name) return "Æó½Å¤Î·õ·â";
11251 if (desc) return "1¥¿¡¼¥ó¤Ç2ÅÙ¹¶·â¤ò¹Ô¤¦¡£";
11253 if (name) return "Twin Slash";
11254 if (desc) return "double attacks at a time.";
11261 if (!get_rep_dir(&dir, FALSE)) return NULL;
11266 if (cave[y][x].m_idx)
11268 py_attack(y, x, 0);
11269 if (cave[y][x].m_idx)
11272 py_attack(y, x, 0);
11278 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
11280 msg_print("You don't see any monster in this direction");
11289 if (name) return "¸×ÉúÀäÅáÀª";
11290 if (desc) return "¶¯ÎϤʹ¶·â¤ò¹Ô¤¤¡¢¶á¤¯¤Î¾ì½ê¤Ë¤â¸ú²Ì¤¬µÚ¤Ö¡£";
11292 if (name) return "Kofuku-Zettousei";
11293 if (desc) return "Performs a powerful attack which even effect nearby monsters.";
11298 int total_damage = 0, basedam, i;
11300 u32b flgs[TR_FLAG_SIZE];
11301 object_type *o_ptr;
11303 if (!get_rep_dir2(&dir)) return NULL;
11304 if (dir == 5) return NULL;
11309 if (d_info[dungeon_type].flags1 & DF1_NO_MELEE)
11312 msg_print("¤Ê¤¼¤«¹¶·â¤¹¤ë¤³¤È¤¬¤Ç¤¤Ê¤¤¡£");
11314 msg_print("Something prevent you from attacking.");
11319 msg_print("Éð´ï¤òÂ礤¯¿¶¤ê²¼¤í¤·¤¿¡£");
11321 msg_print("You swing your weapon downward.");
11323 for (i = 0; i < 2; i++)
11326 if (!buki_motteruka(INVEN_RARM+i)) break;
11327 o_ptr = &inventory[INVEN_RARM+i];
11328 basedam = (o_ptr->dd * (o_ptr->ds + 1)) * 50;
11329 damage = o_ptr->to_d * 100;
11330 object_flags(o_ptr, flgs);
11331 if ((o_ptr->name1 == ART_VORPAL_BLADE) || (o_ptr->name1 == ART_CHAINSWORD))
11337 else if (have_flag(flgs, TR_VORPAL))
11339 /* vorpal flag only */
11344 damage += p_ptr->to_d[i] * 100;
11345 damage *= p_ptr->num_blow[i];
11346 total_damage += (damage / 100);
11348 project(0, (cave_have_flag_bold(y, x, FF_PROJECT) ? 5 : 0), y, x, total_damage * 3 / 2, GF_METEOR, PROJECT_KILL | PROJECT_JUMP | PROJECT_ITEM, -1);
11354 if (name) return "·Ä±Àµ´Ç¦·õ";
11355 if (desc) return "¼«Ê¬¤â¥À¥á¡¼¥¸¤ò¤¯¤é¤¦¤¬¡¢Áê¼ê¤ËÈó¾ï¤ËÂ礤ʥÀ¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£¥¢¥ó¥Ç¥Ã¥É¤Ë¤ÏÆä˸ú²Ì¤¬¤¢¤ë¡£";
11357 if (name) return "Keiun-Kininken";
11358 if (desc) return "Attacks a monster with extremely powerful damage. But you also takes some damages. Hurts a undead monster greatly.";
11365 if (!get_rep_dir2(&dir)) return NULL;
11366 if (dir == 5) return NULL;
11371 if (cave[y][x].m_idx)
11372 py_attack(y, x, HISSATSU_UNDEAD);
11376 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
11378 msg_print("There is no monster.");
11383 take_hit(DAMAGE_NOESCAPE, 100 + randint1(100), "·Ä±Àµ´Ç¦·õ¤ò»È¤Ã¤¿¾×·â", -1);
11385 take_hit(DAMAGE_NOESCAPE, 100 + randint1(100), "exhaustion on using Keiun-Kininken", -1);
11392 if (name) return "ÀÚÊ¢";
11393 if (desc) return "¡ÖÉð»ÎÆ»¤È¤Ï¡¢»à¤Ì¤³¤È¤È¸«¤Ä¤±¤¿¤ê¡£¡×";
11395 if (name) return "Harakiri";
11396 if (desc) return "'Busido is found in death'";
11403 if (!get_check("ËÜÅö¤Ë¼«»¦¤·¤Þ¤¹¤«¡©")) return NULL;
11405 if (!get_check("Do you really want to commit suicide? ")) return NULL;
11407 /* Special Verification for suicide */
11409 prt("³Îǧ¤Î¤¿¤á '@' ¤ò²¡¤·¤Æ²¼¤µ¤¤¡£", 0, 0);
11411 prt("Please verify SUICIDE by typing the '@' sign: ", 0, 0);
11417 if (i != '@') return NULL;
11418 if (p_ptr->total_winner)
11420 take_hit(DAMAGE_FORCE, 9999, "Seppuku", -1);
11421 p_ptr->total_winner = TRUE;
11426 msg_print("Éð»ÎÆ»¤È¤Ï¡¢»à¤Ì¤³¤È¤È¸«¤Ä¤±¤¿¤ê¡£");
11428 msg_print("Meaning of Bushi-do is found in the death.");
11430 take_hit(DAMAGE_FORCE, 9999, "Seppuku", -1);
11441 static bool item_tester_hook_weapon_except_bow(object_type *o_ptr)
11443 switch (o_ptr->tval)
11457 static bool item_tester_hook_cursed(object_type *o_ptr)
11459 return (bool)(object_is_cursed(o_ptr));
11462 static cptr do_hex_spell(int spell, int mode)
11464 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
11465 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
11466 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
11467 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
11468 bool cont = (mode == SPELL_CONT) ? TRUE : FALSE;
11469 bool stop = (mode == SPELL_STOP) ? TRUE : FALSE;
11473 int plev = p_ptr->lev;
11478 /*** 1st book (0-7) ***/
11481 if (name) return "¼Ù¤Ê¤ë½ËÊ¡";
11482 if (desc) return "½ËÊ¡¤Ë¤è¤ê¹¶·âÀºÅÙ¤ÈËɸæÎϤ¬¾å¤¬¤ë¡£";
11484 if (name) return "Evily blessing";
11485 if (desc) return "Attempts to increase +to_hit of a weapon and AC";
11489 if (!p_ptr->blessed)
11492 msg_print("¹â·é¤Êµ¤Ê¬¤Ë¤Ê¤Ã¤¿¡ª");
11494 msg_print("You feel righteous!");
11500 if (!p_ptr->blessed)
11503 msg_print("¹â·é¤Êµ¤Ê¬¤¬¾Ã¤¨¼º¤»¤¿¡£");
11505 msg_print("The prayer has expired.");
11513 if (name) return "·Ú½ý¤Î¼£Ìþ";
11514 if (desc) return "HP¤ä½ý¤ò¾¯¤·²óÉü¤µ¤»¤ë¡£";
11516 if (name) return "Cure light wounds";
11517 if (desc) return "Heals cut and HP a little.";
11519 if (info) return info_heal(1, 10, 0);
11523 msg_print("µ¤Ê¬¤¬Îɤ¯¤Ê¤Ã¤Æ¤¯¤ë¡£");
11525 msg_print("You feel better and better.");
11530 hp_player(damroll(1, 10));
11531 set_cut(p_ptr->cut - 10);
11537 if (name) return "°Ëâ¤Î¥ª¡¼¥é";
11538 if (desc) return "±ê¤Î¥ª¡¼¥é¤ò¿È¤Ë¤Þ¤È¤¤¡¢²óÉü®ÅÙ¤¬Â®¤¯¤Ê¤ë¡£";
11540 if (name) return "Demonic aura";
11541 if (desc) return "Gives fire aura and regeneration.";
11546 msg_print("ÂΤ¬±ê¤Î¥ª¡¼¥é¤Çʤ¤ï¤ì¤¿¡£");
11548 msg_print("You have enveloped by fiery aura!");
11554 msg_print("±ê¤Î¥ª¡¼¥é¤¬¾Ã¤¨µî¤Ã¤¿¡£");
11556 msg_print("Fiery aura disappeared.");
11563 if (name) return "°½Ì¸";
11564 if (desc) return "»ë³¦Æâ¤Î¥â¥ó¥¹¥¿¡¼¤ËÈù¼åÎ̤ÎÆǤΥÀ¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
11566 if (name) return "Stinking mist";
11567 if (desc) return "Deals few damages of poison to all monsters in your sight.";
11569 power = plev / 2 + 5;
11570 if (info) return info_damage(1, power, 0);
11573 project_hack(GF_POIS, randint1(power));
11579 if (name) return "ÏÓÎ϶¯²½";
11580 if (desc) return "½Ñ¼Ô¤ÎÏÓÎϤò¾å¾º¤µ¤»¤ë¡£";
11582 if (name) return "Extra might";
11583 if (desc) return "Attempts to increase your strength.";
11588 msg_print("²¿¤À¤«ÎϤ¬Í¯¤¤¤ÆÍè¤ë¡£");
11590 msg_print("You feel you get stronger.");
11597 if (name) return "Éð´ï¼öÇû";
11598 if (desc) return "ÁõÈ÷¤·¤Æ¤¤¤ëÉð´ï¤ò¼ö¤¦¡£";
11600 if (name) return "Curse weapon";
11601 if (desc) return "Curses your weapon.";
11607 char o_name[MAX_NLEN];
11608 object_type *o_ptr;
11609 u32b f[TR_FLAG_SIZE];
11611 item_tester_hook = item_tester_hook_weapon_except_bow;
11613 q = "¤É¤ì¤ò¼ö¤¤¤Þ¤¹¤«¡©";
11614 s = "Éð´ï¤òÁõÈ÷¤·¤Æ¤¤¤Ê¤¤¡£";
11616 q = "Which weapon do you curse?";
11617 s = "You wield no weapons.";
11620 if (!get_item(&item, q, s, (USE_EQUIP))) return FALSE;
11622 o_ptr = &inventory[item];
11623 object_desc(o_name, o_ptr, OD_NAME_ONLY);
11624 object_flags(o_ptr, f);
11627 if (!get_check(format("ËÜÅö¤Ë %s ¤ò¼ö¤¤¤Þ¤¹¤«¡©", o_name))) return FALSE;
11629 if (!get_check(format("Do you curse %s, really¡©", o_name))) return FALSE;
11633 (object_is_artifact(o_ptr) || have_flag(f, TR_BLESSED)))
11636 msg_format("%s ¤Ï¼ö¤¤¤òÄ·¤ÍÊÖ¤·¤¿¡£", o_name);
11638 msg_format("%s resists the effect.", o_name);
11642 if (o_ptr->to_d > 0)
11644 o_ptr->to_d -= randint1(3) % 2;
11645 if (o_ptr->to_d < 0) o_ptr->to_d = 0;
11647 if (o_ptr->to_h > 0)
11649 o_ptr->to_h -= randint1(3) % 2;
11650 if (o_ptr->to_h < 0) o_ptr->to_h = 0;
11652 if (o_ptr->to_a > 0)
11654 o_ptr->to_a -= randint1(3) % 2;
11655 if (o_ptr->to_a < 0) o_ptr->to_a = 0;
11658 msg_format("%s ¤ÏÎô²½¤·¤Æ¤·¤Þ¤Ã¤¿¡£", o_name);
11660 msg_format("Your %s was disenchanted!", o_name);
11668 msg_format("¶²ÉݤΰŹõ¥ª¡¼¥é¤¬¤¢¤Ê¤¿¤Î%s¤òÊñ¤ß¹þ¤ó¤À¡ª", o_name);
11670 msg_format("A terrible black aura blasts your %s!", o_name);
11672 o_ptr->curse_flags |= (TRC_CURSED);
11674 if (object_is_artifact(o_ptr) || object_is_ego(o_ptr))
11677 if (one_in_(3)) o_ptr->curse_flags |= (TRC_HEAVY_CURSE);
11680 o_ptr->curse_flags |= (TRC_TY_CURSE);
11681 if (one_in_(666)) o_ptr->curse_flags |= (TRC_PERMA_CURSE);
11683 add_flag(o_ptr->art_flags, TR_AGGRAVATE);
11684 add_flag(o_ptr->art_flags, TR_VORPAL);
11685 add_flag(o_ptr->art_flags, TR_VAMPIRIC);
11687 msg_print("·ì¤À¡ª·ì¤À¡ª·ì¤À¡ª");
11689 msg_print("Blood, Blood, Blood!");
11695 o_ptr->curse_flags |= get_curse(power, o_ptr);
11698 p_ptr->update |= (PU_BONUS);
11705 if (name) return "¼Ù°´¶ÃÎ";
11706 if (desc) return "¼þ°Ï¤Î¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ò´¶ÃΤ¹¤ë¡£";
11708 if (name) return "Evil detection";
11709 if (desc) return "Detects evil monsters.";
11711 if (info) return info_range(MAX_SIGHT);
11715 msg_print("¼Ù°¤ÊÀ¸Êª¤Î¸ºß¤ò´¶¤¸¼è¤í¤¦¤È¤·¤¿¡£");
11717 msg_print("You attend to the presence of evil creatures.");
11724 if (name) return "²æËý";
11725 if (desc) return "¿ô¥¿¡¼¥ó¹¶·â¤òÂѤ¨¤¿¸å¡¢¼õ¤±¤¿¥À¥á¡¼¥¸¤òÃϹö¤Î¶È²Ð¤È¤·¤Æ¼þ°Ï¤ËÊü½Ð¤¹¤ë¡£";
11727 if (name) return "Patience";
11728 if (desc) return "Bursts hell fire strongly after patients any damage while few turns.";
11730 power = MIN(200, (p_ptr->magic_num1[2] * 2));
11731 if (info) return info_damage(0, 0, power);
11734 int a = 3 - (p_ptr->pspeed - 100) / 10;
11735 int r = 3 + randint1(3) + MAX(0, MIN(3, a));
11737 if (p_ptr->magic_num2[2] > 0)
11740 msg_print("¤¹¤Ç¤Ë²æËý¤ò¤·¤Æ¤¤¤ë¡£");
11742 msg_print("You are already patienting.");
11747 p_ptr->magic_num2[1] = 1;
11748 p_ptr->magic_num2[2] = r;
11749 p_ptr->magic_num1[2] = 0;
11751 msg_print("¤¸¤Ã¤ÈÂѤ¨¤ë¤³¤È¤Ë¤·¤¿¡£");
11753 msg_print("You decide to patient all damages.");
11759 int rad = 2 + (power / 50);
11761 p_ptr->magic_num2[2]--;
11763 if ((p_ptr->magic_num2[2] <= 0) || (power >= 200))
11766 msg_print("²æËý¤¬²ò¤«¤ì¤¿¡ª");
11768 msg_print("Time for end of patioence!");
11772 project(0, rad, py, px, power, GF_HELL_FIRE,
11773 (PROJECT_STOP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL), -1);
11778 msg_format("%dÅÀ¤Î¥À¥á¡¼¥¸¤òÊÖ¤·¤¿¡£", power);
11780 msg_format("You return %d damages.", power);
11785 p_ptr->magic_num2[1] = 0;
11786 p_ptr->magic_num2[2] = 0;
11787 p_ptr->magic_num1[2] = 0;
11792 /*** 2nd book (8-15) ***/
11795 if (name) return "ɹ¤Î³»";
11796 if (desc) return "ɹ¤Î¥ª¡¼¥é¤ò¿È¤Ë¤Þ¤È¤¤¡¢ËɸæÎϤ¬¾å¾º¤¹¤ë¡£";
11798 if (name) return "Ice armor";
11799 if (desc) return "Gives fire aura and bonus to AC.";
11804 msg_print("ÂΤ¬É¹¤Î³»¤Çʤ¤ï¤ì¤¿¡£");
11806 msg_print("You have enveloped by ice armor!");
11812 msg_print("ɹ¤Î³»¤¬¾Ã¤¨µî¤Ã¤¿¡£");
11814 msg_print("Ice armor disappeared.");
11821 if (name) return "½Å½ý¤Î¼£Ìþ";
11822 if (desc) return "ÂÎÎϤä½ý¤ò¿¾¯²óÉü¤µ¤»¤ë¡£";
11824 if (name) return "Cure serious wounds";
11825 if (desc) return "Heals cut and HP more.";
11827 if (info) return info_heal(2, 10, 0);
11831 msg_print("µ¤Ê¬¤¬Îɤ¯¤Ê¤Ã¤Æ¤¯¤ë¡£");
11833 msg_print("You feel better and better.");
11838 hp_player(damroll(2, 10));
11839 set_cut((p_ptr->cut / 2) - 10);
11845 if (name) return "ÌôÉʵÛÆþ";
11846 if (desc) return "¼öʸ±Ó¾§¤òÃæ»ß¤¹¤ë¤³¤È¤Ê¤¯¡¢Ìô¤Î¸ú²Ì¤òÆÀ¤ë¤³¤È¤¬¤Ç¤¤ë¡£";
11848 if (name) return "Inhail potion";
11849 if (desc) return "Quaffs a potion without canceling of casting a spell.";
11853 p_ptr->magic_num1[0] |= (1L << HEX_INHAIL);
11854 do_cmd_quaff_potion();
11855 p_ptr->magic_num1[0] &= ~(1L << HEX_INHAIL);
11862 if (name) return "µÛ·ì̸";
11863 if (desc) return "»ë³¦Æâ¤Î¥â¥ó¥¹¥¿¡¼¤ËÈù¼åÎ̤ÎÀ¸Ì¿Îϵۼý¤Î¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£Í¿¤¨¤¿¥À¥á¡¼¥¸¤Îʬ¡¢ÂÎÎϤ¬²óÉü¤¹¤ë¡£";
11865 if (name) return "Vampiric mist";
11866 if (desc) return "Deals few dameges of drain life to all monsters in your sight.";
11868 power = (plev / 2) + 5;
11869 if (info) return info_damage(1, power, 0);
11872 project_hack(GF_OLD_DRAIN, randint1(power));
11878 if (name) return "Ëâ·õ²½";
11879 if (desc) return "Éð´ï¤Î¹¶·âÎϤò¾å¤²¤ë¡£ÀÚ¤ìÌ£¤òÆÀ¡¢¼ö¤¤¤Ë±þ¤¸¤ÆÍ¿¤¨¤ë¥À¥á¡¼¥¸¤¬¾å¾º¤·¡¢Á±Îɤʥâ¥ó¥¹¥¿¡¼¤ËÂФ¹¤ë¥À¥á¡¼¥¸¤¬2Çܤˤʤ롣";
11881 if (name) return "Swords to runeswords";
11882 if (desc) return "Gives vorpal ability to your weapon. Increases damages by your weapon acccording to curse of your weapon.";
11887 msg_print("¤¢¤Ê¤¿¤ÎÉð´ï¤¬¹õ¤¯µ±¤¤¤¿¡£");
11889 if (!empty_hands(FALSE))
11890 msg_print("Your weapons glow bright black.");
11892 msg_print("Your weapon glows bright black.");
11898 msg_print("Éð´ï¤Îµ±¤¤¬¾Ã¤¨µî¤Ã¤¿¡£");
11900 msg_format("Brightness of weapon%s disappeared.", (empty_hands(FALSE)) ? "" : "s");
11907 if (name) return "º®Íð¤Î¼ê";
11908 if (desc) return "¹¶·â¤·¤¿ºÝ¥â¥ó¥¹¥¿¡¼¤òº®Í𤵤»¤ë¡£";
11910 if (name) return "Touch of confusion";
11911 if (desc) return "Confuses a monster when you attack.";
11916 msg_print("¤¢¤Ê¤¿¤Î¼ê¤¬ÀÖ¤¯µ±¤»Ï¤á¤¿¡£");
11918 msg_print("Your hands glow bright red.");
11924 msg_print("¼ê¤Îµ±¤¤¬¤Ê¤¯¤Ê¤Ã¤¿¡£");
11926 msg_print("Brightness on your hands disappeard.");
11933 if (name) return "ÆùÂζ¯²½";
11934 if (desc) return "½Ñ¼Ô¤ÎÏÓÎÏ¡¢´ïÍѤµ¡¢Âѵ×ÎϤò¾å¾º¤µ¤»¤ë¡£¹¶·â²ó¿ô¤Î¾å¸Â¤ò 1 Áý²Ã¤µ¤»¤ë¡£";
11936 if (name) return "Building up";
11937 if (desc) return "Attempts to increases your strength, dexterity and constitusion.";
11942 msg_print("¿ÈÂΤ¬¶¯¤¯¤Ê¤Ã¤¿µ¤¤¬¤·¤¿¡£");
11944 msg_print("You feel your body is developed more now.");
11951 if (name) return "È¿¥Æ¥ì¥Ý¡¼¥È·ë³¦";
11952 if (desc) return "»ë³¦Æâ¤Î¥â¥ó¥¹¥¿¡¼¤Î¥Æ¥ì¥Ý¡¼¥È¤òÁ˳²¤¹¤ë¥Ð¥ê¥¢¤òÄ¥¤ë¡£";
11954 if (name) return "Anti teleport barrier";
11955 if (desc) return "Obstructs all teleportations by monsters in your sight.";
11957 power = plev * 3 / 2;
11958 if (info) return info_power(power);
11962 msg_print("¥Æ¥ì¥Ý¡¼¥È¤òËɤ°¼ö¤¤¤ò¤«¤±¤¿¡£");
11964 msg_print("You feel anyone can not teleport except you.");
11969 /*** 3rd book (16-23) ***/
11972 if (name) return "¾×·â¤Î¥¯¥í¡¼¥¯";
11973 if (desc) return "Åŵ¤¤Î¥ª¡¼¥é¤ò¿È¤Ë¤Þ¤È¤¤¡¢Æ°¤¤¬Â®¤¯¤Ê¤ë¡£";
11975 if (name) return "Cloak of shock";
11976 if (desc) return "Gives lightning aura and a bonus to speed.";
11981 msg_print("ÂΤ¬°ðºÊ¤Î¥ª¡¼¥é¤Çʤ¤ï¤ì¤¿¡£");
11983 msg_print("You have enveloped by electrical aura!");
11989 msg_print("°ðºÊ¤Î¥ª¡¼¥é¤¬¾Ã¤¨µî¤Ã¤¿¡£");
11991 msg_print("Electrical aura disappeared.");
11998 if (name) return "Ã×Ì¿½ý¤Î¼£Ìþ";
11999 if (desc) return "ÂÎÎϤä½ý¤ò²óÉü¤µ¤»¤ë¡£";
12001 if (name) return "Cure critical wounds";
12002 if (desc) return "Heals cut and HP greatry.";
12004 if (info) return info_heal(4, 10, 0);
12008 msg_print("µ¤Ê¬¤¬Îɤ¯¤Ê¤Ã¤Æ¤¯¤ë¡£");
12010 msg_print("You feel better and better.");
12015 hp_player(damroll(4, 10));
12024 if (name) return "¼öÎÏÉõÆþ";
12025 if (desc) return "ËâË¡¤ÎÆ»¶ñ¤ËËâÎϤòºÆ½¼Å¶¤¹¤ë¡£";
12027 if (name) return "Recharging";
12028 if (desc) return "Recharges a magic device.";
12031 if (info) return info_power(power);
12034 if (!recharge(power)) return NULL;
12041 if (name) return "»à¼ÔÉü³è";
12042 if (desc) return "»àÂΤòÁɤ餻¤Æ¥Ú¥Ã¥È¤Ë¤¹¤ë¡£";
12044 if (name) return "Animate Dead";
12045 if (desc) return "Raises corpses and skeletons from dead.";
12050 msg_print("»à¼Ô¤Ø¤Î¸Æ¤Ó¤«¤±¤ò»Ï¤á¤¿¡£");
12052 msg_print("You start to call deads.!");
12057 animate_dead(0, py, px);
12063 if (name) return "Ëɶñ¼öÇû";
12064 if (desc) return "ÁõÈ÷¤·¤Æ¤¤¤ëËɶñ¤Ë¼ö¤¤¤ò¤«¤±¤ë¡£";
12066 if (name) return "Curse armor";
12067 if (desc) return "Curse a piece of armour that you wielding.";
12073 char o_name[MAX_NLEN];
12074 object_type *o_ptr;
12075 u32b f[TR_FLAG_SIZE];
12077 item_tester_hook = object_is_armour;
12079 q = "¤É¤ì¤ò¼ö¤¤¤Þ¤¹¤«¡©";
12080 s = "Ëɶñ¤òÁõÈ÷¤·¤Æ¤¤¤Ê¤¤¡£";
12082 q = "Which piece of armour do you curse?";
12083 s = "You wield no piece of armours.";
12086 if (!get_item(&item, q, s, (USE_EQUIP))) return FALSE;
12088 o_ptr = &inventory[item];
12089 object_desc(o_name, o_ptr, OD_NAME_ONLY);
12090 object_flags(o_ptr, f);
12093 if (!get_check(format("ËÜÅö¤Ë %s ¤ò¼ö¤¤¤Þ¤¹¤«¡©", o_name))) return FALSE;
12095 if (!get_check(format("Do you curse %s, really¡©", o_name))) return FALSE;
12099 (object_is_artifact(o_ptr) || have_flag(f, TR_BLESSED)))
12102 msg_format("%s ¤Ï¼ö¤¤¤òÄ·¤ÍÊÖ¤·¤¿¡£", o_name);
12104 msg_format("%s resists the effect.", o_name);
12108 if (o_ptr->to_d > 0)
12110 o_ptr->to_d -= randint1(3) % 2;
12111 if (o_ptr->to_d < 0) o_ptr->to_d = 0;
12113 if (o_ptr->to_h > 0)
12115 o_ptr->to_h -= randint1(3) % 2;
12116 if (o_ptr->to_h < 0) o_ptr->to_h = 0;
12118 if (o_ptr->to_a > 0)
12120 o_ptr->to_a -= randint1(3) % 2;
12121 if (o_ptr->to_a < 0) o_ptr->to_a = 0;
12124 msg_format("%s ¤ÏÎô²½¤·¤Æ¤·¤Þ¤Ã¤¿¡£", o_name);
12126 msg_format("Your %s was disenchanted!", o_name);
12134 msg_format("¶²ÉݤΰŹõ¥ª¡¼¥é¤¬¤¢¤Ê¤¿¤Î%s¤òÊñ¤ß¹þ¤ó¤À¡ª", o_name);
12136 msg_format("A terrible black aura blasts your %s!", o_name);
12138 o_ptr->curse_flags |= (TRC_CURSED);
12140 if (object_is_artifact(o_ptr) || object_is_ego(o_ptr))
12143 if (one_in_(3)) o_ptr->curse_flags |= (TRC_HEAVY_CURSE);
12146 o_ptr->curse_flags |= (TRC_TY_CURSE);
12147 if (one_in_(666)) o_ptr->curse_flags |= (TRC_PERMA_CURSE);
12149 add_flag(o_ptr->art_flags, TR_AGGRAVATE);
12150 add_flag(o_ptr->art_flags, TR_RES_POIS);
12151 add_flag(o_ptr->art_flags, TR_RES_DARK);
12152 add_flag(o_ptr->art_flags, TR_RES_NETHER);
12154 msg_print("·ì¤À¡ª·ì¤À¡ª·ì¤À¡ª");
12156 msg_print("Blood, Blood, Blood!");
12162 o_ptr->curse_flags |= get_curse(power, o_ptr);
12165 p_ptr->update |= (PU_BONUS);
12172 if (name) return "±Æ¤Î¥¯¥í¡¼¥¯";
12173 if (desc) return "±Æ¤Î¥ª¡¼¥é¤ò¿È¤Ë¤Þ¤È¤¤¡¢Å¨¤Ë±Æ¤Î¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
12175 if (name) return "Cloak of shadow";
12176 if (desc) return "Gives aura of shadow.";
12180 object_type *o_ptr = &inventory[INVEN_OUTER];
12185 msg_print("¥¯¥í¡¼¥¯¤ò¿È¤Ë¤Ä¤±¤Æ¤¤¤Ê¤¤¡ª");
12187 msg_print("You don't ware any cloak.");
12191 else if (!object_is_cursed(o_ptr))
12194 msg_print("¥¯¥í¡¼¥¯¤Ï¼ö¤ï¤ì¤Æ¤¤¤Ê¤¤¡ª");
12196 msg_print("Your cloak is not cursed.");
12203 msg_print("±Æ¤Î¥ª¡¼¥é¤ò¿È¤Ë¤Þ¤È¤Ã¤¿¡£");
12205 msg_print("You have enveloped by shadow aura!");
12211 object_type *o_ptr = &inventory[INVEN_OUTER];
12213 if ((!o_ptr->k_idx) || (!object_is_cursed(o_ptr)))
12215 do_spell(REALM_HEX, spell, SPELL_STOP);
12216 p_ptr->magic_num1[0] &= ~(1L << spell);
12217 p_ptr->magic_num2[0]--;
12218 if (!p_ptr->magic_num2[0]) set_action(ACTION_NONE);
12224 msg_print("±Æ¤Î¥ª¡¼¥é¤¬¾Ã¤¨µî¤Ã¤¿¡£");
12226 msg_print("Shadow aura disappeared.");
12233 if (name) return "¶ìÄˤòËâÎϤË";
12234 if (desc) return "»ë³¦Æâ¤Î¥â¥ó¥¹¥¿¡¼¤ËÀº¿À¥À¥á¡¼¥¸Í¿¤¨¡¢ËâÎϤòµÛ¤¤¼è¤ë¡£";
12236 if (name) return "Pains to mana";
12237 if (desc) return "Deals psychic damages to all monsters in sight, and drains some mana.";
12239 power = plev * 3 / 2;
12240 if (info) return info_damage(1, power, 0);
12243 project_hack(GF_PSI_DRAIN, randint1(power));
12249 if (name) return "ÌܤˤÏÌܤò";
12250 if (desc) return "ÂÇ·â¤äËâË¡¤Ç¼õ¤±¤¿¥À¥á¡¼¥¸¤ò¡¢¹¶·â¸µ¤Î¥â¥ó¥¹¥¿¡¼¤Ë¤âÍ¿¤¨¤ë¡£";
12252 if (name) return "Eye for an eye";
12253 if (desc) return "Returns same damage which you got to the monster which damaged you.";
12258 msg_print("Éü½²¤·¤¿¤¤Íß˾¤Ë¤«¤é¤ì¤¿¡£");
12260 msg_print("You wish strongly you want to revenge anything.");
12265 /*** 4th book (24-31) ***/
12268 if (name) return "È¿Áý¿£·ë³¦";
12269 if (desc) return "¤½¤Î³¬¤ÎÁý¿£¤¹¤ë¥â¥ó¥¹¥¿¡¼¤ÎÁý¿£¤òÁ˻ߤ¹¤ë¡£";
12271 if (name) return "Anti multiply barrier";
12272 if (desc) return "Obstructs all multiplying by monsters in entire floor.";
12277 msg_print("Áý¿£¤òÁ˻ߤ¹¤ë¼ö¤¤¤ò¤«¤±¤¿¡£");
12279 msg_print("You feel anyone can not already multiply.");
12286 if (name) return "À¸Ì¿ÎÏÉü³è";
12287 if (desc) return "·Ð¸³Ãͤò½ù¡¹¤ËÉü³è¤·¡¢¸º¾¯¤·¤¿Ç½ÎÏÃͤò²óÉü¤µ¤»¤ë¡£";
12289 if (name) return "Restore life";
12290 if (desc) return "Restores life energy and status.";
12295 msg_print("À¸Ì¿ÎϤ¬Ìá¤ê»Ï¤á¤¿¡£");
12297 msg_print("You feel your life energy starting to return.");
12303 int d = (p_ptr->max_exp - p_ptr->exp);
12304 int r = (p_ptr->exp / 20);
12310 p_ptr->exp = p_ptr->max_exp;
12314 /* Check the experience */
12315 check_experience();
12319 for (i = A_STR; i < 6; i ++)
12321 if (p_ptr->stat_cur[i] < p_ptr->stat_max[i])
12323 if (p_ptr->stat_cur[i] < 18)
12324 p_ptr->stat_cur[i]++;
12326 p_ptr->stat_cur[i] += 10;
12328 if (p_ptr->stat_cur[i] > p_ptr->stat_max[i])
12329 p_ptr->stat_cur[i] = p_ptr->stat_max[i];
12331 /* Recalculate bonuses */
12332 p_ptr->update |= (PU_BONUS);
12341 msg_format("%s¤Î¼öʸ¤Î±Ó¾§¤ò¤ä¤á¤¿¡£", do_spell(REALM_HEX, HEX_RESTORE, SPELL_NAME));
12343 msg_format("Finish casting '%^s'.", do_spell(REALM_HEX, HEX_RESTORE, SPELL_NAME));
12345 p_ptr->magic_num1[0] &= ~(1L << HEX_RESTORE);
12346 if (cont) p_ptr->magic_num2[0]--;
12347 if (p_ptr->magic_num2) p_ptr->action = ACTION_NONE;
12349 /* Redraw status */
12350 p_ptr->update |= (PU_BONUS | PU_HP | PU_MANA | PU_SPELLS);
12351 p_ptr->redraw |= (PR_EXTRA);
12360 if (name) return "¼öÎϵۼý";
12361 if (desc) return "¼ö¤ï¤ì¤¿Éð´ï¤Î¼ö¤¤¤òµÛ¼ý¤·¤ÆËâÎϤò²óÉü¤¹¤ë¡£";
12363 if (name) return "Drain curse power";
12364 if (desc) return "Drains curse on your weapon and heals SP a little.";
12370 u32b f[TR_FLAG_SIZE];
12371 object_type *o_ptr;
12373 item_tester_hook = item_tester_hook_cursed;
12375 q = "¤É¤ÎÁõÈ÷Éʤ«¤éµÛ¼ý¤·¤Þ¤¹¤«¡©";
12376 s = "¼ö¤ï¤ì¤¿¥¢¥¤¥Æ¥à¤òÁõÈ÷¤·¤Æ¤¤¤Ê¤¤¡£";
12378 q = "Which cursed equipment do you drain mana from?";
12379 s = "You have no cursed equipment.";
12382 if (!get_item(&item, q, s, (USE_EQUIP))) return FALSE;
12384 o_ptr = &inventory[item];
12385 object_flags(o_ptr, f);
12387 p_ptr->csp += (p_ptr->lev / 5) + randint1(p_ptr->lev / 5);
12388 if (have_flag(f, TR_TY_CURSE) || (o_ptr->curse_flags & TRC_TY_CURSE)) p_ptr->csp += randint1(5);
12389 if (p_ptr->csp > p_ptr->msp) p_ptr->csp = p_ptr->msp;
12391 if (o_ptr->curse_flags & TRC_PERMA_CURSE)
12395 else if (o_ptr->curse_flags & TRC_HEAVY_CURSE)
12400 msg_print("¼ö¤¤¤òÁ´¤ÆµÛ¤¤¼è¤Ã¤¿¡£");
12402 msg_print("Heavy curse vanished away.");
12404 o_ptr->curse_flags = 0L;
12407 else if ((o_ptr->curse_flags & (TRC_CURSED)) && one_in_(3))
12410 msg_print("¼ö¤¤¤òÁ´¤ÆµÛ¤¤¼è¤Ã¤¿¡£");
12412 msg_print("Curse vanished away.");
12414 o_ptr->curse_flags = 0L;
12423 if (name) return "µÛ·ì¤Î¿Ï";
12424 if (desc) return "µÛ·ì°À¤Ç¹¶·â¤¹¤ë¡£";
12426 if (name) return "Swords to vampires";
12427 if (desc) return "Gives vampiric ability to your weapon.";
12432 msg_print("¤¢¤Ê¤¿¤ÎÉð´ï¤¬·ì¤òÍߤ·¤Æ¤¤¤ë¡£");
12434 if (!empty_hands(FALSE))
12435 msg_print("Your weapons want more blood now.");
12437 msg_print("Your weapon wants more blood now.");
12443 msg_print("Éð´ï¤Î³é˾¤¬¾Ã¤¨µî¤Ã¤¿¡£");
12445 msg_format("Thirsty of weapon%s disappeared.", (empty_hands(FALSE)) ? "" : "s");
12452 if (name) return "Û¯Û°¤Î¸ÀÍÕ";
12453 if (desc) return "»ë³¦Æâ¤Î¥â¥ó¥¹¥¿¡¼¤òÛ¯Û°¤È¤µ¤»¤ë¡£";
12455 if (name) return "Word of stun";
12456 if (desc) return "Stuns all monsters in your sight.";
12459 if (info) return info_power(power);
12462 stun_monsters(power);
12468 if (name) return "±Æ°ÜÆ°";
12469 if (desc) return "¥â¥ó¥¹¥¿¡¼¤ÎÎ٤Υޥ¹¤Ë½Ö´Ö°ÜÆ°¤¹¤ë¡£";
12471 if (name) return "Moving into shadow";
12472 if (desc) return "Teleports you close to a monster.";
12479 for (i = 0; i < 3; i++)
12481 if (!tgt_pt(&x, &y)) return FALSE;
12485 for (dir = 0; dir < 8; dir++)
12487 int dy = y + ddy_ddd[dir];
12488 int dx = x + ddx_ddd[dir];
12489 if (dir == 5) continue;
12490 if(cave[dy][dx].m_idx) flag = TRUE;
12493 if (!cave_empty_bold(y, x) || (cave[y][x].info & CAVE_ICKY) ||
12494 (distance(y, x, py, px) > plev + 2))
12497 msg_print("¤½¤³¤Ë¤Ï°ÜÆ°¤Ç¤¤Ê¤¤¡£");
12499 msg_print("Can not teleport to there.");
12506 if (flag && randint0(plev * plev / 2))
12508 teleport_player_to(y, x, 0L);
12513 msg_print("¤ª¤Ã¤È¡ª");
12515 msg_print("Oops!");
12517 teleport_player(30, 0L);
12526 if (name) return "È¿ËâË¡·ë³¦";
12527 if (desc) return "»ë³¦Æâ¤Î¥â¥ó¥¹¥¿¡¼¤ÎËâË¡¤òÁ˳²¤¹¤ë¥Ð¥ê¥¢¤òÄ¥¤ë¡£";
12529 if (name) return "Anti magic barrier";
12530 if (desc) return "Obstructs all magic spell of monsters in your sight.";
12532 power = plev * 3 / 2;
12533 if (info) return info_power(power);
12537 msg_print("ËâË¡¤òËɤ°¼ö¤¤¤ò¤«¤±¤¿¡£");
12539 msg_print("You feel anyone can not cast spells except you.");
12546 if (name) return "Éü½²¤ÎÀë¹ð";
12547 if (desc) return "¿ô¥¿¡¼¥ó¸å¤Ë¤½¤ì¤Þ¤Ç¼õ¤±¤¿¥À¥á¡¼¥¸¤Ë±þ¤¸¤¿°ÒÎϤÎÃϹö¤Î¹å²Ð¤ÎÃƤòÊü¤Ä¡£";
12549 if (name) return "Revenge sentence";
12550 if (desc) return "Fires a ball of hell fire to try revenging after few turns.";
12552 power = p_ptr->magic_num1[2];
12553 if (info) return info_damage(0, 0, power);
12557 int a = 3 - (p_ptr->pspeed - 100) / 10;
12558 r = 1 + randint1(2) + MAX(0, MIN(3, a));
12560 if (p_ptr->magic_num2[2] > 0)
12563 msg_print("¤¹¤Ç¤ËÉü½²¤ÏÀë¹ðºÑ¤ß¤À¡£");
12565 msg_print("You already pronounced your revenge.");
12570 p_ptr->magic_num2[1] = 2;
12571 p_ptr->magic_num2[2] = r;
12573 msg_format("¤¢¤Ê¤¿¤ÏÉü½²¤òÀë¹ð¤·¤¿¡£¤¢¤È %d ¥¿¡¼¥ó¡£", r);
12575 msg_format("You pronounce your revenge. %d turns left.", r);
12581 p_ptr->magic_num2[2]--;
12583 if (p_ptr->magic_num2[2] <= 0)
12594 msg_print("Éü½²¤Î»þ¤À¡ª");
12596 msg_print("Time to revenge!");
12599 while (!get_aim_dir(&dir));
12601 fire_ball(GF_HELL_FIRE, dir, power, 1);
12606 msg_format("%dÅÀ¤Î¥À¥á¡¼¥¸¤òÊÖ¤·¤¿¡£", power);
12608 msg_format("You return %d damages.", power);
12615 msg_print("Éü½²¤¹¤ëµ¤¤¬¼º¤»¤¿¡£");
12617 msg_print("You are not a mood to revenge.");
12620 p_ptr->magic_num1[2] = 0;
12626 /* start casting */
12627 if ((cast) && (add))
12630 p_ptr->magic_num1[0] |= 1L << (spell);
12631 p_ptr->magic_num2[0]++;
12633 if (p_ptr->action != ACTION_SPELL) set_action(ACTION_SPELL);
12636 /* Redraw status */
12639 p_ptr->update |= (PU_BONUS | PU_HP | PU_MANA | PU_SPELLS);
12640 p_ptr->redraw |= (PR_EXTRA | PR_HP | PR_MANA);
12648 * Do everything for each spell
12650 cptr do_spell(int realm, int spell, int mode)
12654 case REALM_LIFE: return do_life_spell(spell, mode);
12655 case REALM_SORCERY: return do_sorcery_spell(spell, mode);
12656 case REALM_NATURE: return do_nature_spell(spell, mode);
12657 case REALM_CHAOS: return do_chaos_spell(spell, mode);
12658 case REALM_DEATH: return do_death_spell(spell, mode);
12659 case REALM_TRUMP: return do_trump_spell(spell, mode);
12660 case REALM_ARCANE: return do_arcane_spell(spell, mode);
12661 case REALM_CRAFT: return do_craft_spell(spell, mode);
12662 case REALM_DAEMON: return do_daemon_spell(spell, mode);
12663 case REALM_CRUSADE: return do_crusade_spell(spell, mode);
12664 case REALM_MUSIC: return do_music_spell(spell, mode);
12665 case REALM_HISSATSU: return do_hissatsu_spell(spell, mode);
12666 case REALM_HEX: return do_hex_spell(spell, mode);