3 char* monster_name(int m_idx, char* m_name)
5 monster_type *m_ptr = &m_list[m_idx];
6 monster_desc(m_name, m_ptr, 0x00);
10 /* 2 monster each is near by player, return true */
11 bool monster_near_player(int m_idx, int t_idx)
13 monster_type *m_ptr = &m_list[m_idx];
14 monster_type *t_ptr = &m_list[t_idx];
15 return (m_ptr->cdis <= MAX_SIGHT) || (t_ptr->cdis <= MAX_SIGHT);
18 /* player can see monster, return true */
19 bool see_monster(int m_idx)
21 monster_type *m_ptr = &m_list[m_idx];
22 return is_seen(m_ptr);
25 bool spell_learnable(int m_idx)
27 monster_type *m_ptr = &m_list[m_idx];
28 /* Extract the "see-able-ness" */
29 bool seen = (!p_ptr->blind && m_ptr->ml);
31 bool maneable = player_has_los_bold(m_ptr->fy, m_ptr->fx);
32 return (seen && maneable && !world_monster);
35 int monster_level_idx(int m_idx)
37 monster_type *m_ptr = &m_list[m_idx];
38 monster_race *r_ptr = &r_info[m_ptr->r_idx];
39 int rlev = ((r_ptr->level >= 1) ? r_ptr->level : 1);
43 bool monster_is_powerful(int m_idx)
45 monster_type *m_ptr = &m_list[m_idx];
46 monster_race *r_ptr = &r_info[m_ptr->r_idx];
47 return (r_ptr->flags2 & RF2_POWERFUL);
50 void monspell_message(int m_idx, int t_idx, cptr msg1, cptr msg2, cptr msg3, int TARGET_TYPE)
52 bool known = monster_near_player(m_idx, t_idx);
53 bool see_either = see_monster(m_idx) || see_monster(t_idx);
54 bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
55 bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
56 char m_name[80], t_name[80];
57 monster_name(m_idx, m_name);
58 monster_name(t_idx, t_name);
61 if (mon_to_player || (mon_to_mon && known && see_either))
66 if (mon_to_player || (mon_to_mon && known && see_either))
67 msg_format(msg1, m_name);
73 msg_format(msg2, m_name);
75 else if (mon_to_mon && known && see_either)
77 msg_format(msg3, m_name, t_name);
81 if (mon_to_mon && known && !see_either)
85 void spell_RF4_SHRIEK(int m_idx, int t_idx, int TARGET_TYPE)
87 bool known = monster_near_player(m_idx, t_idx);
88 bool see_m = see_monster(m_idx);
89 char m_name[80], t_name[80];
90 monster_name(m_idx, m_name);
91 monster_name(t_idx, t_name);
93 if (TARGET_TYPE == MONSTER_TO_MONSTER)
99 msg_format(_("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¶«¤ó¤À¡£", "%^s shrieks at %s."), m_name, t_name);
106 (void)set_monster_csleep(t_idx, 0);
108 else if (TARGET_TYPE == MONSTER_TO_PLAYER)
111 msg_format(_("%^s¤¬¤«¤ó¹â¤¤¶âÀÚ¤êÀ¼¤ò¤¢¤²¤¿¡£", "%^s makes a high pitched shriek."), m_name);
112 aggravate_monsters(m_idx);
116 void spell_RF4_DISPEL(int m_idx, int t_idx, int TARGET_TYPE)
118 bool known = monster_near_player(m_idx, t_idx);
119 bool see_m = see_monster(m_idx);
120 char m_name[80], t_name[80];
121 monster_name(m_idx, m_name);
122 monster_name(t_idx, t_name);
125 if (TARGET_TYPE == MONSTER_TO_MONSTER)
131 msg_format(_("%^s¤¬%s¤ËÂФ·¤ÆËâÎϾõî¤Î¼öʸ¤òÇ°¤¸¤¿¡£",
132 "%^s invokes a dispel magic at %s."), m_name, t_name);
140 if (t_idx == p_ptr->riding) dispel_player();
141 dispel_monster_status(t_idx);
143 else if (TARGET_TYPE == MONSTER_TO_PLAYER)
148 msg_format(_("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."), m_name);
150 msg_format(_("%^s¤¬ËâÎϾõî¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a dispel magic."), m_name);
153 if (p_ptr->riding) dispel_monster_status(p_ptr->riding);
155 if ((p_ptr->pseikaku == SEIKAKU_COMBAT) || (inventory[INVEN_BOW].name1 == ART_CRIMSON))
156 msg_print(_("¤ä¤ê¤ä¤¬¤Ã¤¿¤Ê¡ª", ""));
158 learn_spell(MS_DISPEL);
162 int spell_RF4_ROCKET(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
165 monster_type *m_ptr = &m_list[m_idx];
167 monspell_message(m_idx, t_idx,
168 _("%^s¤¬²¿¤«¤ò¼Í¤Ã¤¿¡£", "%^s shoots something."),
169 _("%^s¤¬¥í¥±¥Ã¥È¤òȯ¼Í¤·¤¿¡£", "%^s fires a rocket."),
170 _("%^s¤¬%s¤Ë¥í¥±¥Ã¥È¤òȯ¼Í¤·¤¿¡£", "%^s fires a rocket at %s."),
173 dam = (m_ptr->hp / 4) > 800 ? 800 : (m_ptr->hp / 4);
174 breath(y, x, m_idx, GF_ROCKET, dam, 2, FALSE, MS_ROCKET, TARGET_TYPE);
175 if (TARGET_TYPE == MONSTER_TO_PLAYER)
176 update_smart_learn(m_idx, DRS_SHARD);
180 int spell_RF4_SHOOT(int y, int x, int m_idx, int t_idx,int TARGET_TYPE)
183 monster_type *m_ptr = &m_list[m_idx];
184 monster_race *r_ptr = &r_info[m_ptr->r_idx];
186 monspell_message(m_idx, t_idx,
187 _("%^s¤¬´ñ̯¤Ê²»¤òȯ¤·¤¿¡£", "%^s makes a strange noise."),
188 _("%^s¤¬Ìð¤òÊü¤Ã¤¿¡£", "%^s fires an arrow."),
189 _("%^s¤¬%s¤ËÌð¤òÊü¤Ã¤¿¡£", "%^s fires an arrow at %s."),
192 dam = damroll(r_ptr->blow[0].d_dice, r_ptr->blow[0].d_side);
193 bolt(m_idx, y, x, GF_ARROW, dam, MS_SHOOT, TARGET_TYPE);
199 int spell_RF4_BREATH(int GF_TYPE, int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
201 int dam, ms_type, drs_type;
203 bool smart_learn = TRUE;
204 monster_type *m_ptr = &m_list[m_idx];
205 bool known = monster_near_player(m_idx, t_idx);
206 bool see_either = see_monster(m_idx) || see_monster(t_idx);
207 bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
208 bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
209 char m_name[80], t_name[80];
210 monster_name(m_idx, m_name);
211 monster_name(t_idx, t_name);
216 dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
217 type_s = _("»À", "acid");
218 ms_type = MS_BR_ACID;
222 dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
223 type_s = _("°ðºÊ", "lightning");
224 ms_type = MS_BR_ELEC;
228 dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
229 type_s = _("²Ð±ê", "fire");
230 ms_type = MS_BR_FIRE;
234 dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
235 type_s = _("Î䵤", "frost");
236 ms_type = MS_BR_COLD;
240 dam = ((m_ptr->hp / 3) > 800 ? 800 : (m_ptr->hp / 3));
241 type_s = _("¥¬¥¹", "gas");
242 ms_type = MS_BR_POIS;
246 dam = ((m_ptr->hp / 6) > 550 ? 550 : (m_ptr->hp / 6));
247 type_s = _("ÃϹö", "nether");
248 ms_type = MS_BR_NETHER;
252 dam = ((m_ptr->hp / 6) > 400 ? 400 : (m_ptr->hp / 6));
253 type_s = _("Á®¸÷", "light");
254 ms_type = MS_BR_LITE;
258 dam = ((m_ptr->hp / 6) > 400 ? 400 : (m_ptr->hp / 6));
259 type_s = _("°Å¹õ", "darkness");
260 ms_type = MS_BR_DARK;
264 dam = ((m_ptr->hp / 6) > 450 ? 450 : (m_ptr->hp / 6));
265 type_s = _("º®Íð", "confusion");
266 ms_type = MS_BR_CONF;
270 dam = ((m_ptr->hp / 6) > 450 ? 450 : (m_ptr->hp / 6));
271 type_s = _("¹ì²»", "sound");
272 ms_type = MS_BR_SOUND;
273 drs_type = DRS_SOUND;
276 dam = ((m_ptr->hp / 6) > 600 ? 600 : (m_ptr->hp / 6));
277 type_s = _("¥«¥ª¥¹", "chaos");
278 ms_type = MS_BR_CHAOS;
279 drs_type = DRS_CHAOS;
282 dam = ((m_ptr->hp / 6) > 500 ? 500 : (m_ptr->hp / 6));
283 type_s = _("Îô²½", "disenchantment");
284 ms_type = MS_BR_DISEN;
285 drs_type = DRS_DISEN;
288 dam = ((m_ptr->hp / 3) > 250 ? 250 : (m_ptr->hp / 3));
289 type_s = _("°ø²Ìº®Íð", "nexus");
290 ms_type = MS_BR_NEXUS;
291 drs_type = DRS_NEXUS;
294 dam = ((m_ptr->hp / 3) > 150 ? 150 : (m_ptr->hp / 3));
295 type_s = _("»þ´ÖµÕž", "time");
296 ms_type = MS_BR_TIME;
300 dam = ((m_ptr->hp / 6) > 200 ? 200 : (m_ptr->hp / 6));
301 type_s = _("ÃÙÆß", "inertia");
302 ms_type = MS_BR_INERTIA;
306 dam = ((m_ptr->hp / 3) > 200 ? 200 : (m_ptr->hp / 3));
307 type_s = _("½ÅÎÏ", "gravity");
308 ms_type = MS_BR_GRAVITY;
312 dam = ((m_ptr->hp / 6) > 500 ? 500 : (m_ptr->hp / 6));
313 type_s = _("ÇËÊÒ", "shards");
314 ms_type = MS_BR_SHARDS;
315 drs_type = DRS_SHARD;
318 dam = ((m_ptr->hp / 6) > 150 ? 150 : (m_ptr->hp / 6));
319 type_s = _("¥×¥é¥º¥Þ", "plasma");
320 ms_type = MS_BR_PLASMA;
324 dam = ((m_ptr->hp / 6) > 200 ? 200 : (m_ptr->hp / 6));
325 type_s = _("¥Õ¥©¡¼¥¹", "force");
326 ms_type = MS_BR_FORCE;
330 dam = ((m_ptr->hp / 3) > 250 ? 250 : (m_ptr->hp / 3));
331 type_s = _("ËâÎÏ", "mana");
332 ms_type = MS_BR_MANA;
336 dam = ((m_ptr->hp / 3) > 800 ? 800 : (m_ptr->hp / 3));
337 type_s = _("Êü¼ÍÀÇÑ´þʪ", "toxic waste");
338 ms_type = MS_BR_NUKE;
341 case GF_DISINTEGRATE:
342 dam = ((m_ptr->hp / 6) > 150 ? 150 : (m_ptr->hp / 6));
343 type_s = _("ʬ²ò", "disintegration");
344 ms_type = MS_BR_DISI;
351 if (mon_to_player || (mon_to_mon && known && see_either))
354 if (m_ptr->r_idx == MON_JAIAN && GF_TYPE == GF_SOUND)
356 msg_format(_("¡Ö¥Ü¥©¥¨¡Á¡Á¡Á¡Á¡Á¡Á¡×", "'Booooeeeeee'"));
358 else if (m_ptr->r_idx == MON_BOTEI && GF_TYPE == GF_SHARDS)
360 msg_format(_("¡Ö¥ÜÄë¥Ó¥ë¥«¥Ã¥¿¡¼¡ª¡ª¡ª¡×", "'Boty-Build cutter!!!'"));
362 else if (p_ptr->blind)
364 if (mon_to_player || (mon_to_mon && known && see_either))
365 msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
371 msg_format(_("%^s¤¬%^s¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes %^s."), m_name, type_s);
373 else if (mon_to_mon && known && see_either)
375 _(msg_format("%^s¤¬%^s¤Ë%^s¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name, t_name, type_s),
376 msg_format("%^s breathes %^s at %^s.", m_name, type_s, t_name));
380 if (mon_to_mon && known && !see_either)
384 breath(y, x, m_idx, GF_TYPE, dam, 0, TRUE, ms_type, TARGET_TYPE);
385 if (smart_learn && mon_to_player)
386 update_smart_learn(m_idx, drs_type);
391 int spell_RF4_BA_NUKE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
394 int rlev = monster_level_idx(m_idx);
396 monspell_message(m_idx, t_idx,
397 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
398 _("%^s¤¬Êü¼Íǽµå¤òÊü¤Ã¤¿¡£", "%^s casts a ball of radiation."),
399 _("%^s¤¬%s¤ËÊü¼Íǽµå¤òÊü¤Ã¤¿¡£", "%^s casts a ball of radiation at %s."),
402 dam = (rlev + damroll(10, 6)) * (monster_is_powerful(m_idx) ? 2 : 1);
403 breath(y, x, m_idx, GF_NUKE, dam, 2, FALSE, MS_BALL_NUKE, TARGET_TYPE);
404 if (TARGET_TYPE == MONSTER_TO_PLAYER)
405 update_smart_learn(m_idx, DRS_POIS);
410 int spell_RF4_BA_CHAO(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
413 int rlev = monster_level_idx(m_idx);
415 monspell_message(m_idx, t_idx,
416 _("%^s¤¬¶²¤í¤·¤²¤Ë¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles frighteningly."),
417 _("%^s¤¬½ã¥í¥°¥ë¥¹¤òÊü¤Ã¤¿¡£", "%^s invokes a raw Logrus."),
418 _("%^s¤¬%s¤Ë½ã¥í¥°¥ë¥¹¤òÊü¤Ã¤¿¡£", "%^s invokes raw Logrus upon %s."),
421 dam = (monster_is_powerful(m_idx) ? (rlev * 3) : (rlev * 2)) + damroll(10, 10);
423 breath(y, x, m_idx, GF_CHAOS, dam, 4, FALSE, MS_BALL_CHAOS, TARGET_TYPE);
424 if (TARGET_TYPE == MONSTER_TO_PLAYER)
425 update_smart_learn(m_idx, DRS_CHAOS);
430 int spell_RF5_BA_ACID(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
433 int rlev = monster_level_idx(m_idx);
435 monspell_message(m_idx, t_idx,
436 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
437 _("%^s¤¬¥¢¥·¥Ã¥É¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts an acid ball."),
438 _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥¢¥·¥Ã¥É¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£",
439 "%^s casts an acid ball at %s."),
442 if (monster_is_powerful(m_idx))
445 dam = (rlev * 4) + 50 + damroll(10, 10);
450 dam = (randint1(rlev * 3) + 15);
453 breath(y, x, m_idx, GF_ACID, dam, rad, FALSE, MS_BALL_ACID, TARGET_TYPE);
454 if (TARGET_TYPE == MONSTER_TO_PLAYER)
455 update_smart_learn(m_idx, DRS_ACID);
460 int spell_RF5_BA_ELEC(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
463 int rlev = monster_level_idx(m_idx);
465 monspell_message(m_idx, t_idx,
466 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
467 _("%^s¤¬¥µ¥ó¥À¡¼¡¦¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a lightning ball."),
468 _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥µ¥ó¥À¡¼¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£",
469 "%^s casts a lightning ball at %s."),
472 if (monster_is_powerful(m_idx))
475 dam = (rlev * 4) + 50 + damroll(10, 10);
480 dam = (randint1(rlev * 3 / 2) + 8);
483 breath(y, x, m_idx, GF_ELEC, dam, rad, FALSE, MS_BALL_ELEC, TARGET_TYPE);
484 if (TARGET_TYPE == MONSTER_TO_PLAYER)
485 update_smart_learn(m_idx, DRS_ELEC);
490 int spell_RF5_BA_FIRE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
493 monster_type *m_ptr = &m_list[m_idx];
494 int rlev = monster_level_idx(m_idx);
496 if (m_ptr->r_idx == MON_ROLENTO)
498 monspell_message(m_idx, t_idx,
499 _("%s¤¬²¿¤«¤òÅꤲ¤¿¡£", "%^s throws something."),
500 _("%s¤Ï¼êÜØÃƤòÅꤲ¤¿¡£", "%^s throws a hand grenade."),
501 _("%^s¤¬%^s¤Ë¸þ¤«¤Ã¤Æ¼êÜØÃƤòÅꤲ¤¿¡£", "%^s throws a hand grenade."),
506 monspell_message(m_idx, t_idx,
507 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
508 _("%^s¤¬¥Õ¥¡¥¤¥¢¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a fire ball."),
509 _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥Õ¥¡¥¤¥¢¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£",
510 "%^s casts a fire ball at %s."),
514 if (monster_is_powerful(m_idx))
517 dam = (rlev * 4) + 50 + damroll(10, 10);
522 dam = (randint1(rlev * 7 / 2) + 10);
525 breath(y, x, m_idx, GF_FIRE, dam, rad, FALSE, MS_BALL_FIRE, TARGET_TYPE);
526 if (TARGET_TYPE == MONSTER_TO_PLAYER)
527 update_smart_learn(m_idx, DRS_FIRE);
532 int spell_RF5_BA_COLD(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
535 int rlev = monster_level_idx(m_idx);
537 monspell_message(m_idx, t_idx,
538 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
539 _("%^s¤¬¥¢¥¤¥¹¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a frost ball."),
540 _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥¢¥¤¥¹¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£",
541 "%^s casts a frost ball at %s."),
544 if (monster_is_powerful(m_idx))
547 dam = (rlev * 4) + 50 + damroll(10, 10);
552 dam = (randint1(rlev * 3 / 2) + 10);
555 breath(y, x, m_idx, GF_COLD, dam, rad, FALSE, MS_BALL_COLD, TARGET_TYPE);
556 if (TARGET_TYPE == MONSTER_TO_PLAYER)
557 update_smart_learn(m_idx, DRS_COLD);
563 int spell_RF5_BA_POIS(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
567 monspell_message(m_idx, t_idx,
568 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
569 _("%^s¤¬°½±À¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a stinking cloud."),
570 _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ°½±À¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a stinking cloud at %s."),
573 dam = damroll(12, 2) * (monster_is_powerful(m_idx) ? 2 : 1);
574 breath(y, x, m_idx, GF_POIS, dam, 2, FALSE, MS_BALL_POIS, TARGET_TYPE);
575 if (TARGET_TYPE == MONSTER_TO_PLAYER)
576 update_smart_learn(m_idx, DRS_POIS);
581 int spell_RF5_BA_NETH(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
584 int rlev = monster_level_idx(m_idx);
586 monspell_message(m_idx, t_idx,
587 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
588 _("%^s¤¬ÃϹöµå¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a nether ball."),
589 _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤ÆÃϹöµå¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a nether ball at %s."),
592 dam = 50 + damroll(10, 10) + (rlev * (monster_is_powerful(m_idx) ? 2 : 1));
593 breath(y, x, m_idx, GF_NETHER, dam, 2, FALSE, MS_BALL_NETHER, TARGET_TYPE);
594 if (TARGET_TYPE == MONSTER_TO_PLAYER)
595 update_smart_learn(m_idx, DRS_NETH);
600 int spell_RF5_BA_WATE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
603 int rlev = monster_level_idx(m_idx);
604 bool known = monster_near_player(m_idx, t_idx);
605 bool see_either = see_monster(m_idx) || see_monster(t_idx);
606 bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
607 bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
609 monster_name(t_idx, t_name);
612 monspell_message(m_idx, t_idx,
613 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
614 _("%^s¤¬Î®¤ì¤ë¤è¤¦¤Ê¿È¿¶¤ê¤ò¤·¤¿¡£", "%^s gestures fluidly."),
615 _("%^s¤¬%s¤ËÂФ·¤Æή¤ì¤ë¤è¤¦¤Ê¿È¿¶¤ê¤ò¤·¤¿¡£", "%^s gestures fluidly at %s."),
620 msg_format(_("¤¢¤Ê¤¿¤Ï±²´¬¤¤Ë°û¤ß¹þ¤Þ¤ì¤¿¡£", "You are engulfed in a whirlpool."));
622 else if (mon_to_mon && known && see_either && !p_ptr->blind)
624 msg_format(_("%^s¤Ï±²´¬¤Ë°û¤ß¹þ¤Þ¤ì¤¿¡£", "%^s is engulfed in a whirlpool."), t_name);
627 dam = (monster_is_powerful(m_idx) ? randint1(rlev * 3) : randint1(rlev * 2)) + 50;
628 breath(y, x, m_idx, GF_WATER, dam, 4, FALSE, MS_BALL_WATER, TARGET_TYPE);
633 int spell_RF5_BA_MANA(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
636 int rlev = monster_level_idx(m_idx);
638 monspell_message(m_idx, t_idx,
639 _("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."),
640 _("%^s¤¬ËâÎϤÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a mana storm."),
641 _("%^s¤¬%s¤ËÂФ·¤ÆËâÎϤÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a mana storm upon %s."),
644 dam = (rlev * 4) + 50 + damroll(10, 10);
645 breath(y, x, m_idx, GF_MANA, dam, 4, FALSE, MS_BALL_MANA, TARGET_TYPE);
649 int spell_RF5_BA_DARK(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
652 int rlev = monster_level_idx(m_idx);
654 monspell_message(m_idx, t_idx,
655 _("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."),
656 _("%^s¤¬°Å¹õ¤ÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a darkness storm."),
657 _("%^s¤¬%s¤ËÂФ·¤Æ°Å¹õ¤ÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a darkness storm upon %s."),
660 dam = (rlev * 4) + 50 + damroll(10, 10);
661 breath(y, x, m_idx, GF_DARK, dam, 4, FALSE, MS_BALL_DARK, TARGET_TYPE);
662 if (TARGET_TYPE == MONSTER_TO_PLAYER)
663 update_smart_learn(m_idx, DRS_DARK);
668 int spell_RF5_DRAIN_MANA(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
670 int rlev = monster_level_idx(m_idx);
672 char m_name[80], t_name[80];
673 monster_name(m_idx, m_name);
674 monster_name(t_idx, t_name);
677 if (TARGET_TYPE == MONSTER_TO_PLAYER)
681 else if (TARGET_TYPE == MONSTER_TO_MONSTER && see_monster(m_idx))
684 msg_format(_("%^s¤ÏÀº¿À¥¨¥Í¥ë¥®¡¼¤ò%s¤«¤éµÛ¤¤¤È¤Ã¤¿¡£", "%^s draws psychic energy from %s."), m_name, t_name);
687 dam = ((randint1(rlev) / 2) + 1);
688 breath(y, x, m_idx, GF_DRAIN_MANA, dam, 0, FALSE, MS_DRAIN_MANA, TARGET_TYPE);
689 if (TARGET_TYPE == MONSTER_TO_PLAYER)
690 update_smart_learn(m_idx, DRS_MANA);
695 int spell_RF5_MIND_BLAST(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
697 monster_type *m_ptr = &m_list[m_idx];
698 bool seen = (!p_ptr->blind && m_ptr->ml);
699 int rlev = monster_level_idx(m_idx);
701 char m_name[80], t_name[80];
702 monster_name(m_idx, m_name);
703 monster_name(t_idx, t_name);
706 if (TARGET_TYPE == MONSTER_TO_PLAYER)
710 msg_print(_("²¿¤«¤¬¤¢¤Ê¤¿¤ÎÀº¿À¤ËÇ°¤òÊü¤Ã¤Æ¤¤¤ë¤è¤¦¤À¡£", "You feel something focusing on your mind."));
712 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ÎÆ·¤ò¤¸¤Ã¤È¤Ë¤é¤ó¤Ç¤¤¤ë¡£", "%^s gazes deep into your eyes."), m_name);
714 else if (TARGET_TYPE == MONSTER_TO_MONSTER && see_monster(m_idx))
716 msg_format(_("%^s¤Ï%s¤ò¤¸¤Ã¤Èâˤó¤À¡£", "%^s gazes intently at %s."), m_name, t_name);
720 breath(y, x, m_idx, GF_MIND_BLAST, dam, 0, FALSE, MS_MIND_BLAST, TARGET_TYPE);
724 int spell_RF5_BRAIN_SMASH(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
726 monster_type *m_ptr = &m_list[m_idx];
727 bool seen = (!p_ptr->blind && m_ptr->ml);
728 int rlev = monster_level_idx(m_idx);
730 char m_name[80], t_name[80];
731 monster_name(m_idx, m_name);
732 monster_name(t_idx, t_name);
735 if (TARGET_TYPE == MONSTER_TO_PLAYER)
739 msg_print(_("²¿¤«¤¬¤¢¤Ê¤¿¤ÎÀº¿À¤ËÇ°¤òÊü¤Ã¤Æ¤¤¤ë¤è¤¦¤À¡£", "You feel something focusing on your mind."));
741 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ÎÆ·¤ò¤¸¤Ã¤È¤Ë¤é¤ó¤Ç¤¤¤ë¡£", "%^s gazes deep into your eyes."), m_name);
743 else if (TARGET_TYPE == MONSTER_TO_MONSTER && see_monster(m_idx))
745 msg_format(_("%^s¤Ï%s¤ò¤¸¤Ã¤Èâˤó¤À¡£", "%^s gazes intently at %s."), m_name, t_name);
748 dam = damroll(12, 12);
749 breath(y, x, m_idx, GF_BRAIN_SMASH, dam, 0, FALSE, MS_BRAIN_SMASH, TARGET_TYPE);
753 void spell_RF5_CAUSE(int GF_TYPE, int dam, int y, int x, int m_idx, int t_idx, cptr msg1, cptr msg2, cptr msg3, int MS_TYPE, int TARGET_TYPE)
755 int rlev = monster_level_idx(m_idx);
756 char m_name[80], t_name[80];
757 monster_name(m_idx, m_name);
758 monster_name(t_idx, t_name);
761 if (TARGET_TYPE == MONSTER_TO_PLAYER)
765 msg_format(msg1, m_name);
767 msg_format(msg2, m_name);
769 else if (TARGET_TYPE == MONSTER_TO_MONSTER)
771 if (see_monster(m_idx))
773 msg_format(msg3, m_name, t_name);
780 breath(y, x, m_idx, GF_TYPE, dam, 0, FALSE, MS_TYPE, TARGET_TYPE);
783 int spell_RF5_CAUSE_1(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
785 cptr msg1, msg2, msg3;
786 int dam = damroll(3, 8);
788 msg1 = _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles.");
789 msg2 = _("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¼ö¤Ã¤¿¡£", "%^s points at you and curses.");
790 msg3 = _("%^s¤Ï%s¤ò»Ø¤µ¤·¤Æ¼ö¤¤¤ò¤«¤±¤¿¡£", "%^s points at %s and curses.");
792 spell_RF5_CAUSE(GF_CAUSE_1, dam, y, x, m_idx, t_idx, msg1, msg2, msg3, MS_CAUSE_1, TARGET_TYPE);
796 int spell_RF5_CAUSE_2(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
798 cptr msg1, msg2, msg3;
799 int dam = damroll(8, 8);
801 msg1 = _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles.");
802 msg2 = _("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¶²¤í¤·¤²¤Ë¼ö¤Ã¤¿¡£", "%^s points at you and curses horribly.");
803 msg3 = _("%^s¤Ï%s¤ò»Ø¤µ¤·¤Æ¶²¤í¤·¤²¤Ë¼ö¤¤¤ò¤«¤±¤¿¡£", "%^s points at %s and curses horribly.");
805 spell_RF5_CAUSE(GF_CAUSE_2, dam, y, x, m_idx, t_idx, msg1, msg2, msg3, MS_CAUSE_2, TARGET_TYPE);
809 int spell_RF5_CAUSE_3(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
811 cptr msg1, msg2, msg3;
812 int dam = damroll(10, 15);
814 msg1 = _("%^s¤¬²¿¤«¤òÂçÀ¼¤Ç¶«¤ó¤À¡£", "%^s mumbles loudly.");
815 msg2 = _("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¶²¤í¤·¤²¤Ë¼öʸ¤ò¾§¤¨¤¿¡ª", "%^s points at you, incanting terribly!");
816 msg3 = _("%^s¤Ï%s¤ò»Ø¤µ¤·¡¢¶²¤í¤·¤²¤Ë¼öʸ¤ò¾§¤¨¤¿¡ª", "%^s points at %s, incanting terribly!");
818 spell_RF5_CAUSE(GF_CAUSE_3, dam, y, x, m_idx, t_idx, msg1, msg2, msg3, MS_CAUSE_3, TARGET_TYPE);
822 int spell_RF5_CAUSE_4(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
824 cptr msg1, msg2, msg3;
825 int dam = damroll(15, 15);
827 msg1 = _("%^s¤¬¡Ö¤ªÁ°¤Ï´û¤Ë»à¤ó¤Ç¤¤¤ë¡×¤È¶«¤ó¤À¡£", "%^s screams the word 'DIE!'");
828 msg2 = _("%^s¤¬¤¢¤Ê¤¿¤ÎÈ빦¤òÆͤ¤¤Æ¡Ö¤ªÁ°¤Ï´û¤Ë»à¤ó¤Ç¤¤¤ë¡×¤È¶«¤ó¤À¡£", "%^s points at you, screaming the word DIE!");
829 msg3 = _("%^s¤¬%s¤ÎÈ빦¤òÆͤ¤¤Æ¡¢¡Ö¤ªÁ°¤Ï´û¤Ë»à¤ó¤Ç¤¤¤ë¡×¤È¶«¤ó¤À¡£", "%^s points at %s, screaming the word, 'DIE!'");
831 spell_RF5_CAUSE(GF_CAUSE_4, dam, y, x, m_idx, t_idx, msg1, msg2, msg3, MS_CAUSE_4, TARGET_TYPE);
835 int spell_RF5_BO_ACID(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
838 int rlev = monster_level_idx(m_idx);
840 monspell_message(m_idx, t_idx,
841 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
842 _("%^s¤¬¥¢¥·¥Ã¥É¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a acid bolt."),
843 _("%s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥¢¥·¥Ã¥É¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts an acid bolt at %s."),
846 dam = (damroll(7, 8) + (rlev / 3)) * (monster_is_powerful(m_idx) ? 2 : 1);
847 bolt(m_idx, y, x, GF_ACID, dam, MS_BOLT_ACID, TARGET_TYPE);
848 if (TARGET_TYPE == MONSTER_TO_PLAYER)
850 update_smart_learn(m_idx, DRS_ACID);
851 update_smart_learn(m_idx, DRS_REFLECT);
856 int spell_RF5_BO_ELEC(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
859 int rlev = monster_level_idx(m_idx);
861 monspell_message(m_idx, t_idx,
862 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
863 _("%^s¤¬¥µ¥ó¥À¡¼¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a lightning bolt."),
864 _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥µ¥ó¥À¡¼¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a lightning bolt at %s."),
867 dam = (damroll(4, 8) + (rlev / 3)) * (monster_is_powerful(m_idx) ? 2 : 1);
868 bolt(m_idx, y, x, GF_ELEC, dam, MS_BOLT_ELEC, TARGET_TYPE);
869 if (TARGET_TYPE == MONSTER_TO_PLAYER)
871 update_smart_learn(m_idx, DRS_ELEC);
872 update_smart_learn(m_idx, DRS_REFLECT);
877 int spell_RF5_BO_FIRE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
880 int rlev = monster_level_idx(m_idx);
882 monspell_message(m_idx, t_idx,
883 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
884 _("%^s¤¬¥Õ¥¡¥¤¥¢¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a fire bolt."),
885 _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥Õ¥¡¥¤¥¢¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a fire bolt at %s."),
888 dam = (damroll(9, 8) + (rlev / 3)) * (monster_is_powerful(m_idx) ? 2 : 1);
889 bolt(m_idx, y, x, GF_FIRE, dam, MS_BOLT_FIRE, TARGET_TYPE);
890 if (TARGET_TYPE == MONSTER_TO_PLAYER)
892 update_smart_learn(m_idx, DRS_FIRE);
893 update_smart_learn(m_idx, DRS_REFLECT);
898 int spell_RF5_BO_COLD(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
901 int rlev = monster_level_idx(m_idx);
903 monspell_message(m_idx, t_idx,
904 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
905 _("%^s¤¬¥¢¥¤¥¹¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a frost bolt."),
906 _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥¢¥¤¥¹¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a frost bolt at %s."),
909 dam = (damroll(6, 8) + (rlev / 3)) * (monster_is_powerful(m_idx) ? 2 : 1);
910 bolt(m_idx, y, x, GF_COLD, dam, MS_BOLT_COLD, TARGET_TYPE);
911 if (TARGET_TYPE == MONSTER_TO_PLAYER)
913 update_smart_learn(m_idx, DRS_COLD);
914 update_smart_learn(m_idx, DRS_REFLECT);
919 int spell_RF5_BA_LITE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
922 int rlev = monster_level_idx(m_idx);
924 monspell_message(m_idx, t_idx,
925 _("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."),
926 _("%^s¤¬¥¹¥¿¡¼¥Ð¡¼¥¹¥È¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a starburst."),
927 _("%^s¤¬%s¤ËÂФ·¤Æ¥¹¥¿¡¼¥Ð¡¼¥¹¥È¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a starburst upon %s."),
930 dam = (rlev * 4) + 50 + damroll(10, 10);
931 breath(y, x, m_idx, GF_LITE, dam, 4, FALSE, MS_STARBURST, TARGET_TYPE);
932 if (TARGET_TYPE == MONSTER_TO_PLAYER)
933 update_smart_learn(m_idx, DRS_LITE);
939 int spell_RF5_BO_NETH(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
942 int rlev = monster_level_idx(m_idx);
944 monspell_message(m_idx, t_idx,
945 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
946 _("%^s¤¬ÃϹö¤ÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a nether bolt."),
947 _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤ÆÃϹö¤ÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a nether bolt at %s."),
950 dam = 30 + damroll(5, 5) + (rlev * 4) / (monster_is_powerful(m_idx) ? 2 : 3);
951 bolt(m_idx, y, x, GF_NETHER, dam, MS_BOLT_NETHER, TARGET_TYPE);
952 if (TARGET_TYPE == MONSTER_TO_PLAYER)
954 update_smart_learn(m_idx, DRS_NETH);
955 update_smart_learn(m_idx, DRS_REFLECT);
960 int spell_RF5_BO_WATE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
963 int rlev = monster_level_idx(m_idx);
965 monspell_message(m_idx, t_idx,
966 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
967 _("%^s¤¬¥¦¥©¡¼¥¿¡¼¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a water bolt."),
968 _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥¦¥©¡¼¥¿¡¼¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a water bolt at %s."),
971 dam = damroll(10, 10) + (rlev * 3 / (monster_is_powerful(m_idx) ? 2 : 3));
972 bolt(m_idx, y, x, GF_WATER, dam, MS_BOLT_WATER, TARGET_TYPE);
973 if (TARGET_TYPE == MONSTER_TO_PLAYER)
975 update_smart_learn(m_idx, DRS_REFLECT);
980 int spell_RF5_BO_MANA(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
983 int rlev = monster_level_idx(m_idx);
985 monspell_message(m_idx, t_idx,
986 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
987 _("%^s¤¬ËâÎϤÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a mana bolt."),
988 _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤ÆËâÎϤÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a mana bolt at %s."),
991 dam = randint1(rlev * 7 / 2) + 50;
992 bolt(m_idx, y, x, GF_MANA, dam, MS_BOLT_MANA, TARGET_TYPE);
993 if (TARGET_TYPE == MONSTER_TO_PLAYER)
995 update_smart_learn(m_idx, DRS_REFLECT);
1000 int spell_RF5_BO_PLAS(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
1003 int rlev = monster_level_idx(m_idx);
1005 monspell_message(m_idx, t_idx,
1006 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
1007 _("%^s¤¬¥×¥é¥º¥Þ¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a plasma bolt."),
1008 _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥×¥é¥º¥Þ¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a plasma bolt at %s."),
1011 dam = 10 + damroll(8, 7) + (rlev * 3 / (monster_is_powerful(m_idx) ? 2 : 3));
1012 bolt(m_idx, y, x, GF_PLASMA, dam, MS_BOLT_PLASMA, TARGET_TYPE);
1013 if (TARGET_TYPE == MONSTER_TO_PLAYER)
1015 update_smart_learn(m_idx, DRS_REFLECT);
1020 int spell_RF5_BO_ICEE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
1023 int rlev = monster_level_idx(m_idx);
1025 monspell_message(m_idx, t_idx,
1026 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
1027 _("%^s¤¬¶Ë´¨¤ÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts an ice bolt."),
1028 _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¶Ë´¨¤ÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts an ice bolt at %s."),
1031 dam = damroll(6, 6) + (rlev * 3 / (monster_is_powerful(m_idx) ? 2 : 3));
1032 bolt(m_idx, y, x, GF_ICE, dam, MS_BOLT_ICE, TARGET_TYPE);
1033 if (TARGET_TYPE == MONSTER_TO_PLAYER)
1035 update_smart_learn(m_idx, DRS_COLD);
1036 update_smart_learn(m_idx, DRS_REFLECT);
1041 int spell_RF5_MISSILE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
1044 int rlev = monster_level_idx(m_idx);
1046 monspell_message(m_idx, t_idx,
1047 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
1048 _("%^s¤¬¥Þ¥¸¥Ã¥¯¡¦¥ß¥µ¥¤¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a magic missile."),
1049 _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥Þ¥¸¥Ã¥¯¡¦¥ß¥µ¥¤¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a magic missile at %s."),
1052 dam = damroll(2, 6) + (rlev / 3);
1053 bolt(m_idx, y, x, GF_MISSILE, dam, MS_MAGIC_MISSILE, TARGET_TYPE);
1054 if (TARGET_TYPE == MONSTER_TO_PLAYER)
1056 update_smart_learn(m_idx, DRS_REFLECT);
1061 void spell_RF5_SCARE(int y, int x, int m_idx)
1063 int rlev = monster_level_idx(m_idx);
1065 monster_name(m_idx, m_name);
1070 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¯¤È¡¢¶²¤í¤·¤²¤Ê²»¤¬Ê¹¤³¤¨¤¿¡£", "%^s mumbles, and you hear scary noises."), m_name);
1072 msg_format(_("%^s¤¬¶²¤í¤·¤²¤Ê¸¸³Ð¤òºî¤ê½Ð¤·¤¿¡£", "%^s casts a fearful illusion."), m_name);
1074 if (p_ptr->resist_fear)
1076 msg_print(_("¤·¤«¤·¶²Éݤ˿¯¤µ¤ì¤Ê¤«¤Ã¤¿¡£", "You refuse to be frightened."));
1078 else if (randint0(100 + rlev / 2) < p_ptr->skill_sav)
1080 msg_print(_("¤·¤«¤·¶²Éݤ˿¯¤µ¤ì¤Ê¤«¤Ã¤¿¡£", "You refuse to be frightened."));
1084 (void)set_afraid(p_ptr->afraid + randint0(4) + 4);
1086 learn_spell(MS_SCARE);
1087 update_smart_learn(m_idx, DRS_FEAR);
1090 void spell_RF5_BLIND(int y, int x, int m_idx)
1092 int rlev = monster_level_idx(m_idx);
1094 monster_name(m_idx, m_name);
1099 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1101 msg_format(_("%^s¤¬¼öʸ¤ò¾§¤¨¤Æ¤¢¤Ê¤¿¤ÎÌܤò¤¯¤é¤Þ¤·¤¿¡ª",
1102 "%^s casts a spell, burning your eyes!"), m_name);
1104 if (p_ptr->resist_blind)
1106 msg_print(_("¤·¤«¤·¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡ª", "You are unaffected!"));
1108 else if (randint0(100 + rlev / 2) < p_ptr->skill_sav)
1110 msg_print(_("¤·¤«¤·¸úÎϤòÄ·¤ÍÊÖ¤·¤¿¡ª", "You resist the effects!"));
1114 (void)set_blind(12 + randint0(4));
1116 learn_spell(MS_BLIND);
1117 update_smart_learn(m_idx, DRS_BLIND);
1120 void spell_RF5_CONF(int y, int x, int m_idx)
1122 int rlev = monster_level_idx(m_idx);
1124 monster_name(m_idx, m_name);
1129 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¯¤È¡¢Æ¬¤òǺ¤Þ¤¹²»¤¬¤·¤¿¡£",
1130 "%^s mumbles, and you hear puzzling noises."), m_name);
1132 msg_format(_("%^s¤¬Í¶ÏÇŪ¤Ê¸¸³Ð¤òºî¤ê½Ð¤·¤¿¡£",
1133 "%^s creates a mesmerising illusion."), m_name);
1135 if (p_ptr->resist_conf)
1137 msg_print(_("¤·¤«¤·¸¸³Ð¤Ë¤Ï¤À¤Þ¤µ¤ì¤Ê¤«¤Ã¤¿¡£", "You disbelieve the feeble spell."));
1139 else if (randint0(100 + rlev / 2) < p_ptr->skill_sav)
1141 msg_print(_("¤·¤«¤·¸¸³Ð¤Ë¤Ï¤À¤Þ¤µ¤ì¤Ê¤«¤Ã¤¿¡£", "You disbelieve the feeble spell."));
1145 (void)set_confused(p_ptr->confused + randint0(4) + 4);
1147 learn_spell(MS_CONF);
1148 update_smart_learn(m_idx, DRS_CONF);
1151 void spell_RF5_SLOW(int y, int x, int m_idx)
1153 int rlev = monster_level_idx(m_idx);
1155 monster_name(m_idx, m_name);
1159 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤Î¶ÚÎϤòµÛ¤¤¼è¤í¤¦¤È¤·¤¿¡ª",
1160 "%^s drains power from your muscles!"), m_name);
1162 if (p_ptr->free_act)
1164 msg_print(_("¤·¤«¤·¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡ª", "You are unaffected!"));
1166 else if (randint0(100 + rlev / 2) < p_ptr->skill_sav)
1168 msg_print(_("¤·¤«¤·¸úÎϤòÄ·¤ÍÊÖ¤·¤¿¡ª", "You resist the effects!"));
1172 (void)set_slow(p_ptr->slow + randint0(4) + 4, FALSE);
1174 learn_spell(MS_SLOW);
1175 update_smart_learn(m_idx, DRS_FREE);
1178 void spell_RF5_HOLD(int y, int x, int m_idx)
1180 int rlev = monster_level_idx(m_idx);
1182 monster_name(m_idx, m_name);
1186 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1188 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ÎÌܤò¤¸¤Ã¤È¸«¤Ä¤á¤¿¡ª", "%^s stares deep into your eyes!"), m_name);
1190 if (p_ptr->free_act)
1192 msg_print(_("¤·¤«¤·¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡ª", "You are unaffected!"));
1194 else if (randint0(100 + rlev / 2) < p_ptr->skill_sav)
1196 msg_format(_("¤·¤«¤·¸úÎϤòÄ·¤ÍÊÖ¤·¤¿¡ª", "You resist the effects!"));
1200 (void)set_paralyzed(p_ptr->paralyzed + randint0(4) + 4);
1202 learn_spell(MS_SLEEP);
1203 update_smart_learn(m_idx, DRS_FREE);
1206 void spell_RF6_HASTE(int m_idx)
1208 monster_type *m_ptr = &m_list[m_idx];
1210 monster_name(m_idx, m_name);
1214 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1218 msg_format(_("%^s¤¬¼«Ê¬¤ÎÂΤËÇ°¤òÁ÷¤Ã¤¿¡£", "%^s concentrates on %s body."), m_name);
1221 /* Allow quick speed increases to base+10 */
1222 if (set_monster_fast(m_idx, MON_FAST(m_ptr) + 100))
1224 msg_format(_("%^s¤ÎÆ°¤¤¬Â®¤¯¤Ê¤Ã¤¿¡£", "%^s starts moving faster."), m_name);
1228 int spell_RF6_HAND_DOOM(int y, int x, int m_idx)
1230 monster_type *m_ptr = &m_list[m_idx];
1233 monster_name(m_idx, m_name);
1235 msg_format(_("%^s¤¬<ÇËÌǤμê>¤òÊü¤Ã¤¿¡ª", "%^s invokes the Hand of Doom!"), m_name);
1236 dam = (((s32b)((40 + randint1(20)) * (p_ptr->chp))) / 100);
1237 breath(y, x, m_idx, GF_HAND_DOOM, dam, 0, FALSE, MS_HAND_DOOM, MONSTER_TO_PLAYER);
1241 void spell_RF6_HEAL(int m_idx)
1243 monster_type *m_ptr = &m_list[m_idx];
1244 int rlev = monster_level_idx(m_idx);
1245 bool seen = (!p_ptr->blind && m_ptr->ml);
1247 monster_name(m_idx, m_name);
1253 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1255 msg_format(_("%^s¤¬¼«Ê¬¤Î½ý¤Ë½¸Ã椷¤¿¡£", "%^s concentrates on %s wounds."), m_name);
1258 m_ptr->hp += (rlev * 6);
1261 if (m_ptr->hp >= m_ptr->maxhp)
1264 m_ptr->hp = m_ptr->maxhp;
1268 msg_format(_("%^s¤Ï´°Á´¤Ë¼£¤Ã¤¿¡ª", "%^s looks completely healed!"), m_name);
1270 msg_format(_("%^s¤Ï´°Á´¤Ë¼£¤Ã¤¿¤è¤¦¤À¡ª", "%^s sounds completely healed!"), m_name);
1273 /* Partially healed */
1278 msg_format(_("%^s¤ÏÂÎÎϤò²óÉü¤·¤¿¤è¤¦¤À¡£", "%^s looks healthier."), m_name);
1280 msg_format(_("%^s¤ÏÂÎÎϤò²óÉü¤·¤¿¤è¤¦¤À¡£", "%^s sounds healthier."), m_name);
1283 /* Redraw (later) if needed */
1284 if (p_ptr->health_who == m_idx) p_ptr->redraw |= (PR_HEALTH);
1285 if (p_ptr->riding == m_idx) p_ptr->redraw |= (PR_UHEALTH);
1288 if (MON_MONFEAR(m_ptr))
1291 (void)set_monster_monfear(m_idx, 0);
1294 msg_format(_("%^s¤Ïͦµ¤¤ò¼è¤êÌᤷ¤¿¡£", "%^s recovers %s courage."), m_name);
1297 void spell_RF6_INVULNER(int m_idx)
1299 monster_type *m_ptr = &m_list[m_idx];
1300 bool seen = (!p_ptr->blind && m_ptr->ml);
1302 monster_name(m_idx, m_name);
1307 msg_format(_("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."), m_name);
1309 msg_format(_("%s¤Ï̵½ý¤Îµå¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a Globe of Invulnerability."), m_name);
1311 if (!MON_INVULNER(m_ptr)) (void)set_monster_invulner(m_idx, randint1(4) + 4, FALSE);
1314 void spell_RF6_BLINK(int m_idx)
1317 monster_name(m_idx, m_name);
1320 if (teleport_barrier(m_idx))
1322 msg_format(_("ËâË¡¤Î¥Ð¥ê¥¢¤¬%^s¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¼ÙË⤷¤¿¡£",
1323 "Magic barrier obstructs teleporting of %^s."), m_name);
1327 msg_format(_("%^s¤¬½Ö»þ¤Ë¾Ã¤¨¤¿¡£", "%^s blinks away."), m_name);
1328 teleport_away(m_idx, 10, 0L);
1329 p_ptr->update |= (PU_MONSTERS);
1333 void spell_RF6_TPORT(int m_idx)
1336 monster_name(m_idx, m_name);
1339 if (teleport_barrier(m_idx))
1341 msg_format(_("ËâË¡¤Î¥Ð¥ê¥¢¤¬%^s¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¼ÙË⤷¤¿¡£",
1342 "Magic barrier obstructs teleporting of %^s."), m_name);
1346 msg_format(_("%^s¤¬¥Æ¥ì¥Ý¡¼¥È¤·¤¿¡£", "%^s teleports away."), m_name);
1347 teleport_away_followable(m_idx);
1351 int spell_RF6_WORLD(int m_idx)
1353 monster_type *m_ptr = &m_list[m_idx];
1356 monster_name(m_idx, m_name);
1359 if (m_ptr->r_idx == MON_DIO) who = 1;
1360 else if (m_ptr->r_idx == MON_WONG) who = 3;
1361 if (!process_the_world(randint1(2) + 2, who, TRUE)) return (FALSE);
1365 int spell_RF6_SPECIAL(int y, int x, int m_idx)
1367 monster_type *m_ptr = &m_list[m_idx];
1368 monster_race *r_ptr = &r_info[m_ptr->r_idx];
1370 bool direct = player_bold(y, x);
1371 int k, dam, count=0;
1373 monster_name(m_idx, m_name);
1376 switch (m_ptr->r_idx)
1379 /* Moved to process_monster(), like multiplication */
1381 case MON_BANORLUPART:
1383 int dummy_hp = (m_ptr->hp + 1) / 2;
1384 int dummy_maxhp = m_ptr->maxhp / 2;
1385 int dummy_y = m_ptr->fy;
1386 int dummy_x = m_ptr->fx;
1388 if (p_ptr->inside_arena || p_ptr->inside_battle || !summon_possible(m_ptr->fy, m_ptr->fx)) return -1;
1389 delete_monster_idx(cave[m_ptr->fy][m_ptr->fx].m_idx);
1390 summon_named_creature(0, dummy_y, dummy_x, MON_BANOR, mode);
1391 m_list[hack_m_idx_ii].hp = dummy_hp;
1392 m_list[hack_m_idx_ii].maxhp = dummy_maxhp;
1393 summon_named_creature(0, dummy_y, dummy_x, MON_LUPART, mode);
1394 m_list[hack_m_idx_ii].hp = dummy_hp;
1395 m_list[hack_m_idx_ii].maxhp = dummy_maxhp;
1397 msg_print(_("¡Ø¥Ð¡¼¥Î¡¼¥ë¡¦¥ë¥Ñ¡¼¥È¡Ù¤¬Ê¬Îö¤·¤¿¡ª","Banor=Rupart splits in two person!"));
1405 int dummy_maxhp = 0;
1406 int dummy_y = m_ptr->fy;
1407 int dummy_x = m_ptr->fx;
1409 if (!r_info[MON_BANOR].cur_num || !r_info[MON_LUPART].cur_num) return (FALSE);
1410 for (k = 1; k < m_max; k++)
1412 if (m_list[k].r_idx == MON_BANOR || m_list[k].r_idx == MON_LUPART)
1414 dummy_hp += m_list[k].hp;
1415 dummy_maxhp += m_list[k].maxhp;
1416 if (m_list[k].r_idx != m_ptr->r_idx)
1418 dummy_y = m_list[k].fy;
1419 dummy_x = m_list[k].fx;
1421 delete_monster_idx(k);
1424 summon_named_creature(0, dummy_y, dummy_x, MON_BANORLUPART, mode);
1425 m_list[hack_m_idx_ii].hp = dummy_hp;
1426 m_list[hack_m_idx_ii].maxhp = dummy_maxhp;
1428 msg_print(_("¡Ø¥Ð¡¼¥Î¡¼¥ë¡Ù¤È¡Ø¥ë¥Ñ¡¼¥È¡Ù¤¬¹çÂΤ·¤¿¡ª", "Banor and Rupart combine into one!"));
1434 msg_format(_("%^s¤¬²¿¤«ÂçÎ̤ËÅꤲ¤¿¡£", "%^s spreads something."), m_name);
1436 msg_format(_("%^s¤Ï¼êÜØÃƤò¤Ð¤é¤Þ¤¤¤¿¡£", "%^s throws some hand grenades."), m_name);
1439 int num = 1 + randint1(3);
1441 for (k = 0; k < num; k++)
1443 count += summon_named_creature(m_idx, y, x, MON_SHURYUUDAN, mode);
1447 if (p_ptr->blind && count)
1448 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¤Ð¤é¤Þ¤«¤ì¤ë²»¤¬¤¹¤ë¡£", "You hear many things are scattered nearby."));
1453 if (r_ptr->d_char == 'B')
1456 if (one_in_(3) || !direct)
1458 msg_format(_("%^s¤ÏÆÍÁ³»ë³¦¤«¤é¾Ã¤¨¤¿!", "%^s suddenly go out of your sight!"), m_name);
1459 teleport_away(m_idx, 10, TELEPORT_NONMAGICAL);
1460 p_ptr->update |= (PU_MONSTERS);
1465 bool fear; /* dummy */
1467 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤òÄϤó¤Ç¶õÃ椫¤éÅꤲÍî¤È¤·¤¿¡£",
1468 "%^s holds you, and drops from the sky."), m_name);
1469 dam = damroll(4, 8);
1470 teleport_player_to(m_ptr->fy, m_ptr->fx, TELEPORT_NONMAGICAL | TELEPORT_PASSIVE);
1474 if (p_ptr->levitation)
1476 msg_print(_("¤¢¤Ê¤¿¤ÏÀŤ«¤ËÃåÃϤ·¤¿¡£", "You float gently down to the ground."));
1480 msg_print(_("¤¢¤Ê¤¿¤ÏÃÏÌ̤ËᤤĤ±¤é¤ì¤¿¡£", "You crashed into the ground."));
1481 dam += damroll(6, 8);
1484 /* Mega hack -- this special action deals damage to the player. Therefore the code of "eyeeye" is necessary.
1487 get_damage = take_hit(DAMAGE_NOESCAPE, dam, m_name, -1);
1488 if (p_ptr->tim_eyeeye && get_damage > 0 && !p_ptr->is_dead)
1491 msg_format("¹¶·â¤¬%s¼«¿È¤ò½ý¤Ä¤±¤¿¡ª", m_name);
1493 char m_name_self[80];
1496 monster_desc(m_name_self, m_ptr, MD_PRON_VISIBLE | MD_POSSESSIVE | MD_OBJECTIVE);
1498 msg_format("The attack of %s has wounded %s!", m_name, m_name_self);
1500 project(0, 0, m_ptr->fy, m_ptr->fx, get_damage, GF_MISSILE, PROJECT_KILL, -1);
1501 set_tim_eyeeye(p_ptr->tim_eyeeye - 5, TRUE);
1504 if (p_ptr->riding) mon_take_hit_mon(p_ptr->riding, dam, &fear, extract_note_dies(real_r_ptr(&m_list[p_ptr->riding])), m_idx);
1509 /* Something is wrong */
1516 void spell_RF6_TELE_TO(int m_idx)
1518 monster_type *m_ptr = &m_list[m_idx];
1520 monster_name(m_idx, m_name);
1523 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ò°ú¤Ìᤷ¤¿¡£", "%^s commands you to return."), m_name);
1525 teleport_player_to(m_ptr->fy, m_ptr->fx, TELEPORT_PASSIVE);
1526 learn_spell(MS_TELE_TO);
1529 void spell_RF6_TELE_AWAY(int m_idx)
1532 monster_name(m_idx, m_name);
1535 msg_format(_("%^s¤Ë¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤é¤ì¤¿¡£", "%^s teleports you away."), m_name);
1536 if ((p_ptr->pseikaku == SEIKAKU_COMBAT) || (inventory[INVEN_BOW].name1 == ART_CRIMSON))
1537 msg_print(_("¤¯¤Ã¤½¡Á", ""));
1539 learn_spell(MS_TELE_AWAY);
1540 teleport_player_away(m_idx, 100);
1543 void spell_RF6_TELE_LEVEL(int m_idx)
1545 int rlev = monster_level_idx(m_idx);
1547 monster_name(m_idx, m_name);
1552 msg_format(_("%^s¤¬²¿¤«´ñ̯¤Ê¸ÀÍÕ¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles strangely."), m_name);
1554 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤Î¤ò»Ø¤µ¤·¤¿¡£", "%^s gestures at your feet."), m_name);
1556 if (p_ptr->resist_nexus)
1558 msg_print(_("¤·¤«¤·¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡ª", "You are unaffected!"));
1560 else if (randint0(100 + rlev / 2) < p_ptr->skill_sav)
1562 msg_print(_("¤·¤«¤·¸úÎϤòÄ·¤ÍÊÖ¤·¤¿¡ª", "You resist the effects!"));
1568 learn_spell(MS_TELE_LEVEL);
1569 update_smart_learn(m_idx, DRS_NEXUS);
1572 int spell_RF6_PSY_SPEAR(int y, int x, int m_idx)
1574 monster_type *m_ptr = &m_list[m_idx];
1575 monster_race *r_ptr = &r_info[m_ptr->r_idx];
1576 int rlev = monster_level_idx(m_idx);
1579 monster_name(m_idx, m_name);
1583 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1585 msg_format(_("%^s¤¬¸÷¤Î·õ¤òÊü¤Ã¤¿¡£", "%^s throw a Psycho-Spear."), m_name);
1587 dam = (r_ptr->flags2 & RF2_POWERFUL) ? (randint1(rlev * 2) + 150) : (randint1(rlev * 3 / 2) + 100);
1588 beam(m_idx, y, x, GF_PSY_SPEAR, dam, MS_PSY_SPEAR, MONSTER_TO_PLAYER);
1592 void spell_RF6_DARKNESS(int m_idx)
1594 monster_type *m_ptr = &m_list[m_idx];
1595 monster_race *r_ptr = &r_info[m_ptr->r_idx];
1596 bool can_use_lite_area = FALSE;
1598 monster_name(m_idx, m_name);
1600 if ((p_ptr->pclass == CLASS_NINJA) &&
1601 !(r_ptr->flags3 & (RF3_UNDEAD | RF3_HURT_LITE)) &&
1602 !(r_ptr->flags7 & RF7_DARK_MASK))
1603 can_use_lite_area = TRUE;
1607 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1608 else if (can_use_lite_area)
1609 msg_format(_("%^s¤¬ÊÕ¤ê¤òÌÀ¤ë¤¯¾È¤é¤·¤¿¡£", "%^s cast a spell to light up."), m_name);
1611 msg_format(_("%^s¤¬°Å°Ç¤ÎÃæ¤Ç¼ê¤ò¿¶¤Ã¤¿¡£", "%^s gestures in shadow."), m_name);
1613 if (can_use_lite_area)
1615 (void)lite_area(0, 3);
1619 learn_spell(MS_DARKNESS);
1620 (void)unlite_area(0, 3);
1624 void spell_RF6_TRAPS(int y, int x, int m_idx)
1627 monster_name(m_idx, m_name);
1631 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤Æ¼Ù°¤ËÈù¾Ð¤ó¤À¡£",
1632 "%^s mumbles, and then cackles evilly."), m_name);
1634 msg_format(_("%^s¤¬¼öʸ¤ò¾§¤¨¤Æ¼Ù°¤ËÈù¾Ð¤ó¤À¡£",
1635 "%^s casts a spell and cackles evilly."), m_name);
1637 learn_spell(MS_MAKE_TRAP);
1638 (void)trap_creation(y, x);
1641 void spell_RF6_FORGET(int m_idx)
1643 int rlev = monster_level_idx(m_idx);
1645 monster_name(m_idx, m_name);
1649 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤Îµ²±¤ò¾Ãµî¤·¤è¤¦¤È¤·¤Æ¤¤¤ë¡£",
1650 "%^s tries to blank your mind."), m_name);
1652 if (randint0(100 + rlev / 2) < p_ptr->skill_sav)
1654 msg_print(_("¤·¤«¤·¸úÎϤòÄ·¤ÍÊÖ¤·¤¿¡ª", "You resist the effects!"));
1656 else if (lose_all_info())
1658 msg_print(_("µ²±¤¬Çö¤ì¤Æ¤·¤Þ¤Ã¤¿¡£", "Your memories fade away."));
1660 learn_spell(MS_FORGET);
1663 void spell_RF6_RAISE_DEAD(int m_idx)
1665 monster_type *m_ptr = &m_list[m_idx];
1667 monster_name(m_idx, m_name);
1672 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1674 msg_format(_("%^s¤¬»à¼ÔÉü³è¤Î¼öʸ¤ò¾§¤¨¤¿¡£",
1675 "%^s casts a spell to revive corpses."), m_name);
1677 animate_dead(m_idx, m_ptr->fy, m_ptr->fx);
1680 void spell_RF6_S_KIN(int y, int x, int m_idx)
1682 monster_type *m_ptr = &m_list[m_idx];
1683 monster_race *r_ptr = &r_info[m_ptr->r_idx];
1684 int rlev = monster_level_idx(m_idx);
1688 monster_name(m_idx, m_name);
1691 if (m_ptr->r_idx == MON_SERPENT || m_ptr->r_idx == MON_ZOMBI_SERPENT)
1694 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1696 msg_format(_("%^s¤¬¥À¥ó¥¸¥ç¥ó¤Î¼ç¤ò¾¤´¤·¤¿¡£",
1697 "%^s magically summons guardians of dungeons."), m_name);
1702 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1705 msg_format("%^s¤ÏËâË¡¤Ç%s¤ò¾¤´¤·¤¿¡£",
1707 ((r_ptr->flags1) & RF1_UNIQUE ?
1710 msg_format("%^s magically summons %s %s.",
1712 ((r_ptr->flags1) & RF1_UNIQUE ?
1713 "minions" : "kin"));
1717 switch (m_ptr->r_idx)
1723 int num = 4 + randint1(3);
1724 for (k = 0; k < num; k++)
1726 count += summon_specific(m_idx, y, x, rlev, SUMMON_EAGLES, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
1733 int num = 2 + randint1(3);
1734 for (k = 0; k < num; k++)
1736 count += summon_named_creature(m_idx, y, x, MON_IE, mode);
1742 case MON_ZOMBI_SERPENT:
1744 int num = 2 + randint1(3);
1746 if (r_info[MON_JORMUNGAND].cur_num < r_info[MON_JORMUNGAND].max_num && one_in_(6))
1748 msg_print(_("ÃÏÌ̤«¤é¿å¤¬¿á¤½Ð¤·¤¿¡ª", "Water blew off from the ground!"));
1749 fire_ball_hide(GF_WATER_FLOW, 0, 3, 8);
1752 for (k = 0; k < num; k++)
1754 count += summon_specific(m_idx, y, x, rlev, SUMMON_GUARDIANS, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
1761 int num = randint1(3);
1762 for (k = 0; k < num; k++)
1764 count += summon_named_creature(m_idx, y, x, MON_LOCKE_CLONE, mode);
1771 int num = 2 + randint1(3);
1772 for (k = 0; k < num; k++)
1774 count += summon_specific(m_idx, y, x, rlev, SUMMON_LOUSE, PM_ALLOW_GROUP);
1780 summon_kin_type = r_ptr->d_char; /* Big hack */
1782 for (k = 0; k < 4; k++)
1784 count += summon_specific(m_idx, y, x, rlev, SUMMON_KIN, PM_ALLOW_GROUP);
1789 if (p_ptr->blind && count)
1790 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear many things appear nearby."));
1793 void spell_RF6_S_CYBER(int y, int x, int m_idx)
1797 monster_name(m_idx, m_name);
1802 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1804 msg_format(_("%^s¤¬¥µ¥¤¥Ð¡¼¥Ç¡¼¥â¥ó¤ò¾¤´¤·¤¿¡ª",
1805 "%^s magically summons Cyberdemons!"), m_name);
1807 count = summon_cyber(m_idx, y, x);
1809 if (p_ptr->blind && count)
1810 msg_print(_("½Å¸ü¤Ê²»¤¬¶á¤¯¤Çʹ¤³¤¨¤ë¡£", "You hear heavy steps nearby."));
1813 void spell_RF6_S_MONSTER(int y, int x, int m_idx)
1815 int rlev = monster_level_idx(m_idx);
1818 monster_name(m_idx, m_name);
1823 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1825 msg_format(_("%^s¤¬ËâË¡¤ÇÃç´Ö¤ò¾¤´¤·¤¿¡ª", "%^s magically summons help!"), m_name);
1827 for (k = 0; k < 1; k++)
1829 count += summon_specific(m_idx, y, x, rlev, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
1831 if (p_ptr->blind && count)
1832 msg_print(_("²¿¤«¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear something appear nearby."));
1835 void spell_RF6_S_MONSTERS(int y, int x, int m_idx)
1837 int rlev = monster_level_idx(m_idx);
1840 monster_name(m_idx, m_name);
1845 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1847 msg_format(_("%^s¤¬ËâË¡¤Ç¥â¥ó¥¹¥¿¡¼¤ò¾¤´¤·¤¿¡ª", "%^s magically summons monsters!"), m_name);
1849 for (k = 0; k < S_NUM_6; k++)
1851 count += summon_specific(m_idx, y, x, rlev, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
1854 if (p_ptr->blind && count)
1855 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear many things appear nearby."));
1858 void spell_RF6_S_ANT(int y, int x, int m_idx)
1860 int rlev = monster_level_idx(m_idx);
1863 monster_name(m_idx, m_name);
1868 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1870 msg_format(_("%^s¤¬ËâË¡¤Ç¥¢¥ê¤ò¾¤´¤·¤¿¡£", "%^s magically summons ants."), m_name);
1872 for (k = 0; k < S_NUM_6; k++)
1874 count += summon_specific(m_idx, y, x, rlev, SUMMON_ANT, PM_ALLOW_GROUP);
1877 if (p_ptr->blind && count)
1878 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear many things appear nearby."));
1881 void spell_RF6_S_SPIDER(int y, int x, int m_idx)
1883 int rlev = monster_level_idx(m_idx);
1886 monster_name(m_idx, m_name);
1891 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1893 msg_format(_("%^s¤¬ËâË¡¤Ç¥¯¥â¤ò¾¤´¤·¤¿¡£", "%^s magically summons spiders."), m_name);
1895 for (k = 0; k < S_NUM_6; k++)
1897 count += summon_specific(m_idx, y, x, rlev, SUMMON_SPIDER, PM_ALLOW_GROUP);
1900 if (p_ptr->blind && count)
1901 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear many things appear nearby."));
1904 void spell_RF6_S_HOUND(int y, int x, int m_idx)
1906 int rlev = monster_level_idx(m_idx);
1909 monster_name(m_idx, m_name);
1914 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1916 msg_format(_("%^s¤¬ËâË¡¤Ç¥Ï¥¦¥ó¥É¤ò¾¤´¤·¤¿¡£", "%^s magically summons hounds."), m_name);
1918 for (k = 0; k < S_NUM_4; k++)
1920 count += summon_specific(m_idx, y, x, rlev, SUMMON_HOUND, PM_ALLOW_GROUP);
1923 if (p_ptr->blind && count)
1924 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear many things appear nearby."));
1927 void spell_RF6_S_HYDRA(int y, int x, int m_idx)
1929 int rlev = monster_level_idx(m_idx);
1932 monster_name(m_idx, m_name);
1937 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1939 msg_format(_("%^s¤¬ËâË¡¤Ç¥Ò¥É¥é¤ò¾¤´¤·¤¿¡£", "%^s magically summons hydras."), m_name);
1941 for (k = 0; k < S_NUM_4; k++)
1943 count += summon_specific(m_idx, y, x, rlev, SUMMON_HYDRA, PM_ALLOW_GROUP);
1945 if (p_ptr->blind && count)
1946 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear many things appear nearby."));
1949 void spell_RF6_S_ANGEL(int y, int x, int m_idx)
1951 monster_type *m_ptr = &m_list[m_idx];
1952 monster_race *r_ptr = &r_info[m_ptr->r_idx];
1953 int rlev = monster_level_idx(m_idx);
1957 monster_name(m_idx, m_name);
1962 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1964 msg_format(_("%^s¤¬ËâË¡¤ÇÅ·»È¤ò¾¤´¤·¤¿¡ª", "%^s magically summons an angel!"), m_name);
1966 if ((r_ptr->flags1 & RF1_UNIQUE) && !easy_band)
1968 num += r_ptr->level / 40;
1971 for (k = 0; k < num; k++)
1973 count += summon_specific(m_idx, y, x, rlev, SUMMON_ANGEL, PM_ALLOW_GROUP);
1978 if (p_ptr->blind && count)
1979 msg_print(_("²¿¤«¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear something appear nearby."));
1984 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear many things appear nearby."));
1988 void spell_RF6_S_DEMON(int y, int x, int m_idx)
1990 int rlev = monster_level_idx(m_idx);
1993 monster_name(m_idx, m_name);
1998 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
2000 msg_format(_("%^s¤ÏËâË¡¤Çº®Æ٤εÜÄ¤é°Ëâ¤ò¾¤´¤·¤¿¡ª",
2001 "%^s magically summons a demon from the Courts of Chaos!"), m_name);
2003 for (k = 0; k < 1; k++)
2005 count += summon_specific(m_idx, y, x, rlev, SUMMON_DEMON, PM_ALLOW_GROUP);
2008 if (p_ptr->blind && count)
2009 msg_print(_("²¿¤«¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear something appear nearby."));
2012 void spell_RF6_S_UNDEAD(int y, int x, int m_idx)
2014 int rlev = monster_level_idx(m_idx);
2017 monster_name(m_idx, m_name);
2022 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
2024 msg_format(_("%^s¤¬ËâË¡¤Ç¥¢¥ó¥Ç¥Ã¥É¤Î¶¯Å¨¤ò¾¤´¤·¤¿¡ª",
2025 "%^s magically summons an undead adversary!"), m_name);
2027 for (k = 0; k < 1; k++)
2029 count += summon_specific(m_idx, y, x, rlev, SUMMON_UNDEAD, PM_ALLOW_GROUP);
2032 if (p_ptr->blind && count)
2033 msg_print(_("²¿¤«¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear something appear nearby."));
2036 void spell_RF6_S_DRAGON(int y, int x, int m_idx)
2038 int rlev = monster_level_idx(m_idx);
2041 monster_name(m_idx, m_name);
2046 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
2048 msg_format(_("%^s¤¬ËâË¡¤Ç¥É¥é¥´¥ó¤ò¾¤´¤·¤¿¡ª", "%^s magically summons a dragon!"), m_name);
2050 for (k = 0; k < 1; k++)
2052 count += summon_specific(m_idx, y, x, rlev, SUMMON_DRAGON, PM_ALLOW_GROUP);
2054 if (p_ptr->blind && count)
2055 msg_print(_("²¿¤«¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear something appear nearby."));
2058 void spell_RF6_S_HI_UNDEAD(int y, int x, int m_idx)
2060 char* m_name = monster_name(m_idx, "");
2061 monster_type *m_ptr = &m_list[m_idx];
2062 monster_race *r_ptr = &r_info[m_ptr->r_idx];
2063 int rlev = monster_level_idx(m_idx);
2068 if (((m_ptr->r_idx == MON_MORGOTH) || (m_ptr->r_idx == MON_SAURON) || (m_ptr->r_idx == MON_ANGMAR)) && ((r_info[MON_NAZGUL].cur_num + 2) < r_info[MON_NAZGUL].max_num))
2074 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
2076 msg_format(_("%^s¤¬ËâË¡¤ÇÍ©µ´ÀïÂâ¤ò¾¤´¤·¤¿¡ª", "%^s magically summons rangers of Nazgul!"), m_name);
2080 for (k = 0; k < 30; k++)
2082 if (!summon_possible(cy, cx) || !cave_empty_bold(cy, cx))
2085 for (j = 100; j > 0; j--)
2087 scatter(&cy, &cx, y, x, 2, 0);
2088 if (cave_empty_bold(cy, cx)) break;
2092 if (!cave_empty_bold(cy, cx)) continue;
2094 if (summon_named_creature(m_idx, cy, cx, MON_NAZGUL, mode))
2100 msg_format(_("¡ÖÍ©µ´ÀïÂâ%d¹æ¡¢¥Ê¥º¥°¥ë¡¦¥Ö¥é¥Ã¥¯¡ª¡×",
2101 "A Nazgul says 'Nazgul-Rangers Number %d, Nazgul-Black!'"), count);
2103 msg_format(_("¡ÖƱ¤¸¤¯%d¹æ¡¢¥Ê¥º¥°¥ë¡¦¥Ö¥é¥Ã¥¯¡ª¡×",
2104 "Another one says 'Number %d, Nazgul-Black!'"), count);
2109 msg_format(_("¡Ö%d¿Í¤½¤í¤Ã¤Æ¡¢¥ê¥ó¥°¥ì¥ó¥¸¥ã¡¼¡ª¡×",
2110 "They say 'The %d meets! We are the Ring-Ranger!'."), count);
2116 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
2118 msg_format(_("%^s¤¬ËâË¡¤Ç¶¯ÎϤʥ¢¥ó¥Ç¥Ã¥É¤ò¾¤´¤·¤¿¡ª",
2119 "%^s magically summons greater undead!"), m_name);
2121 for (k = 0; k < S_NUM_6; k++)
2123 count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_UNDEAD, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
2126 if (p_ptr->blind && count)
2128 msg_print(_("´Ö¶á¤Ç²¿¤«Â¿¤¯¤Î¤â¤Î¤¬Ç礤²ó¤ë²»¤¬Ê¹¤³¤¨¤ë¡£",
2129 "You hear many creepy things appear nearby."));
2134 void spell_RF6_S_HI_DRAGON(int y, int x, int m_idx)
2136 char* m_name = monster_name(m_idx, "");
2137 int rlev = monster_level_idx(m_idx);
2142 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
2144 msg_format(_("%^s¤¬ËâË¡¤Ç¸ÅÂå¥É¥é¥´¥ó¤ò¾¤´¤·¤¿¡ª", "%^s magically summons ancient dragons!"), m_name);
2146 for (k = 0; k < S_NUM_4; k++)
2148 count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_DRAGON, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
2150 if (p_ptr->blind && count)
2152 msg_print(_("¿¤¯¤ÎÎ϶¯¤¤¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬Ê¹¤³¤¨¤ë¡£",
2153 "You hear many powerful things appear nearby."));
2157 void spell_RF6_S_AMBERITES(int y, int x, int m_idx)
2159 char* m_name = monster_name(m_idx, "");
2160 int rlev = monster_level_idx(m_idx);
2165 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
2167 msg_format(_("%^s¤¬¥¢¥ó¥Ð¡¼¤Î²¦Â²¤ò¾¤´¤·¤¿¡ª", "%^s magically summons Lords of Amber!"), m_name);
2169 for (k = 0; k < S_NUM_4; k++)
2171 count += summon_specific(m_idx, y, x, rlev, SUMMON_AMBERITES, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
2173 if (p_ptr->blind && count)
2175 msg_print(_("ÉÔ»à¤Î¼Ô¤¬¶á¤¯¤Ë¸½¤ì¤ë¤Î¤¬Ê¹¤³¤¨¤¿¡£", "You hear immortal beings appear nearby."));
2179 void spell_RF6_S_UNIQUE(int y, int x, int m_idx)
2181 char* m_name = monster_name(m_idx, "");
2182 monster_type *m_ptr = &m_list[m_idx];
2183 int rlev = monster_level_idx(m_idx);
2185 bool uniques_are_summoned = FALSE;
2186 int non_unique_type = SUMMON_HI_UNDEAD;
2191 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
2193 msg_format(_("%^s¤¬ËâË¡¤ÇÆÃÊ̤ʶ¯Å¨¤ò¾¤´¤·¤¿¡ª", "%^s magically summons special opponents!"), m_name);
2195 for (k = 0; k < S_NUM_4; k++)
2197 count += summon_specific(m_idx, y, x, rlev, SUMMON_UNIQUE, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
2200 if (count) uniques_are_summoned = TRUE;
2202 if ((m_ptr->sub_align & (SUB_ALIGN_GOOD | SUB_ALIGN_EVIL)) == (SUB_ALIGN_GOOD | SUB_ALIGN_EVIL))
2203 non_unique_type = 0;
2204 else if (m_ptr->sub_align & SUB_ALIGN_GOOD)
2205 non_unique_type = SUMMON_ANGEL;
2207 for (k = count; k < S_NUM_4; k++)
2209 count += summon_specific(m_idx, y, x, rlev, non_unique_type, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
2212 if (p_ptr->blind && count)
2214 msg_format(_("¿¤¯¤Î%s¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬Ê¹¤³¤¨¤ë¡£", "You hear many %s appear nearby."),
2215 uniques_are_summoned ? _("Î϶¯¤¤¤â¤Î", "powerful things") : _("¤â¤Î", "things"));