3 /* Purpose: Do everything for each spell */
9 * Generate dice info string such as "foo 2d10"
11 static cptr info_string_dice(cptr str, int dice, int sides, int base)
15 return format("%s%d", str, base);
19 return format("%s%dd%d", str, dice, sides);
21 /* Dice plus base value */
23 return format("%s%dd%d%+d", str, dice, sides, base);
28 * Generate damage-dice info string such as "dam 2d10"
30 static cptr info_damage(int dice, int sides, int base)
33 return info_string_dice("»½ý:", dice, sides, base);
35 return info_string_dice("dam ", dice, sides, base);
41 * Generate duration info string such as "dur 20+1d20"
43 static cptr info_duration(int base, int sides)
46 return format("´ü´Ö:%d+1d%d", base, sides);
48 return format("dur %d+1d%d", base, sides);
54 * Generate range info string such as "range 5"
56 static cptr info_range(int range)
59 return format("ÈÏ°Ï:%d", range);
61 return format("range %d", range);
67 * Generate heal info string such as "heal 2d8"
69 static cptr info_heal(int dice, int sides, int base)
72 return info_string_dice("²óÉü:", dice, sides, base);
74 return info_string_dice("heal ", dice, sides, base);
80 * Generate delay info string such as "delay 15+1d15"
82 static cptr info_delay(int base, int sides)
85 return format("ÃÙ±ä:%d+1d%d", base, sides);
87 return format("delay %d+1d%d", base, sides);
93 * Generate multiple-damage info string such as "dam 25 each"
95 static cptr info_multi_damage(int dam)
98 return format("»½ý:³Æ%d", dam);
100 return format("dam %d each", dam);
106 * Generate multiple-damage-dice info string such as "dam 5d2 each"
108 static cptr info_multi_damage_dice(int dice, int sides)
111 return format("»½ý:³Æ%dd%d", dice, sides);
113 return format("dam %dd%d each", dice, sides);
119 * Generate power info string such as "power 100"
121 static cptr info_power(int power)
124 return format("¸úÎÏ:%d", power);
126 return format("power %d", power);
132 * Generate power info string such as "power 1d100"
134 static cptr info_power_dice(int dice, int sides)
137 return format("¸úÎÏ:%dd%d", dice, sides);
139 return format("power %dd%d", dice, sides);
145 * Generate radius info string such as "rad 100"
147 static cptr info_radius(int rad)
150 return format("Ⱦ·Â:%d", rad);
152 return format("rad %d", rad);
158 * Generate weight info string such as "max wgt 15"
160 static cptr info_weight(int weight)
163 return format("ºÇÂç½ÅÎÌ:%d.%dkg", lbtokg1(weight/10), lbtokg2(weight/10));
165 return format("max wgt %d", weight/10);
171 * Prepare standard probability to become beam for fire_bolt_or_beam()
173 static int beam_chance(void)
175 if (p_ptr->pclass == CLASS_MAGE)
177 if (p_ptr->pclass == CLASS_HIGH_MAGE || p_ptr->pclass == CLASS_SORCERER)
178 return p_ptr->lev + 10;
180 return p_ptr->lev / 2;
185 * Handle summoning and failure of trump spells
187 static bool trump_summoning(int num, bool pet, int y, int x, int lev, int type, u32b mode)
189 int plev = p_ptr->lev;
193 bool success = FALSE;
196 if (!lev) lev = plev * 2 / 3 + randint1(plev / 2);
201 mode |= PM_FORCE_PET;
203 /* Only sometimes allow unique monster */
204 if (mode & PM_ALLOW_UNIQUE)
207 if (randint1(50 + plev) >= plev / 10)
208 mode &= ~PM_ALLOW_UNIQUE;
211 /* Player is who summons */
216 /* Prevent taming, allow unique monster */
219 /* Behave as if they appear by themselfs */
223 for (i = 0; i < num; i++)
225 if (summon_specific(who, y, x, lev, type, mode))
232 msg_print("ï¤â¤¢¤Ê¤¿¤Î¥«¡¼¥É¤Î¸Æ¤ÓÀ¼¤ËÅú¤¨¤Ê¤¤¡£");
234 msg_print("Nobody answers to your Trump call.");
243 * This spell should become more useful (more controlled) as the
244 * player gains experience levels. Thus, add 1/5 of the player's
245 * level to the die roll. This eliminates the worst effects later on,
246 * while keeping the results quite random. It also allows some potent
247 * effects only at high level.
249 static void cast_wonder(int dir)
251 int plev = p_ptr->lev;
252 int die = randint1(100) + plev / 5;
253 int vir = virtue_number(V_CHANCE);
257 if (p_ptr->virtues[vir - 1] > 0)
259 while (randint1(400) < p_ptr->virtues[vir - 1]) die++;
263 while (randint1(400) < (0-p_ptr->virtues[vir - 1])) die--;
268 chg_virtue(V_CHANCE, 1);
273 msg_print("¤¢¤Ê¤¿¤ÏÎϤ¬¤ß¤Ê¤®¤ë¤Î¤ò´¶¤¸¤¿¡ª");
275 msg_print("You feel a surge of power!");
279 if (die < 8) clone_monster(dir);
280 else if (die < 14) speed_monster(dir);
281 else if (die < 26) heal_monster(dir, damroll(4, 6));
282 else if (die < 31) poly_monster(dir);
284 fire_bolt_or_beam(beam_chance() - 10, GF_MISSILE, dir,
285 damroll(3 + ((plev - 1) / 5), 4));
286 else if (die < 41) confuse_monster(dir, plev);
287 else if (die < 46) fire_ball(GF_POIS, dir, 20 + (plev / 2), 3);
288 else if (die < 51) (void)lite_line(dir);
290 fire_bolt_or_beam(beam_chance() - 10, GF_ELEC, dir,
291 damroll(3 + ((plev - 5) / 4), 8));
293 fire_bolt_or_beam(beam_chance() - 10, GF_COLD, dir,
294 damroll(5 + ((plev - 5) / 4), 8));
296 fire_bolt_or_beam(beam_chance(), GF_ACID, dir,
297 damroll(6 + ((plev - 5) / 4), 8));
299 fire_bolt_or_beam(beam_chance(), GF_FIRE, dir,
300 damroll(8 + ((plev - 5) / 4), 8));
301 else if (die < 76) drain_life(dir, 75);
302 else if (die < 81) fire_ball(GF_ELEC, dir, 30 + plev / 2, 2);
303 else if (die < 86) fire_ball(GF_ACID, dir, 40 + plev, 2);
304 else if (die < 91) fire_ball(GF_ICE, dir, 70 + plev, 3);
305 else if (die < 96) fire_ball(GF_FIRE, dir, 80 + plev, 3);
306 else if (die < 101) drain_life(dir, 100 + plev);
309 earthquake(py, px, 12);
313 (void)destroy_area(py, px, 13 + randint0(5), FALSE);
317 symbol_genocide(plev+50, TRUE);
319 else if (die < 110) dispel_monsters(120);
322 dispel_monsters(150);
330 static void cast_invoke_spirits(int dir)
332 int plev = p_ptr->lev;
333 int die = randint1(100) + plev / 5;
334 int vir = virtue_number(V_CHANCE);
338 if (p_ptr->virtues[vir - 1] > 0)
340 while (randint1(400) < p_ptr->virtues[vir - 1]) die++;
344 while (randint1(400) < (0-p_ptr->virtues[vir - 1])) die--;
349 msg_print("¤¢¤Ê¤¿¤Ï»à¼Ô¤¿¤Á¤ÎÎϤò¾·½¸¤·¤¿...");
351 msg_print("You call on the power of the dead...");
354 chg_virtue(V_CHANCE, 1);
359 msg_print("¤¢¤Ê¤¿¤Ï¤ª¤É¤í¤ª¤É¤í¤·¤¤ÎϤΤ¦¤Í¤ê¤ò´¶¤¸¤¿¡ª");
361 msg_print("You feel a surge of eldritch force!");
369 msg_print("¤Ê¤ó¤Æ¤³¤Ã¤¿¡ª¤¢¤Ê¤¿¤Î¼þ¤ê¤ÎÃÏÌ̤«¤éµà¤Á¤¿¿Í±Æ¤¬Î©¤Á¾å¤¬¤Ã¤Æ¤¤¿¡ª");
371 msg_print("Oh no! Mouldering forms rise from the earth around you!");
374 (void)summon_specific(0, py, px, dun_level, SUMMON_UNDEAD, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
375 chg_virtue(V_UNLIFE, 1);
380 msg_print("̾¾õ¤·Æñ¤¤¼Ù°¤Ê¸ºß¤¬¤¢¤Ê¤¿¤Î¿´¤òÄ̤ê²á¤®¤Æ¹Ô¤Ã¤¿...");
382 msg_print("An unnamable evil brushes against your mind...");
385 set_afraid(p_ptr->afraid + randint1(4) + 4);
390 msg_print("¤¢¤Ê¤¿¤ÎƬ¤ËÂçÎ̤ÎÍ©Î¤Á¤ÎÁû¡¹¤·¤¤À¼¤¬²¡¤·´ó¤»¤Æ¤¤¿...");
392 msg_print("Your head is invaded by a horde of gibbering spectral voices...");
395 set_confused(p_ptr->confused + randint1(4) + 4);
403 fire_bolt_or_beam(beam_chance() - 10, GF_MISSILE, dir,
404 damroll(3 + ((plev - 1) / 5), 4));
408 confuse_monster (dir, plev);
412 fire_ball(GF_POIS, dir, 20 + (plev / 2), 3);
416 (void)lite_line(dir);
420 fire_bolt_or_beam(beam_chance() - 10, GF_ELEC, dir,
421 damroll(3+((plev-5)/4),8));
425 fire_bolt_or_beam(beam_chance() - 10, GF_COLD, dir,
426 damroll(5+((plev-5)/4),8));
430 fire_bolt_or_beam(beam_chance(), GF_ACID, dir,
431 damroll(6+((plev-5)/4),8));
435 fire_bolt_or_beam(beam_chance(), GF_FIRE, dir,
436 damroll(8+((plev-5)/4),8));
444 fire_ball(GF_ELEC, dir, 30 + plev / 2, 2);
448 fire_ball(GF_ACID, dir, 40 + plev, 2);
452 fire_ball(GF_ICE, dir, 70 + plev, 3);
456 fire_ball(GF_FIRE, dir, 80 + plev, 3);
460 drain_life(dir, 100 + plev);
464 earthquake(py, px, 12);
468 (void)destroy_area(py, px, 13 + randint0(5), FALSE);
472 symbol_genocide(plev+50, TRUE);
476 dispel_monsters(120);
480 dispel_monsters(150);
489 msg_print("±¢±µ¤ÊÀ¼¤¬¥¯¥¹¥¯¥¹¾Ð¤¦¡£¡Ö¤â¤¦¤¹¤°¤ª¤Þ¤¨¤Ï²æ¡¹¤ÎÃç´Ö¤Ë¤Ê¤ë¤À¤í¤¦¡£¼å¤¼Ô¤è¡£¡×");
491 msg_print("Sepulchral voices chuckle. 'Soon you will join us, mortal.'");
497 static void wild_magic(int spell)
500 int type = SUMMON_BIZARRE1 + randint0(6);
502 if (type < SUMMON_BIZARRE1) type = SUMMON_BIZARRE1;
503 else if (type > SUMMON_BIZARRE6) type = SUMMON_BIZARRE6;
505 switch (randint1(spell) + randint1(8) + 1)
510 teleport_player(10, TRUE);
515 teleport_player(100, TRUE);
519 teleport_player(200, TRUE);
529 lite_area(damroll(2, 3), 2);
532 destroy_doors_touch();
537 sleep_monsters_touch();
541 trap_creation(py, px);
550 aggravate_monsters(0);
553 earthquake(py, px, 5);
557 (void)gain_random_mutation(0);
567 fire_ball(GF_CHAOS, 0, spell + 5, 1 + (spell / 10));
574 while (counter++ < 8)
576 (void)summon_specific(0, py, px, (dun_level * 3) / 2, type, (PM_ALLOW_GROUP | PM_NO_PET));
581 activate_hi_summon(py, px, FALSE);
584 (void)summon_cyber(-1, py, px);
589 (void)activate_ty_curse(FALSE, &count);
596 static void cast_shuffle(void)
598 int plev = p_ptr->lev;
601 int vir = virtue_number(V_CHANCE);
604 /* Card sharks and high mages get a level bonus */
605 if ((p_ptr->pclass == CLASS_ROGUE) ||
606 (p_ptr->pclass == CLASS_HIGH_MAGE) ||
607 (p_ptr->pclass == CLASS_SORCERER))
608 die = (randint1(110)) + plev / 5;
615 if (p_ptr->virtues[vir - 1] > 0)
617 while (randint1(400) < p_ptr->virtues[vir - 1]) die++;
621 while (randint1(400) < (0-p_ptr->virtues[vir - 1])) die--;
626 msg_print("¤¢¤Ê¤¿¤Ï¥«¡¼¥É¤òÀڤäưìËç°ú¤¤¤¿...");
628 msg_print("You shuffle the deck and draw a card...");
632 chg_virtue(V_CHANCE, 1);
637 msg_print("¤Ê¤ó¤Æ¤³¤Ã¤¿¡ª¡Ô»à¡Õ¤À¡ª");
639 msg_print("Oh no! It's Death!");
642 for (i = 0; i < randint1(3); i++)
643 activate_hi_summon(py, px, FALSE);
648 msg_print("¤Ê¤ó¤Æ¤³¤Ã¤¿¡ª¡Ô°Ëâ¡Õ¤À¡ª");
650 msg_print("Oh no! It's the Devil!");
653 summon_specific(0, py, px, dun_level, SUMMON_DEMON, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
659 msg_print("¤Ê¤ó¤Æ¤³¤Ã¤¿¡ª¡ÔÄߤé¤ì¤¿ÃË¡Õ¤À¡ª");
661 msg_print("Oh no! It's the Hanged Man.");
664 activate_ty_curse(FALSE, &count);
669 msg_print("¡ÔÉÔĴϤηõ¡Õ¤À¡£");
671 msg_print("It's the swords of discord.");
674 aggravate_monsters(0);
679 msg_print("¡Ô¶ò¼Ô¡Õ¤À¡£");
681 msg_print("It's the Fool.");
690 msg_print("´ñ̯¤Ê¥â¥ó¥¹¥¿¡¼¤Î³¨¤À¡£");
692 msg_print("It's the picture of a strange monster.");
695 trump_summoning(1, FALSE, py, px, (dun_level * 3 / 2), (32 + randint1(6)), PM_ALLOW_GROUP | PM_ALLOW_UNIQUE);
700 msg_print("¡Ô·î¡Õ¤À¡£");
702 msg_print("It's the Moon.");
710 msg_print("¡Ô±¿Ì¿¤ÎÎØ¡Õ¤À¡£");
712 msg_print("It's the Wheel of Fortune.");
715 wild_magic(randint0(32));
720 msg_print("¥Æ¥ì¥Ý¡¼¥È¡¦¥«¡¼¥É¤À¡£");
722 msg_print("It's a teleport trump card.");
725 teleport_player(10, TRUE);
730 msg_print("¡ÔÀµµÁ¡Õ¤À¡£");
732 msg_print("It's Justice.");
735 set_blessed(p_ptr->lev, FALSE);
740 msg_print("¥Æ¥ì¥Ý¡¼¥È¡¦¥«¡¼¥É¤À¡£");
742 msg_print("It's a teleport trump card.");
745 teleport_player(100, TRUE);
750 msg_print("¥Æ¥ì¥Ý¡¼¥È¡¦¥«¡¼¥É¤À¡£");
752 msg_print("It's a teleport trump card.");
755 teleport_player(200, TRUE);
760 msg_print("¡ÔÅã¡Õ¤À¡£");
762 msg_print("It's the Tower.");
770 msg_print("¡ÔÀáÀ©¡Õ¤À¡£");
772 msg_print("It's Temperance.");
775 sleep_monsters_touch();
780 msg_print("¡ÔÅã¡Õ¤À¡£");
782 msg_print("It's the Tower.");
785 earthquake(py, px, 5);
790 msg_print("ͧ¹¥Åª¤Ê¥â¥ó¥¹¥¿¡¼¤Î³¨¤À¡£");
792 msg_print("It's the picture of a friendly monster.");
795 trump_summoning(1, TRUE, py, px, (dun_level * 3 / 2), SUMMON_BIZARRE1, 0L);
800 msg_print("ͧ¹¥Åª¤Ê¥â¥ó¥¹¥¿¡¼¤Î³¨¤À¡£");
802 msg_print("It's the picture of a friendly monster.");
805 trump_summoning(1, TRUE, py, px, (dun_level * 3 / 2), SUMMON_BIZARRE2, 0L);
810 msg_print("ͧ¹¥Åª¤Ê¥â¥ó¥¹¥¿¡¼¤Î³¨¤À¡£");
812 msg_print("It's the picture of a friendly monster.");
815 trump_summoning(1, TRUE, py, px, (dun_level * 3 / 2), SUMMON_BIZARRE4, 0L);
820 msg_print("ͧ¹¥Åª¤Ê¥â¥ó¥¹¥¿¡¼¤Î³¨¤À¡£");
822 msg_print("It's the picture of a friendly monster.");
825 trump_summoning(1, TRUE, py, px, (dun_level * 3 / 2), SUMMON_BIZARRE5, 0L);
830 msg_print("¡ÔÎø¿Í¡Õ¤À¡£");
832 msg_print("It's the Lovers.");
835 if (get_aim_dir(&dir))
836 charm_monster(dir, MIN(p_ptr->lev, 20));
841 msg_print("¡Ô±£¼Ô¡Õ¤À¡£");
843 msg_print("It's the Hermit.");
851 msg_print("¡Ô¿³È½¡Õ¤À¡£");
853 msg_print("It's the Judgement.");
856 do_cmd_rerate(FALSE);
857 if (p_ptr->muta1 || p_ptr->muta2 || p_ptr->muta3)
860 msg_print("Á´¤Æ¤ÎÆÍÁ³ÊÑ°Û¤¬¼£¤Ã¤¿¡£");
862 msg_print("You are cured of all mutations.");
865 p_ptr->muta1 = p_ptr->muta2 = p_ptr->muta3 = 0;
866 p_ptr->update |= PU_BONUS;
873 msg_print("¡ÔÂÀÍÛ¡Õ¤À¡£");
875 msg_print("It's the Sun.");
878 chg_virtue(V_KNOWLEDGE, 1);
879 chg_virtue(V_ENLIGHTEN, 1);
885 msg_print("¡ÔÀ¤³¦¡Õ¤À¡£");
887 msg_print("It's the World.");
890 if (p_ptr->exp < PY_MAX_EXP)
892 s32b ee = (p_ptr->exp / 25) + 1;
893 if (ee > 5000) ee = 5000;
895 msg_print("¹¹¤Ë·Ð¸³¤òÀѤó¤À¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£");
897 msg_print("You feel more experienced.");
907 * Drop 10+1d10 meteor ball at random places near the player
909 static void cast_meteor(int dam, int rad)
912 int b = 10 + randint1(10);
914 for (i = 0; i < b; i++)
919 for (count = 0; count <= 20; count++)
923 x = px - 8 + randint0(17);
924 y = py - 8 + randint0(17);
926 dx = (px > x) ? (px - x) : (x - px);
927 dy = (py > y) ? (py - y) : (y - py);
929 /* Approximate distance */
930 d = (dy > dx) ? (dy + (dx >> 1)) : (dx + (dy >> 1));
932 if (d >= 9) continue;
934 if (!in_bounds(y, x) || !projectable(py, px, y, x)) continue;
940 if (count > 20) continue;
942 project(0, rad, y, x, dam, GF_METEOR, PROJECT_KILL | PROJECT_JUMP | PROJECT_ITEM, -1);
948 * Drop 10+1d10 disintegration ball at random places near the target
950 static bool cast_wrath_of_the_god(int dam, int rad)
955 int b = 10 + randint1(10);
957 if (!get_aim_dir(&dir)) return FALSE;
959 /* Use the given direction */
960 tx = px + 99 * ddx[dir];
961 ty = py + 99 * ddy[dir];
963 /* Hack -- Use an actual "target" */
964 if ((dir == 5) && target_okay())
975 /* Hack -- Stop at the target */
976 if ((y == ty) && (x == tx)) break;
980 mmove2(&ny, &nx, py, px, ty, tx);
982 /* Stop at maximum range */
983 if (MAX_RANGE <= distance(py, px, ny, nx)) break;
985 /* Stopped by walls/doors */
986 if (!cave_have_flag_bold(ny, nx, FF_PROJECT)) break;
988 /* Stopped by monsters */
989 if ((dir != 5) && cave[ny][nx].m_idx != 0) break;
991 /* Save the new location */
998 for (i = 0; i < b; i++)
1000 int count = 20, d = 0;
1006 x = tx - 5 + randint0(11);
1007 y = ty - 5 + randint0(11);
1009 dx = (tx > x) ? (tx - x) : (x - tx);
1010 dy = (ty > y) ? (ty - y) : (y - ty);
1012 /* Approximate distance */
1013 d = (dy > dx) ? (dy + (dx >> 1)) : (dx + (dy >> 1));
1014 /* Within the radius */
1018 if (count < 0) continue;
1020 /* Cannot penetrate perm walls */
1021 if (!in_bounds(y,x) ||
1022 cave_stop_disintegration(y,x) ||
1023 !in_disintegration_range(ty, tx, y, x))
1026 project(0, rad, y, x, dam, GF_DISINTEGRATE, PROJECT_JUMP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL, -1);
1034 * An "item_tester_hook" for offer
1036 static bool item_tester_offer(object_type *o_ptr)
1038 /* Flasks of oil are okay */
1039 if (o_ptr->tval != TV_CORPSE) return (FALSE);
1041 if (o_ptr->sval != SV_CORPSE) return (FALSE);
1043 if (my_strchr("pht", r_info[o_ptr->pval].d_char)) return (TRUE);
1045 /* Assume not okay */
1051 * Daemon spell Summon Greater Demon
1053 static bool cast_summon_greater_demon(void)
1055 int plev = p_ptr->lev;
1061 item_tester_hook = item_tester_offer;
1063 q = "¤É¤Î»àÂΤòÊû¤²¤Þ¤¹¤«? ";
1064 s = "Êû¤²¤é¤ì¤ë»àÂΤò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£";
1066 q = "Sacrifice which corpse? ";
1067 s = "You have nothing to scrifice.";
1069 if (!get_item(&item, q, s, (USE_INVEN | USE_FLOOR))) return FALSE;
1071 /* Get the item (in the pack) */
1074 o_ptr = &inventory[item];
1077 /* Get the item (on the floor) */
1080 o_ptr = &o_list[0 - item];
1083 summon_lev = plev * 2 / 3 + r_info[o_ptr->pval].level;
1085 if (summon_specific(-1, py, px, summon_lev, SUMMON_HI_DEMON, (PM_ALLOW_GROUP | PM_FORCE_PET)))
1088 msg_print("ⲫ¤Î°½¤¬½¼Ëþ¤·¤¿¡£");
1090 msg_print("The area fills with a stench of sulphur and brimstone.");
1095 msg_print("¡Ö¤´ÍѤǤ´¤¶¤¤¤Þ¤¹¤«¡¢¤´¼ç¿ÍÍÍ¡×");
1097 msg_print("'What is thy bidding... Master?'");
1100 /* Decrease the item (from the pack) */
1103 inven_item_increase(item, -1);
1104 inven_item_describe(item);
1105 inven_item_optimize(item);
1108 /* Decrease the item (from the floor) */
1111 floor_item_increase(0 - item, -1);
1112 floor_item_describe(0 - item);
1113 floor_item_optimize(0 - item);
1119 msg_print("°Ëâ¤Ï¸½¤ì¤Ê¤«¤Ã¤¿¡£");
1121 msg_print("No Greater Demon arrive.");
1130 * Start singing if the player is a Bard
1132 static void start_singing(int spell, int song)
1134 /* Remember the song index */
1135 p_ptr->magic_num1[0] = song;
1137 /* Remember the index of the spell which activated the song */
1138 p_ptr->magic_num2[0] = spell;
1141 /* Now the player is singing */
1142 set_action(ACTION_SING);
1145 /* Recalculate bonuses */
1146 p_ptr->update |= (PU_BONUS);
1148 /* Redraw status bar */
1149 p_ptr->redraw |= (PR_STATUS);
1154 * Stop singing if the player is a Bard
1156 void stop_singing(void)
1158 if (p_ptr->pclass != CLASS_BARD) return;
1160 /* Are there interupted song? */
1161 if (p_ptr->magic_num1[1])
1163 /* Forget interupted song */
1164 p_ptr->magic_num1[1] = 0;
1168 /* The player is singing? */
1169 if (!p_ptr->magic_num1[0]) return;
1171 /* Hack -- if called from set_action(), avoid recursive loop */
1172 if (p_ptr->action == ACTION_SING) set_action(ACTION_NONE);
1174 /* Message text of each song or etc. */
1175 do_spell(REALM_MUSIC, p_ptr->magic_num2[0], SPELL_STOP);
1177 p_ptr->magic_num1[0] = MUSIC_NONE;
1178 p_ptr->magic_num2[0] = 0;
1180 /* Recalculate bonuses */
1181 p_ptr->update |= (PU_BONUS);
1183 /* Redraw status bar */
1184 p_ptr->redraw |= (PR_STATUS);
1188 static cptr do_life_spell(int spell, int mode)
1190 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
1191 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
1192 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
1193 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
1196 int plev = p_ptr->lev;
1202 if (name) return "·Ú½ý¤Î¼£Ìþ";
1203 if (desc) return "²ø²æ¤ÈÂÎÎϤò¾¯¤·²óÉü¤µ¤»¤ë¡£";
1205 if (name) return "Cure Light Wounds";
1206 if (desc) return "Heals cut and HP a little.";
1213 if (info) return info_heal(dice, sides, 0);
1217 hp_player(damroll(dice, sides));
1218 set_cut(p_ptr->cut - 10);
1225 if (name) return "½ËÊ¡";
1226 if (desc) return "°ìÄê»þ´Ö¡¢Ì¿ÃæΨ¤ÈAC¤Ë¥Ü¡¼¥Ê¥¹¤òÆÀ¤ë¡£";
1228 if (name) return "Bless";
1229 if (desc) return "Gives bonus to hit and AC for a few turns.";
1235 if (info) return info_duration(base, base);
1239 set_blessed(randint1(base) + base, FALSE);
1246 if (name) return "·Ú½ý";
1247 if (desc) return "1ÂΤΥâ¥ó¥¹¥¿¡¼¤Ë¾®¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
1249 if (name) return "Cause Light Wounds";
1250 if (desc) return "Wounds a monster a little unless resisted.";
1254 int dice = 3 + (plev - 1) / 5;
1257 if (info) return info_damage(dice, sides, 0);
1261 if (!get_aim_dir(&dir)) return NULL;
1262 fire_ball_hide(GF_WOUNDS, dir, damroll(dice, sides), 0);
1269 if (name) return "¸÷¤Î¾¤´";
1270 if (desc) return "¸÷¸»¤¬¾È¤é¤·¤Æ¤¤¤ëÈϰϤ«Éô²°Á´ÂΤò±Êµ×¤ËÌÀ¤ë¤¯¤¹¤ë¡£";
1272 if (name) return "Call Light";
1273 if (desc) return "Lights up nearby area and the inside of a room permanently.";
1278 int sides = plev / 2;
1279 int rad = plev / 10 + 1;
1281 if (info) return info_damage(dice, sides, 0);
1285 lite_area(damroll(dice, sides), rad);
1292 if (name) return "æ« & ±£¤·Èâ´¶ÃÎ";
1293 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î櫤ÈÈâ¤È³¬Ãʤò´¶ÃΤ¹¤ë¡£";
1295 if (name) return "Detect Doors & Traps";
1296 if (desc) return "Detects traps, doors, and stairs in your vicinity.";
1300 int rad = DETECT_RAD_DEFAULT;
1302 if (info) return info_radius(rad);
1306 detect_traps(rad, TRUE);
1315 if (name) return "½Å½ý¤Î¼£Ìþ";
1316 if (desc) return "²ø²æ¤ÈÂÎÎϤòÃæÄøÅÙ²óÉü¤µ¤»¤ë¡£";
1318 if (name) return "Cure Medium Wounds";
1319 if (desc) return "Heals cut and HP more.";
1326 if (info) return info_heal(dice, sides, 0);
1330 hp_player(damroll(dice, sides));
1331 set_cut((p_ptr->cut / 2) - 20);
1338 if (name) return "²òÆÇ";
1339 if (desc) return "ÂÎÆâ¤ÎÆǤò¼è¤ê½ü¤¯¡£";
1341 if (name) return "Cure Poison";
1342 if (desc) return "Cure poison status.";
1355 if (name) return "¶õÊ¢½¼Â";
1356 if (desc) return "ËþÊ¢¤Ë¤¹¤ë¡£";
1358 if (name) return "Satisfy Hunger";
1359 if (desc) return "Satisfies hunger.";
1365 set_food(PY_FOOD_MAX - 1);
1372 if (name) return "²ò¼ö";
1373 if (desc) return "¥¢¥¤¥Æ¥à¤Ë¤«¤«¤Ã¤¿¼å¤¤¼ö¤¤¤ò²ò½ü¤¹¤ë¡£";
1375 if (name) return "Remove Curse";
1376 if (desc) return "Removes normal curses from equipped items.";
1385 msg_print("狼¤Ë¸«¼é¤é¤ì¤Æ¤¤¤ë¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£");
1387 msg_print("You feel as if someone is watching over you.");
1396 if (name) return "½Å½ý";
1397 if (desc) return "1ÂΤΥâ¥ó¥¹¥¿¡¼¤ËÃæ¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
1399 if (name) return "Cause Medium Wounds";
1400 if (desc) return "Wounds a monster unless resisted.";
1404 int sides = 8 + (plev - 5) / 4;
1407 if (info) return info_damage(dice, sides, 0);
1411 if (!get_aim_dir(&dir)) return NULL;
1412 fire_ball_hide(GF_WOUNDS, dir, damroll(sides, dice), 0);
1419 if (name) return "Ã×Ì¿½ý¤Î¼£Ìþ";
1420 if (desc) return "ÂÎÎϤòÂçÉý¤Ë²óÉü¤µ¤»¡¢Éé½ý¤ÈÛ¯Û°¾õÂÖ¤âÁ´²÷¤¹¤ë¡£";
1422 if (name) return "Cure Critical Wounds";
1423 if (desc) return "Heals cut, stun and HP greatly.";
1430 if (info) return info_heal(dice, sides, 0);
1434 hp_player(damroll(dice, sides));
1443 if (name) return "ÂÑÇ®ÂÑ´¨";
1444 if (desc) return "°ìÄê»þ´Ö¡¢²Ð±ê¤ÈÎ䵤¤ËÂФ¹¤ëÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
1446 if (name) return "Resist Heat and Cold";
1447 if (desc) return "Gives resistance to fire and cold. These resistances can be added to which from equipment for more powerful resistances.";
1453 if (info) return info_duration(base, base);
1457 set_oppose_cold(randint1(base) + base, FALSE);
1458 set_oppose_fire(randint1(base) + base, FALSE);
1465 if (name) return "¼þÊÕ´¶ÃÎ";
1466 if (desc) return "¼þÊÕ¤ÎÃÏ·Á¤ò´¶ÃΤ¹¤ë¡£";
1468 if (name) return "Sense Surroundings";
1469 if (desc) return "Maps nearby area.";
1473 int rad = DETECT_RAD_MAP;
1475 if (info) return info_radius(rad);
1486 if (name) return "¥Ñ¥Ë¥Ã¥¯¡¦¥¢¥ó¥Ç¥Ã¥É";
1487 if (desc) return "»ë³¦Æâ¤Î¥¢¥ó¥Ç¥Ã¥É¤ò¶²Éݤµ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
1489 if (name) return "Turn Undead";
1490 if (desc) return "Attempts to scare undead monsters in sight.";
1503 if (name) return "ÂÎÎϲóÉü";
1504 if (desc) return "¶Ë¤á¤Æ¶¯ÎϤʲóÉü¼öʸ¤Ç¡¢Éé½ý¤ÈÛ¯Û°¾õÂÖ¤âÁ´²÷¤¹¤ë¡£";
1506 if (name) return "Healing";
1507 if (desc) return "Much powerful healing magic, and heals cut and stun completely.";
1513 if (info) return info_heal(0, 0, heal);
1526 if (name) return "·ë³¦¤ÎÌæ¾Ï";
1527 if (desc) return "¼«Ê¬¤Î¤¤¤ë¾²¤Î¾å¤Ë¡¢¥â¥ó¥¹¥¿¡¼¤¬Ä̤êÈ´¤±¤¿¤ê¾¤´¤µ¤ì¤¿¤ê¤¹¤ë¤³¤È¤¬¤Ç¤¤Ê¤¯¤Ê¤ë¥ë¡¼¥ó¤òÉÁ¤¯¡£";
1529 if (name) return "Glyph of Warding";
1530 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.";
1543 if (name) return "*²ò¼ö*";
1544 if (desc) return "¥¢¥¤¥Æ¥à¤Ë¤«¤«¤Ã¤¿¶¯ÎϤʼö¤¤¤ò²ò½ü¤¹¤ë¡£";
1546 if (name) return "Dispel Curse";
1547 if (desc) return "Removes normal and heavy curse from equipped items.";
1553 if (remove_all_curse())
1556 msg_print("狼¤Ë¸«¼é¤é¤ì¤Æ¤¤¤ë¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£");
1558 msg_print("You feel as if someone is watching over you.");
1567 if (name) return "´Õ¼±";
1568 if (desc) return "¥¢¥¤¥Æ¥à¤ò¼±Ê̤¹¤ë¡£";
1570 if (name) return "Perception";
1571 if (desc) return "Identifies an item.";
1577 if (!ident_spell(FALSE)) return NULL;
1584 if (name) return "¥¢¥ó¥Ç¥Ã¥ÉÂ໶";
1585 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥¢¥ó¥Ç¥Ã¥É¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
1587 if (name) return "Dispel Undead";
1588 if (desc) return "Damages all undead monsters in sight.";
1593 int sides = plev * 5;
1595 if (info) return info_damage(dice, sides, 0);
1599 dispel_undead(damroll(dice, sides));
1606 if (name) return "Æä¤Î¹ï";
1607 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò̥λ¤¹¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
1609 if (name) return "Day of the Dove";
1610 if (desc) return "Attempts to charm all monsters in sight.";
1614 int power = plev * 2;
1616 if (info) return info_power(power);
1620 charm_monsters(power);
1627 if (name) return "Ã×Ì¿½ý";
1628 if (desc) return "1ÂΤΥâ¥ó¥¹¥¿¡¼¤ËÂç¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
1630 if (name) return "Cause Critical Wounds";
1631 if (desc) return "Wounds a monster critically unless resisted.";
1635 int dice = 5 + (plev - 5) / 3;
1638 if (info) return info_damage(dice, sides, 0);
1642 if (!get_aim_dir(&dir)) return NULL;
1643 fire_ball_hide(GF_WOUNDS, dir, damroll(dice, sides), 0);
1650 if (name) return "µ¢´Ô¤Î¾Û";
1651 if (desc) return "ÃϾå¤Ë¤¤¤ë¤È¤¤Ï¥À¥ó¥¸¥ç¥ó¤ÎºÇ¿¼³¬¤Ø¡¢¥À¥ó¥¸¥ç¥ó¤Ë¤¤¤ë¤È¤¤ÏÃϾå¤Ø¤È°ÜÆ°¤¹¤ë¡£";
1653 if (name) return "Word of Recall";
1654 if (desc) return "Recalls player from dungeon to town, or from town to the deepest level of dungeon.";
1661 if (info) return info_delay(base, sides);
1665 if (!word_of_recall()) return NULL;
1672 if (name) return "¿¿¼Â¤Îº×ÃÅ";
1673 if (desc) return "¸½ºß¤Î³¬¤òºÆ¹½À®¤¹¤ë¡£";
1675 if (name) return "Alter Reality";
1676 if (desc) return "Recreates current dungeon level.";
1683 if (info) return info_delay(base, sides);
1694 if (name) return "¿¿¡¦·ë³¦";
1695 if (desc) return "¼«Ê¬¤Î¤¤¤ë¾²¤È¼þ°Ï8¥Þ¥¹¤Î¾²¤Î¾å¤Ë¡¢¥â¥ó¥¹¥¿¡¼¤¬Ä̤êÈ´¤±¤¿¤ê¾¤´¤µ¤ì¤¿¤ê¤¹¤ë¤³¤È¤¬¤Ç¤¤Ê¤¯¤Ê¤ë¥ë¡¼¥ó¤òÉÁ¤¯¡£";
1697 if (name) return "Warding True";
1698 if (desc) return "Creates glyphs in all adjacent squares and under you.";
1704 if (info) return info_radius(rad);
1716 if (name) return "ÉÔÌÓ²½";
1717 if (desc) return "¤³¤Î³¬¤ÎÁý¿£¤¹¤ë¥â¥ó¥¹¥¿¡¼¤¬Áý¿£¤Ç¤¤Ê¤¯¤Ê¤ë¡£";
1719 if (name) return "Sterilization";
1720 if (desc) return "Prevents any breeders on current level from breeding.";
1726 num_repro += MAX_REPRO;
1733 if (name) return "Á´´¶ÃÎ";
1734 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¡¢æ«¡¢Èâ¡¢³¬ÃÊ¡¢ºâÊõ¡¢¤½¤·¤Æ¥¢¥¤¥Æ¥à¤ò´¶ÃΤ¹¤ë¡£";
1736 if (name) return "Detection";
1737 if (desc) return "Detects all monsters, traps, doors, stairs, treasures and items in your vicinity.";
1741 int rad = DETECT_RAD_DEFAULT;
1743 if (info) return info_radius(rad);
1754 if (name) return "¥¢¥ó¥Ç¥Ã¥É¾ÃÌÇ";
1755 if (desc) return "¼«Ê¬¤Î¼þ°Ï¤Ë¤¤¤ë¥¢¥ó¥Ç¥Ã¥É¤ò¸½ºß¤Î³¬¤«¤é¾Ã¤·µî¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
1757 if (name) return "Annihilate Undead";
1758 if (desc) return "Eliminates all nearby undead monsters, exhausting you. Powerful or unique monsters may be able to resist.";
1762 int power = plev + 50;
1764 if (info) return info_power(power);
1768 mass_genocide_undead(power, TRUE);
1775 if (name) return "ÀéΤ´ã";
1776 if (desc) return "¤½¤Î³¬Á´ÂΤò±Êµ×¤Ë¾È¤é¤·¡¢¥À¥ó¥¸¥ç¥óÆ⤹¤Ù¤Æ¤Î¥¢¥¤¥Æ¥à¤ò´¶ÃΤ¹¤ë¡£";
1778 if (name) return "Clairvoyance";
1779 if (desc) return "Maps and lights whole dungeon level. Knows all objects location. And gives telepathy for a while.";
1792 if (name) return "Á´Éü³è";
1793 if (desc) return "¤¹¤Ù¤Æ¤Î¥¹¥Æ¡¼¥¿¥¹¤È·Ð¸³Ãͤò²óÉü¤¹¤ë¡£";
1795 if (name) return "Restoration";
1796 if (desc) return "Restores all stats and experience.";
1815 if (name) return "*ÂÎÎϲóÉü*";
1816 if (desc) return "ºÇ¶¯¤Î¼£Ìþ¤ÎËâË¡¤Ç¡¢Éé½ý¤ÈÛ¯Û°¾õÂÖ¤âÁ´²÷¤¹¤ë¡£";
1818 if (name) return "Healing True";
1819 if (desc) return "The greatest healing magic. Heals all HP, cut and stun.";
1825 if (info) return info_heal(0, 0, heal);
1838 if (name) return "À»¤Ê¤ë¥Ó¥¸¥ç¥ó";
1839 if (desc) return "¥¢¥¤¥Æ¥à¤Î»ý¤ÄǽÎϤò´°Á´¤ËÃΤ롣";
1841 if (name) return "Holy Vision";
1842 if (desc) return "*Identifies* an item.";
1848 if (!identify_fully(FALSE)) return NULL;
1855 if (name) return "µæ¶Ë¤ÎÂÑÀ";
1856 if (desc) return "°ìÄê»þ´Ö¡¢¤¢¤é¤æ¤ëÂÑÀ¤òÉÕ¤±¡¢AC¤ÈËâË¡ËɸæǽÎϤò¾å¾º¤µ¤»¤ë¡£";
1858 if (name) return "Ultimate Resistance";
1859 if (desc) return "Gives ultimate resistance, bonus to AC and speed.";
1863 int base = plev / 2;
1865 if (info) return info_duration(base, base);
1869 int v = randint1(base) + base;
1871 set_oppose_acid(v, FALSE);
1872 set_oppose_elec(v, FALSE);
1873 set_oppose_fire(v, FALSE);
1874 set_oppose_cold(v, FALSE);
1875 set_oppose_pois(v, FALSE);
1876 set_ultimate_res(v, FALSE);
1886 static cptr do_sorcery_spell(int spell, int mode)
1888 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
1889 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
1890 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
1891 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
1894 int plev = p_ptr->lev;
1900 if (name) return "¥â¥ó¥¹¥¿¡¼´¶ÃÎ";
1901 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î¸«¤¨¤ë¥â¥ó¥¹¥¿¡¼¤ò´¶ÃΤ¹¤ë¡£";
1903 if (name) return "Detect Monsters";
1904 if (desc) return "Detects all monsters in your vicinity unless invisible.";
1908 int rad = DETECT_RAD_DEFAULT;
1910 if (info) return info_radius(rad);
1914 detect_monsters_normal(rad);
1921 if (name) return "¥·¥ç¡¼¥È¡¦¥Æ¥ì¥Ý¡¼¥È";
1922 if (desc) return "¶áµ÷Î¥¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¤¹¤ë¡£";
1924 if (name) return "Phase Door";
1925 if (desc) return "Teleport short distance.";
1931 if (info) return info_range(range);
1935 teleport_player(range, FALSE);
1942 if (name) return "櫤ÈÈâ´¶ÃÎ";
1943 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤ÎÈâ¤È櫤ò´¶ÃΤ¹¤ë¡£";
1945 if (name) return "Detect Doors and Traps";
1946 if (desc) return "Detects traps, doors, and stairs in your vicinity.";
1950 int rad = DETECT_RAD_DEFAULT;
1952 if (info) return info_radius(rad);
1956 detect_traps(rad, TRUE);
1965 if (name) return "¥é¥¤¥È¡¦¥¨¥ê¥¢";
1966 if (desc) return "¸÷¸»¤¬¾È¤é¤·¤Æ¤¤¤ëÈϰϤ«Éô²°Á´ÂΤò±Êµ×¤ËÌÀ¤ë¤¯¤¹¤ë¡£";
1968 if (name) return "Light Area";
1969 if (desc) return "Lights up nearby area and the inside of a room permanently.";
1974 int sides = plev / 2;
1975 int rad = plev / 10 + 1;
1977 if (info) return info_damage(dice, sides, 0);
1981 lite_area(damroll(dice, sides), rad);
1988 if (name) return "¥Ñ¥Ë¥Ã¥¯¡¦¥â¥ó¥¹¥¿¡¼";
1989 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤòº®Í𤵤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
1991 if (name) return "Confuse Monster";
1992 if (desc) return "Attempts to confuse a monster.";
1996 int power = (plev * 3) / 2;
1998 if (info) return info_power(power);
2002 if (!get_aim_dir(&dir)) return NULL;
2004 confuse_monster(dir, power);
2011 if (name) return "¥Æ¥ì¥Ý¡¼¥È";
2012 if (desc) return "±óµ÷Î¥¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¤¹¤ë¡£";
2014 if (name) return "Teleport";
2015 if (desc) return "Teleport long distance.";
2019 int range = plev * 5;
2021 if (info) return info_range(range);
2025 teleport_player(range, FALSE);
2032 if (name) return "¥¹¥ê¡¼¥×¡¦¥â¥ó¥¹¥¿¡¼";
2033 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤò̲¤é¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
2035 if (name) return "Sleep Monster";
2036 if (desc) return "Attempts to sleep a monster.";
2042 if (info) return info_power(power);
2046 if (!get_aim_dir(&dir)) return NULL;
2055 if (name) return "ËâÎϽ¼Å¶";
2056 if (desc) return "¾ó/ËâË¡ËÀ¤Î½¼Å¶²ó¿ô¤òÁý¤ä¤¹¤«¡¢½¼Å¶Ãæ¤Î¥í¥Ã¥É¤Î½¼Å¶»þ´Ö¤ò¸º¤é¤¹¡£";
2058 if (name) return "Recharging";
2059 if (desc) return "Recharges staffs, wands or rods.";
2063 int power = plev * 4;
2065 if (info) return info_power(power);
2069 if (!recharge(power)) return NULL;
2076 if (name) return "ËâË¡¤ÎÃÏ¿Þ";
2077 if (desc) return "¼þÊÕ¤ÎÃÏ·Á¤ò´¶ÃΤ¹¤ë¡£";
2079 if (name) return "Magic Mapping";
2080 if (desc) return "Maps nearby area.";
2084 int rad = DETECT_RAD_MAP;
2086 if (info) return info_radius(rad);
2097 if (name) return "´ÕÄê";
2098 if (desc) return "¥¢¥¤¥Æ¥à¤ò¼±Ê̤¹¤ë¡£";
2100 if (name) return "Identify";
2101 if (desc) return "Identifies an item.";
2107 if (!ident_spell(FALSE)) return NULL;
2114 if (name) return "¥¹¥í¥¦¡¦¥â¥ó¥¹¥¿¡¼";
2115 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤò¸ºÂ®¤µ¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
2117 if (name) return "Slow Monster";
2118 if (desc) return "Attempts to slow a monster.";
2124 if (info) return info_power(power);
2128 if (!get_aim_dir(&dir)) return NULL;
2137 if (name) return "¼þÊÕ¥¹¥ê¡¼¥×";
2138 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò̲¤é¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
2140 if (name) return "Mass Sleep";
2141 if (desc) return "Attempts to sleep all monsters in sight.";
2147 if (info) return info_power(power);
2158 if (name) return "¥Æ¥ì¥Ý¡¼¥È¡¦¥â¥ó¥¹¥¿¡¼";
2159 if (desc) return "¥â¥ó¥¹¥¿¡¼¤ò¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤ë¥Ó¡¼¥à¤òÊü¤Ä¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
2161 if (name) return "Teleport Away";
2162 if (desc) return "Teleports all monsters on the line away unless resisted.";
2168 if (info) return info_power(power);
2172 if (!get_aim_dir(&dir)) return NULL;
2174 fire_beam(GF_AWAY_ALL, dir, power);
2181 if (name) return "¥¹¥Ô¡¼¥É";
2182 if (desc) return "°ìÄê»þ´Ö¡¢²Ã®¤¹¤ë¡£";
2184 if (name) return "Haste Self";
2185 if (desc) return "Hastes you for a while.";
2190 int sides = 20 + plev;
2192 if (info) return info_duration(base, sides);
2196 set_fast(randint1(sides) + base, FALSE);
2203 if (name) return "¿¿¡¦´¶ÃÎ";
2204 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¡¢æ«¡¢Èâ¡¢³¬ÃÊ¡¢ºâÊõ¡¢¤½¤·¤Æ¥¢¥¤¥Æ¥à¤ò´¶ÃΤ¹¤ë¡£";
2206 if (name) return "Detection True";
2207 if (desc) return "Detects all monsters, traps, doors, stairs, treasures and items in your vicinity.";
2211 int rad = DETECT_RAD_DEFAULT;
2213 if (info) return info_radius(rad);
2224 if (name) return "¿¿¡¦´ÕÄê";
2225 if (desc) return "¥¢¥¤¥Æ¥à¤Î»ý¤ÄǽÎϤò´°Á´¤ËÃΤ롣";
2227 if (name) return "Identify True";
2228 if (desc) return "*Identifies* an item.";
2234 if (!identify_fully(FALSE)) return NULL;
2241 if (name) return "ʪÂΤȺâÊõ´¶ÃÎ";
2242 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î¥¢¥¤¥Æ¥à¤ÈºâÊõ¤ò´¶ÃΤ¹¤ë¡£";
2244 if (name) return "Detect items and Treasure";
2245 if (desc) return "Detects all treasures and items in your vicinity.";
2249 int rad = DETECT_RAD_DEFAULT;
2251 if (info) return info_radius(rad);
2255 detect_objects_normal(rad);
2256 detect_treasure(rad);
2257 detect_objects_gold(rad);
2264 if (name) return "¥Á¥ã¡¼¥à¡¦¥â¥ó¥¹¥¿¡¼";
2265 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤò̥λ¤¹¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
2267 if (name) return "Charm Monster";
2268 if (desc) return "Attempts to charm a monster.";
2274 if (info) return info_power(power);
2278 if (!get_aim_dir(&dir)) return NULL;
2280 charm_monster(dir, power);
2287 if (name) return "Àº¿À´¶ÃÎ";
2288 if (desc) return "°ìÄê»þ´Ö¡¢¥Æ¥ì¥Ñ¥·¡¼Ç½ÎϤòÆÀ¤ë¡£";
2290 if (name) return "Sense Minds";
2291 if (desc) return "Gives telepathy for a while.";
2298 if (info) return info_duration(base, sides);
2302 set_tim_esp(randint1(sides) + base, FALSE);
2309 if (name) return "³¹°ÜÆ°";
2310 if (desc) return "³¹¤Ø°ÜÆ°¤¹¤ë¡£ÃϾå¤Ë¤¤¤ë¤È¤¤·¤«»È¤¨¤Ê¤¤¡£";
2312 if (name) return "Teleport to town";
2313 if (desc) return "Teleport to a town which you choose in a moment. Can only be used outdoors.";
2319 if (!tele_town()) return NULL;
2326 if (name) return "¼«¸ÊʬÀÏ";
2327 if (desc) return "¸½ºß¤Î¼«Ê¬¤Î¾õÂÖ¤ò´°Á´¤ËÃΤ롣";
2329 if (name) return "Self Knowledge";
2330 if (desc) return "Gives you useful info regarding your current resistances, the powers of your weapon and maximum limits of your stats.";
2343 if (name) return "¥Æ¥ì¥Ý¡¼¥È¡¦¥ì¥Ù¥ë";
2344 if (desc) return "½Ö»þ¤Ë¾å¤«²¼¤Î³¬¤Ë¥Æ¥ì¥Ý¡¼¥È¤¹¤ë¡£";
2346 if (name) return "Teleport Level";
2347 if (desc) return "Teleport to up or down stairs in a moment.";
2354 if (!get_check("ËÜÅö¤Ë¾¤Î³¬¤Ë¥Æ¥ì¥Ý¡¼¥È¤·¤Þ¤¹¤«¡©")) return NULL;
2356 if (!get_check("Are you sure? (Teleport Level)")) return NULL;
2365 if (name) return "µ¢´Ô¤Î¼öʸ";
2366 if (desc) return "ÃϾå¤Ë¤¤¤ë¤È¤¤Ï¥À¥ó¥¸¥ç¥ó¤ÎºÇ¿¼³¬¤Ø¡¢¥À¥ó¥¸¥ç¥ó¤Ë¤¤¤ë¤È¤¤ÏÃϾå¤Ø¤È°ÜÆ°¤¹¤ë¡£";
2368 if (name) return "Word of Recall";
2369 if (desc) return "Recalls player from dungeon to town, or from town to the deepest level of dungeon.";
2376 if (info) return info_delay(base, sides);
2380 if (!word_of_recall()) return NULL;
2387 if (name) return "¼¡¸µ¤ÎÈâ";
2388 if (desc) return "ûµ÷Î¥Æâ¤Î»ØÄꤷ¤¿¾ì½ê¤Ë¥Æ¥ì¥Ý¡¼¥È¤¹¤ë¡£";
2390 if (name) return "Dimension Door";
2391 if (desc) return "Teleport to given location.";
2395 int range = plev / 2 + 10;
2397 if (info) return info_range(range);
2402 msg_print("¼¡¸µ¤ÎÈ⤬³«¤¤¤¿¡£ÌÜŪÃϤòÁª¤ó¤Ç²¼¤µ¤¤¡£");
2404 msg_print("You open a dimensional gate. Choose a destination.");
2407 if (!dimension_door()) return NULL;
2414 if (name) return "Ä´ºº";
2415 if (desc) return "¥â¥ó¥¹¥¿¡¼¤Î°À¡¢»Ä¤êÂÎÎÏ¡¢ºÇÂçÂÎÎÏ¡¢¥¹¥Ô¡¼¥É¡¢ÀµÂΤòÃΤ롣";
2417 if (name) return "Probing";
2418 if (desc) return "Proves all monsters' alignment, HP, speed and their true character.";
2431 if (name) return "Çúȯ¤Î¥ë¡¼¥ó";
2432 if (desc) return "¼«Ê¬¤Î¤¤¤ë¾²¤Î¾å¤Ë¡¢¥â¥ó¥¹¥¿¡¼¤¬Ä̤ë¤ÈÇúȯ¤·¤Æ¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¥ë¡¼¥ó¤òÉÁ¤¯¡£";
2434 if (name) return "Explosive Rune";
2435 if (desc) return "Sets a glyph under you. The glyph will explode when a monster moves on it.";
2443 if (info) return info_damage(dice, sides, base);
2454 if (name) return "Ç°Æ°ÎÏ";
2455 if (desc) return "¥¢¥¤¥Æ¥à¤ò¼«Ê¬¤Î¸µ¤Ø°ÜÆ°¤µ¤»¤ë¡£";
2457 if (name) return "Telekinesis";
2458 if (desc) return "Pulls a distant item close to you.";
2462 int weight = plev * 15;
2464 if (info) return info_weight(weight);
2468 if (!get_aim_dir(&dir)) return NULL;
2470 fetch(dir, weight, FALSE);
2477 if (name) return "ÀéΤ´ã";
2478 if (desc) return "¤½¤Î³¬Á´ÂΤò±Êµ×¤Ë¾È¤é¤·¡¢¥À¥ó¥¸¥ç¥óÆ⤹¤Ù¤Æ¤Î¥¢¥¤¥Æ¥à¤ò´¶ÃΤ¹¤ë¡£¤µ¤é¤Ë¡¢°ìÄê»þ´Ö¥Æ¥ì¥Ñ¥·¡¼Ç½ÎϤòÆÀ¤ë¡£";
2480 if (name) return "Clairvoyance";
2481 if (desc) return "Maps and lights whole dungeon level. Knows all objects location. And gives telepathy for a while.";
2488 if (info) return info_duration(base, sides);
2492 chg_virtue(V_KNOWLEDGE, 1);
2493 chg_virtue(V_ENLIGHTEN, 1);
2497 if (!p_ptr->telepathy)
2499 set_tim_esp(randint1(sides) + base, FALSE);
2507 if (name) return "̥λ¤Î»ëÀþ";
2508 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò̥λ¤¹¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
2510 if (name) return "Charm monsters";
2511 if (desc) return "Attempts to charm all monsters in sight.";
2515 int power = plev * 2;
2517 if (info) return info_power(power);
2521 charm_monsters(power);
2528 if (name) return "Ï£¶â½Ñ";
2529 if (desc) return "¥¢¥¤¥Æ¥à1¤Ä¤ò¤ª¶â¤ËÊѤ¨¤ë¡£";
2531 if (name) return "Alchemy";
2532 if (desc) return "Turns an item into 1/3 of its value in gold.";
2538 if (!alchemy()) return NULL;
2545 if (name) return "²øʪÄÉÊü";
2546 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
2548 if (name) return "Banishment";
2549 if (desc) return "Teleports all monsters in sight away unless resisted.";
2553 int power = plev * 4;
2555 if (info) return info_power(power);
2559 banish_monsters(power);
2566 if (name) return "̵½ý¤Îµå";
2567 if (desc) return "°ìÄê»þ´Ö¡¢¥À¥á¡¼¥¸¤ò¼õ¤±¤Ê¤¯¤Ê¤ë¥Ð¥ê¥¢¤òÄ¥¤ë¡£Àڤ줿½Ö´Ö¤Ë¾¯¤·¥¿¡¼¥ó¤ò¾ÃÈñ¤¹¤ë¤Î¤ÇÃí°Õ¡£";
2569 if (name) return "Globe of Invulnerability";
2570 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.";
2576 if (info) return info_duration(base, base);
2580 set_invuln(randint1(base) + base, FALSE);
2590 static cptr do_nature_spell(int spell, int mode)
2592 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
2593 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
2594 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
2595 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
2598 static const char s_dam[] = "»½ý:";
2599 static const char s_rng[] = "¼ÍÄø";
2601 static const char s_dam[] = "dam ";
2602 static const char s_rng[] = "rng ";
2606 int plev = p_ptr->lev;
2612 if (name) return "¥â¥ó¥¹¥¿¡¼´¶ÃÎ";
2613 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î¸«¤¨¤ë¥â¥ó¥¹¥¿¡¼¤ò´¶ÃΤ¹¤ë¡£";
2615 if (name) return "Detect Creatures";
2616 if (desc) return "Detects all monsters in your vicinity unless invisible.";
2620 int rad = DETECT_RAD_DEFAULT;
2622 if (info) return info_radius(rad);
2626 detect_monsters_normal(rad);
2633 if (name) return "°ðºÊ";
2634 if (desc) return "ÅÅ·â¤Îû¤¤¥Ó¡¼¥à¤òÊü¤Ä¡£";
2636 if (name) return "Lightning";
2637 if (desc) return "Fires a short beam of lightning.";
2641 int dice = 3 + (plev - 1) / 5;
2643 int range = plev / 6 + 2;
2645 if (info) return format("%s%dd%d %s%d", s_dam, dice, sides, s_rng, range);
2649 project_length = range;
2651 if (!get_aim_dir(&dir)) return NULL;
2653 fire_beam(GF_ELEC, dir, damroll(dice, sides));
2660 if (name) return "櫤ÈÈâ´¶ÃÎ";
2661 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î櫤ÈÈâ¤ò´¶ÃΤ¹¤ë¡£";
2663 if (name) return "Detect Doors and Traps";
2664 if (desc) return "Detects traps, doors, and stairs in your vicinity.";
2668 int rad = DETECT_RAD_DEFAULT;
2670 if (info) return info_radius(rad);
2674 detect_traps(rad, TRUE);
2683 if (name) return "¿©ÎÈÀ¸À®";
2684 if (desc) return "ËþÊ¢¤Ë¤Ê¤ë¡£";
2686 if (name) return "Produce Food";
2687 if (desc) return "Satisfies hunger.";
2693 object_type forge, *q_ptr = &forge;
2696 msg_print("¿©ÎÁ¤òÀ¸À®¤·¤¿¡£");
2698 msg_print("A food ration is produced.");
2701 /* Create the food ration */
2702 object_prep(q_ptr, lookup_kind(TV_FOOD, SV_FOOD_RATION));
2704 /* Drop the object from heaven */
2705 drop_near(q_ptr, -1, py, px);
2712 if (name) return "Æü¤Î¸÷";
2713 if (desc) return "¸÷¸»¤¬¾È¤é¤·¤Æ¤¤¤ëÈϰϤ«Éô²°Á´ÂΤò±Êµ×¤ËÌÀ¤ë¤¯¤¹¤ë¡£";
2715 if (name) return "Daylight";
2716 if (desc) return "Lights up nearby area and the inside of a room permanently.";
2721 int sides = plev / 2;
2722 int rad = (plev / 10) + 1;
2724 if (info) return info_damage(dice, sides, 0);
2728 lite_area(damroll(dice, sides), rad);
2730 if ((prace_is_(RACE_VAMPIRE) || (p_ptr->mimic_form == MIMIC_VAMPIRE)) && !p_ptr->resist_lite)
2733 msg_print("Æü¤Î¸÷¤¬¤¢¤Ê¤¿¤ÎÆùÂΤò¾Ç¤¬¤·¤¿¡ª");
2735 msg_print("The daylight scorches your flesh!");
2739 take_hit(DAMAGE_NOESCAPE, damroll(2, 2), "Æü¤Î¸÷", -1);
2741 take_hit(DAMAGE_NOESCAPE, damroll(2, 2), "daylight", -1);
2750 if (name) return "ưʪ½¬¤·";
2751 if (desc) return "ưʪ1ÂΤò̥λ¤¹¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
2753 if (name) return "Animal Taming";
2754 if (desc) return "Attempts to charm an animal.";
2760 if (info) return info_power(power);
2764 if (!get_aim_dir(&dir)) return NULL;
2766 charm_animal(dir, power);
2773 if (name) return "´Ä¶¤Ø¤ÎÂÑÀ";
2774 if (desc) return "°ìÄê»þ´Ö¡¢Î䵤¡¢±ê¡¢ÅÅ·â¤ËÂФ¹¤ëÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
2776 if (name) return "Resist Environment";
2777 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.";
2783 if (info) return info_duration(base, base);
2787 set_oppose_cold(randint1(base) + base, FALSE);
2788 set_oppose_fire(randint1(base) + base, FALSE);
2789 set_oppose_elec(randint1(base) + base, FALSE);
2796 if (name) return "½ý¤ÈÆǼ£ÎÅ";
2797 if (desc) return "²ø²æ¤òÁ´²÷¤µ¤»¡¢ÆǤòÂΤ«¤é´°Á´¤Ë¼è¤ê½ü¤¡¢ÂÎÎϤò¾¯¤·²óÉü¤µ¤»¤ë¡£";
2799 if (name) return "Cure Wounds & Poison";
2800 if (desc) return "Heals all cut and poison status. Heals HP a little.";
2807 if (info) return info_heal(dice, sides, 0);
2811 hp_player(damroll(dice, sides));
2820 if (name) return "´äÀÐÍϲò";
2821 if (desc) return "ÊɤòÍϤ«¤·¤Æ¾²¤Ë¤¹¤ë¡£";
2823 if (name) return "Stone to Mud";
2824 if (desc) return "Turns one rock square to mud.";
2832 if (info) return info_damage(dice, sides, base);
2836 if (!get_aim_dir(&dir)) return NULL;
2845 if (name) return "¥¢¥¤¥¹¡¦¥Ü¥ë¥È";
2846 if (desc) return "Î䵤¤Î¥Ü¥ë¥È¤â¤·¤¯¤Ï¥Ó¡¼¥à¤òÊü¤Ä¡£";
2848 if (name) return "Frost Bolt";
2849 if (desc) return "Fires a bolt or beam of cold.";
2853 int dice = 3 + (plev - 5) / 4;
2856 if (info) return info_damage(dice, sides, 0);
2860 if (!get_aim_dir(&dir)) return NULL;
2861 fire_bolt_or_beam(beam_chance() - 10, GF_COLD, dir, damroll(dice, sides));
2868 if (name) return "¼«Á³¤Î³ÐÀÃ";
2869 if (desc) return "¼þÊÕ¤ÎÃÏ·Á¤ò´¶ÃΤ·¡¢¶á¤¯¤Îæ«¡¢Èâ¡¢³¬ÃÊ¡¢Á´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò´¶ÃΤ¹¤ë¡£";
2871 if (name) return "Nature Awareness";
2872 if (desc) return "Maps nearby area. Detects all monsters, traps, doors and stairs.";
2876 int rad1 = DETECT_RAD_MAP;
2877 int rad2 = DETECT_RAD_DEFAULT;
2879 if (info) return info_radius(MAX(rad1, rad2));
2884 detect_traps(rad2, TRUE);
2886 detect_stairs(rad2);
2887 detect_monsters_normal(rad2);
2894 if (name) return "¥Õ¥¡¥¤¥¢¡¦¥Ü¥ë¥È";
2895 if (desc) return "²Ð±ê¤Î¥Ü¥ë¥È¤â¤·¤¯¤Ï¥Ó¡¼¥à¤òÊü¤Ä¡£";
2897 if (name) return "Fire Bolt";
2898 if (desc) return "Fires a bolt or beam of fire.";
2902 int dice = 5 + (plev - 5) / 4;
2905 if (info) return info_damage(dice, sides, 0);
2909 if (!get_aim_dir(&dir)) return NULL;
2910 fire_bolt_or_beam(beam_chance() - 10, GF_FIRE, dir, damroll(dice, sides));
2917 if (name) return "ÂÀÍÛ¸÷Àþ";
2918 if (desc) return "¸÷Àþ¤òÊü¤Ä¡£¸÷¤ê¤ò·ù¤¦¥â¥ó¥¹¥¿¡¼¤Ë¸ú²Ì¤¬¤¢¤ë¡£";
2920 if (name) return "Ray of Sunlight";
2921 if (desc) return "Fires a beam of light which damages to light-sensitive monsters.";
2928 if (info) return info_damage(dice, sides, 0);
2932 if (!get_aim_dir(&dir)) return NULL;
2934 msg_print("ÂÀÍÛ¸÷Àþ¤¬¸½¤ì¤¿¡£");
2936 msg_print("A line of sunlight appears.");
2946 if (name) return "¤«¤»";
2947 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò¸ºÂ®¤µ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
2949 if (name) return "Entangle";
2950 if (desc) return "Attempts to slow all monsters in sight.";
2956 if (info) return info_power(power);
2967 if (name) return "ưʪ¾¤´";
2968 if (desc) return "ưʪ¤ò1Âξ¤´¤¹¤ë¡£";
2970 if (name) return "Summon Animal";
2971 if (desc) return "Summons an animal.";
2977 if (!(summon_specific(-1, py, px, plev, SUMMON_ANIMAL_RANGER, (PM_ALLOW_GROUP | PM_FORCE_PET))))
2980 msg_print("ưʪ¤Ï¸½¤ì¤Ê¤«¤Ã¤¿¡£");
2982 msg_print("No animals arrive.");
2992 if (name) return "ÌôÁð¼£ÎÅ";
2993 if (desc) return "ÂÎÎϤòÂçÉý¤Ë²óÉü¤µ¤»¡¢Éé½ý¡¢Û¯Û°¾õÂÖ¡¢ÆǤ«¤éÁ´²÷¤¹¤ë¡£";
2995 if (name) return "Herbal Healing";
2996 if (desc) return "Heals HP greatly. And heals cut, stun and poison completely.";
3002 if (info) return info_heal(0, 0, heal);
3016 if (name) return "³¬ÃÊÀ¸À®";
3017 if (desc) return "¼«Ê¬¤Î¤¤¤ë°ÌÃ֤˳¬Ãʤòºî¤ë¡£";
3019 if (name) return "Stair Building";
3020 if (desc) return "Creates a stair which goes down or up.";
3033 if (name) return "È©Àв½";
3034 if (desc) return "°ìÄê»þ´Ö¡¢AC¤ò¾å¾º¤µ¤»¤ë¡£";
3036 if (name) return "Stone Skin";
3037 if (desc) return "Gives bonus to AC for a while.";
3044 if (info) return info_duration(base, sides);
3048 set_shield(randint1(sides) + base, FALSE);
3055 if (name) return "¿¿¡¦ÂÑÀ";
3056 if (desc) return "°ìÄê»þ´Ö¡¢»À¡¢ÅÅ·â¡¢±ê¡¢Î䵤¡¢ÆǤËÂФ¹¤ëÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
3058 if (name) return "Resistance True";
3059 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.";
3065 if (info) return info_duration(base, base);
3069 set_oppose_acid(randint1(base) + base, FALSE);
3070 set_oppose_elec(randint1(base) + base, FALSE);
3071 set_oppose_fire(randint1(base) + base, FALSE);
3072 set_oppose_cold(randint1(base) + base, FALSE);
3073 set_oppose_pois(randint1(base) + base, FALSE);
3080 if (name) return "¿¹ÎÓÁϤ";
3081 if (desc) return "¼þ°Ï¤ËÌÚ¤òºî¤ê½Ð¤¹¡£";
3083 if (name) return "Forest Creation";
3084 if (desc) return "Creates trees in all adjacent squares.";
3097 if (name) return "ưʪͧÏÂ";
3098 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Îưʪ¤ò̥λ¤¹¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
3100 if (name) return "Animal Friendship";
3101 if (desc) return "Attempts to charm all animals in sight.";
3105 int power = plev * 2;
3107 if (info) return info_power(power);
3111 charm_animals(power);
3118 if (name) return "»î¶âÀÐ";
3119 if (desc) return "¥¢¥¤¥Æ¥à¤Î»ý¤ÄǽÎϤò´°Á´¤ËÃΤ롣";
3121 if (name) return "Stone Tell";
3122 if (desc) return "*Identifies* an item.";
3128 if (!identify_fully(FALSE)) return NULL;
3135 if (name) return "ÀФÎÊÉ";
3136 if (desc) return "¼«Ê¬¤Î¼þ°Ï¤Ë²ÖÖ¾´ä¤ÎÊɤòºî¤ë¡£";
3138 if (name) return "Wall of Stone";
3139 if (desc) return "Creates granite walls in all adjacent squares.";
3152 if (name) return "Éå¿©ËÉ»ß";
3153 if (desc) return "¥¢¥¤¥Æ¥à¤ò»À¤Ç½ý¤Ä¤«¤Ê¤¤¤è¤¦²Ã¹©¤¹¤ë¡£";
3155 if (name) return "Protect from Corrosion";
3156 if (desc) return "Makes an equipment acid-proof.";
3162 if (!rustproof()) return NULL;
3169 if (name) return "ÃÏ¿Ì";
3170 if (desc) return "¼þ°Ï¤Î¥À¥ó¥¸¥ç¥ó¤òÍɤ餷¡¢ÊɤȾ²¤ò¥é¥ó¥À¥à¤ËÆþ¤ìÊѤ¨¤ë¡£";
3172 if (name) return "Earthquake";
3173 if (desc) return "Shakes dungeon structure, and results in random swapping of floors and walls.";
3179 if (info) return info_radius(rad);
3183 earthquake(py, px, rad);
3190 if (name) return "¥«¥Þ¥¤¥¿¥Á";
3191 if (desc) return "Á´Êý¸þ¤Ë¸þ¤«¤Ã¤Æ¹¶·â¤¹¤ë¡£";
3193 if (name) return "Cyclone";
3194 if (desc) return "Attacks all adjacent monsters.";
3202 monster_type *m_ptr;
3204 for (dir = 0; dir < 8; dir++)
3206 y = py + ddy_ddd[dir];
3207 x = px + ddx_ddd[dir];
3208 c_ptr = &cave[y][x];
3210 /* Get the monster */
3211 m_ptr = &m_list[c_ptr->m_idx];
3213 /* Hack -- attack monsters */
3214 if (c_ptr->m_idx && (m_ptr->ml || cave_have_flag_bold(y, x, FF_PROJECT)))
3223 if (name) return "¥Ö¥ê¥¶¡¼¥É";
3224 if (desc) return "µðÂç¤ÊÎ䵤¤Îµå¤òÊü¤Ä¡£";
3226 if (name) return "Blizzard";
3227 if (desc) return "Fires a huge ball of cold.";
3231 int dam = 70 + plev * 3 / 2;
3232 int rad = plev / 12 + 1;
3234 if (info) return info_damage(0, 0, dam);
3238 if (!get_aim_dir(&dir)) return NULL;
3240 fire_ball(GF_COLD, dir, dam, rad);
3247 if (name) return "°ðºÊÍò";
3248 if (desc) return "µðÂç¤ÊÅÅ·â¤Îµå¤òÊü¤Ä¡£";
3250 if (name) return "Lightning Storm";
3251 if (desc) return "Fires a huge electric ball.";
3255 int dam = 90 + plev * 3 / 2;
3256 int rad = plev / 12 + 1;
3258 if (info) return info_damage(0, 0, dam);
3262 if (!get_aim_dir(&dir)) return NULL;
3263 fire_ball(GF_ELEC, dir, dam, rad);
3271 if (name) return "±²Ä¬";
3272 if (desc) return "µðÂç¤Ê¿å¤Îµå¤òÊü¤Ä¡£";
3274 if (name) return "Whirlpool";
3275 if (desc) return "Fires a huge ball of water.";
3279 int dam = 100 + plev * 3 / 2;
3280 int rad = plev / 12 + 1;
3282 if (info) return info_damage(0, 0, dam);
3286 if (!get_aim_dir(&dir)) return NULL;
3287 fire_ball(GF_WATER, dir, dam, rad);
3294 if (name) return "ÍÛ¸÷¾¤´";
3295 if (desc) return "¼«Ê¬¤òÃæ¿´¤È¤·¤¿¸÷¤Îµå¤òȯÀ¸¤µ¤»¤ë¡£¤µ¤é¤Ë¡¢¤½¤Î³¬Á´ÂΤò±Êµ×¤Ë¾È¤é¤·¡¢¥À¥ó¥¸¥ç¥óÆ⤹¤Ù¤Æ¤Î¥¢¥¤¥Æ¥à¤ò´¶ÃΤ¹¤ë¡£";
3297 if (name) return "Call Sunlight";
3298 if (desc) return "Generates ball of light centered on you. Maps and lights whole dungeon level. Knows all objects location.";
3305 if (info) return info_damage(0, 0, dam/2);
3309 fire_ball(GF_LITE, 0, dam, rad);
3310 chg_virtue(V_KNOWLEDGE, 1);
3311 chg_virtue(V_ENLIGHTEN, 1);
3314 if ((prace_is_(RACE_VAMPIRE) || (p_ptr->mimic_form == MIMIC_VAMPIRE)) && !p_ptr->resist_lite)
3317 msg_print("Æü¸÷¤¬¤¢¤Ê¤¿¤ÎÆùÂΤò¾Ç¤¬¤·¤¿¡ª");
3319 msg_print("The sunlight scorches your flesh!");
3323 take_hit(DAMAGE_NOESCAPE, 50, "Æü¸÷", -1);
3325 take_hit(DAMAGE_NOESCAPE, 50, "sunlight", -1);
3334 if (name) return "ÀºÎî¤Î¿Ï";
3335 if (desc) return "Éð´ï¤Ë±ê¤«Î䵤¤Î°À¤ò¤Ä¤±¤ë¡£";
3337 if (name) return "Elemental Branding";
3338 if (desc) return "Makes current weapon fire or frost branded.";
3344 brand_weapon(randint0(2));
3351 if (name) return "¼«Á³¤Î¶¼°Ò";
3352 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¡¢ÃϿ̤òµ¯¤³¤·¡¢¼«Ê¬¤òÃæ¿´¤È¤·¤¿Ê¬²ò¤Îµå¤òȯÀ¸¤µ¤»¤ë¡£";
3354 if (name) return "Nature's Wrath";
3355 if (desc) return "Damages all monsters in sight. Makes quake. Generates disintegration ball centered on you.";
3359 int d_dam = 4 * plev;
3360 int b_dam = (100 + plev) * 2;
3361 int b_rad = 1 + plev / 12;
3362 int q_rad = 20 + plev / 2;
3364 if (info) return format("%s%d+%d", s_dam, d_dam, b_dam/2);
3368 dispel_monsters(d_dam);
3369 earthquake(py, px, q_rad);
3370 project(0, b_rad, py, px, b_dam, GF_DISINTEGRATE, PROJECT_KILL | PROJECT_ITEM, -1);
3380 static cptr do_chaos_spell(int spell, int mode)
3382 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
3383 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
3384 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
3385 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
3388 static const char s_dam[] = "»½ý:";
3389 static const char s_random[] = "¥é¥ó¥À¥à";
3391 static const char s_dam[] = "dam ";
3392 static const char s_random[] = "random";
3396 int plev = p_ptr->lev;
3402 if (name) return "¥Þ¥¸¥Ã¥¯¡¦¥ß¥µ¥¤¥ë";
3403 if (desc) return "¼å¤¤ËâË¡¤ÎÌð¤òÊü¤Ä¡£";
3405 if (name) return "Magic Missile";
3406 if (desc) return "Fires a weak bolt of magic.";
3410 int dice = 3 + ((plev - 1) / 5);
3413 if (info) return info_damage(dice, sides, 0);
3417 if (!get_aim_dir(&dir)) return NULL;
3419 fire_bolt_or_beam(beam_chance() - 10, GF_MISSILE, dir, damroll(dice, sides));
3426 if (name) return "¥È¥é¥Ã¥×/¥É¥¢Ç˲õ";
3427 if (desc) return "ÎÙÀܤ¹¤ë櫤ÈÈâ¤òÇ˲õ¤¹¤ë¡£";
3429 if (name) return "Trap / Door Destruction";
3430 if (desc) return "Destroys all traps in adjacent squares.";
3436 if (info) return info_radius(rad);
3440 destroy_doors_touch();
3447 if (name) return "Á®¸÷";
3448 if (desc) return "¸÷¸»¤¬¾È¤é¤·¤Æ¤¤¤ëÈϰϤ«Éô²°Á´ÂΤò±Êµ×¤ËÌÀ¤ë¤¯¤¹¤ë¡£";
3450 if (name) return "Flash of Light";
3451 if (desc) return "Lights up nearby area and the inside of a room permanently.";
3456 int sides = plev / 2;
3457 int rad = (plev / 10) + 1;
3459 if (info) return info_damage(dice, sides, 0);
3463 lite_area(damroll(dice, sides), rad);
3470 if (name) return "º®Íð¤Î¼ê";
3471 if (desc) return "Áê¼ê¤òº®Í𤵤»¤ë¹¶·â¤ò¤Ç¤¤ë¤è¤¦¤Ë¤¹¤ë¡£";
3473 if (name) return "Touch of Confusion";
3474 if (desc) return "Attempts to confuse the next monster that you hit.";
3480 if (!(p_ptr->special_attack & ATTACK_CONFUSE))
3483 msg_print("¤¢¤Ê¤¿¤Î¼ê¤Ï¸÷¤ê»Ï¤á¤¿¡£");
3485 msg_print("Your hands start glowing.");
3488 p_ptr->special_attack |= ATTACK_CONFUSE;
3489 p_ptr->redraw |= (PR_STATUS);
3497 if (name) return "ËâÎÏßÚÎö";
3498 if (desc) return "ËâË¡¤Îµå¤òÊü¤Ä¡£";
3500 if (name) return "Mana Burst";
3501 if (desc) return "Fires a ball of magic.";
3507 int rad = (plev < 30) ? 2 : 3;
3510 if (p_ptr->pclass == CLASS_MAGE ||
3511 p_ptr->pclass == CLASS_HIGH_MAGE ||
3512 p_ptr->pclass == CLASS_SORCERER)
3513 base = plev + plev / 2;
3515 base = plev + plev / 4;
3518 if (info) return info_damage(dice, sides, base);
3522 if (!get_aim_dir(&dir)) return NULL;
3524 fire_ball(GF_MISSILE, dir, damroll(dice, sides) + base, rad);
3527 * Shouldn't actually use GF_MANA, as
3528 * it will destroy all items on the
3537 if (name) return "¥Õ¥¡¥¤¥¢¡¦¥Ü¥ë¥È";
3538 if (desc) return "±ê¤Î¥Ü¥ë¥È¤â¤·¤¯¤Ï¥Ó¡¼¥à¤òÊü¤Ä¡£";
3540 if (name) return "Fire Bolt";
3541 if (desc) return "Fires a bolt or beam of fire.";
3545 int dice = 8 + (plev - 5) / 4;
3548 if (info) return info_damage(dice, sides, 0);
3552 if (!get_aim_dir(&dir)) return NULL;
3554 fire_bolt_or_beam(beam_chance(), GF_FIRE, dir, damroll(dice, sides));
3561 if (name) return "ÎϤηý";
3562 if (desc) return "¤´¤¯¾®¤µ¤Êʬ²ò¤Îµå¤òÊü¤Ä¡£";
3564 if (name) return "Fist of Force";
3565 if (desc) return "Fires a tiny ball of disintegration.";
3569 int dice = 8 + ((plev - 5) / 4);
3572 if (info) return info_damage(dice, sides, 0);
3576 if (!get_aim_dir(&dir)) return NULL;
3578 fire_ball(GF_DISINTEGRATE, dir,
3579 damroll(dice, sides), 0);
3586 if (name) return "¥Æ¥ì¥Ý¡¼¥È";
3587 if (desc) return "±óµ÷Î¥¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¤¹¤ë¡£";
3589 if (name) return "Teleport Self";
3590 if (desc) return "Teleport long distance.";
3594 int range = plev * 5;
3596 if (info) return info_range(range);
3600 teleport_player(range, FALSE);
3607 if (name) return "¥ï¥ó¥À¡¼";
3608 if (desc) return "¥â¥ó¥¹¥¿¡¼¤Ë¥é¥ó¥À¥à¤Ê¸ú²Ì¤òÍ¿¤¨¤ë¡£";
3610 if (name) return "Wonder";
3611 if (desc) return "Fires something with random effects.";
3615 if (info) return s_random;
3620 if (!get_aim_dir(&dir)) return NULL;
3629 if (name) return "¥«¥ª¥¹¡¦¥Ü¥ë¥È";
3630 if (desc) return "¥«¥ª¥¹¤Î¥Ü¥ë¥È¤â¤·¤¯¤Ï¥Ó¡¼¥à¤òÊü¤Ä¡£";
3632 if (name) return "Chaos Bolt";
3633 if (desc) return "Fires a bolt or ball of chaos.";
3637 int dice = 10 + (plev - 5) / 4;
3640 if (info) return info_damage(dice, sides, 0);
3644 if (!get_aim_dir(&dir)) return NULL;
3646 fire_bolt_or_beam(beam_chance(), GF_CHAOS, dir, damroll(dice, sides));
3653 if (name) return "¥½¥Ë¥Ã¥¯¡¦¥Ö¡¼¥à";
3654 if (desc) return "¼«Ê¬¤òÃæ¿´¤È¤·¤¿¹ì²»¤Îµå¤òȯÀ¸¤µ¤»¤ë¡£";
3656 if (name) return "Sonic Boom";
3657 if (desc) return "Generates a ball of sound centered on you.";
3661 int dam = 60 + plev;
3662 int rad = plev / 10 + 2;
3664 if (info) return info_damage(0, 0, dam/2);
3669 msg_print("¥É¡¼¥ó¡ªÉô²°¤¬Íɤ줿¡ª");
3671 msg_print("BOOM! Shake the room!");
3674 project(0, rad, py, px, dam, GF_SOUND, PROJECT_KILL | PROJECT_ITEM, -1);
3681 if (name) return "ÇËÌǤÎÌð";
3682 if (desc) return "½ã¿è¤ÊËâÎϤΥӡ¼¥à¤òÊü¤Ä¡£";
3684 if (name) return "Doom Bolt";
3685 if (desc) return "Fires a beam of pure mana.";
3689 int dice = 11 + (plev - 5) / 4;
3692 if (info) return info_damage(dice, sides, 0);
3696 if (!get_aim_dir(&dir)) return NULL;
3698 fire_beam(GF_MANA, dir, damroll(dice, sides));
3705 if (name) return "¥Õ¥¡¥¤¥¢¡¦¥Ü¡¼¥ë";
3706 if (desc) return "±ê¤Îµå¤òÊü¤Ä¡£";
3708 if (name) return "Fire Ball";
3709 if (desc) return "Fires a ball of fire.";
3713 int dam = plev + 55;
3716 if (info) return info_damage(0, 0, dam);
3720 if (!get_aim_dir(&dir)) return NULL;
3722 fire_ball(GF_FIRE, dir, dam, rad);
3729 if (name) return "¥Æ¥ì¥Ý¡¼¥È¡¦¥¢¥¦¥§¥¤";
3730 if (desc) return "¥â¥ó¥¹¥¿¡¼¤ò¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤ë¥Ó¡¼¥à¤òÊü¤Ä¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
3732 if (name) return "Teleport Other";
3733 if (desc) return "Teleports all monsters on the line away unless resisted.";
3739 if (info) return info_power(power);
3743 if (!get_aim_dir(&dir)) return NULL;
3745 fire_beam(GF_AWAY_ALL, dir, power);
3752 if (name) return "Ç˲õ¤Î¸ÀÍÕ";
3753 if (desc) return "¼þÊդΥ¢¥¤¥Æ¥à¡¢¥â¥ó¥¹¥¿¡¼¡¢ÃÏ·Á¤òÇ˲õ¤¹¤ë¡£";
3755 if (name) return "Word of Destruction";
3756 if (desc) return "Destroy everything in nearby area.";
3765 destroy_area(py, px, base + randint1(sides), FALSE);
3772 if (name) return "¥í¥°¥ë¥¹È¯Æ°";
3773 if (desc) return "µðÂç¤Ê¥«¥ª¥¹¤Îµå¤òÊü¤Ä¡£";
3775 if (name) return "Invoke Logrus";
3776 if (desc) return "Fires a huge ball of chaos.";
3780 int dam = plev * 2 + 99;
3783 if (info) return info_damage(0, 0, dam);
3787 if (!get_aim_dir(&dir)) return NULL;
3789 fire_ball(GF_CHAOS, dir, dam, rad);
3796 if (name) return "¾¼ÔÊÑÍÆ";
3797 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤòÊѿȤµ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
3799 if (name) return "Polymorph Other";
3800 if (desc) return "Attempts to polymorph a monster.";
3806 if (info) return info_power(power);
3810 if (!get_aim_dir(&dir)) return NULL;
3819 if (name) return "Ï¢º¿°ðºÊ";
3820 if (desc) return "Á´Êý¸þ¤ËÂФ·¤ÆÅÅ·â¤Î¥Ó¡¼¥à¤òÊü¤Ä¡£";
3822 if (name) return "Chain Lightning";
3823 if (desc) return "Fires lightning beams in all directions.";
3827 int dice = 5 + plev / 10;
3830 if (info) return info_damage(dice, sides, 0);
3834 for (dir = 0; dir <= 9; dir++)
3835 fire_beam(GF_ELEC, dir, damroll(dice, sides));
3842 if (name) return "ËâÎÏÉõÆþ";
3843 if (desc) return "¾ó/ËâË¡ËÀ¤Î½¼Å¶²ó¿ô¤òÁý¤ä¤¹¤«¡¢½¼Å¶Ãæ¤Î¥í¥Ã¥É¤Î½¼Å¶»þ´Ö¤ò¸º¤é¤¹¡£";
3845 if (name) return "Arcane Binding";
3846 if (desc) return "Recharges staffs, wands or rods.";
3852 if (info) return info_power(power);
3856 if (!recharge(power)) return NULL;
3863 if (name) return "¸¶»Òʬ²ò";
3864 if (desc) return "µðÂç¤Êʬ²ò¤Îµå¤òÊü¤Ä¡£";
3866 if (name) return "Disintegrate";
3867 if (desc) return "Fires a huge ball of disintegration.";
3871 int dam = plev + 70;
3872 int rad = 3 + plev / 40;
3874 if (info) return info_damage(0, 0, dam);
3878 if (!get_aim_dir(&dir)) return NULL;
3880 fire_ball(GF_DISINTEGRATE, dir, dam, rad);
3887 if (name) return "¸½¼ÂÊÑÍÆ";
3888 if (desc) return "¸½ºß¤Î³¬¤òºÆ¹½À®¤¹¤ë¡£";
3890 if (name) return "Alter Reality";
3891 if (desc) return "Recreates current dungeon level.";
3898 if (info) return info_delay(base, sides);
3909 if (name) return "¥Þ¥¸¥Ã¥¯¡¦¥í¥±¥Ã¥È";
3910 if (desc) return "¥í¥±¥Ã¥È¤òȯ¼Í¤¹¤ë¡£";
3912 if (name) return "Magic Rocket";
3913 if (desc) return "Fires a magic rocket.";
3917 int dam = 120 + plev * 2;
3920 if (info) return info_damage(0, 0, dam);
3924 if (!get_aim_dir(&dir)) return NULL;
3927 msg_print("¥í¥±¥Ã¥Èȯ¼Í¡ª");
3929 msg_print("You launch a rocket!");
3932 fire_rocket(GF_ROCKET, dir, dam, rad);
3939 if (name) return "º®Æ٤οÏ";
3940 if (desc) return "Éð´ï¤Ë¥«¥ª¥¹¤Î°À¤ò¤Ä¤±¤ë¡£";
3942 if (name) return "Chaos Branding";
3943 if (desc) return "Makes current weapon a Chaotic weapon.";
3956 if (name) return "°Ë⾤´";
3957 if (desc) return "°Ëâ¤ò1Âξ¤´¤¹¤ë¡£";
3959 if (name) return "Summon Demon";
3960 if (desc) return "Summons a demon.";
3967 bool pet = !one_in_(3);
3969 if (pet) mode |= PM_FORCE_PET;
3970 else mode |= PM_NO_PET;
3971 if (!(pet && (plev < 50))) mode |= PM_ALLOW_GROUP;
3973 if (summon_specific((pet ? -1 : 0), py, px, (plev * 3) / 2, SUMMON_DEMON, mode))
3976 msg_print("ⲫ¤Î°½¤¬½¼Ëþ¤·¤¿¡£");
3978 msg_print("The area fills with a stench of sulphur and brimstone.");
3984 msg_print("¡Ö¤´ÍѤǤ´¤¶¤¤¤Þ¤¹¤«¡¢¤´¼ç¿ÍÍÍ¡×");
3986 msg_print("'What is thy bidding... Master?'");
3992 msg_print("¡ÖÈܤ·¤¼Ô¤è¡¢²æ¤ÏÆò¤Î²¼Ëͤˤ¢¤é¤º¡ª ¤ªÁ°¤Îº²¤òĺ¤¯¤¾¡ª¡×");
3994 msg_print("'NON SERVIAM! Wretch! I shall feast on thy mortal soul!'");
4004 if (name) return "½ÅÎϸ÷Àþ";
4005 if (desc) return "½ÅÎϤΥӡ¼¥à¤òÊü¤Ä¡£";
4007 if (name) return "Beam of Gravity";
4008 if (desc) return "Fires a beam of gravity.";
4012 int dice = 9 + (plev - 5) / 4;
4015 if (info) return info_damage(dice, sides, 0);
4019 if (!get_aim_dir(&dir)) return NULL;
4021 fire_beam(GF_GRAVITY, dir, damroll(dice, sides));
4028 if (name) return "ήÀ±·²";
4029 if (desc) return "¼«Ê¬¤Î¼þÊÕ¤Ëð¨ÀФòÍî¤È¤¹¡£";
4031 if (name) return "Meteor Swarm";
4032 if (desc) return "Makes meteor balls fall down to nearby random locations.";
4039 if (info) return info_multi_damage(dam);
4043 cast_meteor(dam, rad);
4050 if (name) return "±ë¤Î°ì·â";
4051 if (desc) return "¼«Ê¬¤òÃæ¿´¤È¤·¤¿Ä¶µðÂç¤Ê±ê¤Îµå¤òȯÀ¸¤µ¤»¤ë¡£";
4053 if (name) return "Flame Strike";
4054 if (desc) return "Generate a huge ball of fire centered on you.";
4058 int dam = 300 + 3 * plev;
4061 if (info) return info_damage(0, 0, dam/2);
4065 fire_ball(GF_FIRE, 0, dam, rad);
4072 if (name) return "º®ÆÙ¾¤Íè";
4073 if (desc) return "¥é¥ó¥À¥à¤Ê°À¤Îµå¤ä¥Ó¡¼¥à¤òȯÀ¸¤µ¤»¤ë¡£";
4075 if (name) return "Call Chaos";
4076 if (desc) return "Generate random kind of balls or beams.";
4080 if (info) return format("%s150 / 250", s_dam);
4091 if (name) return "¼«¸ÊÊÑÍÆ";
4092 if (desc) return "¼«Ê¬¤òÊѿȤµ¤»¤è¤¦¤È¤¹¤ë¡£";
4094 if (name) return "Polymorph Self";
4095 if (desc) return "Polymorphs yourself.";
4102 if (!get_check("ÊѿȤ·¤Þ¤¹¡£¤è¤í¤·¤¤¤Ç¤¹¤«¡©")) return NULL;
4104 if (!get_check("You will polymorph yourself. Are you sure? ")) return NULL;
4113 if (name) return "ËâÎϤÎÍò";
4114 if (desc) return "Èó¾ï¤Ë¶¯ÎϤǵðÂç¤Ê½ã¿è¤ÊËâÎϤεå¤òÊü¤Ä¡£";
4116 if (name) return "Mana Storm";
4117 if (desc) return "Fires an extremely powerful huge ball of pure mana.";
4121 int dam = 300 + plev * 4;
4124 if (info) return info_damage(0, 0, dam);
4128 if (!get_aim_dir(&dir)) return NULL;
4130 fire_ball(GF_MANA, dir, dam, rad);
4137 if (name) return "¥í¥°¥ë¥¹¤Î¥Ö¥ì¥¹";
4138 if (desc) return "Èó¾ï¤Ë¶¯ÎϤʥ«¥ª¥¹¤Îµå¤òÊü¤Ä¡£";
4140 if (name) return "Breathe Logrus";
4141 if (desc) return "Fires an extremely powerful ball of chaos.";
4145 int dam = p_ptr->chp;
4148 if (info) return info_damage(0, 0, dam);
4152 if (!get_aim_dir(&dir)) return NULL;
4154 fire_ball(GF_CHAOS, dir, dam, rad);
4161 if (name) return "µõ̵¾¤Íè";
4162 if (desc) return "¼«Ê¬¤Ë¼þ°Ï¤Ë¸þ¤«¤Ã¤Æ¡¢¥í¥±¥Ã¥È¡¢½ã¿è¤ÊËâÎϤε塢Êü¼ÍÀÇÑ´þʪ¤Îµå¤òÊü¤Ä¡£¤¿¤À¤·¡¢ÊɤËÎÙÀܤ·¤Æ»ÈÍѤ¹¤ë¤È¹ÈϰϤòÇ˲õ¤¹¤ë¡£";
4164 if (name) return "Call the Void";
4165 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.";
4169 if (info) return format("%s3 * 175", s_dam);
4183 static cptr do_death_spell(int spell, int mode)
4185 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
4186 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
4187 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
4188 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
4191 static const char s_dam[] = "»½ý:";
4192 static const char s_random[] = "¥é¥ó¥À¥à";
4194 static const char s_dam[] = "dam ";
4195 static const char s_random[] = "random";
4199 int plev = p_ptr->lev;
4205 if (name) return "̵À¸Ì¿´¶ÃÎ";
4206 if (desc) return "¶á¤¯¤ÎÀ¸Ì¿¤Î¤Ê¤¤¥â¥ó¥¹¥¿¡¼¤ò´¶ÃΤ¹¤ë¡£";
4208 if (name) return "Detect Unlife";
4209 if (desc) return "Detects all nonliving monsters in your vicinity.";
4213 int rad = DETECT_RAD_DEFAULT;
4215 if (info) return info_radius(rad);
4219 detect_monsters_nonliving(rad);
4226 if (name) return "¼ö»¦ÃÆ";
4227 if (desc) return "¤´¤¯¾®¤µ¤Ê¼Ù°¤ÊÎϤò»ý¤Ä¥Ü¡¼¥ë¤òÊü¤Ä¡£Á±Îɤʥâ¥ó¥¹¥¿¡¼¤Ë¤ÏÂ礤ʥÀ¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
4229 if (name) return "Malediction";
4230 if (desc) return "Fires a tiny ball of evil power which hurts good monsters greatly.";
4234 int dice = 3 + (plev - 1) / 5;
4238 if (info) return info_damage(dice, sides, 0);
4242 if (!get_aim_dir(&dir)) return NULL;
4245 * A radius-0 ball may (1) be aimed at
4246 * objects etc., and will affect them;
4247 * (2) may be aimed at ANY visible
4248 * monster, unlike a 'bolt' which must
4249 * travel to the monster.
4252 fire_ball(GF_HELL_FIRE, dir, damroll(dice, sides), rad);
4256 /* Special effect first */
4257 int effect = randint1(1000);
4260 fire_ball_hide(GF_DEATH_RAY, dir, plev * 200, 0);
4261 else if (effect < 500)
4262 fire_ball_hide(GF_TURN_ALL, dir, plev, 0);
4263 else if (effect < 800)
4264 fire_ball_hide(GF_OLD_CONF, dir, plev, 0);
4266 fire_ball_hide(GF_STUN, dir, plev, 0);
4274 if (name) return "¼Ù°´¶ÃÎ";
4275 if (desc) return "¶á¤¯¤Î¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ò´¶ÃΤ¹¤ë¡£";
4277 if (name) return "Detect Evil";
4278 if (desc) return "Detects all evil monsters in your vicinity.";
4282 int rad = DETECT_RAD_DEFAULT;
4284 if (info) return info_radius(rad);
4288 detect_monsters_evil(rad);
4295 if (name) return "°½±À";
4296 if (desc) return "ÆǤεå¤òÊü¤Ä¡£";
4298 if (name) return "Stinking Cloud";
4299 if (desc) return "Fires a ball of poison.";
4303 int dam = 10 + plev / 2;
4306 if (info) return info_damage(0, 0, dam);
4310 if (!get_aim_dir(&dir)) return NULL;
4312 fire_ball(GF_POIS, dir, dam, rad);
4319 if (name) return "¹õ¤¤Ì²¤ê";
4320 if (desc) return "1ÂΤΥâ¥ó¥¹¥¿¡¼¤ò̲¤é¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
4322 if (name) return "Black Sleep";
4323 if (desc) return "Attempts to sleep a monster.";
4329 if (info) return info_power(power);
4333 if (!get_aim_dir(&dir)) return NULL;
4342 if (name) return "ÂÑÆÇ";
4343 if (desc) return "°ìÄê»þ´Ö¡¢ÆǤؤÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
4345 if (name) return "Resist Poison";
4346 if (desc) return "Gives resistance to poison. This resistance can be added to which from equipment for more powerful resistance.";
4352 if (info) return info_duration(base, base);
4356 set_oppose_pois(randint1(base) + base, FALSE);
4363 if (name) return "¶²¹²";
4364 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤò¶²Éݤµ¤»¡¢Û¯Û°¤µ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
4366 if (name) return "Horrify";
4367 if (desc) return "Attempts to scare and stun a monster.";
4373 if (info) return info_power(power);
4377 if (!get_aim_dir(&dir)) return NULL;
4379 fear_monster(dir, power);
4380 stun_monster(dir, power);
4387 if (name) return "¥¢¥ó¥Ç¥Ã¥É½¾Â°";
4388 if (desc) return "¥¢¥ó¥Ç¥Ã¥É1ÂΤò̥λ¤¹¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
4390 if (name) return "Enslave Undead";
4391 if (desc) return "Attempts to charm an undead monster.";
4397 if (info) return info_power(power);
4401 if (!get_aim_dir(&dir)) return NULL;
4403 control_one_undead(dir, power);
4410 if (name) return "¥¨¥ó¥È¥í¥Ô¡¼¤Îµå";
4411 if (desc) return "À¸Ì¿¤Î¤¢¤ë¼Ô¤Ë¸ú²Ì¤Î¤¢¤ëµå¤òÊü¤Ä¡£";
4413 if (name) return "Orb of Entropy";
4414 if (desc) return "Fires a ball which damages living monsters.";
4420 int rad = (plev < 30) ? 2 : 3;
4423 if (p_ptr->pclass == CLASS_MAGE ||
4424 p_ptr->pclass == CLASS_HIGH_MAGE ||
4425 p_ptr->pclass == CLASS_SORCERER)
4426 base = plev + plev / 2;
4428 base = plev + plev / 4;
4431 if (info) return info_damage(dice, sides, base);
4435 if (!get_aim_dir(&dir)) return NULL;
4437 fire_ball(GF_OLD_DRAIN, dir, damroll(dice, dice) + base, rad);
4444 if (name) return "ÃϹö¤ÎÌð";
4445 if (desc) return "ÃϹö¤Î¥Ü¥ë¥È¤â¤·¤¯¤Ï¥Ó¡¼¥à¤òÊü¤Ä¡£";
4447 if (name) return "Nether Bolt";
4448 if (desc) return "Fires a bolt or beam of nether.";
4452 int dice = 8 + (plev - 5) / 4;
4455 if (info) return info_damage(dice, sides, 0);
4459 if (!get_aim_dir(&dir)) return NULL;
4461 fire_bolt_or_beam(beam_chance(), GF_NETHER, dir, damroll(dice, sides));
4468 if (name) return "»¦Ù¤±À";
4469 if (desc) return "¼«Ê¬¤òÃæ¿´¤È¤·¤¿ÆǤεå¤òȯÀ¸¤µ¤»¤ë¡£";
4471 if (name) return "Cloud kill";
4472 if (desc) return "Generate a ball of poison centered on you.";
4476 int dam = (30 + plev) * 2;
4477 int rad = plev / 10 + 2;
4479 if (info) return info_damage(0, 0, dam/2);
4483 project(0, rad, py, px, dam, GF_POIS, PROJECT_KILL | PROJECT_ITEM, -1);
4490 if (name) return "¥â¥ó¥¹¥¿¡¼¾ÃÌÇ";
4491 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤò¾Ã¤·µî¤ë¡£·Ð¸³Ãͤ䥢¥¤¥Æ¥à¤Ï¼ê¤ËÆþ¤é¤Ê¤¤¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
4493 if (name) return "Genocide One";
4494 if (desc) return "Attempts to vanish a monster.";
4498 int power = plev + 50;
4500 if (info) return info_power(power);
4504 if (!get_aim_dir(&dir)) return NULL;
4506 fire_ball_hide(GF_GENOCIDE, dir, power, 0);
4513 if (name) return "ÆǤοÏ";
4514 if (desc) return "Éð´ï¤ËÆǤΰÀ¤ò¤Ä¤±¤ë¡£";
4516 if (name) return "Poison Branding";
4517 if (desc) return "Makes current weapon poison branded.";
4530 if (name) return "µÛ·ì¥É¥ì¥¤¥ó";
4531 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤ«¤éÀ¸Ì¿ÎϤòµÛ¤¤¤È¤ë¡£µÛ¤¤¤È¤Ã¤¿À¸Ì¿ÎϤˤè¤Ã¤ÆËþÊ¢ÅÙ¤¬¾å¤¬¤ë¡£";
4533 if (name) return "Vampiric Drain";
4534 if (desc) return "Absorbs some HP from a monster and gives them to you. You will also gain nutritional sustenance from this.";
4539 int sides = plev * 2;
4540 int base = plev * 2;
4542 if (info) return info_damage(dice, sides, base);
4546 int dam = base + damroll(dice, sides);
4548 if (!get_aim_dir(&dir)) return NULL;
4550 if (drain_life(dir, dam))
4552 chg_virtue(V_SACRIFICE, -1);
4553 chg_virtue(V_VITALITY, -1);
4558 * Gain nutritional sustenance:
4561 * A Food ration gives 5000
4562 * food points (by contrast)
4563 * Don't ever get more than
4564 * "Full" this way But if we
4565 * ARE Gorged, it won't cure
4568 dam = p_ptr->food + MIN(5000, 100 * dam);
4570 /* Not gorged already */
4571 if (p_ptr->food < PY_FOOD_MAX)
4572 set_food(dam >= PY_FOOD_MAX ? PY_FOOD_MAX - 1 : dam);
4580 if (name) return "È¿º²¤Î½Ñ";
4581 if (desc) return "¼þ°Ï¤Î»àÂΤä¹ü¤òÀ¸¤ÊÖ¤¹¡£";
4583 if (name) return "Animate dead";
4584 if (desc) return "Resurrects nearby corpse and skeletons. And makes these your pets.";
4590 animate_dead(0, py, px);
4597 if (name) return "Ëõ»¦";
4598 if (desc) return "»ØÄꤷ¤¿Ê¸»ú¤Î¥â¥ó¥¹¥¿¡¼¤ò¸½ºß¤Î³¬¤«¤é¾Ã¤·µî¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
4600 if (name) return "Genocide";
4601 if (desc) return "Eliminates an entire class of monster, exhausting you. Powerful or unique monsters may resist.";
4605 int power = plev+50;
4607 if (info) return info_power(power);
4611 symbol_genocide(power, TRUE);
4618 if (name) return "¶¸Àï»Î²½";
4619 if (desc) return "¶¸Àï»Î²½¤·¡¢¶²Éݤò½üµî¤¹¤ë¡£";
4621 if (name) return "Berserk";
4622 if (desc) return "Gives bonus to hit and HP, immunity to fear for a while. But decreases AC.";
4628 if (info) return info_duration(base, base);
4632 set_shero(randint1(base) + base, FALSE);
4641 if (name) return "°Î´";
4642 if (desc) return "¥é¥ó¥À¥à¤ÇÍÍ¡¹¤Ê¸ú²Ì¤¬µ¯¤³¤ë¡£";
4644 if (name) return "Invoke Spirits";
4645 if (desc) return "Causes random effects.";
4649 if (info) return s_random;
4653 if (!get_aim_dir(&dir)) return NULL;
4655 cast_invoke_spirits(dir);
4662 if (name) return "°Å¹õ¤ÎÌð";
4663 if (desc) return "°Å¹õ¤Î¥Ü¥ë¥È¤â¤·¤¯¤Ï¥Ó¡¼¥à¤òÊü¤Ä¡£";
4665 if (name) return "Dark Bolt";
4666 if (desc) return "Fires a bolt or beam of darkness.";
4670 int dice = 4 + (plev - 5) / 4;
4673 if (info) return info_damage(dice, sides, 0);
4677 if (!get_aim_dir(&dir)) return NULL;
4679 fire_bolt_or_beam(beam_chance(), GF_DARK, dir, damroll(dice, sides));
4686 if (name) return "¶¸ÍðÀï»Î";
4687 if (desc) return "¶¸Àï»Î²½¤·¡¢¶²Éݤò½üµî¤·¡¢²Ã®¤¹¤ë¡£";
4689 if (name) return "Battle Frenzy";
4690 if (desc) return "Gives another bonus to hit and HP, immunity to fear for a while. Hastes you. But decreases AC.";
4695 int sp_base = plev / 2;
4696 int sp_sides = 20 + plev / 2;
4698 if (info) return info_duration(b_base, b_base);
4702 set_shero(randint1(25) + 25, FALSE);
4705 set_fast(randint1(sp_sides) + sp_base, FALSE);
4712 if (name) return "µÛ·ì¤Î¿Ï";
4713 if (desc) return "Éð´ï¤ËµÛ·ì¤Î°À¤ò¤Ä¤±¤ë¡£";
4715 if (name) return "Vampiric Branding";
4716 if (desc) return "Makes current weapon Vampiric.";
4729 if (name) return "¿¿¡¦µÛ·ì";
4730 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤ«¤éÀ¸Ì¿ÎϤòµÛ¤¤¤È¤ë¡£µÛ¤¤¤È¤Ã¤¿À¸Ì¿ÎϤˤè¤Ã¤ÆÂÎÎϤ¬²óÉü¤¹¤ë¡£";
4732 if (name) return "Vampirism True";
4733 if (desc) return "Fires 3 bolts. Each of the bolts absorbs some HP from a monster and gives them to you.";
4739 if (info) return format("%s3*%d", s_dam, dam);
4745 if (!get_aim_dir(&dir)) return NULL;
4747 chg_virtue(V_SACRIFICE, -1);
4748 chg_virtue(V_VITALITY, -1);
4750 for (i = 0; i < 3; i++)
4752 if (drain_life(dir, dam))
4761 if (name) return "»à¤Î¸Àº²";
4762 if (desc) return "»ë³¦Æâ¤ÎÀ¸Ì¿¤Î¤¢¤ë¥â¥ó¥¹¥¿¡¼¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
4764 if (name) return "Nether Wave";
4765 if (desc) return "Damages all living monsters in sight.";
4769 int sides = plev * 3;
4771 if (info) return info_damage(1, sides, 0);
4775 dispel_living(randint1(sides));
4782 if (name) return "°Å¹õ¤ÎÍò";
4783 if (desc) return "µðÂç¤Ê°Å¹õ¤Îµå¤òÊü¤Ä¡£";
4785 if (name) return "Darkness Storm";
4786 if (desc) return "Fires a huge ball of darkness.";
4790 int dam = 100 + plev * 2;
4793 if (info) return info_damage(0, 0, dam);
4797 if (!get_aim_dir(&dir)) return NULL;
4799 fire_ball(GF_DARK, dir, dam, rad);
4806 if (name) return "»à¤Î¸÷Àþ";
4807 if (desc) return "»à¤Î¸÷Àþ¤òÊü¤Ä¡£";
4809 if (name) return "Death Ray";
4810 if (desc) return "Fires a beam of death.";
4816 if (!get_aim_dir(&dir)) return NULL;
4818 death_ray(dir, plev);
4825 if (name) return "»à¼Ô¾¤´";
4826 if (desc) return "1ÂΤΥ¢¥ó¥Ç¥Ã¥É¤ò¾¤´¤¹¤ë¡£";
4828 if (name) return "Raise the Dead";
4829 if (desc) return "Summons an undead monster.";
4836 bool pet = one_in_(3);
4839 type = (plev > 47 ? SUMMON_HI_UNDEAD : SUMMON_UNDEAD);
4841 if (!pet || (pet && (plev > 24) && one_in_(3)))
4842 mode |= PM_ALLOW_GROUP;
4844 if (pet) mode |= PM_FORCE_PET;
4845 else mode |= (PM_ALLOW_UNIQUE | PM_NO_PET);
4847 if (summon_specific((pet ? -1 : 0), py, px, (plev * 3) / 2, type, mode))
4850 msg_print("Î䤿¤¤É÷¤¬¤¢¤Ê¤¿¤Î¼þ¤ê¤Ë¿á¤»Ï¤á¤¿¡£¤½¤ì¤ÏÉåÇÔ½¤ò±¿¤ó¤Ç¤¤¤ë...");
4852 msg_print("Cold winds begin to blow around you, carrying with them the stench of decay...");
4859 msg_print("¸Å¤¨¤Î»à¤»¤ë¼Ô¶¦¤¬¤¢¤Ê¤¿¤Ë»Å¤¨¤ë¤¿¤áÅÚ¤«¤éᴤä¿¡ª");
4861 msg_print("Ancient, long-dead forms arise from the ground to serve you!");
4867 msg_print("»à¼Ô¤¬á´¤Ã¤¿¡£Ì²¤ê¤ò˸¤²¤ë¤¢¤Ê¤¿¤òȳ¤¹¤ë¤¿¤á¤Ë¡ª");
4869 msg_print("'The dead arise... to punish you for disturbing them!'");
4873 chg_virtue(V_UNLIFE, 1);
4881 if (name) return "»à¼Ô¤ÎÈëÅÁ";
4882 if (desc) return "¥¢¥¤¥Æ¥à¤ò1¤Ä¼±Ê̤¹¤ë¡£¥ì¥Ù¥ë¤¬¹â¤¤¤È¥¢¥¤¥Æ¥à¤ÎǽÎϤò´°Á´¤ËÃΤ뤳¤È¤¬¤Ç¤¤ë¡£";
4884 if (name) return "Esoteria";
4885 if (desc) return "Identifies an item. Or *identifies* an item at higher level.";
4891 if (randint1(50) > plev)
4893 if (!ident_spell(FALSE)) return NULL;
4897 if (!identify_fully(FALSE)) return NULL;
4905 if (name) return "µÛ·ìµ´ÊѲ½";
4906 if (desc) return "°ìÄê»þ´Ö¡¢µÛ·ìµ´¤ËÊѲ½¤¹¤ë¡£ÊѲ½¤·¤Æ¤¤¤ë´Ö¤ÏËÜÍè¤Î¼ï²¤ÎǽÎϤò¼º¤¤¡¢Âå¤ï¤ê¤ËµÛ·ìµ´¤È¤·¤Æ¤ÎǽÎϤòÆÀ¤ë¡£";
4908 if (name) return "Polymorph Vampire";
4909 if (desc) return "Mimic a vampire for a while. Loses abilities of original race and gets abilities as a vampire.";
4913 int base = 10 + plev / 2;
4915 if (info) return info_duration(base, base);
4919 set_mimic(base + randint1(base), MIMIC_VAMPIRE, FALSE);
4926 if (name) return "À¸Ì¿ÎÏÉü³è";
4927 if (desc) return "¼º¤Ã¤¿·Ð¸³Ãͤò²óÉü¤¹¤ë¡£";
4929 if (name) return "Restore Life";
4930 if (desc) return "Restore lost experience.";
4943 if (name) return "¼þÊÕËõ»¦";
4944 if (desc) return "¼«Ê¬¤Î¼þ°Ï¤Ë¤¤¤ë¥â¥ó¥¹¥¿¡¼¤ò¸½ºß¤Î³¬¤«¤é¾Ã¤·µî¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
4946 if (name) return "Mass Genocide";
4947 if (desc) return "Eliminates all nearby monsters, exhausting you. Powerful or unique monsters may be able to resist.";
4951 int power = plev + 50;
4953 if (info) return info_power(power);
4957 mass_genocide(power, TRUE);
4964 if (name) return "ÃϹö¤Î¹å²Ð";
4965 if (desc) return "¼Ù°¤ÊÎϤò»ý¤ÄÊõ¼î¤òÊü¤Ä¡£Á±Îɤʥâ¥ó¥¹¥¿¡¼¤Ë¤ÏÂ礤ʥÀ¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
4967 if (name) return "Hellfire";
4968 if (desc) return "Fires a powerful ball of evil power. Hurts good monsters greatly.";
4975 if (info) return info_damage(0, 0, dam);
4979 if (!get_aim_dir(&dir)) return NULL;
4981 fire_ball(GF_HELL_FIRE, dir, dam, rad);
4983 take_hit(DAMAGE_USELIFE, 20 + randint1(30), "ÃϹö¤Î¹å²Ð¤Î¼öʸ¤ò¾§¤¨¤¿ÈèÏ«", -1);
4985 take_hit(DAMAGE_USELIFE, 20 + randint1(30), "the strain of casting Hellfire", -1);
4993 if (name) return "Í©Âβ½";
4994 if (desc) return "°ìÄê»þ´Ö¡¢ÊɤòÄ̤êÈ´¤±¤ë¤³¤È¤¬¤Ç¤¼õ¤±¤ë¥À¥á¡¼¥¸¤¬·Ú¸º¤µ¤ì¤ëÍ©ÂΤξõÂÖ¤ËÊѿȤ¹¤ë¡£";
4996 if (name) return "Wraithform";
4997 if (desc) return "Becomes wraith form which gives ability to pass walls and makes all damages half.";
5001 int base = plev / 2;
5003 if (info) return info_duration(base, base);
5007 set_wraith_form(randint1(base) + base, FALSE);
5017 static cptr do_trump_spell(int spell, int mode)
5019 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
5020 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
5021 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
5022 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
5023 bool fail = (mode == SPELL_FAIL) ? TRUE : FALSE;
5026 static const char s_random[] = "¥é¥ó¥À¥à";
5028 static const char s_random[] = "random";
5032 int plev = p_ptr->lev;
5038 if (name) return "¥·¥ç¡¼¥È¡¦¥Æ¥ì¥Ý¡¼¥È";
5039 if (desc) return "¶áµ÷Î¥¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¤¹¤ë¡£";
5041 if (name) return "Phase Door";
5042 if (desc) return "Teleport short distance.";
5048 if (info) return info_range(range);
5052 teleport_player(range, FALSE);
5059 if (name) return "ÃØéá¤Î¥«¡¼¥É";
5060 if (desc) return "ÃØéá¤ò¾¤´¤¹¤ë¡£";
5062 if (name) return "Trump Spiders";
5063 if (desc) return "Summons spiders.";
5070 msg_print("¤¢¤Ê¤¿¤ÏÃØéá¤Î¥«¡¼¥É¤Ë½¸Ã椹¤ë...");
5072 msg_print("You concentrate on the trump of an spider...");
5075 if (trump_summoning(1, !fail, py, px, 0, SUMMON_SPIDER, PM_ALLOW_GROUP))
5080 msg_print("¾¤´¤µ¤ì¤¿ÃØéá¤ÏÅܤäƤ¤¤ë¡ª");
5082 msg_print("The summoned spiders get angry!");
5092 if (name) return "¥·¥ã¥Ã¥Õ¥ë";
5093 if (desc) return "¥«¡¼¥É¤ÎÀꤤ¤ò¤¹¤ë¡£";
5095 if (name) return "Shuffle";
5096 if (desc) return "Causes random effects.";
5100 if (info) return s_random;
5111 if (name) return "¥Õ¥í¥¢¡¦¥ê¥»¥Ã¥È";
5112 if (desc) return "ºÇ¿¼³¬¤òÊѹ¹¤¹¤ë¡£";
5114 if (name) return "Reset Recall";
5115 if (desc) return "Resets the 'deepest' level for recall spell.";
5121 if (!reset_recall()) return NULL;
5128 if (name) return "¥Æ¥ì¥Ý¡¼¥È";
5129 if (desc) return "±óµ÷Î¥¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¤¹¤ë¡£";
5131 if (name) return "Teleport";
5132 if (desc) return "Teleport long distance.";
5136 int range = plev * 4;
5138 if (info) return info_range(range);
5142 teleport_player(range, FALSE);
5149 if (name) return "´¶ÃΤΥ«¡¼¥É";
5150 if (desc) return "°ìÄê»þ´Ö¡¢¥Æ¥ì¥Ñ¥·¡¼Ç½ÎϤòÆÀ¤ë¡£";
5152 if (name) return "Trump Spying";
5153 if (desc) return "Gives telepathy for a while.";
5160 if (info) return info_duration(base, sides);
5164 set_tim_esp(randint1(sides) + base, FALSE);
5171 if (name) return "¥Æ¥ì¥Ý¡¼¥È¡¦¥â¥ó¥¹¥¿¡¼";
5172 if (desc) return "¥â¥ó¥¹¥¿¡¼¤ò¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤ë¥Ó¡¼¥à¤òÊü¤Ä¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
5174 if (name) return "Teleport Away";
5175 if (desc) return "Teleports all monsters on the line away unless resisted.";
5181 if (info) return info_power(power);
5185 if (!get_aim_dir(&dir)) return NULL;
5187 fire_beam(GF_AWAY_ALL, dir, power);
5194 if (name) return "ưʪ¤Î¥«¡¼¥É";
5195 if (desc) return "1ÂΤÎưʪ¤ò¾¤´¤¹¤ë¡£";
5197 if (name) return "Trump Animals";
5198 if (desc) return "Summons an animal.";
5204 int type = (!fail ? SUMMON_ANIMAL_RANGER : SUMMON_ANIMAL);
5207 msg_print("¤¢¤Ê¤¿¤Ïưʪ¤Î¥«¡¼¥É¤Ë½¸Ã椹¤ë...");
5209 msg_print("You concentrate on the trump of an animal...");
5212 if (trump_summoning(1, !fail, py, px, 0, type, 0L))
5217 msg_print("¾¤´¤µ¤ì¤¿Æ°Êª¤ÏÅܤäƤ¤¤ë¡ª");
5219 msg_print("The summoned animal gets angry!");
5229 if (name) return "°ÜÆ°¤Î¥«¡¼¥É";
5230 if (desc) return "¥¢¥¤¥Æ¥à¤ò¼«Ê¬¤Î¸µ¤Ø°ÜÆ°¤µ¤»¤ë¡£";
5232 if (name) return "Trump Reach";
5233 if (desc) return "Pulls a distant item close to you.";
5237 int weight = plev * 15;
5239 if (info) return info_weight(weight);
5243 if (!get_aim_dir(&dir)) return NULL;
5245 fetch(dir, weight, FALSE);
5252 if (name) return "¥«¥ß¥«¥¼¤Î¥«¡¼¥É";
5253 if (desc) return "Ê£¿ô¤ÎÇúȯ¤¹¤ë¥â¥ó¥¹¥¿¡¼¤ò¾¤´¤¹¤ë¡£";
5255 if (name) return "Trump Kamikaze";
5256 if (desc) return "Summons monsters which explode by itself.";
5267 if (!target_set(TARGET_KILL)) return NULL;
5273 /* Summons near player when failed */
5278 if (p_ptr->pclass == CLASS_BEASTMASTER)
5279 type = SUMMON_KAMIKAZE_LIVING;
5281 type = SUMMON_KAMIKAZE;
5284 msg_print("¤¢¤Ê¤¿¤Ï¥«¥ß¥«¥¼¤Î¥«¡¼¥É¤Ë½¸Ã椹¤ë...");
5286 msg_print("You concentrate on several trumps at once...");
5289 if (trump_summoning(2 + randint0(plev / 7), !fail, y, x, 0, type, 0L))
5294 msg_print("¾¤´¤µ¤ì¤¿¥â¥ó¥¹¥¿¡¼¤ÏÅܤäƤ¤¤ë¡ª");
5296 msg_print("The summoned creatures get angry!");
5306 if (name) return "¸¸Î´";
5307 if (desc) return "1ÂΤÎÍ©Îî¤ò¾¤´¤¹¤ë¡£";
5309 if (name) return "Phantasmal Servant";
5310 if (desc) return "Summons a ghost.";
5314 /* Phantasmal Servant is not summoned as enemy when failed */
5317 int summon_lev = plev * 2 / 3 + randint1(plev / 2);
5319 if (trump_summoning(1, !fail, py, px, (summon_lev * 3 / 2), SUMMON_PHANTOM, 0L))
5322 msg_print("¸æÍѤǤ´¤¶¤¤¤Þ¤¹¤«¡¢¸æ¼ç¿ÍÍÍ¡©");
5324 msg_print("'Your wish, master?'");
5333 if (name) return "¥¹¥Ô¡¼¥É¡¦¥â¥ó¥¹¥¿¡¼";
5334 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤò²Ã®¤µ¤»¤ë¡£";
5336 if (name) return "Haste Monster";
5337 if (desc) return "Hastes a monster.";
5345 /* Temporary enable target_pet option */
5346 bool old_target_pet = target_pet;
5349 result = get_aim_dir(&dir);
5351 /* Restore target_pet option */
5352 target_pet = old_target_pet;
5354 if (!result) return NULL;
5363 if (name) return "¥Æ¥ì¥Ý¡¼¥È¡¦¥ì¥Ù¥ë";
5364 if (desc) return "½Ö»þ¤Ë¾å¤«²¼¤Î³¬¤Ë¥Æ¥ì¥Ý¡¼¥È¤¹¤ë¡£";
5366 if (name) return "Teleport Level";
5367 if (desc) return "Teleport to up or down stairs in a moment.";
5374 if (!get_check("ËÜÅö¤Ë¾¤Î³¬¤Ë¥Æ¥ì¥Ý¡¼¥È¤·¤Þ¤¹¤«¡©")) return NULL;
5376 if (!get_check("Are you sure? (Teleport Level)")) return NULL;
5385 if (name) return "¼¡¸µ¤ÎÈâ";
5386 if (desc) return "ûµ÷Î¥Æâ¤Î»ØÄꤷ¤¿¾ì½ê¤Ë¥Æ¥ì¥Ý¡¼¥È¤¹¤ë¡£";
5388 if (name) return "Dimension Door";
5389 if (desc) return "Teleport to given location.";
5393 int range = plev / 2 + 10;
5395 if (info) return info_range(range);
5400 msg_print("¼¡¸µ¤ÎÈ⤬³«¤¤¤¿¡£ÌÜŪÃϤòÁª¤ó¤Ç²¼¤µ¤¤¡£");
5402 msg_print("You open a dimensional gate. Choose a destination.");
5405 if (!dimension_door()) return NULL;
5412 if (name) return "µ¢´Ô¤Î¼öʸ";
5413 if (desc) return "ÃϾå¤Ë¤¤¤ë¤È¤¤Ï¥À¥ó¥¸¥ç¥ó¤ÎºÇ¿¼³¬¤Ø¡¢¥À¥ó¥¸¥ç¥ó¤Ë¤¤¤ë¤È¤¤ÏÃϾå¤Ø¤È°ÜÆ°¤¹¤ë¡£";
5415 if (name) return "Word of Recall";
5416 if (desc) return "Recalls player from dungeon to town, or from town to the deepest level of dungeon.";
5423 if (info) return info_delay(base, sides);
5427 if (!word_of_recall()) return NULL;
5434 if (name) return "²øʪÄÉÊü";
5435 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
5437 if (name) return "Banish";
5438 if (desc) return "Teleports all monsters in sight away unless resisted.";
5442 int power = plev * 4;
5444 if (info) return info_power(power);
5448 banish_monsters(power);
5455 if (name) return "°ÌÃÖ¸ò´¹¤Î¥«¡¼¥É";
5456 if (desc) return "1ÂΤΥâ¥ó¥¹¥¿¡¼¤È°ÌÃÖ¤ò¸ò´¹¤¹¤ë¡£";
5458 if (name) return "Swap Position";
5459 if (desc) return "Swap positions of you and a monster.";
5467 /* HACK -- No range limit */
5468 project_length = -1;
5470 result = get_aim_dir(&dir);
5472 /* Restore range to default */
5475 if (!result) return NULL;
5484 if (name) return "¥¢¥ó¥Ç¥Ã¥É¤Î¥«¡¼¥É";
5485 if (desc) return "1ÂΤΥ¢¥ó¥Ç¥Ã¥É¤ò¾¤´¤¹¤ë¡£";
5487 if (name) return "Trump Undead";
5488 if (desc) return "Summons an undead monster.";
5495 msg_print("¤¢¤Ê¤¿¤Ï¥¢¥ó¥Ç¥Ã¥É¤Î¥«¡¼¥É¤Ë½¸Ã椹¤ë...");
5497 msg_print("You concentrate on the trump of an undead creature...");
5500 if (trump_summoning(1, !fail, py, px, 0, SUMMON_UNDEAD, 0L))
5505 msg_print("¾¤´¤µ¤ì¤¿¥¢¥ó¥Ç¥Ã¥É¤ÏÅܤäƤ¤¤ë¡ª");
5507 msg_print("The summoned undead creature gets angry!");
5517 if (name) return "à¨ÃîÎà¤Î¥«¡¼¥É";
5518 if (desc) return "1ÂΤΥҥɥé¤ò¾¤´¤¹¤ë¡£";
5520 if (name) return "Trump Reptiles";
5521 if (desc) return "Summons a hydra.";
5528 msg_print("¤¢¤Ê¤¿¤Ïà¨ÃîÎà¤Î¥«¡¼¥É¤Ë½¸Ã椹¤ë...");
5530 msg_print("You concentrate on the trump of a reptile...");
5533 if (trump_summoning(1, !fail, py, px, 0, SUMMON_HYDRA, 0L))
5538 msg_print("¾¤´¤µ¤ì¤¿à¨ÃîÎà¤ÏÅܤäƤ¤¤ë¡ª");
5540 msg_print("The summoned reptile gets angry!");
5550 if (name) return "¥â¥ó¥¹¥¿¡¼¤Î¥«¡¼¥É";
5551 if (desc) return "Ê£¿ô¤Î¥â¥ó¥¹¥¿¡¼¤ò¾¤´¤¹¤ë¡£";
5553 if (name) return "Trump Monsters";
5554 if (desc) return "Summons some monsters.";
5563 msg_print("¤¢¤Ê¤¿¤Ï¥â¥ó¥¹¥¿¡¼¤Î¥«¡¼¥É¤Ë½¸Ã椹¤ë...");
5565 msg_print("You concentrate on several trumps at once...");
5568 if (p_ptr->pclass == CLASS_BEASTMASTER)
5569 type = SUMMON_LIVING;
5573 if (trump_summoning((1 + (plev - 15)/ 10), !fail, py, px, 0, type, 0L))
5578 msg_print("¾¤´¤µ¤ì¤¿¥â¥ó¥¹¥¿¡¼¤ÏÅܤäƤ¤¤ë¡ª");
5580 msg_print("The summoned creatures get angry!");
5591 if (name) return "¥Ï¥¦¥ó¥É¤Î¥«¡¼¥É";
5592 if (desc) return "1¥°¥ë¡¼¥×¤Î¥Ï¥¦¥ó¥É¤ò¾¤´¤¹¤ë¡£";
5594 if (name) return "Trump Hounds";
5595 if (desc) return "Summons a group of hounds.";
5602 msg_print("¤¢¤Ê¤¿¤Ï¥Ï¥¦¥ó¥É¤Î¥«¡¼¥É¤Ë½¸Ã椹¤ë...");
5604 msg_print("You concentrate on the trump of a hound...");
5607 if (trump_summoning(1, !fail, py, px, 0, SUMMON_HOUND, PM_ALLOW_GROUP))
5612 msg_print("¾¤´¤µ¤ì¤¿¥Ï¥¦¥ó¥É¤ÏÅܤäƤ¤¤ë¡ª");
5614 msg_print("The summoned hounds get angry!");
5624 if (name) return "¥È¥é¥ó¥×¤Î¿Ï";
5625 if (desc) return "Éð´ï¤Ë¥È¥é¥ó¥×¤Î°À¤ò¤Ä¤±¤ë¡£";
5627 if (name) return "Trump Branding";
5628 if (desc) return "Makes current weapon a Trump weapon.";
5641 if (name) return "¿Í´Ö¥È¥é¥ó¥×";
5642 if (desc) return "¥é¥ó¥À¥à¤Ë¥Æ¥ì¥Ý¡¼¥È¤¹¤ëÆÍÁ³ÊÑ°Û¤«¡¢¼«Ê¬¤Î°Õ»×¤Ç¥Æ¥ì¥Ý¡¼¥È¤¹¤ëÆÍÁ³ÊÑ°Û¤¬¿È¤Ë¤Ä¤¯¡£";
5644 if (name) return "Living Trump";
5645 if (desc) return "Gives mutation which makes you teleport randomly or makes you able to teleport at will.";
5654 /* Teleport control */
5657 /* Random teleportation (uncontrolled) */
5660 /* Gain the mutation */
5661 if (gain_random_mutation(mutation))
5664 msg_print("¤¢¤Ê¤¿¤ÏÀ¸¤¤Æ¤¤¤ë¥«¡¼¥É¤ËÊѤï¤Ã¤¿¡£");
5666 msg_print("You have turned into a Living Trump.");
5675 if (name) return "¥µ¥¤¥Ð¡¼¥Ç¡¼¥â¥ó¤Î¥«¡¼¥É";
5676 if (desc) return "1ÂΤΥµ¥¤¥Ð¡¼¥Ç¡¼¥â¥ó¤ò¾¤´¤¹¤ë¡£";
5678 if (name) return "Trump Cyberdemon";
5679 if (desc) return "Summons a cyber demon.";
5686 msg_print("¤¢¤Ê¤¿¤Ï¥µ¥¤¥Ð¡¼¥Ç¡¼¥â¥ó¤Î¥«¡¼¥É¤Ë½¸Ã椹¤ë...");
5688 msg_print("You concentrate on the trump of a Cyberdemon...");
5691 if (trump_summoning(1, !fail, py, px, 0, SUMMON_CYBER, 0L))
5696 msg_print("¾¤´¤µ¤ì¤¿¥µ¥¤¥Ð¡¼¥Ç¡¼¥â¥ó¤ÏÅܤäƤ¤¤ë¡ª");
5698 msg_print("The summoned Cyberdemon gets angry!");
5708 if (name) return "ͽ¸«¤Î¥«¡¼¥É";
5709 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¡¢æ«¡¢Èâ¡¢³¬ÃÊ¡¢ºâÊõ¡¢¤½¤·¤Æ¥¢¥¤¥Æ¥à¤ò´¶ÃΤ¹¤ë¡£";
5711 if (name) return "Trump Divination";
5712 if (desc) return "Detects all monsters, traps, doors, stairs, treasures and items in your vicinity.";
5716 int rad = DETECT_RAD_DEFAULT;
5718 if (info) return info_radius(rad);
5729 if (name) return "Ãμ±¤Î¥«¡¼¥É";
5730 if (desc) return "¥¢¥¤¥Æ¥à¤Î»ý¤ÄǽÎϤò´°Á´¤ËÃΤ롣";
5732 if (name) return "Trump Lore";
5733 if (desc) return "*Identifies* an item.";
5739 if (!identify_fully(FALSE)) return NULL;
5746 if (name) return "²óÉü¥â¥ó¥¹¥¿¡¼";
5747 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤÎÂÎÎϤò²óÉü¤µ¤»¤ë¡£";
5749 if (name) return "Heal Monster";
5750 if (desc) return "Heal a monster.";
5754 int heal = plev * 10 + 200;
5756 if (info) return info_heal(0, 0, heal);
5762 /* Temporary enable target_pet option */
5763 bool old_target_pet = target_pet;
5766 result = get_aim_dir(&dir);
5768 /* Restore target_pet option */
5769 target_pet = old_target_pet;
5771 if (!result) return NULL;
5773 heal_monster(dir, heal);
5780 if (name) return "¥É¥é¥´¥ó¤Î¥«¡¼¥É";
5781 if (desc) return "1ÂΤΥɥ饴¥ó¤ò¾¤´¤¹¤ë¡£";
5783 if (name) return "Trump Dragon";
5784 if (desc) return "Summons a dragon.";
5791 msg_print("¤¢¤Ê¤¿¤Ï¥É¥é¥´¥ó¤Î¥«¡¼¥É¤Ë½¸Ã椹¤ë...");
5793 msg_print("You concentrate on the trump of a dragon...");
5796 if (trump_summoning(1, !fail, py, px, 0, SUMMON_DRAGON, 0L))
5801 msg_print("¾¤´¤µ¤ì¤¿¥É¥é¥´¥ó¤ÏÅܤäƤ¤¤ë¡ª");
5803 msg_print("The summoned dragon gets angry!");
5813 if (name) return "ð¨ÀФΥ«¡¼¥É";
5814 if (desc) return "¼«Ê¬¤Î¼þÊÕ¤Ëð¨ÀФòÍî¤È¤¹¡£";
5816 if (name) return "Trump Meteor";
5817 if (desc) return "Makes meteor balls fall down to nearby random locations.";
5824 if (info) return info_multi_damage(dam);
5828 cast_meteor(dam, rad);
5835 if (name) return "¥Ç¡¼¥â¥ó¤Î¥«¡¼¥É";
5836 if (desc) return "1ÂΤΰËâ¤ò¾¤´¤¹¤ë¡£";
5838 if (name) return "Trump Demon";
5839 if (desc) return "Summons a demon.";
5846 msg_print("¤¢¤Ê¤¿¤Ï¥Ç¡¼¥â¥ó¤Î¥«¡¼¥É¤Ë½¸Ã椹¤ë...");
5848 msg_print("You concentrate on the trump of a demon...");
5851 if (trump_summoning(1, !fail, py, px, 0, SUMMON_DEMON, 0L))
5856 msg_print("¾¤´¤µ¤ì¤¿¥Ç¡¼¥â¥ó¤ÏÅܤäƤ¤¤ë¡ª");
5858 msg_print("The summoned demon gets angry!");
5868 if (name) return "ÃϹö¤Î¥«¡¼¥É";
5869 if (desc) return "1ÂΤξåµé¥¢¥ó¥Ç¥Ã¥É¤ò¾¤´¤¹¤ë¡£";
5871 if (name) return "Trump Greater Undead";
5872 if (desc) return "Summons a greater undead.";
5879 msg_print("¤¢¤Ê¤¿¤Ï¶¯ÎϤʥ¢¥ó¥Ç¥Ã¥É¤Î¥«¡¼¥É¤Ë½¸Ã椹¤ë...");
5881 msg_print("You concentrate on the trump of a greater undead being...");
5883 /* May allow unique depend on level and dice roll */
5884 if (trump_summoning(1, !fail, py, px, 0, SUMMON_HI_UNDEAD, PM_ALLOW_UNIQUE))
5889 msg_print("¾¤´¤µ¤ì¤¿¾åµé¥¢¥ó¥Ç¥Ã¥É¤ÏÅܤäƤ¤¤ë¡ª");
5891 msg_print("The summoned greater undead creature gets angry!");
5901 if (name) return "¸ÅÂå¥É¥é¥´¥ó¤Î¥«¡¼¥É";
5902 if (desc) return "1ÂΤθÅÂå¥É¥é¥´¥ó¤ò¾¤´¤¹¤ë¡£";
5904 if (name) return "Trump Ancient Dragon";
5905 if (desc) return "Summons an ancient dragon.";
5913 if (p_ptr->pclass == CLASS_BEASTMASTER)
5914 type = SUMMON_HI_DRAGON_LIVING;
5916 type = SUMMON_HI_DRAGON;
5919 msg_print("¤¢¤Ê¤¿¤Ï¸ÅÂå¥É¥é¥´¥ó¤Î¥«¡¼¥É¤Ë½¸Ã椹¤ë...");
5921 msg_print("You concentrate on the trump of an ancient dragon...");
5924 /* May allow unique depend on level and dice roll */
5925 if (trump_summoning(1, !fail, py, px, 0, type, PM_ALLOW_UNIQUE))
5930 msg_print("¾¤´¤µ¤ì¤¿¸ÅÂå¥É¥é¥´¥ó¤ÏÅܤäƤ¤¤ë¡ª");
5932 msg_print("The summoned ancient dragon gets angry!");
5945 static cptr do_arcane_spell(int spell, int mode)
5947 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
5948 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
5949 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
5950 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
5953 int plev = p_ptr->lev;
5959 if (name) return "ÅÅ·â";
5960 if (desc) return "ÅÅ·â¤Î¥Ü¥ë¥È¤â¤·¤¯¤Ï¥Ó¡¼¥à¤òÊü¤Ä¡£";
5962 if (name) return "Zap";
5963 if (desc) return "Fires a bolt or beam of lightning.";
5967 int dice = 3 + (plev - 1) / 5;
5970 if (info) return info_damage(dice, sides, 0);
5974 if (!get_aim_dir(&dir)) return NULL;
5976 fire_bolt_or_beam(beam_chance() - 10, GF_ELEC, dir, damroll(dice, sides));
5983 if (name) return "ËâË¡¤Î»Ü¾û";
5984 if (desc) return "Èâ¤Ë¸°¤ò¤«¤±¤ë¡£";
5986 if (name) return "Wizard Lock";
5987 if (desc) return "Locks a door.";
5993 if (!get_aim_dir(&dir)) return NULL;
6002 if (name) return "Æ©ÌÀÂδ¶ÃÎ";
6003 if (desc) return "¶á¤¯¤ÎÆ©ÌÀ¤Ê¥â¥ó¥¹¥¿¡¼¤ò´¶ÃΤ¹¤ë¡£";
6005 if (name) return "Detect Invisibility";
6006 if (desc) return "Detects all invisible monsters in your vicinity.";
6010 int rad = DETECT_RAD_DEFAULT;
6012 if (info) return info_radius(rad);
6016 detect_monsters_invis(rad);
6023 if (name) return "¥â¥ó¥¹¥¿¡¼´¶ÃÎ";
6024 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î¸«¤¨¤ë¥â¥ó¥¹¥¿¡¼¤ò´¶ÃΤ¹¤ë¡£";
6026 if (name) return "Detect Monsters";
6027 if (desc) return "Detects all monsters in your vicinity unless invisible.";
6031 int rad = DETECT_RAD_DEFAULT;
6033 if (info) return info_radius(rad);
6037 detect_monsters_normal(rad);
6044 if (name) return "¥·¥ç¡¼¥È¡¦¥Æ¥ì¥Ý¡¼¥È";
6045 if (desc) return "¶áµ÷Î¥¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¤¹¤ë¡£";
6047 if (name) return "Blink";
6048 if (desc) return "Teleport short distance.";
6054 if (info) return info_range(range);
6058 teleport_player(range, FALSE);
6065 if (name) return "¥é¥¤¥È¡¦¥¨¥ê¥¢";
6066 if (desc) return "¸÷¸»¤¬¾È¤é¤·¤Æ¤¤¤ëÈϰϤ«Éô²°Á´ÂΤò±Êµ×¤ËÌÀ¤ë¤¯¤¹¤ë¡£";
6068 if (name) return "Light Area";
6069 if (desc) return "Lights up nearby area and the inside of a room permanently.";
6074 int sides = plev / 2;
6075 int rad = plev / 10 + 1;
6077 if (info) return info_damage(dice, sides, 0);
6081 lite_area(damroll(dice, sides), rad);
6088 if (name) return "櫤ÈÈâ Ç˲õ";
6089 if (desc) return "°ìľÀþ¾å¤ÎÁ´¤Æ¤Î櫤ÈÈâ¤òÇ˲õ¤¹¤ë¡£";
6091 if (name) return "Trap & Door Destruction";
6092 if (desc) return "Fires a beam which destroy traps and doors.";
6098 if (!get_aim_dir(&dir)) return NULL;
6107 if (name) return "·Ú½ý¤Î¼£Ìþ";
6108 if (desc) return "²ø²æ¤ÈÂÎÎϤò¾¯¤·²óÉü¤µ¤»¤ë¡£";
6110 if (name) return "Cure Light Wounds";
6111 if (desc) return "Heals cut and HP a little.";
6118 if (info) return info_heal(dice, sides, 0);
6122 hp_player(damroll(dice, sides));
6123 set_cut(p_ptr->cut - 10);
6130 if (name) return "櫤ÈÈâ ´¶ÃÎ";
6131 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î櫤ÈÈâ¤È³¬Ãʤò´¶ÃΤ¹¤ë¡£";
6133 if (name) return "Detect Doors & Traps";
6134 if (desc) return "Detects traps, doors, and stairs in your vicinity.";
6138 int rad = DETECT_RAD_DEFAULT;
6140 if (info) return info_radius(rad);
6144 detect_traps(rad, TRUE);
6153 if (name) return "dzÁÇ";
6154 if (desc) return "¸÷¸»¤ËdzÎÁ¤òÊäµë¤¹¤ë¡£";
6156 if (name) return "Phlogiston";
6157 if (desc) return "Adds more turns of light to a lantern or torch.";
6170 if (name) return "ºâÊõ´¶ÃÎ";
6171 if (desc) return "¶á¤¯¤ÎºâÊõ¤ò´¶ÃΤ¹¤ë¡£";
6173 if (name) return "Detect Treasure";
6174 if (desc) return "Detects all treasures in your vicinity.";
6178 int rad = DETECT_RAD_DEFAULT;
6180 if (info) return info_radius(rad);
6184 detect_treasure(rad);
6185 detect_objects_gold(rad);
6192 if (name) return "ËâË¡ ´¶ÃÎ";
6193 if (desc) return "¶á¤¯¤ÎËâË¡¤¬¤«¤«¤Ã¤¿¥¢¥¤¥Æ¥à¤ò´¶ÃΤ¹¤ë¡£";
6195 if (name) return "Detect Enchantment";
6196 if (desc) return "Detects all magical items in your vicinity.";
6200 int rad = DETECT_RAD_DEFAULT;
6202 if (info) return info_radius(rad);
6206 detect_objects_magic(rad);
6213 if (name) return "¥¢¥¤¥Æ¥à´¶ÃÎ";
6214 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î¥¢¥¤¥Æ¥à¤ò´¶ÃΤ¹¤ë¡£";
6216 if (name) return "Detect Objects";
6217 if (desc) return "Detects all items in your vicinity.";
6221 int rad = DETECT_RAD_DEFAULT;
6223 if (info) return info_radius(rad);
6227 detect_objects_normal(rad);
6234 if (name) return "²òÆÇ";
6235 if (desc) return "ÆǤòÂÎÆ⤫¤é´°Á´¤Ë¼è¤ê½ü¤¯¡£";
6237 if (name) return "Cure Poison";
6238 if (desc) return "Cures poison status.";
6251 if (name) return "ÂÑÎä";
6252 if (desc) return "°ìÄê»þ´Ö¡¢Î䵤¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
6254 if (name) return "Resist Cold";
6255 if (desc) return "Gives resistance to cold. This resistance can be added to which from equipment for more powerful resistance.";
6261 if (info) return info_duration(base, base);
6265 set_oppose_cold(randint1(base) + base, FALSE);
6272 if (name) return "ÂѲÐ";
6273 if (desc) return "°ìÄê»þ´Ö¡¢±ê¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
6275 if (name) return "Resist Fire";
6276 if (desc) return "Gives resistance to fire. This resistance can be added to which from equipment for more powerful resistance.";
6282 if (info) return info_duration(base, base);
6286 set_oppose_fire(randint1(base) + base, FALSE);
6293 if (name) return "ÂÑÅÅ";
6294 if (desc) return "°ìÄê»þ´Ö¡¢ÅÅ·â¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
6296 if (name) return "Resist Lightning";
6297 if (desc) return "Gives resistance to electricity. This resistance can be added to which from equipment for more powerful resistance.";
6303 if (info) return info_duration(base, base);
6307 set_oppose_elec(randint1(base) + base, FALSE);
6314 if (name) return "ÂÑ»À";
6315 if (desc) return "°ìÄê»þ´Ö¡¢»À¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
6317 if (name) return "Resist Acid";
6318 if (desc) return "Gives resistance to acid. This resistance can be added to which from equipment for more powerful resistance.";
6324 if (info) return info_duration(base, base);
6328 set_oppose_acid(randint1(base) + base, FALSE);
6335 if (name) return "½Å½ý¤Î¼£Ìþ";
6336 if (desc) return "²ø²æ¤ÈÂÎÎϤòÃæÄøÅÙ²óÉü¤µ¤»¤ë¡£";
6338 if (name) return "Cure Medium Wounds";
6339 if (desc) return "Heals cut and HP more.";
6346 if (info) return info_heal(dice, sides, 0);
6350 hp_player(damroll(dice, sides));
6351 set_cut((p_ptr->cut / 2) - 50);
6358 if (name) return "¥Æ¥ì¥Ý¡¼¥È";
6359 if (desc) return "±óµ÷Î¥¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¤¹¤ë¡£";
6361 if (name) return "Teleport";
6362 if (desc) return "Teleport long distance.";
6366 int range = plev * 5;
6368 if (info) return info_range(range);
6372 teleport_player(range, FALSE);
6379 if (name) return "´ÕÄê";
6380 if (desc) return "¥¢¥¤¥Æ¥à¤ò¼±Ê̤¹¤ë¡£";
6382 if (name) return "Identify";
6383 if (desc) return "Identifies an item.";
6389 if (!ident_spell(FALSE)) return NULL;
6396 if (name) return "´äÀÐÍϲò";
6397 if (desc) return "ÊɤòÍϤ«¤·¤Æ¾²¤Ë¤¹¤ë¡£";
6399 if (name) return "Stone to Mud";
6400 if (desc) return "Turns one rock square to mud.";
6408 if (info) return info_damage(dice, sides, base);
6412 if (!get_aim_dir(&dir)) return NULL;
6421 if (name) return "Á®¸÷";
6422 if (desc) return "¸÷Àþ¤òÊü¤Ä¡£¸÷¤ê¤ò·ù¤¦¥â¥ó¥¹¥¿¡¼¤Ë¸ú²Ì¤¬¤¢¤ë¡£";
6424 if (name) return "Ray of Light";
6425 if (desc) return "Fires a beam of light which damages to light-sensitive monsters.";
6432 if (info) return info_damage(dice, sides, 0);
6436 if (!get_aim_dir(&dir)) return NULL;
6439 msg_print("¸÷Àþ¤¬Êü¤¿¤ì¤¿¡£");
6441 msg_print("A line of light appears.");
6451 if (name) return "¶õÊ¢½¼Â";
6452 if (desc) return "ËþÊ¢¤Ë¤¹¤ë¡£";
6454 if (name) return "Satisfy Hunger";
6455 if (desc) return "Satisfies hunger.";
6461 set_food(PY_FOOD_MAX - 1);
6468 if (name) return "Æ©ÌÀ»ëǧ";
6469 if (desc) return "°ìÄê»þ´Ö¡¢Æ©ÌÀ¤Ê¤â¤Î¤¬¸«¤¨¤ë¤è¤¦¤Ë¤Ê¤ë¡£";
6471 if (name) return "See Invisible";
6472 if (desc) return "Gives see invisible for a while.";
6478 if (info) return info_duration(base, base);
6482 set_tim_invis(randint1(base) + base, FALSE);
6489 if (name) return "¥¨¥ì¥á¥ó¥¿¥ë¾¤´";
6490 if (desc) return "1ÂΤΥ¨¥ì¥á¥ó¥¿¥ë¤ò¾¤´¤¹¤ë¡£";
6492 if (name) return "Conjure Elemental";
6493 if (desc) return "Summons an elemental.";
6499 if (!summon_specific(-1, py, px, plev, SUMMON_ELEMENTAL, (PM_ALLOW_GROUP | PM_FORCE_PET)))
6502 msg_print("¥¨¥ì¥á¥ó¥¿¥ë¤Ï¸½¤ì¤Ê¤«¤Ã¤¿¡£");
6504 msg_print("No Elementals arrive.");
6513 if (name) return "¥Æ¥ì¥Ý¡¼¥È¡¦¥ì¥Ù¥ë";
6514 if (desc) return "½Ö»þ¤Ë¾å¤«²¼¤Î³¬¤Ë¥Æ¥ì¥Ý¡¼¥È¤¹¤ë¡£";
6516 if (name) return "Teleport Level";
6517 if (desc) return "Teleport to up or down stairs in a moment.";
6524 if (!get_check("ËÜÅö¤Ë¾¤Î³¬¤Ë¥Æ¥ì¥Ý¡¼¥È¤·¤Þ¤¹¤«¡©")) return NULL;
6526 if (!get_check("Are you sure? (Teleport Level)")) return NULL;
6535 if (name) return "¥Æ¥ì¥Ý¡¼¥È¡¦¥â¥ó¥¹¥¿¡¼";
6536 if (desc) return "¥â¥ó¥¹¥¿¡¼¤ò¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤ë¥Ó¡¼¥à¤òÊü¤Ä¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
6538 if (name) return "Teleport Away";
6539 if (desc) return "Teleports all monsters on the line away unless resisted.";
6545 if (info) return info_power(power);
6549 if (!get_aim_dir(&dir)) return NULL;
6551 fire_beam(GF_AWAY_ALL, dir, power);
6558 if (name) return "¸µÁǤεå";
6559 if (desc) return "±ê¡¢ÅÅ·â¡¢Î䵤¡¢»À¤Î¤É¤ì¤«¤Îµå¤òÊü¤Ä¡£";
6561 if (name) return "Elemental Ball";
6562 if (desc) return "Fires a ball of some elements.";
6566 int dam = 75 + plev;
6569 if (info) return info_damage(0, 0, dam);
6575 if (!get_aim_dir(&dir)) return NULL;
6577 switch (randint1(4))
6579 case 1: type = GF_FIRE;break;
6580 case 2: type = GF_ELEC;break;
6581 case 3: type = GF_COLD;break;
6582 default: type = GF_ACID;break;
6585 fire_ball(type, dir, dam, rad);
6592 if (name) return "Á´´¶ÃÎ";
6593 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¡¢æ«¡¢Èâ¡¢³¬ÃÊ¡¢ºâÊõ¡¢¤½¤·¤Æ¥¢¥¤¥Æ¥à¤ò´¶ÃΤ¹¤ë¡£";
6595 if (name) return "Detection";
6596 if (desc) return "Detects all monsters, traps, doors, stairs, treasures and items in your vicinity.";
6600 int rad = DETECT_RAD_DEFAULT;
6602 if (info) return info_radius(rad);
6613 if (name) return "µ¢´Ô¤Î¼öʸ";
6614 if (desc) return "ÃϾå¤Ë¤¤¤ë¤È¤¤Ï¥À¥ó¥¸¥ç¥ó¤ÎºÇ¿¼³¬¤Ø¡¢¥À¥ó¥¸¥ç¥ó¤Ë¤¤¤ë¤È¤¤ÏÃϾå¤Ø¤È°ÜÆ°¤¹¤ë¡£";
6616 if (name) return "Word of Recall";
6617 if (desc) return "Recalls player from dungeon to town, or from town to the deepest level of dungeon.";
6624 if (info) return info_delay(base, sides);
6628 if (!word_of_recall()) return NULL;
6635 if (name) return "ÀéΤ´ã";
6636 if (desc) return "¤½¤Î³¬Á´ÂΤò±Êµ×¤Ë¾È¤é¤·¡¢¥À¥ó¥¸¥ç¥óÆ⤹¤Ù¤Æ¤Î¥¢¥¤¥Æ¥à¤ò´¶ÃΤ¹¤ë¡£¤µ¤é¤Ë¡¢°ìÄê»þ´Ö¥Æ¥ì¥Ñ¥·¡¼Ç½ÎϤòÆÀ¤ë¡£";
6638 if (name) return "Clairvoyance";
6639 if (desc) return "Maps and lights whole dungeon level. Knows all objects location. And gives telepathy for a while.";
6646 if (info) return info_duration(base, sides);
6650 chg_virtue(V_KNOWLEDGE, 1);
6651 chg_virtue(V_ENLIGHTEN, 1);
6655 if (!p_ptr->telepathy)
6657 set_tim_esp(randint1(sides) + base, FALSE);
6668 static cptr do_craft_spell(int spell, int mode)
6670 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
6671 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
6672 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
6673 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
6675 int plev = p_ptr->lev;
6681 if (name) return "ÁõÈ÷̵Îϲ½";
6682 if (desc) return "Éð´ï¡¦Ëɶñ¤Ë¤«¤±¤é¤ì¤¿¤¢¤é¤æ¤ëËâÎϤò´°Á´¤Ë²ò½ü¤¹¤ë¡£";
6684 if (name) return "Remove Enchantment";
6685 if (desc) return "Removes all magics completely from any weapon or armor.";
6691 if (!mundane_spell(TRUE)) return NULL;
6698 if (name) return "ÀÖ³°Àþ»ëÎÏ";
6699 if (desc) return "°ìÄê»þ´Ö¡¢ÀÖ³°Àþ»ëÎϤ¬Áý¶¯¤µ¤ì¤ë¡£";
6701 if (name) return "Infravision";
6702 if (desc) return "Gives infravision for a while.";
6708 if (info) return info_duration(base, base);
6712 set_tim_infra(base + randint1(base), FALSE);
6719 if (name) return "²óÉüÎ϶¯²½";
6720 if (desc) return "°ìÄê»þ´Ö¡¢²óÉüÎϤ¬Áý¶¯¤µ¤ì¤ë¡£";
6722 if (name) return "Regeneration";
6723 if (desc) return "Gives regeneration ability for a while.";
6729 if (info) return info_duration(base, base);
6733 set_tim_regen(base + randint1(base), FALSE);
6740 if (name) return "¶õÊ¢½¼Â";
6741 if (desc) return "ËþÊ¢¤Ë¤Ê¤ë¡£";
6743 if (name) return "Satisfy Hunger";
6744 if (desc) return "Satisfies hunger.";
6750 set_food(PY_FOOD_MAX - 1);
6757 if (name) return "ÂÑÎ䵤";
6758 if (desc) return "°ìÄê»þ´Ö¡¢Î䵤¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
6760 if (name) return "Resist Cold";
6761 if (desc) return "Gives resistance to cold. This resistance can be added to which from equipment for more powerful resistance.";
6767 if (info) return info_duration(base, base);
6771 set_oppose_cold(randint1(base) + base, FALSE);
6778 if (name) return "ÂѲбê";
6779 if (desc) return "°ìÄê»þ´Ö¡¢±ê¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
6781 if (name) return "Resist Fire";
6782 if (desc) return "Gives resistance to fire. This resistance can be added to which from equipment for more powerful resistance.";
6788 if (info) return info_duration(base, base);
6792 set_oppose_fire(randint1(base) + base, FALSE);
6799 if (name) return "»Îµ¤¹âÍÈ";
6800 if (desc) return "°ìÄê»þ´Ö¡¢¥Ò¡¼¥í¡¼µ¤Ê¬¤Ë¤Ê¤ë¡£";
6802 if (name) return "Heroism";
6803 if (desc) return "Removes fear, and gives bonus to hit and 10 more HP for a while.";
6809 if (info) return info_duration(base, base);
6813 set_hero(randint1(base) + base, FALSE);
6822 if (name) return "ÂÑÅÅ·â";
6823 if (desc) return "°ìÄê»þ´Ö¡¢ÅÅ·â¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
6825 if (name) return "Resist Lightning";
6826 if (desc) return "Gives resistance to electricity. This resistance can be added to which from equipment for more powerful resistance.";
6832 if (info) return info_duration(base, base);
6836 set_oppose_elec(randint1(base) + base, FALSE);
6843 if (name) return "ÂÑ»À";
6844 if (desc) return "°ìÄê»þ´Ö¡¢»À¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
6846 if (name) return "Resist Acid";
6847 if (desc) return "Gives resistance to acid. This resistance can be added to which from equipment for more powerful resistance.";
6853 if (info) return info_duration(base, base);
6857 set_oppose_acid(randint1(base) + base, FALSE);
6864 if (name) return "Æ©ÌÀ»ëǧ";
6865 if (desc) return "°ìÄê»þ´Ö¡¢Æ©ÌÀ¤Ê¤â¤Î¤¬¸«¤¨¤ë¤è¤¦¤Ë¤Ê¤ë¡£";
6867 if (name) return "See Invisibility";
6868 if (desc) return "Gives see invisible for a while.";
6874 if (info) return info_duration(base, base);
6878 set_tim_invis(randint1(base) + base, FALSE);
6885 if (name) return "²ò¼ö";
6886 if (desc) return "¥¢¥¤¥Æ¥à¤Ë¤«¤«¤Ã¤¿¼å¤¤¼ö¤¤¤ò²ò½ü¤¹¤ë¡£";
6888 if (name) return "Remove Curse";
6889 if (desc) return "Removes normal curses from equipped items.";
6898 msg_print("狼¤Ë¸«¼é¤é¤ì¤Æ¤¤¤ë¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£");
6900 msg_print("You feel as if someone is watching over you.");
6909 if (name) return "ÂÑÆÇ";
6910 if (desc) return "°ìÄê»þ´Ö¡¢ÆǤؤÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
6912 if (name) return "Resist Poison";
6913 if (desc) return "Gives resistance to poison. This resistance can be added to which from equipment for more powerful resistance.";
6919 if (info) return info_duration(base, base);
6923 set_oppose_pois(randint1(base) + base, FALSE);
6930 if (name) return "¶¸Àï»Î²½";
6931 if (desc) return "¶¸Àï»Î²½¤·¡¢¶²Éݤò½üµî¤¹¤ë¡£";
6933 if (name) return "Berserk";
6934 if (desc) return "Gives bonus to hit and HP, immunity to fear for a while. But decreases AC.";
6940 if (info) return info_duration(base, base);
6944 set_shero(randint1(base) + base, FALSE);
6953 if (name) return "¼«¸ÊʬÀÏ";
6954 if (desc) return "¸½ºß¤Î¼«Ê¬¤Î¾õÂÖ¤ò´°Á´¤ËÃΤ롣";
6956 if (name) return "Self Knowledge";
6957 if (desc) return "Gives you useful info regarding your current resistances, the powers of your weapon and maximum limits of your stats.";
6970 if (name) return "Âмٰ·ë³¦";
6971 if (desc) return "¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤Î¹¶·â¤òËɤ°¥Ð¥ê¥¢¤òÄ¥¤ë¡£";
6973 if (name) return "Protection from Evil";
6974 if (desc) return "Gives aura which protect you from evil monster's physical attack.";
6978 int base = 3 * plev;
6981 if (info) return info_duration(base, sides);
6985 set_protevil(randint1(sides) + base, FALSE);
6992 if (name) return "Ìþ¤·";
6993 if (desc) return "ÆÇ¡¢Û¯Û°¾õÂÖ¡¢Éé½ý¤òÁ´²÷¤µ¤»¡¢¸¸³Ð¤òľ¤¹¡£";
6995 if (name) return "Cure";
6996 if (desc) return "Heals poison, stun, cut and hallucination completely.";
7012 if (name) return "ËâË¡·õ";
7013 if (desc) return "°ìÄê»þ´Ö¡¢Éð´ï¤ËÎ䵤¡¢±ê¡¢ÅÅ·â¡¢»À¡¢ÆǤΤ¤¤º¤ì¤«¤Î°À¤ò¤Ä¤±¤ë¡£Éð´ï¤ò»ý¤¿¤Ê¤¤¤È»È¤¨¤Ê¤¤¡£";
7015 if (name) return "Mana Branding";
7016 if (desc) return "Makes current weapon some elemental branded. You must wield weapons.";
7020 int base = plev / 2;
7022 if (info) return info_duration(base, base);
7026 if (!choose_ele_attack()) return NULL;
7033 if (name) return "¥Æ¥ì¥Ñ¥·¡¼";
7034 if (desc) return "°ìÄê»þ´Ö¡¢¥Æ¥ì¥Ñ¥·¡¼Ç½ÎϤòÆÀ¤ë¡£";
7036 if (name) return "Telepathy";
7037 if (desc) return "Gives telepathy for a while.";
7044 if (info) return info_duration(base, sides);
7048 set_tim_esp(randint1(sides) + base, FALSE);
7055 if (name) return "È©Àв½";
7056 if (desc) return "°ìÄê»þ´Ö¡¢AC¤ò¾å¾º¤µ¤»¤ë¡£";
7058 if (name) return "Stone Skin";
7059 if (desc) return "Gives bonus to AC for a while.";
7066 if (info) return info_duration(base, sides);
7070 set_shield(randint1(sides) + base, FALSE);
7077 if (name) return "Á´ÂÑÀ";
7078 if (desc) return "°ìÄê»þ´Ö¡¢»À¡¢ÅÅ·â¡¢±ê¡¢Î䵤¡¢ÆǤËÂФ¹¤ëÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
7080 if (name) return "Resistance";
7081 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.";
7087 if (info) return info_duration(base, base);
7091 set_oppose_acid(randint1(base) + base, FALSE);
7092 set_oppose_elec(randint1(base) + base, FALSE);
7093 set_oppose_fire(randint1(base) + base, FALSE);
7094 set_oppose_cold(randint1(base) + base, FALSE);
7095 set_oppose_pois(randint1(base) + base, FALSE);
7102 if (name) return "¥¹¥Ô¡¼¥É";
7103 if (desc) return "°ìÄê»þ´Ö¡¢²Ã®¤¹¤ë¡£";
7105 if (name) return "Haste Self";
7106 if (desc) return "Hastes you for a while.";
7111 int sides = 20 + plev;
7113 if (info) return info_duration(base, sides);
7117 set_fast(randint1(sides) + base, FALSE);
7124 if (name) return "ÊÉÈ´¤±";
7125 if (desc) return "°ìÄê»þ´Ö¡¢È¾Êª¼Á²½¤·ÊɤòÄ̤êÈ´¤±¤é¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£";
7127 if (name) return "Walk through Wall";
7128 if (desc) return "Gives ability to pass walls for a while.";
7132 int base = plev / 2;
7134 if (info) return info_duration(base, base);
7138 set_kabenuke(randint1(base) + base, FALSE);
7145 if (name) return "½âËá¤";
7146 if (desc) return "½â¤ËÈ¿¼Í¤Î°À¤ò¤Ä¤±¤ë¡£";
7148 if (name) return "Polish Shield";
7149 if (desc) return "Makes a shield a shield of reflection.";
7162 if (name) return "¥´¡¼¥ì¥àÀ½Â¤";
7163 if (desc) return "1ÂΤΥ´¡¼¥ì¥à¤òÀ½Â¤¤¹¤ë¡£";
7165 if (name) return "Create Golem";
7166 if (desc) return "Creates a golem.";
7172 if (summon_specific(-1, py, px, plev, SUMMON_GOLEM, PM_FORCE_PET))
7175 msg_print("¥´¡¼¥ì¥à¤òºî¤Ã¤¿¡£");
7177 msg_print("You make a golem.");
7183 msg_print("¤¦¤Þ¤¯¥´¡¼¥ì¥à¤òºî¤ì¤Ê¤«¤Ã¤¿¡£");
7185 msg_print("No Golems arrive.");
7194 if (name) return "ËâË¡¤Î³»";
7195 if (desc) return "°ìÄê»þ´Ö¡¢ËâË¡ËɸæÎϤÈAC¤¬¾å¤¬¤ê¡¢º®Íð¤ÈÌÕÌܤÎÂÑÀ¡¢È¿¼ÍǽÎÏ¡¢ËãáãÃΤ餺¡¢ÉâÍ·¤òÆÀ¤ë¡£";
7197 if (name) return "Magical armor";
7198 if (desc) return "Gives resistance to magic, bonus to AC, resistance to confusion, blindness, reflection, free action and levitation for a while.";
7204 if (info) return info_duration(base, base);
7208 set_magicdef(randint1(base) + base, FALSE);
7214 if (name) return "¼ö¤¤Ê´ºÕ";
7215 if (desc) return "¥¢¥¤¥Æ¥à¤Ë¤«¤«¤Ã¤¿¶¯ÎϤʼö¤¤¤ò²ò½ü¤¹¤ë¡£";
7217 if (name) return "Remove All Curse";
7218 if (desc) return "Removes normal and heavy curse from equipped items.";
7224 if (remove_all_curse())
7227 msg_print("狼¤Ë¸«¼é¤é¤ì¤Æ¤¤¤ë¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£");
7229 msg_print("You feel as if someone is watching over you.");
7238 if (name) return "´°Á´¤Ê¤ëÃμ±";
7239 if (desc) return "¥¢¥¤¥Æ¥à¤Î»ý¤ÄǽÎϤò´°Á´¤ËÃΤ롣";
7241 if (name) return "Knowledge True";
7242 if (desc) return "*Identifies* an item.";
7248 if (!identify_fully(FALSE)) return NULL;
7255 if (name) return "Éð´ï¶¯²½";
7256 if (desc) return "Éð´ï¤ÎÌ¿ÃæΨ½¤Àµ¤È¥À¥á¡¼¥¸½¤Àµ¤ò¶¯²½¤¹¤ë¡£";
7258 if (name) return "Enchant Weapon";
7259 if (desc) return "Attempts to increase +to-hit, +to-dam of a weapon.";
7265 if (!enchant_spell(randint0(4) + 1, randint0(4) + 1, 0)) return NULL;
7272 if (name) return "Ëɶñ¶¯²½";
7273 if (desc) return "³»¤ÎËɸ潤Àµ¤ò¶¯²½¤¹¤ë¡£";
7275 if (name) return "Enchant Armor";
7276 if (desc) return "Attempts to increase +AC of an armor.";
7282 if (!enchant_spell(0, 0, randint0(3) + 2)) return NULL;
7289 if (name) return "Éð´ï°ÀÉÕÍ¿";
7290 if (desc) return "Éð´ï¤Ë¥é¥ó¥À¥à¤Ë°À¤ò¤Ä¤±¤ë¡£";
7292 if (name) return "Brand Weapon";
7293 if (desc) return "Makes current weapon a random ego weapon.";
7299 brand_weapon(randint0(18));
7306 if (name) return "¿Í´Ö¥È¥é¥ó¥×";
7307 if (desc) return "¥é¥ó¥À¥à¤Ë¥Æ¥ì¥Ý¡¼¥È¤¹¤ëÆÍÁ³ÊÑ°Û¤«¡¢¼«Ê¬¤Î°Õ»×¤Ç¥Æ¥ì¥Ý¡¼¥È¤¹¤ëÆÍÁ³ÊÑ°Û¤¬¿È¤Ë¤Ä¤¯¡£";
7309 if (name) return "Living Trump";
7310 if (desc) return "Gives mutation which makes you teleport randomly or makes you able to teleport at will.";
7319 /* Teleport control */
7322 /* Random teleportation (uncontrolled) */
7325 /* Gain the mutation */
7326 if (gain_random_mutation(mutation))
7329 msg_print("¤¢¤Ê¤¿¤ÏÀ¸¤¤Æ¤¤¤ë¥«¡¼¥É¤ËÊѤï¤Ã¤¿¡£");
7331 msg_print("You have turned into a Living Trump.");
7340 if (name) return "°À¤Ø¤ÎÌȱÖ";
7341 if (desc) return "°ìÄê»þ´Ö¡¢Î䵤¡¢±ê¡¢ÅÅ·â¡¢»À¤Î¤¤¤º¤ì¤«¤ËÂФ¹¤ëÌȱ֤òÆÀ¤ë¡£";
7343 if (name) return "Immunity";
7344 if (desc) return "Gives an immunity to fire, cold, electricity or acid for a while.";
7350 if (info) return info_duration(base, base);
7354 if (!choose_ele_immune(base + randint1(base))) return NULL;
7364 static cptr do_daemon_spell(int spell, int mode)
7366 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
7367 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
7368 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
7369 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
7372 static const char s_dam[] = "»½ý:";
7374 static const char s_dam[] = "dam ";
7378 int plev = p_ptr->lev;
7384 if (name) return "¥Þ¥¸¥Ã¥¯¡¦¥ß¥µ¥¤¥ë";
7385 if (desc) return "¼å¤¤ËâË¡¤ÎÌð¤òÊü¤Ä¡£";
7387 if (name) return "Magic Missile";
7388 if (desc) return "Fires a weak bolt of magic.";
7392 int dice = 3 + (plev - 1) / 5;
7395 if (info) return info_damage(dice, sides, 0);
7399 if (!get_aim_dir(&dir)) return NULL;
7401 fire_bolt_or_beam(beam_chance() - 10, GF_MISSILE, dir, damroll(dice, sides));
7408 if (name) return "̵À¸Ì¿´¶ÃÎ";
7409 if (desc) return "¶á¤¯¤ÎÀ¸Ì¿¤Î¤Ê¤¤¥â¥ó¥¹¥¿¡¼¤ò´¶ÃΤ¹¤ë¡£";
7411 if (name) return "Detect Unlife";
7412 if (desc) return "Detects all nonliving monsters in your vicinity.";
7416 int rad = DETECT_RAD_DEFAULT;
7418 if (info) return info_radius(rad);
7422 detect_monsters_nonliving(rad);
7429 if (name) return "¼Ù¤Ê¤ë½ËÊ¡";
7430 if (desc) return "°ìÄê»þ´Ö¡¢Ì¿ÃæΨ¤ÈAC¤Ë¥Ü¡¼¥Ê¥¹¤òÆÀ¤ë¡£";
7432 if (name) return "Evil Bless";
7433 if (desc) return "Gives bonus to hit and AC for a few turns.";
7439 if (info) return info_duration(base, base);
7443 set_blessed(randint1(base) + base, FALSE);
7450 if (name) return "ÂѲбê";
7451 if (desc) return "°ìÄê»þ´Ö¡¢±ê¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
7453 if (name) return "Resist Fire";
7454 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.";
7460 if (info) return info_duration(base, base);
7464 set_oppose_fire(randint1(base) + base, FALSE);
7471 if (name) return "¶²¹²";
7472 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤò¶²Éݤµ¤»¡¢Û¯Û°¤µ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
7474 if (name) return "Horrify";
7475 if (desc) return "Attempts to scare and stun a monster.";
7481 if (info) return info_power(power);
7485 if (!get_aim_dir(&dir)) return NULL;
7487 fear_monster(dir, power);
7488 stun_monster(dir, power);
7495 if (name) return "ÃϹö¤ÎÌð";
7496 if (desc) return "ÃϹö¤Î¥Ü¥ë¥È¤â¤·¤¯¤Ï¥Ó¡¼¥à¤òÊü¤Ä¡£";
7498 if (name) return "Nether Bolt";
7499 if (desc) return "Fires a bolt or beam of nether.";
7503 int dice = 6 + (plev - 5) / 4;
7506 if (info) return info_damage(dice, sides, 0);
7510 if (!get_aim_dir(&dir)) return NULL;
7512 fire_bolt_or_beam(beam_chance(), GF_NETHER, dir, damroll(dice, sides));
7519 if (name) return "¸ÅÂå¤Î»àÎ´";
7520 if (desc) return "¸ÅÂå¤Î»àÎî¤ò¾¤´¤¹¤ë¡£";
7522 if (name) return "Summon Manes";
7523 if (desc) return "Summons a manes.";
7529 if (!summon_specific(-1, py, px, (plev * 3) / 2, SUMMON_MANES, (PM_ALLOW_GROUP | PM_FORCE_PET)))
7532 msg_print("¸ÅÂå¤Î»àÎî¤Ï¸½¤ì¤Ê¤«¤Ã¤¿¡£");
7534 msg_print("No Manes arrive.");
7543 if (name) return "ÃϹö¤Î±ë";
7544 if (desc) return "¼Ù°¤ÊÎϤò»ý¤Ä¥Ü¡¼¥ë¤òÊü¤Ä¡£Á±Îɤʥâ¥ó¥¹¥¿¡¼¤Ë¤ÏÂ礤ʥÀ¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
7546 if (name) return "Hellish Flame";
7547 if (desc) return "Fires a ball of evil power. Hurts good monsters greatly.";
7553 int rad = (plev < 30) ? 2 : 3;
7556 if (p_ptr->pclass == CLASS_MAGE ||
7557 p_ptr->pclass == CLASS_HIGH_MAGE ||
7558 p_ptr->pclass == CLASS_SORCERER)
7559 base = plev + plev / 2;
7561 base = plev + plev / 4;
7564 if (info) return info_damage(dice, sides, base);
7568 if (!get_aim_dir(&dir)) return NULL;
7570 fire_ball(GF_HELL_FIRE, dir, damroll(dice, sides) + base, rad);
7577 if (name) return "¥Ç¡¼¥â¥ó»ÙÇÛ";
7578 if (desc) return "°Ëâ1ÂΤò̥λ¤¹¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú";
7580 if (name) return "Dominate Demon";
7581 if (desc) return "Attempts to charm a demon.";
7587 if (info) return info_power(power);
7591 if (!get_aim_dir(&dir)) return NULL;
7593 control_one_demon(dir, power);
7600 if (name) return "¥Ó¥¸¥ç¥ó";
7601 if (desc) return "¼þÊÕ¤ÎÃÏ·Á¤ò´¶ÃΤ¹¤ë¡£";
7603 if (name) return "Vision";
7604 if (desc) return "Maps nearby area.";
7608 int rad = DETECT_RAD_MAP;
7610 if (info) return info_radius(rad);
7621 if (name) return "ÂÑÃϹö";
7622 if (desc) return "°ìÄê»þ´Ö¡¢ÃϹö¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£";
7624 if (name) return "Resist Nether";
7625 if (desc) return "Gives resistance to nether for a while.";
7631 if (info) return info_duration(base, base);
7635 set_tim_res_nether(randint1(base) + base, FALSE);
7642 if (name) return "¥×¥é¥º¥Þ¡¦¥Ü¥ë¥È";
7643 if (desc) return "¥×¥é¥º¥Þ¤Î¥Ü¥ë¥È¤â¤·¤¯¤Ï¥Ó¡¼¥à¤òÊü¤Ä¡£";
7645 if (name) return "Plasma bolt";
7646 if (desc) return "Fires a bolt or beam of plasma.";
7650 int dice = 11 + (plev - 5) / 4;
7653 if (info) return info_damage(dice, sides, 0);
7657 if (!get_aim_dir(&dir)) return NULL;
7659 fire_bolt_or_beam(beam_chance(), GF_PLASMA, dir, damroll(dice, sides));
7666 if (name) return "¥Õ¥¡¥¤¥¢¡¦¥Ü¡¼¥ë";
7667 if (desc) return "±ê¤Îµå¤òÊü¤Ä¡£";
7669 if (name) return "Fire Ball";
7670 if (desc) return "Fires a ball of fire.";
7674 int dam = plev + 55;
7677 if (info) return info_damage(0, 0, dam);
7681 if (!get_aim_dir(&dir)) return NULL;
7683 fire_ball(GF_FIRE, dir, dam, rad);
7690 if (name) return "±ê¤Î¿Ï";
7691 if (desc) return "Éð´ï¤Ë±ê¤Î°À¤ò¤Ä¤±¤ë¡£";
7693 if (name) return "Fire Branding";
7694 if (desc) return "Makes current weapon fire branded.";
7707 if (name) return "ÃϹöµå";
7708 if (desc) return "Â礤ÊÃϹö¤Îµå¤òÊü¤Ä¡£";
7710 if (name) return "Nether Ball";
7711 if (desc) return "Fires a huge ball of nether.";
7715 int dam = plev * 3 / 2 + 100;
7716 int rad = plev / 20 + 2;
7718 if (info) return info_damage(0, 0, dam);
7722 if (!get_aim_dir(&dir)) return NULL;
7724 fire_ball(GF_NETHER, dir, dam, rad);
7731 if (name) return "¥Ç¡¼¥â¥ó¾¤´";
7732 if (desc) return "°Ëâ1ÂΤò¾¤´¤¹¤ë¡£";
7734 if (name) return "Summon Demon";
7735 if (desc) return "Summons a demon.";
7741 bool pet = !one_in_(3);
7744 if (pet) mode |= PM_FORCE_PET;
7745 else mode |= PM_NO_PET;
7746 if (!(pet && (plev < 50))) mode |= PM_ALLOW_GROUP;
7748 if (summon_specific((pet ? -1 : 0), py, px, plev*2/3+randint1(plev/2), SUMMON_DEMON, mode))
7751 msg_print("ⲫ¤Î°½¤¬½¼Ëþ¤·¤¿¡£");
7753 msg_print("The area fills with a stench of sulphur and brimstone.");
7760 msg_print("¡Ö¤´ÍѤǤ´¤¶¤¤¤Þ¤¹¤«¡¢¤´¼ç¿ÍÍÍ¡×");
7762 msg_print("'What is thy bidding... Master?'");
7768 msg_print("¡ÖÈܤ·¤¼Ô¤è¡¢²æ¤ÏÆò¤Î²¼Ëͤˤ¢¤é¤º¡ª ¤ªÁ°¤Îº²¤òĺ¤¯¤¾¡ª¡×");
7770 msg_print("'NON SERVIAM! Wretch! I shall feast on thy mortal soul!'");
7777 msg_print("°Ëâ¤Ï¸½¤ì¤Ê¤«¤Ã¤¿¡£");
7779 msg_print("No demons arrive.");
7789 if (name) return "°Ëâ¤ÎÌÜ";
7790 if (desc) return "°ìÄê»þ´Ö¡¢¥Æ¥ì¥Ñ¥·¡¼Ç½ÎϤòÆÀ¤ë¡£";
7792 if (name) return "Devilish Eye";
7793 if (desc) return "Gives telepathy for a while.";
7800 if (info) return info_duration(base, sides);
7804 set_tim_esp(randint1(base) + sides, FALSE);
7811 if (name) return "°Ëâ¤Î¥¯¥í¡¼¥¯";
7812 if (desc) return "¶²Éݤò¼è¤ê½ü¤¡¢°ìÄê»þ´Ö¡¢±ê¤ÈÎ䵤¤ÎÂÑÀ¡¢±ê¤Î¥ª¡¼¥é¤òÆÀ¤ë¡£ÂÑÀ¤ÏÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
7814 if (name) return "Devil Cloak";
7815 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.";
7821 if (info) return info_duration(base, base);
7825 int dur = randint1(base) + base;
7827 set_oppose_fire(dur, FALSE);
7828 set_oppose_cold(dur, FALSE);
7829 set_tim_sh_fire(dur, FALSE);
7838 if (name) return "ÍÏ´äή";
7839 if (desc) return "¼«Ê¬¤òÃæ¿´¤È¤·¤¿±ê¤Îµå¤òºî¤ê½Ð¤·¡¢¾²¤òÍÏ´ä¤ËÊѤ¨¤ë¡£";
7841 if (name) return "The Flow of Lava";
7842 if (desc) return "Generates a ball of fire centered on you which transforms floors to magma.";
7846 int dam = (55 + plev) * 2;
7849 if (info) return info_damage(0, 0, dam/2);
7853 fire_ball(GF_FIRE, 0, dam, rad);
7854 fire_ball_hide(GF_LAVA_FLOW, 0, 2 + randint1(2), rad);
7861 if (name) return "¥×¥é¥º¥Þµå";
7862 if (desc) return "¥×¥é¥º¥Þ¤Îµå¤òÊü¤Ä¡£";
7864 if (name) return "Plasma Ball";
7865 if (desc) return "Fires a ball of plasma.";
7869 int dam = plev * 3 / 2 + 80;
7870 int rad = 2 + plev / 40;
7872 if (info) return info_damage(0, 0, dam);
7876 if (!get_aim_dir(&dir)) return NULL;
7878 fire_ball(GF_PLASMA, dir, dam, rad);
7885 if (name) return "°ËâÊѲ½";
7886 if (desc) return "°ìÄê»þ´Ö¡¢°Ëâ¤ËÊѲ½¤¹¤ë¡£ÊѲ½¤·¤Æ¤¤¤ë´Ö¤ÏËÜÍè¤Î¼ï²¤ÎǽÎϤò¼º¤¤¡¢Âå¤ï¤ê¤Ë°Ëâ¤È¤·¤Æ¤ÎǽÎϤòÆÀ¤ë¡£";
7888 if (name) return "Polymorph Demon";
7889 if (desc) return "Mimic a demon for a while. Loses abilities of original race and gets abilities as a demon.";
7893 int base = 10 + plev / 2;
7895 if (info) return info_duration(base, base);
7899 set_mimic(base + randint1(base), MIMIC_DEMON, FALSE);
7906 if (name) return "ÃϹö¤ÎÇÈÆ°";
7907 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£Á±Îɤʥâ¥ó¥¹¥¿¡¼¤ËÆäËÂ礤ʥÀ¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
7909 if (name) return "Nather Wave";
7910 if (desc) return "Damages all monsters in sight. Hurts good monsters greatly.";
7914 int sides1 = plev * 2;
7915 int sides2 = plev * 2;
7917 if (info) return format("%sd%d+d%d", s_dam, sides1, sides2);
7921 dispel_monsters(randint1(sides1));
7922 dispel_good(randint1(sides2));
7929 if (name) return "¥µ¥¥å¥Ð¥¹¤ÎÀÜÊ";
7930 if (desc) return "°ø²Ìº®Íð¤Îµå¤òÊü¤Ä¡£";
7932 if (name) return "Kiss of Succubus";
7933 if (desc) return "Fires a ball of nexus.";
7937 int dam = 100 + plev * 2;
7940 if (info) return info_damage(0, 0, dam);
7944 if (!get_aim_dir(&dir)) return NULL;
7945 fire_ball(GF_NEXUS, dir, dam, rad);
7952 if (name) return "ÇËÌǤμê";
7953 if (desc) return "ÇËÌǤμê¤òÊü¤Ä¡£¿©¤é¤Ã¤¿¥â¥ó¥¹¥¿¡¼¤Ï¤½¤Î¤È¤¤ÎHP¤ÎȾʬÁ°¸å¤Î¥À¥á¡¼¥¸¤ò¼õ¤±¤ë¡£";
7955 if (name) return "Doom Hand";
7956 if (desc) return "Attempts to make a monster's HP almost half.";
7962 if (!get_aim_dir(&dir)) return NULL;
7964 else msg_print("<ÇËÌǤμê>¤òÊü¤Ã¤¿¡ª");
7966 else msg_print("You invoke the Hand of Doom!");
7969 fire_ball_hide(GF_HAND_DOOM, dir, plev * 2, 0);
7976 if (name) return "»Îµ¤¹âÍÈ";
7977 if (desc) return "°ìÄê»þ´Ö¡¢¥Ò¡¼¥í¡¼µ¤Ê¬¤Ë¤Ê¤ë¡£";
7979 if (name) return "Raise the Morale";
7980 if (desc) return "Removes fear, and gives bonus to hit and 10 more HP for a while.";
7986 if (info) return info_duration(base, base);
7990 set_hero(randint1(base) + base, FALSE);
7999 if (name) return "ÉÔÌǤÎÆùÂÎ";
8000 if (desc) return "°ìÄê»þ´Ö¡¢»þ´ÖµÕž¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£";
8002 if (name) return "Immortal Body";
8003 if (desc) return "Gives resistance to time for a while.";
8009 if (info) return info_duration(base, base);
8013 set_tim_res_time(randint1(base)+base, FALSE);
8020 if (name) return "¶¸µ¤¤Î±ß´Ä";
8021 if (desc) return "¼«Ê¬¤òÃæ¿´¤È¤·¤¿¥«¥ª¥¹¤Îµå¡¢º®Íð¤Îµå¤òȯÀ¸¤µ¤»¡¢¶á¤¯¤Î¥â¥ó¥¹¥¿¡¼¤ò̥λ¤¹¤ë¡£";
8023 if (name) return "Insanity Circle";
8024 if (desc) return "Generate balls of chaos, confusion and charm centered on you.";
8028 int dam = 50 + plev;
8029 int power = 20 + plev;
8030 int rad = 3 + plev / 20;
8032 if (info) return format("%s%d+%d", s_dam, dam/2, dam/2);
8036 fire_ball(GF_CHAOS, 0, dam, rad);
8037 fire_ball(GF_CONFUSION, 0, dam, rad);
8038 fire_ball(GF_CHARM, 0, power, rad);
8045 if (name) return "¥Ú¥Ã¥ÈÇúÇË";
8046 if (desc) return "Á´¤Æ¤Î¥Ú¥Ã¥È¤ò¶¯À©Åª¤ËÇúÇˤµ¤»¤ë¡£";
8048 if (name) return "Explode Pets";
8049 if (desc) return "Makes all pets explode.";
8062 if (name) return "¥°¥ì¡¼¥¿¡¼¥Ç¡¼¥â¥ó¾¤´";
8063 if (desc) return "¾åµé¥Ç¡¼¥â¥ó¤ò¾¤´¤¹¤ë¡£¾¤´¤¹¤ë¤Ë¤Ï¿Í´Ö('p','h','t'¤Çɽ¤µ¤ì¤ë¥â¥ó¥¹¥¿¡¼)¤Î»àÂΤòÊû¤²¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£";
8065 if (name) return "Summon Greater Demon";
8066 if (desc) return "Summons greater demon. It need to sacrifice a corpse of human ('p','h' or 't').";
8072 if (!cast_summon_greater_demon()) return NULL;
8079 if (name) return "ÃϹöÍò";
8080 if (desc) return "ĶµðÂç¤ÊÃϹö¤Îµå¤òÊü¤Ä¡£";
8082 if (name) return "Nether Storm";
8083 if (desc) return "Generate a huge ball of nether.";
8087 int dam = plev * 15;
8090 if (info) return info_damage(0, 0, dam);
8094 if (!get_aim_dir(&dir)) return NULL;
8096 fire_ball(GF_NETHER, dir, dam, rad);
8103 if (name) return "·ì¤Î¼ö¤¤";
8104 if (desc) return "¼«Ê¬¤¬¥À¥á¡¼¥¸¤ò¼õ¤±¤ë¤³¤È¤Ë¤è¤Ã¤ÆÂоݤ˼ö¤¤¤ò¤«¤±¡¢¥À¥á¡¼¥¸¤òÍ¿¤¨ÍÍ¡¹¤Ê¸ú²Ì¤ò°ú¤µ¯¤³¤¹¡£";
8106 if (name) return "Bloody Curse";
8107 if (desc) return "Puts blood curse which damages and causes various effects on a monster. You also take damage.";
8114 if (info) return info_damage(0, 0, dam);
8118 if (!get_aim_dir(&dir)) return NULL;
8120 fire_ball_hide(GF_BLOOD_CURSE, dir, dam, rad);
8122 take_hit(DAMAGE_USELIFE, 20 + randint1(30), "·ì¤Î¼ö¤¤", -1);
8124 take_hit(DAMAGE_USELIFE, 20 + randint1(30), "Blood curse", -1);
8132 if (name) return "ËⲦÊѲ½";
8133 if (desc) return "°Ëâ¤Î²¦¤ËÊѲ½¤¹¤ë¡£ÊѲ½¤·¤Æ¤¤¤ë´Ö¤ÏËÜÍè¤Î¼ï²¤ÎǽÎϤò¼º¤¤¡¢Âå¤ï¤ê¤Ë°Ëâ¤Î²¦¤È¤·¤Æ¤ÎǽÎϤòÆÀ¡¢ÊɤòÇ˲õ¤·¤Ê¤¬¤éÊ⤯¡£";
8135 if (name) return "Polymorph Demonlord";
8136 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.";
8142 if (info) return info_duration(base, base);
8146 set_mimic(base + randint1(base), MIMIC_DEMON_LORD, FALSE);
8156 static cptr do_crusade_spell(int spell, int mode)
8158 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
8159 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
8160 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
8161 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
8164 int plev = p_ptr->lev;
8170 if (name) return "Ĩȳ";
8171 if (desc) return "ÅÅ·â¤Î¥Ü¥ë¥È¤â¤·¤¯¤Ï¥Ó¡¼¥à¤òÊü¤Ä¡£";
8173 if (name) return "Punishment";
8174 if (desc) return "Fires a bolt or beam of lightning.";
8178 int dice = 3 + (plev - 1) / 5;
8181 if (info) return info_damage(dice, sides, 0);
8185 if (!get_aim_dir(&dir)) return NULL;
8187 fire_bolt_or_beam(beam_chance() - 10, GF_ELEC, dir, damroll(dice, sides));
8194 if (name) return "¼Ù°Â¸ºß´¶ÃÎ";
8195 if (desc) return "¶á¤¯¤Î¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ò´¶ÃΤ¹¤ë¡£";
8197 if (name) return "Detect Evil";
8198 if (desc) return "Detects all evil monsters in your vicinity.";
8202 int rad = DETECT_RAD_DEFAULT;
8204 if (info) return info_radius(rad);
8208 detect_monsters_evil(rad);
8215 if (name) return "¶²Éݽüµî";
8216 if (desc) return "¶²Éݤò¼è¤ê½ü¤¯¡£";
8218 if (name) return "Remove Fear";
8219 if (desc) return "Removes fear.";
8232 if (name) return "°Ò°µ";
8233 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤò¶²Éݤµ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
8235 if (name) return "Scare Monster";
8236 if (desc) return "Attempts to scare a monster.";
8242 if (info) return info_power(power);
8246 if (!get_aim_dir(&dir)) return NULL;
8248 fear_monster(dir, power);
8255 if (name) return "À»°è";
8256 if (desc) return "ÎÙÀܤ·¤¿Á´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò̲¤é¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
8258 if (name) return "Sanctuary";
8259 if (desc) return "Attempts to sleep monsters in the adjacent squares.";
8265 if (info) return info_power(power);
8269 sleep_monsters_touch();
8276 if (name) return "Æþ¸ý";
8277 if (desc) return "Ãæµ÷Î¥¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¤¹¤ë¡£";
8279 if (name) return "Portal";
8280 if (desc) return "Teleport medium distance.";
8284 int range = 25 + plev / 2;
8286 if (info) return info_range(range);
8290 teleport_player(range, FALSE);
8297 if (name) return "¥¹¥¿¡¼¥À¥¹¥È";
8298 if (desc) return "¥¿¡¼¥²¥Ã¥ÈÉÕ¶á¤ËÁ®¸÷¤Î¥Ü¥ë¥È¤òÏ¢¼Í¤¹¤ë¡£";
8300 if (name) return "Star Dust";
8301 if (desc) return "Fires many bolts of light near the target.";
8305 int dice = 3 + (plev - 1) / 9;
8308 if (info) return info_multi_damage_dice(dice, sides);
8312 if (!get_aim_dir(&dir)) return NULL;
8313 fire_blast(GF_LITE, dir, dice, sides, 10, 3);
8320 if (name) return "¿ÈÂξô²½";
8321 if (desc) return "½ý¡¢ÆÇ¡¢Û¯Û°¤«¤éÁ´²÷¤¹¤ë¡£";
8323 if (name) return "Purify";
8324 if (desc) return "Heals all cut, stun and poison status.";
8339 if (name) return "¼Ù°Èô¤Ð¤·";
8340 if (desc) return "¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼1ÂΤò¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
8342 if (name) return "Scatter Evil";
8343 if (desc) return "Attempts to teleport an evil monster away.";
8347 int power = MAX_SIGHT * 5;
8349 if (info) return info_power(power);
8353 if (!get_aim_dir(&dir)) return NULL;
8354 fire_ball(GF_AWAY_EVIL, dir, power, 0);
8361 if (name) return "À»¤Ê¤ë¸÷µå";
8362 if (desc) return "À»¤Ê¤ëÎϤò¤â¤ÄÊõ¼î¤òÊü¤Ä¡£¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ËÂФ·¤ÆÂ礤ʥÀ¥á¡¼¥¸¤òÍ¿¤¨¤ë¤¬¡¢Á±Îɤʥâ¥ó¥¹¥¿¡¼¤Ë¤Ï¸ú²Ì¤¬¤Ê¤¤¡£";
8364 if (name) return "Holy Orb";
8365 if (desc) return "Fires a ball with holy power. Hurts evil monsters greatly, but don't effect good monsters.";
8371 int rad = (plev < 30) ? 2 : 3;
8374 if (p_ptr->pclass == CLASS_PRIEST ||
8375 p_ptr->pclass == CLASS_HIGH_MAGE ||
8376 p_ptr->pclass == CLASS_SORCERER)
8377 base = plev + plev / 2;
8379 base = plev + plev / 4;
8382 if (info) return info_damage(dice, sides, base);
8386 if (!get_aim_dir(&dir)) return NULL;
8388 fire_ball(GF_HOLY_FIRE, dir, damroll(dice, sides) + base, rad);
8395 if (name) return "°Ëâʧ¤¤";
8396 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥¢¥ó¥Ç¥Ã¥ÉµÚ¤Ó°Ëâ¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¡¢¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ò¶²Éݤµ¤»¤ë¡£";
8398 if (name) return "Exorcism";
8399 if (desc) return "Damages all undead and demons in sight, and scares all evil monsters in sight.";
8406 if (info) return info_damage(1, sides, 0);
8410 dispel_undead(randint1(sides));
8411 dispel_demons(randint1(sides));
8419 if (name) return "²ò¼ö";
8420 if (desc) return "¥¢¥¤¥Æ¥à¤Ë¤«¤«¤Ã¤¿¼å¤¤¼ö¤¤¤ò²ò½ü¤¹¤ë¡£";
8422 if (name) return "Remove Curse";
8423 if (desc) return "Removes normal curses from equipped items.";
8432 msg_print("狼¤Ë¸«¼é¤é¤ì¤Æ¤¤¤ë¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£");
8434 msg_print("You feel as if someone is watching over you.");
8443 if (name) return "Æ©ÌÀ»ëǧ";
8444 if (desc) return "°ìÄê»þ´Ö¡¢Æ©ÌÀ¤Ê¤â¤Î¤¬¸«¤¨¤ë¤è¤¦¤Ë¤Ê¤ë¡£";
8446 if (name) return "Sense Unseen";
8447 if (desc) return "Gives see invisible for a while.";
8453 if (info) return info_duration(base, base);
8457 set_tim_invis(randint1(base) + base, FALSE);
8464 if (name) return "Âмٰ·ë³¦";
8465 if (desc) return "¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤Î¹¶·â¤òËɤ°¥Ð¥ê¥¢¤òÄ¥¤ë¡£";
8467 if (name) return "Protection from Evil";
8468 if (desc) return "Gives aura which protect you from evil monster's physical attack.";
8473 int sides = 3 * plev;
8475 if (info) return info_duration(base, sides);
8479 set_protevil(randint1(sides) + sides, FALSE);
8486 if (name) return "ºÛ¤¤ÎÍë";
8487 if (desc) return "¶¯ÎϤÊÅÅ·â¤Î¥Ü¥ë¥È¤òÊü¤Ä¡£";
8489 if (name) return "Judgment Thunder";
8490 if (desc) return "Fires a powerful bolt of lightning.";
8496 if (info) return info_damage(0, 0, dam);
8500 if (!get_aim_dir(&dir)) return NULL;
8501 fire_bolt(GF_ELEC, dir, dam);
8508 if (name) return "À»¤Ê¤ë¸æ¸ÀÍÕ";
8509 if (desc) return "»ë³¦Æâ¤Î¼Ù°¤Ê¸ºß¤ËÂ礤ʥÀ¥á¡¼¥¸¤òÍ¿¤¨¡¢ÂÎÎϤò²óÉü¤·¡¢ÆÇ¡¢¶²ÉÝ¡¢Û¯Û°¾õÂÖ¡¢Éé½ý¤«¤éÁ´²÷¤¹¤ë¡£";
8511 if (name) return "Holy Word";
8512 if (desc) return "Damages all evil monsters in sight, heals HP somewhat, and completely heals poison, fear, stun and cut status.";
8516 int dam_sides = plev * 6;
8520 if (info) return format("»:1d%d/²ó%d", dam_sides, heal);
8522 if (info) return format("dam:d%d/h%d", dam_sides, heal);
8527 dispel_evil(randint1(dam_sides));
8539 if (name) return "³«¤«¤ì¤¿Æ»";
8540 if (desc) return "°ìľÀþ¾å¤ÎÁ´¤Æ¤Î櫤ÈÈâ¤òÇ˲õ¤¹¤ë¡£";
8542 if (name) return "Unbarring Ways";
8543 if (desc) return "Fires a beam which destroy traps and doors.";
8549 if (!get_aim_dir(&dir)) return NULL;
8558 if (name) return "ÉõËâ";
8559 if (desc) return "¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ÎÆ°¤¤ò»ß¤á¤ë¡£";
8561 if (name) return "Arrest";
8562 if (desc) return "Attempts to paralyze an evil monster.";
8566 int power = plev * 2;
8568 if (info) return info_power(power);
8572 if (!get_aim_dir(&dir)) return NULL;
8580 if (name) return "À»¤Ê¤ë¥ª¡¼¥é";
8581 if (desc) return "°ìÄê»þ´Ö¡¢¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ò½ý¤Ä¤±¤ëÀ»¤Ê¤ë¥ª¡¼¥é¤òÆÀ¤ë¡£";
8583 if (name) return "Holy Aura";
8584 if (desc) return "Gives aura of holy power which injures evil monsters which attacked you for a while.";
8590 if (info) return info_duration(base, base);
8594 set_tim_sh_holy(randint1(base) + base, FALSE);
8601 if (name) return "¥¢¥ó¥Ç¥Ã¥É&°ËâÂ໶";
8602 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥¢¥ó¥Ç¥Ã¥ÉµÚ¤Ó°Ëâ¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
8604 if (name) return "Dispel Undead & Demons";
8605 if (desc) return "Damages all undead and demons in sight.";
8609 int sides = plev * 4;
8611 if (info) return info_damage(1, sides, 0);
8615 dispel_undead(randint1(sides));
8616 dispel_demons(randint1(sides));
8623 if (name) return "¼Ù°Â໶";
8624 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
8626 if (name) return "Dispel Evil";
8627 if (desc) return "Damages all evil monsters in sight.";
8631 int sides = plev * 4;
8633 if (info) return info_damage(1, sides, 0);
8637 dispel_evil(randint1(sides));
8644 if (name) return "À»¤Ê¤ë¿Ï";
8645 if (desc) return "Ä̾ï¤ÎÉð´ï¤ËÌǼ٤ΰÀ¤ò¤Ä¤±¤ë¡£";
8647 if (name) return "Holy Blade";
8648 if (desc) return "Makes current weapon especially deadly against evil monsters.";
8661 if (name) return "¥¹¥¿¡¼¥Ð¡¼¥¹¥È";
8662 if (desc) return "µðÂç¤ÊÁ®¸÷¤Îµå¤òÊü¤Ä¡£";
8664 if (name) return "Star Burst";
8665 if (desc) return "Fires a huge ball of powerful light.";
8669 int dam = 100 + plev * 2;
8672 if (info) return info_damage(0, 0, dam);
8676 if (!get_aim_dir(&dir)) return NULL;
8678 fire_ball(GF_LITE, dir, dam, rad);
8685 if (name) return "Å·»È¾¤´";
8686 if (desc) return "Å·»È¤ò1Âξ¤´¤¹¤ë¡£";
8688 if (name) return "Summon Angel";
8689 if (desc) return "Summons an angel.";
8695 bool pet = !one_in_(3);
8698 if (pet) mode |= PM_FORCE_PET;
8699 else mode |= PM_NO_PET;
8700 if (!(pet && (plev < 50))) mode |= PM_ALLOW_GROUP;
8702 if (summon_specific((pet ? -1 : 0), py, px, (plev * 3) / 2, SUMMON_ANGEL, mode))
8707 msg_print("¡Ö¤´ÍѤǤ´¤¶¤¤¤Þ¤¹¤«¡¢¤´¼ç¿ÍÍÍ¡×");
8709 msg_print("'What is thy bidding... Master?'");
8715 msg_print("¡Ö²æ¤ÏÆò¤Î²¼Ëͤˤ¢¤é¤º¡ª °¹Ô¼Ô¤è¡¢²ù¤¤²þ¤á¤è¡ª¡×");
8717 msg_print("Mortal! Repent of thy impiousness.");
8727 if (name) return "»Îµ¤¹âÍÈ";
8728 if (desc) return "°ìÄê»þ´Ö¡¢¥Ò¡¼¥í¡¼µ¤Ê¬¤Ë¤Ê¤ë¡£";
8730 if (name) return "Heroism";
8731 if (desc) return "Removes fear, and gives bonus to hit and 10 more HP for a while.";
8737 if (info) return info_duration(base, base);
8741 set_hero(randint1(base) + base, FALSE);
8750 if (name) return "¼ö¤¤Â໶";
8751 if (desc) return "¥¢¥¤¥Æ¥à¤Ë¤«¤«¤Ã¤¿¶¯ÎϤʼö¤¤¤ò²ò½ü¤¹¤ë¡£";
8753 if (name) return "Dispel Curse";
8754 if (desc) return "Removes normal and heavy curse from equipped items.";
8760 if (remove_all_curse())
8763 msg_print("狼¤Ë¸«¼é¤é¤ì¤Æ¤¤¤ë¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£");
8765 msg_print("You feel as if someone is watching over you.");
8774 if (name) return "¼Ù°ÄÉÊü";
8775 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ò¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
8777 if (name) return "Banish Evil";
8778 if (desc) return "Teleports all evil monsters in sight away unless resisted.";
8784 if (info) return info_power(power);
8788 if (banish_evil(power))
8791 msg_print("¿ÀÀ»¤ÊÎϤ¬¼Ù°¤òÂǤÁʧ¤Ã¤¿¡ª");
8793 msg_print("The holy power banishes evil!");
8803 if (name) return "¥Ï¥ë¥Þ¥²¥É¥ó";
8804 if (desc) return "¼þÊդΥ¢¥¤¥Æ¥à¡¢¥â¥ó¥¹¥¿¡¼¡¢ÃÏ·Á¤òÇ˲õ¤¹¤ë¡£";
8806 if (name) return "Armageddon";
8807 if (desc) return "Destroy everything in nearby area.";
8816 destroy_area(py, px, base + randint1(sides), FALSE);
8823 if (name) return "ÌܤˤÏÌܤò";
8824 if (desc) return "°ìÄê»þ´Ö¡¢¼«Ê¬¤¬¥À¥á¡¼¥¸¤ò¼õ¤±¤¿¤È¤¤Ë¹¶·â¤ò¹Ô¤Ã¤¿¥â¥ó¥¹¥¿¡¼¤ËÂФ·¤ÆƱÅù¤Î¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
8826 if (name) return "An Eye for an Eye";
8827 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.";
8833 if (info) return info_duration(base, base);
8837 set_tim_eyeeye(randint1(base) + base, FALSE);
8844 if (name) return "¿À¤ÎÅܤê";
8845 if (desc) return "¥¿¡¼¥²¥Ã¥È¤Î¼þ°Ï¤Ëʬ²ò¤Îµå¤ò¿¿ôÍî¤È¤¹¡£";
8847 if (name) return "Wrath of the God";
8848 if (desc) return "Drops many balls of disintegration near the target.";
8852 int dam = plev * 3 + 25;
8855 if (info) return info_multi_damage(dam);
8859 if (!cast_wrath_of_the_god(dam, rad)) return NULL;
8866 if (name) return "¿À°Ò";
8867 if (desc) return "ÎÙÀܤ¹¤ë¥â¥ó¥¹¥¿¡¼¤ËÀ»¤Ê¤ë¥À¥á¡¼¥¸¤òÍ¿¤¨¡¢»ë³¦Æâ¤Î¥â¥ó¥¹¥¿¡¼¤Ë¥À¥á¡¼¥¸¡¢¸ºÂ®¡¢Û¯Û°¡¢º®Í𡢶²ÉÝ¡¢Ì²¤ê¤òÍ¿¤¨¤ë¡£¤µ¤é¤ËÂÎÎϤò²óÉü¤¹¤ë¡£";
8869 if (name) return "Divine Intervention";
8870 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.";
8874 int b_dam = plev * 11;
8875 int d_dam = plev * 4;
8877 int power = plev * 4;
8880 if (info) return format("²ó%d/»%d+%d", heal, d_dam, b_dam/2);
8882 if (info) return format("h%d/dm%d+%d", heal, d_dam, b_dam/2);
8887 project(0, 1, py, px, b_dam, GF_HOLY_FIRE, PROJECT_KILL, -1);
8888 dispel_monsters(d_dam);
8890 stun_monsters(power);
8891 confuse_monsters(power);
8892 turn_monsters(power);
8893 stasis_monsters(power);
8901 if (name) return "À»Àï";
8902 if (desc) return "»ë³¦Æâ¤ÎÁ±Îɤʥâ¥ó¥¹¥¿¡¼¤ò¥Ú¥Ã¥È¤Ë¤·¤è¤¦¤È¤·¡¢¤Ê¤é¤Ê¤«¤Ã¤¿¾ì¹çµÚ¤ÓÁ±ÎɤǤʤ¤¥â¥ó¥¹¥¿¡¼¤ò¶²Éݤµ¤»¤ë¡£¤µ¤é¤Ë¿¿ô¤Î²Ã®¤µ¤ì¤¿µ³»Î¤ò¾¤´¤·¡¢¥Ò¡¼¥í¡¼¡¢½ËÊ¡¡¢²Ã®¡¢Âмٰ·ë³¦¤òÆÀ¤ë¡£";
8904 if (name) return "Crusade";
8905 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.";
8912 int sp_sides = 20 + plev;
8917 for (i = 0; i < 12; i++)
8924 scatter(&my, &mx, py, px, 4, 0);
8926 /* Require empty grids */
8927 if (cave_empty_bold2(my, mx)) break;
8929 if (attempt < 0) continue;
8930 summon_specific(-1, my, mx, plev, SUMMON_KNIGHTS, (PM_ALLOW_GROUP | PM_FORCE_PET | PM_HASTE));
8932 set_hero(randint1(base) + base, FALSE);
8933 set_blessed(randint1(base) + base, FALSE);
8934 set_fast(randint1(sp_sides) + sp_base, FALSE);
8935 set_protevil(randint1(base) + base, FALSE);
8946 static cptr do_music_spell(int spell, int mode)
8948 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
8949 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
8950 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
8951 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
8952 bool fail = (mode == SPELL_FAIL) ? TRUE : FALSE;
8953 bool cont = (mode == SPELL_CONT) ? TRUE : FALSE;
8954 bool stop = (mode == SPELL_STOP) ? TRUE : FALSE;
8957 static const char s_dam[] = "»½ý:";
8959 static const char s_dam[] = "dam ";
8963 int plev = p_ptr->lev;
8969 if (name) return "ÃÙÆߤβÎ";
8970 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò¸ºÂ®¤µ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
8972 if (name) return "Song of Holding";
8973 if (desc) return "Attempts to slow all monsters in sight.";
8976 /* Stop singing before start another */
8977 if (cast || fail) stop_singing();
8982 msg_print("¤æ¤Ã¤¯¤ê¤È¤·¤¿¥á¥í¥Ç¥£¤ò¸ý¤º¤µ¤ß»Ï¤á¤¿¡¥¡¥¡¥");
8984 msg_print("You start humming a slow, steady melody...");
8986 start_singing(spell, MUSIC_SLOW);
8992 if (info) return info_power(power);
9003 if (name) return "½ËÊ¡¤Î²Î";
9004 if (desc) return "Ì¿ÃæΨ¤ÈAC¤Î¥Ü¡¼¥Ê¥¹¤òÆÀ¤ë¡£";
9006 if (name) return "Song of Blessing";
9007 if (desc) return "Gives bonus to hit and AC for a few turns.";
9010 /* Stop singing before start another */
9011 if (cast || fail) stop_singing();
9016 msg_print("¸·¤«¤Ê¥á¥í¥Ç¥£¤òÁդǻϤ᤿¡¥¡¥¡¥");
9018 msg_print("The holy power of the Music of the Ainur enters you...");
9020 start_singing(spell, MUSIC_BLESS);
9025 if (!p_ptr->blessed)
9028 msg_print("¹â·é¤Êµ¤Ê¬¤¬¾Ã¤¨¼º¤»¤¿¡£");
9030 msg_print("The prayer has expired.");
9039 if (name) return "Êø²õ¤Î²»¿§";
9040 if (desc) return "¹ì²»¤Î¥Ü¥ë¥È¤òÊü¤Ä¡£";
9042 if (name) return "Wrecking Note";
9043 if (desc) return "Fires a bolt of sound.";
9046 /* Stop singing before start another */
9047 if (cast || fail) stop_singing();
9050 int dice = 4 + (plev - 1) / 5;
9053 if (info) return info_damage(dice, sides, 0);
9057 if (!get_aim_dir(&dir)) return NULL;
9059 fire_bolt(GF_SOUND, dir, damroll(dice, sides));
9066 if (name) return "Û¯Û°¤ÎÀûΧ";
9067 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤òÛ¯Û°¤µ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
9069 if (name) return "Stun Pattern";
9070 if (desc) return "Attempts to stun all monsters in sight.";
9073 /* Stop singing before start another */
9074 if (cast || fail) stop_singing();
9079 msg_print("âÁÏǤµ¤»¤ë¥á¥í¥Ç¥£¤òÁդǻϤ᤿¡¥¡¥¡¥");
9081 msg_print("You weave a pattern of sounds to bewilder and daze...");
9083 start_singing(spell, MUSIC_STUN);
9087 int dice = plev / 10;
9090 if (info) return info_power_dice(dice, sides);
9094 stun_monsters(damroll(dice, sides));
9102 if (name) return "À¸Ì¿¤Îή¤ì";
9103 if (desc) return "ÂÎÎϤò¾¯¤·²óÉü¤µ¤»¤ë¡£";
9105 if (name) return "Flow of Life";
9106 if (desc) return "Heals HP a little.";
9109 /* Stop singing before start another */
9110 if (cast || fail) stop_singing();
9115 msg_print("²Î¤òÄ̤·¤ÆÂΤ˳赤¤¬Ìá¤Ã¤Æ¤¤¿¡¥¡¥¡¥");
9117 msg_print("Life flows through you as you sing a song of healing...");
9119 start_singing(spell, MUSIC_L_LIFE);
9126 if (info) return info_heal(dice, sides, 0);
9130 hp_player(damroll(dice, sides));
9138 if (name) return "ÂÀÍۤβÎ";
9139 if (desc) return "¸÷¸»¤¬¾È¤é¤·¤Æ¤¤¤ëÈϰϤ«Éô²°Á´ÂΤò±Êµ×¤ËÌÀ¤ë¤¯¤¹¤ë¡£";
9141 if (name) return "Song of the Sun";
9142 if (desc) return "Lights up nearby area and the inside of a room permanently.";
9145 /* Stop singing before start another */
9146 if (cast || fail) stop_singing();
9150 int sides = plev / 2;
9151 int rad = plev / 10 + 1;
9153 if (info) return info_damage(dice, sides, 0);
9158 msg_print("¸÷¤êµ±¤¯²Î¤¬ÊÕ¤ê¤ò¾È¤é¤·¤¿¡£");
9160 msg_print("Your uplifting song brings brightness to dark places...");
9163 lite_area(damroll(dice, sides), rad);
9170 if (name) return "¶²ÉݤβÎ";
9171 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò¶²Éݤµ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
9173 if (name) return "Song of Fear";
9174 if (desc) return "Attempts to scare all monsters in sight.";
9177 /* Stop singing before start another */
9178 if (cast || fail) stop_singing();
9183 msg_print("¤ª¤É¤í¤ª¤É¤í¤·¤¤¥á¥í¥Ç¥£¤òÁդǻϤ᤿¡¥¡¥¡¥");
9185 msg_print("You start weaving a fearful pattern...");
9187 start_singing(spell, MUSIC_FEAR);
9193 if (info) return info_power(power);
9197 project_hack(GF_TURN_ALL, power);
9205 if (name) return "À襤¤Î²Î";
9206 if (desc) return "¥Ò¡¼¥í¡¼µ¤Ê¬¤Ë¤Ê¤ë¡£";
9208 if (name) return "Heroic Ballad";
9209 if (desc) return "Removes fear, and gives bonus to hit and 10 more HP for a while.";
9212 /* Stop singing before start another */
9213 if (cast || fail) stop_singing();
9218 msg_print("·ã¤·¤¤À襤¤Î²Î¤ò²Î¤Ã¤¿¡¥¡¥¡¥");
9220 msg_print("You start singing a song of intense fighting...");
9223 (void)hp_player(10);
9224 (void)set_afraid(0);
9226 /* Recalculate hitpoints */
9227 p_ptr->update |= (PU_HP);
9229 start_singing(spell, MUSIC_HERO);
9237 msg_print("¥Ò¡¼¥í¡¼¤Îµ¤Ê¬¤¬¾Ã¤¨¼º¤»¤¿¡£");
9239 msg_print("The heroism wears off.");
9241 /* Recalculate hitpoints */
9242 p_ptr->update |= (PU_HP);
9250 if (name) return "ÎîŪÃγÐ";
9251 if (desc) return "¶á¤¯¤Îæ«/Èâ/³¬Ãʤò´¶ÃΤ¹¤ë¡£¥ì¥Ù¥ë15¤ÇÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¡¢20¤ÇºâÊõ¤È¥¢¥¤¥Æ¥à¤ò´¶ÃΤǤ¤ë¤è¤¦¤Ë¤Ê¤ë¡£¥ì¥Ù¥ë25¤Ç¼þÊÕ¤ÎÃÏ·Á¤ò´¶ÃΤ·¡¢40¤Ç¤½¤Î³¬Á´ÂΤò±Êµ×¤Ë¾È¤é¤·¡¢¥À¥ó¥¸¥ç¥óÆâ¤Î¤¹¤Ù¤Æ¤Î¥¢¥¤¥Æ¥à¤ò´¶ÃΤ¹¤ë¡£¤³¤Î¸ú²Ì¤Ï²Î¤¤Â³¤±¤ë¤³¤È¤Ç½ç¤Ëµ¯¤³¤ë¡£";
9253 if (name) return "Clairaudience";
9254 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.";
9257 /* Stop singing before start another */
9258 if (cast || fail) stop_singing();
9263 msg_print("ÀŤ«¤Ê²»³Ú¤¬´¶³Ð¤ò¸¦¤®À¡¤Þ¤µ¤»¤¿¡¥¡¥¡¥");
9265 msg_print("Your quiet music sharpens your sense of hearing...");
9268 /* Hack -- Initialize the turn count */
9269 p_ptr->magic_num1[2] = 0;
9271 start_singing(spell, MUSIC_DETECT);
9275 int rad = DETECT_RAD_DEFAULT;
9277 if (info) return info_radius(rad);
9281 int count = p_ptr->magic_num1[2];
9283 if (count >= 19) wiz_lite(FALSE);
9287 if (plev > 39 && count < 19)
9288 p_ptr->magic_num1[2] = count + 1;
9292 /* There are too many hidden treasure. So... */
9293 /* detect_treasure(rad); */
9294 detect_objects_gold(rad);
9295 detect_objects_normal(rad);
9297 if (plev > 24 && count < 11)
9298 p_ptr->magic_num1[2] = count + 1;
9302 detect_monsters_invis(rad);
9303 detect_monsters_normal(rad);
9305 if (plev > 19 && count < 6)
9306 p_ptr->magic_num1[2] = count + 1;
9308 detect_traps(rad, TRUE);
9312 if (plev > 14 && count < 3)
9313 p_ptr->magic_num1[2] = count + 1;
9321 if (name) return "º²¤Î²Î";
9322 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ËÂФ·¤ÆÀº¿À¹¶·â¤ò¹Ô¤¦¡£";
9324 if (name) return "Soul Shriek";
9325 if (desc) return "Damages all monsters in sight with PSI damages.";
9328 /* Stop singing before start another */
9329 if (cast || fail) stop_singing();
9334 msg_print("Àº¿À¤òDZ¤¸¶Ê¤²¤ë²Î¤ò²Î¤Ã¤¿¡¥¡¥¡¥");
9336 msg_print("You start singing a song of soul in pain...");
9338 start_singing(spell, MUSIC_PSI);
9343 int sides = plev * 3 / 2;
9345 if (info) return info_damage(dice, sides, 0);
9349 project_hack(GF_PSI, damroll(dice, sides));
9357 if (name) return "Ãμ±¤Î²Î";
9358 if (desc) return "¼«Ê¬¤Î¤¤¤ë¥Þ¥¹¤ÈÎÙ¤ê¤Î¥Þ¥¹¤ËÍî¤Á¤Æ¤¤¤ë¥¢¥¤¥Æ¥à¤ò´ÕÄꤹ¤ë¡£";
9360 if (name) return "Song of Lore";
9361 if (desc) return "Identifies all items which are in the adjacent squares.";
9364 /* Stop singing before start another */
9365 if (cast || fail) stop_singing();
9370 msg_print("¤³¤ÎÀ¤³¦¤ÎÃ챤¬Î®¤ì¹þ¤ó¤Ç¤¤¿¡¥¡¥¡¥");
9372 msg_print("You recall the rich lore of the world...");
9374 start_singing(spell, MUSIC_ID);
9380 if (info) return info_radius(rad);
9383 * ²Î¤Î³«»Ï»þ¤Ë¤â¸ú²Ìȯư¡§
9384 * MPÉÔ¤ǴÕÄ꤬ȯư¤µ¤ì¤ëÁ°¤Ë²Î¤¬ÃæÃǤ·¤Æ¤·¤Þ¤¦¤Î¤òËɻߡ£
9388 project(0, rad, py, px, 0, GF_IDENTIFY, PROJECT_ITEM, -1);
9396 if (name) return "±£ÆۤβÎ";
9397 if (desc) return "±£Ì©¹ÔưǽÎϤò¾å¾º¤µ¤»¤ë¡£";
9399 if (name) return "Hiding Tune";
9400 if (desc) return "Gives improved stealth.";
9403 /* Stop singing before start another */
9404 if (cast || fail) stop_singing();
9409 msg_print("¤¢¤Ê¤¿¤Î»Ñ¤¬·Ê¿§¤Ë¤È¤±¤³¤ó¤Ç¤¤¤Ã¤¿¡¥¡¥¡¥");
9411 msg_print("Your song carries you beyond the sight of mortal eyes...");
9413 start_singing(spell, MUSIC_STEALTH);
9418 if (!p_ptr->tim_stealth)
9421 msg_print("»Ñ¤¬¤Ï¤Ã¤¤ê¤È¸«¤¨¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£");
9423 msg_print("You are no longer hided.");
9432 if (name) return "¸¸±Æ¤ÎÀûΧ";
9433 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤òº®Í𤵤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
9435 if (name) return "Illusion Pattern";
9436 if (desc) return "Attempts to confuse all monsters in sight.";
9439 /* Stop singing before start another */
9440 if (cast || fail) stop_singing();
9445 msg_print("ÊÕ¤ê°ìÌ̤˸¸±Æ¤¬¸½¤ì¤¿¡¥¡¥¡¥");
9447 msg_print("You weave a pattern of sounds to beguile and confuse...");
9449 start_singing(spell, MUSIC_CONF);
9453 int power = plev * 2;
9455 if (info) return info_power(power);
9459 confuse_monsters(power);
9467 if (name) return "ÇËÌǤ櫤Ó";
9468 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ËÂФ·¤Æ¹ì²»¹¶·â¤ò¹Ô¤¦¡£";
9470 if (name) return "Doomcall";
9471 if (desc) return "Damages all monsters in sight with booming sound.";
9474 /* Stop singing before start another */
9475 if (cast || fail) stop_singing();
9480 msg_print("¹ì²»¤¬¶Á¤¤¤¿¡¥¡¥¡¥");
9482 msg_print("The fury of the Downfall of Numenor lashes out...");
9484 start_singing(spell, MUSIC_SOUND);
9488 int dice = 10 + plev / 5;
9491 if (info) return info_damage(dice, sides, 0);
9495 project_hack(GF_SOUND, damroll(dice, sides));
9503 if (name) return "¥Õ¥£¥ê¥¨¥ë¤Î²Î";
9504 if (desc) return "¼þ°Ï¤Î»àÂΤä¹ü¤òÀ¸¤ÊÖ¤¹¡£";
9506 if (name) return "Firiel's Song";
9507 if (desc) return "Resurrects nearby corpse and skeletons. And makes these your pets.";
9511 /* Stop singing before start another */
9512 if (cast || fail) stop_singing();
9517 msg_print("À¸Ì¿¤ÈÉü³è¤Î¥Æ¡¼¥Þ¤òÁդǻϤ᤿¡¥¡¥¡¥");
9519 msg_print("The themes of life and revival are woven into your song...");
9522 animate_dead(0, py, px);
9529 if (name) return "ι¤ÎÃç´Ö";
9530 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò̥λ¤¹¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
9532 if (name) return "Fellowship Chant";
9533 if (desc) return "Attempts to charm all monsters in sight.";
9536 /* Stop singing before start another */
9537 if (cast || fail) stop_singing();
9542 msg_print("°Â¤é¤«¤Ê¥á¥í¥Ç¥£¤òÁդǻϤ᤿¡¥¡¥¡¥");
9544 msg_print("You weave a slow, soothing melody of imploration...");
9546 start_singing(spell, MUSIC_CHARM);
9550 int dice = 10 + plev / 15;
9553 if (info) return info_power_dice(dice, sides);
9557 charm_monsters(damroll(dice, sides));
9565 if (name) return "ʬ²ò²»ÇÈ";
9566 if (desc) return "Êɤò·¡¤ê¿Ê¤à¡£¼«Ê¬¤Î¸µ¤Î¥¢¥¤¥Æ¥à¤Ï¾øȯ¤¹¤ë¡£";
9568 if (name) return "Sound of disintegration";
9569 if (desc) return "Turns all rocks in the adjacent squares to mud.";
9572 /* Stop singing before start another */
9573 if (cast || fail) stop_singing();
9578 msg_print("Ê´ºÕ¤¹¤ë¥á¥í¥Ç¥£¤òÁդǻϤ᤿¡¥¡¥¡¥");
9580 msg_print("You weave a violent pattern of sounds to break wall.");
9582 start_singing(spell, MUSIC_WALL);
9587 * ²Î¤Î³«»Ï»þ¤Ë¤â¸ú²Ìȯư¡§
9588 * MPÉÔ¤Ǹú²Ì¤¬È¯Æ°¤µ¤ì¤ëÁ°¤Ë²Î¤¬ÃæÃǤ·¤Æ¤·¤Þ¤¦¤Î¤òËɻߡ£
9592 project(0, 0, py, px,
9593 0, GF_DISINTEGRATE, PROJECT_KILL | PROJECT_ITEM | PROJECT_HIDE, -1);
9600 if (name) return "¸µÁÇÂÑÀ";
9601 if (desc) return "»À¡¢ÅÅ·â¡¢±ê¡¢Î䵤¡¢ÆǤËÂФ¹¤ëÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
9603 if (name) return "Finrod's Resistance";
9604 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.";
9607 /* Stop singing before start another */
9608 if (cast || fail) stop_singing();
9613 msg_print("¸µÁǤÎÎϤËÂФ¹¤ëǦÂѤβΤò²Î¤Ã¤¿¡£");
9615 msg_print("You sing a song of perseverance against powers...");
9617 start_singing(spell, MUSIC_RESIST);
9622 if (!p_ptr->oppose_acid)
9625 msg_print("»À¤Ø¤ÎÂÑÀ¤¬Çö¤ì¤¿µ¤¤¬¤¹¤ë¡£");
9627 msg_print("You feel less resistant to acid.");
9631 if (!p_ptr->oppose_elec)
9634 msg_print("ÅÅ·â¤Ø¤ÎÂÑÀ¤¬Çö¤ì¤¿µ¤¤¬¤¹¤ë¡£");
9636 msg_print("You feel less resistant to elec.");
9640 if (!p_ptr->oppose_fire)
9643 msg_print("²Ð¤Ø¤ÎÂÑÀ¤¬Çö¤ì¤¿µ¤¤¬¤¹¤ë¡£");
9645 msg_print("You feel less resistant to fire.");
9649 if (!p_ptr->oppose_cold)
9652 msg_print("Î䵤¤Ø¤ÎÂÑÀ¤¬Çö¤ì¤¿µ¤¤¬¤¹¤ë¡£");
9654 msg_print("You feel less resistant to cold.");
9658 if (!p_ptr->oppose_pois)
9661 msg_print("ÆǤؤÎÂÑÀ¤¬Çö¤ì¤¿µ¤¤¬¤¹¤ë¡£");
9663 msg_print("You feel less resistant to pois.");
9672 if (name) return "¥Û¥Ó¥Ã¥È¤Î¥á¥í¥Ç¥£";
9673 if (desc) return "²Ã®¤¹¤ë¡£";
9675 if (name) return "Hobbit Melodies";
9676 if (desc) return "Hastes you.";
9679 /* Stop singing before start another */
9680 if (cast || fail) stop_singing();
9685 msg_print("·Ú²÷¤Ê²Î¤ò¸ý¤º¤µ¤ß»Ï¤á¤¿¡¥¡¥¡¥");
9687 msg_print("You start singing joyful pop song...");
9689 start_singing(spell, MUSIC_SPEED);
9697 msg_print("Æ°¤¤ÎÁÇÁᤵ¤¬¤Ê¤¯¤Ê¤Ã¤¿¤è¤¦¤À¡£");
9699 msg_print("You feel yourself slow down.");
9708 if (name) return "ÏĤó¤ÀÀ¤³¦";
9709 if (desc) return "¶á¤¯¤Î¥â¥ó¥¹¥¿¡¼¤ò¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
9711 if (name) return "World Contortion";
9712 if (desc) return "Teleports all nearby monsters away unless resisted.";
9716 int rad = plev / 15 + 1;
9717 int power = plev * 3 + 1;
9719 if (info) return info_radius(rad);
9721 /* Stop singing before start another */
9722 if (cast || fail) stop_singing();
9727 msg_print("²Î¤¬¶õ´Ö¤òÏĤ᤿¡¥¡¥¡¥");
9729 msg_print("Reality whirls wildly as you sing a dizzying melody...");
9732 project(0, rad, py, px, power, GF_AWAY_ALL, PROJECT_KILL, -1);
9739 if (name) return "Â໶¤Î²Î";
9740 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ËÆäËÂ礤ʥÀ¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
9742 if (name) return "Dispelling chant";
9743 if (desc) return "Damages all monsters in sight. Hurts evil monsters greatly.";
9746 /* Stop singing before start another */
9747 if (cast || fail) stop_singing();
9752 msg_print("ÂѤ¨¤é¤ì¤Ê¤¤ÉÔ¶¨Ï²»¤¬Å¨¤òÀÕ¤áΩ¤Æ¤¿¡¥¡¥¡¥");
9754 msg_print("You cry out in an ear-wracking voice...");
9756 start_singing(spell, MUSIC_DISPEL);
9760 int m_sides = plev * 3;
9761 int e_sides = plev * 3;
9763 if (info) return format("%s1d%d+1d%d", s_dam, m_sides, e_sides);
9767 dispel_monsters(randint1(m_sides));
9768 dispel_evil(randint1(e_sides));
9775 if (name) return "¥µ¥ë¥Þ¥ó¤Î´Å¸À";
9776 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò¸ºÂ®¤µ¤»¡¢Ì²¤é¤»¤è¤¦¤È¤¹¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
9778 if (name) return "The Voice of Saruman";
9779 if (desc) return "Attempts to slow and sleep all monsters in sight.";
9782 /* Stop singing before start another */
9783 if (cast || fail) stop_singing();
9788 msg_print("Í¥¤·¤¯¡¢Ì¥ÎÏŪ¤Ê²Î¤ò¸ý¤º¤µ¤ß»Ï¤á¤¿¡¥¡¥¡¥");
9790 msg_print("You start humming a gentle and attractive song...");
9792 start_singing(spell, MUSIC_SARUMAN);
9798 if (info) return info_power(power);
9811 if (name) return "Íò¤Î²»¿§";
9812 if (desc) return "¹ì²»¤Î¥Ó¡¼¥à¤òÊü¤Ä¡£";
9814 if (name) return "Song of the Tempest";
9815 if (desc) return "Fires a beam of sound.";
9819 int dice = 15 + (plev - 1) / 2;
9822 if (info) return info_damage(dice, sides, 0);
9824 /* Stop singing before start another */
9825 if (cast || fail) stop_singing();
9829 if (!get_aim_dir(&dir)) return NULL;
9831 fire_beam(GF_SOUND, dir, damroll(dice, sides));
9838 if (name) return "¤â¤¦°ì¤Ä¤ÎÀ¤³¦";
9839 if (desc) return "¸½ºß¤Î³¬¤òºÆ¹½À®¤¹¤ë¡£";
9841 if (name) return "Ambarkanta";
9842 if (desc) return "Recreates current dungeon level.";
9849 if (info) return info_delay(base, sides);
9851 /* Stop singing before start another */
9852 if (cast || fail) stop_singing();
9857 msg_print("¼þ°Ï¤¬ÊѲ½¤·»Ï¤á¤¿¡¥¡¥¡¥");
9859 msg_print("You sing of the primeval shaping of Middle-earth...");
9869 if (name) return "Ç˲õ¤ÎÀûΧ";
9870 if (desc) return "¼þ°Ï¤Î¥À¥ó¥¸¥ç¥ó¤òÍɤ餷¡¢ÊɤȾ²¤ò¥é¥ó¥À¥à¤ËÆþ¤ìÊѤ¨¤ë¡£";
9872 if (name) return "Wrecking Pattern";
9873 if (desc) return "Shakes dungeon structure, and results in random swapping of floors and walls.";
9876 /* Stop singing before start another */
9877 if (cast || fail) stop_singing();
9882 msg_print("Ç˲õŪ¤Ê²Î¤¬¶Á¤¤ï¤¿¤Ã¤¿¡¥¡¥¡¥");
9884 msg_print("You weave a pattern of sounds to contort and shatter...");
9886 start_singing(spell, MUSIC_QUAKE);
9892 if (info) return info_radius(rad);
9896 earthquake(py, px, 10);
9905 if (name) return "ÄäÂڤβÎ";
9906 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤òËãá㤵¤»¤è¤¦¤È¤¹¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
9908 if (name) return "Stationary Shriek";
9909 if (desc) return "Attempts to freeze all monsters in sight.";
9912 /* Stop singing before start another */
9913 if (cast || fail) stop_singing();
9918 msg_print("¤æ¤Ã¤¯¤ê¤È¤·¤¿¥á¥í¥Ç¥£¤òÁդǻϤ᤿¡¥¡¥¡¥");
9920 msg_print("You weave a very slow pattern which is almost likely to stop...");
9922 start_singing(spell, MUSIC_STASIS);
9926 int power = plev * 4;
9928 if (info) return info_power(power);
9932 stasis_monsters(power);
9940 if (name) return "¼é¤ê¤Î²Î";
9941 if (desc) return "¼«Ê¬¤Î¤¤¤ë¾²¤Î¾å¤Ë¡¢¥â¥ó¥¹¥¿¡¼¤¬Ä̤êÈ´¤±¤¿¤ê¾¤´¤µ¤ì¤¿¤ê¤¹¤ë¤³¤È¤¬¤Ç¤¤Ê¤¯¤Ê¤ë¥ë¡¼¥ó¤òÉÁ¤¯¡£";
9943 if (name) return "Endurance";
9944 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.";
9948 /* Stop singing before start another */
9949 if (cast || fail) stop_singing();
9954 msg_print("²Î¤¬¿ÀÀ»¤Ê¾ì¤òºî¤ê½Ð¤·¤¿¡¥¡¥¡¥");
9956 msg_print("The holy power of the Music is creating sacred field...");
9966 if (name) return "±Ñͺ¤Î»í";
9967 if (desc) return "²Ã®¤·¡¢¥Ò¡¼¥í¡¼µ¤Ê¬¤Ë¤Ê¤ê¡¢»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
9969 if (name) return "The Hero's Poem";
9970 if (desc) return "Hastes you. Gives heroism. Damages all monsters in sight.";
9973 /* Stop singing before start another */
9974 if (cast || fail) stop_singing();
9979 msg_print("±Ñͺ¤Î²Î¤ò¸ý¤º¤µ¤ó¤À¡¥¡¥¡¥");
9981 msg_print("You chant a powerful, heroic call to arms...");
9983 (void)hp_player(10);
9984 (void)set_afraid(0);
9986 /* Recalculate hitpoints */
9987 p_ptr->update |= (PU_HP);
9989 start_singing(spell, MUSIC_SHERO);
9997 msg_print("¥Ò¡¼¥í¡¼¤Îµ¤Ê¬¤¬¾Ã¤¨¼º¤»¤¿¡£");
9999 msg_print("The heroism wears off.");
10001 /* Recalculate hitpoints */
10002 p_ptr->update |= (PU_HP);
10008 msg_print("Æ°¤¤ÎÁÇÁᤵ¤¬¤Ê¤¯¤Ê¤Ã¤¿¤è¤¦¤À¡£");
10010 msg_print("You feel yourself slow down.");
10017 int sides = plev * 3;
10019 if (info) return info_damage(dice, sides, 0);
10023 dispel_monsters(damroll(dice, sides));
10030 if (name) return "¥ä¥ô¥¡¥ó¥Ê¤Î½õ¤±";
10031 if (desc) return "¶¯ÎϤʲóÉü¤Î²Î¤Ç¡¢Éé½ý¤ÈÛ¯Û°¾õÂÖ¤âÁ´²÷¤¹¤ë¡£";
10033 if (name) return "Relief of Yavanna";
10034 if (desc) return "Powerful healing song. Also heals cut and stun completely.";
10037 /* Stop singing before start another */
10038 if (cast || fail) stop_singing();
10043 msg_print("²Î¤òÄ̤·¤ÆÂΤ˳赤¤¬Ìá¤Ã¤Æ¤¤¿¡¥¡¥¡¥");
10045 msg_print("Life flows through you as you sing the song...");
10047 start_singing(spell, MUSIC_H_LIFE);
10054 if (info) return info_heal(dice, sides, 0);
10058 hp_player(damroll(dice, sides));
10068 if (name) return "ºÆÀ¸¤Î²Î";
10069 if (desc) return "¤¹¤Ù¤Æ¤Î¥¹¥Æ¡¼¥¿¥¹¤È·Ð¸³Ãͤò²óÉü¤¹¤ë¡£";
10071 if (name) return "Goddess' rebirth";
10072 if (desc) return "Restores all stats and experience.";
10076 /* Stop singing before start another */
10077 if (cast || fail) stop_singing();
10082 msg_print("°Å¹õ¤ÎÃæ¤Ë¸÷¤ÈÈþ¤ò¤Õ¤ê¤Þ¤¤¤¿¡£ÂΤ¬¸µ¤Î³èÎϤò¼è¤êÌᤷ¤¿¡£");
10084 msg_print("You strewed light and beauty in the dark as you sing. You feel refreshed.");
10086 (void)do_res_stat(A_STR);
10087 (void)do_res_stat(A_INT);
10088 (void)do_res_stat(A_WIS);
10089 (void)do_res_stat(A_DEX);
10090 (void)do_res_stat(A_CON);
10091 (void)do_res_stat(A_CHR);
10092 (void)restore_level();
10099 if (name) return "¥µ¥¦¥í¥ó¤ÎËâ½Ñ";
10100 if (desc) return "Èó¾ï¤Ë¶¯ÎϤǤ´¤¯¾®¤µ¤¤¹ì²»¤Îµå¤òÊü¤Ä¡£";
10102 if (name) return "Wizardry of Sauron";
10103 if (desc) return "Fires an extremely powerful tiny ball of sound.";
10107 int dice = 50 + plev;
10111 if (info) return info_damage(dice, sides, 0);
10113 /* Stop singing before start another */
10114 if (cast || fail) stop_singing();
10118 if (!get_aim_dir(&dir)) return NULL;
10120 fire_ball(GF_SOUND, dir, damroll(dice, sides), rad);
10127 if (name) return "¥Õ¥£¥ó¥´¥ë¥Õ¥£¥ó¤ÎÄ©Àï";
10128 if (desc) return "¥À¥á¡¼¥¸¤ò¼õ¤±¤Ê¤¯¤Ê¤ë¥Ð¥ê¥¢¤òÄ¥¤ë¡£";
10130 if (name) return "Fingolfin's Challenge";
10131 if (desc) return "Generates barrier which completely protect you from almost all damages. Takes a few your turns when the barrier breaks.";
10134 /* Stop singing before start another */
10135 if (cast || fail) stop_singing();
10140 msg_print("¥Õ¥£¥ó¥´¥ë¥Õ¥£¥ó¤Î̽²¦¤Ø¤ÎÄ©Àï¤ò²Î¤Ã¤¿¡¥¡¥¡¥");
10142 msg_print("You recall the valor of Fingolfin's challenge to the Dark Lord...");
10146 p_ptr->redraw |= (PR_MAP);
10148 /* Update monsters */
10149 p_ptr->update |= (PU_MONSTERS);
10152 p_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
10154 start_singing(spell, MUSIC_INVULN);
10159 if (!p_ptr->invuln)
10162 msg_print("̵Ũ¤Ç¤Ï¤Ê¤¯¤Ê¤Ã¤¿¡£");
10164 msg_print("The invulnerability wears off.");
10167 p_ptr->redraw |= (PR_MAP);
10169 /* Update monsters */
10170 p_ptr->update |= (PU_MONSTERS);
10173 p_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
10184 static cptr do_hissatsu_spell(int spell, int mode)
10186 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
10187 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
10188 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
10191 int plev = p_ptr->lev;
10197 if (name) return "ÈôÈÓ¹Ë";
10198 if (desc) return "2¥Þ¥¹Î¥¤ì¤¿¤È¤³¤í¤Ë¤¤¤ë¥â¥ó¥¹¥¿¡¼¤ò¹¶·â¤¹¤ë¡£";
10200 if (name) return "Tobi-Izuna";
10201 if (desc) return "Attacks a two squares distant monster.";
10206 project_length = 2;
10207 if (!get_aim_dir(&dir)) return NULL;
10209 project_hook(GF_ATTACK, dir, HISSATSU_2, PROJECT_STOP | PROJECT_KILL);
10215 if (name) return "¸Þ·î±«»Â¤ê";
10216 if (desc) return "3Êý¸þ¤ËÂФ·¤Æ¹¶·â¤¹¤ë¡£";
10218 if (name) return "3-Way Attack";
10219 if (desc) return "Attacks in 3 directions in one time.";
10227 if (!get_rep_dir2(&dir)) return NULL;
10228 if (dir == 5) return NULL;
10230 for (cdir = 0;cdir < 8; cdir++)
10232 if (cdd[cdir] == dir) break;
10235 if (cdir == 8) return NULL;
10237 y = py + ddy_cdd[cdir];
10238 x = px + ddx_cdd[cdir];
10239 if (cave[y][x].m_idx)
10240 py_attack(y, x, 0);
10243 msg_print("¹¶·â¤Ï¶õ¤òÀڤä¿¡£");
10245 msg_print("You attack the empty air.");
10247 y = py + ddy_cdd[(cdir + 7) % 8];
10248 x = px + ddx_cdd[(cdir + 7) % 8];
10249 if (cave[y][x].m_idx)
10250 py_attack(y, x, 0);
10253 msg_print("¹¶·â¤Ï¶õ¤òÀڤä¿¡£");
10255 msg_print("You attack the empty air.");
10257 y = py + ddy_cdd[(cdir + 1) % 8];
10258 x = px + ddx_cdd[(cdir + 1) % 8];
10259 if (cave[y][x].m_idx)
10260 py_attack(y, x, 0);
10263 msg_print("¹¶·â¤Ï¶õ¤òÀڤä¿¡£");
10265 msg_print("You attack the empty air.");
10272 if (name) return "¥Ö¡¼¥á¥é¥ó";
10273 if (desc) return "Éð´ï¤ò¼ê¸µ¤ËÌá¤Ã¤Æ¤¯¤ë¤è¤¦¤ËÅꤲ¤ë¡£Ìá¤Ã¤Æ¤³¤Ê¤¤¤³¤È¤â¤¢¤ë¡£";
10275 if (name) return "Boomerang";
10276 if (desc) return "Throws current weapon. And it'll return to your hand unless failed.";
10281 if (!do_cmd_throw_aux(1, TRUE, 0)) return NULL;
10287 if (name) return "±ëÎî";
10288 if (desc) return "²Ð±êÂÑÀ¤Î¤Ê¤¤¥â¥ó¥¹¥¿¡¼¤ËÂç¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
10290 if (name) return "Burning Strike";
10291 if (desc) return "Attacks a monster with more damage unless it has resistance to fire.";
10298 if (!get_rep_dir2(&dir)) return NULL;
10299 if (dir == 5) return NULL;
10304 if (cave[y][x].m_idx)
10305 py_attack(y, x, HISSATSU_FIRE);
10309 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10311 msg_print("There is no monster.");
10320 if (name) return "»¦µ¤´¶ÃÎ";
10321 if (desc) return "¶á¤¯¤Î»×¹Í¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¥â¥ó¥¹¥¿¡¼¤ò´¶ÃΤ¹¤ë¡£";
10323 if (name) return "Detect Ferocity";
10324 if (desc) return "Detects all monsters except mindless in your vicinity.";
10329 detect_monsters_mind(DETECT_RAD_DEFAULT);
10335 if (name) return "¤ß¤ÍÂǤÁ";
10336 if (desc) return "Áê¼ê¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤Ê¤¤¤¬¡¢Û¯Û°¤È¤µ¤»¤ë¡£";
10338 if (name) return "Strike to Stun";
10339 if (desc) return "Attempts to stun a monster in the adjacent.";
10346 if (!get_rep_dir2(&dir)) return NULL;
10347 if (dir == 5) return NULL;
10352 if (cave[y][x].m_idx)
10353 py_attack(y, x, HISSATSU_MINEUCHI);
10357 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10359 msg_print("There is no monster.");
10368 if (name) return "¥«¥¦¥ó¥¿¡¼";
10369 if (desc) return "Áê¼ê¤Ë¹¶·â¤µ¤ì¤¿¤È¤¤ËÈ¿·â¤¹¤ë¡£È¿·â¤¹¤ë¤¿¤Ó¤ËMP¤ò¾ÃÈñ¡£";
10371 if (name) return "Counter";
10372 if (desc) return "Prepares to counterattack. When attack by a monster, strikes back using SP each time.";
10380 msg_print("¾èÇÏÃæ¤Ë¤Ï̵Íý¤À¡£");
10382 msg_print("You cannot do it when riding.");
10387 msg_print("Áê¼ê¤Î¹¶·â¤ËÂФ·¤Æ¿È¹½¤¨¤¿¡£");
10389 msg_print("You prepare to counter blow.");
10391 p_ptr->counter = TRUE;
10397 if (name) return "ʧ¤¤È´¤±";
10398 if (desc) return "¹¶·â¤·¤¿¸å¡¢È¿ÂЦ¤ËÈ´¤±¤ë¡£";
10400 if (name) return "Harainuke";
10401 if (desc) return "Attacks monster with your weapons normally, then move through counter side of the monster.";
10411 msg_print("¾èÇÏÃæ¤Ë¤Ï̵Íý¤À¡£");
10413 msg_print("You cannot do it when riding.");
10418 if (!get_rep_dir2(&dir)) return NULL;
10420 if (dir == 5) return NULL;
10424 if (!cave[y][x].m_idx)
10427 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10429 msg_print("There is no monster.");
10434 py_attack(y, x, 0);
10436 if (!player_can_enter(cave[y][x].feat, 0) || is_trap(cave[y][x].feat))
10442 if (player_can_enter(cave[y][x].feat, 0) && !is_trap(cave[y][x].feat) && !cave[y][x].m_idx)
10446 /* Move the player */
10447 (void)move_player_effect(y, x, MPE_FORGET_FLOW | MPE_HANDLE_STUFF | MPE_DONT_PICKUP);
10454 if (name) return "¥µ¡¼¥Ú¥ó¥Ä¥¿¥ó";
10455 if (desc) return "ÆÇÂÑÀ¤Î¤Ê¤¤¥â¥ó¥¹¥¿¡¼¤ËÂç¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
10457 if (name) return "Serpent's Tongue";
10458 if (desc) return "Attacks a monster with more damage unless it has resistance to poison.";
10465 if (!get_rep_dir2(&dir)) return NULL;
10466 if (dir == 5) return NULL;
10471 if (cave[y][x].m_idx)
10472 py_attack(y, x, HISSATSU_POISON);
10476 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10478 msg_print("There is no monster.");
10487 if (name) return "»ÂËâ·õÆõ¤ÎÂÀÅá";
10488 if (desc) return "À¸Ì¿¤Î¤Ê¤¤¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ËÂç¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¤¬¡¢Â¾¤Î¥â¥ó¥¹¥¿¡¼¤Ë¤ÏÁ´¤¯¸ú²Ì¤¬¤Ê¤¤¡£";
10490 if (name) return "Zammaken";
10491 if (desc) return "Attacks an evil unliving monster with great damage. No effect to other monsters.";
10498 if (!get_rep_dir2(&dir)) return NULL;
10499 if (dir == 5) return NULL;
10504 if (cave[y][x].m_idx)
10505 py_attack(y, x, HISSATSU_ZANMA);
10509 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10511 msg_print("There is no monster.");
10520 if (name) return "ÎöÉ÷·õ";
10521 if (desc) return "¹¶·â¤·¤¿Áê¼ê¤ò¸åÊý¤Ø¿á¤Èô¤Ð¤¹¡£";
10523 if (name) return "Wind Blast";
10524 if (desc) return "Attacks an adjacent monster, and blow it away.";
10531 if (!get_rep_dir2(&dir)) return NULL;
10532 if (dir == 5) return NULL;
10537 if (cave[y][x].m_idx)
10538 py_attack(y, x, 0);
10542 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10544 msg_print("There is no monster.");
10548 if (d_info[dungeon_type].flags1 & DF1_NO_MELEE)
10552 if (cave[y][x].m_idx)
10555 int ty = y, tx = x;
10556 int oy = y, ox = x;
10557 int m_idx = cave[y][x].m_idx;
10558 monster_type *m_ptr = &m_list[m_idx];
10561 monster_desc(m_name, m_ptr, 0);
10563 for (i = 0; i < 5; i++)
10567 if (cave_empty_bold(y, x))
10574 if ((ty != oy) || (tx != ox))
10577 msg_format("%s¤ò¿á¤Èô¤Ð¤·¤¿¡ª", m_name);
10579 msg_format("You blow %s away!", m_name);
10581 cave[oy][ox].m_idx = 0;
10582 cave[ty][tx].m_idx = m_idx;
10586 update_mon(m_idx, TRUE);
10590 if (r_info[m_ptr->r_idx].flags7 & (RF7_LITE_MASK | RF7_DARK_MASK))
10591 p_ptr->update |= (PU_MON_LITE);
10599 if (name) return "Åá¾¢¤ÎÌÜÍø¤";
10600 if (desc) return "Éð´ï¡¦Ëɶñ¤ò1¤Ä¼±Ê̤¹¤ë¡£¥ì¥Ù¥ë45°Ê¾å¤ÇÉð´ï¡¦Ëɶñ¤ÎǽÎϤò´°Á´¤ËÃΤ뤳¤È¤¬¤Ç¤¤ë¡£";
10602 if (name) return "Judge";
10603 if (desc) return "Identifies a weapon or armor. Or *identifies* these at level 45.";
10610 if (!identify_fully(TRUE)) return NULL;
10614 if (!ident_spell(TRUE)) return NULL;
10621 if (name) return "ÇË´ä»Â";
10622 if (desc) return "´ä¤ò²õ¤·¡¢´äÀзϤΥâ¥ó¥¹¥¿¡¼¤ËÂç¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
10624 if (name) return "Rock Smash";
10625 if (desc) return "Breaks rock. Or greatly damage a monster made by rocks.";
10632 if (!get_rep_dir2(&dir)) return NULL;
10633 if (dir == 5) return NULL;
10638 if (cave[y][x].m_idx)
10639 py_attack(y, x, HISSATSU_HAGAN);
10641 if (!cave_have_flag_bold(y, x, FF_HURT_ROCK)) break;
10643 /* Destroy the feature */
10644 cave_alter_feat(y, x, FF_HURT_ROCK);
10646 /* Update some things */
10647 p_ptr->update |= (PU_FLOW);
10653 if (name) return "Íð¤ìÀã·î²Ö";
10654 if (desc) return "¹¶·â²ó¿ô¤¬Áý¤¨¡¢Î䵤ÂÑÀ¤Î¤Ê¤¤¥â¥ó¥¹¥¿¡¼¤ËÂç¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
10656 if (name) return "Midare-Setsugekka";
10657 if (desc) return "Attacks a monster with increased number of attacks and more damage unless it has resistance to cold.";
10664 if (!get_rep_dir2(&dir)) return NULL;
10665 if (dir == 5) return NULL;
10670 if (cave[y][x].m_idx)
10671 py_attack(y, x, HISSATSU_COLD);
10675 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10677 msg_print("There is no monster.");
10686 if (name) return "µÞ½êÆͤ";
10687 if (desc) return "¥â¥ó¥¹¥¿¡¼¤ò°ì·â¤ÇÅݤ¹¹¶·â¤ò·«¤ê½Ð¤¹¡£¼ºÇÔ¤¹¤ë¤È1ÅÀ¤·¤«¥À¥á¡¼¥¸¤òÍ¿¤¨¤é¤ì¤Ê¤¤¡£";
10689 if (name) return "Spot Aiming";
10690 if (desc) return "Attempts to kill a monster instantly. If failed cause only 1HP of damage.";
10697 if (!get_rep_dir2(&dir)) return NULL;
10698 if (dir == 5) return NULL;
10703 if (cave[y][x].m_idx)
10704 py_attack(y, x, HISSATSU_KYUSHO);
10708 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10710 msg_print("There is no monster.");
10719 if (name) return "Ëâ¿À»Â¤ê";
10720 if (desc) return "²ñ¿´¤Î°ì·â¤Ç¹¶·â¤¹¤ë¡£¹¶·â¤¬¤«¤ï¤µ¤ì¤ä¤¹¤¤¡£";
10722 if (name) return "Majingiri";
10723 if (desc) return "Attempts to attack with critical hit. But this attack is easy to evade for a monster.";
10730 if (!get_rep_dir2(&dir)) return NULL;
10731 if (dir == 5) return NULL;
10736 if (cave[y][x].m_idx)
10737 py_attack(y, x, HISSATSU_MAJIN);
10741 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10743 msg_print("There is no monster.");
10752 if (name) return "¼Î¤Æ¿È";
10753 if (desc) return "¶¯ÎϤʹ¶·â¤ò·«¤ê½Ð¤¹¡£¼¡¤Î¥¿¡¼¥ó¤Þ¤Ç¤Î´Ö¡¢¿©¤é¤¦¥À¥á¡¼¥¸¤¬Áý¤¨¤ë¡£";
10755 if (name) return "Desperate Attack";
10756 if (desc) return "Attacks with all of your power. But all damages you take will be doubled for one turn.";
10763 if (!get_rep_dir2(&dir)) return NULL;
10764 if (dir == 5) return NULL;
10769 if (cave[y][x].m_idx)
10770 py_attack(y, x, HISSATSU_SUTEMI);
10774 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10776 msg_print("There is no monster.");
10780 p_ptr->sutemi = TRUE;
10786 if (name) return "Íë·âÏÉÄÞ»Â";
10787 if (desc) return "ÅÅ·âÂÑÀ¤Î¤Ê¤¤¥â¥ó¥¹¥¿¡¼¤ËÈó¾ï¤ËÂ礤¤¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
10789 if (name) return "Lightning Eagle";
10790 if (desc) return "Attacks a monster with more damage unless it has resistance to electricity.";
10797 if (!get_rep_dir2(&dir)) return NULL;
10798 if (dir == 5) return NULL;
10803 if (cave[y][x].m_idx)
10804 py_attack(y, x, HISSATSU_ELEC);
10808 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10810 msg_print("There is no monster.");
10819 if (name) return "Æþ¿È";
10820 if (desc) return "ÁÇÁ᤯Áê¼ê¤Ë¶á´ó¤ê¹¶·â¤¹¤ë¡£";
10822 if (name) return "Rush Attack";
10823 if (desc) return "Steps close to a monster and attacks at a time.";
10828 if (!rush_attack(NULL)) return NULL;
10834 if (name) return "ÀÖή±²";
10835 if (desc) return "¼«Ê¬¼«¿È¤â½ý¤òºî¤ê¤Ä¤Ä¡¢¤½¤Î½ý¤¬¿¼¤¤¤Û¤ÉÂ礤¤°ÒÎϤÇÁ´Êý¸þ¤ÎŨ¤ò¹¶·â¤Ç¤¤ë¡£À¸¤¤Æ¤¤¤Ê¤¤¥â¥ó¥¹¥¿¡¼¤Ë¤Ï¸ú²Ì¤¬¤Ê¤¤¡£";
10837 if (name) return "Bloody Maelstrom";
10838 if (desc) return "Attacks all adjacent monsters with power corresponding to your cut status. Then increases your cut status. No effect to unliving monsters.";
10846 monster_type *m_ptr;
10848 if (p_ptr->cut < 300)
10849 set_cut(p_ptr->cut + 300);
10851 set_cut(p_ptr->cut * 2);
10853 for (dir = 0; dir < 8; dir++)
10855 y = py + ddy_ddd[dir];
10856 x = px + ddx_ddd[dir];
10857 c_ptr = &cave[y][x];
10859 /* Get the monster */
10860 m_ptr = &m_list[c_ptr->m_idx];
10862 /* Hack -- attack monsters */
10863 if (c_ptr->m_idx && (m_ptr->ml || cave_have_flag_bold(y, x, FF_PROJECT)))
10865 if (!monster_living(&r_info[m_ptr->r_idx]))
10869 monster_desc(m_name, m_ptr, 0);
10871 msg_format("%s¤Ë¤Ï¸ú²Ì¤¬¤Ê¤¤¡ª", m_name);
10873 msg_format("%s is unharmed!", m_name);
10876 else py_attack(y, x, HISSATSU_SEKIRYUKA);
10884 if (name) return "·ã¿Ì·â";
10885 if (desc) return "ÃϿ̤òµ¯¤³¤¹¡£";
10887 if (name) return "Earthquake Blow";
10888 if (desc) return "Shakes dungeon structure, and results in random swapping of floors and walls.";
10895 if (!get_rep_dir2(&dir)) return NULL;
10896 if (dir == 5) return NULL;
10901 if (cave[y][x].m_idx)
10902 py_attack(y, x, HISSATSU_QUAKE);
10904 earthquake(py, px, 10);
10910 if (name) return "ÃÏÁö¤ê";
10911 if (desc) return "¾×·âÇȤΥӡ¼¥à¤òÊü¤Ä¡£";
10913 if (name) return "Crack";
10914 if (desc) return "Fires a beam of shock wave.";
10919 int total_damage = 0, basedam, i;
10920 u32b flgs[TR_FLAG_SIZE];
10921 object_type *o_ptr;
10922 if (!get_aim_dir(&dir)) return NULL;
10924 msg_print("Éð´ï¤òÂ礤¯¿¶¤ê²¼¤í¤·¤¿¡£");
10926 msg_print("You swing your weapon downward.");
10928 for (i = 0; i < 2; i++)
10932 if (!buki_motteruka(INVEN_RARM+i)) break;
10933 o_ptr = &inventory[INVEN_RARM+i];
10934 basedam = (o_ptr->dd * (o_ptr->ds + 1)) * 50;
10935 damage = o_ptr->to_d * 100;
10936 object_flags(o_ptr, flgs);
10937 if ((o_ptr->name1 == ART_VORPAL_BLADE) || (o_ptr->name1 == ART_CHAINSWORD))
10943 else if (have_flag(flgs, TR_VORPAL))
10945 /* vorpal flag only */
10950 damage *= p_ptr->num_blow[i];
10951 total_damage += damage / 200;
10952 if (i) total_damage = total_damage*7/10;
10954 fire_beam(GF_FORCE, dir, total_damage);
10960 if (name) return "µ¤Ç÷¤Îͺ¶«¤Ó";
10961 if (desc) return "»ë³¦Æâ¤ÎÁ´¥â¥ó¥¹¥¿¡¼¤ËÂФ·¤Æ¹ì²»¤Î¹¶·â¤ò¹Ô¤¦¡£¤µ¤é¤Ë¡¢¶á¤¯¤Ë¤¤¤ë¥â¥ó¥¹¥¿¡¼¤òÅܤ餻¤ë¡£";
10963 if (name) return "War Cry";
10964 if (desc) return "Damages all monsters in sight with sound. Aggravate nearby monsters.";
10970 msg_print("ͺ¶«¤Ó¤ò¤¢¤²¤¿¡ª");
10972 msg_print("You roar out!");
10974 project_hack(GF_SOUND, randint1(plev * 3));
10975 aggravate_monsters(0);
10981 if (name) return "̵Áл°ÃÊ";
10982 if (desc) return "¶¯ÎϤÊ3Ãʹ¶·â¤ò·«¤ê½Ð¤¹¡£";
10984 if (name) return "Musou-Sandan";
10985 if (desc) return "Attacks with powerful 3 strikes.";
10992 if (!get_rep_dir2(&dir)) return NULL;
10993 if (dir == 5) return NULL;
10995 for (i = 0; i < 3; i++)
11001 monster_type *m_ptr;
11005 c_ptr = &cave[y][x];
11008 py_attack(y, x, HISSATSU_3DAN);
11012 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
11014 msg_print("There is no monster.");
11019 if (d_info[dungeon_type].flags1 & DF1_NO_MELEE)
11024 /* Monster is dead? */
11025 if (!c_ptr->m_idx) break;
11029 m_idx = c_ptr->m_idx;
11030 m_ptr = &m_list[m_idx];
11032 /* Monster cannot move back? */
11033 if (!monster_can_enter(ny, nx, &r_info[m_ptr->r_idx], 0))
11036 if (i < 2) msg_print(NULL);
11041 cave[ny][nx].m_idx = m_idx;
11045 update_mon(m_idx, TRUE);
11047 /* Redraw the old spot */
11050 /* Redraw the new spot */
11053 /* Player can move forward? */
11054 if (player_can_enter(c_ptr->feat, 0))
11056 /* Move the player */
11057 if (!move_player_effect(y, x, MPE_FORGET_FLOW | MPE_HANDLE_STUFF | MPE_DONT_PICKUP)) break;
11061 if (i < 2) msg_print(NULL);
11068 if (name) return "µÛ·ìµ´¤Î²ç";
11069 if (desc) return "¹¶·â¤·¤¿Áê¼ê¤ÎÂÎÎϤòµÛ¤¤¤È¤ê¡¢¼«Ê¬¤ÎÂÎÎϤò²óÉü¤µ¤»¤ë¡£À¸Ì¿¤ò»ý¤¿¤Ê¤¤¥â¥ó¥¹¥¿¡¼¤Ë¤ÏÄ̤¸¤Ê¤¤¡£";
11071 if (name) return "Vampire's Fang";
11072 if (desc) return "Attacks with vampiric strikes which absorbs HP from a monster and gives them to you. No effect to unliving monsters.";
11079 if (!get_rep_dir2(&dir)) return NULL;
11080 if (dir == 5) return NULL;
11085 if (cave[y][x].m_idx)
11086 py_attack(y, x, HISSATSU_DRAIN);
11090 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
11092 msg_print("There is no monster.");
11101 if (name) return "¸¸ÏÇ";
11102 if (desc) return "»ë³¦Æâ¤Îµ¯¤¤Æ¤¤¤ëÁ´¥â¥ó¥¹¥¿¡¼¤ËÛ¯Û°¡¢º®Íð¡¢Ì²¤ê¤òÍ¿¤¨¤è¤¦¤È¤¹¤ë¡£";
11104 if (name) return "Moon Dazzling";
11105 if (desc) return "Attempts to stun, confuse and sleep all waking monsters.";
11111 msg_print("Éð´ï¤òÉÔµ¬Â§¤ËÍɤ餷¤¿¡¥¡¥¡¥");
11113 msg_print("You irregularly wave your weapon...");
11115 project_hack(GF_ENGETSU, plev * 4);
11116 project_hack(GF_ENGETSU, plev * 4);
11117 project_hack(GF_ENGETSU, plev * 4);
11123 if (name) return "É´¿Í»Â¤ê";
11124 if (desc) return "Ϣ³¤·¤ÆÆþ¿È¤Ç¥â¥ó¥¹¥¿¡¼¤ò¹¶·â¤¹¤ë¡£¹¶·â¤¹¤ë¤¿¤Ó¤ËMP¤ò¾ÃÈñ¡£MP¤¬¤Ê¤¯¤Ê¤ë¤«¡¢¥â¥ó¥¹¥¿¡¼¤òÅݤ»¤Ê¤«¤Ã¤¿¤éÉ´¿Í»Â¤ê¤Ï½ªÎ»¤¹¤ë¡£";
11126 if (name) return "Hundred Slaughter";
11127 if (desc) return "Performs a series of rush attacks. The series continues while killing each monster in a time and SP remains.";
11132 const int mana_cost_per_monster = 8;
11138 if (!rush_attack(&mdeath)) break;
11141 /* Reserve needed mana point */
11142 p_ptr->csp -= technic_info[REALM_HISSATSU - MIN_TECHNIC][26].smana;
11146 p_ptr->csp -= mana_cost_per_monster;
11148 if (!mdeath) break;
11151 p_ptr->redraw |= PR_MANA;
11154 while (p_ptr->csp > mana_cost_per_monster);
11156 if (new) return NULL;
11158 /* Restore reserved mana */
11159 p_ptr->csp += technic_info[REALM_HISSATSU - MIN_TECHNIC][26].smana;
11165 if (name) return "Å·æÆζÁ®";
11166 if (desc) return "»ë³¦Æâ¤Î¾ì½ê¤ò»ØÄꤷ¤Æ¡¢¤½¤Î¾ì½ê¤È¼«Ê¬¤Î´Ö¤Ë¤¤¤ëÁ´¥â¥ó¥¹¥¿¡¼¤ò¹¶·â¤·¡¢¤½¤Î¾ì½ê¤Ë°ÜÆ°¤¹¤ë¡£";
11168 if (name) return "Dragonic Flash";
11169 if (desc) return "Runs toward given location while attacking all monsters on the path.";
11176 if (!tgt_pt(&x, &y)) return NULL;
11178 if (!cave_player_teleportable_bold(y, x, FALSE, FALSE) ||
11179 (distance(y, x, py, px) > MAX_SIGHT / 2) ||
11180 !projectable(py, px, y, x))
11183 msg_print("¼ºÇÔ¡ª");
11185 msg_print("You cannot move to that place!");
11189 if (p_ptr->anti_tele)
11192 msg_print("ÉԻ׵ĤÊÎϤ¬¥Æ¥ì¥Ý¡¼¥È¤òËɤ¤¤À¡ª");
11194 msg_print("A mysterious force prevents you from teleporting!");
11199 project(0, 0, y, x, HISSATSU_ISSEN, GF_ATTACK, PROJECT_BEAM | PROJECT_KILL, -1);
11200 teleport_player_to(y, x, TRUE, FALSE);
11206 if (name) return "Æó½Å¤Î·õ·â";
11207 if (desc) return "1¥¿¡¼¥ó¤Ç2ÅÙ¹¶·â¤ò¹Ô¤¦¡£";
11209 if (name) return "Twin Slash";
11210 if (desc) return "double attacks at a time.";
11217 if (!get_rep_dir(&dir, FALSE)) return NULL;
11222 if (cave[y][x].m_idx)
11224 py_attack(y, x, 0);
11225 if (cave[y][x].m_idx)
11228 py_attack(y, x, 0);
11234 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
11236 msg_print("You don't see any monster in this direction");
11245 if (name) return "¸×ÉúÀäÅáÀª";
11246 if (desc) return "¶¯ÎϤʹ¶·â¤ò¹Ô¤¤¡¢¶á¤¯¤Î¾ì½ê¤Ë¤â¸ú²Ì¤¬µÚ¤Ö¡£";
11248 if (name) return "Kofuku-Zettousei";
11249 if (desc) return "Performs a powerful attack which even effect nearby monsters.";
11254 int total_damage = 0, basedam, i;
11256 u32b flgs[TR_FLAG_SIZE];
11257 object_type *o_ptr;
11259 if (!get_rep_dir2(&dir)) return NULL;
11260 if (dir == 5) return NULL;
11265 if (d_info[dungeon_type].flags1 & DF1_NO_MELEE)
11268 msg_print("¤Ê¤¼¤«¹¶·â¤¹¤ë¤³¤È¤¬¤Ç¤¤Ê¤¤¡£");
11270 msg_print("Something prevent you from attacking.");
11275 msg_print("Éð´ï¤òÂ礤¯¿¶¤ê²¼¤í¤·¤¿¡£");
11277 msg_print("You swing your weapon downward.");
11279 for (i = 0; i < 2; i++)
11282 if (!buki_motteruka(INVEN_RARM+i)) break;
11283 o_ptr = &inventory[INVEN_RARM+i];
11284 basedam = (o_ptr->dd * (o_ptr->ds + 1)) * 50;
11285 damage = o_ptr->to_d * 100;
11286 object_flags(o_ptr, flgs);
11287 if ((o_ptr->name1 == ART_VORPAL_BLADE) || (o_ptr->name1 == ART_CHAINSWORD))
11293 else if (have_flag(flgs, TR_VORPAL))
11295 /* vorpal flag only */
11300 damage += p_ptr->to_d[i] * 100;
11301 damage *= p_ptr->num_blow[i];
11302 total_damage += (damage / 100);
11304 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);
11310 if (name) return "·Ä±Àµ´Ç¦·õ";
11311 if (desc) return "¼«Ê¬¤â¥À¥á¡¼¥¸¤ò¤¯¤é¤¦¤¬¡¢Áê¼ê¤ËÈó¾ï¤ËÂ礤ʥÀ¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£¥¢¥ó¥Ç¥Ã¥É¤Ë¤ÏÆä˸ú²Ì¤¬¤¢¤ë¡£";
11313 if (name) return "Keiun-Kininken";
11314 if (desc) return "Attacks a monster with extremely powerful damage. But you also takes some damages. Hurts a undead monster greatly.";
11321 if (!get_rep_dir2(&dir)) return NULL;
11322 if (dir == 5) return NULL;
11327 if (cave[y][x].m_idx)
11328 py_attack(y, x, HISSATSU_UNDEAD);
11332 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
11334 msg_print("There is no monster.");
11339 take_hit(DAMAGE_NOESCAPE, 100 + randint1(100), "·Ä±Àµ´Ç¦·õ¤ò»È¤Ã¤¿¾×·â", -1);
11341 take_hit(DAMAGE_NOESCAPE, 100 + randint1(100), "exhaustion on using Keiun-Kininken", -1);
11348 if (name) return "ÀÚÊ¢";
11349 if (desc) return "¡ÖÉð»ÎÆ»¤È¤Ï¡¢»à¤Ì¤³¤È¤È¸«¤Ä¤±¤¿¤ê¡£¡×";
11351 if (name) return "Harakiri";
11352 if (desc) return "'Busido is found in death'";
11359 if (!get_check("ËÜÅö¤Ë¼«»¦¤·¤Þ¤¹¤«¡©")) return NULL;
11361 if (!get_check("Do you really want to commit suicide? ")) return NULL;
11363 /* Special Verification for suicide */
11365 prt("³Îǧ¤Î¤¿¤á '@' ¤ò²¡¤·¤Æ²¼¤µ¤¤¡£", 0, 0);
11367 prt("Please verify SUICIDE by typing the '@' sign: ", 0, 0);
11373 if (i != '@') return NULL;
11374 if (p_ptr->total_winner)
11376 take_hit(DAMAGE_FORCE, 9999, "Seppuku", -1);
11377 p_ptr->total_winner = TRUE;
11382 msg_print("Éð»ÎÆ»¤È¤Ï¡¢»à¤Ì¤³¤È¤È¸«¤Ä¤±¤¿¤ê¡£");
11383 take_hit(DAMAGE_FORCE, 9999, "ÀÚÊ¢", -1);
11385 msg_print("Meaning of Bushi-do is found in the death.");
11386 take_hit(DAMAGE_FORCE, 9999, "Seppuku", -1);
11398 * Do everything for each spell
11400 cptr do_spell(int realm, int spell, int mode)
11404 case REALM_LIFE: return do_life_spell(spell, mode);
11405 case REALM_SORCERY: return do_sorcery_spell(spell, mode);
11406 case REALM_NATURE: return do_nature_spell(spell, mode);
11407 case REALM_CHAOS: return do_chaos_spell(spell, mode);
11408 case REALM_DEATH: return do_death_spell(spell, mode);
11409 case REALM_TRUMP: return do_trump_spell(spell, mode);
11410 case REALM_ARCANE: return do_arcane_spell(spell, mode);
11411 case REALM_CRAFT: return do_craft_spell(spell, mode);
11412 case REALM_DAEMON: return do_daemon_spell(spell, mode);
11413 case REALM_CRUSADE: return do_crusade_spell(spell, mode);
11414 case REALM_MUSIC: return do_music_spell(spell, mode);
11415 case REALM_HISSATSU: return do_hissatsu_spell(spell, mode);