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, TELEPORT_PASSIVE);
515 teleport_player(100, TELEPORT_PASSIVE);
519 teleport_player(200, TELEPORT_PASSIVE);
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, TELEPORT_PASSIVE);
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, TELEPORT_PASSIVE);
750 msg_print("¥Æ¥ì¥Ý¡¼¥È¡¦¥«¡¼¥É¤À¡£");
752 msg_print("It's a teleport trump card.");
755 teleport_player(200, TELEPORT_PASSIVE);
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, 0L);
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, 0L);
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 "Produces a Ration of Food.";
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, 0L);
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, 0L);
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, 0L);
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, 0L);
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, 0L);
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 "Infravision";
6685 if (desc) return "Gives infravision for a while.";
6691 if (info) return info_duration(base, base);
6695 set_tim_infra(base + randint1(base), FALSE);
6702 if (name) return "²óÉüÎ϶¯²½";
6703 if (desc) return "°ìÄê»þ´Ö¡¢²óÉüÎϤ¬Áý¶¯¤µ¤ì¤ë¡£";
6705 if (name) return "Regeneration";
6706 if (desc) return "Gives regeneration ability for a while.";
6712 if (info) return info_duration(base, base);
6716 set_tim_regen(base + randint1(base), FALSE);
6723 if (name) return "¶õÊ¢½¼Â";
6724 if (desc) return "ËþÊ¢¤Ë¤Ê¤ë¡£";
6726 if (name) return "Satisfy Hunger";
6727 if (desc) return "Satisfies hunger.";
6733 set_food(PY_FOOD_MAX - 1);
6740 if (name) return "ÂÑÎ䵤";
6741 if (desc) return "°ìÄê»þ´Ö¡¢Î䵤¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
6743 if (name) return "Resist Cold";
6744 if (desc) return "Gives resistance to cold. This resistance can be added to which from equipment for more powerful resistance.";
6750 if (info) return info_duration(base, base);
6754 set_oppose_cold(randint1(base) + base, FALSE);
6761 if (name) return "ÂѲбê";
6762 if (desc) return "°ìÄê»þ´Ö¡¢±ê¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
6764 if (name) return "Resist Fire";
6765 if (desc) return "Gives resistance to fire. This resistance can be added to which from equipment for more powerful resistance.";
6771 if (info) return info_duration(base, base);
6775 set_oppose_fire(randint1(base) + base, FALSE);
6782 if (name) return "»Îµ¤¹âÍÈ";
6783 if (desc) return "°ìÄê»þ´Ö¡¢¥Ò¡¼¥í¡¼µ¤Ê¬¤Ë¤Ê¤ë¡£";
6785 if (name) return "Heroism";
6786 if (desc) return "Removes fear, and gives bonus to hit and 10 more HP for a while.";
6792 if (info) return info_duration(base, base);
6796 set_hero(randint1(base) + base, FALSE);
6805 if (name) return "ÂÑÅÅ·â";
6806 if (desc) return "°ìÄê»þ´Ö¡¢ÅÅ·â¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
6808 if (name) return "Resist Lightning";
6809 if (desc) return "Gives resistance to electricity. This resistance can be added to which from equipment for more powerful resistance.";
6815 if (info) return info_duration(base, base);
6819 set_oppose_elec(randint1(base) + base, FALSE);
6826 if (name) return "ÂÑ»À";
6827 if (desc) return "°ìÄê»þ´Ö¡¢»À¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
6829 if (name) return "Resist Acid";
6830 if (desc) return "Gives resistance to acid. This resistance can be added to which from equipment for more powerful resistance.";
6836 if (info) return info_duration(base, base);
6840 set_oppose_acid(randint1(base) + base, FALSE);
6847 if (name) return "Æ©ÌÀ»ëǧ";
6848 if (desc) return "°ìÄê»þ´Ö¡¢Æ©ÌÀ¤Ê¤â¤Î¤¬¸«¤¨¤ë¤è¤¦¤Ë¤Ê¤ë¡£";
6850 if (name) return "See Invisibility";
6851 if (desc) return "Gives see invisible for a while.";
6857 if (info) return info_duration(base, base);
6861 set_tim_invis(randint1(base) + base, FALSE);
6868 if (name) return "²ò¼ö";
6869 if (desc) return "¥¢¥¤¥Æ¥à¤Ë¤«¤«¤Ã¤¿¼å¤¤¼ö¤¤¤ò²ò½ü¤¹¤ë¡£";
6871 if (name) return "Remove Curse";
6872 if (desc) return "Removes normal curses from equipped items.";
6881 msg_print("狼¤Ë¸«¼é¤é¤ì¤Æ¤¤¤ë¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£");
6883 msg_print("You feel as if someone is watching over you.");
6892 if (name) return "ÂÑÆÇ";
6893 if (desc) return "°ìÄê»þ´Ö¡¢ÆǤؤÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
6895 if (name) return "Resist Poison";
6896 if (desc) return "Gives resistance to poison. This resistance can be added to which from equipment for more powerful resistance.";
6902 if (info) return info_duration(base, base);
6906 set_oppose_pois(randint1(base) + base, FALSE);
6913 if (name) return "¶¸Àï»Î²½";
6914 if (desc) return "¶¸Àï»Î²½¤·¡¢¶²Éݤò½üµî¤¹¤ë¡£";
6916 if (name) return "Berserk";
6917 if (desc) return "Gives bonus to hit and HP, immunity to fear for a while. But decreases AC.";
6923 if (info) return info_duration(base, base);
6927 set_shero(randint1(base) + base, FALSE);
6936 if (name) return "¼«¸ÊʬÀÏ";
6937 if (desc) return "¸½ºß¤Î¼«Ê¬¤Î¾õÂÖ¤ò´°Á´¤ËÃΤ롣";
6939 if (name) return "Self Knowledge";
6940 if (desc) return "Gives you useful info regarding your current resistances, the powers of your weapon and maximum limits of your stats.";
6953 if (name) return "Âмٰ·ë³¦";
6954 if (desc) return "¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤Î¹¶·â¤òËɤ°¥Ð¥ê¥¢¤òÄ¥¤ë¡£";
6956 if (name) return "Protection from Evil";
6957 if (desc) return "Gives aura which protect you from evil monster's physical attack.";
6961 int base = 3 * plev;
6964 if (info) return info_duration(base, sides);
6968 set_protevil(randint1(sides) + base, FALSE);
6975 if (name) return "Ìþ¤·";
6976 if (desc) return "ÆÇ¡¢Û¯Û°¾õÂÖ¡¢Éé½ý¤òÁ´²÷¤µ¤»¡¢¸¸³Ð¤òľ¤¹¡£";
6978 if (name) return "Cure";
6979 if (desc) return "Heals poison, stun, cut and hallucination completely.";
6995 if (name) return "ËâË¡·õ";
6996 if (desc) return "°ìÄê»þ´Ö¡¢Éð´ï¤ËÎ䵤¡¢±ê¡¢ÅÅ·â¡¢»À¡¢ÆǤΤ¤¤º¤ì¤«¤Î°À¤ò¤Ä¤±¤ë¡£Éð´ï¤ò»ý¤¿¤Ê¤¤¤È»È¤¨¤Ê¤¤¡£";
6998 if (name) return "Mana Branding";
6999 if (desc) return "Makes current weapon some elemental branded. You must wield weapons.";
7003 int base = plev / 2;
7005 if (info) return info_duration(base, base);
7009 if (!choose_ele_attack()) return NULL;
7016 if (name) return "¥Æ¥ì¥Ñ¥·¡¼";
7017 if (desc) return "°ìÄê»þ´Ö¡¢¥Æ¥ì¥Ñ¥·¡¼Ç½ÎϤòÆÀ¤ë¡£";
7019 if (name) return "Telepathy";
7020 if (desc) return "Gives telepathy for a while.";
7027 if (info) return info_duration(base, sides);
7031 set_tim_esp(randint1(sides) + base, FALSE);
7038 if (name) return "È©Àв½";
7039 if (desc) return "°ìÄê»þ´Ö¡¢AC¤ò¾å¾º¤µ¤»¤ë¡£";
7041 if (name) return "Stone Skin";
7042 if (desc) return "Gives bonus to AC for a while.";
7049 if (info) return info_duration(base, sides);
7053 set_shield(randint1(sides) + base, FALSE);
7060 if (name) return "Á´ÂÑÀ";
7061 if (desc) return "°ìÄê»þ´Ö¡¢»À¡¢ÅÅ·â¡¢±ê¡¢Î䵤¡¢ÆǤËÂФ¹¤ëÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
7063 if (name) return "Resistance";
7064 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.";
7070 if (info) return info_duration(base, base);
7074 set_oppose_acid(randint1(base) + base, FALSE);
7075 set_oppose_elec(randint1(base) + base, FALSE);
7076 set_oppose_fire(randint1(base) + base, FALSE);
7077 set_oppose_cold(randint1(base) + base, FALSE);
7078 set_oppose_pois(randint1(base) + base, FALSE);
7085 if (name) return "¥¹¥Ô¡¼¥É";
7086 if (desc) return "°ìÄê»þ´Ö¡¢²Ã®¤¹¤ë¡£";
7088 if (name) return "Haste Self";
7089 if (desc) return "Hastes you for a while.";
7094 int sides = 20 + plev;
7096 if (info) return info_duration(base, sides);
7100 set_fast(randint1(sides) + base, FALSE);
7107 if (name) return "ÊÉÈ´¤±";
7108 if (desc) return "°ìÄê»þ´Ö¡¢È¾Êª¼Á²½¤·ÊɤòÄ̤êÈ´¤±¤é¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£";
7110 if (name) return "Walk through Wall";
7111 if (desc) return "Gives ability to pass walls for a while.";
7115 int base = plev / 2;
7117 if (info) return info_duration(base, base);
7121 set_kabenuke(randint1(base) + base, FALSE);
7128 if (name) return "½âËá¤";
7129 if (desc) return "½â¤ËÈ¿¼Í¤Î°À¤ò¤Ä¤±¤ë¡£";
7131 if (name) return "Polish Shield";
7132 if (desc) return "Makes a shield a shield of reflection.";
7145 if (name) return "¥´¡¼¥ì¥àÀ½Â¤";
7146 if (desc) return "1ÂΤΥ´¡¼¥ì¥à¤òÀ½Â¤¤¹¤ë¡£";
7148 if (name) return "Create Golem";
7149 if (desc) return "Creates a golem.";
7155 if (summon_specific(-1, py, px, plev, SUMMON_GOLEM, PM_FORCE_PET))
7158 msg_print("¥´¡¼¥ì¥à¤òºî¤Ã¤¿¡£");
7160 msg_print("You make a golem.");
7166 msg_print("¤¦¤Þ¤¯¥´¡¼¥ì¥à¤òºî¤ì¤Ê¤«¤Ã¤¿¡£");
7168 msg_print("No Golems arrive.");
7177 if (name) return "ËâË¡¤Î³»";
7178 if (desc) return "°ìÄê»þ´Ö¡¢ËâË¡ËɸæÎϤÈAC¤¬¾å¤¬¤ê¡¢º®Íð¤ÈÌÕÌܤÎÂÑÀ¡¢È¿¼ÍǽÎÏ¡¢ËãáãÃΤ餺¡¢ÉâÍ·¤òÆÀ¤ë¡£";
7180 if (name) return "Magical armor";
7181 if (desc) return "Gives resistance to magic, bonus to AC, resistance to confusion, blindness, reflection, free action and levitation for a while.";
7187 if (info) return info_duration(base, base);
7191 set_magicdef(randint1(base) + base, FALSE);
7198 if (name) return "ÁõÈ÷̵Îϲ½";
7199 if (desc) return "Éð´ï¡¦Ëɶñ¤Ë¤«¤±¤é¤ì¤¿¤¢¤é¤æ¤ëËâÎϤò´°Á´¤Ë²ò½ü¤¹¤ë¡£";
7201 if (name) return "Remove Enchantment";
7202 if (desc) return "Removes all magics completely from any weapon or armor.";
7208 if (!mundane_spell(TRUE)) return NULL;
7215 if (name) return "¼ö¤¤Ê´ºÕ";
7216 if (desc) return "¥¢¥¤¥Æ¥à¤Ë¤«¤«¤Ã¤¿¶¯ÎϤʼö¤¤¤ò²ò½ü¤¹¤ë¡£";
7218 if (name) return "Remove All Curse";
7219 if (desc) return "Removes normal and heavy curse from equipped items.";
7225 if (remove_all_curse())
7228 msg_print("狼¤Ë¸«¼é¤é¤ì¤Æ¤¤¤ë¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£");
7230 msg_print("You feel as if someone is watching over you.");
7239 if (name) return "´°Á´¤Ê¤ëÃμ±";
7240 if (desc) return "¥¢¥¤¥Æ¥à¤Î»ý¤ÄǽÎϤò´°Á´¤ËÃΤ롣";
7242 if (name) return "Knowledge True";
7243 if (desc) return "*Identifies* an item.";
7249 if (!identify_fully(FALSE)) return NULL;
7256 if (name) return "Éð´ï¶¯²½";
7257 if (desc) return "Éð´ï¤ÎÌ¿ÃæΨ½¤Àµ¤È¥À¥á¡¼¥¸½¤Àµ¤ò¶¯²½¤¹¤ë¡£";
7259 if (name) return "Enchant Weapon";
7260 if (desc) return "Attempts to increase +to-hit, +to-dam of a weapon.";
7266 if (!enchant_spell(randint0(4) + 1, randint0(4) + 1, 0)) return NULL;
7273 if (name) return "Ëɶñ¶¯²½";
7274 if (desc) return "³»¤ÎËɸ潤Àµ¤ò¶¯²½¤¹¤ë¡£";
7276 if (name) return "Enchant Armor";
7277 if (desc) return "Attempts to increase +AC of an armor.";
7283 if (!enchant_spell(0, 0, randint0(3) + 2)) return NULL;
7290 if (name) return "Éð´ï°ÀÉÕÍ¿";
7291 if (desc) return "Éð´ï¤Ë¥é¥ó¥À¥à¤Ë°À¤ò¤Ä¤±¤ë¡£";
7293 if (name) return "Brand Weapon";
7294 if (desc) return "Makes current weapon a random ego weapon.";
7300 brand_weapon(randint0(18));
7307 if (name) return "¿Í´Ö¥È¥é¥ó¥×";
7308 if (desc) return "¥é¥ó¥À¥à¤Ë¥Æ¥ì¥Ý¡¼¥È¤¹¤ëÆÍÁ³ÊÑ°Û¤«¡¢¼«Ê¬¤Î°Õ»×¤Ç¥Æ¥ì¥Ý¡¼¥È¤¹¤ëÆÍÁ³ÊÑ°Û¤¬¿È¤Ë¤Ä¤¯¡£";
7310 if (name) return "Living Trump";
7311 if (desc) return "Gives mutation which makes you teleport randomly or makes you able to teleport at will.";
7320 /* Teleport control */
7323 /* Random teleportation (uncontrolled) */
7326 /* Gain the mutation */
7327 if (gain_random_mutation(mutation))
7330 msg_print("¤¢¤Ê¤¿¤ÏÀ¸¤¤Æ¤¤¤ë¥«¡¼¥É¤ËÊѤï¤Ã¤¿¡£");
7332 msg_print("You have turned into a Living Trump.");
7341 if (name) return "°À¤Ø¤ÎÌȱÖ";
7342 if (desc) return "°ìÄê»þ´Ö¡¢Î䵤¡¢±ê¡¢ÅÅ·â¡¢»À¤Î¤¤¤º¤ì¤«¤ËÂФ¹¤ëÌȱ֤òÆÀ¤ë¡£";
7344 if (name) return "Immunity";
7345 if (desc) return "Gives an immunity to fire, cold, electricity or acid for a while.";
7351 if (info) return info_duration(base, base);
7355 if (!choose_ele_immune(base + randint1(base))) return NULL;
7365 static cptr do_daemon_spell(int spell, int mode)
7367 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
7368 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
7369 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
7370 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
7373 static const char s_dam[] = "»½ý:";
7375 static const char s_dam[] = "dam ";
7379 int plev = p_ptr->lev;
7385 if (name) return "¥Þ¥¸¥Ã¥¯¡¦¥ß¥µ¥¤¥ë";
7386 if (desc) return "¼å¤¤ËâË¡¤ÎÌð¤òÊü¤Ä¡£";
7388 if (name) return "Magic Missile";
7389 if (desc) return "Fires a weak bolt of magic.";
7393 int dice = 3 + (plev - 1) / 5;
7396 if (info) return info_damage(dice, sides, 0);
7400 if (!get_aim_dir(&dir)) return NULL;
7402 fire_bolt_or_beam(beam_chance() - 10, GF_MISSILE, dir, damroll(dice, sides));
7409 if (name) return "̵À¸Ì¿´¶ÃÎ";
7410 if (desc) return "¶á¤¯¤ÎÀ¸Ì¿¤Î¤Ê¤¤¥â¥ó¥¹¥¿¡¼¤ò´¶ÃΤ¹¤ë¡£";
7412 if (name) return "Detect Unlife";
7413 if (desc) return "Detects all nonliving monsters in your vicinity.";
7417 int rad = DETECT_RAD_DEFAULT;
7419 if (info) return info_radius(rad);
7423 detect_monsters_nonliving(rad);
7430 if (name) return "¼Ù¤Ê¤ë½ËÊ¡";
7431 if (desc) return "°ìÄê»þ´Ö¡¢Ì¿ÃæΨ¤ÈAC¤Ë¥Ü¡¼¥Ê¥¹¤òÆÀ¤ë¡£";
7433 if (name) return "Evil Bless";
7434 if (desc) return "Gives bonus to hit and AC for a few turns.";
7440 if (info) return info_duration(base, base);
7444 set_blessed(randint1(base) + base, FALSE);
7451 if (name) return "ÂѲбê";
7452 if (desc) return "°ìÄê»þ´Ö¡¢±ê¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
7454 if (name) return "Resist Fire";
7455 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.";
7461 if (info) return info_duration(base, base);
7465 set_oppose_fire(randint1(base) + base, FALSE);
7472 if (name) return "¶²¹²";
7473 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤò¶²Éݤµ¤»¡¢Û¯Û°¤µ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
7475 if (name) return "Horrify";
7476 if (desc) return "Attempts to scare and stun a monster.";
7482 if (info) return info_power(power);
7486 if (!get_aim_dir(&dir)) return NULL;
7488 fear_monster(dir, power);
7489 stun_monster(dir, power);
7496 if (name) return "ÃϹö¤ÎÌð";
7497 if (desc) return "ÃϹö¤Î¥Ü¥ë¥È¤â¤·¤¯¤Ï¥Ó¡¼¥à¤òÊü¤Ä¡£";
7499 if (name) return "Nether Bolt";
7500 if (desc) return "Fires a bolt or beam of nether.";
7504 int dice = 6 + (plev - 5) / 4;
7507 if (info) return info_damage(dice, sides, 0);
7511 if (!get_aim_dir(&dir)) return NULL;
7513 fire_bolt_or_beam(beam_chance(), GF_NETHER, dir, damroll(dice, sides));
7520 if (name) return "¸ÅÂå¤Î»àÎ´";
7521 if (desc) return "¸ÅÂå¤Î»àÎî¤ò¾¤´¤¹¤ë¡£";
7523 if (name) return "Summon Manes";
7524 if (desc) return "Summons a manes.";
7530 if (!summon_specific(-1, py, px, (plev * 3) / 2, SUMMON_MANES, (PM_ALLOW_GROUP | PM_FORCE_PET)))
7533 msg_print("¸ÅÂå¤Î»àÎî¤Ï¸½¤ì¤Ê¤«¤Ã¤¿¡£");
7535 msg_print("No Manes arrive.");
7544 if (name) return "ÃϹö¤Î±ë";
7545 if (desc) return "¼Ù°¤ÊÎϤò»ý¤Ä¥Ü¡¼¥ë¤òÊü¤Ä¡£Á±Îɤʥâ¥ó¥¹¥¿¡¼¤Ë¤ÏÂ礤ʥÀ¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
7547 if (name) return "Hellish Flame";
7548 if (desc) return "Fires a ball of evil power. Hurts good monsters greatly.";
7554 int rad = (plev < 30) ? 2 : 3;
7557 if (p_ptr->pclass == CLASS_MAGE ||
7558 p_ptr->pclass == CLASS_HIGH_MAGE ||
7559 p_ptr->pclass == CLASS_SORCERER)
7560 base = plev + plev / 2;
7562 base = plev + plev / 4;
7565 if (info) return info_damage(dice, sides, base);
7569 if (!get_aim_dir(&dir)) return NULL;
7571 fire_ball(GF_HELL_FIRE, dir, damroll(dice, sides) + base, rad);
7578 if (name) return "¥Ç¡¼¥â¥ó»ÙÇÛ";
7579 if (desc) return "°Ëâ1ÂΤò̥λ¤¹¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú";
7581 if (name) return "Dominate Demon";
7582 if (desc) return "Attempts to charm a demon.";
7588 if (info) return info_power(power);
7592 if (!get_aim_dir(&dir)) return NULL;
7594 control_one_demon(dir, power);
7601 if (name) return "¥Ó¥¸¥ç¥ó";
7602 if (desc) return "¼þÊÕ¤ÎÃÏ·Á¤ò´¶ÃΤ¹¤ë¡£";
7604 if (name) return "Vision";
7605 if (desc) return "Maps nearby area.";
7609 int rad = DETECT_RAD_MAP;
7611 if (info) return info_radius(rad);
7622 if (name) return "ÂÑÃϹö";
7623 if (desc) return "°ìÄê»þ´Ö¡¢ÃϹö¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£";
7625 if (name) return "Resist Nether";
7626 if (desc) return "Gives resistance to nether for a while.";
7632 if (info) return info_duration(base, base);
7636 set_tim_res_nether(randint1(base) + base, FALSE);
7643 if (name) return "¥×¥é¥º¥Þ¡¦¥Ü¥ë¥È";
7644 if (desc) return "¥×¥é¥º¥Þ¤Î¥Ü¥ë¥È¤â¤·¤¯¤Ï¥Ó¡¼¥à¤òÊü¤Ä¡£";
7646 if (name) return "Plasma bolt";
7647 if (desc) return "Fires a bolt or beam of plasma.";
7651 int dice = 11 + (plev - 5) / 4;
7654 if (info) return info_damage(dice, sides, 0);
7658 if (!get_aim_dir(&dir)) return NULL;
7660 fire_bolt_or_beam(beam_chance(), GF_PLASMA, dir, damroll(dice, sides));
7667 if (name) return "¥Õ¥¡¥¤¥¢¡¦¥Ü¡¼¥ë";
7668 if (desc) return "±ê¤Îµå¤òÊü¤Ä¡£";
7670 if (name) return "Fire Ball";
7671 if (desc) return "Fires a ball of fire.";
7675 int dam = plev + 55;
7678 if (info) return info_damage(0, 0, dam);
7682 if (!get_aim_dir(&dir)) return NULL;
7684 fire_ball(GF_FIRE, dir, dam, rad);
7691 if (name) return "±ê¤Î¿Ï";
7692 if (desc) return "Éð´ï¤Ë±ê¤Î°À¤ò¤Ä¤±¤ë¡£";
7694 if (name) return "Fire Branding";
7695 if (desc) return "Makes current weapon fire branded.";
7708 if (name) return "ÃϹöµå";
7709 if (desc) return "Â礤ÊÃϹö¤Îµå¤òÊü¤Ä¡£";
7711 if (name) return "Nether Ball";
7712 if (desc) return "Fires a huge ball of nether.";
7716 int dam = plev * 3 / 2 + 100;
7717 int rad = plev / 20 + 2;
7719 if (info) return info_damage(0, 0, dam);
7723 if (!get_aim_dir(&dir)) return NULL;
7725 fire_ball(GF_NETHER, dir, dam, rad);
7732 if (name) return "¥Ç¡¼¥â¥ó¾¤´";
7733 if (desc) return "°Ëâ1ÂΤò¾¤´¤¹¤ë¡£";
7735 if (name) return "Summon Demon";
7736 if (desc) return "Summons a demon.";
7742 bool pet = !one_in_(3);
7745 if (pet) mode |= PM_FORCE_PET;
7746 else mode |= PM_NO_PET;
7747 if (!(pet && (plev < 50))) mode |= PM_ALLOW_GROUP;
7749 if (summon_specific((pet ? -1 : 0), py, px, plev*2/3+randint1(plev/2), SUMMON_DEMON, mode))
7752 msg_print("ⲫ¤Î°½¤¬½¼Ëþ¤·¤¿¡£");
7754 msg_print("The area fills with a stench of sulphur and brimstone.");
7761 msg_print("¡Ö¤´ÍѤǤ´¤¶¤¤¤Þ¤¹¤«¡¢¤´¼ç¿ÍÍÍ¡×");
7763 msg_print("'What is thy bidding... Master?'");
7769 msg_print("¡ÖÈܤ·¤¼Ô¤è¡¢²æ¤ÏÆò¤Î²¼Ëͤˤ¢¤é¤º¡ª ¤ªÁ°¤Îº²¤òĺ¤¯¤¾¡ª¡×");
7771 msg_print("'NON SERVIAM! Wretch! I shall feast on thy mortal soul!'");
7778 msg_print("°Ëâ¤Ï¸½¤ì¤Ê¤«¤Ã¤¿¡£");
7780 msg_print("No demons arrive.");
7790 if (name) return "°Ëâ¤ÎÌÜ";
7791 if (desc) return "°ìÄê»þ´Ö¡¢¥Æ¥ì¥Ñ¥·¡¼Ç½ÎϤòÆÀ¤ë¡£";
7793 if (name) return "Devilish Eye";
7794 if (desc) return "Gives telepathy for a while.";
7801 if (info) return info_duration(base, sides);
7805 set_tim_esp(randint1(base) + sides, FALSE);
7812 if (name) return "°Ëâ¤Î¥¯¥í¡¼¥¯";
7813 if (desc) return "¶²Éݤò¼è¤ê½ü¤¡¢°ìÄê»þ´Ö¡¢±ê¤ÈÎ䵤¤ÎÂÑÀ¡¢±ê¤Î¥ª¡¼¥é¤òÆÀ¤ë¡£ÂÑÀ¤ÏÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
7815 if (name) return "Devil Cloak";
7816 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.";
7822 if (info) return info_duration(base, base);
7826 int dur = randint1(base) + base;
7828 set_oppose_fire(dur, FALSE);
7829 set_oppose_cold(dur, FALSE);
7830 set_tim_sh_fire(dur, FALSE);
7839 if (name) return "ÍÏ´äή";
7840 if (desc) return "¼«Ê¬¤òÃæ¿´¤È¤·¤¿±ê¤Îµå¤òºî¤ê½Ð¤·¡¢¾²¤òÍÏ´ä¤ËÊѤ¨¤ë¡£";
7842 if (name) return "The Flow of Lava";
7843 if (desc) return "Generates a ball of fire centered on you which transforms floors to magma.";
7847 int dam = (55 + plev) * 2;
7850 if (info) return info_damage(0, 0, dam/2);
7854 fire_ball(GF_FIRE, 0, dam, rad);
7855 fire_ball_hide(GF_LAVA_FLOW, 0, 2 + randint1(2), rad);
7862 if (name) return "¥×¥é¥º¥Þµå";
7863 if (desc) return "¥×¥é¥º¥Þ¤Îµå¤òÊü¤Ä¡£";
7865 if (name) return "Plasma Ball";
7866 if (desc) return "Fires a ball of plasma.";
7870 int dam = plev * 3 / 2 + 80;
7871 int rad = 2 + plev / 40;
7873 if (info) return info_damage(0, 0, dam);
7877 if (!get_aim_dir(&dir)) return NULL;
7879 fire_ball(GF_PLASMA, dir, dam, rad);
7886 if (name) return "°ËâÊѲ½";
7887 if (desc) return "°ìÄê»þ´Ö¡¢°Ëâ¤ËÊѲ½¤¹¤ë¡£ÊѲ½¤·¤Æ¤¤¤ë´Ö¤ÏËÜÍè¤Î¼ï²¤ÎǽÎϤò¼º¤¤¡¢Âå¤ï¤ê¤Ë°Ëâ¤È¤·¤Æ¤ÎǽÎϤòÆÀ¤ë¡£";
7889 if (name) return "Polymorph Demon";
7890 if (desc) return "Mimic a demon for a while. Loses abilities of original race and gets abilities as a demon.";
7894 int base = 10 + plev / 2;
7896 if (info) return info_duration(base, base);
7900 set_mimic(base + randint1(base), MIMIC_DEMON, FALSE);
7907 if (name) return "ÃϹö¤ÎÇÈÆ°";
7908 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£Á±Îɤʥâ¥ó¥¹¥¿¡¼¤ËÆäËÂ礤ʥÀ¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
7910 if (name) return "Nather Wave";
7911 if (desc) return "Damages all monsters in sight. Hurts good monsters greatly.";
7915 int sides1 = plev * 2;
7916 int sides2 = plev * 2;
7918 if (info) return format("%sd%d+d%d", s_dam, sides1, sides2);
7922 dispel_monsters(randint1(sides1));
7923 dispel_good(randint1(sides2));
7930 if (name) return "¥µ¥¥å¥Ð¥¹¤ÎÀÜÊ";
7931 if (desc) return "°ø²Ìº®Íð¤Îµå¤òÊü¤Ä¡£";
7933 if (name) return "Kiss of Succubus";
7934 if (desc) return "Fires a ball of nexus.";
7938 int dam = 100 + plev * 2;
7941 if (info) return info_damage(0, 0, dam);
7945 if (!get_aim_dir(&dir)) return NULL;
7946 fire_ball(GF_NEXUS, dir, dam, rad);
7953 if (name) return "ÇËÌǤμê";
7954 if (desc) return "ÇËÌǤμê¤òÊü¤Ä¡£¿©¤é¤Ã¤¿¥â¥ó¥¹¥¿¡¼¤Ï¤½¤Î¤È¤¤ÎHP¤ÎȾʬÁ°¸å¤Î¥À¥á¡¼¥¸¤ò¼õ¤±¤ë¡£";
7956 if (name) return "Doom Hand";
7957 if (desc) return "Attempts to make a monster's HP almost half.";
7963 if (!get_aim_dir(&dir)) return NULL;
7965 else msg_print("<ÇËÌǤμê>¤òÊü¤Ã¤¿¡ª");
7967 else msg_print("You invoke the Hand of Doom!");
7970 fire_ball_hide(GF_HAND_DOOM, dir, plev * 2, 0);
7977 if (name) return "»Îµ¤¹âÍÈ";
7978 if (desc) return "°ìÄê»þ´Ö¡¢¥Ò¡¼¥í¡¼µ¤Ê¬¤Ë¤Ê¤ë¡£";
7980 if (name) return "Raise the Morale";
7981 if (desc) return "Removes fear, and gives bonus to hit and 10 more HP for a while.";
7987 if (info) return info_duration(base, base);
7991 set_hero(randint1(base) + base, FALSE);
8000 if (name) return "ÉÔÌǤÎÆùÂÎ";
8001 if (desc) return "°ìÄê»þ´Ö¡¢»þ´ÖµÕž¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£";
8003 if (name) return "Immortal Body";
8004 if (desc) return "Gives resistance to time for a while.";
8010 if (info) return info_duration(base, base);
8014 set_tim_res_time(randint1(base)+base, FALSE);
8021 if (name) return "¶¸µ¤¤Î±ß´Ä";
8022 if (desc) return "¼«Ê¬¤òÃæ¿´¤È¤·¤¿¥«¥ª¥¹¤Îµå¡¢º®Íð¤Îµå¤òȯÀ¸¤µ¤»¡¢¶á¤¯¤Î¥â¥ó¥¹¥¿¡¼¤ò̥λ¤¹¤ë¡£";
8024 if (name) return "Insanity Circle";
8025 if (desc) return "Generate balls of chaos, confusion and charm centered on you.";
8029 int dam = 50 + plev;
8030 int power = 20 + plev;
8031 int rad = 3 + plev / 20;
8033 if (info) return format("%s%d+%d", s_dam, dam/2, dam/2);
8037 fire_ball(GF_CHAOS, 0, dam, rad);
8038 fire_ball(GF_CONFUSION, 0, dam, rad);
8039 fire_ball(GF_CHARM, 0, power, rad);
8046 if (name) return "¥Ú¥Ã¥ÈÇúÇË";
8047 if (desc) return "Á´¤Æ¤Î¥Ú¥Ã¥È¤ò¶¯À©Åª¤ËÇúÇˤµ¤»¤ë¡£";
8049 if (name) return "Explode Pets";
8050 if (desc) return "Makes all pets explode.";
8063 if (name) return "¥°¥ì¡¼¥¿¡¼¥Ç¡¼¥â¥ó¾¤´";
8064 if (desc) return "¾åµé¥Ç¡¼¥â¥ó¤ò¾¤´¤¹¤ë¡£¾¤´¤¹¤ë¤Ë¤Ï¿Í´Ö('p','h','t'¤Çɽ¤µ¤ì¤ë¥â¥ó¥¹¥¿¡¼)¤Î»àÂΤòÊû¤²¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£";
8066 if (name) return "Summon Greater Demon";
8067 if (desc) return "Summons greater demon. It need to sacrifice a corpse of human ('p','h' or 't').";
8073 if (!cast_summon_greater_demon()) return NULL;
8080 if (name) return "ÃϹöÍò";
8081 if (desc) return "ĶµðÂç¤ÊÃϹö¤Îµå¤òÊü¤Ä¡£";
8083 if (name) return "Nether Storm";
8084 if (desc) return "Generate a huge ball of nether.";
8088 int dam = plev * 15;
8091 if (info) return info_damage(0, 0, dam);
8095 if (!get_aim_dir(&dir)) return NULL;
8097 fire_ball(GF_NETHER, dir, dam, rad);
8104 if (name) return "·ì¤Î¼ö¤¤";
8105 if (desc) return "¼«Ê¬¤¬¥À¥á¡¼¥¸¤ò¼õ¤±¤ë¤³¤È¤Ë¤è¤Ã¤ÆÂоݤ˼ö¤¤¤ò¤«¤±¡¢¥À¥á¡¼¥¸¤òÍ¿¤¨ÍÍ¡¹¤Ê¸ú²Ì¤ò°ú¤µ¯¤³¤¹¡£";
8107 if (name) return "Bloody Curse";
8108 if (desc) return "Puts blood curse which damages and causes various effects on a monster. You also take damage.";
8115 if (info) return info_damage(0, 0, dam);
8119 if (!get_aim_dir(&dir)) return NULL;
8121 fire_ball_hide(GF_BLOOD_CURSE, dir, dam, rad);
8123 take_hit(DAMAGE_USELIFE, 20 + randint1(30), "·ì¤Î¼ö¤¤", -1);
8125 take_hit(DAMAGE_USELIFE, 20 + randint1(30), "Blood curse", -1);
8133 if (name) return "ËⲦÊѲ½";
8134 if (desc) return "°Ëâ¤Î²¦¤ËÊѲ½¤¹¤ë¡£ÊѲ½¤·¤Æ¤¤¤ë´Ö¤ÏËÜÍè¤Î¼ï²¤ÎǽÎϤò¼º¤¤¡¢Âå¤ï¤ê¤Ë°Ëâ¤Î²¦¤È¤·¤Æ¤ÎǽÎϤòÆÀ¡¢ÊɤòÇ˲õ¤·¤Ê¤¬¤éÊ⤯¡£";
8136 if (name) return "Polymorph Demonlord";
8137 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.";
8143 if (info) return info_duration(base, base);
8147 set_mimic(base + randint1(base), MIMIC_DEMON_LORD, FALSE);
8157 static cptr do_crusade_spell(int spell, int mode)
8159 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
8160 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
8161 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
8162 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
8165 int plev = p_ptr->lev;
8171 if (name) return "Ĩȳ";
8172 if (desc) return "ÅÅ·â¤Î¥Ü¥ë¥È¤â¤·¤¯¤Ï¥Ó¡¼¥à¤òÊü¤Ä¡£";
8174 if (name) return "Punishment";
8175 if (desc) return "Fires a bolt or beam of lightning.";
8179 int dice = 3 + (plev - 1) / 5;
8182 if (info) return info_damage(dice, sides, 0);
8186 if (!get_aim_dir(&dir)) return NULL;
8188 fire_bolt_or_beam(beam_chance() - 10, GF_ELEC, dir, damroll(dice, sides));
8195 if (name) return "¼Ù°Â¸ºß´¶ÃÎ";
8196 if (desc) return "¶á¤¯¤Î¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ò´¶ÃΤ¹¤ë¡£";
8198 if (name) return "Detect Evil";
8199 if (desc) return "Detects all evil monsters in your vicinity.";
8203 int rad = DETECT_RAD_DEFAULT;
8205 if (info) return info_radius(rad);
8209 detect_monsters_evil(rad);
8216 if (name) return "¶²Éݽüµî";
8217 if (desc) return "¶²Éݤò¼è¤ê½ü¤¯¡£";
8219 if (name) return "Remove Fear";
8220 if (desc) return "Removes fear.";
8233 if (name) return "°Ò°µ";
8234 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤò¶²Éݤµ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
8236 if (name) return "Scare Monster";
8237 if (desc) return "Attempts to scare a monster.";
8243 if (info) return info_power(power);
8247 if (!get_aim_dir(&dir)) return NULL;
8249 fear_monster(dir, power);
8256 if (name) return "À»°è";
8257 if (desc) return "ÎÙÀܤ·¤¿Á´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò̲¤é¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
8259 if (name) return "Sanctuary";
8260 if (desc) return "Attempts to sleep monsters in the adjacent squares.";
8266 if (info) return info_power(power);
8270 sleep_monsters_touch();
8277 if (name) return "Æþ¸ý";
8278 if (desc) return "Ãæµ÷Î¥¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¤¹¤ë¡£";
8280 if (name) return "Portal";
8281 if (desc) return "Teleport medium distance.";
8285 int range = 25 + plev / 2;
8287 if (info) return info_range(range);
8291 teleport_player(range, 0L);
8298 if (name) return "¥¹¥¿¡¼¥À¥¹¥È";
8299 if (desc) return "¥¿¡¼¥²¥Ã¥ÈÉÕ¶á¤ËÁ®¸÷¤Î¥Ü¥ë¥È¤òÏ¢¼Í¤¹¤ë¡£";
8301 if (name) return "Star Dust";
8302 if (desc) return "Fires many bolts of light near the target.";
8306 int dice = 3 + (plev - 1) / 9;
8309 if (info) return info_multi_damage_dice(dice, sides);
8313 if (!get_aim_dir(&dir)) return NULL;
8314 fire_blast(GF_LITE, dir, dice, sides, 10, 3);
8321 if (name) return "¿ÈÂξô²½";
8322 if (desc) return "½ý¡¢ÆÇ¡¢Û¯Û°¤«¤éÁ´²÷¤¹¤ë¡£";
8324 if (name) return "Purify";
8325 if (desc) return "Heals all cut, stun and poison status.";
8340 if (name) return "¼Ù°Èô¤Ð¤·";
8341 if (desc) return "¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼1ÂΤò¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
8343 if (name) return "Scatter Evil";
8344 if (desc) return "Attempts to teleport an evil monster away.";
8348 int power = MAX_SIGHT * 5;
8350 if (info) return info_power(power);
8354 if (!get_aim_dir(&dir)) return NULL;
8355 fire_ball(GF_AWAY_EVIL, dir, power, 0);
8362 if (name) return "À»¤Ê¤ë¸÷µå";
8363 if (desc) return "À»¤Ê¤ëÎϤò¤â¤ÄÊõ¼î¤òÊü¤Ä¡£¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ËÂФ·¤ÆÂ礤ʥÀ¥á¡¼¥¸¤òÍ¿¤¨¤ë¤¬¡¢Á±Îɤʥâ¥ó¥¹¥¿¡¼¤Ë¤Ï¸ú²Ì¤¬¤Ê¤¤¡£";
8365 if (name) return "Holy Orb";
8366 if (desc) return "Fires a ball with holy power. Hurts evil monsters greatly, but don't effect good monsters.";
8372 int rad = (plev < 30) ? 2 : 3;
8375 if (p_ptr->pclass == CLASS_PRIEST ||
8376 p_ptr->pclass == CLASS_HIGH_MAGE ||
8377 p_ptr->pclass == CLASS_SORCERER)
8378 base = plev + plev / 2;
8380 base = plev + plev / 4;
8383 if (info) return info_damage(dice, sides, base);
8387 if (!get_aim_dir(&dir)) return NULL;
8389 fire_ball(GF_HOLY_FIRE, dir, damroll(dice, sides) + base, rad);
8396 if (name) return "°Ëâʧ¤¤";
8397 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥¢¥ó¥Ç¥Ã¥ÉµÚ¤Ó°Ëâ¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¡¢¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ò¶²Éݤµ¤»¤ë¡£";
8399 if (name) return "Exorcism";
8400 if (desc) return "Damages all undead and demons in sight, and scares all evil monsters in sight.";
8407 if (info) return info_damage(1, sides, 0);
8411 dispel_undead(randint1(sides));
8412 dispel_demons(randint1(sides));
8420 if (name) return "²ò¼ö";
8421 if (desc) return "¥¢¥¤¥Æ¥à¤Ë¤«¤«¤Ã¤¿¼å¤¤¼ö¤¤¤ò²ò½ü¤¹¤ë¡£";
8423 if (name) return "Remove Curse";
8424 if (desc) return "Removes normal curses from equipped items.";
8433 msg_print("狼¤Ë¸«¼é¤é¤ì¤Æ¤¤¤ë¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£");
8435 msg_print("You feel as if someone is watching over you.");
8444 if (name) return "Æ©ÌÀ»ëǧ";
8445 if (desc) return "°ìÄê»þ´Ö¡¢Æ©ÌÀ¤Ê¤â¤Î¤¬¸«¤¨¤ë¤è¤¦¤Ë¤Ê¤ë¡£";
8447 if (name) return "Sense Unseen";
8448 if (desc) return "Gives see invisible for a while.";
8454 if (info) return info_duration(base, base);
8458 set_tim_invis(randint1(base) + base, FALSE);
8465 if (name) return "Âмٰ·ë³¦";
8466 if (desc) return "¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤Î¹¶·â¤òËɤ°¥Ð¥ê¥¢¤òÄ¥¤ë¡£";
8468 if (name) return "Protection from Evil";
8469 if (desc) return "Gives aura which protect you from evil monster's physical attack.";
8474 int sides = 3 * plev;
8476 if (info) return info_duration(base, sides);
8480 set_protevil(randint1(sides) + sides, FALSE);
8487 if (name) return "ºÛ¤¤ÎÍë";
8488 if (desc) return "¶¯ÎϤÊÅÅ·â¤Î¥Ü¥ë¥È¤òÊü¤Ä¡£";
8490 if (name) return "Judgment Thunder";
8491 if (desc) return "Fires a powerful bolt of lightning.";
8497 if (info) return info_damage(0, 0, dam);
8501 if (!get_aim_dir(&dir)) return NULL;
8502 fire_bolt(GF_ELEC, dir, dam);
8509 if (name) return "À»¤Ê¤ë¸æ¸ÀÍÕ";
8510 if (desc) return "»ë³¦Æâ¤Î¼Ù°¤Ê¸ºß¤ËÂ礤ʥÀ¥á¡¼¥¸¤òÍ¿¤¨¡¢ÂÎÎϤò²óÉü¤·¡¢ÆÇ¡¢¶²ÉÝ¡¢Û¯Û°¾õÂÖ¡¢Éé½ý¤«¤éÁ´²÷¤¹¤ë¡£";
8512 if (name) return "Holy Word";
8513 if (desc) return "Damages all evil monsters in sight, heals HP somewhat, and completely heals poison, fear, stun and cut status.";
8517 int dam_sides = plev * 6;
8521 if (info) return format("»:1d%d/²ó%d", dam_sides, heal);
8523 if (info) return format("dam:d%d/h%d", dam_sides, heal);
8528 dispel_evil(randint1(dam_sides));
8540 if (name) return "³«¤«¤ì¤¿Æ»";
8541 if (desc) return "°ìľÀþ¾å¤ÎÁ´¤Æ¤Î櫤ÈÈâ¤òÇ˲õ¤¹¤ë¡£";
8543 if (name) return "Unbarring Ways";
8544 if (desc) return "Fires a beam which destroy traps and doors.";
8550 if (!get_aim_dir(&dir)) return NULL;
8559 if (name) return "ÉõËâ";
8560 if (desc) return "¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ÎÆ°¤¤ò»ß¤á¤ë¡£";
8562 if (name) return "Arrest";
8563 if (desc) return "Attempts to paralyze an evil monster.";
8567 int power = plev * 2;
8569 if (info) return info_power(power);
8573 if (!get_aim_dir(&dir)) return NULL;
8581 if (name) return "À»¤Ê¤ë¥ª¡¼¥é";
8582 if (desc) return "°ìÄê»þ´Ö¡¢¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ò½ý¤Ä¤±¤ëÀ»¤Ê¤ë¥ª¡¼¥é¤òÆÀ¤ë¡£";
8584 if (name) return "Holy Aura";
8585 if (desc) return "Gives aura of holy power which injures evil monsters which attacked you for a while.";
8591 if (info) return info_duration(base, base);
8595 set_tim_sh_holy(randint1(base) + base, FALSE);
8602 if (name) return "¥¢¥ó¥Ç¥Ã¥É&°ËâÂ໶";
8603 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥¢¥ó¥Ç¥Ã¥ÉµÚ¤Ó°Ëâ¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
8605 if (name) return "Dispel Undead & Demons";
8606 if (desc) return "Damages all undead and demons in sight.";
8610 int sides = plev * 4;
8612 if (info) return info_damage(1, sides, 0);
8616 dispel_undead(randint1(sides));
8617 dispel_demons(randint1(sides));
8624 if (name) return "¼Ù°Â໶";
8625 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
8627 if (name) return "Dispel Evil";
8628 if (desc) return "Damages all evil monsters in sight.";
8632 int sides = plev * 4;
8634 if (info) return info_damage(1, sides, 0);
8638 dispel_evil(randint1(sides));
8645 if (name) return "À»¤Ê¤ë¿Ï";
8646 if (desc) return "Ä̾ï¤ÎÉð´ï¤ËÌǼ٤ΰÀ¤ò¤Ä¤±¤ë¡£";
8648 if (name) return "Holy Blade";
8649 if (desc) return "Makes current weapon especially deadly against evil monsters.";
8662 if (name) return "¥¹¥¿¡¼¥Ð¡¼¥¹¥È";
8663 if (desc) return "µðÂç¤ÊÁ®¸÷¤Îµå¤òÊü¤Ä¡£";
8665 if (name) return "Star Burst";
8666 if (desc) return "Fires a huge ball of powerful light.";
8670 int dam = 100 + plev * 2;
8673 if (info) return info_damage(0, 0, dam);
8677 if (!get_aim_dir(&dir)) return NULL;
8679 fire_ball(GF_LITE, dir, dam, rad);
8686 if (name) return "Å·»È¾¤´";
8687 if (desc) return "Å·»È¤ò1Âξ¤´¤¹¤ë¡£";
8689 if (name) return "Summon Angel";
8690 if (desc) return "Summons an angel.";
8696 bool pet = !one_in_(3);
8699 if (pet) mode |= PM_FORCE_PET;
8700 else mode |= PM_NO_PET;
8701 if (!(pet && (plev < 50))) mode |= PM_ALLOW_GROUP;
8703 if (summon_specific((pet ? -1 : 0), py, px, (plev * 3) / 2, SUMMON_ANGEL, mode))
8708 msg_print("¡Ö¤´ÍѤǤ´¤¶¤¤¤Þ¤¹¤«¡¢¤´¼ç¿ÍÍÍ¡×");
8710 msg_print("'What is thy bidding... Master?'");
8716 msg_print("¡Ö²æ¤ÏÆò¤Î²¼Ëͤˤ¢¤é¤º¡ª °¹Ô¼Ô¤è¡¢²ù¤¤²þ¤á¤è¡ª¡×");
8718 msg_print("Mortal! Repent of thy impiousness.");
8728 if (name) return "»Îµ¤¹âÍÈ";
8729 if (desc) return "°ìÄê»þ´Ö¡¢¥Ò¡¼¥í¡¼µ¤Ê¬¤Ë¤Ê¤ë¡£";
8731 if (name) return "Heroism";
8732 if (desc) return "Removes fear, and gives bonus to hit and 10 more HP for a while.";
8738 if (info) return info_duration(base, base);
8742 set_hero(randint1(base) + base, FALSE);
8751 if (name) return "¼ö¤¤Â໶";
8752 if (desc) return "¥¢¥¤¥Æ¥à¤Ë¤«¤«¤Ã¤¿¶¯ÎϤʼö¤¤¤ò²ò½ü¤¹¤ë¡£";
8754 if (name) return "Dispel Curse";
8755 if (desc) return "Removes normal and heavy curse from equipped items.";
8761 if (remove_all_curse())
8764 msg_print("狼¤Ë¸«¼é¤é¤ì¤Æ¤¤¤ë¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£");
8766 msg_print("You feel as if someone is watching over you.");
8775 if (name) return "¼Ù°ÄÉÊü";
8776 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ò¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
8778 if (name) return "Banish Evil";
8779 if (desc) return "Teleports all evil monsters in sight away unless resisted.";
8785 if (info) return info_power(power);
8789 if (banish_evil(power))
8792 msg_print("¿ÀÀ»¤ÊÎϤ¬¼Ù°¤òÂǤÁʧ¤Ã¤¿¡ª");
8794 msg_print("The holy power banishes evil!");
8804 if (name) return "¥Ï¥ë¥Þ¥²¥É¥ó";
8805 if (desc) return "¼þÊդΥ¢¥¤¥Æ¥à¡¢¥â¥ó¥¹¥¿¡¼¡¢ÃÏ·Á¤òÇ˲õ¤¹¤ë¡£";
8807 if (name) return "Armageddon";
8808 if (desc) return "Destroy everything in nearby area.";
8817 destroy_area(py, px, base + randint1(sides), FALSE);
8824 if (name) return "ÌܤˤÏÌܤò";
8825 if (desc) return "°ìÄê»þ´Ö¡¢¼«Ê¬¤¬¥À¥á¡¼¥¸¤ò¼õ¤±¤¿¤È¤¤Ë¹¶·â¤ò¹Ô¤Ã¤¿¥â¥ó¥¹¥¿¡¼¤ËÂФ·¤ÆƱÅù¤Î¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
8827 if (name) return "An Eye for an Eye";
8828 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.";
8834 if (info) return info_duration(base, base);
8838 set_tim_eyeeye(randint1(base) + base, FALSE);
8845 if (name) return "¿À¤ÎÅܤê";
8846 if (desc) return "¥¿¡¼¥²¥Ã¥È¤Î¼þ°Ï¤Ëʬ²ò¤Îµå¤ò¿¿ôÍî¤È¤¹¡£";
8848 if (name) return "Wrath of the God";
8849 if (desc) return "Drops many balls of disintegration near the target.";
8853 int dam = plev * 3 + 25;
8856 if (info) return info_multi_damage(dam);
8860 if (!cast_wrath_of_the_god(dam, rad)) return NULL;
8867 if (name) return "¿À°Ò";
8868 if (desc) return "ÎÙÀܤ¹¤ë¥â¥ó¥¹¥¿¡¼¤ËÀ»¤Ê¤ë¥À¥á¡¼¥¸¤òÍ¿¤¨¡¢»ë³¦Æâ¤Î¥â¥ó¥¹¥¿¡¼¤Ë¥À¥á¡¼¥¸¡¢¸ºÂ®¡¢Û¯Û°¡¢º®Í𡢶²ÉÝ¡¢Ì²¤ê¤òÍ¿¤¨¤ë¡£¤µ¤é¤ËÂÎÎϤò²óÉü¤¹¤ë¡£";
8870 if (name) return "Divine Intervention";
8871 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.";
8875 int b_dam = plev * 11;
8876 int d_dam = plev * 4;
8878 int power = plev * 4;
8881 if (info) return format("²ó%d/»%d+%d", heal, d_dam, b_dam/2);
8883 if (info) return format("h%d/dm%d+%d", heal, d_dam, b_dam/2);
8888 project(0, 1, py, px, b_dam, GF_HOLY_FIRE, PROJECT_KILL, -1);
8889 dispel_monsters(d_dam);
8891 stun_monsters(power);
8892 confuse_monsters(power);
8893 turn_monsters(power);
8894 stasis_monsters(power);
8902 if (name) return "À»Àï";
8903 if (desc) return "»ë³¦Æâ¤ÎÁ±Îɤʥâ¥ó¥¹¥¿¡¼¤ò¥Ú¥Ã¥È¤Ë¤·¤è¤¦¤È¤·¡¢¤Ê¤é¤Ê¤«¤Ã¤¿¾ì¹çµÚ¤ÓÁ±ÎɤǤʤ¤¥â¥ó¥¹¥¿¡¼¤ò¶²Éݤµ¤»¤ë¡£¤µ¤é¤Ë¿¿ô¤Î²Ã®¤µ¤ì¤¿µ³»Î¤ò¾¤´¤·¡¢¥Ò¡¼¥í¡¼¡¢½ËÊ¡¡¢²Ã®¡¢Âмٰ·ë³¦¤òÆÀ¤ë¡£";
8905 if (name) return "Crusade";
8906 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.";
8913 int sp_sides = 20 + plev;
8918 for (i = 0; i < 12; i++)
8925 scatter(&my, &mx, py, px, 4, 0);
8927 /* Require empty grids */
8928 if (cave_empty_bold2(my, mx)) break;
8930 if (attempt < 0) continue;
8931 summon_specific(-1, my, mx, plev, SUMMON_KNIGHTS, (PM_ALLOW_GROUP | PM_FORCE_PET | PM_HASTE));
8933 set_hero(randint1(base) + base, FALSE);
8934 set_blessed(randint1(base) + base, FALSE);
8935 set_fast(randint1(sp_sides) + sp_base, FALSE);
8936 set_protevil(randint1(base) + base, FALSE);
8947 static cptr do_music_spell(int spell, int mode)
8949 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
8950 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
8951 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
8952 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
8953 bool fail = (mode == SPELL_FAIL) ? TRUE : FALSE;
8954 bool cont = (mode == SPELL_CONT) ? TRUE : FALSE;
8955 bool stop = (mode == SPELL_STOP) ? TRUE : FALSE;
8958 static const char s_dam[] = "»½ý:";
8960 static const char s_dam[] = "dam ";
8964 int plev = p_ptr->lev;
8970 if (name) return "ÃÙÆߤβÎ";
8971 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò¸ºÂ®¤µ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
8973 if (name) return "Song of Holding";
8974 if (desc) return "Attempts to slow all monsters in sight.";
8977 /* Stop singing before start another */
8978 if (cast || fail) stop_singing();
8983 msg_print("¤æ¤Ã¤¯¤ê¤È¤·¤¿¥á¥í¥Ç¥£¤ò¸ý¤º¤µ¤ß»Ï¤á¤¿¡¥¡¥¡¥");
8985 msg_print("You start humming a slow, steady melody...");
8987 start_singing(spell, MUSIC_SLOW);
8993 if (info) return info_power(power);
9004 if (name) return "½ËÊ¡¤Î²Î";
9005 if (desc) return "Ì¿ÃæΨ¤ÈAC¤Î¥Ü¡¼¥Ê¥¹¤òÆÀ¤ë¡£";
9007 if (name) return "Song of Blessing";
9008 if (desc) return "Gives bonus to hit and AC for a few turns.";
9011 /* Stop singing before start another */
9012 if (cast || fail) stop_singing();
9017 msg_print("¸·¤«¤Ê¥á¥í¥Ç¥£¤òÁդǻϤ᤿¡¥¡¥¡¥");
9019 msg_print("The holy power of the Music of the Ainur enters you...");
9021 start_singing(spell, MUSIC_BLESS);
9026 if (!p_ptr->blessed)
9029 msg_print("¹â·é¤Êµ¤Ê¬¤¬¾Ã¤¨¼º¤»¤¿¡£");
9031 msg_print("The prayer has expired.");
9040 if (name) return "Êø²õ¤Î²»¿§";
9041 if (desc) return "¹ì²»¤Î¥Ü¥ë¥È¤òÊü¤Ä¡£";
9043 if (name) return "Wrecking Note";
9044 if (desc) return "Fires a bolt of sound.";
9047 /* Stop singing before start another */
9048 if (cast || fail) stop_singing();
9051 int dice = 4 + (plev - 1) / 5;
9054 if (info) return info_damage(dice, sides, 0);
9058 if (!get_aim_dir(&dir)) return NULL;
9060 fire_bolt(GF_SOUND, dir, damroll(dice, sides));
9067 if (name) return "Û¯Û°¤ÎÀûΧ";
9068 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤òÛ¯Û°¤µ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
9070 if (name) return "Stun Pattern";
9071 if (desc) return "Attempts to stun all monsters in sight.";
9074 /* Stop singing before start another */
9075 if (cast || fail) stop_singing();
9080 msg_print("âÁÏǤµ¤»¤ë¥á¥í¥Ç¥£¤òÁդǻϤ᤿¡¥¡¥¡¥");
9082 msg_print("You weave a pattern of sounds to bewilder and daze...");
9084 start_singing(spell, MUSIC_STUN);
9088 int dice = plev / 10;
9091 if (info) return info_power_dice(dice, sides);
9095 stun_monsters(damroll(dice, sides));
9103 if (name) return "À¸Ì¿¤Îή¤ì";
9104 if (desc) return "ÂÎÎϤò¾¯¤·²óÉü¤µ¤»¤ë¡£";
9106 if (name) return "Flow of Life";
9107 if (desc) return "Heals HP a little.";
9110 /* Stop singing before start another */
9111 if (cast || fail) stop_singing();
9116 msg_print("²Î¤òÄ̤·¤ÆÂΤ˳赤¤¬Ìá¤Ã¤Æ¤¤¿¡¥¡¥¡¥");
9118 msg_print("Life flows through you as you sing a song of healing...");
9120 start_singing(spell, MUSIC_L_LIFE);
9127 if (info) return info_heal(dice, sides, 0);
9131 hp_player(damroll(dice, sides));
9139 if (name) return "ÂÀÍۤβÎ";
9140 if (desc) return "¸÷¸»¤¬¾È¤é¤·¤Æ¤¤¤ëÈϰϤ«Éô²°Á´ÂΤò±Êµ×¤ËÌÀ¤ë¤¯¤¹¤ë¡£";
9142 if (name) return "Song of the Sun";
9143 if (desc) return "Lights up nearby area and the inside of a room permanently.";
9146 /* Stop singing before start another */
9147 if (cast || fail) stop_singing();
9151 int sides = plev / 2;
9152 int rad = plev / 10 + 1;
9154 if (info) return info_damage(dice, sides, 0);
9159 msg_print("¸÷¤êµ±¤¯²Î¤¬ÊÕ¤ê¤ò¾È¤é¤·¤¿¡£");
9161 msg_print("Your uplifting song brings brightness to dark places...");
9164 lite_area(damroll(dice, sides), rad);
9171 if (name) return "¶²ÉݤβÎ";
9172 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò¶²Éݤµ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
9174 if (name) return "Song of Fear";
9175 if (desc) return "Attempts to scare all monsters in sight.";
9178 /* Stop singing before start another */
9179 if (cast || fail) stop_singing();
9184 msg_print("¤ª¤É¤í¤ª¤É¤í¤·¤¤¥á¥í¥Ç¥£¤òÁդǻϤ᤿¡¥¡¥¡¥");
9186 msg_print("You start weaving a fearful pattern...");
9188 start_singing(spell, MUSIC_FEAR);
9194 if (info) return info_power(power);
9198 project_hack(GF_TURN_ALL, power);
9206 if (name) return "À襤¤Î²Î";
9207 if (desc) return "¥Ò¡¼¥í¡¼µ¤Ê¬¤Ë¤Ê¤ë¡£";
9209 if (name) return "Heroic Ballad";
9210 if (desc) return "Removes fear, and gives bonus to hit and 10 more HP for a while.";
9213 /* Stop singing before start another */
9214 if (cast || fail) stop_singing();
9219 msg_print("·ã¤·¤¤À襤¤Î²Î¤ò²Î¤Ã¤¿¡¥¡¥¡¥");
9221 msg_print("You start singing a song of intense fighting...");
9224 (void)hp_player(10);
9225 (void)set_afraid(0);
9227 /* Recalculate hitpoints */
9228 p_ptr->update |= (PU_HP);
9230 start_singing(spell, MUSIC_HERO);
9238 msg_print("¥Ò¡¼¥í¡¼¤Îµ¤Ê¬¤¬¾Ã¤¨¼º¤»¤¿¡£");
9240 msg_print("The heroism wears off.");
9242 /* Recalculate hitpoints */
9243 p_ptr->update |= (PU_HP);
9251 if (name) return "ÎîŪÃγÐ";
9252 if (desc) return "¶á¤¯¤Îæ«/Èâ/³¬Ãʤò´¶ÃΤ¹¤ë¡£¥ì¥Ù¥ë15¤ÇÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¡¢20¤ÇºâÊõ¤È¥¢¥¤¥Æ¥à¤ò´¶ÃΤǤ¤ë¤è¤¦¤Ë¤Ê¤ë¡£¥ì¥Ù¥ë25¤Ç¼þÊÕ¤ÎÃÏ·Á¤ò´¶ÃΤ·¡¢40¤Ç¤½¤Î³¬Á´ÂΤò±Êµ×¤Ë¾È¤é¤·¡¢¥À¥ó¥¸¥ç¥óÆâ¤Î¤¹¤Ù¤Æ¤Î¥¢¥¤¥Æ¥à¤ò´¶ÃΤ¹¤ë¡£¤³¤Î¸ú²Ì¤Ï²Î¤¤Â³¤±¤ë¤³¤È¤Ç½ç¤Ëµ¯¤³¤ë¡£";
9254 if (name) return "Clairaudience";
9255 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.";
9258 /* Stop singing before start another */
9259 if (cast || fail) stop_singing();
9264 msg_print("ÀŤ«¤Ê²»³Ú¤¬´¶³Ð¤ò¸¦¤®À¡¤Þ¤µ¤»¤¿¡¥¡¥¡¥");
9266 msg_print("Your quiet music sharpens your sense of hearing...");
9269 /* Hack -- Initialize the turn count */
9270 p_ptr->magic_num1[2] = 0;
9272 start_singing(spell, MUSIC_DETECT);
9276 int rad = DETECT_RAD_DEFAULT;
9278 if (info) return info_radius(rad);
9282 int count = p_ptr->magic_num1[2];
9284 if (count >= 19) wiz_lite(FALSE);
9288 if (plev > 39 && count < 19)
9289 p_ptr->magic_num1[2] = count + 1;
9293 /* There are too many hidden treasure. So... */
9294 /* detect_treasure(rad); */
9295 detect_objects_gold(rad);
9296 detect_objects_normal(rad);
9298 if (plev > 24 && count < 11)
9299 p_ptr->magic_num1[2] = count + 1;
9303 detect_monsters_invis(rad);
9304 detect_monsters_normal(rad);
9306 if (plev > 19 && count < 6)
9307 p_ptr->magic_num1[2] = count + 1;
9309 detect_traps(rad, TRUE);
9313 if (plev > 14 && count < 3)
9314 p_ptr->magic_num1[2] = count + 1;
9322 if (name) return "º²¤Î²Î";
9323 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ËÂФ·¤ÆÀº¿À¹¶·â¤ò¹Ô¤¦¡£";
9325 if (name) return "Soul Shriek";
9326 if (desc) return "Damages all monsters in sight with PSI damages.";
9329 /* Stop singing before start another */
9330 if (cast || fail) stop_singing();
9335 msg_print("Àº¿À¤òDZ¤¸¶Ê¤²¤ë²Î¤ò²Î¤Ã¤¿¡¥¡¥¡¥");
9337 msg_print("You start singing a song of soul in pain...");
9339 start_singing(spell, MUSIC_PSI);
9344 int sides = plev * 3 / 2;
9346 if (info) return info_damage(dice, sides, 0);
9350 project_hack(GF_PSI, damroll(dice, sides));
9358 if (name) return "Ãμ±¤Î²Î";
9359 if (desc) return "¼«Ê¬¤Î¤¤¤ë¥Þ¥¹¤ÈÎÙ¤ê¤Î¥Þ¥¹¤ËÍî¤Á¤Æ¤¤¤ë¥¢¥¤¥Æ¥à¤ò´ÕÄꤹ¤ë¡£";
9361 if (name) return "Song of Lore";
9362 if (desc) return "Identifies all items which are in the adjacent squares.";
9365 /* Stop singing before start another */
9366 if (cast || fail) stop_singing();
9371 msg_print("¤³¤ÎÀ¤³¦¤ÎÃ챤¬Î®¤ì¹þ¤ó¤Ç¤¤¿¡¥¡¥¡¥");
9373 msg_print("You recall the rich lore of the world...");
9375 start_singing(spell, MUSIC_ID);
9381 if (info) return info_radius(rad);
9384 * ²Î¤Î³«»Ï»þ¤Ë¤â¸ú²Ìȯư¡§
9385 * MPÉÔ¤ǴÕÄ꤬ȯư¤µ¤ì¤ëÁ°¤Ë²Î¤¬ÃæÃǤ·¤Æ¤·¤Þ¤¦¤Î¤òËɻߡ£
9389 project(0, rad, py, px, 0, GF_IDENTIFY, PROJECT_ITEM, -1);
9397 if (name) return "±£ÆۤβÎ";
9398 if (desc) return "±£Ì©¹ÔưǽÎϤò¾å¾º¤µ¤»¤ë¡£";
9400 if (name) return "Hiding Tune";
9401 if (desc) return "Gives improved stealth.";
9404 /* Stop singing before start another */
9405 if (cast || fail) stop_singing();
9410 msg_print("¤¢¤Ê¤¿¤Î»Ñ¤¬·Ê¿§¤Ë¤È¤±¤³¤ó¤Ç¤¤¤Ã¤¿¡¥¡¥¡¥");
9412 msg_print("Your song carries you beyond the sight of mortal eyes...");
9414 start_singing(spell, MUSIC_STEALTH);
9419 if (!p_ptr->tim_stealth)
9422 msg_print("»Ñ¤¬¤Ï¤Ã¤¤ê¤È¸«¤¨¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£");
9424 msg_print("You are no longer hided.");
9433 if (name) return "¸¸±Æ¤ÎÀûΧ";
9434 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤òº®Í𤵤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
9436 if (name) return "Illusion Pattern";
9437 if (desc) return "Attempts to confuse all monsters in sight.";
9440 /* Stop singing before start another */
9441 if (cast || fail) stop_singing();
9446 msg_print("ÊÕ¤ê°ìÌ̤˸¸±Æ¤¬¸½¤ì¤¿¡¥¡¥¡¥");
9448 msg_print("You weave a pattern of sounds to beguile and confuse...");
9450 start_singing(spell, MUSIC_CONF);
9454 int power = plev * 2;
9456 if (info) return info_power(power);
9460 confuse_monsters(power);
9468 if (name) return "ÇËÌǤ櫤Ó";
9469 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ËÂФ·¤Æ¹ì²»¹¶·â¤ò¹Ô¤¦¡£";
9471 if (name) return "Doomcall";
9472 if (desc) return "Damages all monsters in sight with booming sound.";
9475 /* Stop singing before start another */
9476 if (cast || fail) stop_singing();
9481 msg_print("¹ì²»¤¬¶Á¤¤¤¿¡¥¡¥¡¥");
9483 msg_print("The fury of the Downfall of Numenor lashes out...");
9485 start_singing(spell, MUSIC_SOUND);
9489 int dice = 10 + plev / 5;
9492 if (info) return info_damage(dice, sides, 0);
9496 project_hack(GF_SOUND, damroll(dice, sides));
9504 if (name) return "¥Õ¥£¥ê¥¨¥ë¤Î²Î";
9505 if (desc) return "¼þ°Ï¤Î»àÂΤä¹ü¤òÀ¸¤ÊÖ¤¹¡£";
9507 if (name) return "Firiel's Song";
9508 if (desc) return "Resurrects nearby corpse and skeletons. And makes these your pets.";
9512 /* Stop singing before start another */
9513 if (cast || fail) stop_singing();
9518 msg_print("À¸Ì¿¤ÈÉü³è¤Î¥Æ¡¼¥Þ¤òÁդǻϤ᤿¡¥¡¥¡¥");
9520 msg_print("The themes of life and revival are woven into your song...");
9523 animate_dead(0, py, px);
9530 if (name) return "ι¤ÎÃç´Ö";
9531 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò̥λ¤¹¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
9533 if (name) return "Fellowship Chant";
9534 if (desc) return "Attempts to charm all monsters in sight.";
9537 /* Stop singing before start another */
9538 if (cast || fail) stop_singing();
9543 msg_print("°Â¤é¤«¤Ê¥á¥í¥Ç¥£¤òÁդǻϤ᤿¡¥¡¥¡¥");
9545 msg_print("You weave a slow, soothing melody of imploration...");
9547 start_singing(spell, MUSIC_CHARM);
9551 int dice = 10 + plev / 15;
9554 if (info) return info_power_dice(dice, sides);
9558 charm_monsters(damroll(dice, sides));
9566 if (name) return "ʬ²ò²»ÇÈ";
9567 if (desc) return "Êɤò·¡¤ê¿Ê¤à¡£¼«Ê¬¤Î¸µ¤Î¥¢¥¤¥Æ¥à¤Ï¾øȯ¤¹¤ë¡£";
9569 if (name) return "Sound of disintegration";
9570 if (desc) return "Makes you be able to burrow into walls. Objects under your feet evaporate.";
9573 /* Stop singing before start another */
9574 if (cast || fail) stop_singing();
9579 msg_print("Ê´ºÕ¤¹¤ë¥á¥í¥Ç¥£¤òÁդǻϤ᤿¡¥¡¥¡¥");
9581 msg_print("You weave a violent pattern of sounds to break wall.");
9583 start_singing(spell, MUSIC_WALL);
9588 * ²Î¤Î³«»Ï»þ¤Ë¤â¸ú²Ìȯư¡§
9589 * MPÉÔ¤Ǹú²Ì¤¬È¯Æ°¤µ¤ì¤ëÁ°¤Ë²Î¤¬ÃæÃǤ·¤Æ¤·¤Þ¤¦¤Î¤òËɻߡ£
9593 project(0, 0, py, px,
9594 0, GF_DISINTEGRATE, PROJECT_KILL | PROJECT_ITEM | PROJECT_HIDE, -1);
9601 if (name) return "¸µÁÇÂÑÀ";
9602 if (desc) return "»À¡¢ÅÅ·â¡¢±ê¡¢Î䵤¡¢ÆǤËÂФ¹¤ëÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
9604 if (name) return "Finrod's Resistance";
9605 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.";
9608 /* Stop singing before start another */
9609 if (cast || fail) stop_singing();
9614 msg_print("¸µÁǤÎÎϤËÂФ¹¤ëǦÂѤβΤò²Î¤Ã¤¿¡£");
9616 msg_print("You sing a song of perseverance against powers...");
9618 start_singing(spell, MUSIC_RESIST);
9623 if (!p_ptr->oppose_acid)
9626 msg_print("»À¤Ø¤ÎÂÑÀ¤¬Çö¤ì¤¿µ¤¤¬¤¹¤ë¡£");
9628 msg_print("You feel less resistant to acid.");
9632 if (!p_ptr->oppose_elec)
9635 msg_print("ÅÅ·â¤Ø¤ÎÂÑÀ¤¬Çö¤ì¤¿µ¤¤¬¤¹¤ë¡£");
9637 msg_print("You feel less resistant to elec.");
9641 if (!p_ptr->oppose_fire)
9644 msg_print("²Ð¤Ø¤ÎÂÑÀ¤¬Çö¤ì¤¿µ¤¤¬¤¹¤ë¡£");
9646 msg_print("You feel less resistant to fire.");
9650 if (!p_ptr->oppose_cold)
9653 msg_print("Î䵤¤Ø¤ÎÂÑÀ¤¬Çö¤ì¤¿µ¤¤¬¤¹¤ë¡£");
9655 msg_print("You feel less resistant to cold.");
9659 if (!p_ptr->oppose_pois)
9662 msg_print("ÆǤؤÎÂÑÀ¤¬Çö¤ì¤¿µ¤¤¬¤¹¤ë¡£");
9664 msg_print("You feel less resistant to pois.");
9673 if (name) return "¥Û¥Ó¥Ã¥È¤Î¥á¥í¥Ç¥£";
9674 if (desc) return "²Ã®¤¹¤ë¡£";
9676 if (name) return "Hobbit Melodies";
9677 if (desc) return "Hastes you.";
9680 /* Stop singing before start another */
9681 if (cast || fail) stop_singing();
9686 msg_print("·Ú²÷¤Ê²Î¤ò¸ý¤º¤µ¤ß»Ï¤á¤¿¡¥¡¥¡¥");
9688 msg_print("You start singing joyful pop song...");
9690 start_singing(spell, MUSIC_SPEED);
9698 msg_print("Æ°¤¤ÎÁÇÁᤵ¤¬¤Ê¤¯¤Ê¤Ã¤¿¤è¤¦¤À¡£");
9700 msg_print("You feel yourself slow down.");
9709 if (name) return "ÏĤó¤ÀÀ¤³¦";
9710 if (desc) return "¶á¤¯¤Î¥â¥ó¥¹¥¿¡¼¤ò¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
9712 if (name) return "World Contortion";
9713 if (desc) return "Teleports all nearby monsters away unless resisted.";
9717 int rad = plev / 15 + 1;
9718 int power = plev * 3 + 1;
9720 if (info) return info_radius(rad);
9722 /* Stop singing before start another */
9723 if (cast || fail) stop_singing();
9728 msg_print("²Î¤¬¶õ´Ö¤òÏĤ᤿¡¥¡¥¡¥");
9730 msg_print("Reality whirls wildly as you sing a dizzying melody...");
9733 project(0, rad, py, px, power, GF_AWAY_ALL, PROJECT_KILL, -1);
9740 if (name) return "Â໶¤Î²Î";
9741 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ËÆäËÂ礤ʥÀ¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
9743 if (name) return "Dispelling chant";
9744 if (desc) return "Damages all monsters in sight. Hurts evil monsters greatly.";
9747 /* Stop singing before start another */
9748 if (cast || fail) stop_singing();
9753 msg_print("ÂѤ¨¤é¤ì¤Ê¤¤ÉÔ¶¨Ï²»¤¬Å¨¤òÀÕ¤áΩ¤Æ¤¿¡¥¡¥¡¥");
9755 msg_print("You cry out in an ear-wracking voice...");
9757 start_singing(spell, MUSIC_DISPEL);
9761 int m_sides = plev * 3;
9762 int e_sides = plev * 3;
9764 if (info) return format("%s1d%d+1d%d", s_dam, m_sides, e_sides);
9768 dispel_monsters(randint1(m_sides));
9769 dispel_evil(randint1(e_sides));
9776 if (name) return "¥µ¥ë¥Þ¥ó¤Î´Å¸À";
9777 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò¸ºÂ®¤µ¤»¡¢Ì²¤é¤»¤è¤¦¤È¤¹¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
9779 if (name) return "The Voice of Saruman";
9780 if (desc) return "Attempts to slow and sleep all monsters in sight.";
9783 /* Stop singing before start another */
9784 if (cast || fail) stop_singing();
9789 msg_print("Í¥¤·¤¯¡¢Ì¥ÎÏŪ¤Ê²Î¤ò¸ý¤º¤µ¤ß»Ï¤á¤¿¡¥¡¥¡¥");
9791 msg_print("You start humming a gentle and attractive song...");
9793 start_singing(spell, MUSIC_SARUMAN);
9799 if (info) return info_power(power);
9812 if (name) return "Íò¤Î²»¿§";
9813 if (desc) return "¹ì²»¤Î¥Ó¡¼¥à¤òÊü¤Ä¡£";
9815 if (name) return "Song of the Tempest";
9816 if (desc) return "Fires a beam of sound.";
9820 int dice = 15 + (plev - 1) / 2;
9823 if (info) return info_damage(dice, sides, 0);
9825 /* Stop singing before start another */
9826 if (cast || fail) stop_singing();
9830 if (!get_aim_dir(&dir)) return NULL;
9832 fire_beam(GF_SOUND, dir, damroll(dice, sides));
9839 if (name) return "¤â¤¦°ì¤Ä¤ÎÀ¤³¦";
9840 if (desc) return "¸½ºß¤Î³¬¤òºÆ¹½À®¤¹¤ë¡£";
9842 if (name) return "Ambarkanta";
9843 if (desc) return "Recreates current dungeon level.";
9850 if (info) return info_delay(base, sides);
9852 /* Stop singing before start another */
9853 if (cast || fail) stop_singing();
9858 msg_print("¼þ°Ï¤¬ÊѲ½¤·»Ï¤á¤¿¡¥¡¥¡¥");
9860 msg_print("You sing of the primeval shaping of Middle-earth...");
9870 if (name) return "Ç˲õ¤ÎÀûΧ";
9871 if (desc) return "¼þ°Ï¤Î¥À¥ó¥¸¥ç¥ó¤òÍɤ餷¡¢ÊɤȾ²¤ò¥é¥ó¥À¥à¤ËÆþ¤ìÊѤ¨¤ë¡£";
9873 if (name) return "Wrecking Pattern";
9874 if (desc) return "Shakes dungeon structure, and results in random swapping of floors and walls.";
9877 /* Stop singing before start another */
9878 if (cast || fail) stop_singing();
9883 msg_print("Ç˲õŪ¤Ê²Î¤¬¶Á¤¤ï¤¿¤Ã¤¿¡¥¡¥¡¥");
9885 msg_print("You weave a pattern of sounds to contort and shatter...");
9887 start_singing(spell, MUSIC_QUAKE);
9893 if (info) return info_radius(rad);
9897 earthquake(py, px, 10);
9906 if (name) return "ÄäÂڤβÎ";
9907 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤òËãá㤵¤»¤è¤¦¤È¤¹¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
9909 if (name) return "Stationary Shriek";
9910 if (desc) return "Attempts to freeze all monsters in sight.";
9913 /* Stop singing before start another */
9914 if (cast || fail) stop_singing();
9919 msg_print("¤æ¤Ã¤¯¤ê¤È¤·¤¿¥á¥í¥Ç¥£¤òÁդǻϤ᤿¡¥¡¥¡¥");
9921 msg_print("You weave a very slow pattern which is almost likely to stop...");
9923 start_singing(spell, MUSIC_STASIS);
9927 int power = plev * 4;
9929 if (info) return info_power(power);
9933 stasis_monsters(power);
9941 if (name) return "¼é¤ê¤Î²Î";
9942 if (desc) return "¼«Ê¬¤Î¤¤¤ë¾²¤Î¾å¤Ë¡¢¥â¥ó¥¹¥¿¡¼¤¬Ä̤êÈ´¤±¤¿¤ê¾¤´¤µ¤ì¤¿¤ê¤¹¤ë¤³¤È¤¬¤Ç¤¤Ê¤¯¤Ê¤ë¥ë¡¼¥ó¤òÉÁ¤¯¡£";
9944 if (name) return "Endurance";
9945 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.";
9949 /* Stop singing before start another */
9950 if (cast || fail) stop_singing();
9955 msg_print("²Î¤¬¿ÀÀ»¤Ê¾ì¤òºî¤ê½Ð¤·¤¿¡¥¡¥¡¥");
9957 msg_print("The holy power of the Music is creating sacred field...");
9967 if (name) return "±Ñͺ¤Î»í";
9968 if (desc) return "²Ã®¤·¡¢¥Ò¡¼¥í¡¼µ¤Ê¬¤Ë¤Ê¤ê¡¢»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
9970 if (name) return "The Hero's Poem";
9971 if (desc) return "Hastes you. Gives heroism. Damages all monsters in sight.";
9974 /* Stop singing before start another */
9975 if (cast || fail) stop_singing();
9980 msg_print("±Ñͺ¤Î²Î¤ò¸ý¤º¤µ¤ó¤À¡¥¡¥¡¥");
9982 msg_print("You chant a powerful, heroic call to arms...");
9984 (void)hp_player(10);
9985 (void)set_afraid(0);
9987 /* Recalculate hitpoints */
9988 p_ptr->update |= (PU_HP);
9990 start_singing(spell, MUSIC_SHERO);
9998 msg_print("¥Ò¡¼¥í¡¼¤Îµ¤Ê¬¤¬¾Ã¤¨¼º¤»¤¿¡£");
10000 msg_print("The heroism wears off.");
10002 /* Recalculate hitpoints */
10003 p_ptr->update |= (PU_HP);
10009 msg_print("Æ°¤¤ÎÁÇÁᤵ¤¬¤Ê¤¯¤Ê¤Ã¤¿¤è¤¦¤À¡£");
10011 msg_print("You feel yourself slow down.");
10018 int sides = plev * 3;
10020 if (info) return info_damage(dice, sides, 0);
10024 dispel_monsters(damroll(dice, sides));
10031 if (name) return "¥ä¥ô¥¡¥ó¥Ê¤Î½õ¤±";
10032 if (desc) return "¶¯ÎϤʲóÉü¤Î²Î¤Ç¡¢Éé½ý¤ÈÛ¯Û°¾õÂÖ¤âÁ´²÷¤¹¤ë¡£";
10034 if (name) return "Relief of Yavanna";
10035 if (desc) return "Powerful healing song. Also heals cut and stun completely.";
10038 /* Stop singing before start another */
10039 if (cast || fail) stop_singing();
10044 msg_print("²Î¤òÄ̤·¤ÆÂΤ˳赤¤¬Ìá¤Ã¤Æ¤¤¿¡¥¡¥¡¥");
10046 msg_print("Life flows through you as you sing the song...");
10048 start_singing(spell, MUSIC_H_LIFE);
10055 if (info) return info_heal(dice, sides, 0);
10059 hp_player(damroll(dice, sides));
10069 if (name) return "ºÆÀ¸¤Î²Î";
10070 if (desc) return "¤¹¤Ù¤Æ¤Î¥¹¥Æ¡¼¥¿¥¹¤È·Ð¸³Ãͤò²óÉü¤¹¤ë¡£";
10072 if (name) return "Goddess' rebirth";
10073 if (desc) return "Restores all stats and experience.";
10077 /* Stop singing before start another */
10078 if (cast || fail) stop_singing();
10083 msg_print("°Å¹õ¤ÎÃæ¤Ë¸÷¤ÈÈþ¤ò¤Õ¤ê¤Þ¤¤¤¿¡£ÂΤ¬¸µ¤Î³èÎϤò¼è¤êÌᤷ¤¿¡£");
10085 msg_print("You strewed light and beauty in the dark as you sing. You feel refreshed.");
10087 (void)do_res_stat(A_STR);
10088 (void)do_res_stat(A_INT);
10089 (void)do_res_stat(A_WIS);
10090 (void)do_res_stat(A_DEX);
10091 (void)do_res_stat(A_CON);
10092 (void)do_res_stat(A_CHR);
10093 (void)restore_level();
10100 if (name) return "¥µ¥¦¥í¥ó¤ÎËâ½Ñ";
10101 if (desc) return "Èó¾ï¤Ë¶¯ÎϤǤ´¤¯¾®¤µ¤¤¹ì²»¤Îµå¤òÊü¤Ä¡£";
10103 if (name) return "Wizardry of Sauron";
10104 if (desc) return "Fires an extremely powerful tiny ball of sound.";
10108 int dice = 50 + plev;
10112 if (info) return info_damage(dice, sides, 0);
10114 /* Stop singing before start another */
10115 if (cast || fail) stop_singing();
10119 if (!get_aim_dir(&dir)) return NULL;
10121 fire_ball(GF_SOUND, dir, damroll(dice, sides), rad);
10128 if (name) return "¥Õ¥£¥ó¥´¥ë¥Õ¥£¥ó¤ÎÄ©Àï";
10129 if (desc) return "¥À¥á¡¼¥¸¤ò¼õ¤±¤Ê¤¯¤Ê¤ë¥Ð¥ê¥¢¤òÄ¥¤ë¡£";
10131 if (name) return "Fingolfin's Challenge";
10132 if (desc) return "Generates barrier which completely protect you from almost all damages. Takes a few your turns when the barrier breaks.";
10135 /* Stop singing before start another */
10136 if (cast || fail) stop_singing();
10141 msg_print("¥Õ¥£¥ó¥´¥ë¥Õ¥£¥ó¤Î̽²¦¤Ø¤ÎÄ©Àï¤ò²Î¤Ã¤¿¡¥¡¥¡¥");
10143 msg_print("You recall the valor of Fingolfin's challenge to the Dark Lord...");
10147 p_ptr->redraw |= (PR_MAP);
10149 /* Update monsters */
10150 p_ptr->update |= (PU_MONSTERS);
10153 p_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
10155 start_singing(spell, MUSIC_INVULN);
10160 if (!p_ptr->invuln)
10163 msg_print("̵Ũ¤Ç¤Ï¤Ê¤¯¤Ê¤Ã¤¿¡£");
10165 msg_print("The invulnerability wears off.");
10168 p_ptr->redraw |= (PR_MAP);
10170 /* Update monsters */
10171 p_ptr->update |= (PU_MONSTERS);
10174 p_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
10185 static cptr do_hissatsu_spell(int spell, int mode)
10187 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
10188 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
10189 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
10192 int plev = p_ptr->lev;
10198 if (name) return "ÈôÈÓ¹Ë";
10199 if (desc) return "2¥Þ¥¹Î¥¤ì¤¿¤È¤³¤í¤Ë¤¤¤ë¥â¥ó¥¹¥¿¡¼¤ò¹¶·â¤¹¤ë¡£";
10201 if (name) return "Tobi-Izuna";
10202 if (desc) return "Attacks a two squares distant monster.";
10207 project_length = 2;
10208 if (!get_aim_dir(&dir)) return NULL;
10210 project_hook(GF_ATTACK, dir, HISSATSU_2, PROJECT_STOP | PROJECT_KILL);
10216 if (name) return "¸Þ·î±«»Â¤ê";
10217 if (desc) return "3Êý¸þ¤ËÂФ·¤Æ¹¶·â¤¹¤ë¡£";
10219 if (name) return "3-Way Attack";
10220 if (desc) return "Attacks in 3 directions in one time.";
10228 if (!get_rep_dir2(&dir)) return NULL;
10229 if (dir == 5) return NULL;
10231 for (cdir = 0;cdir < 8; cdir++)
10233 if (cdd[cdir] == dir) break;
10236 if (cdir == 8) return NULL;
10238 y = py + ddy_cdd[cdir];
10239 x = px + ddx_cdd[cdir];
10240 if (cave[y][x].m_idx)
10241 py_attack(y, x, 0);
10244 msg_print("¹¶·â¤Ï¶õ¤òÀڤä¿¡£");
10246 msg_print("You attack the empty air.");
10248 y = py + ddy_cdd[(cdir + 7) % 8];
10249 x = px + ddx_cdd[(cdir + 7) % 8];
10250 if (cave[y][x].m_idx)
10251 py_attack(y, x, 0);
10254 msg_print("¹¶·â¤Ï¶õ¤òÀڤä¿¡£");
10256 msg_print("You attack the empty air.");
10258 y = py + ddy_cdd[(cdir + 1) % 8];
10259 x = px + ddx_cdd[(cdir + 1) % 8];
10260 if (cave[y][x].m_idx)
10261 py_attack(y, x, 0);
10264 msg_print("¹¶·â¤Ï¶õ¤òÀڤä¿¡£");
10266 msg_print("You attack the empty air.");
10273 if (name) return "¥Ö¡¼¥á¥é¥ó";
10274 if (desc) return "Éð´ï¤ò¼ê¸µ¤ËÌá¤Ã¤Æ¤¯¤ë¤è¤¦¤ËÅꤲ¤ë¡£Ìá¤Ã¤Æ¤³¤Ê¤¤¤³¤È¤â¤¢¤ë¡£";
10276 if (name) return "Boomerang";
10277 if (desc) return "Throws current weapon. And it'll return to your hand unless failed.";
10282 if (!do_cmd_throw_aux(1, TRUE, 0)) return NULL;
10288 if (name) return "±ëÎî";
10289 if (desc) return "²Ð±êÂÑÀ¤Î¤Ê¤¤¥â¥ó¥¹¥¿¡¼¤ËÂç¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
10291 if (name) return "Burning Strike";
10292 if (desc) return "Attacks a monster with more damage unless it has resistance to fire.";
10299 if (!get_rep_dir2(&dir)) return NULL;
10300 if (dir == 5) return NULL;
10305 if (cave[y][x].m_idx)
10306 py_attack(y, x, HISSATSU_FIRE);
10310 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10312 msg_print("There is no monster.");
10321 if (name) return "»¦µ¤´¶ÃÎ";
10322 if (desc) return "¶á¤¯¤Î»×¹Í¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¥â¥ó¥¹¥¿¡¼¤ò´¶ÃΤ¹¤ë¡£";
10324 if (name) return "Detect Ferocity";
10325 if (desc) return "Detects all monsters except mindless in your vicinity.";
10330 detect_monsters_mind(DETECT_RAD_DEFAULT);
10336 if (name) return "¤ß¤ÍÂǤÁ";
10337 if (desc) return "Áê¼ê¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤Ê¤¤¤¬¡¢Û¯Û°¤È¤µ¤»¤ë¡£";
10339 if (name) return "Strike to Stun";
10340 if (desc) return "Attempts to stun a monster in the adjacent.";
10347 if (!get_rep_dir2(&dir)) return NULL;
10348 if (dir == 5) return NULL;
10353 if (cave[y][x].m_idx)
10354 py_attack(y, x, HISSATSU_MINEUCHI);
10358 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10360 msg_print("There is no monster.");
10369 if (name) return "¥«¥¦¥ó¥¿¡¼";
10370 if (desc) return "Áê¼ê¤Ë¹¶·â¤µ¤ì¤¿¤È¤¤ËÈ¿·â¤¹¤ë¡£È¿·â¤¹¤ë¤¿¤Ó¤ËMP¤ò¾ÃÈñ¡£";
10372 if (name) return "Counter";
10373 if (desc) return "Prepares to counterattack. When attack by a monster, strikes back using SP each time.";
10381 msg_print("¾èÇÏÃæ¤Ë¤Ï̵Íý¤À¡£");
10383 msg_print("You cannot do it when riding.");
10388 msg_print("Áê¼ê¤Î¹¶·â¤ËÂФ·¤Æ¿È¹½¤¨¤¿¡£");
10390 msg_print("You prepare to counter blow.");
10392 p_ptr->counter = TRUE;
10398 if (name) return "ʧ¤¤È´¤±";
10399 if (desc) return "¹¶·â¤·¤¿¸å¡¢È¿ÂЦ¤ËÈ´¤±¤ë¡£";
10401 if (name) return "Harainuke";
10402 if (desc) return "Attacks monster with your weapons normally, then move through counter side of the monster.";
10412 msg_print("¾èÇÏÃæ¤Ë¤Ï̵Íý¤À¡£");
10414 msg_print("You cannot do it when riding.");
10419 if (!get_rep_dir2(&dir)) return NULL;
10421 if (dir == 5) return NULL;
10425 if (!cave[y][x].m_idx)
10428 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10430 msg_print("There is no monster.");
10435 py_attack(y, x, 0);
10437 if (!player_can_enter(cave[y][x].feat, 0) || is_trap(cave[y][x].feat))
10443 if (player_can_enter(cave[y][x].feat, 0) && !is_trap(cave[y][x].feat) && !cave[y][x].m_idx)
10447 /* Move the player */
10448 (void)move_player_effect(y, x, MPE_FORGET_FLOW | MPE_HANDLE_STUFF | MPE_DONT_PICKUP);
10455 if (name) return "¥µ¡¼¥Ú¥ó¥Ä¥¿¥ó";
10456 if (desc) return "ÆÇÂÑÀ¤Î¤Ê¤¤¥â¥ó¥¹¥¿¡¼¤ËÂç¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
10458 if (name) return "Serpent's Tongue";
10459 if (desc) return "Attacks a monster with more damage unless it has resistance to poison.";
10466 if (!get_rep_dir2(&dir)) return NULL;
10467 if (dir == 5) return NULL;
10472 if (cave[y][x].m_idx)
10473 py_attack(y, x, HISSATSU_POISON);
10477 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10479 msg_print("There is no monster.");
10488 if (name) return "»ÂËâ·õÆõ¤ÎÂÀÅá";
10489 if (desc) return "À¸Ì¿¤Î¤Ê¤¤¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ËÂç¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¤¬¡¢Â¾¤Î¥â¥ó¥¹¥¿¡¼¤Ë¤ÏÁ´¤¯¸ú²Ì¤¬¤Ê¤¤¡£";
10491 if (name) return "Zammaken";
10492 if (desc) return "Attacks an evil unliving monster with great damage. No effect to other monsters.";
10499 if (!get_rep_dir2(&dir)) return NULL;
10500 if (dir == 5) return NULL;
10505 if (cave[y][x].m_idx)
10506 py_attack(y, x, HISSATSU_ZANMA);
10510 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10512 msg_print("There is no monster.");
10521 if (name) return "ÎöÉ÷·õ";
10522 if (desc) return "¹¶·â¤·¤¿Áê¼ê¤ò¸åÊý¤Ø¿á¤Èô¤Ð¤¹¡£";
10524 if (name) return "Wind Blast";
10525 if (desc) return "Attacks an adjacent monster, and blow it away.";
10532 if (!get_rep_dir2(&dir)) return NULL;
10533 if (dir == 5) return NULL;
10538 if (cave[y][x].m_idx)
10539 py_attack(y, x, 0);
10543 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10545 msg_print("There is no monster.");
10549 if (d_info[dungeon_type].flags1 & DF1_NO_MELEE)
10553 if (cave[y][x].m_idx)
10556 int ty = y, tx = x;
10557 int oy = y, ox = x;
10558 int m_idx = cave[y][x].m_idx;
10559 monster_type *m_ptr = &m_list[m_idx];
10562 monster_desc(m_name, m_ptr, 0);
10564 for (i = 0; i < 5; i++)
10568 if (cave_empty_bold(y, x))
10575 if ((ty != oy) || (tx != ox))
10578 msg_format("%s¤ò¿á¤Èô¤Ð¤·¤¿¡ª", m_name);
10580 msg_format("You blow %s away!", m_name);
10582 cave[oy][ox].m_idx = 0;
10583 cave[ty][tx].m_idx = m_idx;
10587 update_mon(m_idx, TRUE);
10591 if (r_info[m_ptr->r_idx].flags7 & (RF7_LITE_MASK | RF7_DARK_MASK))
10592 p_ptr->update |= (PU_MON_LITE);
10600 if (name) return "Åá¾¢¤ÎÌÜÍø¤";
10601 if (desc) return "Éð´ï¡¦Ëɶñ¤ò1¤Ä¼±Ê̤¹¤ë¡£¥ì¥Ù¥ë45°Ê¾å¤ÇÉð´ï¡¦Ëɶñ¤ÎǽÎϤò´°Á´¤ËÃΤ뤳¤È¤¬¤Ç¤¤ë¡£";
10603 if (name) return "Judge";
10604 if (desc) return "Identifies a weapon or armor. Or *identifies* these at level 45.";
10611 if (!identify_fully(TRUE)) return NULL;
10615 if (!ident_spell(TRUE)) return NULL;
10622 if (name) return "ÇË´ä»Â";
10623 if (desc) return "´ä¤ò²õ¤·¡¢´äÀзϤΥâ¥ó¥¹¥¿¡¼¤ËÂç¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
10625 if (name) return "Rock Smash";
10626 if (desc) return "Breaks rock. Or greatly damage a monster made by rocks.";
10633 if (!get_rep_dir2(&dir)) return NULL;
10634 if (dir == 5) return NULL;
10639 if (cave[y][x].m_idx)
10640 py_attack(y, x, HISSATSU_HAGAN);
10642 if (!cave_have_flag_bold(y, x, FF_HURT_ROCK)) break;
10644 /* Destroy the feature */
10645 cave_alter_feat(y, x, FF_HURT_ROCK);
10647 /* Update some things */
10648 p_ptr->update |= (PU_FLOW);
10654 if (name) return "Íð¤ìÀã·î²Ö";
10655 if (desc) return "¹¶·â²ó¿ô¤¬Áý¤¨¡¢Î䵤ÂÑÀ¤Î¤Ê¤¤¥â¥ó¥¹¥¿¡¼¤ËÂç¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
10657 if (name) return "Midare-Setsugekka";
10658 if (desc) return "Attacks a monster with increased number of attacks and more damage unless it has resistance to cold.";
10665 if (!get_rep_dir2(&dir)) return NULL;
10666 if (dir == 5) return NULL;
10671 if (cave[y][x].m_idx)
10672 py_attack(y, x, HISSATSU_COLD);
10676 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10678 msg_print("There is no monster.");
10687 if (name) return "µÞ½êÆͤ";
10688 if (desc) return "¥â¥ó¥¹¥¿¡¼¤ò°ì·â¤ÇÅݤ¹¹¶·â¤ò·«¤ê½Ð¤¹¡£¼ºÇÔ¤¹¤ë¤È1ÅÀ¤·¤«¥À¥á¡¼¥¸¤òÍ¿¤¨¤é¤ì¤Ê¤¤¡£";
10690 if (name) return "Spot Aiming";
10691 if (desc) return "Attempts to kill a monster instantly. If failed cause only 1HP of damage.";
10698 if (!get_rep_dir2(&dir)) return NULL;
10699 if (dir == 5) return NULL;
10704 if (cave[y][x].m_idx)
10705 py_attack(y, x, HISSATSU_KYUSHO);
10709 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10711 msg_print("There is no monster.");
10720 if (name) return "Ëâ¿À»Â¤ê";
10721 if (desc) return "²ñ¿´¤Î°ì·â¤Ç¹¶·â¤¹¤ë¡£¹¶·â¤¬¤«¤ï¤µ¤ì¤ä¤¹¤¤¡£";
10723 if (name) return "Majingiri";
10724 if (desc) return "Attempts to attack with critical hit. But this attack is easy to evade for a monster.";
10731 if (!get_rep_dir2(&dir)) return NULL;
10732 if (dir == 5) return NULL;
10737 if (cave[y][x].m_idx)
10738 py_attack(y, x, HISSATSU_MAJIN);
10742 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10744 msg_print("There is no monster.");
10753 if (name) return "¼Î¤Æ¿È";
10754 if (desc) return "¶¯ÎϤʹ¶·â¤ò·«¤ê½Ð¤¹¡£¼¡¤Î¥¿¡¼¥ó¤Þ¤Ç¤Î´Ö¡¢¿©¤é¤¦¥À¥á¡¼¥¸¤¬Áý¤¨¤ë¡£";
10756 if (name) return "Desperate Attack";
10757 if (desc) return "Attacks with all of your power. But all damages you take will be doubled for one turn.";
10764 if (!get_rep_dir2(&dir)) return NULL;
10765 if (dir == 5) return NULL;
10770 if (cave[y][x].m_idx)
10771 py_attack(y, x, HISSATSU_SUTEMI);
10775 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10777 msg_print("There is no monster.");
10781 p_ptr->sutemi = TRUE;
10787 if (name) return "Íë·âÏÉÄÞ»Â";
10788 if (desc) return "ÅÅ·âÂÑÀ¤Î¤Ê¤¤¥â¥ó¥¹¥¿¡¼¤ËÈó¾ï¤ËÂ礤¤¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
10790 if (name) return "Lightning Eagle";
10791 if (desc) return "Attacks a monster with more damage unless it has resistance to electricity.";
10798 if (!get_rep_dir2(&dir)) return NULL;
10799 if (dir == 5) return NULL;
10804 if (cave[y][x].m_idx)
10805 py_attack(y, x, HISSATSU_ELEC);
10809 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10811 msg_print("There is no monster.");
10820 if (name) return "Æþ¿È";
10821 if (desc) return "ÁÇÁ᤯Áê¼ê¤Ë¶á´ó¤ê¹¶·â¤¹¤ë¡£";
10823 if (name) return "Rush Attack";
10824 if (desc) return "Steps close to a monster and attacks at a time.";
10829 if (!rush_attack(NULL)) return NULL;
10835 if (name) return "ÀÖή±²";
10836 if (desc) return "¼«Ê¬¼«¿È¤â½ý¤òºî¤ê¤Ä¤Ä¡¢¤½¤Î½ý¤¬¿¼¤¤¤Û¤ÉÂ礤¤°ÒÎϤÇÁ´Êý¸þ¤ÎŨ¤ò¹¶·â¤Ç¤¤ë¡£À¸¤¤Æ¤¤¤Ê¤¤¥â¥ó¥¹¥¿¡¼¤Ë¤Ï¸ú²Ì¤¬¤Ê¤¤¡£";
10838 if (name) return "Bloody Maelstrom";
10839 if (desc) return "Attacks all adjacent monsters with power corresponding to your cut status. Then increases your cut status. No effect to unliving monsters.";
10847 monster_type *m_ptr;
10849 if (p_ptr->cut < 300)
10850 set_cut(p_ptr->cut + 300);
10852 set_cut(p_ptr->cut * 2);
10854 for (dir = 0; dir < 8; dir++)
10856 y = py + ddy_ddd[dir];
10857 x = px + ddx_ddd[dir];
10858 c_ptr = &cave[y][x];
10860 /* Get the monster */
10861 m_ptr = &m_list[c_ptr->m_idx];
10863 /* Hack -- attack monsters */
10864 if (c_ptr->m_idx && (m_ptr->ml || cave_have_flag_bold(y, x, FF_PROJECT)))
10866 if (!monster_living(&r_info[m_ptr->r_idx]))
10870 monster_desc(m_name, m_ptr, 0);
10872 msg_format("%s¤Ë¤Ï¸ú²Ì¤¬¤Ê¤¤¡ª", m_name);
10874 msg_format("%s is unharmed!", m_name);
10877 else py_attack(y, x, HISSATSU_SEKIRYUKA);
10885 if (name) return "·ã¿Ì·â";
10886 if (desc) return "ÃϿ̤òµ¯¤³¤¹¡£";
10888 if (name) return "Earthquake Blow";
10889 if (desc) return "Shakes dungeon structure, and results in random swapping of floors and walls.";
10896 if (!get_rep_dir2(&dir)) return NULL;
10897 if (dir == 5) return NULL;
10902 if (cave[y][x].m_idx)
10903 py_attack(y, x, HISSATSU_QUAKE);
10905 earthquake(py, px, 10);
10911 if (name) return "ÃÏÁö¤ê";
10912 if (desc) return "¾×·âÇȤΥӡ¼¥à¤òÊü¤Ä¡£";
10914 if (name) return "Crack";
10915 if (desc) return "Fires a beam of shock wave.";
10920 int total_damage = 0, basedam, i;
10921 u32b flgs[TR_FLAG_SIZE];
10922 object_type *o_ptr;
10923 if (!get_aim_dir(&dir)) return NULL;
10925 msg_print("Éð´ï¤òÂ礤¯¿¶¤ê²¼¤í¤·¤¿¡£");
10927 msg_print("You swing your weapon downward.");
10929 for (i = 0; i < 2; i++)
10933 if (!buki_motteruka(INVEN_RARM+i)) break;
10934 o_ptr = &inventory[INVEN_RARM+i];
10935 basedam = (o_ptr->dd * (o_ptr->ds + 1)) * 50;
10936 damage = o_ptr->to_d * 100;
10937 object_flags(o_ptr, flgs);
10938 if ((o_ptr->name1 == ART_VORPAL_BLADE) || (o_ptr->name1 == ART_CHAINSWORD))
10944 else if (have_flag(flgs, TR_VORPAL))
10946 /* vorpal flag only */
10951 damage *= p_ptr->num_blow[i];
10952 total_damage += damage / 200;
10953 if (i) total_damage = total_damage*7/10;
10955 fire_beam(GF_FORCE, dir, total_damage);
10961 if (name) return "µ¤Ç÷¤Îͺ¶«¤Ó";
10962 if (desc) return "»ë³¦Æâ¤ÎÁ´¥â¥ó¥¹¥¿¡¼¤ËÂФ·¤Æ¹ì²»¤Î¹¶·â¤ò¹Ô¤¦¡£¤µ¤é¤Ë¡¢¶á¤¯¤Ë¤¤¤ë¥â¥ó¥¹¥¿¡¼¤òÅܤ餻¤ë¡£";
10964 if (name) return "War Cry";
10965 if (desc) return "Damages all monsters in sight with sound. Aggravate nearby monsters.";
10971 msg_print("ͺ¶«¤Ó¤ò¤¢¤²¤¿¡ª");
10973 msg_print("You roar out!");
10975 project_hack(GF_SOUND, randint1(plev * 3));
10976 aggravate_monsters(0);
10982 if (name) return "̵Áл°ÃÊ";
10983 if (desc) return "¶¯ÎϤÊ3Ãʹ¶·â¤ò·«¤ê½Ð¤¹¡£";
10985 if (name) return "Musou-Sandan";
10986 if (desc) return "Attacks with powerful 3 strikes.";
10993 if (!get_rep_dir2(&dir)) return NULL;
10994 if (dir == 5) return NULL;
10996 for (i = 0; i < 3; i++)
11002 monster_type *m_ptr;
11006 c_ptr = &cave[y][x];
11009 py_attack(y, x, HISSATSU_3DAN);
11013 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
11015 msg_print("There is no monster.");
11020 if (d_info[dungeon_type].flags1 & DF1_NO_MELEE)
11025 /* Monster is dead? */
11026 if (!c_ptr->m_idx) break;
11030 m_idx = c_ptr->m_idx;
11031 m_ptr = &m_list[m_idx];
11033 /* Monster cannot move back? */
11034 if (!monster_can_enter(ny, nx, &r_info[m_ptr->r_idx], 0))
11037 if (i < 2) msg_print(NULL);
11042 cave[ny][nx].m_idx = m_idx;
11046 update_mon(m_idx, TRUE);
11048 /* Redraw the old spot */
11051 /* Redraw the new spot */
11054 /* Player can move forward? */
11055 if (player_can_enter(c_ptr->feat, 0))
11057 /* Move the player */
11058 if (!move_player_effect(y, x, MPE_FORGET_FLOW | MPE_HANDLE_STUFF | MPE_DONT_PICKUP)) break;
11062 if (i < 2) msg_print(NULL);
11069 if (name) return "µÛ·ìµ´¤Î²ç";
11070 if (desc) return "¹¶·â¤·¤¿Áê¼ê¤ÎÂÎÎϤòµÛ¤¤¤È¤ê¡¢¼«Ê¬¤ÎÂÎÎϤò²óÉü¤µ¤»¤ë¡£À¸Ì¿¤ò»ý¤¿¤Ê¤¤¥â¥ó¥¹¥¿¡¼¤Ë¤ÏÄ̤¸¤Ê¤¤¡£";
11072 if (name) return "Vampire's Fang";
11073 if (desc) return "Attacks with vampiric strikes which absorbs HP from a monster and gives them to you. No effect to unliving monsters.";
11080 if (!get_rep_dir2(&dir)) return NULL;
11081 if (dir == 5) return NULL;
11086 if (cave[y][x].m_idx)
11087 py_attack(y, x, HISSATSU_DRAIN);
11091 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
11093 msg_print("There is no monster.");
11102 if (name) return "¸¸ÏÇ";
11103 if (desc) return "»ë³¦Æâ¤Îµ¯¤¤Æ¤¤¤ëÁ´¥â¥ó¥¹¥¿¡¼¤ËÛ¯Û°¡¢º®Íð¡¢Ì²¤ê¤òÍ¿¤¨¤è¤¦¤È¤¹¤ë¡£";
11105 if (name) return "Moon Dazzling";
11106 if (desc) return "Attempts to stun, confuse and sleep all waking monsters.";
11112 msg_print("Éð´ï¤òÉÔµ¬Â§¤ËÍɤ餷¤¿¡¥¡¥¡¥");
11114 msg_print("You irregularly wave your weapon...");
11116 project_hack(GF_ENGETSU, plev * 4);
11117 project_hack(GF_ENGETSU, plev * 4);
11118 project_hack(GF_ENGETSU, plev * 4);
11124 if (name) return "É´¿Í»Â¤ê";
11125 if (desc) return "Ϣ³¤·¤ÆÆþ¿È¤Ç¥â¥ó¥¹¥¿¡¼¤ò¹¶·â¤¹¤ë¡£¹¶·â¤¹¤ë¤¿¤Ó¤ËMP¤ò¾ÃÈñ¡£MP¤¬¤Ê¤¯¤Ê¤ë¤«¡¢¥â¥ó¥¹¥¿¡¼¤òÅݤ»¤Ê¤«¤Ã¤¿¤éÉ´¿Í»Â¤ê¤Ï½ªÎ»¤¹¤ë¡£";
11127 if (name) return "Hundred Slaughter";
11128 if (desc) return "Performs a series of rush attacks. The series continues while killing each monster in a time and SP remains.";
11133 const int mana_cost_per_monster = 8;
11139 if (!rush_attack(&mdeath)) break;
11142 /* Reserve needed mana point */
11143 p_ptr->csp -= technic_info[REALM_HISSATSU - MIN_TECHNIC][26].smana;
11147 p_ptr->csp -= mana_cost_per_monster;
11149 if (!mdeath) break;
11152 p_ptr->redraw |= PR_MANA;
11155 while (p_ptr->csp > mana_cost_per_monster);
11157 if (new) return NULL;
11159 /* Restore reserved mana */
11160 p_ptr->csp += technic_info[REALM_HISSATSU - MIN_TECHNIC][26].smana;
11166 if (name) return "Å·æÆζÁ®";
11167 if (desc) return "»ë³¦Æâ¤Î¾ì½ê¤ò»ØÄꤷ¤Æ¡¢¤½¤Î¾ì½ê¤È¼«Ê¬¤Î´Ö¤Ë¤¤¤ëÁ´¥â¥ó¥¹¥¿¡¼¤ò¹¶·â¤·¡¢¤½¤Î¾ì½ê¤Ë°ÜÆ°¤¹¤ë¡£";
11169 if (name) return "Dragonic Flash";
11170 if (desc) return "Runs toward given location while attacking all monsters on the path.";
11177 if (!tgt_pt(&x, &y)) return NULL;
11179 if (!cave_player_teleportable_bold(y, x, 0L) ||
11180 (distance(y, x, py, px) > MAX_SIGHT / 2) ||
11181 !projectable(py, px, y, x))
11184 msg_print("¼ºÇÔ¡ª");
11186 msg_print("You cannot move to that place!");
11190 if (p_ptr->anti_tele)
11193 msg_print("ÉԻ׵ĤÊÎϤ¬¥Æ¥ì¥Ý¡¼¥È¤òËɤ¤¤À¡ª");
11195 msg_print("A mysterious force prevents you from teleporting!");
11200 project(0, 0, y, x, HISSATSU_ISSEN, GF_ATTACK, PROJECT_BEAM | PROJECT_KILL, -1);
11201 teleport_player_to(y, x, 0L);
11207 if (name) return "Æó½Å¤Î·õ·â";
11208 if (desc) return "1¥¿¡¼¥ó¤Ç2ÅÙ¹¶·â¤ò¹Ô¤¦¡£";
11210 if (name) return "Twin Slash";
11211 if (desc) return "double attacks at a time.";
11218 if (!get_rep_dir(&dir, FALSE)) return NULL;
11223 if (cave[y][x].m_idx)
11225 py_attack(y, x, 0);
11226 if (cave[y][x].m_idx)
11229 py_attack(y, x, 0);
11235 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
11237 msg_print("You don't see any monster in this direction");
11246 if (name) return "¸×ÉúÀäÅáÀª";
11247 if (desc) return "¶¯ÎϤʹ¶·â¤ò¹Ô¤¤¡¢¶á¤¯¤Î¾ì½ê¤Ë¤â¸ú²Ì¤¬µÚ¤Ö¡£";
11249 if (name) return "Kofuku-Zettousei";
11250 if (desc) return "Performs a powerful attack which even effect nearby monsters.";
11255 int total_damage = 0, basedam, i;
11257 u32b flgs[TR_FLAG_SIZE];
11258 object_type *o_ptr;
11260 if (!get_rep_dir2(&dir)) return NULL;
11261 if (dir == 5) return NULL;
11266 if (d_info[dungeon_type].flags1 & DF1_NO_MELEE)
11269 msg_print("¤Ê¤¼¤«¹¶·â¤¹¤ë¤³¤È¤¬¤Ç¤¤Ê¤¤¡£");
11271 msg_print("Something prevent you from attacking.");
11276 msg_print("Éð´ï¤òÂ礤¯¿¶¤ê²¼¤í¤·¤¿¡£");
11278 msg_print("You swing your weapon downward.");
11280 for (i = 0; i < 2; i++)
11283 if (!buki_motteruka(INVEN_RARM+i)) break;
11284 o_ptr = &inventory[INVEN_RARM+i];
11285 basedam = (o_ptr->dd * (o_ptr->ds + 1)) * 50;
11286 damage = o_ptr->to_d * 100;
11287 object_flags(o_ptr, flgs);
11288 if ((o_ptr->name1 == ART_VORPAL_BLADE) || (o_ptr->name1 == ART_CHAINSWORD))
11294 else if (have_flag(flgs, TR_VORPAL))
11296 /* vorpal flag only */
11301 damage += p_ptr->to_d[i] * 100;
11302 damage *= p_ptr->num_blow[i];
11303 total_damage += (damage / 100);
11305 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);
11311 if (name) return "·Ä±Àµ´Ç¦·õ";
11312 if (desc) return "¼«Ê¬¤â¥À¥á¡¼¥¸¤ò¤¯¤é¤¦¤¬¡¢Áê¼ê¤ËÈó¾ï¤ËÂ礤ʥÀ¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£¥¢¥ó¥Ç¥Ã¥É¤Ë¤ÏÆä˸ú²Ì¤¬¤¢¤ë¡£";
11314 if (name) return "Keiun-Kininken";
11315 if (desc) return "Attacks a monster with extremely powerful damage. But you also takes some damages. Hurts a undead monster greatly.";
11322 if (!get_rep_dir2(&dir)) return NULL;
11323 if (dir == 5) return NULL;
11328 if (cave[y][x].m_idx)
11329 py_attack(y, x, HISSATSU_UNDEAD);
11333 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
11335 msg_print("There is no monster.");
11340 take_hit(DAMAGE_NOESCAPE, 100 + randint1(100), "·Ä±Àµ´Ç¦·õ¤ò»È¤Ã¤¿¾×·â", -1);
11342 take_hit(DAMAGE_NOESCAPE, 100 + randint1(100), "exhaustion on using Keiun-Kininken", -1);
11349 if (name) return "ÀÚÊ¢";
11350 if (desc) return "¡ÖÉð»ÎÆ»¤È¤Ï¡¢»à¤Ì¤³¤È¤È¸«¤Ä¤±¤¿¤ê¡£¡×";
11352 if (name) return "Harakiri";
11353 if (desc) return "'Busido is found in death'";
11360 if (!get_check("ËÜÅö¤Ë¼«»¦¤·¤Þ¤¹¤«¡©")) return NULL;
11362 if (!get_check("Do you really want to commit suicide? ")) return NULL;
11364 /* Special Verification for suicide */
11366 prt("³Îǧ¤Î¤¿¤á '@' ¤ò²¡¤·¤Æ²¼¤µ¤¤¡£", 0, 0);
11368 prt("Please verify SUICIDE by typing the '@' sign: ", 0, 0);
11374 if (i != '@') return NULL;
11375 if (p_ptr->total_winner)
11377 take_hit(DAMAGE_FORCE, 9999, "Seppuku", -1);
11378 p_ptr->total_winner = TRUE;
11383 msg_print("Éð»ÎÆ»¤È¤Ï¡¢»à¤Ì¤³¤È¤È¸«¤Ä¤±¤¿¤ê¡£");
11385 msg_print("Meaning of Bushi-do is found in the death.");
11387 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);