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)
935 || !cave_have_flag_bold(y, x, FF_PROJECT)) continue;
941 if (count > 20) continue;
943 project(0, rad, y, x, dam, GF_METEOR, PROJECT_KILL | PROJECT_JUMP | PROJECT_ITEM, -1);
949 * Drop 10+1d10 disintegration ball at random places near the target
951 static bool cast_wrath_of_the_god(int dam, int rad)
956 int b = 10 + randint1(10);
958 if (!get_aim_dir(&dir)) return FALSE;
960 /* Use the given direction */
961 tx = px + 99 * ddx[dir];
962 ty = py + 99 * ddy[dir];
964 /* Hack -- Use an actual "target" */
965 if ((dir == 5) && target_okay())
976 /* Hack -- Stop at the target */
977 if ((y == ty) && (x == tx)) break;
981 mmove2(&ny, &nx, py, px, ty, tx);
983 /* Stop at maximum range */
984 if (MAX_RANGE <= distance(py, px, ny, nx)) break;
986 /* Stopped by walls/doors */
987 if (!cave_have_flag_bold(ny, nx, FF_PROJECT)) break;
989 /* Stopped by monsters */
990 if ((dir != 5) && cave[ny][nx].m_idx != 0) break;
992 /* Save the new location */
999 for (i = 0; i < b; i++)
1001 int count = 20, d = 0;
1007 x = tx - 5 + randint0(11);
1008 y = ty - 5 + randint0(11);
1010 dx = (tx > x) ? (tx - x) : (x - tx);
1011 dy = (ty > y) ? (ty - y) : (y - ty);
1013 /* Approximate distance */
1014 d = (dy > dx) ? (dy + (dx >> 1)) : (dx + (dy >> 1));
1015 /* Within the radius */
1019 if (count < 0) continue;
1021 /* Cannot penetrate perm walls */
1022 if (!in_bounds(y,x) ||
1023 cave_stop_disintegration(y,x) ||
1024 !in_disintegration_range(ty, tx, y, x))
1027 project(0, rad, y, x, dam, GF_DISINTEGRATE, PROJECT_JUMP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL, -1);
1035 * An "item_tester_hook" for offer
1037 static bool item_tester_offer(object_type *o_ptr)
1039 /* Flasks of oil are okay */
1040 if (o_ptr->tval != TV_CORPSE) return (FALSE);
1042 if (o_ptr->sval != SV_CORPSE) return (FALSE);
1044 if (my_strchr("pht", r_info[o_ptr->pval].d_char)) return (TRUE);
1046 /* Assume not okay */
1052 * Daemon spell Summon Greater Demon
1054 static bool cast_summon_greater_demon(void)
1056 int plev = p_ptr->lev;
1062 item_tester_hook = item_tester_offer;
1064 q = "¤É¤Î»àÂΤòÊû¤²¤Þ¤¹¤«? ";
1065 s = "Êû¤²¤é¤ì¤ë»àÂΤò»ý¤Ã¤Æ¤¤¤Ê¤¤¡£";
1067 q = "Sacrifice which corpse? ";
1068 s = "You have nothing to scrifice.";
1070 if (!get_item(&item, q, s, (USE_INVEN | USE_FLOOR))) return FALSE;
1072 /* Get the item (in the pack) */
1075 o_ptr = &inventory[item];
1078 /* Get the item (on the floor) */
1081 o_ptr = &o_list[0 - item];
1084 summon_lev = plev * 2 / 3 + r_info[o_ptr->pval].level;
1086 if (summon_specific(-1, py, px, summon_lev, SUMMON_HI_DEMON, (PM_ALLOW_GROUP | PM_FORCE_PET)))
1089 msg_print("ⲫ¤Î°½¤¬½¼Ëþ¤·¤¿¡£");
1091 msg_print("The area fills with a stench of sulphur and brimstone.");
1096 msg_print("¡Ö¤´ÍѤǤ´¤¶¤¤¤Þ¤¹¤«¡¢¤´¼ç¿ÍÍÍ¡×");
1098 msg_print("'What is thy bidding... Master?'");
1101 /* Decrease the item (from the pack) */
1104 inven_item_increase(item, -1);
1105 inven_item_describe(item);
1106 inven_item_optimize(item);
1109 /* Decrease the item (from the floor) */
1112 floor_item_increase(0 - item, -1);
1113 floor_item_describe(0 - item);
1114 floor_item_optimize(0 - item);
1120 msg_print("°Ëâ¤Ï¸½¤ì¤Ê¤«¤Ã¤¿¡£");
1122 msg_print("No Greater Demon arrive.");
1131 * Start singing if the player is a Bard
1133 static void start_singing(int spell, int song)
1135 /* Remember the song index */
1136 p_ptr->magic_num1[0] = song;
1138 /* Remember the index of the spell which activated the song */
1139 p_ptr->magic_num2[0] = spell;
1142 /* Now the player is singing */
1143 set_action(ACTION_SING);
1146 /* Recalculate bonuses */
1147 p_ptr->update |= (PU_BONUS);
1149 /* Redraw status bar */
1150 p_ptr->redraw |= (PR_STATUS);
1155 * Stop singing if the player is a Bard
1157 void stop_singing(void)
1159 if (p_ptr->pclass != CLASS_BARD) return;
1161 /* Are there interupted song? */
1162 if (p_ptr->magic_num1[1])
1164 /* Forget interupted song */
1165 p_ptr->magic_num1[1] = 0;
1169 /* The player is singing? */
1170 if (!p_ptr->magic_num1[0]) return;
1172 /* Hack -- if called from set_action(), avoid recursive loop */
1173 if (p_ptr->action == ACTION_SING) set_action(ACTION_NONE);
1175 /* Message text of each song or etc. */
1176 do_spell(REALM_MUSIC, p_ptr->magic_num2[0], SPELL_STOP);
1178 p_ptr->magic_num1[0] = MUSIC_NONE;
1179 p_ptr->magic_num2[0] = 0;
1181 /* Recalculate bonuses */
1182 p_ptr->update |= (PU_BONUS);
1184 /* Redraw status bar */
1185 p_ptr->redraw |= (PR_STATUS);
1189 static cptr do_life_spell(int spell, int mode)
1191 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
1192 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
1193 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
1194 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
1197 int plev = p_ptr->lev;
1203 if (name) return "·Ú½ý¤Î¼£Ìþ";
1204 if (desc) return "²ø²æ¤ÈÂÎÎϤò¾¯¤·²óÉü¤µ¤»¤ë¡£";
1206 if (name) return "Cure Light Wounds";
1207 if (desc) return "Heals cut and HP a little.";
1214 if (info) return info_heal(dice, sides, 0);
1218 hp_player(damroll(dice, sides));
1219 set_cut(p_ptr->cut - 10);
1226 if (name) return "½ËÊ¡";
1227 if (desc) return "°ìÄê»þ´Ö¡¢Ì¿ÃæΨ¤ÈAC¤Ë¥Ü¡¼¥Ê¥¹¤òÆÀ¤ë¡£";
1229 if (name) return "Bless";
1230 if (desc) return "Gives bonus to hit and AC for a few turns.";
1236 if (info) return info_duration(base, base);
1240 set_blessed(randint1(base) + base, FALSE);
1247 if (name) return "·Ú½ý";
1248 if (desc) return "1ÂΤΥâ¥ó¥¹¥¿¡¼¤Ë¾®¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
1250 if (name) return "Cause Light Wounds";
1251 if (desc) return "Wounds a monster a little unless resisted.";
1255 int dice = 3 + (plev - 1) / 5;
1258 if (info) return info_damage(dice, sides, 0);
1262 if (!get_aim_dir(&dir)) return NULL;
1263 fire_ball_hide(GF_WOUNDS, dir, damroll(dice, sides), 0);
1270 if (name) return "¸÷¤Î¾¤´";
1271 if (desc) return "¸÷¸»¤¬¾È¤é¤·¤Æ¤¤¤ëÈϰϤ«Éô²°Á´ÂΤò±Êµ×¤ËÌÀ¤ë¤¯¤¹¤ë¡£";
1273 if (name) return "Call Light";
1274 if (desc) return "Lights up nearby area and the inside of a room permanently.";
1279 int sides = plev / 2;
1280 int rad = plev / 10 + 1;
1282 if (info) return info_damage(dice, sides, 0);
1286 lite_area(damroll(dice, sides), rad);
1293 if (name) return "æ« & ±£¤·Èâ´¶ÃÎ";
1294 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î櫤ÈÈâ¤È³¬Ãʤò´¶ÃΤ¹¤ë¡£";
1296 if (name) return "Detect Doors & Traps";
1297 if (desc) return "Detects traps, doors, and stairs in your vicinity.";
1301 int rad = DETECT_RAD_DEFAULT;
1303 if (info) return info_radius(rad);
1307 detect_traps(rad, TRUE);
1316 if (name) return "½Å½ý¤Î¼£Ìþ";
1317 if (desc) return "²ø²æ¤ÈÂÎÎϤòÃæÄøÅÙ²óÉü¤µ¤»¤ë¡£";
1319 if (name) return "Cure Medium Wounds";
1320 if (desc) return "Heals cut and HP more.";
1327 if (info) return info_heal(dice, sides, 0);
1331 hp_player(damroll(dice, sides));
1332 set_cut((p_ptr->cut / 2) - 20);
1339 if (name) return "²òÆÇ";
1340 if (desc) return "ÂÎÆâ¤ÎÆǤò¼è¤ê½ü¤¯¡£";
1342 if (name) return "Cure Poison";
1343 if (desc) return "Cure poison status.";
1356 if (name) return "¶õÊ¢½¼Â";
1357 if (desc) return "ËþÊ¢¤Ë¤¹¤ë¡£";
1359 if (name) return "Satisfy Hunger";
1360 if (desc) return "Satisfies hunger.";
1366 set_food(PY_FOOD_MAX - 1);
1373 if (name) return "²ò¼ö";
1374 if (desc) return "¥¢¥¤¥Æ¥à¤Ë¤«¤«¤Ã¤¿¼å¤¤¼ö¤¤¤ò²ò½ü¤¹¤ë¡£";
1376 if (name) return "Remove Curse";
1377 if (desc) return "Removes normal curses from equipped items.";
1386 msg_print("狼¤Ë¸«¼é¤é¤ì¤Æ¤¤¤ë¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£");
1388 msg_print("You feel as if someone is watching over you.");
1397 if (name) return "½Å½ý";
1398 if (desc) return "1ÂΤΥâ¥ó¥¹¥¿¡¼¤ËÃæ¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
1400 if (name) return "Cause Medium Wounds";
1401 if (desc) return "Wounds a monster unless resisted.";
1405 int sides = 8 + (plev - 5) / 4;
1408 if (info) return info_damage(dice, sides, 0);
1412 if (!get_aim_dir(&dir)) return NULL;
1413 fire_ball_hide(GF_WOUNDS, dir, damroll(sides, dice), 0);
1420 if (name) return "Ã×Ì¿½ý¤Î¼£Ìþ";
1421 if (desc) return "ÂÎÎϤòÂçÉý¤Ë²óÉü¤µ¤»¡¢Éé½ý¤ÈÛ¯Û°¾õÂÖ¤âÁ´²÷¤¹¤ë¡£";
1423 if (name) return "Cure Critical Wounds";
1424 if (desc) return "Heals cut, stun and HP greatly.";
1431 if (info) return info_heal(dice, sides, 0);
1435 hp_player(damroll(dice, sides));
1444 if (name) return "ÂÑÇ®ÂÑ´¨";
1445 if (desc) return "°ìÄê»þ´Ö¡¢²Ð±ê¤ÈÎ䵤¤ËÂФ¹¤ëÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
1447 if (name) return "Resist Heat and Cold";
1448 if (desc) return "Gives resistance to fire and cold. These resistances can be added to which from equipment for more powerful resistances.";
1454 if (info) return info_duration(base, base);
1458 set_oppose_cold(randint1(base) + base, FALSE);
1459 set_oppose_fire(randint1(base) + base, FALSE);
1466 if (name) return "¼þÊÕ´¶ÃÎ";
1467 if (desc) return "¼þÊÕ¤ÎÃÏ·Á¤ò´¶ÃΤ¹¤ë¡£";
1469 if (name) return "Sense Surroundings";
1470 if (desc) return "Maps nearby area.";
1474 int rad = DETECT_RAD_MAP;
1476 if (info) return info_radius(rad);
1487 if (name) return "¥Ñ¥Ë¥Ã¥¯¡¦¥¢¥ó¥Ç¥Ã¥É";
1488 if (desc) return "»ë³¦Æâ¤Î¥¢¥ó¥Ç¥Ã¥É¤ò¶²Éݤµ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
1490 if (name) return "Turn Undead";
1491 if (desc) return "Attempts to scare undead monsters in sight.";
1504 if (name) return "ÂÎÎϲóÉü";
1505 if (desc) return "¶Ë¤á¤Æ¶¯ÎϤʲóÉü¼öʸ¤Ç¡¢Éé½ý¤ÈÛ¯Û°¾õÂÖ¤âÁ´²÷¤¹¤ë¡£";
1507 if (name) return "Healing";
1508 if (desc) return "Much powerful healing magic, and heals cut and stun completely.";
1514 if (info) return info_heal(0, 0, heal);
1527 if (name) return "·ë³¦¤ÎÌæ¾Ï";
1528 if (desc) return "¼«Ê¬¤Î¤¤¤ë¾²¤Î¾å¤Ë¡¢¥â¥ó¥¹¥¿¡¼¤¬Ä̤êÈ´¤±¤¿¤ê¾¤´¤µ¤ì¤¿¤ê¤¹¤ë¤³¤È¤¬¤Ç¤¤Ê¤¯¤Ê¤ë¥ë¡¼¥ó¤òÉÁ¤¯¡£";
1530 if (name) return "Glyph of Warding";
1531 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.";
1544 if (name) return "*²ò¼ö*";
1545 if (desc) return "¥¢¥¤¥Æ¥à¤Ë¤«¤«¤Ã¤¿¶¯ÎϤʼö¤¤¤ò²ò½ü¤¹¤ë¡£";
1547 if (name) return "Dispel Curse";
1548 if (desc) return "Removes normal and heavy curse from equipped items.";
1554 if (remove_all_curse())
1557 msg_print("狼¤Ë¸«¼é¤é¤ì¤Æ¤¤¤ë¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£");
1559 msg_print("You feel as if someone is watching over you.");
1568 if (name) return "´Õ¼±";
1569 if (desc) return "¥¢¥¤¥Æ¥à¤ò¼±Ê̤¹¤ë¡£";
1571 if (name) return "Perception";
1572 if (desc) return "Identifies an item.";
1578 if (!ident_spell(FALSE)) return NULL;
1585 if (name) return "¥¢¥ó¥Ç¥Ã¥ÉÂ໶";
1586 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥¢¥ó¥Ç¥Ã¥É¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
1588 if (name) return "Dispel Undead";
1589 if (desc) return "Damages all undead monsters in sight.";
1594 int sides = plev * 5;
1596 if (info) return info_damage(dice, sides, 0);
1600 dispel_undead(damroll(dice, sides));
1607 if (name) return "Æä¤Î¹ï";
1608 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò̥λ¤¹¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
1610 if (name) return "Day of the Dove";
1611 if (desc) return "Attempts to charm all monsters in sight.";
1615 int power = plev * 2;
1617 if (info) return info_power(power);
1621 charm_monsters(power);
1628 if (name) return "Ã×Ì¿½ý";
1629 if (desc) return "1ÂΤΥâ¥ó¥¹¥¿¡¼¤ËÂç¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
1631 if (name) return "Cause Critical Wounds";
1632 if (desc) return "Wounds a monster critically unless resisted.";
1636 int dice = 5 + (plev - 5) / 3;
1639 if (info) return info_damage(dice, sides, 0);
1643 if (!get_aim_dir(&dir)) return NULL;
1644 fire_ball_hide(GF_WOUNDS, dir, damroll(dice, sides), 0);
1651 if (name) return "µ¢´Ô¤Î¾Û";
1652 if (desc) return "ÃϾå¤Ë¤¤¤ë¤È¤¤Ï¥À¥ó¥¸¥ç¥ó¤ÎºÇ¿¼³¬¤Ø¡¢¥À¥ó¥¸¥ç¥ó¤Ë¤¤¤ë¤È¤¤ÏÃϾå¤Ø¤È°ÜÆ°¤¹¤ë¡£";
1654 if (name) return "Word of Recall";
1655 if (desc) return "Recalls player from dungeon to town, or from town to the deepest level of dungeon.";
1662 if (info) return info_delay(base, sides);
1666 if (!word_of_recall()) return NULL;
1673 if (name) return "¿¿¼Â¤Îº×ÃÅ";
1674 if (desc) return "¸½ºß¤Î³¬¤òºÆ¹½À®¤¹¤ë¡£";
1676 if (name) return "Alter Reality";
1677 if (desc) return "Recreates current dungeon level.";
1684 if (info) return info_delay(base, sides);
1695 if (name) return "¿¿¡¦·ë³¦";
1696 if (desc) return "¼«Ê¬¤Î¤¤¤ë¾²¤È¼þ°Ï8¥Þ¥¹¤Î¾²¤Î¾å¤Ë¡¢¥â¥ó¥¹¥¿¡¼¤¬Ä̤êÈ´¤±¤¿¤ê¾¤´¤µ¤ì¤¿¤ê¤¹¤ë¤³¤È¤¬¤Ç¤¤Ê¤¯¤Ê¤ë¥ë¡¼¥ó¤òÉÁ¤¯¡£";
1698 if (name) return "Warding True";
1699 if (desc) return "Creates glyphs in all adjacent squares and under you.";
1705 if (info) return info_radius(rad);
1717 if (name) return "ÉÔÌÓ²½";
1718 if (desc) return "¤³¤Î³¬¤ÎÁý¿£¤¹¤ë¥â¥ó¥¹¥¿¡¼¤¬Áý¿£¤Ç¤¤Ê¤¯¤Ê¤ë¡£";
1720 if (name) return "Sterilization";
1721 if (desc) return "Prevents any breeders on current level from breeding.";
1727 num_repro += MAX_REPRO;
1734 if (name) return "Á´´¶ÃÎ";
1735 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¡¢æ«¡¢Èâ¡¢³¬ÃÊ¡¢ºâÊõ¡¢¤½¤·¤Æ¥¢¥¤¥Æ¥à¤ò´¶ÃΤ¹¤ë¡£";
1737 if (name) return "Detection";
1738 if (desc) return "Detects all monsters, traps, doors, stairs, treasures and items in your vicinity.";
1742 int rad = DETECT_RAD_DEFAULT;
1744 if (info) return info_radius(rad);
1755 if (name) return "¥¢¥ó¥Ç¥Ã¥É¾ÃÌÇ";
1756 if (desc) return "¼«Ê¬¤Î¼þ°Ï¤Ë¤¤¤ë¥¢¥ó¥Ç¥Ã¥É¤ò¸½ºß¤Î³¬¤«¤é¾Ã¤·µî¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
1758 if (name) return "Annihilate Undead";
1759 if (desc) return "Eliminates all nearby undead monsters, exhausting you. Powerful or unique monsters may be able to resist.";
1763 int power = plev + 50;
1765 if (info) return info_power(power);
1769 mass_genocide_undead(power, TRUE);
1776 if (name) return "ÀéΤ´ã";
1777 if (desc) return "¤½¤Î³¬Á´ÂΤò±Êµ×¤Ë¾È¤é¤·¡¢¥À¥ó¥¸¥ç¥óÆ⤹¤Ù¤Æ¤Î¥¢¥¤¥Æ¥à¤ò´¶ÃΤ¹¤ë¡£";
1779 if (name) return "Clairvoyance";
1780 if (desc) return "Maps and lights whole dungeon level. Knows all objects location. And gives telepathy for a while.";
1793 if (name) return "Á´Éü³è";
1794 if (desc) return "¤¹¤Ù¤Æ¤Î¥¹¥Æ¡¼¥¿¥¹¤È·Ð¸³Ãͤò²óÉü¤¹¤ë¡£";
1796 if (name) return "Restoration";
1797 if (desc) return "Restores all stats and experience.";
1816 if (name) return "*ÂÎÎϲóÉü*";
1817 if (desc) return "ºÇ¶¯¤Î¼£Ìþ¤ÎËâË¡¤Ç¡¢Éé½ý¤ÈÛ¯Û°¾õÂÖ¤âÁ´²÷¤¹¤ë¡£";
1819 if (name) return "Healing True";
1820 if (desc) return "The greatest healing magic. Heals all HP, cut and stun.";
1826 if (info) return info_heal(0, 0, heal);
1839 if (name) return "À»¤Ê¤ë¥Ó¥¸¥ç¥ó";
1840 if (desc) return "¥¢¥¤¥Æ¥à¤Î»ý¤ÄǽÎϤò´°Á´¤ËÃΤ롣";
1842 if (name) return "Holy Vision";
1843 if (desc) return "*Identifies* an item.";
1849 if (!identify_fully(FALSE)) return NULL;
1856 if (name) return "µæ¶Ë¤ÎÂÑÀ";
1857 if (desc) return "°ìÄê»þ´Ö¡¢¤¢¤é¤æ¤ëÂÑÀ¤òÉÕ¤±¡¢AC¤ÈËâË¡ËɸæǽÎϤò¾å¾º¤µ¤»¤ë¡£";
1859 if (name) return "Ultimate Resistance";
1860 if (desc) return "Gives ultimate resistance, bonus to AC and speed.";
1864 int base = plev / 2;
1866 if (info) return info_duration(base, base);
1870 int v = randint1(base) + base;
1872 set_oppose_acid(v, FALSE);
1873 set_oppose_elec(v, FALSE);
1874 set_oppose_fire(v, FALSE);
1875 set_oppose_cold(v, FALSE);
1876 set_oppose_pois(v, FALSE);
1877 set_ultimate_res(v, FALSE);
1887 static cptr do_sorcery_spell(int spell, int mode)
1889 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
1890 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
1891 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
1892 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
1895 int plev = p_ptr->lev;
1901 if (name) return "¥â¥ó¥¹¥¿¡¼´¶ÃÎ";
1902 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î¸«¤¨¤ë¥â¥ó¥¹¥¿¡¼¤ò´¶ÃΤ¹¤ë¡£";
1904 if (name) return "Detect Monsters";
1905 if (desc) return "Detects all monsters in your vicinity unless invisible.";
1909 int rad = DETECT_RAD_DEFAULT;
1911 if (info) return info_radius(rad);
1915 detect_monsters_normal(rad);
1922 if (name) return "¥·¥ç¡¼¥È¡¦¥Æ¥ì¥Ý¡¼¥È";
1923 if (desc) return "¶áµ÷Î¥¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¤¹¤ë¡£";
1925 if (name) return "Phase Door";
1926 if (desc) return "Teleport short distance.";
1932 if (info) return info_range(range);
1936 teleport_player(range, 0L);
1943 if (name) return "櫤ÈÈâ´¶ÃÎ";
1944 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤ÎÈâ¤È櫤ò´¶ÃΤ¹¤ë¡£";
1946 if (name) return "Detect Doors and Traps";
1947 if (desc) return "Detects traps, doors, and stairs in your vicinity.";
1951 int rad = DETECT_RAD_DEFAULT;
1953 if (info) return info_radius(rad);
1957 detect_traps(rad, TRUE);
1966 if (name) return "¥é¥¤¥È¡¦¥¨¥ê¥¢";
1967 if (desc) return "¸÷¸»¤¬¾È¤é¤·¤Æ¤¤¤ëÈϰϤ«Éô²°Á´ÂΤò±Êµ×¤ËÌÀ¤ë¤¯¤¹¤ë¡£";
1969 if (name) return "Light Area";
1970 if (desc) return "Lights up nearby area and the inside of a room permanently.";
1975 int sides = plev / 2;
1976 int rad = plev / 10 + 1;
1978 if (info) return info_damage(dice, sides, 0);
1982 lite_area(damroll(dice, sides), rad);
1989 if (name) return "¥Ñ¥Ë¥Ã¥¯¡¦¥â¥ó¥¹¥¿¡¼";
1990 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤòº®Í𤵤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
1992 if (name) return "Confuse Monster";
1993 if (desc) return "Attempts to confuse a monster.";
1997 int power = (plev * 3) / 2;
1999 if (info) return info_power(power);
2003 if (!get_aim_dir(&dir)) return NULL;
2005 confuse_monster(dir, power);
2012 if (name) return "¥Æ¥ì¥Ý¡¼¥È";
2013 if (desc) return "±óµ÷Î¥¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¤¹¤ë¡£";
2015 if (name) return "Teleport";
2016 if (desc) return "Teleport long distance.";
2020 int range = plev * 5;
2022 if (info) return info_range(range);
2026 teleport_player(range, 0L);
2033 if (name) return "¥¹¥ê¡¼¥×¡¦¥â¥ó¥¹¥¿¡¼";
2034 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤò̲¤é¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
2036 if (name) return "Sleep Monster";
2037 if (desc) return "Attempts to sleep a monster.";
2043 if (info) return info_power(power);
2047 if (!get_aim_dir(&dir)) return NULL;
2056 if (name) return "ËâÎϽ¼Å¶";
2057 if (desc) return "¾ó/ËâË¡ËÀ¤Î½¼Å¶²ó¿ô¤òÁý¤ä¤¹¤«¡¢½¼Å¶Ãæ¤Î¥í¥Ã¥É¤Î½¼Å¶»þ´Ö¤ò¸º¤é¤¹¡£";
2059 if (name) return "Recharging";
2060 if (desc) return "Recharges staffs, wands or rods.";
2064 int power = plev * 4;
2066 if (info) return info_power(power);
2070 if (!recharge(power)) return NULL;
2077 if (name) return "ËâË¡¤ÎÃÏ¿Þ";
2078 if (desc) return "¼þÊÕ¤ÎÃÏ·Á¤ò´¶ÃΤ¹¤ë¡£";
2080 if (name) return "Magic Mapping";
2081 if (desc) return "Maps nearby area.";
2085 int rad = DETECT_RAD_MAP;
2087 if (info) return info_radius(rad);
2098 if (name) return "´ÕÄê";
2099 if (desc) return "¥¢¥¤¥Æ¥à¤ò¼±Ê̤¹¤ë¡£";
2101 if (name) return "Identify";
2102 if (desc) return "Identifies an item.";
2108 if (!ident_spell(FALSE)) return NULL;
2115 if (name) return "¥¹¥í¥¦¡¦¥â¥ó¥¹¥¿¡¼";
2116 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤò¸ºÂ®¤µ¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
2118 if (name) return "Slow Monster";
2119 if (desc) return "Attempts to slow a monster.";
2125 if (info) return info_power(power);
2129 if (!get_aim_dir(&dir)) return NULL;
2138 if (name) return "¼þÊÕ¥¹¥ê¡¼¥×";
2139 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò̲¤é¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
2141 if (name) return "Mass Sleep";
2142 if (desc) return "Attempts to sleep all monsters in sight.";
2148 if (info) return info_power(power);
2159 if (name) return "¥Æ¥ì¥Ý¡¼¥È¡¦¥â¥ó¥¹¥¿¡¼";
2160 if (desc) return "¥â¥ó¥¹¥¿¡¼¤ò¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤ë¥Ó¡¼¥à¤òÊü¤Ä¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
2162 if (name) return "Teleport Away";
2163 if (desc) return "Teleports all monsters on the line away unless resisted.";
2169 if (info) return info_power(power);
2173 if (!get_aim_dir(&dir)) return NULL;
2175 fire_beam(GF_AWAY_ALL, dir, power);
2182 if (name) return "¥¹¥Ô¡¼¥É";
2183 if (desc) return "°ìÄê»þ´Ö¡¢²Ã®¤¹¤ë¡£";
2185 if (name) return "Haste Self";
2186 if (desc) return "Hastes you for a while.";
2191 int sides = 20 + plev;
2193 if (info) return info_duration(base, sides);
2197 set_fast(randint1(sides) + base, FALSE);
2204 if (name) return "¿¿¡¦´¶ÃÎ";
2205 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¡¢æ«¡¢Èâ¡¢³¬ÃÊ¡¢ºâÊõ¡¢¤½¤·¤Æ¥¢¥¤¥Æ¥à¤ò´¶ÃΤ¹¤ë¡£";
2207 if (name) return "Detection True";
2208 if (desc) return "Detects all monsters, traps, doors, stairs, treasures and items in your vicinity.";
2212 int rad = DETECT_RAD_DEFAULT;
2214 if (info) return info_radius(rad);
2225 if (name) return "¿¿¡¦´ÕÄê";
2226 if (desc) return "¥¢¥¤¥Æ¥à¤Î»ý¤ÄǽÎϤò´°Á´¤ËÃΤ롣";
2228 if (name) return "Identify True";
2229 if (desc) return "*Identifies* an item.";
2235 if (!identify_fully(FALSE)) return NULL;
2242 if (name) return "ʪÂΤȺâÊõ´¶ÃÎ";
2243 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î¥¢¥¤¥Æ¥à¤ÈºâÊõ¤ò´¶ÃΤ¹¤ë¡£";
2245 if (name) return "Detect items and Treasure";
2246 if (desc) return "Detects all treasures and items in your vicinity.";
2250 int rad = DETECT_RAD_DEFAULT;
2252 if (info) return info_radius(rad);
2256 detect_objects_normal(rad);
2257 detect_treasure(rad);
2258 detect_objects_gold(rad);
2265 if (name) return "¥Á¥ã¡¼¥à¡¦¥â¥ó¥¹¥¿¡¼";
2266 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤò̥λ¤¹¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
2268 if (name) return "Charm Monster";
2269 if (desc) return "Attempts to charm a monster.";
2275 if (info) return info_power(power);
2279 if (!get_aim_dir(&dir)) return NULL;
2281 charm_monster(dir, power);
2288 if (name) return "Àº¿À´¶ÃÎ";
2289 if (desc) return "°ìÄê»þ´Ö¡¢¥Æ¥ì¥Ñ¥·¡¼Ç½ÎϤòÆÀ¤ë¡£";
2291 if (name) return "Sense Minds";
2292 if (desc) return "Gives telepathy for a while.";
2299 if (info) return info_duration(base, sides);
2303 set_tim_esp(randint1(sides) + base, FALSE);
2310 if (name) return "³¹°ÜÆ°";
2311 if (desc) return "³¹¤Ø°ÜÆ°¤¹¤ë¡£ÃϾå¤Ë¤¤¤ë¤È¤¤·¤«»È¤¨¤Ê¤¤¡£";
2313 if (name) return "Teleport to town";
2314 if (desc) return "Teleport to a town which you choose in a moment. Can only be used outdoors.";
2320 if (!tele_town()) return NULL;
2327 if (name) return "¼«¸ÊʬÀÏ";
2328 if (desc) return "¸½ºß¤Î¼«Ê¬¤Î¾õÂÖ¤ò´°Á´¤ËÃΤ롣";
2330 if (name) return "Self Knowledge";
2331 if (desc) return "Gives you useful info regarding your current resistances, the powers of your weapon and maximum limits of your stats.";
2344 if (name) return "¥Æ¥ì¥Ý¡¼¥È¡¦¥ì¥Ù¥ë";
2345 if (desc) return "½Ö»þ¤Ë¾å¤«²¼¤Î³¬¤Ë¥Æ¥ì¥Ý¡¼¥È¤¹¤ë¡£";
2347 if (name) return "Teleport Level";
2348 if (desc) return "Teleport to up or down stairs in a moment.";
2355 if (!get_check("ËÜÅö¤Ë¾¤Î³¬¤Ë¥Æ¥ì¥Ý¡¼¥È¤·¤Þ¤¹¤«¡©")) return NULL;
2357 if (!get_check("Are you sure? (Teleport Level)")) return NULL;
2366 if (name) return "µ¢´Ô¤Î¼öʸ";
2367 if (desc) return "ÃϾå¤Ë¤¤¤ë¤È¤¤Ï¥À¥ó¥¸¥ç¥ó¤ÎºÇ¿¼³¬¤Ø¡¢¥À¥ó¥¸¥ç¥ó¤Ë¤¤¤ë¤È¤¤ÏÃϾå¤Ø¤È°ÜÆ°¤¹¤ë¡£";
2369 if (name) return "Word of Recall";
2370 if (desc) return "Recalls player from dungeon to town, or from town to the deepest level of dungeon.";
2377 if (info) return info_delay(base, sides);
2381 if (!word_of_recall()) return NULL;
2388 if (name) return "¼¡¸µ¤ÎÈâ";
2389 if (desc) return "ûµ÷Î¥Æâ¤Î»ØÄꤷ¤¿¾ì½ê¤Ë¥Æ¥ì¥Ý¡¼¥È¤¹¤ë¡£";
2391 if (name) return "Dimension Door";
2392 if (desc) return "Teleport to given location.";
2396 int range = plev / 2 + 10;
2398 if (info) return info_range(range);
2403 msg_print("¼¡¸µ¤ÎÈ⤬³«¤¤¤¿¡£ÌÜŪÃϤòÁª¤ó¤Ç²¼¤µ¤¤¡£");
2405 msg_print("You open a dimensional gate. Choose a destination.");
2408 if (!dimension_door()) return NULL;
2415 if (name) return "Ä´ºº";
2416 if (desc) return "¥â¥ó¥¹¥¿¡¼¤Î°À¡¢»Ä¤êÂÎÎÏ¡¢ºÇÂçÂÎÎÏ¡¢¥¹¥Ô¡¼¥É¡¢ÀµÂΤòÃΤ롣";
2418 if (name) return "Probing";
2419 if (desc) return "Proves all monsters' alignment, HP, speed and their true character.";
2432 if (name) return "Çúȯ¤Î¥ë¡¼¥ó";
2433 if (desc) return "¼«Ê¬¤Î¤¤¤ë¾²¤Î¾å¤Ë¡¢¥â¥ó¥¹¥¿¡¼¤¬Ä̤ë¤ÈÇúȯ¤·¤Æ¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¥ë¡¼¥ó¤òÉÁ¤¯¡£";
2435 if (name) return "Explosive Rune";
2436 if (desc) return "Sets a glyph under you. The glyph will explode when a monster moves on it.";
2444 if (info) return info_damage(dice, sides, base);
2455 if (name) return "Ç°Æ°ÎÏ";
2456 if (desc) return "¥¢¥¤¥Æ¥à¤ò¼«Ê¬¤Î¸µ¤Ø°ÜÆ°¤µ¤»¤ë¡£";
2458 if (name) return "Telekinesis";
2459 if (desc) return "Pulls a distant item close to you.";
2463 int weight = plev * 15;
2465 if (info) return info_weight(weight);
2469 if (!get_aim_dir(&dir)) return NULL;
2471 fetch(dir, weight, FALSE);
2478 if (name) return "ÀéΤ´ã";
2479 if (desc) return "¤½¤Î³¬Á´ÂΤò±Êµ×¤Ë¾È¤é¤·¡¢¥À¥ó¥¸¥ç¥óÆ⤹¤Ù¤Æ¤Î¥¢¥¤¥Æ¥à¤ò´¶ÃΤ¹¤ë¡£¤µ¤é¤Ë¡¢°ìÄê»þ´Ö¥Æ¥ì¥Ñ¥·¡¼Ç½ÎϤòÆÀ¤ë¡£";
2481 if (name) return "Clairvoyance";
2482 if (desc) return "Maps and lights whole dungeon level. Knows all objects location. And gives telepathy for a while.";
2489 if (info) return info_duration(base, sides);
2493 chg_virtue(V_KNOWLEDGE, 1);
2494 chg_virtue(V_ENLIGHTEN, 1);
2498 if (!p_ptr->telepathy)
2500 set_tim_esp(randint1(sides) + base, FALSE);
2508 if (name) return "̥λ¤Î»ëÀþ";
2509 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò̥λ¤¹¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
2511 if (name) return "Charm monsters";
2512 if (desc) return "Attempts to charm all monsters in sight.";
2516 int power = plev * 2;
2518 if (info) return info_power(power);
2522 charm_monsters(power);
2529 if (name) return "Ï£¶â½Ñ";
2530 if (desc) return "¥¢¥¤¥Æ¥à1¤Ä¤ò¤ª¶â¤ËÊѤ¨¤ë¡£";
2532 if (name) return "Alchemy";
2533 if (desc) return "Turns an item into 1/3 of its value in gold.";
2539 if (!alchemy()) return NULL;
2546 if (name) return "²øʪÄÉÊü";
2547 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
2549 if (name) return "Banishment";
2550 if (desc) return "Teleports all monsters in sight away unless resisted.";
2554 int power = plev * 4;
2556 if (info) return info_power(power);
2560 banish_monsters(power);
2567 if (name) return "̵½ý¤Îµå";
2568 if (desc) return "°ìÄê»þ´Ö¡¢¥À¥á¡¼¥¸¤ò¼õ¤±¤Ê¤¯¤Ê¤ë¥Ð¥ê¥¢¤òÄ¥¤ë¡£Àڤ줿½Ö´Ö¤Ë¾¯¤·¥¿¡¼¥ó¤ò¾ÃÈñ¤¹¤ë¤Î¤ÇÃí°Õ¡£";
2570 if (name) return "Globe of Invulnerability";
2571 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.";
2577 if (info) return info_duration(base, base);
2581 set_invuln(randint1(base) + base, FALSE);
2591 static cptr do_nature_spell(int spell, int mode)
2593 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
2594 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
2595 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
2596 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
2599 static const char s_dam[] = "»½ý:";
2600 static const char s_rng[] = "¼ÍÄø";
2602 static const char s_dam[] = "dam ";
2603 static const char s_rng[] = "rng ";
2607 int plev = p_ptr->lev;
2613 if (name) return "¥â¥ó¥¹¥¿¡¼´¶ÃÎ";
2614 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î¸«¤¨¤ë¥â¥ó¥¹¥¿¡¼¤ò´¶ÃΤ¹¤ë¡£";
2616 if (name) return "Detect Creatures";
2617 if (desc) return "Detects all monsters in your vicinity unless invisible.";
2621 int rad = DETECT_RAD_DEFAULT;
2623 if (info) return info_radius(rad);
2627 detect_monsters_normal(rad);
2634 if (name) return "°ðºÊ";
2635 if (desc) return "ÅÅ·â¤Îû¤¤¥Ó¡¼¥à¤òÊü¤Ä¡£";
2637 if (name) return "Lightning";
2638 if (desc) return "Fires a short beam of lightning.";
2642 int dice = 3 + (plev - 1) / 5;
2644 int range = plev / 6 + 2;
2646 if (info) return format("%s%dd%d %s%d", s_dam, dice, sides, s_rng, range);
2650 project_length = range;
2652 if (!get_aim_dir(&dir)) return NULL;
2654 fire_beam(GF_ELEC, dir, damroll(dice, sides));
2661 if (name) return "櫤ÈÈâ´¶ÃÎ";
2662 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î櫤ÈÈâ¤ò´¶ÃΤ¹¤ë¡£";
2664 if (name) return "Detect Doors and Traps";
2665 if (desc) return "Detects traps, doors, and stairs in your vicinity.";
2669 int rad = DETECT_RAD_DEFAULT;
2671 if (info) return info_radius(rad);
2675 detect_traps(rad, TRUE);
2684 if (name) return "¿©ÎÈÀ¸À®";
2685 if (desc) return "¿©ÎÁ¤ò°ì¤Äºî¤ê½Ð¤¹¡£";
2687 if (name) return "Produce Food";
2688 if (desc) return "Produces a Ration of Food.";
2694 object_type forge, *q_ptr = &forge;
2697 msg_print("¿©ÎÁ¤òÀ¸À®¤·¤¿¡£");
2699 msg_print("A food ration is produced.");
2702 /* Create the food ration */
2703 object_prep(q_ptr, lookup_kind(TV_FOOD, SV_FOOD_RATION));
2705 /* Drop the object from heaven */
2706 drop_near(q_ptr, -1, py, px);
2713 if (name) return "Æü¤Î¸÷";
2714 if (desc) return "¸÷¸»¤¬¾È¤é¤·¤Æ¤¤¤ëÈϰϤ«Éô²°Á´ÂΤò±Êµ×¤ËÌÀ¤ë¤¯¤¹¤ë¡£";
2716 if (name) return "Daylight";
2717 if (desc) return "Lights up nearby area and the inside of a room permanently.";
2722 int sides = plev / 2;
2723 int rad = (plev / 10) + 1;
2725 if (info) return info_damage(dice, sides, 0);
2729 lite_area(damroll(dice, sides), rad);
2731 if ((prace_is_(RACE_VAMPIRE) || (p_ptr->mimic_form == MIMIC_VAMPIRE)) && !p_ptr->resist_lite)
2734 msg_print("Æü¤Î¸÷¤¬¤¢¤Ê¤¿¤ÎÆùÂΤò¾Ç¤¬¤·¤¿¡ª");
2736 msg_print("The daylight scorches your flesh!");
2740 take_hit(DAMAGE_NOESCAPE, damroll(2, 2), "Æü¤Î¸÷", -1);
2742 take_hit(DAMAGE_NOESCAPE, damroll(2, 2), "daylight", -1);
2751 if (name) return "ưʪ½¬¤·";
2752 if (desc) return "ưʪ1ÂΤò̥λ¤¹¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
2754 if (name) return "Animal Taming";
2755 if (desc) return "Attempts to charm an animal.";
2761 if (info) return info_power(power);
2765 if (!get_aim_dir(&dir)) return NULL;
2767 charm_animal(dir, power);
2774 if (name) return "´Ä¶¤Ø¤ÎÂÑÀ";
2775 if (desc) return "°ìÄê»þ´Ö¡¢Î䵤¡¢±ê¡¢ÅÅ·â¤ËÂФ¹¤ëÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
2777 if (name) return "Resist Environment";
2778 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.";
2784 if (info) return info_duration(base, base);
2788 set_oppose_cold(randint1(base) + base, FALSE);
2789 set_oppose_fire(randint1(base) + base, FALSE);
2790 set_oppose_elec(randint1(base) + base, FALSE);
2797 if (name) return "½ý¤ÈÆǼ£ÎÅ";
2798 if (desc) return "²ø²æ¤òÁ´²÷¤µ¤»¡¢ÆǤòÂΤ«¤é´°Á´¤Ë¼è¤ê½ü¤¡¢ÂÎÎϤò¾¯¤·²óÉü¤µ¤»¤ë¡£";
2800 if (name) return "Cure Wounds & Poison";
2801 if (desc) return "Heals all cut and poison status. Heals HP a little.";
2808 if (info) return info_heal(dice, sides, 0);
2812 hp_player(damroll(dice, sides));
2821 if (name) return "´äÀÐÍϲò";
2822 if (desc) return "ÊɤòÍϤ«¤·¤Æ¾²¤Ë¤¹¤ë¡£";
2824 if (name) return "Stone to Mud";
2825 if (desc) return "Turns one rock square to mud.";
2833 if (info) return info_damage(dice, sides, base);
2837 if (!get_aim_dir(&dir)) return NULL;
2846 if (name) return "¥¢¥¤¥¹¡¦¥Ü¥ë¥È";
2847 if (desc) return "Î䵤¤Î¥Ü¥ë¥È¤â¤·¤¯¤Ï¥Ó¡¼¥à¤òÊü¤Ä¡£";
2849 if (name) return "Frost Bolt";
2850 if (desc) return "Fires a bolt or beam of cold.";
2854 int dice = 3 + (plev - 5) / 4;
2857 if (info) return info_damage(dice, sides, 0);
2861 if (!get_aim_dir(&dir)) return NULL;
2862 fire_bolt_or_beam(beam_chance() - 10, GF_COLD, dir, damroll(dice, sides));
2869 if (name) return "¼«Á³¤Î³ÐÀÃ";
2870 if (desc) return "¼þÊÕ¤ÎÃÏ·Á¤ò´¶ÃΤ·¡¢¶á¤¯¤Îæ«¡¢Èâ¡¢³¬ÃÊ¡¢Á´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò´¶ÃΤ¹¤ë¡£";
2872 if (name) return "Nature Awareness";
2873 if (desc) return "Maps nearby area. Detects all monsters, traps, doors and stairs.";
2877 int rad1 = DETECT_RAD_MAP;
2878 int rad2 = DETECT_RAD_DEFAULT;
2880 if (info) return info_radius(MAX(rad1, rad2));
2885 detect_traps(rad2, TRUE);
2887 detect_stairs(rad2);
2888 detect_monsters_normal(rad2);
2895 if (name) return "¥Õ¥¡¥¤¥¢¡¦¥Ü¥ë¥È";
2896 if (desc) return "²Ð±ê¤Î¥Ü¥ë¥È¤â¤·¤¯¤Ï¥Ó¡¼¥à¤òÊü¤Ä¡£";
2898 if (name) return "Fire Bolt";
2899 if (desc) return "Fires a bolt or beam of fire.";
2903 int dice = 5 + (plev - 5) / 4;
2906 if (info) return info_damage(dice, sides, 0);
2910 if (!get_aim_dir(&dir)) return NULL;
2911 fire_bolt_or_beam(beam_chance() - 10, GF_FIRE, dir, damroll(dice, sides));
2918 if (name) return "ÂÀÍÛ¸÷Àþ";
2919 if (desc) return "¸÷Àþ¤òÊü¤Ä¡£¸÷¤ê¤ò·ù¤¦¥â¥ó¥¹¥¿¡¼¤Ë¸ú²Ì¤¬¤¢¤ë¡£";
2921 if (name) return "Ray of Sunlight";
2922 if (desc) return "Fires a beam of light which damages to light-sensitive monsters.";
2929 if (info) return info_damage(dice, sides, 0);
2933 if (!get_aim_dir(&dir)) return NULL;
2935 msg_print("ÂÀÍÛ¸÷Àþ¤¬¸½¤ì¤¿¡£");
2937 msg_print("A line of sunlight appears.");
2947 if (name) return "¤«¤»";
2948 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò¸ºÂ®¤µ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
2950 if (name) return "Entangle";
2951 if (desc) return "Attempts to slow all monsters in sight.";
2957 if (info) return info_power(power);
2968 if (name) return "ưʪ¾¤´";
2969 if (desc) return "ưʪ¤ò1Âξ¤´¤¹¤ë¡£";
2971 if (name) return "Summon Animal";
2972 if (desc) return "Summons an animal.";
2978 if (!(summon_specific(-1, py, px, plev, SUMMON_ANIMAL_RANGER, (PM_ALLOW_GROUP | PM_FORCE_PET))))
2981 msg_print("ưʪ¤Ï¸½¤ì¤Ê¤«¤Ã¤¿¡£");
2983 msg_print("No animals arrive.");
2993 if (name) return "ÌôÁð¼£ÎÅ";
2994 if (desc) return "ÂÎÎϤòÂçÉý¤Ë²óÉü¤µ¤»¡¢Éé½ý¡¢Û¯Û°¾õÂÖ¡¢ÆǤ«¤éÁ´²÷¤¹¤ë¡£";
2996 if (name) return "Herbal Healing";
2997 if (desc) return "Heals HP greatly. And heals cut, stun and poison completely.";
3003 if (info) return info_heal(0, 0, heal);
3017 if (name) return "³¬ÃÊÀ¸À®";
3018 if (desc) return "¼«Ê¬¤Î¤¤¤ë°ÌÃ֤˳¬Ãʤòºî¤ë¡£";
3020 if (name) return "Stair Building";
3021 if (desc) return "Creates a stair which goes down or up.";
3034 if (name) return "È©Àв½";
3035 if (desc) return "°ìÄê»þ´Ö¡¢AC¤ò¾å¾º¤µ¤»¤ë¡£";
3037 if (name) return "Stone Skin";
3038 if (desc) return "Gives bonus to AC for a while.";
3045 if (info) return info_duration(base, sides);
3049 set_shield(randint1(sides) + base, FALSE);
3056 if (name) return "¿¿¡¦ÂÑÀ";
3057 if (desc) return "°ìÄê»þ´Ö¡¢»À¡¢ÅÅ·â¡¢±ê¡¢Î䵤¡¢ÆǤËÂФ¹¤ëÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
3059 if (name) return "Resistance True";
3060 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.";
3066 if (info) return info_duration(base, base);
3070 set_oppose_acid(randint1(base) + base, FALSE);
3071 set_oppose_elec(randint1(base) + base, FALSE);
3072 set_oppose_fire(randint1(base) + base, FALSE);
3073 set_oppose_cold(randint1(base) + base, FALSE);
3074 set_oppose_pois(randint1(base) + base, FALSE);
3081 if (name) return "¿¹ÎÓÁϤ";
3082 if (desc) return "¼þ°Ï¤ËÌÚ¤òºî¤ê½Ð¤¹¡£";
3084 if (name) return "Forest Creation";
3085 if (desc) return "Creates trees in all adjacent squares.";
3098 if (name) return "ưʪͧÏÂ";
3099 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Îưʪ¤ò̥λ¤¹¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
3101 if (name) return "Animal Friendship";
3102 if (desc) return "Attempts to charm all animals in sight.";
3106 int power = plev * 2;
3108 if (info) return info_power(power);
3112 charm_animals(power);
3119 if (name) return "»î¶âÀÐ";
3120 if (desc) return "¥¢¥¤¥Æ¥à¤Î»ý¤ÄǽÎϤò´°Á´¤ËÃΤ롣";
3122 if (name) return "Stone Tell";
3123 if (desc) return "*Identifies* an item.";
3129 if (!identify_fully(FALSE)) return NULL;
3136 if (name) return "ÀФÎÊÉ";
3137 if (desc) return "¼«Ê¬¤Î¼þ°Ï¤Ë²ÖÖ¾´ä¤ÎÊɤòºî¤ë¡£";
3139 if (name) return "Wall of Stone";
3140 if (desc) return "Creates granite walls in all adjacent squares.";
3153 if (name) return "Éå¿©ËÉ»ß";
3154 if (desc) return "¥¢¥¤¥Æ¥à¤ò»À¤Ç½ý¤Ä¤«¤Ê¤¤¤è¤¦²Ã¹©¤¹¤ë¡£";
3156 if (name) return "Protect from Corrosion";
3157 if (desc) return "Makes an equipment acid-proof.";
3163 if (!rustproof()) return NULL;
3170 if (name) return "ÃÏ¿Ì";
3171 if (desc) return "¼þ°Ï¤Î¥À¥ó¥¸¥ç¥ó¤òÍɤ餷¡¢ÊɤȾ²¤ò¥é¥ó¥À¥à¤ËÆþ¤ìÊѤ¨¤ë¡£";
3173 if (name) return "Earthquake";
3174 if (desc) return "Shakes dungeon structure, and results in random swapping of floors and walls.";
3180 if (info) return info_radius(rad);
3184 earthquake(py, px, rad);
3191 if (name) return "¥«¥Þ¥¤¥¿¥Á";
3192 if (desc) return "Á´Êý¸þ¤Ë¸þ¤«¤Ã¤Æ¹¶·â¤¹¤ë¡£";
3194 if (name) return "Cyclone";
3195 if (desc) return "Attacks all adjacent monsters.";
3203 monster_type *m_ptr;
3205 for (dir = 0; dir < 8; dir++)
3207 y = py + ddy_ddd[dir];
3208 x = px + ddx_ddd[dir];
3209 c_ptr = &cave[y][x];
3211 /* Get the monster */
3212 m_ptr = &m_list[c_ptr->m_idx];
3214 /* Hack -- attack monsters */
3215 if (c_ptr->m_idx && (m_ptr->ml || cave_have_flag_bold(y, x, FF_PROJECT)))
3224 if (name) return "¥Ö¥ê¥¶¡¼¥É";
3225 if (desc) return "µðÂç¤ÊÎ䵤¤Îµå¤òÊü¤Ä¡£";
3227 if (name) return "Blizzard";
3228 if (desc) return "Fires a huge ball of cold.";
3232 int dam = 70 + plev * 3 / 2;
3233 int rad = plev / 12 + 1;
3235 if (info) return info_damage(0, 0, dam);
3239 if (!get_aim_dir(&dir)) return NULL;
3241 fire_ball(GF_COLD, dir, dam, rad);
3248 if (name) return "°ðºÊÍò";
3249 if (desc) return "µðÂç¤ÊÅÅ·â¤Îµå¤òÊü¤Ä¡£";
3251 if (name) return "Lightning Storm";
3252 if (desc) return "Fires a huge electric ball.";
3256 int dam = 90 + plev * 3 / 2;
3257 int rad = plev / 12 + 1;
3259 if (info) return info_damage(0, 0, dam);
3263 if (!get_aim_dir(&dir)) return NULL;
3264 fire_ball(GF_ELEC, dir, dam, rad);
3272 if (name) return "±²Ä¬";
3273 if (desc) return "µðÂç¤Ê¿å¤Îµå¤òÊü¤Ä¡£";
3275 if (name) return "Whirlpool";
3276 if (desc) return "Fires a huge ball of water.";
3280 int dam = 100 + plev * 3 / 2;
3281 int rad = plev / 12 + 1;
3283 if (info) return info_damage(0, 0, dam);
3287 if (!get_aim_dir(&dir)) return NULL;
3288 fire_ball(GF_WATER, dir, dam, rad);
3295 if (name) return "ÍÛ¸÷¾¤´";
3296 if (desc) return "¼«Ê¬¤òÃæ¿´¤È¤·¤¿¸÷¤Îµå¤òȯÀ¸¤µ¤»¤ë¡£¤µ¤é¤Ë¡¢¤½¤Î³¬Á´ÂΤò±Êµ×¤Ë¾È¤é¤·¡¢¥À¥ó¥¸¥ç¥óÆ⤹¤Ù¤Æ¤Î¥¢¥¤¥Æ¥à¤ò´¶ÃΤ¹¤ë¡£";
3298 if (name) return "Call Sunlight";
3299 if (desc) return "Generates ball of light centered on you. Maps and lights whole dungeon level. Knows all objects location.";
3306 if (info) return info_damage(0, 0, dam/2);
3310 fire_ball(GF_LITE, 0, dam, rad);
3311 chg_virtue(V_KNOWLEDGE, 1);
3312 chg_virtue(V_ENLIGHTEN, 1);
3315 if ((prace_is_(RACE_VAMPIRE) || (p_ptr->mimic_form == MIMIC_VAMPIRE)) && !p_ptr->resist_lite)
3318 msg_print("Æü¸÷¤¬¤¢¤Ê¤¿¤ÎÆùÂΤò¾Ç¤¬¤·¤¿¡ª");
3320 msg_print("The sunlight scorches your flesh!");
3324 take_hit(DAMAGE_NOESCAPE, 50, "Æü¸÷", -1);
3326 take_hit(DAMAGE_NOESCAPE, 50, "sunlight", -1);
3335 if (name) return "ÀºÎî¤Î¿Ï";
3336 if (desc) return "Éð´ï¤Ë±ê¤«Î䵤¤Î°À¤ò¤Ä¤±¤ë¡£";
3338 if (name) return "Elemental Branding";
3339 if (desc) return "Makes current weapon fire or frost branded.";
3345 brand_weapon(randint0(2));
3352 if (name) return "¼«Á³¤Î¶¼°Ò";
3353 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¡¢ÃϿ̤òµ¯¤³¤·¡¢¼«Ê¬¤òÃæ¿´¤È¤·¤¿Ê¬²ò¤Îµå¤òȯÀ¸¤µ¤»¤ë¡£";
3355 if (name) return "Nature's Wrath";
3356 if (desc) return "Damages all monsters in sight. Makes quake. Generates disintegration ball centered on you.";
3360 int d_dam = 4 * plev;
3361 int b_dam = (100 + plev) * 2;
3362 int b_rad = 1 + plev / 12;
3363 int q_rad = 20 + plev / 2;
3365 if (info) return format("%s%d+%d", s_dam, d_dam, b_dam/2);
3369 dispel_monsters(d_dam);
3370 earthquake(py, px, q_rad);
3371 project(0, b_rad, py, px, b_dam, GF_DISINTEGRATE, PROJECT_KILL | PROJECT_ITEM, -1);
3381 static cptr do_chaos_spell(int spell, int mode)
3383 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
3384 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
3385 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
3386 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
3389 static const char s_dam[] = "»½ý:";
3390 static const char s_random[] = "¥é¥ó¥À¥à";
3392 static const char s_dam[] = "dam ";
3393 static const char s_random[] = "random";
3397 int plev = p_ptr->lev;
3403 if (name) return "¥Þ¥¸¥Ã¥¯¡¦¥ß¥µ¥¤¥ë";
3404 if (desc) return "¼å¤¤ËâË¡¤ÎÌð¤òÊü¤Ä¡£";
3406 if (name) return "Magic Missile";
3407 if (desc) return "Fires a weak bolt of magic.";
3411 int dice = 3 + ((plev - 1) / 5);
3414 if (info) return info_damage(dice, sides, 0);
3418 if (!get_aim_dir(&dir)) return NULL;
3420 fire_bolt_or_beam(beam_chance() - 10, GF_MISSILE, dir, damroll(dice, sides));
3427 if (name) return "¥È¥é¥Ã¥×/¥É¥¢Ç˲õ";
3428 if (desc) return "ÎÙÀܤ¹¤ë櫤ÈÈâ¤òÇ˲õ¤¹¤ë¡£";
3430 if (name) return "Trap / Door Destruction";
3431 if (desc) return "Destroys all traps in adjacent squares.";
3437 if (info) return info_radius(rad);
3441 destroy_doors_touch();
3448 if (name) return "Á®¸÷";
3449 if (desc) return "¸÷¸»¤¬¾È¤é¤·¤Æ¤¤¤ëÈϰϤ«Éô²°Á´ÂΤò±Êµ×¤ËÌÀ¤ë¤¯¤¹¤ë¡£";
3451 if (name) return "Flash of Light";
3452 if (desc) return "Lights up nearby area and the inside of a room permanently.";
3457 int sides = plev / 2;
3458 int rad = (plev / 10) + 1;
3460 if (info) return info_damage(dice, sides, 0);
3464 lite_area(damroll(dice, sides), rad);
3471 if (name) return "º®Íð¤Î¼ê";
3472 if (desc) return "Áê¼ê¤òº®Í𤵤»¤ë¹¶·â¤ò¤Ç¤¤ë¤è¤¦¤Ë¤¹¤ë¡£";
3474 if (name) return "Touch of Confusion";
3475 if (desc) return "Attempts to confuse the next monster that you hit.";
3481 if (!(p_ptr->special_attack & ATTACK_CONFUSE))
3484 msg_print("¤¢¤Ê¤¿¤Î¼ê¤Ï¸÷¤ê»Ï¤á¤¿¡£");
3486 msg_print("Your hands start glowing.");
3489 p_ptr->special_attack |= ATTACK_CONFUSE;
3490 p_ptr->redraw |= (PR_STATUS);
3498 if (name) return "ËâÎÏßÚÎö";
3499 if (desc) return "ËâË¡¤Îµå¤òÊü¤Ä¡£";
3501 if (name) return "Mana Burst";
3502 if (desc) return "Fires a ball of magic.";
3508 int rad = (plev < 30) ? 2 : 3;
3511 if (p_ptr->pclass == CLASS_MAGE ||
3512 p_ptr->pclass == CLASS_HIGH_MAGE ||
3513 p_ptr->pclass == CLASS_SORCERER)
3514 base = plev + plev / 2;
3516 base = plev + plev / 4;
3519 if (info) return info_damage(dice, sides, base);
3523 if (!get_aim_dir(&dir)) return NULL;
3525 fire_ball(GF_MISSILE, dir, damroll(dice, sides) + base, rad);
3528 * Shouldn't actually use GF_MANA, as
3529 * it will destroy all items on the
3538 if (name) return "¥Õ¥¡¥¤¥¢¡¦¥Ü¥ë¥È";
3539 if (desc) return "±ê¤Î¥Ü¥ë¥È¤â¤·¤¯¤Ï¥Ó¡¼¥à¤òÊü¤Ä¡£";
3541 if (name) return "Fire Bolt";
3542 if (desc) return "Fires a bolt or beam of fire.";
3546 int dice = 8 + (plev - 5) / 4;
3549 if (info) return info_damage(dice, sides, 0);
3553 if (!get_aim_dir(&dir)) return NULL;
3555 fire_bolt_or_beam(beam_chance(), GF_FIRE, dir, damroll(dice, sides));
3562 if (name) return "ÎϤηý";
3563 if (desc) return "¤´¤¯¾®¤µ¤Êʬ²ò¤Îµå¤òÊü¤Ä¡£";
3565 if (name) return "Fist of Force";
3566 if (desc) return "Fires a tiny ball of disintegration.";
3570 int dice = 8 + ((plev - 5) / 4);
3573 if (info) return info_damage(dice, sides, 0);
3577 if (!get_aim_dir(&dir)) return NULL;
3579 fire_ball(GF_DISINTEGRATE, dir,
3580 damroll(dice, sides), 0);
3587 if (name) return "¥Æ¥ì¥Ý¡¼¥È";
3588 if (desc) return "±óµ÷Î¥¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¤¹¤ë¡£";
3590 if (name) return "Teleport Self";
3591 if (desc) return "Teleport long distance.";
3595 int range = plev * 5;
3597 if (info) return info_range(range);
3601 teleport_player(range, 0L);
3608 if (name) return "¥ï¥ó¥À¡¼";
3609 if (desc) return "¥â¥ó¥¹¥¿¡¼¤Ë¥é¥ó¥À¥à¤Ê¸ú²Ì¤òÍ¿¤¨¤ë¡£";
3611 if (name) return "Wonder";
3612 if (desc) return "Fires something with random effects.";
3616 if (info) return s_random;
3621 if (!get_aim_dir(&dir)) return NULL;
3630 if (name) return "¥«¥ª¥¹¡¦¥Ü¥ë¥È";
3631 if (desc) return "¥«¥ª¥¹¤Î¥Ü¥ë¥È¤â¤·¤¯¤Ï¥Ó¡¼¥à¤òÊü¤Ä¡£";
3633 if (name) return "Chaos Bolt";
3634 if (desc) return "Fires a bolt or ball of chaos.";
3638 int dice = 10 + (plev - 5) / 4;
3641 if (info) return info_damage(dice, sides, 0);
3645 if (!get_aim_dir(&dir)) return NULL;
3647 fire_bolt_or_beam(beam_chance(), GF_CHAOS, dir, damroll(dice, sides));
3654 if (name) return "¥½¥Ë¥Ã¥¯¡¦¥Ö¡¼¥à";
3655 if (desc) return "¼«Ê¬¤òÃæ¿´¤È¤·¤¿¹ì²»¤Îµå¤òȯÀ¸¤µ¤»¤ë¡£";
3657 if (name) return "Sonic Boom";
3658 if (desc) return "Generates a ball of sound centered on you.";
3662 int dam = 60 + plev;
3663 int rad = plev / 10 + 2;
3665 if (info) return info_damage(0, 0, dam/2);
3670 msg_print("¥É¡¼¥ó¡ªÉô²°¤¬Íɤ줿¡ª");
3672 msg_print("BOOM! Shake the room!");
3675 project(0, rad, py, px, dam, GF_SOUND, PROJECT_KILL | PROJECT_ITEM, -1);
3682 if (name) return "ÇËÌǤÎÌð";
3683 if (desc) return "½ã¿è¤ÊËâÎϤΥӡ¼¥à¤òÊü¤Ä¡£";
3685 if (name) return "Doom Bolt";
3686 if (desc) return "Fires a beam of pure mana.";
3690 int dice = 11 + (plev - 5) / 4;
3693 if (info) return info_damage(dice, sides, 0);
3697 if (!get_aim_dir(&dir)) return NULL;
3699 fire_beam(GF_MANA, dir, damroll(dice, sides));
3706 if (name) return "¥Õ¥¡¥¤¥¢¡¦¥Ü¡¼¥ë";
3707 if (desc) return "±ê¤Îµå¤òÊü¤Ä¡£";
3709 if (name) return "Fire Ball";
3710 if (desc) return "Fires a ball of fire.";
3714 int dam = plev + 55;
3717 if (info) return info_damage(0, 0, dam);
3721 if (!get_aim_dir(&dir)) return NULL;
3723 fire_ball(GF_FIRE, dir, dam, rad);
3730 if (name) return "¥Æ¥ì¥Ý¡¼¥È¡¦¥¢¥¦¥§¥¤";
3731 if (desc) return "¥â¥ó¥¹¥¿¡¼¤ò¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤ë¥Ó¡¼¥à¤òÊü¤Ä¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
3733 if (name) return "Teleport Other";
3734 if (desc) return "Teleports all monsters on the line away unless resisted.";
3740 if (info) return info_power(power);
3744 if (!get_aim_dir(&dir)) return NULL;
3746 fire_beam(GF_AWAY_ALL, dir, power);
3753 if (name) return "Ç˲õ¤Î¸ÀÍÕ";
3754 if (desc) return "¼þÊդΥ¢¥¤¥Æ¥à¡¢¥â¥ó¥¹¥¿¡¼¡¢ÃÏ·Á¤òÇ˲õ¤¹¤ë¡£";
3756 if (name) return "Word of Destruction";
3757 if (desc) return "Destroy everything in nearby area.";
3766 destroy_area(py, px, base + randint1(sides), FALSE);
3773 if (name) return "¥í¥°¥ë¥¹È¯Æ°";
3774 if (desc) return "µðÂç¤Ê¥«¥ª¥¹¤Îµå¤òÊü¤Ä¡£";
3776 if (name) return "Invoke Logrus";
3777 if (desc) return "Fires a huge ball of chaos.";
3781 int dam = plev * 2 + 99;
3784 if (info) return info_damage(0, 0, dam);
3788 if (!get_aim_dir(&dir)) return NULL;
3790 fire_ball(GF_CHAOS, dir, dam, rad);
3797 if (name) return "¾¼ÔÊÑÍÆ";
3798 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤòÊѿȤµ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
3800 if (name) return "Polymorph Other";
3801 if (desc) return "Attempts to polymorph a monster.";
3807 if (info) return info_power(power);
3811 if (!get_aim_dir(&dir)) return NULL;
3820 if (name) return "Ï¢º¿°ðºÊ";
3821 if (desc) return "Á´Êý¸þ¤ËÂФ·¤ÆÅÅ·â¤Î¥Ó¡¼¥à¤òÊü¤Ä¡£";
3823 if (name) return "Chain Lightning";
3824 if (desc) return "Fires lightning beams in all directions.";
3828 int dice = 5 + plev / 10;
3831 if (info) return info_damage(dice, sides, 0);
3835 for (dir = 0; dir <= 9; dir++)
3836 fire_beam(GF_ELEC, dir, damroll(dice, sides));
3843 if (name) return "ËâÎÏÉõÆþ";
3844 if (desc) return "¾ó/ËâË¡ËÀ¤Î½¼Å¶²ó¿ô¤òÁý¤ä¤¹¤«¡¢½¼Å¶Ãæ¤Î¥í¥Ã¥É¤Î½¼Å¶»þ´Ö¤ò¸º¤é¤¹¡£";
3846 if (name) return "Arcane Binding";
3847 if (desc) return "Recharges staffs, wands or rods.";
3853 if (info) return info_power(power);
3857 if (!recharge(power)) return NULL;
3864 if (name) return "¸¶»Òʬ²ò";
3865 if (desc) return "µðÂç¤Êʬ²ò¤Îµå¤òÊü¤Ä¡£";
3867 if (name) return "Disintegrate";
3868 if (desc) return "Fires a huge ball of disintegration.";
3872 int dam = plev + 70;
3873 int rad = 3 + plev / 40;
3875 if (info) return info_damage(0, 0, dam);
3879 if (!get_aim_dir(&dir)) return NULL;
3881 fire_ball(GF_DISINTEGRATE, dir, dam, rad);
3888 if (name) return "¸½¼ÂÊÑÍÆ";
3889 if (desc) return "¸½ºß¤Î³¬¤òºÆ¹½À®¤¹¤ë¡£";
3891 if (name) return "Alter Reality";
3892 if (desc) return "Recreates current dungeon level.";
3899 if (info) return info_delay(base, sides);
3910 if (name) return "¥Þ¥¸¥Ã¥¯¡¦¥í¥±¥Ã¥È";
3911 if (desc) return "¥í¥±¥Ã¥È¤òȯ¼Í¤¹¤ë¡£";
3913 if (name) return "Magic Rocket";
3914 if (desc) return "Fires a magic rocket.";
3918 int dam = 120 + plev * 2;
3921 if (info) return info_damage(0, 0, dam);
3925 if (!get_aim_dir(&dir)) return NULL;
3928 msg_print("¥í¥±¥Ã¥Èȯ¼Í¡ª");
3930 msg_print("You launch a rocket!");
3933 fire_rocket(GF_ROCKET, dir, dam, rad);
3940 if (name) return "º®Æ٤οÏ";
3941 if (desc) return "Éð´ï¤Ë¥«¥ª¥¹¤Î°À¤ò¤Ä¤±¤ë¡£";
3943 if (name) return "Chaos Branding";
3944 if (desc) return "Makes current weapon a Chaotic weapon.";
3957 if (name) return "°Ë⾤´";
3958 if (desc) return "°Ëâ¤ò1Âξ¤´¤¹¤ë¡£";
3960 if (name) return "Summon Demon";
3961 if (desc) return "Summons a demon.";
3968 bool pet = !one_in_(3);
3970 if (pet) mode |= PM_FORCE_PET;
3971 else mode |= PM_NO_PET;
3972 if (!(pet && (plev < 50))) mode |= PM_ALLOW_GROUP;
3974 if (summon_specific((pet ? -1 : 0), py, px, (plev * 3) / 2, SUMMON_DEMON, mode))
3977 msg_print("ⲫ¤Î°½¤¬½¼Ëþ¤·¤¿¡£");
3979 msg_print("The area fills with a stench of sulphur and brimstone.");
3985 msg_print("¡Ö¤´ÍѤǤ´¤¶¤¤¤Þ¤¹¤«¡¢¤´¼ç¿ÍÍÍ¡×");
3987 msg_print("'What is thy bidding... Master?'");
3993 msg_print("¡ÖÈܤ·¤¼Ô¤è¡¢²æ¤ÏÆò¤Î²¼Ëͤˤ¢¤é¤º¡ª ¤ªÁ°¤Îº²¤òĺ¤¯¤¾¡ª¡×");
3995 msg_print("'NON SERVIAM! Wretch! I shall feast on thy mortal soul!'");
4005 if (name) return "½ÅÎϸ÷Àþ";
4006 if (desc) return "½ÅÎϤΥӡ¼¥à¤òÊü¤Ä¡£";
4008 if (name) return "Beam of Gravity";
4009 if (desc) return "Fires a beam of gravity.";
4013 int dice = 9 + (plev - 5) / 4;
4016 if (info) return info_damage(dice, sides, 0);
4020 if (!get_aim_dir(&dir)) return NULL;
4022 fire_beam(GF_GRAVITY, dir, damroll(dice, sides));
4029 if (name) return "ήÀ±·²";
4030 if (desc) return "¼«Ê¬¤Î¼þÊÕ¤Ëð¨ÀФòÍî¤È¤¹¡£";
4032 if (name) return "Meteor Swarm";
4033 if (desc) return "Makes meteor balls fall down to nearby random locations.";
4040 if (info) return info_multi_damage(dam);
4044 cast_meteor(dam, rad);
4051 if (name) return "±ë¤Î°ì·â";
4052 if (desc) return "¼«Ê¬¤òÃæ¿´¤È¤·¤¿Ä¶µðÂç¤Ê±ê¤Îµå¤òȯÀ¸¤µ¤»¤ë¡£";
4054 if (name) return "Flame Strike";
4055 if (desc) return "Generate a huge ball of fire centered on you.";
4059 int dam = 300 + 3 * plev;
4062 if (info) return info_damage(0, 0, dam/2);
4066 fire_ball(GF_FIRE, 0, dam, rad);
4073 if (name) return "º®ÆÙ¾¤Íè";
4074 if (desc) return "¥é¥ó¥À¥à¤Ê°À¤Îµå¤ä¥Ó¡¼¥à¤òȯÀ¸¤µ¤»¤ë¡£";
4076 if (name) return "Call Chaos";
4077 if (desc) return "Generate random kind of balls or beams.";
4081 if (info) return format("%s150 / 250", s_dam);
4092 if (name) return "¼«¸ÊÊÑÍÆ";
4093 if (desc) return "¼«Ê¬¤òÊѿȤµ¤»¤è¤¦¤È¤¹¤ë¡£";
4095 if (name) return "Polymorph Self";
4096 if (desc) return "Polymorphs yourself.";
4103 if (!get_check("ÊѿȤ·¤Þ¤¹¡£¤è¤í¤·¤¤¤Ç¤¹¤«¡©")) return NULL;
4105 if (!get_check("You will polymorph yourself. Are you sure? ")) return NULL;
4114 if (name) return "ËâÎϤÎÍò";
4115 if (desc) return "Èó¾ï¤Ë¶¯ÎϤǵðÂç¤Ê½ã¿è¤ÊËâÎϤεå¤òÊü¤Ä¡£";
4117 if (name) return "Mana Storm";
4118 if (desc) return "Fires an extremely powerful huge ball of pure mana.";
4122 int dam = 300 + plev * 4;
4125 if (info) return info_damage(0, 0, dam);
4129 if (!get_aim_dir(&dir)) return NULL;
4131 fire_ball(GF_MANA, dir, dam, rad);
4138 if (name) return "¥í¥°¥ë¥¹¤Î¥Ö¥ì¥¹";
4139 if (desc) return "Èó¾ï¤Ë¶¯ÎϤʥ«¥ª¥¹¤Îµå¤òÊü¤Ä¡£";
4141 if (name) return "Breathe Logrus";
4142 if (desc) return "Fires an extremely powerful ball of chaos.";
4146 int dam = p_ptr->chp;
4149 if (info) return info_damage(0, 0, dam);
4153 if (!get_aim_dir(&dir)) return NULL;
4155 fire_ball(GF_CHAOS, dir, dam, rad);
4162 if (name) return "µõ̵¾¤Íè";
4163 if (desc) return "¼«Ê¬¤Ë¼þ°Ï¤Ë¸þ¤«¤Ã¤Æ¡¢¥í¥±¥Ã¥È¡¢½ã¿è¤ÊËâÎϤε塢Êü¼ÍÀÇÑ´þʪ¤Îµå¤òÊü¤Ä¡£¤¿¤À¤·¡¢ÊɤËÎÙÀܤ·¤Æ»ÈÍѤ¹¤ë¤È¹ÈϰϤòÇ˲õ¤¹¤ë¡£";
4165 if (name) return "Call the Void";
4166 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.";
4170 if (info) return format("%s3 * 175", s_dam);
4184 static cptr do_death_spell(int spell, int mode)
4186 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
4187 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
4188 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
4189 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
4192 static const char s_dam[] = "»½ý:";
4193 static const char s_random[] = "¥é¥ó¥À¥à";
4195 static const char s_dam[] = "dam ";
4196 static const char s_random[] = "random";
4200 int plev = p_ptr->lev;
4206 if (name) return "̵À¸Ì¿´¶ÃÎ";
4207 if (desc) return "¶á¤¯¤ÎÀ¸Ì¿¤Î¤Ê¤¤¥â¥ó¥¹¥¿¡¼¤ò´¶ÃΤ¹¤ë¡£";
4209 if (name) return "Detect Unlife";
4210 if (desc) return "Detects all nonliving monsters in your vicinity.";
4214 int rad = DETECT_RAD_DEFAULT;
4216 if (info) return info_radius(rad);
4220 detect_monsters_nonliving(rad);
4227 if (name) return "¼ö»¦ÃÆ";
4228 if (desc) return "¤´¤¯¾®¤µ¤Ê¼Ù°¤ÊÎϤò»ý¤Ä¥Ü¡¼¥ë¤òÊü¤Ä¡£Á±Îɤʥâ¥ó¥¹¥¿¡¼¤Ë¤ÏÂ礤ʥÀ¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
4230 if (name) return "Malediction";
4231 if (desc) return "Fires a tiny ball of evil power which hurts good monsters greatly.";
4235 int dice = 3 + (plev - 1) / 5;
4239 if (info) return info_damage(dice, sides, 0);
4243 if (!get_aim_dir(&dir)) return NULL;
4246 * A radius-0 ball may (1) be aimed at
4247 * objects etc., and will affect them;
4248 * (2) may be aimed at ANY visible
4249 * monster, unlike a 'bolt' which must
4250 * travel to the monster.
4253 fire_ball(GF_HELL_FIRE, dir, damroll(dice, sides), rad);
4257 /* Special effect first */
4258 int effect = randint1(1000);
4261 fire_ball_hide(GF_DEATH_RAY, dir, plev * 200, 0);
4262 else if (effect < 500)
4263 fire_ball_hide(GF_TURN_ALL, dir, plev, 0);
4264 else if (effect < 800)
4265 fire_ball_hide(GF_OLD_CONF, dir, plev, 0);
4267 fire_ball_hide(GF_STUN, dir, plev, 0);
4275 if (name) return "¼Ù°´¶ÃÎ";
4276 if (desc) return "¶á¤¯¤Î¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ò´¶ÃΤ¹¤ë¡£";
4278 if (name) return "Detect Evil";
4279 if (desc) return "Detects all evil monsters in your vicinity.";
4283 int rad = DETECT_RAD_DEFAULT;
4285 if (info) return info_radius(rad);
4289 detect_monsters_evil(rad);
4296 if (name) return "°½±À";
4297 if (desc) return "ÆǤεå¤òÊü¤Ä¡£";
4299 if (name) return "Stinking Cloud";
4300 if (desc) return "Fires a ball of poison.";
4304 int dam = 10 + plev / 2;
4307 if (info) return info_damage(0, 0, dam);
4311 if (!get_aim_dir(&dir)) return NULL;
4313 fire_ball(GF_POIS, dir, dam, rad);
4320 if (name) return "¹õ¤¤Ì²¤ê";
4321 if (desc) return "1ÂΤΥâ¥ó¥¹¥¿¡¼¤ò̲¤é¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
4323 if (name) return "Black Sleep";
4324 if (desc) return "Attempts to sleep a monster.";
4330 if (info) return info_power(power);
4334 if (!get_aim_dir(&dir)) return NULL;
4343 if (name) return "ÂÑÆÇ";
4344 if (desc) return "°ìÄê»þ´Ö¡¢ÆǤؤÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
4346 if (name) return "Resist Poison";
4347 if (desc) return "Gives resistance to poison. This resistance can be added to which from equipment for more powerful resistance.";
4353 if (info) return info_duration(base, base);
4357 set_oppose_pois(randint1(base) + base, FALSE);
4364 if (name) return "¶²¹²";
4365 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤò¶²Éݤµ¤»¡¢Û¯Û°¤µ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
4367 if (name) return "Horrify";
4368 if (desc) return "Attempts to scare and stun a monster.";
4374 if (info) return info_power(power);
4378 if (!get_aim_dir(&dir)) return NULL;
4380 fear_monster(dir, power);
4381 stun_monster(dir, power);
4388 if (name) return "¥¢¥ó¥Ç¥Ã¥É½¾Â°";
4389 if (desc) return "¥¢¥ó¥Ç¥Ã¥É1ÂΤò̥λ¤¹¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
4391 if (name) return "Enslave Undead";
4392 if (desc) return "Attempts to charm an undead monster.";
4398 if (info) return info_power(power);
4402 if (!get_aim_dir(&dir)) return NULL;
4404 control_one_undead(dir, power);
4411 if (name) return "¥¨¥ó¥È¥í¥Ô¡¼¤Îµå";
4412 if (desc) return "À¸Ì¿¤Î¤¢¤ë¼Ô¤Ë¸ú²Ì¤Î¤¢¤ëµå¤òÊü¤Ä¡£";
4414 if (name) return "Orb of Entropy";
4415 if (desc) return "Fires a ball which damages living monsters.";
4421 int rad = (plev < 30) ? 2 : 3;
4424 if (p_ptr->pclass == CLASS_MAGE ||
4425 p_ptr->pclass == CLASS_HIGH_MAGE ||
4426 p_ptr->pclass == CLASS_SORCERER)
4427 base = plev + plev / 2;
4429 base = plev + plev / 4;
4432 if (info) return info_damage(dice, sides, base);
4436 if (!get_aim_dir(&dir)) return NULL;
4438 fire_ball(GF_OLD_DRAIN, dir, damroll(dice, dice) + base, rad);
4445 if (name) return "ÃϹö¤ÎÌð";
4446 if (desc) return "ÃϹö¤Î¥Ü¥ë¥È¤â¤·¤¯¤Ï¥Ó¡¼¥à¤òÊü¤Ä¡£";
4448 if (name) return "Nether Bolt";
4449 if (desc) return "Fires a bolt or beam of nether.";
4453 int dice = 8 + (plev - 5) / 4;
4456 if (info) return info_damage(dice, sides, 0);
4460 if (!get_aim_dir(&dir)) return NULL;
4462 fire_bolt_or_beam(beam_chance(), GF_NETHER, dir, damroll(dice, sides));
4469 if (name) return "»¦Ù¤±À";
4470 if (desc) return "¼«Ê¬¤òÃæ¿´¤È¤·¤¿ÆǤεå¤òȯÀ¸¤µ¤»¤ë¡£";
4472 if (name) return "Cloud kill";
4473 if (desc) return "Generate a ball of poison centered on you.";
4477 int dam = (30 + plev) * 2;
4478 int rad = plev / 10 + 2;
4480 if (info) return info_damage(0, 0, dam/2);
4484 project(0, rad, py, px, dam, GF_POIS, PROJECT_KILL | PROJECT_ITEM, -1);
4491 if (name) return "¥â¥ó¥¹¥¿¡¼¾ÃÌÇ";
4492 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤò¾Ã¤·µî¤ë¡£·Ð¸³Ãͤ䥢¥¤¥Æ¥à¤Ï¼ê¤ËÆþ¤é¤Ê¤¤¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
4494 if (name) return "Genocide One";
4495 if (desc) return "Attempts to vanish a monster.";
4499 int power = plev + 50;
4501 if (info) return info_power(power);
4505 if (!get_aim_dir(&dir)) return NULL;
4507 fire_ball_hide(GF_GENOCIDE, dir, power, 0);
4514 if (name) return "ÆǤοÏ";
4515 if (desc) return "Éð´ï¤ËÆǤΰÀ¤ò¤Ä¤±¤ë¡£";
4517 if (name) return "Poison Branding";
4518 if (desc) return "Makes current weapon poison branded.";
4531 if (name) return "µÛ·ì¥É¥ì¥¤¥ó";
4532 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤ«¤éÀ¸Ì¿ÎϤòµÛ¤¤¤È¤ë¡£µÛ¤¤¤È¤Ã¤¿À¸Ì¿ÎϤˤè¤Ã¤ÆËþÊ¢ÅÙ¤¬¾å¤¬¤ë¡£";
4534 if (name) return "Vampiric Drain";
4535 if (desc) return "Absorbs some HP from a monster and gives them to you. You will also gain nutritional sustenance from this.";
4540 int sides = plev * 2;
4541 int base = plev * 2;
4543 if (info) return info_damage(dice, sides, base);
4547 int dam = base + damroll(dice, sides);
4549 if (!get_aim_dir(&dir)) return NULL;
4551 if (drain_life(dir, dam))
4553 chg_virtue(V_SACRIFICE, -1);
4554 chg_virtue(V_VITALITY, -1);
4559 * Gain nutritional sustenance:
4562 * A Food ration gives 5000
4563 * food points (by contrast)
4564 * Don't ever get more than
4565 * "Full" this way But if we
4566 * ARE Gorged, it won't cure
4569 dam = p_ptr->food + MIN(5000, 100 * dam);
4571 /* Not gorged already */
4572 if (p_ptr->food < PY_FOOD_MAX)
4573 set_food(dam >= PY_FOOD_MAX ? PY_FOOD_MAX - 1 : dam);
4581 if (name) return "È¿º²¤Î½Ñ";
4582 if (desc) return "¼þ°Ï¤Î»àÂΤä¹ü¤òÀ¸¤ÊÖ¤¹¡£";
4584 if (name) return "Animate dead";
4585 if (desc) return "Resurrects nearby corpse and skeletons. And makes these your pets.";
4591 animate_dead(0, py, px);
4598 if (name) return "Ëõ»¦";
4599 if (desc) return "»ØÄꤷ¤¿Ê¸»ú¤Î¥â¥ó¥¹¥¿¡¼¤ò¸½ºß¤Î³¬¤«¤é¾Ã¤·µî¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
4601 if (name) return "Genocide";
4602 if (desc) return "Eliminates an entire class of monster, exhausting you. Powerful or unique monsters may resist.";
4606 int power = plev+50;
4608 if (info) return info_power(power);
4612 symbol_genocide(power, TRUE);
4619 if (name) return "¶¸Àï»Î²½";
4620 if (desc) return "¶¸Àï»Î²½¤·¡¢¶²Éݤò½üµî¤¹¤ë¡£";
4622 if (name) return "Berserk";
4623 if (desc) return "Gives bonus to hit and HP, immunity to fear for a while. But decreases AC.";
4629 if (info) return info_duration(base, base);
4633 set_shero(randint1(base) + base, FALSE);
4642 if (name) return "°Î´";
4643 if (desc) return "¥é¥ó¥À¥à¤ÇÍÍ¡¹¤Ê¸ú²Ì¤¬µ¯¤³¤ë¡£";
4645 if (name) return "Invoke Spirits";
4646 if (desc) return "Causes random effects.";
4650 if (info) return s_random;
4654 if (!get_aim_dir(&dir)) return NULL;
4656 cast_invoke_spirits(dir);
4663 if (name) return "°Å¹õ¤ÎÌð";
4664 if (desc) return "°Å¹õ¤Î¥Ü¥ë¥È¤â¤·¤¯¤Ï¥Ó¡¼¥à¤òÊü¤Ä¡£";
4666 if (name) return "Dark Bolt";
4667 if (desc) return "Fires a bolt or beam of darkness.";
4671 int dice = 4 + (plev - 5) / 4;
4674 if (info) return info_damage(dice, sides, 0);
4678 if (!get_aim_dir(&dir)) return NULL;
4680 fire_bolt_or_beam(beam_chance(), GF_DARK, dir, damroll(dice, sides));
4687 if (name) return "¶¸ÍðÀï»Î";
4688 if (desc) return "¶¸Àï»Î²½¤·¡¢¶²Éݤò½üµî¤·¡¢²Ã®¤¹¤ë¡£";
4690 if (name) return "Battle Frenzy";
4691 if (desc) return "Gives another bonus to hit and HP, immunity to fear for a while. Hastes you. But decreases AC.";
4696 int sp_base = plev / 2;
4697 int sp_sides = 20 + plev / 2;
4699 if (info) return info_duration(b_base, b_base);
4703 set_shero(randint1(25) + 25, FALSE);
4706 set_fast(randint1(sp_sides) + sp_base, FALSE);
4713 if (name) return "µÛ·ì¤Î¿Ï";
4714 if (desc) return "Éð´ï¤ËµÛ·ì¤Î°À¤ò¤Ä¤±¤ë¡£";
4716 if (name) return "Vampiric Branding";
4717 if (desc) return "Makes current weapon Vampiric.";
4730 if (name) return "¿¿¡¦µÛ·ì";
4731 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤ«¤éÀ¸Ì¿ÎϤòµÛ¤¤¤È¤ë¡£µÛ¤¤¤È¤Ã¤¿À¸Ì¿ÎϤˤè¤Ã¤ÆÂÎÎϤ¬²óÉü¤¹¤ë¡£";
4733 if (name) return "Vampirism True";
4734 if (desc) return "Fires 3 bolts. Each of the bolts absorbs some HP from a monster and gives them to you.";
4740 if (info) return format("%s3*%d", s_dam, dam);
4746 if (!get_aim_dir(&dir)) return NULL;
4748 chg_virtue(V_SACRIFICE, -1);
4749 chg_virtue(V_VITALITY, -1);
4751 for (i = 0; i < 3; i++)
4753 if (drain_life(dir, dam))
4762 if (name) return "»à¤Î¸Àº²";
4763 if (desc) return "»ë³¦Æâ¤ÎÀ¸Ì¿¤Î¤¢¤ë¥â¥ó¥¹¥¿¡¼¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
4765 if (name) return "Nether Wave";
4766 if (desc) return "Damages all living monsters in sight.";
4770 int sides = plev * 3;
4772 if (info) return info_damage(1, sides, 0);
4776 dispel_living(randint1(sides));
4783 if (name) return "°Å¹õ¤ÎÍò";
4784 if (desc) return "µðÂç¤Ê°Å¹õ¤Îµå¤òÊü¤Ä¡£";
4786 if (name) return "Darkness Storm";
4787 if (desc) return "Fires a huge ball of darkness.";
4791 int dam = 100 + plev * 2;
4794 if (info) return info_damage(0, 0, dam);
4798 if (!get_aim_dir(&dir)) return NULL;
4800 fire_ball(GF_DARK, dir, dam, rad);
4807 if (name) return "»à¤Î¸÷Àþ";
4808 if (desc) return "»à¤Î¸÷Àþ¤òÊü¤Ä¡£";
4810 if (name) return "Death Ray";
4811 if (desc) return "Fires a beam of death.";
4817 if (!get_aim_dir(&dir)) return NULL;
4819 death_ray(dir, plev);
4826 if (name) return "»à¼Ô¾¤´";
4827 if (desc) return "1ÂΤΥ¢¥ó¥Ç¥Ã¥É¤ò¾¤´¤¹¤ë¡£";
4829 if (name) return "Raise the Dead";
4830 if (desc) return "Summons an undead monster.";
4837 bool pet = one_in_(3);
4840 type = (plev > 47 ? SUMMON_HI_UNDEAD : SUMMON_UNDEAD);
4842 if (!pet || (pet && (plev > 24) && one_in_(3)))
4843 mode |= PM_ALLOW_GROUP;
4845 if (pet) mode |= PM_FORCE_PET;
4846 else mode |= (PM_ALLOW_UNIQUE | PM_NO_PET);
4848 if (summon_specific((pet ? -1 : 0), py, px, (plev * 3) / 2, type, mode))
4851 msg_print("Î䤿¤¤É÷¤¬¤¢¤Ê¤¿¤Î¼þ¤ê¤Ë¿á¤»Ï¤á¤¿¡£¤½¤ì¤ÏÉåÇÔ½¤ò±¿¤ó¤Ç¤¤¤ë...");
4853 msg_print("Cold winds begin to blow around you, carrying with them the stench of decay...");
4860 msg_print("¸Å¤¨¤Î»à¤»¤ë¼Ô¶¦¤¬¤¢¤Ê¤¿¤Ë»Å¤¨¤ë¤¿¤áÅÚ¤«¤éᴤä¿¡ª");
4862 msg_print("Ancient, long-dead forms arise from the ground to serve you!");
4868 msg_print("»à¼Ô¤¬á´¤Ã¤¿¡£Ì²¤ê¤ò˸¤²¤ë¤¢¤Ê¤¿¤òȳ¤¹¤ë¤¿¤á¤Ë¡ª");
4870 msg_print("'The dead arise... to punish you for disturbing them!'");
4874 chg_virtue(V_UNLIFE, 1);
4882 if (name) return "»à¼Ô¤ÎÈëÅÁ";
4883 if (desc) return "¥¢¥¤¥Æ¥à¤ò1¤Ä¼±Ê̤¹¤ë¡£¥ì¥Ù¥ë¤¬¹â¤¤¤È¥¢¥¤¥Æ¥à¤ÎǽÎϤò´°Á´¤ËÃΤ뤳¤È¤¬¤Ç¤¤ë¡£";
4885 if (name) return "Esoteria";
4886 if (desc) return "Identifies an item. Or *identifies* an item at higher level.";
4892 if (randint1(50) > plev)
4894 if (!ident_spell(FALSE)) return NULL;
4898 if (!identify_fully(FALSE)) return NULL;
4906 if (name) return "µÛ·ìµ´ÊѲ½";
4907 if (desc) return "°ìÄê»þ´Ö¡¢µÛ·ìµ´¤ËÊѲ½¤¹¤ë¡£ÊѲ½¤·¤Æ¤¤¤ë´Ö¤ÏËÜÍè¤Î¼ï²¤ÎǽÎϤò¼º¤¤¡¢Âå¤ï¤ê¤ËµÛ·ìµ´¤È¤·¤Æ¤ÎǽÎϤòÆÀ¤ë¡£";
4909 if (name) return "Polymorph Vampire";
4910 if (desc) return "Mimic a vampire for a while. Loses abilities of original race and gets abilities as a vampire.";
4914 int base = 10 + plev / 2;
4916 if (info) return info_duration(base, base);
4920 set_mimic(base + randint1(base), MIMIC_VAMPIRE, FALSE);
4927 if (name) return "À¸Ì¿ÎÏÉü³è";
4928 if (desc) return "¼º¤Ã¤¿·Ð¸³Ãͤò²óÉü¤¹¤ë¡£";
4930 if (name) return "Restore Life";
4931 if (desc) return "Restore lost experience.";
4944 if (name) return "¼þÊÕËõ»¦";
4945 if (desc) return "¼«Ê¬¤Î¼þ°Ï¤Ë¤¤¤ë¥â¥ó¥¹¥¿¡¼¤ò¸½ºß¤Î³¬¤«¤é¾Ã¤·µî¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
4947 if (name) return "Mass Genocide";
4948 if (desc) return "Eliminates all nearby monsters, exhausting you. Powerful or unique monsters may be able to resist.";
4952 int power = plev + 50;
4954 if (info) return info_power(power);
4958 mass_genocide(power, TRUE);
4965 if (name) return "ÃϹö¤Î¹å²Ð";
4966 if (desc) return "¼Ù°¤ÊÎϤò»ý¤ÄÊõ¼î¤òÊü¤Ä¡£Á±Îɤʥâ¥ó¥¹¥¿¡¼¤Ë¤ÏÂ礤ʥÀ¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
4968 if (name) return "Hellfire";
4969 if (desc) return "Fires a powerful ball of evil power. Hurts good monsters greatly.";
4976 if (info) return info_damage(0, 0, dam);
4980 if (!get_aim_dir(&dir)) return NULL;
4982 fire_ball(GF_HELL_FIRE, dir, dam, rad);
4984 take_hit(DAMAGE_USELIFE, 20 + randint1(30), "ÃϹö¤Î¹å²Ð¤Î¼öʸ¤ò¾§¤¨¤¿ÈèÏ«", -1);
4986 take_hit(DAMAGE_USELIFE, 20 + randint1(30), "the strain of casting Hellfire", -1);
4994 if (name) return "Í©Âβ½";
4995 if (desc) return "°ìÄê»þ´Ö¡¢ÊɤòÄ̤êÈ´¤±¤ë¤³¤È¤¬¤Ç¤¼õ¤±¤ë¥À¥á¡¼¥¸¤¬·Ú¸º¤µ¤ì¤ëÍ©ÂΤξõÂÖ¤ËÊѿȤ¹¤ë¡£";
4997 if (name) return "Wraithform";
4998 if (desc) return "Becomes wraith form which gives ability to pass walls and makes all damages half.";
5002 int base = plev / 2;
5004 if (info) return info_duration(base, base);
5008 set_wraith_form(randint1(base) + base, FALSE);
5018 static cptr do_trump_spell(int spell, int mode)
5020 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
5021 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
5022 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
5023 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
5024 bool fail = (mode == SPELL_FAIL) ? TRUE : FALSE;
5027 static const char s_random[] = "¥é¥ó¥À¥à";
5029 static const char s_random[] = "random";
5033 int plev = p_ptr->lev;
5039 if (name) return "¥·¥ç¡¼¥È¡¦¥Æ¥ì¥Ý¡¼¥È";
5040 if (desc) return "¶áµ÷Î¥¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¤¹¤ë¡£";
5042 if (name) return "Phase Door";
5043 if (desc) return "Teleport short distance.";
5049 if (info) return info_range(range);
5053 teleport_player(range, 0L);
5060 if (name) return "ÃØéá¤Î¥«¡¼¥É";
5061 if (desc) return "ÃØéá¤ò¾¤´¤¹¤ë¡£";
5063 if (name) return "Trump Spiders";
5064 if (desc) return "Summons spiders.";
5071 msg_print("¤¢¤Ê¤¿¤ÏÃØéá¤Î¥«¡¼¥É¤Ë½¸Ã椹¤ë...");
5073 msg_print("You concentrate on the trump of an spider...");
5076 if (trump_summoning(1, !fail, py, px, 0, SUMMON_SPIDER, PM_ALLOW_GROUP))
5081 msg_print("¾¤´¤µ¤ì¤¿ÃØéá¤ÏÅܤäƤ¤¤ë¡ª");
5083 msg_print("The summoned spiders get angry!");
5093 if (name) return "¥·¥ã¥Ã¥Õ¥ë";
5094 if (desc) return "¥«¡¼¥É¤ÎÀꤤ¤ò¤¹¤ë¡£";
5096 if (name) return "Shuffle";
5097 if (desc) return "Causes random effects.";
5101 if (info) return s_random;
5112 if (name) return "¥Õ¥í¥¢¡¦¥ê¥»¥Ã¥È";
5113 if (desc) return "ºÇ¿¼³¬¤òÊѹ¹¤¹¤ë¡£";
5115 if (name) return "Reset Recall";
5116 if (desc) return "Resets the 'deepest' level for recall spell.";
5122 if (!reset_recall()) return NULL;
5129 if (name) return "¥Æ¥ì¥Ý¡¼¥È";
5130 if (desc) return "±óµ÷Î¥¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¤¹¤ë¡£";
5132 if (name) return "Teleport";
5133 if (desc) return "Teleport long distance.";
5137 int range = plev * 4;
5139 if (info) return info_range(range);
5143 teleport_player(range, 0L);
5150 if (name) return "´¶ÃΤΥ«¡¼¥É";
5151 if (desc) return "°ìÄê»þ´Ö¡¢¥Æ¥ì¥Ñ¥·¡¼Ç½ÎϤòÆÀ¤ë¡£";
5153 if (name) return "Trump Spying";
5154 if (desc) return "Gives telepathy for a while.";
5161 if (info) return info_duration(base, sides);
5165 set_tim_esp(randint1(sides) + base, FALSE);
5172 if (name) return "¥Æ¥ì¥Ý¡¼¥È¡¦¥â¥ó¥¹¥¿¡¼";
5173 if (desc) return "¥â¥ó¥¹¥¿¡¼¤ò¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤ë¥Ó¡¼¥à¤òÊü¤Ä¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
5175 if (name) return "Teleport Away";
5176 if (desc) return "Teleports all monsters on the line away unless resisted.";
5182 if (info) return info_power(power);
5186 if (!get_aim_dir(&dir)) return NULL;
5188 fire_beam(GF_AWAY_ALL, dir, power);
5195 if (name) return "ưʪ¤Î¥«¡¼¥É";
5196 if (desc) return "1ÂΤÎưʪ¤ò¾¤´¤¹¤ë¡£";
5198 if (name) return "Trump Animals";
5199 if (desc) return "Summons an animal.";
5205 int type = (!fail ? SUMMON_ANIMAL_RANGER : SUMMON_ANIMAL);
5208 msg_print("¤¢¤Ê¤¿¤Ïưʪ¤Î¥«¡¼¥É¤Ë½¸Ã椹¤ë...");
5210 msg_print("You concentrate on the trump of an animal...");
5213 if (trump_summoning(1, !fail, py, px, 0, type, 0L))
5218 msg_print("¾¤´¤µ¤ì¤¿Æ°Êª¤ÏÅܤäƤ¤¤ë¡ª");
5220 msg_print("The summoned animal gets angry!");
5230 if (name) return "°ÜÆ°¤Î¥«¡¼¥É";
5231 if (desc) return "¥¢¥¤¥Æ¥à¤ò¼«Ê¬¤Î¸µ¤Ø°ÜÆ°¤µ¤»¤ë¡£";
5233 if (name) return "Trump Reach";
5234 if (desc) return "Pulls a distant item close to you.";
5238 int weight = plev * 15;
5240 if (info) return info_weight(weight);
5244 if (!get_aim_dir(&dir)) return NULL;
5246 fetch(dir, weight, FALSE);
5253 if (name) return "¥«¥ß¥«¥¼¤Î¥«¡¼¥É";
5254 if (desc) return "Ê£¿ô¤ÎÇúȯ¤¹¤ë¥â¥ó¥¹¥¿¡¼¤ò¾¤´¤¹¤ë¡£";
5256 if (name) return "Trump Kamikaze";
5257 if (desc) return "Summons monsters which explode by itself.";
5268 if (!target_set(TARGET_KILL)) return NULL;
5274 /* Summons near player when failed */
5279 if (p_ptr->pclass == CLASS_BEASTMASTER)
5280 type = SUMMON_KAMIKAZE_LIVING;
5282 type = SUMMON_KAMIKAZE;
5285 msg_print("¤¢¤Ê¤¿¤Ï¥«¥ß¥«¥¼¤Î¥«¡¼¥É¤Ë½¸Ã椹¤ë...");
5287 msg_print("You concentrate on several trumps at once...");
5290 if (trump_summoning(2 + randint0(plev / 7), !fail, y, x, 0, type, 0L))
5295 msg_print("¾¤´¤µ¤ì¤¿¥â¥ó¥¹¥¿¡¼¤ÏÅܤäƤ¤¤ë¡ª");
5297 msg_print("The summoned creatures get angry!");
5307 if (name) return "¸¸Î´";
5308 if (desc) return "1ÂΤÎÍ©Îî¤ò¾¤´¤¹¤ë¡£";
5310 if (name) return "Phantasmal Servant";
5311 if (desc) return "Summons a ghost.";
5315 /* Phantasmal Servant is not summoned as enemy when failed */
5318 int summon_lev = plev * 2 / 3 + randint1(plev / 2);
5320 if (trump_summoning(1, !fail, py, px, (summon_lev * 3 / 2), SUMMON_PHANTOM, 0L))
5323 msg_print("¸æÍѤǤ´¤¶¤¤¤Þ¤¹¤«¡¢¸æ¼ç¿ÍÍÍ¡©");
5325 msg_print("'Your wish, master?'");
5334 if (name) return "¥¹¥Ô¡¼¥É¡¦¥â¥ó¥¹¥¿¡¼";
5335 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤò²Ã®¤µ¤»¤ë¡£";
5337 if (name) return "Haste Monster";
5338 if (desc) return "Hastes a monster.";
5346 /* Temporary enable target_pet option */
5347 bool old_target_pet = target_pet;
5350 result = get_aim_dir(&dir);
5352 /* Restore target_pet option */
5353 target_pet = old_target_pet;
5355 if (!result) return NULL;
5364 if (name) return "¥Æ¥ì¥Ý¡¼¥È¡¦¥ì¥Ù¥ë";
5365 if (desc) return "½Ö»þ¤Ë¾å¤«²¼¤Î³¬¤Ë¥Æ¥ì¥Ý¡¼¥È¤¹¤ë¡£";
5367 if (name) return "Teleport Level";
5368 if (desc) return "Teleport to up or down stairs in a moment.";
5375 if (!get_check("ËÜÅö¤Ë¾¤Î³¬¤Ë¥Æ¥ì¥Ý¡¼¥È¤·¤Þ¤¹¤«¡©")) return NULL;
5377 if (!get_check("Are you sure? (Teleport Level)")) return NULL;
5386 if (name) return "¼¡¸µ¤ÎÈâ";
5387 if (desc) return "ûµ÷Î¥Æâ¤Î»ØÄꤷ¤¿¾ì½ê¤Ë¥Æ¥ì¥Ý¡¼¥È¤¹¤ë¡£";
5389 if (name) return "Dimension Door";
5390 if (desc) return "Teleport to given location.";
5394 int range = plev / 2 + 10;
5396 if (info) return info_range(range);
5401 msg_print("¼¡¸µ¤ÎÈ⤬³«¤¤¤¿¡£ÌÜŪÃϤòÁª¤ó¤Ç²¼¤µ¤¤¡£");
5403 msg_print("You open a dimensional gate. Choose a destination.");
5406 if (!dimension_door()) return NULL;
5413 if (name) return "µ¢´Ô¤Î¼öʸ";
5414 if (desc) return "ÃϾå¤Ë¤¤¤ë¤È¤¤Ï¥À¥ó¥¸¥ç¥ó¤ÎºÇ¿¼³¬¤Ø¡¢¥À¥ó¥¸¥ç¥ó¤Ë¤¤¤ë¤È¤¤ÏÃϾå¤Ø¤È°ÜÆ°¤¹¤ë¡£";
5416 if (name) return "Word of Recall";
5417 if (desc) return "Recalls player from dungeon to town, or from town to the deepest level of dungeon.";
5424 if (info) return info_delay(base, sides);
5428 if (!word_of_recall()) return NULL;
5435 if (name) return "²øʪÄÉÊü";
5436 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
5438 if (name) return "Banish";
5439 if (desc) return "Teleports all monsters in sight away unless resisted.";
5443 int power = plev * 4;
5445 if (info) return info_power(power);
5449 banish_monsters(power);
5456 if (name) return "°ÌÃÖ¸ò´¹¤Î¥«¡¼¥É";
5457 if (desc) return "1ÂΤΥâ¥ó¥¹¥¿¡¼¤È°ÌÃÖ¤ò¸ò´¹¤¹¤ë¡£";
5459 if (name) return "Swap Position";
5460 if (desc) return "Swap positions of you and a monster.";
5468 /* HACK -- No range limit */
5469 project_length = -1;
5471 result = get_aim_dir(&dir);
5473 /* Restore range to default */
5476 if (!result) return NULL;
5485 if (name) return "¥¢¥ó¥Ç¥Ã¥É¤Î¥«¡¼¥É";
5486 if (desc) return "1ÂΤΥ¢¥ó¥Ç¥Ã¥É¤ò¾¤´¤¹¤ë¡£";
5488 if (name) return "Trump Undead";
5489 if (desc) return "Summons an undead monster.";
5496 msg_print("¤¢¤Ê¤¿¤Ï¥¢¥ó¥Ç¥Ã¥É¤Î¥«¡¼¥É¤Ë½¸Ã椹¤ë...");
5498 msg_print("You concentrate on the trump of an undead creature...");
5501 if (trump_summoning(1, !fail, py, px, 0, SUMMON_UNDEAD, 0L))
5506 msg_print("¾¤´¤µ¤ì¤¿¥¢¥ó¥Ç¥Ã¥É¤ÏÅܤäƤ¤¤ë¡ª");
5508 msg_print("The summoned undead creature gets angry!");
5518 if (name) return "à¨ÃîÎà¤Î¥«¡¼¥É";
5519 if (desc) return "1ÂΤΥҥɥé¤ò¾¤´¤¹¤ë¡£";
5521 if (name) return "Trump Reptiles";
5522 if (desc) return "Summons a hydra.";
5529 msg_print("¤¢¤Ê¤¿¤Ïà¨ÃîÎà¤Î¥«¡¼¥É¤Ë½¸Ã椹¤ë...");
5531 msg_print("You concentrate on the trump of a reptile...");
5534 if (trump_summoning(1, !fail, py, px, 0, SUMMON_HYDRA, 0L))
5539 msg_print("¾¤´¤µ¤ì¤¿à¨ÃîÎà¤ÏÅܤäƤ¤¤ë¡ª");
5541 msg_print("The summoned reptile gets angry!");
5551 if (name) return "¥â¥ó¥¹¥¿¡¼¤Î¥«¡¼¥É";
5552 if (desc) return "Ê£¿ô¤Î¥â¥ó¥¹¥¿¡¼¤ò¾¤´¤¹¤ë¡£";
5554 if (name) return "Trump Monsters";
5555 if (desc) return "Summons some monsters.";
5564 msg_print("¤¢¤Ê¤¿¤Ï¥â¥ó¥¹¥¿¡¼¤Î¥«¡¼¥É¤Ë½¸Ã椹¤ë...");
5566 msg_print("You concentrate on several trumps at once...");
5569 if (p_ptr->pclass == CLASS_BEASTMASTER)
5570 type = SUMMON_LIVING;
5574 if (trump_summoning((1 + (plev - 15)/ 10), !fail, py, px, 0, type, 0L))
5579 msg_print("¾¤´¤µ¤ì¤¿¥â¥ó¥¹¥¿¡¼¤ÏÅܤäƤ¤¤ë¡ª");
5581 msg_print("The summoned creatures get angry!");
5592 if (name) return "¥Ï¥¦¥ó¥É¤Î¥«¡¼¥É";
5593 if (desc) return "1¥°¥ë¡¼¥×¤Î¥Ï¥¦¥ó¥É¤ò¾¤´¤¹¤ë¡£";
5595 if (name) return "Trump Hounds";
5596 if (desc) return "Summons a group of hounds.";
5603 msg_print("¤¢¤Ê¤¿¤Ï¥Ï¥¦¥ó¥É¤Î¥«¡¼¥É¤Ë½¸Ã椹¤ë...");
5605 msg_print("You concentrate on the trump of a hound...");
5608 if (trump_summoning(1, !fail, py, px, 0, SUMMON_HOUND, PM_ALLOW_GROUP))
5613 msg_print("¾¤´¤µ¤ì¤¿¥Ï¥¦¥ó¥É¤ÏÅܤäƤ¤¤ë¡ª");
5615 msg_print("The summoned hounds get angry!");
5625 if (name) return "¥È¥é¥ó¥×¤Î¿Ï";
5626 if (desc) return "Éð´ï¤Ë¥È¥é¥ó¥×¤Î°À¤ò¤Ä¤±¤ë¡£";
5628 if (name) return "Trump Branding";
5629 if (desc) return "Makes current weapon a Trump weapon.";
5642 if (name) return "¿Í´Ö¥È¥é¥ó¥×";
5643 if (desc) return "¥é¥ó¥À¥à¤Ë¥Æ¥ì¥Ý¡¼¥È¤¹¤ëÆÍÁ³ÊÑ°Û¤«¡¢¼«Ê¬¤Î°Õ»×¤Ç¥Æ¥ì¥Ý¡¼¥È¤¹¤ëÆÍÁ³ÊÑ°Û¤¬¿È¤Ë¤Ä¤¯¡£";
5645 if (name) return "Living Trump";
5646 if (desc) return "Gives mutation which makes you teleport randomly or makes you able to teleport at will.";
5655 /* Teleport control */
5658 /* Random teleportation (uncontrolled) */
5661 /* Gain the mutation */
5662 if (gain_random_mutation(mutation))
5665 msg_print("¤¢¤Ê¤¿¤ÏÀ¸¤¤Æ¤¤¤ë¥«¡¼¥É¤ËÊѤï¤Ã¤¿¡£");
5667 msg_print("You have turned into a Living Trump.");
5676 if (name) return "¥µ¥¤¥Ð¡¼¥Ç¡¼¥â¥ó¤Î¥«¡¼¥É";
5677 if (desc) return "1ÂΤΥµ¥¤¥Ð¡¼¥Ç¡¼¥â¥ó¤ò¾¤´¤¹¤ë¡£";
5679 if (name) return "Trump Cyberdemon";
5680 if (desc) return "Summons a cyber demon.";
5687 msg_print("¤¢¤Ê¤¿¤Ï¥µ¥¤¥Ð¡¼¥Ç¡¼¥â¥ó¤Î¥«¡¼¥É¤Ë½¸Ã椹¤ë...");
5689 msg_print("You concentrate on the trump of a Cyberdemon...");
5692 if (trump_summoning(1, !fail, py, px, 0, SUMMON_CYBER, 0L))
5697 msg_print("¾¤´¤µ¤ì¤¿¥µ¥¤¥Ð¡¼¥Ç¡¼¥â¥ó¤ÏÅܤäƤ¤¤ë¡ª");
5699 msg_print("The summoned Cyberdemon gets angry!");
5709 if (name) return "ͽ¸«¤Î¥«¡¼¥É";
5710 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¡¢æ«¡¢Èâ¡¢³¬ÃÊ¡¢ºâÊõ¡¢¤½¤·¤Æ¥¢¥¤¥Æ¥à¤ò´¶ÃΤ¹¤ë¡£";
5712 if (name) return "Trump Divination";
5713 if (desc) return "Detects all monsters, traps, doors, stairs, treasures and items in your vicinity.";
5717 int rad = DETECT_RAD_DEFAULT;
5719 if (info) return info_radius(rad);
5730 if (name) return "Ãμ±¤Î¥«¡¼¥É";
5731 if (desc) return "¥¢¥¤¥Æ¥à¤Î»ý¤ÄǽÎϤò´°Á´¤ËÃΤ롣";
5733 if (name) return "Trump Lore";
5734 if (desc) return "*Identifies* an item.";
5740 if (!identify_fully(FALSE)) return NULL;
5747 if (name) return "²óÉü¥â¥ó¥¹¥¿¡¼";
5748 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤÎÂÎÎϤò²óÉü¤µ¤»¤ë¡£";
5750 if (name) return "Heal Monster";
5751 if (desc) return "Heal a monster.";
5755 int heal = plev * 10 + 200;
5757 if (info) return info_heal(0, 0, heal);
5763 /* Temporary enable target_pet option */
5764 bool old_target_pet = target_pet;
5767 result = get_aim_dir(&dir);
5769 /* Restore target_pet option */
5770 target_pet = old_target_pet;
5772 if (!result) return NULL;
5774 heal_monster(dir, heal);
5781 if (name) return "¥É¥é¥´¥ó¤Î¥«¡¼¥É";
5782 if (desc) return "1ÂΤΥɥ饴¥ó¤ò¾¤´¤¹¤ë¡£";
5784 if (name) return "Trump Dragon";
5785 if (desc) return "Summons a dragon.";
5792 msg_print("¤¢¤Ê¤¿¤Ï¥É¥é¥´¥ó¤Î¥«¡¼¥É¤Ë½¸Ã椹¤ë...");
5794 msg_print("You concentrate on the trump of a dragon...");
5797 if (trump_summoning(1, !fail, py, px, 0, SUMMON_DRAGON, 0L))
5802 msg_print("¾¤´¤µ¤ì¤¿¥É¥é¥´¥ó¤ÏÅܤäƤ¤¤ë¡ª");
5804 msg_print("The summoned dragon gets angry!");
5814 if (name) return "ð¨ÀФΥ«¡¼¥É";
5815 if (desc) return "¼«Ê¬¤Î¼þÊÕ¤Ëð¨ÀФòÍî¤È¤¹¡£";
5817 if (name) return "Trump Meteor";
5818 if (desc) return "Makes meteor balls fall down to nearby random locations.";
5825 if (info) return info_multi_damage(dam);
5829 cast_meteor(dam, rad);
5836 if (name) return "¥Ç¡¼¥â¥ó¤Î¥«¡¼¥É";
5837 if (desc) return "1ÂΤΰËâ¤ò¾¤´¤¹¤ë¡£";
5839 if (name) return "Trump Demon";
5840 if (desc) return "Summons a demon.";
5847 msg_print("¤¢¤Ê¤¿¤Ï¥Ç¡¼¥â¥ó¤Î¥«¡¼¥É¤Ë½¸Ã椹¤ë...");
5849 msg_print("You concentrate on the trump of a demon...");
5852 if (trump_summoning(1, !fail, py, px, 0, SUMMON_DEMON, 0L))
5857 msg_print("¾¤´¤µ¤ì¤¿¥Ç¡¼¥â¥ó¤ÏÅܤäƤ¤¤ë¡ª");
5859 msg_print("The summoned demon gets angry!");
5869 if (name) return "ÃϹö¤Î¥«¡¼¥É";
5870 if (desc) return "1ÂΤξåµé¥¢¥ó¥Ç¥Ã¥É¤ò¾¤´¤¹¤ë¡£";
5872 if (name) return "Trump Greater Undead";
5873 if (desc) return "Summons a greater undead.";
5880 msg_print("¤¢¤Ê¤¿¤Ï¶¯ÎϤʥ¢¥ó¥Ç¥Ã¥É¤Î¥«¡¼¥É¤Ë½¸Ã椹¤ë...");
5882 msg_print("You concentrate on the trump of a greater undead being...");
5884 /* May allow unique depend on level and dice roll */
5885 if (trump_summoning(1, !fail, py, px, 0, SUMMON_HI_UNDEAD, PM_ALLOW_UNIQUE))
5890 msg_print("¾¤´¤µ¤ì¤¿¾åµé¥¢¥ó¥Ç¥Ã¥É¤ÏÅܤäƤ¤¤ë¡ª");
5892 msg_print("The summoned greater undead creature gets angry!");
5902 if (name) return "¸ÅÂå¥É¥é¥´¥ó¤Î¥«¡¼¥É";
5903 if (desc) return "1ÂΤθÅÂå¥É¥é¥´¥ó¤ò¾¤´¤¹¤ë¡£";
5905 if (name) return "Trump Ancient Dragon";
5906 if (desc) return "Summons an ancient dragon.";
5914 if (p_ptr->pclass == CLASS_BEASTMASTER)
5915 type = SUMMON_HI_DRAGON_LIVING;
5917 type = SUMMON_HI_DRAGON;
5920 msg_print("¤¢¤Ê¤¿¤Ï¸ÅÂå¥É¥é¥´¥ó¤Î¥«¡¼¥É¤Ë½¸Ã椹¤ë...");
5922 msg_print("You concentrate on the trump of an ancient dragon...");
5925 /* May allow unique depend on level and dice roll */
5926 if (trump_summoning(1, !fail, py, px, 0, type, PM_ALLOW_UNIQUE))
5931 msg_print("¾¤´¤µ¤ì¤¿¸ÅÂå¥É¥é¥´¥ó¤ÏÅܤäƤ¤¤ë¡ª");
5933 msg_print("The summoned ancient dragon gets angry!");
5946 static cptr do_arcane_spell(int spell, int mode)
5948 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
5949 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
5950 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
5951 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
5954 int plev = p_ptr->lev;
5960 if (name) return "ÅÅ·â";
5961 if (desc) return "ÅÅ·â¤Î¥Ü¥ë¥È¤â¤·¤¯¤Ï¥Ó¡¼¥à¤òÊü¤Ä¡£";
5963 if (name) return "Zap";
5964 if (desc) return "Fires a bolt or beam of lightning.";
5968 int dice = 3 + (plev - 1) / 5;
5971 if (info) return info_damage(dice, sides, 0);
5975 if (!get_aim_dir(&dir)) return NULL;
5977 fire_bolt_or_beam(beam_chance() - 10, GF_ELEC, dir, damroll(dice, sides));
5984 if (name) return "ËâË¡¤Î»Ü¾û";
5985 if (desc) return "Èâ¤Ë¸°¤ò¤«¤±¤ë¡£";
5987 if (name) return "Wizard Lock";
5988 if (desc) return "Locks a door.";
5994 if (!get_aim_dir(&dir)) return NULL;
6003 if (name) return "Æ©ÌÀÂδ¶ÃÎ";
6004 if (desc) return "¶á¤¯¤ÎÆ©ÌÀ¤Ê¥â¥ó¥¹¥¿¡¼¤ò´¶ÃΤ¹¤ë¡£";
6006 if (name) return "Detect Invisibility";
6007 if (desc) return "Detects all invisible monsters in your vicinity.";
6011 int rad = DETECT_RAD_DEFAULT;
6013 if (info) return info_radius(rad);
6017 detect_monsters_invis(rad);
6024 if (name) return "¥â¥ó¥¹¥¿¡¼´¶ÃÎ";
6025 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î¸«¤¨¤ë¥â¥ó¥¹¥¿¡¼¤ò´¶ÃΤ¹¤ë¡£";
6027 if (name) return "Detect Monsters";
6028 if (desc) return "Detects all monsters in your vicinity unless invisible.";
6032 int rad = DETECT_RAD_DEFAULT;
6034 if (info) return info_radius(rad);
6038 detect_monsters_normal(rad);
6045 if (name) return "¥·¥ç¡¼¥È¡¦¥Æ¥ì¥Ý¡¼¥È";
6046 if (desc) return "¶áµ÷Î¥¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¤¹¤ë¡£";
6048 if (name) return "Blink";
6049 if (desc) return "Teleport short distance.";
6055 if (info) return info_range(range);
6059 teleport_player(range, 0L);
6066 if (name) return "¥é¥¤¥È¡¦¥¨¥ê¥¢";
6067 if (desc) return "¸÷¸»¤¬¾È¤é¤·¤Æ¤¤¤ëÈϰϤ«Éô²°Á´ÂΤò±Êµ×¤ËÌÀ¤ë¤¯¤¹¤ë¡£";
6069 if (name) return "Light Area";
6070 if (desc) return "Lights up nearby area and the inside of a room permanently.";
6075 int sides = plev / 2;
6076 int rad = plev / 10 + 1;
6078 if (info) return info_damage(dice, sides, 0);
6082 lite_area(damroll(dice, sides), rad);
6089 if (name) return "櫤ÈÈâ Ç˲õ";
6090 if (desc) return "°ìľÀþ¾å¤ÎÁ´¤Æ¤Î櫤ÈÈâ¤òÇ˲õ¤¹¤ë¡£";
6092 if (name) return "Trap & Door Destruction";
6093 if (desc) return "Fires a beam which destroy traps and doors.";
6099 if (!get_aim_dir(&dir)) return NULL;
6108 if (name) return "·Ú½ý¤Î¼£Ìþ";
6109 if (desc) return "²ø²æ¤ÈÂÎÎϤò¾¯¤·²óÉü¤µ¤»¤ë¡£";
6111 if (name) return "Cure Light Wounds";
6112 if (desc) return "Heals cut and HP a little.";
6119 if (info) return info_heal(dice, sides, 0);
6123 hp_player(damroll(dice, sides));
6124 set_cut(p_ptr->cut - 10);
6131 if (name) return "櫤ÈÈâ ´¶ÃÎ";
6132 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î櫤ÈÈâ¤È³¬Ãʤò´¶ÃΤ¹¤ë¡£";
6134 if (name) return "Detect Doors & Traps";
6135 if (desc) return "Detects traps, doors, and stairs in your vicinity.";
6139 int rad = DETECT_RAD_DEFAULT;
6141 if (info) return info_radius(rad);
6145 detect_traps(rad, TRUE);
6154 if (name) return "dzÁÇ";
6155 if (desc) return "¸÷¸»¤ËdzÎÁ¤òÊäµë¤¹¤ë¡£";
6157 if (name) return "Phlogiston";
6158 if (desc) return "Adds more turns of light to a lantern or torch.";
6171 if (name) return "ºâÊõ´¶ÃÎ";
6172 if (desc) return "¶á¤¯¤ÎºâÊõ¤ò´¶ÃΤ¹¤ë¡£";
6174 if (name) return "Detect Treasure";
6175 if (desc) return "Detects all treasures in your vicinity.";
6179 int rad = DETECT_RAD_DEFAULT;
6181 if (info) return info_radius(rad);
6185 detect_treasure(rad);
6186 detect_objects_gold(rad);
6193 if (name) return "ËâË¡ ´¶ÃÎ";
6194 if (desc) return "¶á¤¯¤ÎËâË¡¤¬¤«¤«¤Ã¤¿¥¢¥¤¥Æ¥à¤ò´¶ÃΤ¹¤ë¡£";
6196 if (name) return "Detect Enchantment";
6197 if (desc) return "Detects all magical items in your vicinity.";
6201 int rad = DETECT_RAD_DEFAULT;
6203 if (info) return info_radius(rad);
6207 detect_objects_magic(rad);
6214 if (name) return "¥¢¥¤¥Æ¥à´¶ÃÎ";
6215 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î¥¢¥¤¥Æ¥à¤ò´¶ÃΤ¹¤ë¡£";
6217 if (name) return "Detect Objects";
6218 if (desc) return "Detects all items in your vicinity.";
6222 int rad = DETECT_RAD_DEFAULT;
6224 if (info) return info_radius(rad);
6228 detect_objects_normal(rad);
6235 if (name) return "²òÆÇ";
6236 if (desc) return "ÆǤòÂÎÆ⤫¤é´°Á´¤Ë¼è¤ê½ü¤¯¡£";
6238 if (name) return "Cure Poison";
6239 if (desc) return "Cures poison status.";
6252 if (name) return "ÂÑÎä";
6253 if (desc) return "°ìÄê»þ´Ö¡¢Î䵤¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
6255 if (name) return "Resist Cold";
6256 if (desc) return "Gives resistance to cold. This resistance can be added to which from equipment for more powerful resistance.";
6262 if (info) return info_duration(base, base);
6266 set_oppose_cold(randint1(base) + base, FALSE);
6273 if (name) return "ÂѲÐ";
6274 if (desc) return "°ìÄê»þ´Ö¡¢±ê¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
6276 if (name) return "Resist Fire";
6277 if (desc) return "Gives resistance to fire. This resistance can be added to which from equipment for more powerful resistance.";
6283 if (info) return info_duration(base, base);
6287 set_oppose_fire(randint1(base) + base, FALSE);
6294 if (name) return "ÂÑÅÅ";
6295 if (desc) return "°ìÄê»þ´Ö¡¢ÅÅ·â¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
6297 if (name) return "Resist Lightning";
6298 if (desc) return "Gives resistance to electricity. This resistance can be added to which from equipment for more powerful resistance.";
6304 if (info) return info_duration(base, base);
6308 set_oppose_elec(randint1(base) + base, FALSE);
6315 if (name) return "ÂÑ»À";
6316 if (desc) return "°ìÄê»þ´Ö¡¢»À¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
6318 if (name) return "Resist Acid";
6319 if (desc) return "Gives resistance to acid. This resistance can be added to which from equipment for more powerful resistance.";
6325 if (info) return info_duration(base, base);
6329 set_oppose_acid(randint1(base) + base, FALSE);
6336 if (name) return "½Å½ý¤Î¼£Ìþ";
6337 if (desc) return "²ø²æ¤ÈÂÎÎϤòÃæÄøÅÙ²óÉü¤µ¤»¤ë¡£";
6339 if (name) return "Cure Medium Wounds";
6340 if (desc) return "Heals cut and HP more.";
6347 if (info) return info_heal(dice, sides, 0);
6351 hp_player(damroll(dice, sides));
6352 set_cut((p_ptr->cut / 2) - 50);
6359 if (name) return "¥Æ¥ì¥Ý¡¼¥È";
6360 if (desc) return "±óµ÷Î¥¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¤¹¤ë¡£";
6362 if (name) return "Teleport";
6363 if (desc) return "Teleport long distance.";
6367 int range = plev * 5;
6369 if (info) return info_range(range);
6373 teleport_player(range, 0L);
6380 if (name) return "´ÕÄê";
6381 if (desc) return "¥¢¥¤¥Æ¥à¤ò¼±Ê̤¹¤ë¡£";
6383 if (name) return "Identify";
6384 if (desc) return "Identifies an item.";
6390 if (!ident_spell(FALSE)) return NULL;
6397 if (name) return "´äÀÐÍϲò";
6398 if (desc) return "ÊɤòÍϤ«¤·¤Æ¾²¤Ë¤¹¤ë¡£";
6400 if (name) return "Stone to Mud";
6401 if (desc) return "Turns one rock square to mud.";
6409 if (info) return info_damage(dice, sides, base);
6413 if (!get_aim_dir(&dir)) return NULL;
6422 if (name) return "Á®¸÷";
6423 if (desc) return "¸÷Àþ¤òÊü¤Ä¡£¸÷¤ê¤ò·ù¤¦¥â¥ó¥¹¥¿¡¼¤Ë¸ú²Ì¤¬¤¢¤ë¡£";
6425 if (name) return "Ray of Light";
6426 if (desc) return "Fires a beam of light which damages to light-sensitive monsters.";
6433 if (info) return info_damage(dice, sides, 0);
6437 if (!get_aim_dir(&dir)) return NULL;
6440 msg_print("¸÷Àþ¤¬Êü¤¿¤ì¤¿¡£");
6442 msg_print("A line of light appears.");
6452 if (name) return "¶õÊ¢½¼Â";
6453 if (desc) return "ËþÊ¢¤Ë¤¹¤ë¡£";
6455 if (name) return "Satisfy Hunger";
6456 if (desc) return "Satisfies hunger.";
6462 set_food(PY_FOOD_MAX - 1);
6469 if (name) return "Æ©ÌÀ»ëǧ";
6470 if (desc) return "°ìÄê»þ´Ö¡¢Æ©ÌÀ¤Ê¤â¤Î¤¬¸«¤¨¤ë¤è¤¦¤Ë¤Ê¤ë¡£";
6472 if (name) return "See Invisible";
6473 if (desc) return "Gives see invisible for a while.";
6479 if (info) return info_duration(base, base);
6483 set_tim_invis(randint1(base) + base, FALSE);
6490 if (name) return "¥¨¥ì¥á¥ó¥¿¥ë¾¤´";
6491 if (desc) return "1ÂΤΥ¨¥ì¥á¥ó¥¿¥ë¤ò¾¤´¤¹¤ë¡£";
6493 if (name) return "Conjure Elemental";
6494 if (desc) return "Summons an elemental.";
6500 if (!summon_specific(-1, py, px, plev, SUMMON_ELEMENTAL, (PM_ALLOW_GROUP | PM_FORCE_PET)))
6503 msg_print("¥¨¥ì¥á¥ó¥¿¥ë¤Ï¸½¤ì¤Ê¤«¤Ã¤¿¡£");
6505 msg_print("No Elementals arrive.");
6514 if (name) return "¥Æ¥ì¥Ý¡¼¥È¡¦¥ì¥Ù¥ë";
6515 if (desc) return "½Ö»þ¤Ë¾å¤«²¼¤Î³¬¤Ë¥Æ¥ì¥Ý¡¼¥È¤¹¤ë¡£";
6517 if (name) return "Teleport Level";
6518 if (desc) return "Teleport to up or down stairs in a moment.";
6525 if (!get_check("ËÜÅö¤Ë¾¤Î³¬¤Ë¥Æ¥ì¥Ý¡¼¥È¤·¤Þ¤¹¤«¡©")) return NULL;
6527 if (!get_check("Are you sure? (Teleport Level)")) return NULL;
6536 if (name) return "¥Æ¥ì¥Ý¡¼¥È¡¦¥â¥ó¥¹¥¿¡¼";
6537 if (desc) return "¥â¥ó¥¹¥¿¡¼¤ò¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤ë¥Ó¡¼¥à¤òÊü¤Ä¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
6539 if (name) return "Teleport Away";
6540 if (desc) return "Teleports all monsters on the line away unless resisted.";
6546 if (info) return info_power(power);
6550 if (!get_aim_dir(&dir)) return NULL;
6552 fire_beam(GF_AWAY_ALL, dir, power);
6559 if (name) return "¸µÁǤεå";
6560 if (desc) return "±ê¡¢ÅÅ·â¡¢Î䵤¡¢»À¤Î¤É¤ì¤«¤Îµå¤òÊü¤Ä¡£";
6562 if (name) return "Elemental Ball";
6563 if (desc) return "Fires a ball of some elements.";
6567 int dam = 75 + plev;
6570 if (info) return info_damage(0, 0, dam);
6576 if (!get_aim_dir(&dir)) return NULL;
6578 switch (randint1(4))
6580 case 1: type = GF_FIRE;break;
6581 case 2: type = GF_ELEC;break;
6582 case 3: type = GF_COLD;break;
6583 default: type = GF_ACID;break;
6586 fire_ball(type, dir, dam, rad);
6593 if (name) return "Á´´¶ÃÎ";
6594 if (desc) return "¶á¤¯¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¡¢æ«¡¢Èâ¡¢³¬ÃÊ¡¢ºâÊõ¡¢¤½¤·¤Æ¥¢¥¤¥Æ¥à¤ò´¶ÃΤ¹¤ë¡£";
6596 if (name) return "Detection";
6597 if (desc) return "Detects all monsters, traps, doors, stairs, treasures and items in your vicinity.";
6601 int rad = DETECT_RAD_DEFAULT;
6603 if (info) return info_radius(rad);
6614 if (name) return "µ¢´Ô¤Î¼öʸ";
6615 if (desc) return "ÃϾå¤Ë¤¤¤ë¤È¤¤Ï¥À¥ó¥¸¥ç¥ó¤ÎºÇ¿¼³¬¤Ø¡¢¥À¥ó¥¸¥ç¥ó¤Ë¤¤¤ë¤È¤¤ÏÃϾå¤Ø¤È°ÜÆ°¤¹¤ë¡£";
6617 if (name) return "Word of Recall";
6618 if (desc) return "Recalls player from dungeon to town, or from town to the deepest level of dungeon.";
6625 if (info) return info_delay(base, sides);
6629 if (!word_of_recall()) return NULL;
6636 if (name) return "ÀéΤ´ã";
6637 if (desc) return "¤½¤Î³¬Á´ÂΤò±Êµ×¤Ë¾È¤é¤·¡¢¥À¥ó¥¸¥ç¥óÆ⤹¤Ù¤Æ¤Î¥¢¥¤¥Æ¥à¤ò´¶ÃΤ¹¤ë¡£¤µ¤é¤Ë¡¢°ìÄê»þ´Ö¥Æ¥ì¥Ñ¥·¡¼Ç½ÎϤòÆÀ¤ë¡£";
6639 if (name) return "Clairvoyance";
6640 if (desc) return "Maps and lights whole dungeon level. Knows all objects location. And gives telepathy for a while.";
6647 if (info) return info_duration(base, sides);
6651 chg_virtue(V_KNOWLEDGE, 1);
6652 chg_virtue(V_ENLIGHTEN, 1);
6656 if (!p_ptr->telepathy)
6658 set_tim_esp(randint1(sides) + base, FALSE);
6669 static cptr do_craft_spell(int spell, int mode)
6671 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
6672 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
6673 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
6674 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
6676 int plev = p_ptr->lev;
6682 if (name) return "ÀÖ³°Àþ»ëÎÏ";
6683 if (desc) return "°ìÄê»þ´Ö¡¢ÀÖ³°Àþ»ëÎϤ¬Áý¶¯¤µ¤ì¤ë¡£";
6685 if (name) return "Infravision";
6686 if (desc) return "Gives infravision for a while.";
6692 if (info) return info_duration(base, base);
6696 set_tim_infra(base + randint1(base), FALSE);
6703 if (name) return "²óÉüÎ϶¯²½";
6704 if (desc) return "°ìÄê»þ´Ö¡¢²óÉüÎϤ¬Áý¶¯¤µ¤ì¤ë¡£";
6706 if (name) return "Regeneration";
6707 if (desc) return "Gives regeneration ability for a while.";
6713 if (info) return info_duration(base, base);
6717 set_tim_regen(base + randint1(base), FALSE);
6724 if (name) return "¶õÊ¢½¼Â";
6725 if (desc) return "ËþÊ¢¤Ë¤Ê¤ë¡£";
6727 if (name) return "Satisfy Hunger";
6728 if (desc) return "Satisfies hunger.";
6734 set_food(PY_FOOD_MAX - 1);
6741 if (name) return "ÂÑÎ䵤";
6742 if (desc) return "°ìÄê»þ´Ö¡¢Î䵤¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
6744 if (name) return "Resist Cold";
6745 if (desc) return "Gives resistance to cold. This resistance can be added to which from equipment for more powerful resistance.";
6751 if (info) return info_duration(base, base);
6755 set_oppose_cold(randint1(base) + base, FALSE);
6762 if (name) return "ÂѲбê";
6763 if (desc) return "°ìÄê»þ´Ö¡¢±ê¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
6765 if (name) return "Resist Fire";
6766 if (desc) return "Gives resistance to fire. This resistance can be added to which from equipment for more powerful resistance.";
6772 if (info) return info_duration(base, base);
6776 set_oppose_fire(randint1(base) + base, FALSE);
6783 if (name) return "»Îµ¤¹âÍÈ";
6784 if (desc) return "°ìÄê»þ´Ö¡¢¥Ò¡¼¥í¡¼µ¤Ê¬¤Ë¤Ê¤ë¡£";
6786 if (name) return "Heroism";
6787 if (desc) return "Removes fear, and gives bonus to hit and 10 more HP for a while.";
6793 if (info) return info_duration(base, base);
6797 set_hero(randint1(base) + base, FALSE);
6806 if (name) return "ÂÑÅÅ·â";
6807 if (desc) return "°ìÄê»þ´Ö¡¢ÅÅ·â¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
6809 if (name) return "Resist Lightning";
6810 if (desc) return "Gives resistance to electricity. This resistance can be added to which from equipment for more powerful resistance.";
6816 if (info) return info_duration(base, base);
6820 set_oppose_elec(randint1(base) + base, FALSE);
6827 if (name) return "ÂÑ»À";
6828 if (desc) return "°ìÄê»þ´Ö¡¢»À¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
6830 if (name) return "Resist Acid";
6831 if (desc) return "Gives resistance to acid. This resistance can be added to which from equipment for more powerful resistance.";
6837 if (info) return info_duration(base, base);
6841 set_oppose_acid(randint1(base) + base, FALSE);
6848 if (name) return "Æ©ÌÀ»ëǧ";
6849 if (desc) return "°ìÄê»þ´Ö¡¢Æ©ÌÀ¤Ê¤â¤Î¤¬¸«¤¨¤ë¤è¤¦¤Ë¤Ê¤ë¡£";
6851 if (name) return "See Invisibility";
6852 if (desc) return "Gives see invisible for a while.";
6858 if (info) return info_duration(base, base);
6862 set_tim_invis(randint1(base) + base, FALSE);
6869 if (name) return "²ò¼ö";
6870 if (desc) return "¥¢¥¤¥Æ¥à¤Ë¤«¤«¤Ã¤¿¼å¤¤¼ö¤¤¤ò²ò½ü¤¹¤ë¡£";
6872 if (name) return "Remove Curse";
6873 if (desc) return "Removes normal curses from equipped items.";
6882 msg_print("狼¤Ë¸«¼é¤é¤ì¤Æ¤¤¤ë¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£");
6884 msg_print("You feel as if someone is watching over you.");
6893 if (name) return "ÂÑÆÇ";
6894 if (desc) return "°ìÄê»þ´Ö¡¢ÆǤؤÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
6896 if (name) return "Resist Poison";
6897 if (desc) return "Gives resistance to poison. This resistance can be added to which from equipment for more powerful resistance.";
6903 if (info) return info_duration(base, base);
6907 set_oppose_pois(randint1(base) + base, FALSE);
6914 if (name) return "¶¸Àï»Î²½";
6915 if (desc) return "¶¸Àï»Î²½¤·¡¢¶²Éݤò½üµî¤¹¤ë¡£";
6917 if (name) return "Berserk";
6918 if (desc) return "Gives bonus to hit and HP, immunity to fear for a while. But decreases AC.";
6924 if (info) return info_duration(base, base);
6928 set_shero(randint1(base) + base, FALSE);
6937 if (name) return "¼«¸ÊʬÀÏ";
6938 if (desc) return "¸½ºß¤Î¼«Ê¬¤Î¾õÂÖ¤ò´°Á´¤ËÃΤ롣";
6940 if (name) return "Self Knowledge";
6941 if (desc) return "Gives you useful info regarding your current resistances, the powers of your weapon and maximum limits of your stats.";
6954 if (name) return "Âмٰ·ë³¦";
6955 if (desc) return "¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤Î¹¶·â¤òËɤ°¥Ð¥ê¥¢¤òÄ¥¤ë¡£";
6957 if (name) return "Protection from Evil";
6958 if (desc) return "Gives aura which protect you from evil monster's physical attack.";
6962 int base = 3 * plev;
6965 if (info) return info_duration(base, sides);
6969 set_protevil(randint1(sides) + base, FALSE);
6976 if (name) return "Ìþ¤·";
6977 if (desc) return "ÆÇ¡¢Û¯Û°¾õÂÖ¡¢Éé½ý¤òÁ´²÷¤µ¤»¡¢¸¸³Ð¤òľ¤¹¡£";
6979 if (name) return "Cure";
6980 if (desc) return "Heals poison, stun, cut and hallucination completely.";
6996 if (name) return "ËâË¡·õ";
6997 if (desc) return "°ìÄê»þ´Ö¡¢Éð´ï¤ËÎ䵤¡¢±ê¡¢ÅÅ·â¡¢»À¡¢ÆǤΤ¤¤º¤ì¤«¤Î°À¤ò¤Ä¤±¤ë¡£Éð´ï¤ò»ý¤¿¤Ê¤¤¤È»È¤¨¤Ê¤¤¡£";
6999 if (name) return "Mana Branding";
7000 if (desc) return "Makes current weapon some elemental branded. You must wield weapons.";
7004 int base = plev / 2;
7006 if (info) return info_duration(base, base);
7010 if (!choose_ele_attack()) return NULL;
7017 if (name) return "¥Æ¥ì¥Ñ¥·¡¼";
7018 if (desc) return "°ìÄê»þ´Ö¡¢¥Æ¥ì¥Ñ¥·¡¼Ç½ÎϤòÆÀ¤ë¡£";
7020 if (name) return "Telepathy";
7021 if (desc) return "Gives telepathy for a while.";
7028 if (info) return info_duration(base, sides);
7032 set_tim_esp(randint1(sides) + base, FALSE);
7039 if (name) return "È©Àв½";
7040 if (desc) return "°ìÄê»þ´Ö¡¢AC¤ò¾å¾º¤µ¤»¤ë¡£";
7042 if (name) return "Stone Skin";
7043 if (desc) return "Gives bonus to AC for a while.";
7050 if (info) return info_duration(base, sides);
7054 set_shield(randint1(sides) + base, FALSE);
7061 if (name) return "Á´ÂÑÀ";
7062 if (desc) return "°ìÄê»þ´Ö¡¢»À¡¢ÅÅ·â¡¢±ê¡¢Î䵤¡¢ÆǤËÂФ¹¤ëÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
7064 if (name) return "Resistance";
7065 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.";
7071 if (info) return info_duration(base, base);
7075 set_oppose_acid(randint1(base) + base, FALSE);
7076 set_oppose_elec(randint1(base) + base, FALSE);
7077 set_oppose_fire(randint1(base) + base, FALSE);
7078 set_oppose_cold(randint1(base) + base, FALSE);
7079 set_oppose_pois(randint1(base) + base, FALSE);
7086 if (name) return "¥¹¥Ô¡¼¥É";
7087 if (desc) return "°ìÄê»þ´Ö¡¢²Ã®¤¹¤ë¡£";
7089 if (name) return "Haste Self";
7090 if (desc) return "Hastes you for a while.";
7095 int sides = 20 + plev;
7097 if (info) return info_duration(base, sides);
7101 set_fast(randint1(sides) + base, FALSE);
7108 if (name) return "ÊÉÈ´¤±";
7109 if (desc) return "°ìÄê»þ´Ö¡¢È¾Êª¼Á²½¤·ÊɤòÄ̤êÈ´¤±¤é¤ì¤ë¤è¤¦¤Ë¤Ê¤ë¡£";
7111 if (name) return "Walk through Wall";
7112 if (desc) return "Gives ability to pass walls for a while.";
7116 int base = plev / 2;
7118 if (info) return info_duration(base, base);
7122 set_kabenuke(randint1(base) + base, FALSE);
7129 if (name) return "½âËá¤";
7130 if (desc) return "½â¤ËÈ¿¼Í¤Î°À¤ò¤Ä¤±¤ë¡£";
7132 if (name) return "Polish Shield";
7133 if (desc) return "Makes a shield a shield of reflection.";
7146 if (name) return "¥´¡¼¥ì¥àÀ½Â¤";
7147 if (desc) return "1ÂΤΥ´¡¼¥ì¥à¤òÀ½Â¤¤¹¤ë¡£";
7149 if (name) return "Create Golem";
7150 if (desc) return "Creates a golem.";
7156 if (summon_specific(-1, py, px, plev, SUMMON_GOLEM, PM_FORCE_PET))
7159 msg_print("¥´¡¼¥ì¥à¤òºî¤Ã¤¿¡£");
7161 msg_print("You make a golem.");
7167 msg_print("¤¦¤Þ¤¯¥´¡¼¥ì¥à¤òºî¤ì¤Ê¤«¤Ã¤¿¡£");
7169 msg_print("No Golems arrive.");
7178 if (name) return "ËâË¡¤Î³»";
7179 if (desc) return "°ìÄê»þ´Ö¡¢ËâË¡ËɸæÎϤÈAC¤¬¾å¤¬¤ê¡¢º®Íð¤ÈÌÕÌܤÎÂÑÀ¡¢È¿¼ÍǽÎÏ¡¢ËãáãÃΤ餺¡¢ÉâÍ·¤òÆÀ¤ë¡£";
7181 if (name) return "Magical armor";
7182 if (desc) return "Gives resistance to magic, bonus to AC, resistance to confusion, blindness, reflection, free action and levitation for a while.";
7188 if (info) return info_duration(base, base);
7192 set_magicdef(randint1(base) + base, FALSE);
7199 if (name) return "ÁõÈ÷̵Îϲ½";
7200 if (desc) return "Éð´ï¡¦Ëɶñ¤Ë¤«¤±¤é¤ì¤¿¤¢¤é¤æ¤ëËâÎϤò´°Á´¤Ë²ò½ü¤¹¤ë¡£";
7202 if (name) return "Remove Enchantment";
7203 if (desc) return "Removes all magics completely from any weapon or armor.";
7209 if (!mundane_spell(TRUE)) return NULL;
7216 if (name) return "¼ö¤¤Ê´ºÕ";
7217 if (desc) return "¥¢¥¤¥Æ¥à¤Ë¤«¤«¤Ã¤¿¶¯ÎϤʼö¤¤¤ò²ò½ü¤¹¤ë¡£";
7219 if (name) return "Remove All Curse";
7220 if (desc) return "Removes normal and heavy curse from equipped items.";
7226 if (remove_all_curse())
7229 msg_print("狼¤Ë¸«¼é¤é¤ì¤Æ¤¤¤ë¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£");
7231 msg_print("You feel as if someone is watching over you.");
7240 if (name) return "´°Á´¤Ê¤ëÃμ±";
7241 if (desc) return "¥¢¥¤¥Æ¥à¤Î»ý¤ÄǽÎϤò´°Á´¤ËÃΤ롣";
7243 if (name) return "Knowledge True";
7244 if (desc) return "*Identifies* an item.";
7250 if (!identify_fully(FALSE)) return NULL;
7257 if (name) return "Éð´ï¶¯²½";
7258 if (desc) return "Éð´ï¤ÎÌ¿ÃæΨ½¤Àµ¤È¥À¥á¡¼¥¸½¤Àµ¤ò¶¯²½¤¹¤ë¡£";
7260 if (name) return "Enchant Weapon";
7261 if (desc) return "Attempts to increase +to-hit, +to-dam of a weapon.";
7267 if (!enchant_spell(randint0(4) + 1, randint0(4) + 1, 0)) return NULL;
7274 if (name) return "Ëɶñ¶¯²½";
7275 if (desc) return "³»¤ÎËɸ潤Àµ¤ò¶¯²½¤¹¤ë¡£";
7277 if (name) return "Enchant Armor";
7278 if (desc) return "Attempts to increase +AC of an armor.";
7284 if (!enchant_spell(0, 0, randint0(3) + 2)) return NULL;
7291 if (name) return "Éð´ï°ÀÉÕÍ¿";
7292 if (desc) return "Éð´ï¤Ë¥é¥ó¥À¥à¤Ë°À¤ò¤Ä¤±¤ë¡£";
7294 if (name) return "Brand Weapon";
7295 if (desc) return "Makes current weapon a random ego weapon.";
7301 brand_weapon(randint0(18));
7308 if (name) return "¿Í´Ö¥È¥é¥ó¥×";
7309 if (desc) return "¥é¥ó¥À¥à¤Ë¥Æ¥ì¥Ý¡¼¥È¤¹¤ëÆÍÁ³ÊÑ°Û¤«¡¢¼«Ê¬¤Î°Õ»×¤Ç¥Æ¥ì¥Ý¡¼¥È¤¹¤ëÆÍÁ³ÊÑ°Û¤¬¿È¤Ë¤Ä¤¯¡£";
7311 if (name) return "Living Trump";
7312 if (desc) return "Gives mutation which makes you teleport randomly or makes you able to teleport at will.";
7321 /* Teleport control */
7324 /* Random teleportation (uncontrolled) */
7327 /* Gain the mutation */
7328 if (gain_random_mutation(mutation))
7331 msg_print("¤¢¤Ê¤¿¤ÏÀ¸¤¤Æ¤¤¤ë¥«¡¼¥É¤ËÊѤï¤Ã¤¿¡£");
7333 msg_print("You have turned into a Living Trump.");
7342 if (name) return "°À¤Ø¤ÎÌȱÖ";
7343 if (desc) return "°ìÄê»þ´Ö¡¢Î䵤¡¢±ê¡¢ÅÅ·â¡¢»À¤Î¤¤¤º¤ì¤«¤ËÂФ¹¤ëÌȱ֤òÆÀ¤ë¡£";
7345 if (name) return "Immunity";
7346 if (desc) return "Gives an immunity to fire, cold, electricity or acid for a while.";
7352 if (info) return info_duration(base, base);
7356 if (!choose_ele_immune(base + randint1(base))) return NULL;
7366 static cptr do_daemon_spell(int spell, int mode)
7368 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
7369 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
7370 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
7371 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
7374 static const char s_dam[] = "»½ý:";
7376 static const char s_dam[] = "dam ";
7380 int plev = p_ptr->lev;
7386 if (name) return "¥Þ¥¸¥Ã¥¯¡¦¥ß¥µ¥¤¥ë";
7387 if (desc) return "¼å¤¤ËâË¡¤ÎÌð¤òÊü¤Ä¡£";
7389 if (name) return "Magic Missile";
7390 if (desc) return "Fires a weak bolt of magic.";
7394 int dice = 3 + (plev - 1) / 5;
7397 if (info) return info_damage(dice, sides, 0);
7401 if (!get_aim_dir(&dir)) return NULL;
7403 fire_bolt_or_beam(beam_chance() - 10, GF_MISSILE, dir, damroll(dice, sides));
7410 if (name) return "̵À¸Ì¿´¶ÃÎ";
7411 if (desc) return "¶á¤¯¤ÎÀ¸Ì¿¤Î¤Ê¤¤¥â¥ó¥¹¥¿¡¼¤ò´¶ÃΤ¹¤ë¡£";
7413 if (name) return "Detect Unlife";
7414 if (desc) return "Detects all nonliving monsters in your vicinity.";
7418 int rad = DETECT_RAD_DEFAULT;
7420 if (info) return info_radius(rad);
7424 detect_monsters_nonliving(rad);
7431 if (name) return "¼Ù¤Ê¤ë½ËÊ¡";
7432 if (desc) return "°ìÄê»þ´Ö¡¢Ì¿ÃæΨ¤ÈAC¤Ë¥Ü¡¼¥Ê¥¹¤òÆÀ¤ë¡£";
7434 if (name) return "Evil Bless";
7435 if (desc) return "Gives bonus to hit and AC for a few turns.";
7441 if (info) return info_duration(base, base);
7445 set_blessed(randint1(base) + base, FALSE);
7452 if (name) return "ÂѲбê";
7453 if (desc) return "°ìÄê»þ´Ö¡¢±ê¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
7455 if (name) return "Resist Fire";
7456 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.";
7462 if (info) return info_duration(base, base);
7466 set_oppose_fire(randint1(base) + base, FALSE);
7473 if (name) return "¶²¹²";
7474 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤò¶²Éݤµ¤»¡¢Û¯Û°¤µ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
7476 if (name) return "Horrify";
7477 if (desc) return "Attempts to scare and stun a monster.";
7483 if (info) return info_power(power);
7487 if (!get_aim_dir(&dir)) return NULL;
7489 fear_monster(dir, power);
7490 stun_monster(dir, power);
7497 if (name) return "ÃϹö¤ÎÌð";
7498 if (desc) return "ÃϹö¤Î¥Ü¥ë¥È¤â¤·¤¯¤Ï¥Ó¡¼¥à¤òÊü¤Ä¡£";
7500 if (name) return "Nether Bolt";
7501 if (desc) return "Fires a bolt or beam of nether.";
7505 int dice = 6 + (plev - 5) / 4;
7508 if (info) return info_damage(dice, sides, 0);
7512 if (!get_aim_dir(&dir)) return NULL;
7514 fire_bolt_or_beam(beam_chance(), GF_NETHER, dir, damroll(dice, sides));
7521 if (name) return "¸ÅÂå¤Î»àÎ´";
7522 if (desc) return "¸ÅÂå¤Î»àÎî¤ò¾¤´¤¹¤ë¡£";
7524 if (name) return "Summon Manes";
7525 if (desc) return "Summons a manes.";
7531 if (!summon_specific(-1, py, px, (plev * 3) / 2, SUMMON_MANES, (PM_ALLOW_GROUP | PM_FORCE_PET)))
7534 msg_print("¸ÅÂå¤Î»àÎî¤Ï¸½¤ì¤Ê¤«¤Ã¤¿¡£");
7536 msg_print("No Manes arrive.");
7545 if (name) return "ÃϹö¤Î±ë";
7546 if (desc) return "¼Ù°¤ÊÎϤò»ý¤Ä¥Ü¡¼¥ë¤òÊü¤Ä¡£Á±Îɤʥâ¥ó¥¹¥¿¡¼¤Ë¤ÏÂ礤ʥÀ¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
7548 if (name) return "Hellish Flame";
7549 if (desc) return "Fires a ball of evil power. Hurts good monsters greatly.";
7555 int rad = (plev < 30) ? 2 : 3;
7558 if (p_ptr->pclass == CLASS_MAGE ||
7559 p_ptr->pclass == CLASS_HIGH_MAGE ||
7560 p_ptr->pclass == CLASS_SORCERER)
7561 base = plev + plev / 2;
7563 base = plev + plev / 4;
7566 if (info) return info_damage(dice, sides, base);
7570 if (!get_aim_dir(&dir)) return NULL;
7572 fire_ball(GF_HELL_FIRE, dir, damroll(dice, sides) + base, rad);
7579 if (name) return "¥Ç¡¼¥â¥ó»ÙÇÛ";
7580 if (desc) return "°Ëâ1ÂΤò̥λ¤¹¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú";
7582 if (name) return "Dominate Demon";
7583 if (desc) return "Attempts to charm a demon.";
7589 if (info) return info_power(power);
7593 if (!get_aim_dir(&dir)) return NULL;
7595 control_one_demon(dir, power);
7602 if (name) return "¥Ó¥¸¥ç¥ó";
7603 if (desc) return "¼þÊÕ¤ÎÃÏ·Á¤ò´¶ÃΤ¹¤ë¡£";
7605 if (name) return "Vision";
7606 if (desc) return "Maps nearby area.";
7610 int rad = DETECT_RAD_MAP;
7612 if (info) return info_radius(rad);
7623 if (name) return "ÂÑÃϹö";
7624 if (desc) return "°ìÄê»þ´Ö¡¢ÃϹö¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£";
7626 if (name) return "Resist Nether";
7627 if (desc) return "Gives resistance to nether for a while.";
7633 if (info) return info_duration(base, base);
7637 set_tim_res_nether(randint1(base) + base, FALSE);
7644 if (name) return "¥×¥é¥º¥Þ¡¦¥Ü¥ë¥È";
7645 if (desc) return "¥×¥é¥º¥Þ¤Î¥Ü¥ë¥È¤â¤·¤¯¤Ï¥Ó¡¼¥à¤òÊü¤Ä¡£";
7647 if (name) return "Plasma bolt";
7648 if (desc) return "Fires a bolt or beam of plasma.";
7652 int dice = 11 + (plev - 5) / 4;
7655 if (info) return info_damage(dice, sides, 0);
7659 if (!get_aim_dir(&dir)) return NULL;
7661 fire_bolt_or_beam(beam_chance(), GF_PLASMA, dir, damroll(dice, sides));
7668 if (name) return "¥Õ¥¡¥¤¥¢¡¦¥Ü¡¼¥ë";
7669 if (desc) return "±ê¤Îµå¤òÊü¤Ä¡£";
7671 if (name) return "Fire Ball";
7672 if (desc) return "Fires a ball of fire.";
7676 int dam = plev + 55;
7679 if (info) return info_damage(0, 0, dam);
7683 if (!get_aim_dir(&dir)) return NULL;
7685 fire_ball(GF_FIRE, dir, dam, rad);
7692 if (name) return "±ê¤Î¿Ï";
7693 if (desc) return "Éð´ï¤Ë±ê¤Î°À¤ò¤Ä¤±¤ë¡£";
7695 if (name) return "Fire Branding";
7696 if (desc) return "Makes current weapon fire branded.";
7709 if (name) return "ÃϹöµå";
7710 if (desc) return "Â礤ÊÃϹö¤Îµå¤òÊü¤Ä¡£";
7712 if (name) return "Nether Ball";
7713 if (desc) return "Fires a huge ball of nether.";
7717 int dam = plev * 3 / 2 + 100;
7718 int rad = plev / 20 + 2;
7720 if (info) return info_damage(0, 0, dam);
7724 if (!get_aim_dir(&dir)) return NULL;
7726 fire_ball(GF_NETHER, dir, dam, rad);
7733 if (name) return "¥Ç¡¼¥â¥ó¾¤´";
7734 if (desc) return "°Ëâ1ÂΤò¾¤´¤¹¤ë¡£";
7736 if (name) return "Summon Demon";
7737 if (desc) return "Summons a demon.";
7743 bool pet = !one_in_(3);
7746 if (pet) mode |= PM_FORCE_PET;
7747 else mode |= PM_NO_PET;
7748 if (!(pet && (plev < 50))) mode |= PM_ALLOW_GROUP;
7750 if (summon_specific((pet ? -1 : 0), py, px, plev*2/3+randint1(plev/2), SUMMON_DEMON, mode))
7753 msg_print("ⲫ¤Î°½¤¬½¼Ëþ¤·¤¿¡£");
7755 msg_print("The area fills with a stench of sulphur and brimstone.");
7762 msg_print("¡Ö¤´ÍѤǤ´¤¶¤¤¤Þ¤¹¤«¡¢¤´¼ç¿ÍÍÍ¡×");
7764 msg_print("'What is thy bidding... Master?'");
7770 msg_print("¡ÖÈܤ·¤¼Ô¤è¡¢²æ¤ÏÆò¤Î²¼Ëͤˤ¢¤é¤º¡ª ¤ªÁ°¤Îº²¤òĺ¤¯¤¾¡ª¡×");
7772 msg_print("'NON SERVIAM! Wretch! I shall feast on thy mortal soul!'");
7779 msg_print("°Ëâ¤Ï¸½¤ì¤Ê¤«¤Ã¤¿¡£");
7781 msg_print("No demons arrive.");
7791 if (name) return "°Ëâ¤ÎÌÜ";
7792 if (desc) return "°ìÄê»þ´Ö¡¢¥Æ¥ì¥Ñ¥·¡¼Ç½ÎϤòÆÀ¤ë¡£";
7794 if (name) return "Devilish Eye";
7795 if (desc) return "Gives telepathy for a while.";
7802 if (info) return info_duration(base, sides);
7806 set_tim_esp(randint1(base) + sides, FALSE);
7813 if (name) return "°Ëâ¤Î¥¯¥í¡¼¥¯";
7814 if (desc) return "¶²Éݤò¼è¤ê½ü¤¡¢°ìÄê»þ´Ö¡¢±ê¤ÈÎ䵤¤ÎÂÑÀ¡¢±ê¤Î¥ª¡¼¥é¤òÆÀ¤ë¡£ÂÑÀ¤ÏÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
7816 if (name) return "Devil Cloak";
7817 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.";
7823 if (info) return info_duration(base, base);
7827 int dur = randint1(base) + base;
7829 set_oppose_fire(dur, FALSE);
7830 set_oppose_cold(dur, FALSE);
7831 set_tim_sh_fire(dur, FALSE);
7840 if (name) return "ÍÏ´äή";
7841 if (desc) return "¼«Ê¬¤òÃæ¿´¤È¤·¤¿±ê¤Îµå¤òºî¤ê½Ð¤·¡¢¾²¤òÍÏ´ä¤ËÊѤ¨¤ë¡£";
7843 if (name) return "The Flow of Lava";
7844 if (desc) return "Generates a ball of fire centered on you which transforms floors to magma.";
7848 int dam = (55 + plev) * 2;
7851 if (info) return info_damage(0, 0, dam/2);
7855 fire_ball(GF_FIRE, 0, dam, rad);
7856 fire_ball_hide(GF_LAVA_FLOW, 0, 2 + randint1(2), rad);
7863 if (name) return "¥×¥é¥º¥Þµå";
7864 if (desc) return "¥×¥é¥º¥Þ¤Îµå¤òÊü¤Ä¡£";
7866 if (name) return "Plasma Ball";
7867 if (desc) return "Fires a ball of plasma.";
7871 int dam = plev * 3 / 2 + 80;
7872 int rad = 2 + plev / 40;
7874 if (info) return info_damage(0, 0, dam);
7878 if (!get_aim_dir(&dir)) return NULL;
7880 fire_ball(GF_PLASMA, dir, dam, rad);
7887 if (name) return "°ËâÊѲ½";
7888 if (desc) return "°ìÄê»þ´Ö¡¢°Ëâ¤ËÊѲ½¤¹¤ë¡£ÊѲ½¤·¤Æ¤¤¤ë´Ö¤ÏËÜÍè¤Î¼ï²¤ÎǽÎϤò¼º¤¤¡¢Âå¤ï¤ê¤Ë°Ëâ¤È¤·¤Æ¤ÎǽÎϤòÆÀ¤ë¡£";
7890 if (name) return "Polymorph Demon";
7891 if (desc) return "Mimic a demon for a while. Loses abilities of original race and gets abilities as a demon.";
7895 int base = 10 + plev / 2;
7897 if (info) return info_duration(base, base);
7901 set_mimic(base + randint1(base), MIMIC_DEMON, FALSE);
7908 if (name) return "ÃϹö¤ÎÇÈÆ°";
7909 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£Á±Îɤʥâ¥ó¥¹¥¿¡¼¤ËÆäËÂ礤ʥÀ¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
7911 if (name) return "Nather Wave";
7912 if (desc) return "Damages all monsters in sight. Hurts good monsters greatly.";
7916 int sides1 = plev * 2;
7917 int sides2 = plev * 2;
7919 if (info) return format("%sd%d+d%d", s_dam, sides1, sides2);
7923 dispel_monsters(randint1(sides1));
7924 dispel_good(randint1(sides2));
7931 if (name) return "¥µ¥¥å¥Ð¥¹¤ÎÀÜÊ";
7932 if (desc) return "°ø²Ìº®Íð¤Îµå¤òÊü¤Ä¡£";
7934 if (name) return "Kiss of Succubus";
7935 if (desc) return "Fires a ball of nexus.";
7939 int dam = 100 + plev * 2;
7942 if (info) return info_damage(0, 0, dam);
7946 if (!get_aim_dir(&dir)) return NULL;
7947 fire_ball(GF_NEXUS, dir, dam, rad);
7954 if (name) return "ÇËÌǤμê";
7955 if (desc) return "ÇËÌǤμê¤òÊü¤Ä¡£¿©¤é¤Ã¤¿¥â¥ó¥¹¥¿¡¼¤Ï¤½¤Î¤È¤¤ÎHP¤ÎȾʬÁ°¸å¤Î¥À¥á¡¼¥¸¤ò¼õ¤±¤ë¡£";
7957 if (name) return "Doom Hand";
7958 if (desc) return "Attempts to make a monster's HP almost half.";
7964 if (!get_aim_dir(&dir)) return NULL;
7966 else msg_print("<ÇËÌǤμê>¤òÊü¤Ã¤¿¡ª");
7968 else msg_print("You invoke the Hand of Doom!");
7971 fire_ball_hide(GF_HAND_DOOM, dir, plev * 2, 0);
7978 if (name) return "»Îµ¤¹âÍÈ";
7979 if (desc) return "°ìÄê»þ´Ö¡¢¥Ò¡¼¥í¡¼µ¤Ê¬¤Ë¤Ê¤ë¡£";
7981 if (name) return "Raise the Morale";
7982 if (desc) return "Removes fear, and gives bonus to hit and 10 more HP for a while.";
7988 if (info) return info_duration(base, base);
7992 set_hero(randint1(base) + base, FALSE);
8001 if (name) return "ÉÔÌǤÎÆùÂÎ";
8002 if (desc) return "°ìÄê»þ´Ö¡¢»þ´ÖµÕž¤Ø¤ÎÂÑÀ¤òÆÀ¤ë¡£";
8004 if (name) return "Immortal Body";
8005 if (desc) return "Gives resistance to time for a while.";
8011 if (info) return info_duration(base, base);
8015 set_tim_res_time(randint1(base)+base, FALSE);
8022 if (name) return "¶¸µ¤¤Î±ß´Ä";
8023 if (desc) return "¼«Ê¬¤òÃæ¿´¤È¤·¤¿¥«¥ª¥¹¤Îµå¡¢º®Íð¤Îµå¤òȯÀ¸¤µ¤»¡¢¶á¤¯¤Î¥â¥ó¥¹¥¿¡¼¤ò̥λ¤¹¤ë¡£";
8025 if (name) return "Insanity Circle";
8026 if (desc) return "Generate balls of chaos, confusion and charm centered on you.";
8030 int dam = 50 + plev;
8031 int power = 20 + plev;
8032 int rad = 3 + plev / 20;
8034 if (info) return format("%s%d+%d", s_dam, dam/2, dam/2);
8038 fire_ball(GF_CHAOS, 0, dam, rad);
8039 fire_ball(GF_CONFUSION, 0, dam, rad);
8040 fire_ball(GF_CHARM, 0, power, rad);
8047 if (name) return "¥Ú¥Ã¥ÈÇúÇË";
8048 if (desc) return "Á´¤Æ¤Î¥Ú¥Ã¥È¤ò¶¯À©Åª¤ËÇúÇˤµ¤»¤ë¡£";
8050 if (name) return "Explode Pets";
8051 if (desc) return "Makes all pets explode.";
8064 if (name) return "¥°¥ì¡¼¥¿¡¼¥Ç¡¼¥â¥ó¾¤´";
8065 if (desc) return "¾åµé¥Ç¡¼¥â¥ó¤ò¾¤´¤¹¤ë¡£¾¤´¤¹¤ë¤Ë¤Ï¿Í´Ö('p','h','t'¤Çɽ¤µ¤ì¤ë¥â¥ó¥¹¥¿¡¼)¤Î»àÂΤòÊû¤²¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£";
8067 if (name) return "Summon Greater Demon";
8068 if (desc) return "Summons greater demon. It need to sacrifice a corpse of human ('p','h' or 't').";
8074 if (!cast_summon_greater_demon()) return NULL;
8081 if (name) return "ÃϹöÍò";
8082 if (desc) return "ĶµðÂç¤ÊÃϹö¤Îµå¤òÊü¤Ä¡£";
8084 if (name) return "Nether Storm";
8085 if (desc) return "Generate a huge ball of nether.";
8089 int dam = plev * 15;
8092 if (info) return info_damage(0, 0, dam);
8096 if (!get_aim_dir(&dir)) return NULL;
8098 fire_ball(GF_NETHER, dir, dam, rad);
8105 if (name) return "·ì¤Î¼ö¤¤";
8106 if (desc) return "¼«Ê¬¤¬¥À¥á¡¼¥¸¤ò¼õ¤±¤ë¤³¤È¤Ë¤è¤Ã¤ÆÂоݤ˼ö¤¤¤ò¤«¤±¡¢¥À¥á¡¼¥¸¤òÍ¿¤¨ÍÍ¡¹¤Ê¸ú²Ì¤ò°ú¤µ¯¤³¤¹¡£";
8108 if (name) return "Bloody Curse";
8109 if (desc) return "Puts blood curse which damages and causes various effects on a monster. You also take damage.";
8116 if (info) return info_damage(0, 0, dam);
8120 if (!get_aim_dir(&dir)) return NULL;
8122 fire_ball_hide(GF_BLOOD_CURSE, dir, dam, rad);
8124 take_hit(DAMAGE_USELIFE, 20 + randint1(30), "·ì¤Î¼ö¤¤", -1);
8126 take_hit(DAMAGE_USELIFE, 20 + randint1(30), "Blood curse", -1);
8134 if (name) return "ËⲦÊѲ½";
8135 if (desc) return "°Ëâ¤Î²¦¤ËÊѲ½¤¹¤ë¡£ÊѲ½¤·¤Æ¤¤¤ë´Ö¤ÏËÜÍè¤Î¼ï²¤ÎǽÎϤò¼º¤¤¡¢Âå¤ï¤ê¤Ë°Ëâ¤Î²¦¤È¤·¤Æ¤ÎǽÎϤòÆÀ¡¢ÊɤòÇ˲õ¤·¤Ê¤¬¤éÊ⤯¡£";
8137 if (name) return "Polymorph Demonlord";
8138 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.";
8144 if (info) return info_duration(base, base);
8148 set_mimic(base + randint1(base), MIMIC_DEMON_LORD, FALSE);
8158 static cptr do_crusade_spell(int spell, int mode)
8160 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
8161 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
8162 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
8163 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
8166 int plev = p_ptr->lev;
8172 if (name) return "Ĩȳ";
8173 if (desc) return "ÅÅ·â¤Î¥Ü¥ë¥È¤â¤·¤¯¤Ï¥Ó¡¼¥à¤òÊü¤Ä¡£";
8175 if (name) return "Punishment";
8176 if (desc) return "Fires a bolt or beam of lightning.";
8180 int dice = 3 + (plev - 1) / 5;
8183 if (info) return info_damage(dice, sides, 0);
8187 if (!get_aim_dir(&dir)) return NULL;
8189 fire_bolt_or_beam(beam_chance() - 10, GF_ELEC, dir, damroll(dice, sides));
8196 if (name) return "¼Ù°Â¸ºß´¶ÃÎ";
8197 if (desc) return "¶á¤¯¤Î¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ò´¶ÃΤ¹¤ë¡£";
8199 if (name) return "Detect Evil";
8200 if (desc) return "Detects all evil monsters in your vicinity.";
8204 int rad = DETECT_RAD_DEFAULT;
8206 if (info) return info_radius(rad);
8210 detect_monsters_evil(rad);
8217 if (name) return "¶²Éݽüµî";
8218 if (desc) return "¶²Éݤò¼è¤ê½ü¤¯¡£";
8220 if (name) return "Remove Fear";
8221 if (desc) return "Removes fear.";
8234 if (name) return "°Ò°µ";
8235 if (desc) return "¥â¥ó¥¹¥¿¡¼1ÂΤò¶²Éݤµ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
8237 if (name) return "Scare Monster";
8238 if (desc) return "Attempts to scare a monster.";
8244 if (info) return info_power(power);
8248 if (!get_aim_dir(&dir)) return NULL;
8250 fear_monster(dir, power);
8257 if (name) return "À»°è";
8258 if (desc) return "ÎÙÀܤ·¤¿Á´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò̲¤é¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
8260 if (name) return "Sanctuary";
8261 if (desc) return "Attempts to sleep monsters in the adjacent squares.";
8267 if (info) return info_power(power);
8271 sleep_monsters_touch();
8278 if (name) return "Æþ¸ý";
8279 if (desc) return "Ãæµ÷Î¥¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¤¹¤ë¡£";
8281 if (name) return "Portal";
8282 if (desc) return "Teleport medium distance.";
8286 int range = 25 + plev / 2;
8288 if (info) return info_range(range);
8292 teleport_player(range, 0L);
8299 if (name) return "¥¹¥¿¡¼¥À¥¹¥È";
8300 if (desc) return "¥¿¡¼¥²¥Ã¥ÈÉÕ¶á¤ËÁ®¸÷¤Î¥Ü¥ë¥È¤òÏ¢¼Í¤¹¤ë¡£";
8302 if (name) return "Star Dust";
8303 if (desc) return "Fires many bolts of light near the target.";
8307 int dice = 3 + (plev - 1) / 9;
8310 if (info) return info_multi_damage_dice(dice, sides);
8314 if (!get_aim_dir(&dir)) return NULL;
8315 fire_blast(GF_LITE, dir, dice, sides, 10, 3);
8322 if (name) return "¿ÈÂξô²½";
8323 if (desc) return "½ý¡¢ÆÇ¡¢Û¯Û°¤«¤éÁ´²÷¤¹¤ë¡£";
8325 if (name) return "Purify";
8326 if (desc) return "Heals all cut, stun and poison status.";
8341 if (name) return "¼Ù°Èô¤Ð¤·";
8342 if (desc) return "¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼1ÂΤò¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
8344 if (name) return "Scatter Evil";
8345 if (desc) return "Attempts to teleport an evil monster away.";
8349 int power = MAX_SIGHT * 5;
8351 if (info) return info_power(power);
8355 if (!get_aim_dir(&dir)) return NULL;
8356 fire_ball(GF_AWAY_EVIL, dir, power, 0);
8363 if (name) return "À»¤Ê¤ë¸÷µå";
8364 if (desc) return "À»¤Ê¤ëÎϤò¤â¤ÄÊõ¼î¤òÊü¤Ä¡£¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ËÂФ·¤ÆÂ礤ʥÀ¥á¡¼¥¸¤òÍ¿¤¨¤ë¤¬¡¢Á±Îɤʥâ¥ó¥¹¥¿¡¼¤Ë¤Ï¸ú²Ì¤¬¤Ê¤¤¡£";
8366 if (name) return "Holy Orb";
8367 if (desc) return "Fires a ball with holy power. Hurts evil monsters greatly, but don't effect good monsters.";
8373 int rad = (plev < 30) ? 2 : 3;
8376 if (p_ptr->pclass == CLASS_PRIEST ||
8377 p_ptr->pclass == CLASS_HIGH_MAGE ||
8378 p_ptr->pclass == CLASS_SORCERER)
8379 base = plev + plev / 2;
8381 base = plev + plev / 4;
8384 if (info) return info_damage(dice, sides, base);
8388 if (!get_aim_dir(&dir)) return NULL;
8390 fire_ball(GF_HOLY_FIRE, dir, damroll(dice, sides) + base, rad);
8397 if (name) return "°Ëâʧ¤¤";
8398 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥¢¥ó¥Ç¥Ã¥ÉµÚ¤Ó°Ëâ¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¡¢¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ò¶²Éݤµ¤»¤ë¡£";
8400 if (name) return "Exorcism";
8401 if (desc) return "Damages all undead and demons in sight, and scares all evil monsters in sight.";
8408 if (info) return info_damage(1, sides, 0);
8412 dispel_undead(randint1(sides));
8413 dispel_demons(randint1(sides));
8421 if (name) return "²ò¼ö";
8422 if (desc) return "¥¢¥¤¥Æ¥à¤Ë¤«¤«¤Ã¤¿¼å¤¤¼ö¤¤¤ò²ò½ü¤¹¤ë¡£";
8424 if (name) return "Remove Curse";
8425 if (desc) return "Removes normal curses from equipped items.";
8434 msg_print("狼¤Ë¸«¼é¤é¤ì¤Æ¤¤¤ë¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£");
8436 msg_print("You feel as if someone is watching over you.");
8445 if (name) return "Æ©ÌÀ»ëǧ";
8446 if (desc) return "°ìÄê»þ´Ö¡¢Æ©ÌÀ¤Ê¤â¤Î¤¬¸«¤¨¤ë¤è¤¦¤Ë¤Ê¤ë¡£";
8448 if (name) return "Sense Unseen";
8449 if (desc) return "Gives see invisible for a while.";
8455 if (info) return info_duration(base, base);
8459 set_tim_invis(randint1(base) + base, FALSE);
8466 if (name) return "Âмٰ·ë³¦";
8467 if (desc) return "¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤Î¹¶·â¤òËɤ°¥Ð¥ê¥¢¤òÄ¥¤ë¡£";
8469 if (name) return "Protection from Evil";
8470 if (desc) return "Gives aura which protect you from evil monster's physical attack.";
8475 int sides = 3 * plev;
8477 if (info) return info_duration(base, sides);
8481 set_protevil(randint1(sides) + sides, FALSE);
8488 if (name) return "ºÛ¤¤ÎÍë";
8489 if (desc) return "¶¯ÎϤÊÅÅ·â¤Î¥Ü¥ë¥È¤òÊü¤Ä¡£";
8491 if (name) return "Judgment Thunder";
8492 if (desc) return "Fires a powerful bolt of lightning.";
8498 if (info) return info_damage(0, 0, dam);
8502 if (!get_aim_dir(&dir)) return NULL;
8503 fire_bolt(GF_ELEC, dir, dam);
8510 if (name) return "À»¤Ê¤ë¸æ¸ÀÍÕ";
8511 if (desc) return "»ë³¦Æâ¤Î¼Ù°¤Ê¸ºß¤ËÂ礤ʥÀ¥á¡¼¥¸¤òÍ¿¤¨¡¢ÂÎÎϤò²óÉü¤·¡¢ÆÇ¡¢¶²ÉÝ¡¢Û¯Û°¾õÂÖ¡¢Éé½ý¤«¤éÁ´²÷¤¹¤ë¡£";
8513 if (name) return "Holy Word";
8514 if (desc) return "Damages all evil monsters in sight, heals HP somewhat, and completely heals poison, fear, stun and cut status.";
8518 int dam_sides = plev * 6;
8522 if (info) return format("»:1d%d/²ó%d", dam_sides, heal);
8524 if (info) return format("dam:d%d/h%d", dam_sides, heal);
8529 dispel_evil(randint1(dam_sides));
8541 if (name) return "³«¤«¤ì¤¿Æ»";
8542 if (desc) return "°ìľÀþ¾å¤ÎÁ´¤Æ¤Î櫤ÈÈâ¤òÇ˲õ¤¹¤ë¡£";
8544 if (name) return "Unbarring Ways";
8545 if (desc) return "Fires a beam which destroy traps and doors.";
8551 if (!get_aim_dir(&dir)) return NULL;
8560 if (name) return "ÉõËâ";
8561 if (desc) return "¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ÎÆ°¤¤ò»ß¤á¤ë¡£";
8563 if (name) return "Arrest";
8564 if (desc) return "Attempts to paralyze an evil monster.";
8568 int power = plev * 2;
8570 if (info) return info_power(power);
8574 if (!get_aim_dir(&dir)) return NULL;
8582 if (name) return "À»¤Ê¤ë¥ª¡¼¥é";
8583 if (desc) return "°ìÄê»þ´Ö¡¢¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ò½ý¤Ä¤±¤ëÀ»¤Ê¤ë¥ª¡¼¥é¤òÆÀ¤ë¡£";
8585 if (name) return "Holy Aura";
8586 if (desc) return "Gives aura of holy power which injures evil monsters which attacked you for a while.";
8592 if (info) return info_duration(base, base);
8596 set_tim_sh_holy(randint1(base) + base, FALSE);
8603 if (name) return "¥¢¥ó¥Ç¥Ã¥É&°ËâÂ໶";
8604 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥¢¥ó¥Ç¥Ã¥ÉµÚ¤Ó°Ëâ¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
8606 if (name) return "Dispel Undead & Demons";
8607 if (desc) return "Damages all undead and demons in sight.";
8611 int sides = plev * 4;
8613 if (info) return info_damage(1, sides, 0);
8617 dispel_undead(randint1(sides));
8618 dispel_demons(randint1(sides));
8625 if (name) return "¼Ù°Â໶";
8626 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
8628 if (name) return "Dispel Evil";
8629 if (desc) return "Damages all evil monsters in sight.";
8633 int sides = plev * 4;
8635 if (info) return info_damage(1, sides, 0);
8639 dispel_evil(randint1(sides));
8646 if (name) return "À»¤Ê¤ë¿Ï";
8647 if (desc) return "Ä̾ï¤ÎÉð´ï¤ËÌǼ٤ΰÀ¤ò¤Ä¤±¤ë¡£";
8649 if (name) return "Holy Blade";
8650 if (desc) return "Makes current weapon especially deadly against evil monsters.";
8663 if (name) return "¥¹¥¿¡¼¥Ð¡¼¥¹¥È";
8664 if (desc) return "µðÂç¤ÊÁ®¸÷¤Îµå¤òÊü¤Ä¡£";
8666 if (name) return "Star Burst";
8667 if (desc) return "Fires a huge ball of powerful light.";
8671 int dam = 100 + plev * 2;
8674 if (info) return info_damage(0, 0, dam);
8678 if (!get_aim_dir(&dir)) return NULL;
8680 fire_ball(GF_LITE, dir, dam, rad);
8687 if (name) return "Å·»È¾¤´";
8688 if (desc) return "Å·»È¤ò1Âξ¤´¤¹¤ë¡£";
8690 if (name) return "Summon Angel";
8691 if (desc) return "Summons an angel.";
8697 bool pet = !one_in_(3);
8700 if (pet) mode |= PM_FORCE_PET;
8701 else mode |= PM_NO_PET;
8702 if (!(pet && (plev < 50))) mode |= PM_ALLOW_GROUP;
8704 if (summon_specific((pet ? -1 : 0), py, px, (plev * 3) / 2, SUMMON_ANGEL, mode))
8709 msg_print("¡Ö¤´ÍѤǤ´¤¶¤¤¤Þ¤¹¤«¡¢¤´¼ç¿ÍÍÍ¡×");
8711 msg_print("'What is thy bidding... Master?'");
8717 msg_print("¡Ö²æ¤ÏÆò¤Î²¼Ëͤˤ¢¤é¤º¡ª °¹Ô¼Ô¤è¡¢²ù¤¤²þ¤á¤è¡ª¡×");
8719 msg_print("Mortal! Repent of thy impiousness.");
8729 if (name) return "»Îµ¤¹âÍÈ";
8730 if (desc) return "°ìÄê»þ´Ö¡¢¥Ò¡¼¥í¡¼µ¤Ê¬¤Ë¤Ê¤ë¡£";
8732 if (name) return "Heroism";
8733 if (desc) return "Removes fear, and gives bonus to hit and 10 more HP for a while.";
8739 if (info) return info_duration(base, base);
8743 set_hero(randint1(base) + base, FALSE);
8752 if (name) return "¼ö¤¤Â໶";
8753 if (desc) return "¥¢¥¤¥Æ¥à¤Ë¤«¤«¤Ã¤¿¶¯ÎϤʼö¤¤¤ò²ò½ü¤¹¤ë¡£";
8755 if (name) return "Dispel Curse";
8756 if (desc) return "Removes normal and heavy curse from equipped items.";
8762 if (remove_all_curse())
8765 msg_print("狼¤Ë¸«¼é¤é¤ì¤Æ¤¤¤ë¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£");
8767 msg_print("You feel as if someone is watching over you.");
8776 if (name) return "¼Ù°ÄÉÊü";
8777 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ò¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
8779 if (name) return "Banish Evil";
8780 if (desc) return "Teleports all evil monsters in sight away unless resisted.";
8786 if (info) return info_power(power);
8790 if (banish_evil(power))
8793 msg_print("¿ÀÀ»¤ÊÎϤ¬¼Ù°¤òÂǤÁʧ¤Ã¤¿¡ª");
8795 msg_print("The holy power banishes evil!");
8805 if (name) return "¥Ï¥ë¥Þ¥²¥É¥ó";
8806 if (desc) return "¼þÊդΥ¢¥¤¥Æ¥à¡¢¥â¥ó¥¹¥¿¡¼¡¢ÃÏ·Á¤òÇ˲õ¤¹¤ë¡£";
8808 if (name) return "Armageddon";
8809 if (desc) return "Destroy everything in nearby area.";
8818 destroy_area(py, px, base + randint1(sides), FALSE);
8825 if (name) return "ÌܤˤÏÌܤò";
8826 if (desc) return "°ìÄê»þ´Ö¡¢¼«Ê¬¤¬¥À¥á¡¼¥¸¤ò¼õ¤±¤¿¤È¤¤Ë¹¶·â¤ò¹Ô¤Ã¤¿¥â¥ó¥¹¥¿¡¼¤ËÂФ·¤ÆƱÅù¤Î¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
8828 if (name) return "An Eye for an Eye";
8829 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.";
8835 if (info) return info_duration(base, base);
8839 set_tim_eyeeye(randint1(base) + base, FALSE);
8846 if (name) return "¿À¤ÎÅܤê";
8847 if (desc) return "¥¿¡¼¥²¥Ã¥È¤Î¼þ°Ï¤Ëʬ²ò¤Îµå¤ò¿¿ôÍî¤È¤¹¡£";
8849 if (name) return "Wrath of the God";
8850 if (desc) return "Drops many balls of disintegration near the target.";
8854 int dam = plev * 3 + 25;
8857 if (info) return info_multi_damage(dam);
8861 if (!cast_wrath_of_the_god(dam, rad)) return NULL;
8868 if (name) return "¿À°Ò";
8869 if (desc) return "ÎÙÀܤ¹¤ë¥â¥ó¥¹¥¿¡¼¤ËÀ»¤Ê¤ë¥À¥á¡¼¥¸¤òÍ¿¤¨¡¢»ë³¦Æâ¤Î¥â¥ó¥¹¥¿¡¼¤Ë¥À¥á¡¼¥¸¡¢¸ºÂ®¡¢Û¯Û°¡¢º®Í𡢶²ÉÝ¡¢Ì²¤ê¤òÍ¿¤¨¤ë¡£¤µ¤é¤ËÂÎÎϤò²óÉü¤¹¤ë¡£";
8871 if (name) return "Divine Intervention";
8872 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.";
8876 int b_dam = plev * 11;
8877 int d_dam = plev * 4;
8879 int power = plev * 4;
8882 if (info) return format("²ó%d/»%d+%d", heal, d_dam, b_dam/2);
8884 if (info) return format("h%d/dm%d+%d", heal, d_dam, b_dam/2);
8889 project(0, 1, py, px, b_dam, GF_HOLY_FIRE, PROJECT_KILL, -1);
8890 dispel_monsters(d_dam);
8892 stun_monsters(power);
8893 confuse_monsters(power);
8894 turn_monsters(power);
8895 stasis_monsters(power);
8903 if (name) return "À»Àï";
8904 if (desc) return "»ë³¦Æâ¤ÎÁ±Îɤʥâ¥ó¥¹¥¿¡¼¤ò¥Ú¥Ã¥È¤Ë¤·¤è¤¦¤È¤·¡¢¤Ê¤é¤Ê¤«¤Ã¤¿¾ì¹çµÚ¤ÓÁ±ÎɤǤʤ¤¥â¥ó¥¹¥¿¡¼¤ò¶²Éݤµ¤»¤ë¡£¤µ¤é¤Ë¿¿ô¤Î²Ã®¤µ¤ì¤¿µ³»Î¤ò¾¤´¤·¡¢¥Ò¡¼¥í¡¼¡¢½ËÊ¡¡¢²Ã®¡¢Âмٰ·ë³¦¤òÆÀ¤ë¡£";
8906 if (name) return "Crusade";
8907 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.";
8914 int sp_sides = 20 + plev;
8919 for (i = 0; i < 12; i++)
8926 scatter(&my, &mx, py, px, 4, 0);
8928 /* Require empty grids */
8929 if (cave_empty_bold2(my, mx)) break;
8931 if (attempt < 0) continue;
8932 summon_specific(-1, my, mx, plev, SUMMON_KNIGHTS, (PM_ALLOW_GROUP | PM_FORCE_PET | PM_HASTE));
8934 set_hero(randint1(base) + base, FALSE);
8935 set_blessed(randint1(base) + base, FALSE);
8936 set_fast(randint1(sp_sides) + sp_base, FALSE);
8937 set_protevil(randint1(base) + base, FALSE);
8948 static cptr do_music_spell(int spell, int mode)
8950 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
8951 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
8952 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
8953 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
8954 bool fail = (mode == SPELL_FAIL) ? TRUE : FALSE;
8955 bool cont = (mode == SPELL_CONT) ? TRUE : FALSE;
8956 bool stop = (mode == SPELL_STOP) ? TRUE : FALSE;
8959 static const char s_dam[] = "»½ý:";
8961 static const char s_dam[] = "dam ";
8965 int plev = p_ptr->lev;
8971 if (name) return "ÃÙÆߤβÎ";
8972 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò¸ºÂ®¤µ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
8974 if (name) return "Song of Holding";
8975 if (desc) return "Attempts to slow all monsters in sight.";
8978 /* Stop singing before start another */
8979 if (cast || fail) stop_singing();
8984 msg_print("¤æ¤Ã¤¯¤ê¤È¤·¤¿¥á¥í¥Ç¥£¤ò¸ý¤º¤µ¤ß»Ï¤á¤¿¡¥¡¥¡¥");
8986 msg_print("You start humming a slow, steady melody...");
8988 start_singing(spell, MUSIC_SLOW);
8994 if (info) return info_power(power);
9005 if (name) return "½ËÊ¡¤Î²Î";
9006 if (desc) return "Ì¿ÃæΨ¤ÈAC¤Î¥Ü¡¼¥Ê¥¹¤òÆÀ¤ë¡£";
9008 if (name) return "Song of Blessing";
9009 if (desc) return "Gives bonus to hit and AC for a few turns.";
9012 /* Stop singing before start another */
9013 if (cast || fail) stop_singing();
9018 msg_print("¸·¤«¤Ê¥á¥í¥Ç¥£¤òÁդǻϤ᤿¡¥¡¥¡¥");
9020 msg_print("The holy power of the Music of the Ainur enters you...");
9022 start_singing(spell, MUSIC_BLESS);
9027 if (!p_ptr->blessed)
9030 msg_print("¹â·é¤Êµ¤Ê¬¤¬¾Ã¤¨¼º¤»¤¿¡£");
9032 msg_print("The prayer has expired.");
9041 if (name) return "Êø²õ¤Î²»¿§";
9042 if (desc) return "¹ì²»¤Î¥Ü¥ë¥È¤òÊü¤Ä¡£";
9044 if (name) return "Wrecking Note";
9045 if (desc) return "Fires a bolt of sound.";
9048 /* Stop singing before start another */
9049 if (cast || fail) stop_singing();
9052 int dice = 4 + (plev - 1) / 5;
9055 if (info) return info_damage(dice, sides, 0);
9059 if (!get_aim_dir(&dir)) return NULL;
9061 fire_bolt(GF_SOUND, dir, damroll(dice, sides));
9068 if (name) return "Û¯Û°¤ÎÀûΧ";
9069 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤òÛ¯Û°¤µ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
9071 if (name) return "Stun Pattern";
9072 if (desc) return "Attempts to stun all monsters in sight.";
9075 /* Stop singing before start another */
9076 if (cast || fail) stop_singing();
9081 msg_print("âÁÏǤµ¤»¤ë¥á¥í¥Ç¥£¤òÁդǻϤ᤿¡¥¡¥¡¥");
9083 msg_print("You weave a pattern of sounds to bewilder and daze...");
9085 start_singing(spell, MUSIC_STUN);
9089 int dice = plev / 10;
9092 if (info) return info_power_dice(dice, sides);
9096 stun_monsters(damroll(dice, sides));
9104 if (name) return "À¸Ì¿¤Îή¤ì";
9105 if (desc) return "ÂÎÎϤò¾¯¤·²óÉü¤µ¤»¤ë¡£";
9107 if (name) return "Flow of Life";
9108 if (desc) return "Heals HP a little.";
9111 /* Stop singing before start another */
9112 if (cast || fail) stop_singing();
9117 msg_print("²Î¤òÄ̤·¤ÆÂΤ˳赤¤¬Ìá¤Ã¤Æ¤¤¿¡¥¡¥¡¥");
9119 msg_print("Life flows through you as you sing a song of healing...");
9121 start_singing(spell, MUSIC_L_LIFE);
9128 if (info) return info_heal(dice, sides, 0);
9132 hp_player(damroll(dice, sides));
9140 if (name) return "ÂÀÍۤβÎ";
9141 if (desc) return "¸÷¸»¤¬¾È¤é¤·¤Æ¤¤¤ëÈϰϤ«Éô²°Á´ÂΤò±Êµ×¤ËÌÀ¤ë¤¯¤¹¤ë¡£";
9143 if (name) return "Song of the Sun";
9144 if (desc) return "Lights up nearby area and the inside of a room permanently.";
9147 /* Stop singing before start another */
9148 if (cast || fail) stop_singing();
9152 int sides = plev / 2;
9153 int rad = plev / 10 + 1;
9155 if (info) return info_damage(dice, sides, 0);
9160 msg_print("¸÷¤êµ±¤¯²Î¤¬ÊÕ¤ê¤ò¾È¤é¤·¤¿¡£");
9162 msg_print("Your uplifting song brings brightness to dark places...");
9165 lite_area(damroll(dice, sides), rad);
9172 if (name) return "¶²ÉݤβÎ";
9173 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò¶²Éݤµ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
9175 if (name) return "Song of Fear";
9176 if (desc) return "Attempts to scare all monsters in sight.";
9179 /* Stop singing before start another */
9180 if (cast || fail) stop_singing();
9185 msg_print("¤ª¤É¤í¤ª¤É¤í¤·¤¤¥á¥í¥Ç¥£¤òÁդǻϤ᤿¡¥¡¥¡¥");
9187 msg_print("You start weaving a fearful pattern...");
9189 start_singing(spell, MUSIC_FEAR);
9195 if (info) return info_power(power);
9199 project_hack(GF_TURN_ALL, power);
9207 if (name) return "À襤¤Î²Î";
9208 if (desc) return "¥Ò¡¼¥í¡¼µ¤Ê¬¤Ë¤Ê¤ë¡£";
9210 if (name) return "Heroic Ballad";
9211 if (desc) return "Removes fear, and gives bonus to hit and 10 more HP for a while.";
9214 /* Stop singing before start another */
9215 if (cast || fail) stop_singing();
9220 msg_print("·ã¤·¤¤À襤¤Î²Î¤ò²Î¤Ã¤¿¡¥¡¥¡¥");
9222 msg_print("You start singing a song of intense fighting...");
9225 (void)hp_player(10);
9226 (void)set_afraid(0);
9228 /* Recalculate hitpoints */
9229 p_ptr->update |= (PU_HP);
9231 start_singing(spell, MUSIC_HERO);
9239 msg_print("¥Ò¡¼¥í¡¼¤Îµ¤Ê¬¤¬¾Ã¤¨¼º¤»¤¿¡£");
9241 msg_print("The heroism wears off.");
9243 /* Recalculate hitpoints */
9244 p_ptr->update |= (PU_HP);
9252 if (name) return "ÎîŪÃγÐ";
9253 if (desc) return "¶á¤¯¤Îæ«/Èâ/³¬Ãʤò´¶ÃΤ¹¤ë¡£¥ì¥Ù¥ë15¤ÇÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¡¢20¤ÇºâÊõ¤È¥¢¥¤¥Æ¥à¤ò´¶ÃΤǤ¤ë¤è¤¦¤Ë¤Ê¤ë¡£¥ì¥Ù¥ë25¤Ç¼þÊÕ¤ÎÃÏ·Á¤ò´¶ÃΤ·¡¢40¤Ç¤½¤Î³¬Á´ÂΤò±Êµ×¤Ë¾È¤é¤·¡¢¥À¥ó¥¸¥ç¥óÆâ¤Î¤¹¤Ù¤Æ¤Î¥¢¥¤¥Æ¥à¤ò´¶ÃΤ¹¤ë¡£¤³¤Î¸ú²Ì¤Ï²Î¤¤Â³¤±¤ë¤³¤È¤Ç½ç¤Ëµ¯¤³¤ë¡£";
9255 if (name) return "Clairaudience";
9256 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.";
9259 /* Stop singing before start another */
9260 if (cast || fail) stop_singing();
9265 msg_print("ÀŤ«¤Ê²»³Ú¤¬´¶³Ð¤ò¸¦¤®À¡¤Þ¤µ¤»¤¿¡¥¡¥¡¥");
9267 msg_print("Your quiet music sharpens your sense of hearing...");
9270 /* Hack -- Initialize the turn count */
9271 p_ptr->magic_num1[2] = 0;
9273 start_singing(spell, MUSIC_DETECT);
9277 int rad = DETECT_RAD_DEFAULT;
9279 if (info) return info_radius(rad);
9283 int count = p_ptr->magic_num1[2];
9285 if (count >= 19) wiz_lite(FALSE);
9289 if (plev > 39 && count < 19)
9290 p_ptr->magic_num1[2] = count + 1;
9294 /* There are too many hidden treasure. So... */
9295 /* detect_treasure(rad); */
9296 detect_objects_gold(rad);
9297 detect_objects_normal(rad);
9299 if (plev > 24 && count < 11)
9300 p_ptr->magic_num1[2] = count + 1;
9304 detect_monsters_invis(rad);
9305 detect_monsters_normal(rad);
9307 if (plev > 19 && count < 6)
9308 p_ptr->magic_num1[2] = count + 1;
9310 detect_traps(rad, TRUE);
9314 if (plev > 14 && count < 3)
9315 p_ptr->magic_num1[2] = count + 1;
9323 if (name) return "º²¤Î²Î";
9324 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ËÂФ·¤ÆÀº¿À¹¶·â¤ò¹Ô¤¦¡£";
9326 if (name) return "Soul Shriek";
9327 if (desc) return "Damages all monsters in sight with PSI damages.";
9330 /* Stop singing before start another */
9331 if (cast || fail) stop_singing();
9336 msg_print("Àº¿À¤òDZ¤¸¶Ê¤²¤ë²Î¤ò²Î¤Ã¤¿¡¥¡¥¡¥");
9338 msg_print("You start singing a song of soul in pain...");
9340 start_singing(spell, MUSIC_PSI);
9345 int sides = plev * 3 / 2;
9347 if (info) return info_damage(dice, sides, 0);
9351 project_hack(GF_PSI, damroll(dice, sides));
9359 if (name) return "Ãμ±¤Î²Î";
9360 if (desc) return "¼«Ê¬¤Î¤¤¤ë¥Þ¥¹¤ÈÎÙ¤ê¤Î¥Þ¥¹¤ËÍî¤Á¤Æ¤¤¤ë¥¢¥¤¥Æ¥à¤ò´ÕÄꤹ¤ë¡£";
9362 if (name) return "Song of Lore";
9363 if (desc) return "Identifies all items which are in the adjacent squares.";
9366 /* Stop singing before start another */
9367 if (cast || fail) stop_singing();
9372 msg_print("¤³¤ÎÀ¤³¦¤ÎÃ챤¬Î®¤ì¹þ¤ó¤Ç¤¤¿¡¥¡¥¡¥");
9374 msg_print("You recall the rich lore of the world...");
9376 start_singing(spell, MUSIC_ID);
9382 if (info) return info_radius(rad);
9385 * ²Î¤Î³«»Ï»þ¤Ë¤â¸ú²Ìȯư¡§
9386 * MPÉÔ¤ǴÕÄ꤬ȯư¤µ¤ì¤ëÁ°¤Ë²Î¤¬ÃæÃǤ·¤Æ¤·¤Þ¤¦¤Î¤òËɻߡ£
9390 project(0, rad, py, px, 0, GF_IDENTIFY, PROJECT_ITEM, -1);
9398 if (name) return "±£ÆۤβÎ";
9399 if (desc) return "±£Ì©¹ÔưǽÎϤò¾å¾º¤µ¤»¤ë¡£";
9401 if (name) return "Hiding Tune";
9402 if (desc) return "Gives improved stealth.";
9405 /* Stop singing before start another */
9406 if (cast || fail) stop_singing();
9411 msg_print("¤¢¤Ê¤¿¤Î»Ñ¤¬·Ê¿§¤Ë¤È¤±¤³¤ó¤Ç¤¤¤Ã¤¿¡¥¡¥¡¥");
9413 msg_print("Your song carries you beyond the sight of mortal eyes...");
9415 start_singing(spell, MUSIC_STEALTH);
9420 if (!p_ptr->tim_stealth)
9423 msg_print("»Ñ¤¬¤Ï¤Ã¤¤ê¤È¸«¤¨¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£");
9425 msg_print("You are no longer hided.");
9434 if (name) return "¸¸±Æ¤ÎÀûΧ";
9435 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤òº®Í𤵤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
9437 if (name) return "Illusion Pattern";
9438 if (desc) return "Attempts to confuse all monsters in sight.";
9441 /* Stop singing before start another */
9442 if (cast || fail) stop_singing();
9447 msg_print("ÊÕ¤ê°ìÌ̤˸¸±Æ¤¬¸½¤ì¤¿¡¥¡¥¡¥");
9449 msg_print("You weave a pattern of sounds to beguile and confuse...");
9451 start_singing(spell, MUSIC_CONF);
9455 int power = plev * 2;
9457 if (info) return info_power(power);
9461 confuse_monsters(power);
9469 if (name) return "ÇËÌǤ櫤Ó";
9470 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ËÂФ·¤Æ¹ì²»¹¶·â¤ò¹Ô¤¦¡£";
9472 if (name) return "Doomcall";
9473 if (desc) return "Damages all monsters in sight with booming sound.";
9476 /* Stop singing before start another */
9477 if (cast || fail) stop_singing();
9482 msg_print("¹ì²»¤¬¶Á¤¤¤¿¡¥¡¥¡¥");
9484 msg_print("The fury of the Downfall of Numenor lashes out...");
9486 start_singing(spell, MUSIC_SOUND);
9490 int dice = 10 + plev / 5;
9493 if (info) return info_damage(dice, sides, 0);
9497 project_hack(GF_SOUND, damroll(dice, sides));
9505 if (name) return "¥Õ¥£¥ê¥¨¥ë¤Î²Î";
9506 if (desc) return "¼þ°Ï¤Î»àÂΤä¹ü¤òÀ¸¤ÊÖ¤¹¡£";
9508 if (name) return "Firiel's Song";
9509 if (desc) return "Resurrects nearby corpse and skeletons. And makes these your pets.";
9513 /* Stop singing before start another */
9514 if (cast || fail) stop_singing();
9519 msg_print("À¸Ì¿¤ÈÉü³è¤Î¥Æ¡¼¥Þ¤òÁդǻϤ᤿¡¥¡¥¡¥");
9521 msg_print("The themes of life and revival are woven into your song...");
9524 animate_dead(0, py, px);
9531 if (name) return "ι¤ÎÃç´Ö";
9532 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò̥λ¤¹¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
9534 if (name) return "Fellowship Chant";
9535 if (desc) return "Attempts to charm all monsters in sight.";
9538 /* Stop singing before start another */
9539 if (cast || fail) stop_singing();
9544 msg_print("°Â¤é¤«¤Ê¥á¥í¥Ç¥£¤òÁդǻϤ᤿¡¥¡¥¡¥");
9546 msg_print("You weave a slow, soothing melody of imploration...");
9548 start_singing(spell, MUSIC_CHARM);
9552 int dice = 10 + plev / 15;
9555 if (info) return info_power_dice(dice, sides);
9559 charm_monsters(damroll(dice, sides));
9567 if (name) return "ʬ²ò²»ÇÈ";
9568 if (desc) return "Êɤò·¡¤ê¿Ê¤à¡£¼«Ê¬¤Î¸µ¤Î¥¢¥¤¥Æ¥à¤Ï¾øȯ¤¹¤ë¡£";
9570 if (name) return "Sound of disintegration";
9571 if (desc) return "Makes you be able to burrow into walls. Objects under your feet evaporate.";
9574 /* Stop singing before start another */
9575 if (cast || fail) stop_singing();
9580 msg_print("Ê´ºÕ¤¹¤ë¥á¥í¥Ç¥£¤òÁդǻϤ᤿¡¥¡¥¡¥");
9582 msg_print("You weave a violent pattern of sounds to break wall.");
9584 start_singing(spell, MUSIC_WALL);
9589 * ²Î¤Î³«»Ï»þ¤Ë¤â¸ú²Ìȯư¡§
9590 * MPÉÔ¤Ǹú²Ì¤¬È¯Æ°¤µ¤ì¤ëÁ°¤Ë²Î¤¬ÃæÃǤ·¤Æ¤·¤Þ¤¦¤Î¤òËɻߡ£
9594 project(0, 0, py, px,
9595 0, GF_DISINTEGRATE, PROJECT_KILL | PROJECT_ITEM | PROJECT_HIDE, -1);
9602 if (name) return "¸µÁÇÂÑÀ";
9603 if (desc) return "»À¡¢ÅÅ·â¡¢±ê¡¢Î䵤¡¢ÆǤËÂФ¹¤ëÂÑÀ¤òÆÀ¤ë¡£ÁõÈ÷¤Ë¤è¤ëÂÑÀ¤ËÎßÀѤ¹¤ë¡£";
9605 if (name) return "Finrod's Resistance";
9606 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.";
9609 /* Stop singing before start another */
9610 if (cast || fail) stop_singing();
9615 msg_print("¸µÁǤÎÎϤËÂФ¹¤ëǦÂѤβΤò²Î¤Ã¤¿¡£");
9617 msg_print("You sing a song of perseverance against powers...");
9619 start_singing(spell, MUSIC_RESIST);
9624 if (!p_ptr->oppose_acid)
9627 msg_print("»À¤Ø¤ÎÂÑÀ¤¬Çö¤ì¤¿µ¤¤¬¤¹¤ë¡£");
9629 msg_print("You feel less resistant to acid.");
9633 if (!p_ptr->oppose_elec)
9636 msg_print("ÅÅ·â¤Ø¤ÎÂÑÀ¤¬Çö¤ì¤¿µ¤¤¬¤¹¤ë¡£");
9638 msg_print("You feel less resistant to elec.");
9642 if (!p_ptr->oppose_fire)
9645 msg_print("²Ð¤Ø¤ÎÂÑÀ¤¬Çö¤ì¤¿µ¤¤¬¤¹¤ë¡£");
9647 msg_print("You feel less resistant to fire.");
9651 if (!p_ptr->oppose_cold)
9654 msg_print("Î䵤¤Ø¤ÎÂÑÀ¤¬Çö¤ì¤¿µ¤¤¬¤¹¤ë¡£");
9656 msg_print("You feel less resistant to cold.");
9660 if (!p_ptr->oppose_pois)
9663 msg_print("ÆǤؤÎÂÑÀ¤¬Çö¤ì¤¿µ¤¤¬¤¹¤ë¡£");
9665 msg_print("You feel less resistant to pois.");
9674 if (name) return "¥Û¥Ó¥Ã¥È¤Î¥á¥í¥Ç¥£";
9675 if (desc) return "²Ã®¤¹¤ë¡£";
9677 if (name) return "Hobbit Melodies";
9678 if (desc) return "Hastes you.";
9681 /* Stop singing before start another */
9682 if (cast || fail) stop_singing();
9687 msg_print("·Ú²÷¤Ê²Î¤ò¸ý¤º¤µ¤ß»Ï¤á¤¿¡¥¡¥¡¥");
9689 msg_print("You start singing joyful pop song...");
9691 start_singing(spell, MUSIC_SPEED);
9699 msg_print("Æ°¤¤ÎÁÇÁᤵ¤¬¤Ê¤¯¤Ê¤Ã¤¿¤è¤¦¤À¡£");
9701 msg_print("You feel yourself slow down.");
9710 if (name) return "ÏĤó¤ÀÀ¤³¦";
9711 if (desc) return "¶á¤¯¤Î¥â¥ó¥¹¥¿¡¼¤ò¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
9713 if (name) return "World Contortion";
9714 if (desc) return "Teleports all nearby monsters away unless resisted.";
9718 int rad = plev / 15 + 1;
9719 int power = plev * 3 + 1;
9721 if (info) return info_radius(rad);
9723 /* Stop singing before start another */
9724 if (cast || fail) stop_singing();
9729 msg_print("²Î¤¬¶õ´Ö¤òÏĤ᤿¡¥¡¥¡¥");
9731 msg_print("Reality whirls wildly as you sing a dizzying melody...");
9734 project(0, rad, py, px, power, GF_AWAY_ALL, PROJECT_KILL, -1);
9741 if (name) return "Â໶¤Î²Î";
9742 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ËÆäËÂ礤ʥÀ¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
9744 if (name) return "Dispelling chant";
9745 if (desc) return "Damages all monsters in sight. Hurts evil monsters greatly.";
9748 /* Stop singing before start another */
9749 if (cast || fail) stop_singing();
9754 msg_print("ÂѤ¨¤é¤ì¤Ê¤¤ÉÔ¶¨Ï²»¤¬Å¨¤òÀÕ¤áΩ¤Æ¤¿¡¥¡¥¡¥");
9756 msg_print("You cry out in an ear-wracking voice...");
9758 start_singing(spell, MUSIC_DISPEL);
9762 int m_sides = plev * 3;
9763 int e_sides = plev * 3;
9765 if (info) return format("%s1d%d+1d%d", s_dam, m_sides, e_sides);
9769 dispel_monsters(randint1(m_sides));
9770 dispel_evil(randint1(e_sides));
9777 if (name) return "¥µ¥ë¥Þ¥ó¤Î´Å¸À";
9778 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤ò¸ºÂ®¤µ¤»¡¢Ì²¤é¤»¤è¤¦¤È¤¹¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
9780 if (name) return "The Voice of Saruman";
9781 if (desc) return "Attempts to slow and sleep all monsters in sight.";
9784 /* Stop singing before start another */
9785 if (cast || fail) stop_singing();
9790 msg_print("Í¥¤·¤¯¡¢Ì¥ÎÏŪ¤Ê²Î¤ò¸ý¤º¤µ¤ß»Ï¤á¤¿¡¥¡¥¡¥");
9792 msg_print("You start humming a gentle and attractive song...");
9794 start_singing(spell, MUSIC_SARUMAN);
9800 if (info) return info_power(power);
9813 if (name) return "Íò¤Î²»¿§";
9814 if (desc) return "¹ì²»¤Î¥Ó¡¼¥à¤òÊü¤Ä¡£";
9816 if (name) return "Song of the Tempest";
9817 if (desc) return "Fires a beam of sound.";
9821 int dice = 15 + (plev - 1) / 2;
9824 if (info) return info_damage(dice, sides, 0);
9826 /* Stop singing before start another */
9827 if (cast || fail) stop_singing();
9831 if (!get_aim_dir(&dir)) return NULL;
9833 fire_beam(GF_SOUND, dir, damroll(dice, sides));
9840 if (name) return "¤â¤¦°ì¤Ä¤ÎÀ¤³¦";
9841 if (desc) return "¸½ºß¤Î³¬¤òºÆ¹½À®¤¹¤ë¡£";
9843 if (name) return "Ambarkanta";
9844 if (desc) return "Recreates current dungeon level.";
9851 if (info) return info_delay(base, sides);
9853 /* Stop singing before start another */
9854 if (cast || fail) stop_singing();
9859 msg_print("¼þ°Ï¤¬ÊѲ½¤·»Ï¤á¤¿¡¥¡¥¡¥");
9861 msg_print("You sing of the primeval shaping of Middle-earth...");
9871 if (name) return "Ç˲õ¤ÎÀûΧ";
9872 if (desc) return "¼þ°Ï¤Î¥À¥ó¥¸¥ç¥ó¤òÍɤ餷¡¢ÊɤȾ²¤ò¥é¥ó¥À¥à¤ËÆþ¤ìÊѤ¨¤ë¡£";
9874 if (name) return "Wrecking Pattern";
9875 if (desc) return "Shakes dungeon structure, and results in random swapping of floors and walls.";
9878 /* Stop singing before start another */
9879 if (cast || fail) stop_singing();
9884 msg_print("Ç˲õŪ¤Ê²Î¤¬¶Á¤¤ï¤¿¤Ã¤¿¡¥¡¥¡¥");
9886 msg_print("You weave a pattern of sounds to contort and shatter...");
9888 start_singing(spell, MUSIC_QUAKE);
9894 if (info) return info_radius(rad);
9898 earthquake(py, px, 10);
9907 if (name) return "ÄäÂڤβÎ";
9908 if (desc) return "»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤òËãá㤵¤»¤è¤¦¤È¤¹¤ë¡£Äñ¹³¤µ¤ì¤ë¤È̵¸ú¡£";
9910 if (name) return "Stationary Shriek";
9911 if (desc) return "Attempts to freeze all monsters in sight.";
9914 /* Stop singing before start another */
9915 if (cast || fail) stop_singing();
9920 msg_print("¤æ¤Ã¤¯¤ê¤È¤·¤¿¥á¥í¥Ç¥£¤òÁդǻϤ᤿¡¥¡¥¡¥");
9922 msg_print("You weave a very slow pattern which is almost likely to stop...");
9924 start_singing(spell, MUSIC_STASIS);
9928 int power = plev * 4;
9930 if (info) return info_power(power);
9934 stasis_monsters(power);
9942 if (name) return "¼é¤ê¤Î²Î";
9943 if (desc) return "¼«Ê¬¤Î¤¤¤ë¾²¤Î¾å¤Ë¡¢¥â¥ó¥¹¥¿¡¼¤¬Ä̤êÈ´¤±¤¿¤ê¾¤´¤µ¤ì¤¿¤ê¤¹¤ë¤³¤È¤¬¤Ç¤¤Ê¤¯¤Ê¤ë¥ë¡¼¥ó¤òÉÁ¤¯¡£";
9945 if (name) return "Endurance";
9946 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.";
9950 /* Stop singing before start another */
9951 if (cast || fail) stop_singing();
9956 msg_print("²Î¤¬¿ÀÀ»¤Ê¾ì¤òºî¤ê½Ð¤·¤¿¡¥¡¥¡¥");
9958 msg_print("The holy power of the Music is creating sacred field...");
9968 if (name) return "±Ñͺ¤Î»í";
9969 if (desc) return "²Ã®¤·¡¢¥Ò¡¼¥í¡¼µ¤Ê¬¤Ë¤Ê¤ê¡¢»ë³¦Æâ¤ÎÁ´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
9971 if (name) return "The Hero's Poem";
9972 if (desc) return "Hastes you. Gives heroism. Damages all monsters in sight.";
9975 /* Stop singing before start another */
9976 if (cast || fail) stop_singing();
9981 msg_print("±Ñͺ¤Î²Î¤ò¸ý¤º¤µ¤ó¤À¡¥¡¥¡¥");
9983 msg_print("You chant a powerful, heroic call to arms...");
9985 (void)hp_player(10);
9986 (void)set_afraid(0);
9988 /* Recalculate hitpoints */
9989 p_ptr->update |= (PU_HP);
9991 start_singing(spell, MUSIC_SHERO);
9999 msg_print("¥Ò¡¼¥í¡¼¤Îµ¤Ê¬¤¬¾Ã¤¨¼º¤»¤¿¡£");
10001 msg_print("The heroism wears off.");
10003 /* Recalculate hitpoints */
10004 p_ptr->update |= (PU_HP);
10010 msg_print("Æ°¤¤ÎÁÇÁᤵ¤¬¤Ê¤¯¤Ê¤Ã¤¿¤è¤¦¤À¡£");
10012 msg_print("You feel yourself slow down.");
10019 int sides = plev * 3;
10021 if (info) return info_damage(dice, sides, 0);
10025 dispel_monsters(damroll(dice, sides));
10032 if (name) return "¥ä¥ô¥¡¥ó¥Ê¤Î½õ¤±";
10033 if (desc) return "¶¯ÎϤʲóÉü¤Î²Î¤Ç¡¢Éé½ý¤ÈÛ¯Û°¾õÂÖ¤âÁ´²÷¤¹¤ë¡£";
10035 if (name) return "Relief of Yavanna";
10036 if (desc) return "Powerful healing song. Also heals cut and stun completely.";
10039 /* Stop singing before start another */
10040 if (cast || fail) stop_singing();
10045 msg_print("²Î¤òÄ̤·¤ÆÂΤ˳赤¤¬Ìá¤Ã¤Æ¤¤¿¡¥¡¥¡¥");
10047 msg_print("Life flows through you as you sing the song...");
10049 start_singing(spell, MUSIC_H_LIFE);
10056 if (info) return info_heal(dice, sides, 0);
10060 hp_player(damroll(dice, sides));
10070 if (name) return "ºÆÀ¸¤Î²Î";
10071 if (desc) return "¤¹¤Ù¤Æ¤Î¥¹¥Æ¡¼¥¿¥¹¤È·Ð¸³Ãͤò²óÉü¤¹¤ë¡£";
10073 if (name) return "Goddess' rebirth";
10074 if (desc) return "Restores all stats and experience.";
10078 /* Stop singing before start another */
10079 if (cast || fail) stop_singing();
10084 msg_print("°Å¹õ¤ÎÃæ¤Ë¸÷¤ÈÈþ¤ò¤Õ¤ê¤Þ¤¤¤¿¡£ÂΤ¬¸µ¤Î³èÎϤò¼è¤êÌᤷ¤¿¡£");
10086 msg_print("You strewed light and beauty in the dark as you sing. You feel refreshed.");
10088 (void)do_res_stat(A_STR);
10089 (void)do_res_stat(A_INT);
10090 (void)do_res_stat(A_WIS);
10091 (void)do_res_stat(A_DEX);
10092 (void)do_res_stat(A_CON);
10093 (void)do_res_stat(A_CHR);
10094 (void)restore_level();
10101 if (name) return "¥µ¥¦¥í¥ó¤ÎËâ½Ñ";
10102 if (desc) return "Èó¾ï¤Ë¶¯ÎϤǤ´¤¯¾®¤µ¤¤¹ì²»¤Îµå¤òÊü¤Ä¡£";
10104 if (name) return "Wizardry of Sauron";
10105 if (desc) return "Fires an extremely powerful tiny ball of sound.";
10109 int dice = 50 + plev;
10113 if (info) return info_damage(dice, sides, 0);
10115 /* Stop singing before start another */
10116 if (cast || fail) stop_singing();
10120 if (!get_aim_dir(&dir)) return NULL;
10122 fire_ball(GF_SOUND, dir, damroll(dice, sides), rad);
10129 if (name) return "¥Õ¥£¥ó¥´¥ë¥Õ¥£¥ó¤ÎÄ©Àï";
10130 if (desc) return "¥À¥á¡¼¥¸¤ò¼õ¤±¤Ê¤¯¤Ê¤ë¥Ð¥ê¥¢¤òÄ¥¤ë¡£";
10132 if (name) return "Fingolfin's Challenge";
10133 if (desc) return "Generates barrier which completely protect you from almost all damages. Takes a few your turns when the barrier breaks.";
10136 /* Stop singing before start another */
10137 if (cast || fail) stop_singing();
10142 msg_print("¥Õ¥£¥ó¥´¥ë¥Õ¥£¥ó¤Î̽²¦¤Ø¤ÎÄ©Àï¤ò²Î¤Ã¤¿¡¥¡¥¡¥");
10144 msg_print("You recall the valor of Fingolfin's challenge to the Dark Lord...");
10148 p_ptr->redraw |= (PR_MAP);
10150 /* Update monsters */
10151 p_ptr->update |= (PU_MONSTERS);
10154 p_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
10156 start_singing(spell, MUSIC_INVULN);
10161 if (!p_ptr->invuln)
10164 msg_print("̵Ũ¤Ç¤Ï¤Ê¤¯¤Ê¤Ã¤¿¡£");
10166 msg_print("The invulnerability wears off.");
10169 p_ptr->redraw |= (PR_MAP);
10171 /* Update monsters */
10172 p_ptr->update |= (PU_MONSTERS);
10175 p_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
10186 static cptr do_hissatsu_spell(int spell, int mode)
10188 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
10189 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
10190 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
10193 int plev = p_ptr->lev;
10199 if (name) return "ÈôÈÓ¹Ë";
10200 if (desc) return "2¥Þ¥¹Î¥¤ì¤¿¤È¤³¤í¤Ë¤¤¤ë¥â¥ó¥¹¥¿¡¼¤ò¹¶·â¤¹¤ë¡£";
10202 if (name) return "Tobi-Izuna";
10203 if (desc) return "Attacks a two squares distant monster.";
10208 project_length = 2;
10209 if (!get_aim_dir(&dir)) return NULL;
10211 project_hook(GF_ATTACK, dir, HISSATSU_2, PROJECT_STOP | PROJECT_KILL);
10217 if (name) return "¸Þ·î±«»Â¤ê";
10218 if (desc) return "3Êý¸þ¤ËÂФ·¤Æ¹¶·â¤¹¤ë¡£";
10220 if (name) return "3-Way Attack";
10221 if (desc) return "Attacks in 3 directions in one time.";
10229 if (!get_rep_dir2(&dir)) return NULL;
10230 if (dir == 5) return NULL;
10232 for (cdir = 0;cdir < 8; cdir++)
10234 if (cdd[cdir] == dir) break;
10237 if (cdir == 8) return NULL;
10239 y = py + ddy_cdd[cdir];
10240 x = px + ddx_cdd[cdir];
10241 if (cave[y][x].m_idx)
10242 py_attack(y, x, 0);
10245 msg_print("¹¶·â¤Ï¶õ¤òÀڤä¿¡£");
10247 msg_print("You attack the empty air.");
10249 y = py + ddy_cdd[(cdir + 7) % 8];
10250 x = px + ddx_cdd[(cdir + 7) % 8];
10251 if (cave[y][x].m_idx)
10252 py_attack(y, x, 0);
10255 msg_print("¹¶·â¤Ï¶õ¤òÀڤä¿¡£");
10257 msg_print("You attack the empty air.");
10259 y = py + ddy_cdd[(cdir + 1) % 8];
10260 x = px + ddx_cdd[(cdir + 1) % 8];
10261 if (cave[y][x].m_idx)
10262 py_attack(y, x, 0);
10265 msg_print("¹¶·â¤Ï¶õ¤òÀڤä¿¡£");
10267 msg_print("You attack the empty air.");
10274 if (name) return "¥Ö¡¼¥á¥é¥ó";
10275 if (desc) return "Éð´ï¤ò¼ê¸µ¤ËÌá¤Ã¤Æ¤¯¤ë¤è¤¦¤ËÅꤲ¤ë¡£Ìá¤Ã¤Æ¤³¤Ê¤¤¤³¤È¤â¤¢¤ë¡£";
10277 if (name) return "Boomerang";
10278 if (desc) return "Throws current weapon. And it'll return to your hand unless failed.";
10283 if (!do_cmd_throw_aux(1, TRUE, -1)) return NULL;
10289 if (name) return "±ëÎî";
10290 if (desc) return "²Ð±êÂÑÀ¤Î¤Ê¤¤¥â¥ó¥¹¥¿¡¼¤ËÂç¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
10292 if (name) return "Burning Strike";
10293 if (desc) return "Attacks a monster with more damage unless it has resistance to fire.";
10300 if (!get_rep_dir2(&dir)) return NULL;
10301 if (dir == 5) return NULL;
10306 if (cave[y][x].m_idx)
10307 py_attack(y, x, HISSATSU_FIRE);
10311 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10313 msg_print("There is no monster.");
10322 if (name) return "»¦µ¤´¶ÃÎ";
10323 if (desc) return "¶á¤¯¤Î»×¹Í¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¥â¥ó¥¹¥¿¡¼¤ò´¶ÃΤ¹¤ë¡£";
10325 if (name) return "Detect Ferocity";
10326 if (desc) return "Detects all monsters except mindless in your vicinity.";
10331 detect_monsters_mind(DETECT_RAD_DEFAULT);
10337 if (name) return "¤ß¤ÍÂǤÁ";
10338 if (desc) return "Áê¼ê¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤Ê¤¤¤¬¡¢Û¯Û°¤È¤µ¤»¤ë¡£";
10340 if (name) return "Strike to Stun";
10341 if (desc) return "Attempts to stun a monster in the adjacent.";
10348 if (!get_rep_dir2(&dir)) return NULL;
10349 if (dir == 5) return NULL;
10354 if (cave[y][x].m_idx)
10355 py_attack(y, x, HISSATSU_MINEUCHI);
10359 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10361 msg_print("There is no monster.");
10370 if (name) return "¥«¥¦¥ó¥¿¡¼";
10371 if (desc) return "Áê¼ê¤Ë¹¶·â¤µ¤ì¤¿¤È¤¤ËÈ¿·â¤¹¤ë¡£È¿·â¤¹¤ë¤¿¤Ó¤ËMP¤ò¾ÃÈñ¡£";
10373 if (name) return "Counter";
10374 if (desc) return "Prepares to counterattack. When attack by a monster, strikes back using SP each time.";
10382 msg_print("¾èÇÏÃæ¤Ë¤Ï̵Íý¤À¡£");
10384 msg_print("You cannot do it when riding.");
10389 msg_print("Áê¼ê¤Î¹¶·â¤ËÂФ·¤Æ¿È¹½¤¨¤¿¡£");
10391 msg_print("You prepare to counter blow.");
10393 p_ptr->counter = TRUE;
10399 if (name) return "ʧ¤¤È´¤±";
10400 if (desc) return "¹¶·â¤·¤¿¸å¡¢È¿ÂЦ¤ËÈ´¤±¤ë¡£";
10402 if (name) return "Harainuke";
10403 if (desc) return "Attacks monster with your weapons normally, then move through counter side of the monster.";
10413 msg_print("¾èÇÏÃæ¤Ë¤Ï̵Íý¤À¡£");
10415 msg_print("You cannot do it when riding.");
10420 if (!get_rep_dir2(&dir)) return NULL;
10422 if (dir == 5) return NULL;
10426 if (!cave[y][x].m_idx)
10429 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10431 msg_print("There is no monster.");
10436 py_attack(y, x, 0);
10438 if (!player_can_enter(cave[y][x].feat, 0) || is_trap(cave[y][x].feat))
10444 if (player_can_enter(cave[y][x].feat, 0) && !is_trap(cave[y][x].feat) && !cave[y][x].m_idx)
10448 /* Move the player */
10449 (void)move_player_effect(y, x, MPE_FORGET_FLOW | MPE_HANDLE_STUFF | MPE_DONT_PICKUP);
10456 if (name) return "¥µ¡¼¥Ú¥ó¥Ä¥¿¥ó";
10457 if (desc) return "ÆÇÂÑÀ¤Î¤Ê¤¤¥â¥ó¥¹¥¿¡¼¤ËÂç¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
10459 if (name) return "Serpent's Tongue";
10460 if (desc) return "Attacks a monster with more damage unless it has resistance to poison.";
10467 if (!get_rep_dir2(&dir)) return NULL;
10468 if (dir == 5) return NULL;
10473 if (cave[y][x].m_idx)
10474 py_attack(y, x, HISSATSU_POISON);
10478 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10480 msg_print("There is no monster.");
10489 if (name) return "»ÂËâ·õÆõ¤ÎÂÀÅá";
10490 if (desc) return "À¸Ì¿¤Î¤Ê¤¤¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ËÂç¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¤¬¡¢Â¾¤Î¥â¥ó¥¹¥¿¡¼¤Ë¤ÏÁ´¤¯¸ú²Ì¤¬¤Ê¤¤¡£";
10492 if (name) return "Zammaken";
10493 if (desc) return "Attacks an evil unliving monster with great damage. No effect to other monsters.";
10500 if (!get_rep_dir2(&dir)) return NULL;
10501 if (dir == 5) return NULL;
10506 if (cave[y][x].m_idx)
10507 py_attack(y, x, HISSATSU_ZANMA);
10511 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10513 msg_print("There is no monster.");
10522 if (name) return "ÎöÉ÷·õ";
10523 if (desc) return "¹¶·â¤·¤¿Áê¼ê¤ò¸åÊý¤Ø¿á¤Èô¤Ð¤¹¡£";
10525 if (name) return "Wind Blast";
10526 if (desc) return "Attacks an adjacent monster, and blow it away.";
10533 if (!get_rep_dir2(&dir)) return NULL;
10534 if (dir == 5) return NULL;
10539 if (cave[y][x].m_idx)
10540 py_attack(y, x, 0);
10544 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10546 msg_print("There is no monster.");
10550 if (d_info[dungeon_type].flags1 & DF1_NO_MELEE)
10554 if (cave[y][x].m_idx)
10557 int ty = y, tx = x;
10558 int oy = y, ox = x;
10559 int m_idx = cave[y][x].m_idx;
10560 monster_type *m_ptr = &m_list[m_idx];
10563 monster_desc(m_name, m_ptr, 0);
10565 for (i = 0; i < 5; i++)
10569 if (cave_empty_bold(y, x))
10576 if ((ty != oy) || (tx != ox))
10579 msg_format("%s¤ò¿á¤Èô¤Ð¤·¤¿¡ª", m_name);
10581 msg_format("You blow %s away!", m_name);
10583 cave[oy][ox].m_idx = 0;
10584 cave[ty][tx].m_idx = m_idx;
10588 update_mon(m_idx, TRUE);
10592 if (r_info[m_ptr->r_idx].flags7 & (RF7_LITE_MASK | RF7_DARK_MASK))
10593 p_ptr->update |= (PU_MON_LITE);
10601 if (name) return "Åá¾¢¤ÎÌÜÍø¤";
10602 if (desc) return "Éð´ï¡¦Ëɶñ¤ò1¤Ä¼±Ê̤¹¤ë¡£¥ì¥Ù¥ë45°Ê¾å¤ÇÉð´ï¡¦Ëɶñ¤ÎǽÎϤò´°Á´¤ËÃΤ뤳¤È¤¬¤Ç¤¤ë¡£";
10604 if (name) return "Judge";
10605 if (desc) return "Identifies a weapon or armor. Or *identifies* these at level 45.";
10612 if (!identify_fully(TRUE)) return NULL;
10616 if (!ident_spell(TRUE)) return NULL;
10623 if (name) return "ÇË´ä»Â";
10624 if (desc) return "´ä¤ò²õ¤·¡¢´äÀзϤΥâ¥ó¥¹¥¿¡¼¤ËÂç¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
10626 if (name) return "Rock Smash";
10627 if (desc) return "Breaks rock. Or greatly damage a monster made by rocks.";
10634 if (!get_rep_dir2(&dir)) return NULL;
10635 if (dir == 5) return NULL;
10640 if (cave[y][x].m_idx)
10641 py_attack(y, x, HISSATSU_HAGAN);
10643 if (!cave_have_flag_bold(y, x, FF_HURT_ROCK)) break;
10645 /* Destroy the feature */
10646 cave_alter_feat(y, x, FF_HURT_ROCK);
10648 /* Update some things */
10649 p_ptr->update |= (PU_FLOW);
10655 if (name) return "Íð¤ìÀã·î²Ö";
10656 if (desc) return "¹¶·â²ó¿ô¤¬Áý¤¨¡¢Î䵤ÂÑÀ¤Î¤Ê¤¤¥â¥ó¥¹¥¿¡¼¤ËÂç¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
10658 if (name) return "Midare-Setsugekka";
10659 if (desc) return "Attacks a monster with increased number of attacks and more damage unless it has resistance to cold.";
10666 if (!get_rep_dir2(&dir)) return NULL;
10667 if (dir == 5) return NULL;
10672 if (cave[y][x].m_idx)
10673 py_attack(y, x, HISSATSU_COLD);
10677 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10679 msg_print("There is no monster.");
10688 if (name) return "µÞ½êÆͤ";
10689 if (desc) return "¥â¥ó¥¹¥¿¡¼¤ò°ì·â¤ÇÅݤ¹¹¶·â¤ò·«¤ê½Ð¤¹¡£¼ºÇÔ¤¹¤ë¤È1ÅÀ¤·¤«¥À¥á¡¼¥¸¤òÍ¿¤¨¤é¤ì¤Ê¤¤¡£";
10691 if (name) return "Spot Aiming";
10692 if (desc) return "Attempts to kill a monster instantly. If failed cause only 1HP of damage.";
10699 if (!get_rep_dir2(&dir)) return NULL;
10700 if (dir == 5) return NULL;
10705 if (cave[y][x].m_idx)
10706 py_attack(y, x, HISSATSU_KYUSHO);
10710 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10712 msg_print("There is no monster.");
10721 if (name) return "Ëâ¿À»Â¤ê";
10722 if (desc) return "²ñ¿´¤Î°ì·â¤Ç¹¶·â¤¹¤ë¡£¹¶·â¤¬¤«¤ï¤µ¤ì¤ä¤¹¤¤¡£";
10724 if (name) return "Majingiri";
10725 if (desc) return "Attempts to attack with critical hit. But this attack is easy to evade for a monster.";
10732 if (!get_rep_dir2(&dir)) return NULL;
10733 if (dir == 5) return NULL;
10738 if (cave[y][x].m_idx)
10739 py_attack(y, x, HISSATSU_MAJIN);
10743 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10745 msg_print("There is no monster.");
10754 if (name) return "¼Î¤Æ¿È";
10755 if (desc) return "¶¯ÎϤʹ¶·â¤ò·«¤ê½Ð¤¹¡£¼¡¤Î¥¿¡¼¥ó¤Þ¤Ç¤Î´Ö¡¢¿©¤é¤¦¥À¥á¡¼¥¸¤¬Áý¤¨¤ë¡£";
10757 if (name) return "Desperate Attack";
10758 if (desc) return "Attacks with all of your power. But all damages you take will be doubled for one turn.";
10765 if (!get_rep_dir2(&dir)) return NULL;
10766 if (dir == 5) return NULL;
10771 if (cave[y][x].m_idx)
10772 py_attack(y, x, HISSATSU_SUTEMI);
10776 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10778 msg_print("There is no monster.");
10782 p_ptr->sutemi = TRUE;
10788 if (name) return "Íë·âÏÉÄÞ»Â";
10789 if (desc) return "ÅÅ·âÂÑÀ¤Î¤Ê¤¤¥â¥ó¥¹¥¿¡¼¤ËÈó¾ï¤ËÂ礤¤¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
10791 if (name) return "Lightning Eagle";
10792 if (desc) return "Attacks a monster with more damage unless it has resistance to electricity.";
10799 if (!get_rep_dir2(&dir)) return NULL;
10800 if (dir == 5) return NULL;
10805 if (cave[y][x].m_idx)
10806 py_attack(y, x, HISSATSU_ELEC);
10810 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
10812 msg_print("There is no monster.");
10821 if (name) return "Æþ¿È";
10822 if (desc) return "ÁÇÁ᤯Áê¼ê¤Ë¶á´ó¤ê¹¶·â¤¹¤ë¡£";
10824 if (name) return "Rush Attack";
10825 if (desc) return "Steps close to a monster and attacks at a time.";
10830 if (!rush_attack(NULL)) return NULL;
10836 if (name) return "ÀÖή±²";
10837 if (desc) return "¼«Ê¬¼«¿È¤â½ý¤òºî¤ê¤Ä¤Ä¡¢¤½¤Î½ý¤¬¿¼¤¤¤Û¤ÉÂ礤¤°ÒÎϤÇÁ´Êý¸þ¤ÎŨ¤ò¹¶·â¤Ç¤¤ë¡£À¸¤¤Æ¤¤¤Ê¤¤¥â¥ó¥¹¥¿¡¼¤Ë¤Ï¸ú²Ì¤¬¤Ê¤¤¡£";
10839 if (name) return "Bloody Maelstrom";
10840 if (desc) return "Attacks all adjacent monsters with power corresponding to your cut status. Then increases your cut status. No effect to unliving monsters.";
10848 monster_type *m_ptr;
10850 if (p_ptr->cut < 300)
10851 set_cut(p_ptr->cut + 300);
10853 set_cut(p_ptr->cut * 2);
10855 for (dir = 0; dir < 8; dir++)
10857 y = py + ddy_ddd[dir];
10858 x = px + ddx_ddd[dir];
10859 c_ptr = &cave[y][x];
10861 /* Get the monster */
10862 m_ptr = &m_list[c_ptr->m_idx];
10864 /* Hack -- attack monsters */
10865 if (c_ptr->m_idx && (m_ptr->ml || cave_have_flag_bold(y, x, FF_PROJECT)))
10867 if (!monster_living(&r_info[m_ptr->r_idx]))
10871 monster_desc(m_name, m_ptr, 0);
10873 msg_format("%s¤Ë¤Ï¸ú²Ì¤¬¤Ê¤¤¡ª", m_name);
10875 msg_format("%s is unharmed!", m_name);
10878 else py_attack(y, x, HISSATSU_SEKIRYUKA);
10886 if (name) return "·ã¿Ì·â";
10887 if (desc) return "ÃϿ̤òµ¯¤³¤¹¡£";
10889 if (name) return "Earthquake Blow";
10890 if (desc) return "Shakes dungeon structure, and results in random swapping of floors and walls.";
10897 if (!get_rep_dir2(&dir)) return NULL;
10898 if (dir == 5) return NULL;
10903 if (cave[y][x].m_idx)
10904 py_attack(y, x, HISSATSU_QUAKE);
10906 earthquake(py, px, 10);
10912 if (name) return "ÃÏÁö¤ê";
10913 if (desc) return "¾×·âÇȤΥӡ¼¥à¤òÊü¤Ä¡£";
10915 if (name) return "Crack";
10916 if (desc) return "Fires a beam of shock wave.";
10921 int total_damage = 0, basedam, i;
10922 u32b flgs[TR_FLAG_SIZE];
10923 object_type *o_ptr;
10924 if (!get_aim_dir(&dir)) return NULL;
10926 msg_print("Éð´ï¤òÂ礤¯¿¶¤ê²¼¤í¤·¤¿¡£");
10928 msg_print("You swing your weapon downward.");
10930 for (i = 0; i < 2; i++)
10934 if (!buki_motteruka(INVEN_RARM+i)) break;
10935 o_ptr = &inventory[INVEN_RARM+i];
10936 basedam = (o_ptr->dd * (o_ptr->ds + 1)) * 50;
10937 damage = o_ptr->to_d * 100;
10938 object_flags(o_ptr, flgs);
10939 if ((o_ptr->name1 == ART_VORPAL_BLADE) || (o_ptr->name1 == ART_CHAINSWORD))
10945 else if (have_flag(flgs, TR_VORPAL))
10947 /* vorpal flag only */
10952 damage *= p_ptr->num_blow[i];
10953 total_damage += damage / 200;
10954 if (i) total_damage = total_damage*7/10;
10956 fire_beam(GF_FORCE, dir, total_damage);
10962 if (name) return "µ¤Ç÷¤Îͺ¶«¤Ó";
10963 if (desc) return "»ë³¦Æâ¤ÎÁ´¥â¥ó¥¹¥¿¡¼¤ËÂФ·¤Æ¹ì²»¤Î¹¶·â¤ò¹Ô¤¦¡£¤µ¤é¤Ë¡¢¶á¤¯¤Ë¤¤¤ë¥â¥ó¥¹¥¿¡¼¤òÅܤ餻¤ë¡£";
10965 if (name) return "War Cry";
10966 if (desc) return "Damages all monsters in sight with sound. Aggravate nearby monsters.";
10972 msg_print("ͺ¶«¤Ó¤ò¤¢¤²¤¿¡ª");
10974 msg_print("You roar out!");
10976 project_hack(GF_SOUND, randint1(plev * 3));
10977 aggravate_monsters(0);
10983 if (name) return "̵Áл°ÃÊ";
10984 if (desc) return "¶¯ÎϤÊ3Ãʹ¶·â¤ò·«¤ê½Ð¤¹¡£";
10986 if (name) return "Musou-Sandan";
10987 if (desc) return "Attacks with powerful 3 strikes.";
10994 if (!get_rep_dir2(&dir)) return NULL;
10995 if (dir == 5) return NULL;
10997 for (i = 0; i < 3; i++)
11003 monster_type *m_ptr;
11007 c_ptr = &cave[y][x];
11010 py_attack(y, x, HISSATSU_3DAN);
11014 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
11016 msg_print("There is no monster.");
11021 if (d_info[dungeon_type].flags1 & DF1_NO_MELEE)
11026 /* Monster is dead? */
11027 if (!c_ptr->m_idx) break;
11031 m_idx = c_ptr->m_idx;
11032 m_ptr = &m_list[m_idx];
11034 /* Monster cannot move back? */
11035 if (!monster_can_enter(ny, nx, &r_info[m_ptr->r_idx], 0))
11038 if (i < 2) msg_print(NULL);
11043 cave[ny][nx].m_idx = m_idx;
11047 update_mon(m_idx, TRUE);
11049 /* Redraw the old spot */
11052 /* Redraw the new spot */
11055 /* Player can move forward? */
11056 if (player_can_enter(c_ptr->feat, 0))
11058 /* Move the player */
11059 if (!move_player_effect(y, x, MPE_FORGET_FLOW | MPE_HANDLE_STUFF | MPE_DONT_PICKUP)) break;
11067 if (i < 2) msg_print(NULL);
11074 if (name) return "µÛ·ìµ´¤Î²ç";
11075 if (desc) return "¹¶·â¤·¤¿Áê¼ê¤ÎÂÎÎϤòµÛ¤¤¤È¤ê¡¢¼«Ê¬¤ÎÂÎÎϤò²óÉü¤µ¤»¤ë¡£À¸Ì¿¤ò»ý¤¿¤Ê¤¤¥â¥ó¥¹¥¿¡¼¤Ë¤ÏÄ̤¸¤Ê¤¤¡£";
11077 if (name) return "Vampire's Fang";
11078 if (desc) return "Attacks with vampiric strikes which absorbs HP from a monster and gives them to you. No effect to unliving monsters.";
11085 if (!get_rep_dir2(&dir)) return NULL;
11086 if (dir == 5) return NULL;
11091 if (cave[y][x].m_idx)
11092 py_attack(y, x, HISSATSU_DRAIN);
11096 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
11098 msg_print("There is no monster.");
11107 if (name) return "¸¸ÏÇ";
11108 if (desc) return "»ë³¦Æâ¤Îµ¯¤¤Æ¤¤¤ëÁ´¥â¥ó¥¹¥¿¡¼¤ËÛ¯Û°¡¢º®Íð¡¢Ì²¤ê¤òÍ¿¤¨¤è¤¦¤È¤¹¤ë¡£";
11110 if (name) return "Moon Dazzling";
11111 if (desc) return "Attempts to stun, confuse and sleep all waking monsters.";
11117 msg_print("Éð´ï¤òÉÔµ¬Â§¤ËÍɤ餷¤¿¡¥¡¥¡¥");
11119 msg_print("You irregularly wave your weapon...");
11121 project_hack(GF_ENGETSU, plev * 4);
11122 project_hack(GF_ENGETSU, plev * 4);
11123 project_hack(GF_ENGETSU, plev * 4);
11129 if (name) return "É´¿Í»Â¤ê";
11130 if (desc) return "Ϣ³¤·¤ÆÆþ¿È¤Ç¥â¥ó¥¹¥¿¡¼¤ò¹¶·â¤¹¤ë¡£¹¶·â¤¹¤ë¤¿¤Ó¤ËMP¤ò¾ÃÈñ¡£MP¤¬¤Ê¤¯¤Ê¤ë¤«¡¢¥â¥ó¥¹¥¿¡¼¤òÅݤ»¤Ê¤«¤Ã¤¿¤éÉ´¿Í»Â¤ê¤Ï½ªÎ»¤¹¤ë¡£";
11132 if (name) return "Hundred Slaughter";
11133 if (desc) return "Performs a series of rush attacks. The series continues while killing each monster in a time and SP remains.";
11138 const int mana_cost_per_monster = 8;
11144 if (!rush_attack(&mdeath)) break;
11147 /* Reserve needed mana point */
11148 p_ptr->csp -= technic_info[REALM_HISSATSU - MIN_TECHNIC][26].smana;
11152 p_ptr->csp -= mana_cost_per_monster;
11154 if (!mdeath) break;
11157 p_ptr->redraw |= PR_MANA;
11160 while (p_ptr->csp > mana_cost_per_monster);
11162 if (new) return NULL;
11164 /* Restore reserved mana */
11165 p_ptr->csp += technic_info[REALM_HISSATSU - MIN_TECHNIC][26].smana;
11171 if (name) return "Å·æÆζÁ®";
11172 if (desc) return "»ë³¦Æâ¤Î¾ì½ê¤ò»ØÄꤷ¤Æ¡¢¤½¤Î¾ì½ê¤È¼«Ê¬¤Î´Ö¤Ë¤¤¤ëÁ´¥â¥ó¥¹¥¿¡¼¤ò¹¶·â¤·¡¢¤½¤Î¾ì½ê¤Ë°ÜÆ°¤¹¤ë¡£";
11174 if (name) return "Dragonic Flash";
11175 if (desc) return "Runs toward given location while attacking all monsters on the path.";
11182 if (!tgt_pt(&x, &y)) return NULL;
11184 if (!cave_player_teleportable_bold(y, x, 0L) ||
11185 (distance(y, x, py, px) > MAX_SIGHT / 2) ||
11186 !projectable(py, px, y, x))
11189 msg_print("¼ºÇÔ¡ª");
11191 msg_print("You cannot move to that place!");
11195 if (p_ptr->anti_tele)
11198 msg_print("ÉԻ׵ĤÊÎϤ¬¥Æ¥ì¥Ý¡¼¥È¤òËɤ¤¤À¡ª");
11200 msg_print("A mysterious force prevents you from teleporting!");
11205 project(0, 0, y, x, HISSATSU_ISSEN, GF_ATTACK, PROJECT_BEAM | PROJECT_KILL, -1);
11206 teleport_player_to(y, x, 0L);
11212 if (name) return "Æó½Å¤Î·õ·â";
11213 if (desc) return "1¥¿¡¼¥ó¤Ç2ÅÙ¹¶·â¤ò¹Ô¤¦¡£";
11215 if (name) return "Twin Slash";
11216 if (desc) return "double attacks at a time.";
11223 if (!get_rep_dir(&dir, FALSE)) return NULL;
11228 if (cave[y][x].m_idx)
11230 py_attack(y, x, 0);
11231 if (cave[y][x].m_idx)
11234 py_attack(y, x, 0);
11240 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
11242 msg_print("You don't see any monster in this direction");
11251 if (name) return "¸×ÉúÀäÅáÀª";
11252 if (desc) return "¶¯ÎϤʹ¶·â¤ò¹Ô¤¤¡¢¶á¤¯¤Î¾ì½ê¤Ë¤â¸ú²Ì¤¬µÚ¤Ö¡£";
11254 if (name) return "Kofuku-Zettousei";
11255 if (desc) return "Performs a powerful attack which even effect nearby monsters.";
11260 int total_damage = 0, basedam, i;
11262 u32b flgs[TR_FLAG_SIZE];
11263 object_type *o_ptr;
11265 if (!get_rep_dir2(&dir)) return NULL;
11266 if (dir == 5) return NULL;
11271 if (d_info[dungeon_type].flags1 & DF1_NO_MELEE)
11274 msg_print("¤Ê¤¼¤«¹¶·â¤¹¤ë¤³¤È¤¬¤Ç¤¤Ê¤¤¡£");
11276 msg_print("Something prevent you from attacking.");
11281 msg_print("Éð´ï¤òÂ礤¯¿¶¤ê²¼¤í¤·¤¿¡£");
11283 msg_print("You swing your weapon downward.");
11285 for (i = 0; i < 2; i++)
11288 if (!buki_motteruka(INVEN_RARM+i)) break;
11289 o_ptr = &inventory[INVEN_RARM+i];
11290 basedam = (o_ptr->dd * (o_ptr->ds + 1)) * 50;
11291 damage = o_ptr->to_d * 100;
11292 object_flags(o_ptr, flgs);
11293 if ((o_ptr->name1 == ART_VORPAL_BLADE) || (o_ptr->name1 == ART_CHAINSWORD))
11299 else if (have_flag(flgs, TR_VORPAL))
11301 /* vorpal flag only */
11306 damage += p_ptr->to_d[i] * 100;
11307 damage *= p_ptr->num_blow[i];
11308 total_damage += (damage / 100);
11310 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);
11316 if (name) return "·Ä±Àµ´Ç¦·õ";
11317 if (desc) return "¼«Ê¬¤â¥À¥á¡¼¥¸¤ò¤¯¤é¤¦¤¬¡¢Áê¼ê¤ËÈó¾ï¤ËÂ礤ʥÀ¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£¥¢¥ó¥Ç¥Ã¥É¤Ë¤ÏÆä˸ú²Ì¤¬¤¢¤ë¡£";
11319 if (name) return "Keiun-Kininken";
11320 if (desc) return "Attacks a monster with extremely powerful damage. But you also takes some damages. Hurts a undead monster greatly.";
11327 if (!get_rep_dir2(&dir)) return NULL;
11328 if (dir == 5) return NULL;
11333 if (cave[y][x].m_idx)
11334 py_attack(y, x, HISSATSU_UNDEAD);
11338 msg_print("¤½¤ÎÊý¸þ¤Ë¤Ï¥â¥ó¥¹¥¿¡¼¤Ï¤¤¤Þ¤»¤ó¡£");
11340 msg_print("There is no monster.");
11345 take_hit(DAMAGE_NOESCAPE, 100 + randint1(100), "·Ä±Àµ´Ç¦·õ¤ò»È¤Ã¤¿¾×·â", -1);
11347 take_hit(DAMAGE_NOESCAPE, 100 + randint1(100), "exhaustion on using Keiun-Kininken", -1);
11354 if (name) return "ÀÚÊ¢";
11355 if (desc) return "¡ÖÉð»ÎÆ»¤È¤Ï¡¢»à¤Ì¤³¤È¤È¸«¤Ä¤±¤¿¤ê¡£¡×";
11357 if (name) return "Harakiri";
11358 if (desc) return "'Busido is found in death'";
11365 if (!get_check("ËÜÅö¤Ë¼«»¦¤·¤Þ¤¹¤«¡©")) return NULL;
11367 if (!get_check("Do you really want to commit suicide? ")) return NULL;
11369 /* Special Verification for suicide */
11371 prt("³Îǧ¤Î¤¿¤á '@' ¤ò²¡¤·¤Æ²¼¤µ¤¤¡£", 0, 0);
11373 prt("Please verify SUICIDE by typing the '@' sign: ", 0, 0);
11379 if (i != '@') return NULL;
11380 if (p_ptr->total_winner)
11382 take_hit(DAMAGE_FORCE, 9999, "Seppuku", -1);
11383 p_ptr->total_winner = TRUE;
11388 msg_print("Éð»ÎÆ»¤È¤Ï¡¢»à¤Ì¤³¤È¤È¸«¤Ä¤±¤¿¤ê¡£");
11390 msg_print("Meaning of Bushi-do is found in the death.");
11392 take_hit(DAMAGE_FORCE, 9999, "Seppuku", -1);
11403 static bool item_tester_hook_weapon_except_bow(object_type *o_ptr)
11405 switch (o_ptr->tval)
11419 static bool item_tester_hook_cursed(object_type *o_ptr)
11421 return (bool)(object_is_cursed(o_ptr));
11424 static cptr do_hex_spell(int spell, int mode)
11426 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
11427 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
11428 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
11429 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
11430 bool fail = (mode == SPELL_FAIL) ? TRUE : FALSE;
11431 bool cont = (mode == SPELL_CONT) ? TRUE : FALSE;
11432 bool stop = (mode == SPELL_STOP) ? TRUE : FALSE;
11436 int plev = p_ptr->lev;
11441 /*** 1st book (0-7) ***/
11444 if (name) return "¼Ù¤Ê¤ë½ËÊ¡";
11445 if (desc) return "½ËÊ¡¤Ë¤è¤ê¹¶·âÀºÅÙ¤ÈËɸæÎϤ¬¾å¤¬¤ë¡£";
11447 if (name) return "Evily blessing";
11448 if (desc) return "Attempts to increase +to_hit of a weapon and AC";
11452 if (!p_ptr->blessed)
11455 msg_print("¹â·é¤Êµ¤Ê¬¤Ë¤Ê¤Ã¤¿¡ª");
11457 msg_print("You feel righteous!");
11463 if (!p_ptr->blessed)
11466 msg_print("¹â·é¤Êµ¤Ê¬¤¬¾Ã¤¨¼º¤»¤¿¡£");
11468 msg_print("The prayer has expired.");
11476 if (name) return "·Ú½ý¤Î¼£Ìþ";
11477 if (desc) return "HP¤ä½ý¤ò¾¯¤·²óÉü¤µ¤»¤ë¡£";
11479 if (name) return "Cure light wounds";
11480 if (desc) return "Heals cut and HP a little.";
11482 if (info) return info_heal(1, 10, 0);
11486 msg_print("µ¤Ê¬¤¬Îɤ¯¤Ê¤Ã¤Æ¤¯¤ë¡£");
11488 msg_print("You feel better and better.");
11493 hp_player(damroll(1, 10));
11494 set_cut(p_ptr->cut - 10);
11500 if (name) return "°Ëâ¤Î¥ª¡¼¥é";
11501 if (desc) return "±ê¤Î¥ª¡¼¥é¤ò¿È¤Ë¤Þ¤È¤¤¡¢²óÉü®ÅÙ¤¬Â®¤¯¤Ê¤ë¡£";
11503 if (name) return "Demonic aura";
11504 if (desc) return "Gives fire aura and regeneration.";
11509 msg_print("ÂΤ¬±ê¤Î¥ª¡¼¥é¤Çʤ¤ï¤ì¤¿¡£");
11511 msg_print("You have enveloped by fiery aura!");
11517 msg_print("±ê¤Î¥ª¡¼¥é¤¬¾Ã¤¨µî¤Ã¤¿¡£");
11519 msg_print("Fiery aura disappeared.");
11526 if (name) return "°½Ì¸";
11527 if (desc) return "»ë³¦Æâ¤Î¥â¥ó¥¹¥¿¡¼¤ËÈù¼åÎ̤ÎÆǤΥÀ¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
11529 if (name) return "Stinking mist";
11530 if (desc) return "Deals few damages of poison to all monsters in your sight.";
11532 power = plev / 2 + 5;
11533 if (info) return info_damage(1, power, 0);
11536 project_hack(GF_POIS, randint1(power));
11542 if (name) return "ÏÓÎ϶¯²½";
11543 if (desc) return "½Ñ¼Ô¤ÎÏÓÎϤò¾å¾º¤µ¤»¤ë¡£";
11545 if (name) return "Extra might";
11546 if (desc) return "Attempts to increase your strength.";
11551 msg_print("²¿¤À¤«ÎϤ¬Í¯¤¤¤ÆÍè¤ë¡£");
11553 msg_print("You feel you get stronger.");
11560 if (name) return "Éð´ï¼öÇû";
11561 if (desc) return "ÁõÈ÷¤·¤Æ¤¤¤ëÉð´ï¤ò¼ö¤¦¡£";
11563 if (name) return "Curse weapon";
11564 if (desc) return "Curses your weapon.";
11570 char o_name[MAX_NLEN];
11571 object_type *o_ptr;
11572 u32b f[TR_FLAG_SIZE];
11574 item_tester_hook = item_tester_hook_weapon_except_bow;
11576 q = "¤É¤ì¤ò¼ö¤¤¤Þ¤¹¤«¡©";
11577 s = "Éð´ï¤òÁõÈ÷¤·¤Æ¤¤¤Ê¤¤¡£";
11579 q = "Which weapon do you curse?";
11580 s = "You wield no weapons.";
11583 if (!get_item(&item, q, s, (USE_EQUIP))) return FALSE;
11585 o_ptr = &inventory[item];
11586 object_desc(o_name, o_ptr, OD_NAME_ONLY);
11587 object_flags(o_ptr, f);
11590 if (!get_check(format("ËÜÅö¤Ë %s ¤ò¼ö¤¤¤Þ¤¹¤«¡©", o_name))) return FALSE;
11592 if (!get_check(format("Do you curse %s, really¡©", o_name))) return FALSE;
11596 (object_is_artifact(o_ptr) || have_flag(f, TR_BLESSED)))
11599 msg_format("%s ¤Ï¼ö¤¤¤òÄ·¤ÍÊÖ¤·¤¿¡£", o_name);
11601 msg_format("%s resists the effect.", o_name);
11605 if (o_ptr->to_d > 0)
11607 o_ptr->to_d -= randint1(3) % 2;
11608 if (o_ptr->to_d < 0) o_ptr->to_d = 0;
11610 if (o_ptr->to_h > 0)
11612 o_ptr->to_h -= randint1(3) % 2;
11613 if (o_ptr->to_h < 0) o_ptr->to_h = 0;
11615 if (o_ptr->to_a > 0)
11617 o_ptr->to_a -= randint1(3) % 2;
11618 if (o_ptr->to_a < 0) o_ptr->to_a = 0;
11621 msg_format("%s ¤ÏÎô²½¤·¤Æ¤·¤Þ¤Ã¤¿¡£", o_name);
11623 msg_format("Your %s was disenchanted!", o_name);
11631 msg_format("¶²ÉݤΰŹõ¥ª¡¼¥é¤¬¤¢¤Ê¤¿¤Î%s¤òÊñ¤ß¹þ¤ó¤À¡ª", o_name);
11633 msg_format("A terrible black aura blasts your %s!", o_name);
11635 o_ptr->curse_flags |= (TRC_CURSED);
11637 if (object_is_artifact(o_ptr) || object_is_ego(o_ptr))
11640 if (one_in_(3)) o_ptr->curse_flags |= (TRC_HEAVY_CURSE);
11643 o_ptr->curse_flags |= (TRC_TY_CURSE);
11644 if (one_in_(666)) o_ptr->curse_flags |= (TRC_PERMA_CURSE);
11646 add_flag(o_ptr->art_flags, TR_AGGRAVATE);
11647 add_flag(o_ptr->art_flags, TR_VORPAL);
11648 add_flag(o_ptr->art_flags, TR_VAMPIRIC);
11650 msg_print("·ì¤À¡ª·ì¤À¡ª·ì¤À¡ª");
11652 msg_print("Blood, Blood, Blood!");
11658 o_ptr->curse_flags |= get_curse(power, o_ptr);
11661 p_ptr->update |= (PU_BONUS);
11668 if (name) return "¼Ù°´¶ÃÎ";
11669 if (desc) return "¼þ°Ï¤Î¼Ù°¤Ê¥â¥ó¥¹¥¿¡¼¤ò´¶ÃΤ¹¤ë¡£";
11671 if (name) return "Evil detection";
11672 if (desc) return "Detects evil monsters.";
11674 if (info) return info_range(MAX_SIGHT);
11678 msg_print("¼Ù°¤ÊÀ¸Êª¤Î¸ºß¤ò´¶¤¸¼è¤í¤¦¤È¤·¤¿¡£");
11680 msg_print("You attend to the presence of evil creatures.");
11687 if (name) return "²æËý";
11688 if (desc) return "¿ô¥¿¡¼¥ó¹¶·â¤òÂѤ¨¤¿¸å¡¢¼õ¤±¤¿¥À¥á¡¼¥¸¤òÃϹö¤Î¶È²Ð¤È¤·¤Æ¼þ°Ï¤ËÊü½Ð¤¹¤ë¡£";
11690 if (name) return "Patience";
11691 if (desc) return "Bursts hell fire strongly after patients any damage while few turns.";
11693 power = MIN(200, (p_ptr->magic_num1[2] * 2));
11694 if (info) return info_damage(0, 0, power);
11697 int a = 3 - (p_ptr->pspeed - 100) / 10;
11698 int r = 3 + randint1(3) + MAX(0, MIN(3, a));
11700 if (p_ptr->magic_num2[2] > 0)
11703 msg_print("¤¹¤Ç¤Ë²æËý¤ò¤·¤Æ¤¤¤ë¡£");
11705 msg_print("You are already patienting.");
11710 p_ptr->magic_num2[1] = 1;
11711 p_ptr->magic_num2[2] = r;
11712 p_ptr->magic_num1[2] = 0;
11714 msg_print("¤¸¤Ã¤ÈÂѤ¨¤ë¤³¤È¤Ë¤·¤¿¡£");
11716 msg_print("You decide to patient all damages.");
11722 int rad = 2 + (power / 50);
11724 p_ptr->magic_num2[2]--;
11726 if ((p_ptr->magic_num2[2] <= 0) || (power >= 200))
11729 msg_print("²æËý¤¬²ò¤«¤ì¤¿¡ª");
11731 msg_print("Time for end of patioence!");
11735 project(0, rad, py, px, power, GF_HELL_FIRE,
11736 (PROJECT_STOP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL), -1);
11741 msg_format("%dÅÀ¤Î¥À¥á¡¼¥¸¤òÊÖ¤·¤¿¡£", power);
11743 msg_format("You return %d damages.", power);
11748 p_ptr->magic_num2[1] = 0;
11749 p_ptr->magic_num2[2] = 0;
11750 p_ptr->magic_num1[2] = 0;
11755 /*** 2nd book (8-15) ***/
11758 if (name) return "ɹ¤Î³»";
11759 if (desc) return "ɹ¤Î¥ª¡¼¥é¤ò¿È¤Ë¤Þ¤È¤¤¡¢ËɸæÎϤ¬¾å¾º¤¹¤ë¡£";
11761 if (name) return "Ice armor";
11762 if (desc) return "Gives fire aura and bonus to AC.";
11767 msg_print("ÂΤ¬É¹¤Î³»¤Çʤ¤ï¤ì¤¿¡£");
11769 msg_print("You have enveloped by ice armor!");
11775 msg_print("ɹ¤Î³»¤¬¾Ã¤¨µî¤Ã¤¿¡£");
11777 msg_print("Ice armor disappeared.");
11784 if (name) return "½Å½ý¤Î¼£Ìþ";
11785 if (desc) return "ÂÎÎϤä½ý¤ò¿¾¯²óÉü¤µ¤»¤ë¡£";
11787 if (name) return "Cure serious wounds";
11788 if (desc) return "Heals cut and HP more.";
11790 if (info) return info_heal(2, 10, 0);
11794 msg_print("µ¤Ê¬¤¬Îɤ¯¤Ê¤Ã¤Æ¤¯¤ë¡£");
11796 msg_print("You feel better and better.");
11801 hp_player(damroll(2, 10));
11802 set_cut((p_ptr->cut / 2) - 10);
11808 if (name) return "ÌôÉʵÛÆþ";
11809 if (desc) return "¼öʸ±Ó¾§¤òÃæ»ß¤¹¤ë¤³¤È¤Ê¤¯¡¢Ìô¤Î¸ú²Ì¤òÆÀ¤ë¤³¤È¤¬¤Ç¤¤ë¡£";
11811 if (name) return "Inhail potion";
11812 if (desc) return "Quaffs a potion without canceling of casting a spell.";
11816 p_ptr->magic_num1[0] |= (1L << HEX_INHAIL);
11817 do_cmd_quaff_potion();
11818 p_ptr->magic_num1[0] &= ~(1L << HEX_INHAIL);
11825 if (name) return "µÛ·ì̸";
11826 if (desc) return "»ë³¦Æâ¤Î¥â¥ó¥¹¥¿¡¼¤ËÈù¼åÎ̤ÎÀ¸Ì¿Îϵۼý¤Î¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£Í¿¤¨¤¿¥À¥á¡¼¥¸¤Îʬ¡¢ÂÎÎϤ¬²óÉü¤¹¤ë¡£";
11828 if (name) return "Vampiric mist";
11829 if (desc) return "Deals few dameges of drain life to all monsters in your sight.";
11831 power = (plev / 2) + 5;
11832 if (info) return info_damage(1, power, 0);
11835 project_hack(GF_OLD_DRAIN, randint1(power));
11841 if (name) return "Ëâ·õ²½";
11842 if (desc) return "Éð´ï¤Î¹¶·âÎϤò¾å¤²¤ë¡£ÀÚ¤ìÌ£¤òÆÀ¡¢¼ö¤¤¤Ë±þ¤¸¤ÆÍ¿¤¨¤ë¥À¥á¡¼¥¸¤¬¾å¾º¤·¡¢Á±Îɤʥâ¥ó¥¹¥¿¡¼¤ËÂФ¹¤ë¥À¥á¡¼¥¸¤¬2Çܤˤʤ롣";
11844 if (name) return "Swords to runeswords";
11845 if (desc) return "Gives vorpal ability to your weapon. Increases damages by your weapon acccording to curse of your weapon.";
11850 msg_print("¤¢¤Ê¤¿¤ÎÉð´ï¤¬¹õ¤¯µ±¤¤¤¿¡£");
11852 if (!empty_hands(FALSE))
11853 msg_print("Your weapons glow bright black.");
11855 msg_print("Your weapon glows bright black.");
11861 msg_print("Éð´ï¤Îµ±¤¤¬¾Ã¤¨µî¤Ã¤¿¡£");
11863 msg_format("Brightness of weapon%s disappeared.", (empty_hands(FALSE)) ? "" : "s");
11870 if (name) return "º®Íð¤Î¼ê";
11871 if (desc) return "¹¶·â¤·¤¿ºÝ¥â¥ó¥¹¥¿¡¼¤òº®Í𤵤»¤ë¡£";
11873 if (name) return "Touch of confusion";
11874 if (desc) return "Confuses a monster when you attack.";
11879 msg_print("¤¢¤Ê¤¿¤Î¼ê¤¬ÀÖ¤¯µ±¤»Ï¤á¤¿¡£");
11881 msg_print("Your hands glow bright red.");
11887 msg_print("¼ê¤Îµ±¤¤¬¤Ê¤¯¤Ê¤Ã¤¿¡£");
11889 msg_print("Brightness on your hands disappeard.");
11896 if (name) return "ÆùÂζ¯²½";
11897 if (desc) return "½Ñ¼Ô¤ÎÏÓÎÏ¡¢´ïÍѤµ¡¢Âѵ×ÎϤò¾å¾º¤µ¤»¤ë¡£¹¶·â²ó¿ô¤Î¾å¸Â¤ò 1 Áý²Ã¤µ¤»¤ë¡£";
11899 if (name) return "Building up";
11900 if (desc) return "Attempts to increases your strength, dexterity and constitusion.";
11905 msg_print("¿ÈÂΤ¬¶¯¤¯¤Ê¤Ã¤¿µ¤¤¬¤·¤¿¡£");
11907 msg_print("You feel your body is developed more now.");
11914 if (name) return "È¿¥Æ¥ì¥Ý¡¼¥È·ë³¦";
11915 if (desc) return "»ë³¦Æâ¤Î¥â¥ó¥¹¥¿¡¼¤Î¥Æ¥ì¥Ý¡¼¥È¤òÁ˳²¤¹¤ë¥Ð¥ê¥¢¤òÄ¥¤ë¡£";
11917 if (name) return "Anti teleport barrier";
11918 if (desc) return "Obstructs all teleportations by monsters in your sight.";
11920 power = plev * 3 / 2;
11921 if (info) return info_power(power);
11925 msg_print("¥Æ¥ì¥Ý¡¼¥È¤òËɤ°¼ö¤¤¤ò¤«¤±¤¿¡£");
11927 msg_print("You feel anyone can not teleport except you.");
11932 /*** 3rd book (16-23) ***/
11935 if (name) return "¾×·â¤Î¥¯¥í¡¼¥¯";
11936 if (desc) return "Åŵ¤¤Î¥ª¡¼¥é¤ò¿È¤Ë¤Þ¤È¤¤¡¢Æ°¤¤¬Â®¤¯¤Ê¤ë¡£";
11938 if (name) return "Cloak of shock";
11939 if (desc) return "Gives lightning aura and a bonus to speed.";
11944 msg_print("ÂΤ¬°ðºÊ¤Î¥ª¡¼¥é¤Çʤ¤ï¤ì¤¿¡£");
11946 msg_print("You have enveloped by electrical aura!");
11952 msg_print("°ðºÊ¤Î¥ª¡¼¥é¤¬¾Ã¤¨µî¤Ã¤¿¡£");
11954 msg_print("Electrical aura disappeared.");
11961 if (name) return "Ã×Ì¿½ý¤Î¼£Ìþ";
11962 if (desc) return "ÂÎÎϤä½ý¤ò²óÉü¤µ¤»¤ë¡£";
11964 if (name) return "Cure critical wounds";
11965 if (desc) return "Heals cut and HP greatry.";
11967 if (info) return info_heal(4, 10, 0);
11971 msg_print("µ¤Ê¬¤¬Îɤ¯¤Ê¤Ã¤Æ¤¯¤ë¡£");
11973 msg_print("You feel better and better.");
11978 hp_player(damroll(4, 10));
11987 if (name) return "¼öÎÏÉõÆþ";
11988 if (desc) return "ËâË¡¤ÎÆ»¶ñ¤ËËâÎϤòºÆ½¼Å¶¤¹¤ë¡£";
11990 if (name) return "Recharging";
11991 if (desc) return "Recharges a magic device.";
11994 if (info) return info_power(power);
11997 if (!recharge(power)) return NULL;
12004 if (name) return "»à¼ÔÉü³è";
12005 if (desc) return "»àÂΤòÁɤ餻¤Æ¥Ú¥Ã¥È¤Ë¤¹¤ë¡£";
12007 if (name) return "Animate Dead";
12008 if (desc) return "Raises corpses and skeletons from dead.";
12013 msg_print("»à¼Ô¤Ø¤Î¸Æ¤Ó¤«¤±¤ò»Ï¤á¤¿¡£");
12015 msg_print("You start to call deads.!");
12020 animate_dead(0, py, px);
12026 if (name) return "Ëɶñ¼öÇû";
12027 if (desc) return "ÁõÈ÷¤·¤Æ¤¤¤ëËɶñ¤Ë¼ö¤¤¤ò¤«¤±¤ë¡£";
12029 if (name) return "Curse armor";
12030 if (desc) return "Curse a piece of armour that you wielding.";
12036 char o_name[MAX_NLEN];
12037 object_type *o_ptr;
12038 u32b f[TR_FLAG_SIZE];
12040 item_tester_hook = object_is_armour;
12042 q = "¤É¤ì¤ò¼ö¤¤¤Þ¤¹¤«¡©";
12043 s = "Ëɶñ¤òÁõÈ÷¤·¤Æ¤¤¤Ê¤¤¡£";
12045 q = "Which piece of armour do you curse?";
12046 s = "You wield no piece of armours.";
12049 if (!get_item(&item, q, s, (USE_EQUIP))) return FALSE;
12051 o_ptr = &inventory[item];
12052 object_desc(o_name, o_ptr, OD_NAME_ONLY);
12053 object_flags(o_ptr, f);
12056 if (!get_check(format("ËÜÅö¤Ë %s ¤ò¼ö¤¤¤Þ¤¹¤«¡©", o_name))) return FALSE;
12058 if (!get_check(format("Do you curse %s, really¡©", o_name))) return FALSE;
12062 (object_is_artifact(o_ptr) || have_flag(f, TR_BLESSED)))
12065 msg_format("%s ¤Ï¼ö¤¤¤òÄ·¤ÍÊÖ¤·¤¿¡£", o_name);
12067 msg_format("%s resists the effect.", o_name);
12071 if (o_ptr->to_d > 0)
12073 o_ptr->to_d -= randint1(3) % 2;
12074 if (o_ptr->to_d < 0) o_ptr->to_d = 0;
12076 if (o_ptr->to_h > 0)
12078 o_ptr->to_h -= randint1(3) % 2;
12079 if (o_ptr->to_h < 0) o_ptr->to_h = 0;
12081 if (o_ptr->to_a > 0)
12083 o_ptr->to_a -= randint1(3) % 2;
12084 if (o_ptr->to_a < 0) o_ptr->to_a = 0;
12087 msg_format("%s ¤ÏÎô²½¤·¤Æ¤·¤Þ¤Ã¤¿¡£", o_name);
12089 msg_format("Your %s was disenchanted!", o_name);
12097 msg_format("¶²ÉݤΰŹõ¥ª¡¼¥é¤¬¤¢¤Ê¤¿¤Î%s¤òÊñ¤ß¹þ¤ó¤À¡ª", o_name);
12099 msg_format("A terrible black aura blasts your %s!", o_name);
12101 o_ptr->curse_flags |= (TRC_CURSED);
12103 if (object_is_artifact(o_ptr) || object_is_ego(o_ptr))
12106 if (one_in_(3)) o_ptr->curse_flags |= (TRC_HEAVY_CURSE);
12109 o_ptr->curse_flags |= (TRC_TY_CURSE);
12110 if (one_in_(666)) o_ptr->curse_flags |= (TRC_PERMA_CURSE);
12112 add_flag(o_ptr->art_flags, TR_AGGRAVATE);
12113 add_flag(o_ptr->art_flags, TR_RES_POIS);
12114 add_flag(o_ptr->art_flags, TR_RES_DARK);
12115 add_flag(o_ptr->art_flags, TR_RES_NETHER);
12117 msg_print("·ì¤À¡ª·ì¤À¡ª·ì¤À¡ª");
12119 msg_print("Blood, Blood, Blood!");
12125 o_ptr->curse_flags |= get_curse(power, o_ptr);
12128 p_ptr->update |= (PU_BONUS);
12135 if (name) return "±Æ¤Î¥¯¥í¡¼¥¯";
12136 if (desc) return "±Æ¤Î¥ª¡¼¥é¤ò¿È¤Ë¤Þ¤È¤¤¡¢Å¨¤Ë±Æ¤Î¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë¡£";
12138 if (name) return "Cloak of shadow";
12139 if (desc) return "Gives aura of shadow.";
12143 object_type *o_ptr = &inventory[INVEN_OUTER];
12148 msg_print("¥¯¥í¡¼¥¯¤ò¿È¤Ë¤Ä¤±¤Æ¤¤¤Ê¤¤¡ª");
12150 msg_print("You don't ware any cloak.");
12154 else if (!object_is_cursed(o_ptr))
12157 msg_print("¥¯¥í¡¼¥¯¤Ï¼ö¤ï¤ì¤Æ¤¤¤Ê¤¤¡ª");
12159 msg_print("Your cloak is not cursed.");
12166 msg_print("±Æ¤Î¥ª¡¼¥é¤ò¿È¤Ë¤Þ¤È¤Ã¤¿¡£");
12168 msg_print("You have enveloped by shadow aura!");
12174 object_type *o_ptr = &inventory[INVEN_OUTER];
12176 if ((!o_ptr->k_idx) || (!object_is_cursed(o_ptr)))
12178 do_spell(REALM_HEX, spell, SPELL_STOP);
12179 p_ptr->magic_num1[0] &= ~(1L << spell);
12180 p_ptr->magic_num2[0]--;
12181 if (!p_ptr->magic_num2[0]) set_action(ACTION_NONE);
12187 msg_print("±Æ¤Î¥ª¡¼¥é¤¬¾Ã¤¨µî¤Ã¤¿¡£");
12189 msg_print("Shadow aura disappeared.");
12196 if (name) return "¶ìÄˤòËâÎϤË";
12197 if (desc) return "»ë³¦Æâ¤Î¥â¥ó¥¹¥¿¡¼¤ËÀº¿À¥À¥á¡¼¥¸Í¿¤¨¡¢ËâÎϤòµÛ¤¤¼è¤ë¡£";
12199 if (name) return "Pains to mana";
12200 if (desc) return "Deals psychic damages to all monsters in sight, and drains some mana.";
12202 power = plev * 3 / 2;
12203 if (info) return info_damage(1, power, 0);
12206 project_hack(GF_PSI_DRAIN, randint1(power));
12212 if (name) return "ÌܤˤÏÌܤò";
12213 if (desc) return "ÂÇ·â¤äËâË¡¤Ç¼õ¤±¤¿¥À¥á¡¼¥¸¤ò¡¢¹¶·â¸µ¤Î¥â¥ó¥¹¥¿¡¼¤Ë¤âÍ¿¤¨¤ë¡£";
12215 if (name) return "Eye for an eye";
12216 if (desc) return "Returns same damage which you got to the monster which damaged you.";
12221 msg_print("Éü½²¤·¤¿¤¤Íß˾¤Ë¤«¤é¤ì¤¿¡£");
12223 msg_print("You wish strongly you want to revenge anything.");
12228 /*** 4th book (24-31) ***/
12231 if (name) return "È¿Áý¿£·ë³¦";
12232 if (desc) return "¤½¤Î³¬¤ÎÁý¿£¤¹¤ë¥â¥ó¥¹¥¿¡¼¤ÎÁý¿£¤òÁ˻ߤ¹¤ë¡£";
12234 if (name) return "Anti multiply barrier";
12235 if (desc) return "Obstructs all multiplying by monsters in entire floor.";
12240 msg_print("Áý¿£¤òÁ˻ߤ¹¤ë¼ö¤¤¤ò¤«¤±¤¿¡£");
12242 msg_print("You feel anyone can not already multiply.");
12249 if (name) return "À¸Ì¿ÎÏÉü³è";
12250 if (desc) return "·Ð¸³Ãͤò½ù¡¹¤ËÉü³è¤·¡¢¸º¾¯¤·¤¿Ç½ÎÏÃͤò²óÉü¤µ¤»¤ë¡£";
12252 if (name) return "Restore life";
12253 if (desc) return "Restores life energy and status.";
12258 msg_print("À¸Ì¿ÎϤ¬Ìá¤ê»Ï¤á¤¿¡£");
12260 msg_print("You feel your life energy starting to return.");
12266 int d = (p_ptr->max_exp - p_ptr->exp);
12267 int r = (p_ptr->exp / 20);
12273 p_ptr->exp = p_ptr->max_exp;
12277 /* Check the experience */
12278 check_experience();
12282 for (i = A_STR; i < 6; i ++)
12284 if (p_ptr->stat_cur[i] < p_ptr->stat_max[i])
12286 if (p_ptr->stat_cur[i] < 18)
12287 p_ptr->stat_cur[i]++;
12289 p_ptr->stat_cur[i] += 10;
12291 if (p_ptr->stat_cur[i] > p_ptr->stat_max[i])
12292 p_ptr->stat_cur[i] = p_ptr->stat_max[i];
12294 /* Recalculate bonuses */
12295 p_ptr->update |= (PU_BONUS);
12304 msg_format("%s¤Î¼öʸ¤Î±Ó¾§¤ò¤ä¤á¤¿¡£", do_spell(REALM_HEX, HEX_RESTORE, SPELL_NAME));
12306 msg_format("Finish casting '%^s'.", do_spell(REALM_HEX, HEX_RESTORE, SPELL_NAME));
12308 p_ptr->magic_num1[0] &= ~(1L << HEX_RESTORE);
12309 if (cont) p_ptr->magic_num2[0]--;
12310 if (p_ptr->magic_num2) p_ptr->action = ACTION_NONE;
12312 /* Redraw status */
12313 p_ptr->update |= (PU_BONUS | PU_HP | PU_MANA | PU_SPELLS);
12314 p_ptr->redraw |= (PR_EXTRA);
12323 if (name) return "¼öÎϵۼý";
12324 if (desc) return "¼ö¤ï¤ì¤¿Éð´ï¤Î¼ö¤¤¤òµÛ¼ý¤·¤ÆËâÎϤò²óÉü¤¹¤ë¡£";
12326 if (name) return "Drain curse power";
12327 if (desc) return "Drains curse on your weapon and heals SP a little.";
12333 u32b f[TR_FLAG_SIZE];
12334 object_type *o_ptr;
12336 item_tester_hook = item_tester_hook_cursed;
12338 q = "¤É¤ÎÁõÈ÷Éʤ«¤éµÛ¼ý¤·¤Þ¤¹¤«¡©";
12339 s = "¼ö¤ï¤ì¤¿¥¢¥¤¥Æ¥à¤òÁõÈ÷¤·¤Æ¤¤¤Ê¤¤¡£";
12341 q = "Which cursed equipment do you drain mana from?";
12342 s = "You have no cursed equipment.";
12345 if (!get_item(&item, q, s, (USE_EQUIP))) return FALSE;
12347 o_ptr = &inventory[item];
12348 object_flags(o_ptr, f);
12350 p_ptr->csp += (p_ptr->lev / 5) + randint1(p_ptr->lev / 5);
12351 if (have_flag(f, TR_TY_CURSE) || (o_ptr->curse_flags & TRC_TY_CURSE)) p_ptr->csp += randint1(5);
12352 if (p_ptr->csp > p_ptr->msp) p_ptr->csp = p_ptr->msp;
12354 if (o_ptr->curse_flags & TRC_PERMA_CURSE)
12358 else if (o_ptr->curse_flags & TRC_HEAVY_CURSE)
12363 msg_print("¼ö¤¤¤òÁ´¤ÆµÛ¤¤¼è¤Ã¤¿¡£");
12365 msg_print("Heavy curse vanished away.");
12367 o_ptr->curse_flags = 0L;
12370 else if ((o_ptr->curse_flags & (TRC_CURSED)) && one_in_(3))
12373 msg_print("¼ö¤¤¤òÁ´¤ÆµÛ¤¤¼è¤Ã¤¿¡£");
12375 msg_print("Curse vanished away.");
12377 o_ptr->curse_flags = 0L;
12386 if (name) return "µÛ·ì¤Î¿Ï";
12387 if (desc) return "µÛ·ì°À¤Ç¹¶·â¤¹¤ë¡£";
12389 if (name) return "Swords to vampires";
12390 if (desc) return "Gives vampiric ability to your weapon.";
12395 msg_print("¤¢¤Ê¤¿¤ÎÉð´ï¤¬·ì¤òÍߤ·¤Æ¤¤¤ë¡£");
12397 if (!empty_hands(FALSE))
12398 msg_print("Your weapons want more blood now.");
12400 msg_print("Your weapon wants more blood now.");
12406 msg_print("Éð´ï¤Î³é˾¤¬¾Ã¤¨µî¤Ã¤¿¡£");
12408 msg_format("Thirsty of weapon%s disappeared.", (empty_hands(FALSE)) ? "" : "s");
12415 if (name) return "Û¯Û°¤Î¸ÀÍÕ";
12416 if (desc) return "»ë³¦Æâ¤Î¥â¥ó¥¹¥¿¡¼¤òÛ¯Û°¤È¤µ¤»¤ë¡£";
12418 if (name) return "Word of stun";
12419 if (desc) return "Stuns all monsters in your sight.";
12422 if (info) return info_power(power);
12425 stun_monsters(power);
12431 if (name) return "±Æ°ÜÆ°";
12432 if (desc) return "¥â¥ó¥¹¥¿¡¼¤ÎÎ٤Υޥ¹¤Ë½Ö´Ö°ÜÆ°¤¹¤ë¡£";
12434 if (name) return "Moving into shadow";
12435 if (desc) return "Teleports you close to a monster.";
12442 for (i = 0; i < 3; i++)
12444 if (!tgt_pt(&x, &y)) return FALSE;
12448 for (dir = 0; dir < 8; dir++)
12450 int dy = y + ddy_ddd[dir];
12451 int dx = x + ddx_ddd[dir];
12452 if (dir == 5) continue;
12453 if(cave[dy][dx].m_idx) flag = TRUE;
12456 if (!cave_empty_bold(y, x) || (cave[y][x].info & CAVE_ICKY) ||
12457 (distance(y, x, py, px) > plev + 2))
12460 msg_print("¤½¤³¤Ë¤Ï°ÜÆ°¤Ç¤¤Ê¤¤¡£");
12462 msg_print("Can not teleport to there.");
12469 if (flag && randint0(plev * plev / 2))
12471 teleport_player_to(y, x, 0L);
12476 msg_print("¤ª¤Ã¤È¡ª");
12478 msg_print("Oops!");
12480 teleport_player(30, 0L);
12489 if (name) return "È¿ËâË¡·ë³¦";
12490 if (desc) return "»ë³¦Æâ¤Î¥â¥ó¥¹¥¿¡¼¤ÎËâË¡¤òÁ˳²¤¹¤ë¥Ð¥ê¥¢¤òÄ¥¤ë¡£";
12492 if (name) return "Anti magic barrier";
12493 if (desc) return "Obstructs all magic spell of monsters in your sight.";
12495 power = plev * 3 / 2;
12496 if (info) return info_power(power);
12500 msg_print("ËâË¡¤òËɤ°¼ö¤¤¤ò¤«¤±¤¿¡£");
12502 msg_print("You feel anyone can not cast spells except you.");
12509 if (name) return "Éü½²¤ÎÀë¹ð";
12510 if (desc) return "¿ô¥¿¡¼¥ó¸å¤Ë¤½¤ì¤Þ¤Ç¼õ¤±¤¿¥À¥á¡¼¥¸¤Ë±þ¤¸¤¿°ÒÎϤÎÃϹö¤Î¹å²Ð¤ÎÃƤòÊü¤Ä¡£";
12512 if (name) return "Revenge sentence";
12513 if (desc) return "Fires a ball of hell fire to try revenging after few turns.";
12515 power = p_ptr->magic_num1[2];
12516 if (info) return info_damage(0, 0, power);
12520 int a = 3 - (p_ptr->pspeed - 100) / 10;
12521 r = 1 + randint1(2) + MAX(0, MIN(3, a));
12523 if (p_ptr->magic_num2[2] > 0)
12526 msg_print("¤¹¤Ç¤ËÉü½²¤ÏÀë¹ðºÑ¤ß¤À¡£");
12528 msg_print("You already pronounced your revenge.");
12533 p_ptr->magic_num2[1] = 2;
12534 p_ptr->magic_num2[2] = r;
12536 msg_format("¤¢¤Ê¤¿¤ÏÉü½²¤òÀë¹ð¤·¤¿¡£¤¢¤È %d ¥¿¡¼¥ó¡£", r);
12538 msg_format("You pronounce your revenge. %d turns left.", r);
12544 p_ptr->magic_num2[2]--;
12546 if (p_ptr->magic_num2[2] <= 0)
12557 msg_print("Éü½²¤Î»þ¤À¡ª");
12559 msg_print("Time to revenge!");
12562 while (!get_aim_dir(&dir));
12564 fire_ball(GF_HELL_FIRE, dir, power, 1);
12569 msg_format("%dÅÀ¤Î¥À¥á¡¼¥¸¤òÊÖ¤·¤¿¡£", power);
12571 msg_format("You return %d damages.", power);
12578 msg_print("Éü½²¤¹¤ëµ¤¤¬¼º¤»¤¿¡£");
12580 msg_print("You are not a mood to revenge.");
12583 p_ptr->magic_num1[2] = 0;
12589 /* start casting */
12590 if ((cast) && (add))
12593 p_ptr->magic_num1[0] |= 1L << (spell);
12594 p_ptr->magic_num2[0]++;
12596 if (p_ptr->action != ACTION_SPELL) set_action(ACTION_SPELL);
12599 /* Redraw status */
12602 p_ptr->update |= (PU_BONUS | PU_HP | PU_MANA | PU_SPELLS);
12603 p_ptr->redraw |= (PR_EXTRA | PR_HP | PR_MANA);
12611 * Do everything for each spell
12613 cptr do_spell(int realm, int spell, int mode)
12617 case REALM_LIFE: return do_life_spell(spell, mode);
12618 case REALM_SORCERY: return do_sorcery_spell(spell, mode);
12619 case REALM_NATURE: return do_nature_spell(spell, mode);
12620 case REALM_CHAOS: return do_chaos_spell(spell, mode);
12621 case REALM_DEATH: return do_death_spell(spell, mode);
12622 case REALM_TRUMP: return do_trump_spell(spell, mode);
12623 case REALM_ARCANE: return do_arcane_spell(spell, mode);
12624 case REALM_CRAFT: return do_craft_spell(spell, mode);
12625 case REALM_DAEMON: return do_daemon_spell(spell, mode);
12626 case REALM_CRUSADE: return do_crusade_spell(spell, mode);
12627 case REALM_MUSIC: return do_music_spell(spell, mode);
12628 case REALM_HISSATSU: return do_hissatsu_spell(spell, mode);
12629 case REALM_HEX: return do_hex_spell(spell, mode);