3 cptr monster_name(int m_idx)
5 static char m_name[80];
6 monster_type *m_ptr = &m_list[m_idx];
7 monster_desc(m_name, m_ptr, 0x00);
11 /* 2 monster each is near by player, return true */
12 bool monster_near_player(int m_idx, int t_idx)
14 monster_type *m_ptr = &m_list[m_idx];
15 monster_type *t_ptr = &m_list[t_idx];
16 return (m_ptr->cdis <= MAX_SIGHT) || (t_ptr->cdis <= MAX_SIGHT);
19 /* player can see monster, return true */
20 bool see_monster(int m_idx)
22 monster_type *m_ptr = &m_list[m_idx];
23 return is_seen(m_ptr);
26 bool spell_learnable(int m_idx)
28 monster_type *m_ptr = &m_list[m_idx];
29 /* Extract the "see-able-ness" */
30 bool seen = (!p_ptr->blind && m_ptr->ml);
32 bool maneable = player_has_los_bold(m_ptr->fy, m_ptr->fx);
33 return (seen && maneable && !world_monster);
36 int monster_level_idx(int m_idx)
38 monster_type *m_ptr = &m_list[m_idx];
39 monster_race *r_ptr = &r_info[m_ptr->r_idx];
40 int rlev = ((r_ptr->level >= 1) ? r_ptr->level : 1);
44 void MP_spell_RF4_SHRIEK(int m_idx)
46 cptr m_name = monster_name(m_idx);
48 msg_format(_("%^s¤¬¤«¤ó¹â¤¤¶âÀÚ¤êÀ¼¤ò¤¢¤²¤¿¡£", "%^s makes a high pitched shriek."), m_name);
49 aggravate_monsters(m_idx);
52 void MM_spell_RF4_SHRIEK(int m_idx, int t_idx)
54 cptr m_name = monster_name(m_idx);
55 cptr t_name = monster_name(t_idx);
56 bool known = monster_near_player(m_idx, t_idx);
57 bool see_m = see_monster(m_idx);
62 msg_format(_("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¶«¤ó¤À¡£", "%^s shrieks at %s."), m_name, t_name);
69 (void)set_monster_csleep(t_idx, 0);
72 void MP_spell_RF4_DISPEL(int m_idx)
74 cptr m_name = monster_name(m_idx);
78 msg_format(_("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."), m_name);
80 msg_format(_("%^s¤¬ËâÎϾõî¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a dispel magic."), m_name);
83 if (p_ptr->riding) dispel_monster_status(p_ptr->riding);
85 if ((p_ptr->pseikaku == SEIKAKU_COMBAT) || (inventory[INVEN_BOW].name1 == ART_CRIMSON))
86 msg_print(_("¤ä¤ê¤ä¤¬¤Ã¤¿¤Ê¡ª", ""));
88 learn_spell(MS_DISPEL);
91 void MM_spell_RF4_DISPEL(int m_idx, int t_idx)
93 cptr m_name = monster_name(m_idx);
94 cptr t_name = monster_name(t_idx);
95 bool known = monster_near_player(m_idx, t_idx);
96 bool see_m = see_monster(m_idx);
101 msg_format(_("%^s¤¬%s¤ËÂФ·¤ÆËâÎϾõî¤Î¼öʸ¤òÇ°¤¸¤¿¡£",
102 "%^s invokes a dispel magic at %s."), m_name, t_name);
110 if (t_idx == p_ptr->riding) dispel_player();
111 dispel_monster_status(t_idx);
114 int spell_RF4_ROCKET(int y, int x, int m_idx, int TARGET_TYPE)
117 monster_type *m_ptr = &m_list[m_idx];
119 dam = (m_ptr->hp / 4) > 800 ? 800 : (m_ptr->hp / 4);
120 breath(y, x, m_idx, GF_ROCKET, dam, 2, FALSE, MS_ROCKET, TARGET_TYPE);
121 if (TARGET_TYPE == MONSTER_TO_PLAYER)
123 update_smart_learn(m_idx, DRS_SHARD);
128 int MP_spell_RF4_ROCKET(int y, int x, int m_idx)
130 cptr m_name = monster_name(m_idx);
133 msg_format(_("%^s¤¬²¿¤«¤ò¼Í¤Ã¤¿¡£", "%^s shoots something."), m_name);
135 msg_format(_("%^s¤¬¥í¥±¥Ã¥È¤òȯ¼Í¤·¤¿¡£", "%^s fires a rocket."), m_name);
137 return spell_RF4_ROCKET(y, x, m_idx, MONSTER_TO_PLAYER);
140 int MM_spell_RF4_ROCKET(int y, int x, int m_idx, int t_idx)
142 cptr m_name = monster_name(m_idx);
143 cptr t_name = monster_name(t_idx);
145 bool known = monster_near_player(m_idx, t_idx);
146 bool see_either = see_monster(m_idx) || see_monster(t_idx);
155 msg_format(_("%^s¤¬²¿¤«¤ò¼Í¤Ã¤¿¡£", "%^s shoots something."), m_name);
159 msg_format(_("%^s¤¬%s¤Ë¥í¥±¥Ã¥È¤òȯ¼Í¤·¤¿¡£", "%^s fires a rocket at %s."), m_name, t_name);
167 return spell_RF4_ROCKET(y, x, m_idx, MONSTER_TO_MONSTER);
170 int spell_RF4_SHOOT(int y, int x, int m_idx, int TARGET_TYPE)
173 monster_type *m_ptr = &m_list[m_idx];
174 monster_race *r_ptr = &r_info[m_ptr->r_idx];
176 dam = damroll(r_ptr->blow[0].d_dice, r_ptr->blow[0].d_side);
177 bolt(m_idx, y, x, GF_ARROW, dam, MS_SHOOT, TARGET_TYPE);
183 int MP_spell_RF4_SHOOT(int y, int x, int m_idx)
185 bool learnable = spell_learnable(m_idx);
186 cptr m_name = monster_name(m_idx);
190 msg_format(_("%^s¤¬´ñ̯¤Ê²»¤òȯ¤·¤¿¡£", "%^s makes a strange noise."), m_name);
192 msg_format(_("%^s¤¬Ìð¤òÊü¤Ã¤¿¡£", "%^s fires an arrow."), m_name);
194 return spell_RF4_SHOOT(y, x, m_idx, MONSTER_TO_PLAYER);
197 int MM_spell_RF4_SHOOT(int y, int x, int m_idx, int t_idx)
199 cptr m_name = monster_name(m_idx);
200 cptr t_name = monster_name(t_idx);
201 bool known = monster_near_player(m_idx, t_idx);
202 bool see_either = see_monster(m_idx) || see_monster(t_idx);
209 msg_format(_("%^s¤¬´ñ̯¤Ê²»¤òȯ¤·¤¿¡£", "%^s makes a strange noise."), m_name);
213 msg_format(_("%^s¤¬%s¤ËÌð¤òÊü¤Ã¤¿¡£", "%^s fires an arrow at %s."), m_name, t_name);
221 return spell_RF4_SHOOT(y, x, m_idx, MONSTER_TO_MONSTER);
224 int spell_RF4_BREATH(int GF_TYPE, int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
226 bool learnable = spell_learnable(m_idx);
227 int dam, ms_type, drs_type;
229 bool smart_learn = TRUE;
230 cptr m_name = monster_name(m_idx);
231 cptr t_name = monster_name(t_idx);
232 monster_type *m_ptr = &m_list[m_idx];
233 bool known = monster_near_player(m_idx, t_idx);
234 bool see_either = see_monster(m_idx) || see_monster(t_idx);
239 dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
240 type_s = _("»À", "acid");
241 ms_type = MS_BR_ACID;
245 dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
246 type_s = _("°ðºÊ", "lightning");
247 ms_type = MS_BR_ELEC;
251 dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
252 type_s = _("²Ð±ê", "fire");
253 ms_type = MS_BR_FIRE;
257 dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
258 type_s = _("Î䵤", "frost");
259 ms_type = MS_BR_COLD;
263 dam = ((m_ptr->hp / 3) > 800 ? 800 : (m_ptr->hp / 3));
264 type_s = _("¥¬¥¹", "gas");
265 ms_type = MS_BR_POIS;
269 dam = ((m_ptr->hp / 6) > 550 ? 550 : (m_ptr->hp / 6));
270 type_s = _("ÃϹö", "nether");
271 ms_type = MS_BR_NETHER;
275 dam = ((m_ptr->hp / 6) > 400 ? 400 : (m_ptr->hp / 6));
276 type_s = _("Á®¸÷", "light");
277 ms_type = MS_BR_LITE;
281 dam = ((m_ptr->hp / 6) > 400 ? 400 : (m_ptr->hp / 6));
282 type_s = _("°Å¹õ", "darkness");
283 ms_type = MS_BR_DARK;
287 dam = ((m_ptr->hp / 6) > 450 ? 450 : (m_ptr->hp / 6));
288 type_s = _("º®Íð", "confusion");
289 ms_type = MS_BR_CONF;
293 dam = ((m_ptr->hp / 6) > 450 ? 450 : (m_ptr->hp / 6));
294 type_s = _("¹ì²»", "sound");
295 ms_type = MS_BR_SOUND;
296 drs_type = DRS_SOUND;
299 dam = ((m_ptr->hp / 6) > 600 ? 600 : (m_ptr->hp / 6));
300 type_s = _("¥«¥ª¥¹", "chaos");
301 ms_type = MS_BR_CHAOS;
302 drs_type = DRS_CHAOS;
305 dam = ((m_ptr->hp / 6) > 500 ? 500 : (m_ptr->hp / 6));
306 type_s = _("Îô²½", "disenchantment");
307 ms_type = MS_BR_DISEN;
308 drs_type = DRS_DISEN;
311 dam = ((m_ptr->hp / 3) > 250 ? 250 : (m_ptr->hp / 3));
312 type_s = _("°ø²Ìº®Íð", "nexus");
313 ms_type = MS_BR_NEXUS;
314 drs_type = DRS_NEXUS;
317 dam = ((m_ptr->hp / 3) > 150 ? 150 : (m_ptr->hp / 3));
318 type_s = _("»þ´ÖµÕž", "time");
319 ms_type = MS_BR_TIME;
323 dam = ((m_ptr->hp / 6) > 200 ? 200 : (m_ptr->hp / 6));
324 type_s = _("ÃÙÆß", "inertia");
325 ms_type = MS_BR_INERTIA;
329 dam = ((m_ptr->hp / 3) > 200 ? 200 : (m_ptr->hp / 3));
330 type_s = _("½ÅÎÏ", "gravity");
331 ms_type = MS_BR_GRAVITY;
335 dam = ((m_ptr->hp / 6) > 500 ? 500 : (m_ptr->hp / 6));
336 type_s = _("ÇËÊÒ", "shards");
337 ms_type = MS_BR_SHARDS;
338 drs_type = DRS_SHARD;
341 dam = ((m_ptr->hp / 6) > 150 ? 150 : (m_ptr->hp / 6));
342 type_s = _("¥×¥é¥º¥Þ", "plasma");
343 ms_type = MS_BR_PLASMA;
347 dam = ((m_ptr->hp / 6) > 200 ? 200 : (m_ptr->hp / 6));
348 type_s = _("¥Õ¥©¡¼¥¹", "force");
349 ms_type = MS_BR_FORCE;
353 dam = ((m_ptr->hp / 3) > 250 ? 250 : (m_ptr->hp / 3));
354 type_s = _("ËâÎÏ", "mana");
355 ms_type = MS_BR_MANA;
359 dam = ((m_ptr->hp / 3) > 800 ? 800 : (m_ptr->hp / 3));
360 type_s = _("Êü¼ÍÀÇÑ´þʪ", "toxic waste");
361 ms_type = MS_BR_NUKE;
364 case GF_DISINTEGRATE:
365 dam = ((m_ptr->hp / 6) > 150 ? 150 : (m_ptr->hp / 6));
366 type_s = _("ʬ²ò", "disintegration");
367 ms_type = MS_BR_DISI;
375 if (m_ptr->r_idx == MON_JAIAN && GF_TYPE == GF_SOUND)
377 msg_format(_("¡Ö¥Ü¥©¥¨¡Á¡Á¡Á¡Á¡Á¡Á¡×", "'Booooeeeeee'"));
379 else if (m_ptr->r_idx == MON_BOTEI && GF_TYPE == GF_SHARDS)
381 msg_format(_("¡Ö¥ÜÄë¥Ó¥ë¥«¥Ã¥¿¡¼¡ª¡ª¡ª¡×", "'Boty-Build cutter!!!'"));
383 else if (p_ptr->blind)
385 if (TARGET_TYPE == MONSTER_TO_PLAYER ||
386 ((TARGET_TYPE == MONSTER_TO_MONSTER) && known && see_either))
387 msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
391 if (TARGET_TYPE == MONSTER_TO_PLAYER)
393 msg_format(_("%^s¤¬%^s¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes %^s."), m_name, type_s);
395 else if ((TARGET_TYPE == MONSTER_TO_MONSTER) && known && see_either)
397 _(msg_format("%^s¤¬%^s¤Ë%^s¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name, t_name, type_s),
398 msg_format("%^s breathes %^s at %^s.", m_name, type_s, t_name));
402 if (known && !see_either)
406 breath(y, x, m_idx, GF_TYPE, dam, 0, TRUE, ms_type, TARGET_TYPE);
407 if (smart_learn && TARGET_TYPE == MONSTER_TO_PLAYER)
408 update_smart_learn(m_idx, drs_type);
412 int MP_spell_RF4_BREATH(int GF_TYPE, int y, int x, int m_idx)
414 return spell_RF4_BREATH(GF_TYPE, y, x, m_idx, 0, MONSTER_TO_PLAYER);
417 int MM_spell_RF4_BREATH(int GF_TYPE, int y, int x, int m_idx, int t_idx)
419 return spell_RF4_BREATH(GF_TYPE, y, x, m_idx, t_idx, MONSTER_TO_MONSTER);
422 int spell_RF4_BA_CHAO(int y, int x, int m_idx)
424 bool learnable = spell_learnable(m_idx);
425 cptr m_name = monster_name(m_idx);
426 monster_type *m_ptr = &m_list[m_idx];
427 monster_race *r_ptr = &r_info[m_ptr->r_idx];
428 int rlev = monster_level_idx(m_idx);
434 msg_format(_("%^s¤¬¶²¤í¤·¤²¤Ë¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles frighteningly."), m_name);
436 msg_format(_("%^s¤¬½ã¥í¥°¥ë¥¹¤òÊü¤Ã¤¿¡£", "%^s invokes a raw Logrus."), m_name);
438 dam = ((r_ptr->flags2 & RF2_POWERFUL) ? (rlev * 3) : (rlev * 2)) + damroll(10, 10);
440 breath(y, x, m_idx, GF_CHAOS, dam, 4, FALSE, MS_BALL_CHAOS, MONSTER_TO_PLAYER);
441 update_smart_learn(m_idx, DRS_CHAOS);
445 int spell_RF4_BA_NUKE(int y, int x, int m_idx)
447 bool learnable = spell_learnable(m_idx);
448 cptr m_name = monster_name(m_idx);
449 monster_type *m_ptr = &m_list[m_idx];
450 monster_race *r_ptr = &r_info[m_ptr->r_idx];
451 int rlev = monster_level_idx(m_idx);
456 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
458 msg_format(_("%^s¤¬Êü¼Íǽµå¤òÊü¤Ã¤¿¡£", "%^s casts a ball of radiation."), m_name);
460 dam = (rlev + damroll(10, 6)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
462 breath(y, x, m_idx, GF_NUKE, dam, 2, FALSE, MS_BALL_NUKE, MONSTER_TO_PLAYER);
463 update_smart_learn(m_idx, DRS_POIS);
467 int spell_RF5_BA_ACID(int y, int x, int m_idx)
469 bool learnable = spell_learnable(m_idx);
470 cptr m_name = monster_name(m_idx);
471 monster_type *m_ptr = &m_list[m_idx];
472 monster_race *r_ptr = &r_info[m_ptr->r_idx];
473 int rlev = monster_level_idx(m_idx);
478 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
480 msg_format(_("%^s¤¬¥¢¥·¥Ã¥É¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts an acid ball."), m_name);
482 if (r_ptr->flags2 & RF2_POWERFUL)
485 dam = (rlev * 4) + 50 + damroll(10, 10);
490 dam = (randint1(rlev * 3) + 15);
492 breath(y, x, m_idx, GF_ACID, dam, rad, FALSE, MS_BALL_ACID, MONSTER_TO_PLAYER);
493 update_smart_learn(m_idx, DRS_ACID);
497 int spell_RF5_BA_ELEC(int y, int x, int m_idx)
499 bool learnable = spell_learnable(m_idx);
500 cptr m_name = monster_name(m_idx);
501 monster_type *m_ptr = &m_list[m_idx];
502 monster_race *r_ptr = &r_info[m_ptr->r_idx];
503 int rlev = monster_level_idx(m_idx);
508 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
510 msg_format(_("%^s¤¬¥µ¥ó¥À¡¼¡¦¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a lightning ball."), m_name);
512 if (r_ptr->flags2 & RF2_POWERFUL)
515 dam = (rlev * 4) + 50 + damroll(10, 10);
520 dam = (randint1(rlev * 3 / 2) + 8);
522 breath(y, x, m_idx, GF_ELEC, dam, rad, FALSE, MS_BALL_ELEC, MONSTER_TO_PLAYER);
523 update_smart_learn(m_idx, DRS_ELEC);
527 int spell_RF5_BA_FIRE(int y, int x, int m_idx)
529 bool learnable = spell_learnable(m_idx);
530 cptr m_name = monster_name(m_idx);
531 monster_type *m_ptr = &m_list[m_idx];
532 monster_race *r_ptr = &r_info[m_ptr->r_idx];
533 int rlev = monster_level_idx(m_idx);
537 if (m_ptr->r_idx == MON_ROLENTO)
540 msg_format(_("%s¤¬²¿¤«¤òÅꤲ¤¿¡£", "%^s throws something."), m_name);
542 msg_format(_("%s¤Ï¼êÜØÃƤòÅꤲ¤¿¡£", "%^s throws a hand grenade."), m_name);
547 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
549 msg_format(_("%^s¤¬¥Õ¥¡¥¤¥¢¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a fire ball."), m_name);
552 if (r_ptr->flags2 & RF2_POWERFUL)
555 dam = (rlev * 4) + 50 + damroll(10, 10);
560 dam = (randint1(rlev * 7 / 2) + 10);
562 breath(y, x, m_idx, GF_FIRE, dam, rad, FALSE, MS_BALL_FIRE, MONSTER_TO_PLAYER);
563 update_smart_learn(m_idx, DRS_FIRE);
567 int spell_RF5_BA_COLD(int y, int x, int m_idx)
569 bool learnable = spell_learnable(m_idx);
570 cptr m_name = monster_name(m_idx);
571 monster_type *m_ptr = &m_list[m_idx];
572 monster_race *r_ptr = &r_info[m_ptr->r_idx];
573 int rlev = monster_level_idx(m_idx);
578 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
580 msg_format(_("%^s¤¬¥¢¥¤¥¹¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a frost ball."), m_name);
582 if (r_ptr->flags2 & RF2_POWERFUL)
585 dam = (rlev * 4) + 50 + damroll(10, 10);
590 dam = (randint1(rlev * 3 / 2) + 10);
592 breath(y, x, m_idx, GF_COLD, dam, rad, FALSE, MS_BALL_COLD, MONSTER_TO_PLAYER);
593 update_smart_learn(m_idx, DRS_COLD);
597 int spell_RF5_BA_POIS(int y, int x, int m_idx)
599 bool learnable = spell_learnable(m_idx);
600 cptr m_name = monster_name(m_idx);
601 monster_type *m_ptr = &m_list[m_idx];
602 monster_race *r_ptr = &r_info[m_ptr->r_idx];
603 int rlev = monster_level_idx(m_idx);
608 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
610 msg_format(_("%^s¤¬°½±À¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a stinking cloud."), m_name);
612 dam = damroll(12, 2) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
613 breath(y, x, m_idx, GF_POIS, dam, 2, FALSE, MS_BALL_POIS, MONSTER_TO_PLAYER);
614 update_smart_learn(m_idx, DRS_POIS);
618 int spell_RF5_BA_NETH(int y, int x, int m_idx)
620 bool learnable = spell_learnable(m_idx);
621 cptr m_name = monster_name(m_idx);
622 monster_type *m_ptr = &m_list[m_idx];
623 monster_race *r_ptr = &r_info[m_ptr->r_idx];
624 int rlev = monster_level_idx(m_idx);
628 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
630 msg_format(_("%^s¤¬ÃϹöµå¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a nether ball."), m_name);
632 dam = 50 + damroll(10, 10) + (rlev * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1));
633 breath(y, x, m_idx, GF_NETHER, dam, 2, FALSE, MS_BALL_NETHER, MONSTER_TO_PLAYER);
634 update_smart_learn(m_idx, DRS_NETH);
638 int spell_RF5_BA_WATE(int y, int x, int m_idx)
640 bool learnable = spell_learnable(m_idx);
641 cptr m_name = monster_name(m_idx);
642 monster_type *m_ptr = &m_list[m_idx];
643 monster_race *r_ptr = &r_info[m_ptr->r_idx];
644 int rlev = monster_level_idx(m_idx);
649 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
651 msg_format(_("%^s¤¬Î®¤ì¤ë¤è¤¦¤Ê¿È¿¶¤ê¤ò¤·¤¿¡£", "%^s gestures fluidly."), m_name);
653 msg_print(_("¤¢¤Ê¤¿¤Ï±²´¬¤¤Ë°û¤ß¹þ¤Þ¤ì¤¿¡£", "You are engulfed in a whirlpool."));
655 dam = ((r_ptr->flags2 & RF2_POWERFUL) ? randint1(rlev * 3) : randint1(rlev * 2)) + 50;
656 breath(y, x, m_idx, GF_WATER, dam, 4, FALSE, MS_BALL_WATER, MONSTER_TO_PLAYER);
660 int spell_RF5_BA_MANA(int y, int x, int m_idx)
662 cptr m_name = monster_name(m_idx);
663 monster_type *m_ptr = &m_list[m_idx];
664 monster_race *r_ptr = &r_info[m_ptr->r_idx];
665 int rlev = monster_level_idx(m_idx);
669 msg_format(_("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."), m_name);
671 msg_format(_("%^s¤¬ËâÎϤÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a mana storm."), m_name);
673 dam = (rlev * 4) + 50 + damroll(10, 10);
674 breath(y, x, m_idx, GF_MANA, dam, 4, FALSE, MS_BALL_MANA, MONSTER_TO_PLAYER);
678 int spell_RF5_BA_DARK(int y, int x, int m_idx)
680 cptr m_name = monster_name(m_idx);
681 monster_type *m_ptr = &m_list[m_idx];
682 monster_race *r_ptr = &r_info[m_ptr->r_idx];
683 int rlev = monster_level_idx(m_idx);
688 msg_format(_("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."), m_name);
690 msg_format(_("%^s¤¬°Å¹õ¤ÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a darkness storm."), m_name);
692 dam = (rlev * 4) + 50 + damroll(10, 10);
693 breath(y, x, m_idx, GF_DARK, dam, 4, FALSE, MS_BALL_DARK, MONSTER_TO_PLAYER);
694 update_smart_learn(m_idx, DRS_DARK);
698 int spell_RF5_DRAIN_MANA(int y, int x, int m_idx)
700 cptr m_name = monster_name(m_idx);
701 int rlev = monster_level_idx(m_idx);
705 dam = (randint1(rlev) / 2) + 1;
706 breath(y, x, m_idx, GF_DRAIN_MANA, dam, 0, FALSE, MS_DRAIN_MANA, MONSTER_TO_PLAYER);
707 update_smart_learn(m_idx, DRS_MANA);
711 int spell_RF5_MIND_BLAST(int y, int x, int m_idx)
713 cptr m_name = monster_name(m_idx);
714 monster_type *m_ptr = &m_list[m_idx];
715 bool seen = (!p_ptr->blind && m_ptr->ml);
716 int rlev = monster_level_idx(m_idx);
720 msg_print(_("²¿¤«¤¬¤¢¤Ê¤¿¤ÎÀº¿À¤ËÇ°¤òÊü¤Ã¤Æ¤¤¤ë¤è¤¦¤À¡£", "You feel something focusing on your mind."));
722 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ÎÆ·¤ò¤¸¤Ã¤È¤Ë¤é¤ó¤Ç¤¤¤ë¡£", "%^s gazes deep into your eyes."), m_name);
725 breath(y, x, m_idx, GF_MIND_BLAST, dam, 0, FALSE, MS_MIND_BLAST, MONSTER_TO_PLAYER);
729 int spell_RF5_BRAIN_SMASH(int y, int x, int m_idx)
731 cptr m_name = monster_name(m_idx);
732 monster_type *m_ptr = &m_list[m_idx];
733 bool seen = (!p_ptr->blind && m_ptr->ml);
734 int rlev = monster_level_idx(m_idx);
738 msg_print(_("²¿¤«¤¬¤¢¤Ê¤¿¤ÎÀº¿À¤ËÇ°¤òÊü¤Ã¤Æ¤¤¤ë¤è¤¦¤À¡£", "You feel something focusing on your mind."));
740 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ÎÆ·¤ò¤¸¤Ã¤È¸«¤Æ¤¤¤ë¡£", "%^s looks deep into your eyes."), m_name);
742 dam = damroll(12, 12);
743 breath(y, x, m_idx, GF_BRAIN_SMASH, dam, 0, FALSE, MS_BRAIN_SMASH, MONSTER_TO_PLAYER);
747 int spell_RF5_CAUSE_1(int y, int x, int m_idx)
749 cptr m_name = monster_name(m_idx);
750 int rlev = monster_level_idx(m_idx);
755 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
757 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¼ö¤Ã¤¿¡£", "%^s points at you and curses."), m_name);
760 breath(y, x, m_idx, GF_CAUSE_1, dam, 0, FALSE, MS_CAUSE_1, MONSTER_TO_PLAYER);
764 int spell_RF5_CAUSE_2(int y, int x, int m_idx)
766 cptr m_name = monster_name(m_idx);
767 int rlev = monster_level_idx(m_idx);
772 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
774 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¶²¤í¤·¤²¤Ë¼ö¤Ã¤¿¡£", "%^s points at you and curses horribly."), m_name);
777 breath(y, x, m_idx, GF_CAUSE_2, dam, 0, FALSE, MS_CAUSE_2, MONSTER_TO_PLAYER);
781 int spell_RF5_CAUSE_3(int y, int x, int m_idx)
783 cptr m_name = monster_name(m_idx);
784 int rlev = monster_level_idx(m_idx);
789 msg_format(_("%^s¤¬²¿¤«¤òÂçÀ¼¤Ç¶«¤ó¤À¡£", "%^s mumbles loudly."), m_name);
791 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¶²¤í¤·¤²¤Ë¼öʸ¤ò¾§¤¨¤¿¡ª", "%^s points at you, incanting terribly!"), m_name);
793 dam = damroll(10, 15);
794 breath(y, x, m_idx, GF_CAUSE_3, dam, 0, FALSE, MS_CAUSE_3, MONSTER_TO_PLAYER);
798 int spell_RF5_CAUSE_4(int y, int x, int m_idx)
800 cptr m_name = monster_name(m_idx);
801 int rlev = monster_level_idx(m_idx);
806 msg_format(_("%^s¤¬¡Ö¤ªÁ°¤Ï´û¤Ë»à¤ó¤Ç¤¤¤ë¡×¤È¶«¤ó¤À¡£", "%^s screams the word 'DIE!'"), m_name);
808 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ÎÈ빦¤òÆͤ¤¤Æ¡Ö¤ªÁ°¤Ï´û¤Ë»à¤ó¤Ç¤¤¤ë¡×¤È¶«¤ó¤À¡£",
809 "%^s points at you, screaming the word DIE!"), m_name);
811 dam = damroll(15, 15);
812 breath(y, x, m_idx, GF_CAUSE_4, dam, 0, FALSE, MS_CAUSE_4, MONSTER_TO_PLAYER);
816 int spell_RF5_BO_ACID(int y, int x, int m_idx)
818 bool learnable = spell_learnable(m_idx);
819 cptr m_name = monster_name(m_idx);
820 monster_type *m_ptr = &m_list[m_idx];
821 monster_race *r_ptr = &r_info[m_ptr->r_idx];
822 int rlev = monster_level_idx(m_idx);
827 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
829 msg_format(_("%^s¤¬¥¢¥·¥Ã¥É¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a acid bolt."), m_name);
831 dam = (damroll(7, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
832 bolt(m_idx, y, x, GF_ACID, dam, MS_BOLT_ACID, MONSTER_TO_PLAYER);
833 update_smart_learn(m_idx, DRS_ACID);
834 update_smart_learn(m_idx, DRS_REFLECT);
838 int spell_RF5_BO_ELEC(int y, int x, int m_idx)
840 bool learnable = spell_learnable(m_idx);
841 cptr m_name = monster_name(m_idx);
842 monster_type *m_ptr = &m_list[m_idx];
843 monster_race *r_ptr = &r_info[m_ptr->r_idx];
844 int rlev = monster_level_idx(m_idx);
849 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
851 msg_format(_("%^s¤¬¥µ¥ó¥À¡¼¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a lightning bolt."), m_name);
853 dam = (damroll(4, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
854 bolt(m_idx, y, x, GF_ELEC, dam, MS_BOLT_ELEC, MONSTER_TO_PLAYER);
855 update_smart_learn(m_idx, DRS_ELEC);
856 update_smart_learn(m_idx, DRS_REFLECT);
860 int spell_RF5_BO_FIRE(int y, int x, int m_idx)
862 bool learnable = spell_learnable(m_idx);
863 cptr m_name = monster_name(m_idx);
864 monster_type *m_ptr = &m_list[m_idx];
865 monster_race *r_ptr = &r_info[m_ptr->r_idx];
866 int rlev = monster_level_idx(m_idx);
871 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
873 msg_format(_("%^s¤¬¥Õ¥¡¥¤¥¢¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a fire bolt."), m_name);
875 dam = (damroll(9, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
876 bolt(m_idx, y, x, GF_FIRE, dam, MS_BOLT_FIRE, MONSTER_TO_PLAYER);
877 update_smart_learn(m_idx, DRS_FIRE);
878 update_smart_learn(m_idx, DRS_REFLECT);
882 int spell_RF5_BO_COLD(int y, int x, int m_idx)
884 bool learnable = spell_learnable(m_idx);
885 cptr m_name = monster_name(m_idx);
886 monster_type *m_ptr = &m_list[m_idx];
887 monster_race *r_ptr = &r_info[m_ptr->r_idx];
888 int rlev = monster_level_idx(m_idx);
893 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
895 msg_format(_("%^s¤¬¥¢¥¤¥¹¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a frost bolt."), m_name);
897 dam = (damroll(6, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
898 bolt(m_idx, y, x, GF_COLD, dam, MS_BOLT_COLD, MONSTER_TO_PLAYER);
899 update_smart_learn(m_idx, DRS_COLD);
900 update_smart_learn(m_idx, DRS_REFLECT);
905 int spell_RF5_BA_LITE(int y, int x, int m_idx)
907 cptr m_name = monster_name(m_idx);
908 int rlev = monster_level_idx(m_idx);
913 msg_format(_("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."), m_name);
915 msg_format(_("%^s¤¬¥¹¥¿¡¼¥Ð¡¼¥¹¥È¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a starburst."), m_name);
917 dam = (rlev * 4) + 50 + damroll(10, 10);
918 breath(y, x, m_idx, GF_LITE, dam, 4, FALSE, MS_STARBURST, MONSTER_TO_PLAYER);
919 update_smart_learn(m_idx, DRS_LITE);
924 int spell_RF5_BO_NETH(int y, int x, int m_idx)
926 bool learnable = spell_learnable(m_idx);
927 cptr m_name = monster_name(m_idx);
928 monster_type *m_ptr = &m_list[m_idx];
929 monster_race *r_ptr = &r_info[m_ptr->r_idx];
930 int rlev = monster_level_idx(m_idx);
935 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
937 msg_format(_("%^s¤¬ÃϹö¤ÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a nether bolt."), m_name);
939 dam = 30 + damroll(5, 5) + (rlev * 4) / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3);
940 bolt(m_idx, y, x, GF_NETHER, dam, MS_BOLT_NETHER, MONSTER_TO_PLAYER);
941 update_smart_learn(m_idx, DRS_NETH);
942 update_smart_learn(m_idx, DRS_REFLECT);
946 int spell_RF5_BO_WATE(int y, int x, int m_idx)
948 bool learnable = spell_learnable(m_idx);
949 cptr m_name = monster_name(m_idx);
950 monster_type *m_ptr = &m_list[m_idx];
951 monster_race *r_ptr = &r_info[m_ptr->r_idx];
952 int rlev = monster_level_idx(m_idx);
957 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
959 msg_format(_("%^s¤¬¥¦¥©¡¼¥¿¡¼¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a water bolt."), m_name);
961 dam = damroll(10, 10) + (rlev * 3 / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3));
962 bolt(m_idx, y, x, GF_WATER, dam, MS_BOLT_WATER, MONSTER_TO_PLAYER);
963 update_smart_learn(m_idx, DRS_REFLECT);
967 int spell_RF5_BO_MANA(int y, int x, int m_idx)
969 bool learnable = spell_learnable(m_idx);
970 cptr m_name = monster_name(m_idx);
971 monster_type *m_ptr = &m_list[m_idx];
972 monster_race *r_ptr = &r_info[m_ptr->r_idx];
973 int rlev = monster_level_idx(m_idx);
977 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
979 msg_format(_("%^s¤¬ËâÎϤÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a mana bolt."), m_name);
981 dam = randint1(rlev * 7 / 2) + 50;
982 bolt(m_idx, y, x, GF_MANA, dam, MS_BOLT_MANA, MONSTER_TO_PLAYER);
983 update_smart_learn(m_idx, DRS_REFLECT);
987 int spell_RF5_BO_PLAS(int y, int x, int m_idx)
989 bool learnable = spell_learnable(m_idx);
990 cptr m_name = monster_name(m_idx);
991 monster_type *m_ptr = &m_list[m_idx];
992 monster_race *r_ptr = &r_info[m_ptr->r_idx];
993 int rlev = monster_level_idx(m_idx);
997 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1000 msg_format(_("%^s¤¬¥×¥é¥º¥Þ¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a plasma bolt."), m_name);
1002 dam = 10 + damroll(8, 7) + (rlev * 3 / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3));
1003 bolt(m_idx, y, x, GF_PLASMA, dam, MS_BOLT_PLASMA, MONSTER_TO_PLAYER);
1004 update_smart_learn(m_idx, DRS_REFLECT);
1008 int spell_RF5_BO_ICEE(int y, int x, int m_idx)
1010 bool learnable = spell_learnable(m_idx);
1011 cptr m_name = monster_name(m_idx);
1012 monster_type *m_ptr = &m_list[m_idx];
1013 monster_race *r_ptr = &r_info[m_ptr->r_idx];
1014 int rlev = monster_level_idx(m_idx);
1018 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1020 msg_format(_("%^s¤¬¶Ë´¨¤ÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts an ice bolt."), m_name);
1022 dam = damroll(6, 6) + (rlev * 3 / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3));
1023 bolt(m_idx, y, x, GF_ICE, dam, MS_BOLT_ICE, MONSTER_TO_PLAYER);
1024 update_smart_learn(m_idx, DRS_COLD);
1025 update_smart_learn(m_idx, DRS_REFLECT);
1030 int spell_RF5_MISSILE(int y, int x, int m_idx)
1032 bool learnable = spell_learnable(m_idx);
1033 cptr m_name = monster_name(m_idx);
1034 int rlev = monster_level_idx(m_idx);
1038 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1040 msg_format(_("%^s¤¬¥Þ¥¸¥Ã¥¯¡¦¥ß¥µ¥¤¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a magic missile."), m_name);
1042 dam = damroll(2, 6) + (rlev / 3);
1043 bolt(m_idx, y, x, GF_MISSILE, dam, MS_MAGIC_MISSILE, MONSTER_TO_PLAYER);
1044 update_smart_learn(m_idx, DRS_REFLECT);
1048 void spell_RF5_SCARE(int y, int x, int m_idx)
1050 cptr m_name = monster_name(m_idx);
1051 int rlev = monster_level_idx(m_idx);
1055 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¯¤È¡¢¶²¤í¤·¤²¤Ê²»¤¬Ê¹¤³¤¨¤¿¡£", "%^s mumbles, and you hear scary noises."), m_name);
1057 msg_format(_("%^s¤¬¶²¤í¤·¤²¤Ê¸¸³Ð¤òºî¤ê½Ð¤·¤¿¡£", "%^s casts a fearful illusion."), m_name);
1059 if (p_ptr->resist_fear)
1061 msg_print(_("¤·¤«¤·¶²Éݤ˿¯¤µ¤ì¤Ê¤«¤Ã¤¿¡£", "You refuse to be frightened."));
1063 else if (randint0(100 + rlev / 2) < p_ptr->skill_sav)
1065 msg_print(_("¤·¤«¤·¶²Éݤ˿¯¤µ¤ì¤Ê¤«¤Ã¤¿¡£", "You refuse to be frightened."));
1069 (void)set_afraid(p_ptr->afraid + randint0(4) + 4);
1071 learn_spell(MS_SCARE);
1072 update_smart_learn(m_idx, DRS_FEAR);
1075 void spell_RF5_BLIND(int y, int x, int m_idx)
1077 cptr m_name = monster_name(m_idx);
1078 int rlev = monster_level_idx(m_idx);
1082 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1084 msg_format(_("%^s¤¬¼öʸ¤ò¾§¤¨¤Æ¤¢¤Ê¤¿¤ÎÌܤò¤¯¤é¤Þ¤·¤¿¡ª",
1085 "%^s casts a spell, burning your eyes!"), m_name);
1087 if (p_ptr->resist_blind)
1089 msg_print(_("¤·¤«¤·¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡ª", "You are unaffected!"));
1091 else if (randint0(100 + rlev / 2) < p_ptr->skill_sav)
1093 msg_print(_("¤·¤«¤·¸úÎϤòÄ·¤ÍÊÖ¤·¤¿¡ª", "You resist the effects!"));
1097 (void)set_blind(12 + randint0(4));
1099 learn_spell(MS_BLIND);
1100 update_smart_learn(m_idx, DRS_BLIND);
1103 void spell_RF5_CONF(int y, int x, int m_idx)
1105 cptr m_name = monster_name(m_idx);
1106 int rlev = monster_level_idx(m_idx);
1110 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¯¤È¡¢Æ¬¤òǺ¤Þ¤¹²»¤¬¤·¤¿¡£",
1111 "%^s mumbles, and you hear puzzling noises."), m_name);
1113 msg_format(_("%^s¤¬Í¶ÏÇŪ¤Ê¸¸³Ð¤òºî¤ê½Ð¤·¤¿¡£",
1114 "%^s creates a mesmerising illusion."), m_name);
1116 if (p_ptr->resist_conf)
1118 msg_print(_("¤·¤«¤·¸¸³Ð¤Ë¤Ï¤À¤Þ¤µ¤ì¤Ê¤«¤Ã¤¿¡£", "You disbelieve the feeble spell."));
1120 else if (randint0(100 + rlev / 2) < p_ptr->skill_sav)
1122 msg_print(_("¤·¤«¤·¸¸³Ð¤Ë¤Ï¤À¤Þ¤µ¤ì¤Ê¤«¤Ã¤¿¡£", "You disbelieve the feeble spell."));
1126 (void)set_confused(p_ptr->confused + randint0(4) + 4);
1128 learn_spell(MS_CONF);
1129 update_smart_learn(m_idx, DRS_CONF);
1132 void spell_RF5_SLOW(int y, int x, int m_idx)
1134 cptr m_name = monster_name(m_idx);
1135 int rlev = monster_level_idx(m_idx);
1138 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤Î¶ÚÎϤòµÛ¤¤¼è¤í¤¦¤È¤·¤¿¡ª",
1139 "%^s drains power from your muscles!"), m_name);
1141 if (p_ptr->free_act)
1143 msg_print(_("¤·¤«¤·¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡ª", "You are unaffected!"));
1145 else if (randint0(100 + rlev / 2) < p_ptr->skill_sav)
1147 msg_print(_("¤·¤«¤·¸úÎϤòÄ·¤ÍÊÖ¤·¤¿¡ª", "You resist the effects!"));
1151 (void)set_slow(p_ptr->slow + randint0(4) + 4, FALSE);
1153 learn_spell(MS_SLOW);
1154 update_smart_learn(m_idx, DRS_FREE);
1157 void spell_RF5_HOLD(int y, int x, int m_idx)
1159 cptr m_name = monster_name(m_idx);
1160 int rlev = monster_level_idx(m_idx);
1164 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1166 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ÎÌܤò¤¸¤Ã¤È¸«¤Ä¤á¤¿¡ª", "%^s stares deep into your eyes!"), m_name);
1168 if (p_ptr->free_act)
1170 msg_print(_("¤·¤«¤·¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡ª", "You are unaffected!"));
1172 else if (randint0(100 + rlev / 2) < p_ptr->skill_sav)
1174 msg_format(_("¤·¤«¤·¸úÎϤòÄ·¤ÍÊÖ¤·¤¿¡ª", "You resist the effects!"));
1178 (void)set_paralyzed(p_ptr->paralyzed + randint0(4) + 4);
1180 learn_spell(MS_SLEEP);
1181 update_smart_learn(m_idx, DRS_FREE);
1184 void spell_RF6_HASTE(int m_idx)
1186 cptr m_name = monster_name(m_idx);
1187 monster_type *m_ptr = &m_list[m_idx];
1191 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1195 msg_format(_("%^s¤¬¼«Ê¬¤ÎÂΤËÇ°¤òÁ÷¤Ã¤¿¡£", "%^s concentrates on %s body."), m_name);
1198 /* Allow quick speed increases to base+10 */
1199 if (set_monster_fast(m_idx, MON_FAST(m_ptr) + 100))
1201 msg_format(_("%^s¤ÎÆ°¤¤¬Â®¤¯¤Ê¤Ã¤¿¡£", "%^s starts moving faster."), m_name);
1205 int spell_RF6_HAND_DOOM(int y, int x, int m_idx)
1207 cptr m_name = monster_name(m_idx);
1208 monster_type *m_ptr = &m_list[m_idx];
1211 msg_format(_("%^s¤¬<ÇËÌǤμê>¤òÊü¤Ã¤¿¡ª", "%^s invokes the Hand of Doom!"), m_name);
1212 dam = (((s32b)((40 + randint1(20)) * (p_ptr->chp))) / 100);
1213 breath(y, x, m_idx, GF_HAND_DOOM, dam, 0, FALSE, MS_HAND_DOOM, MONSTER_TO_PLAYER);
1217 void spell_RF6_HEAL(int m_idx)
1219 cptr m_name = monster_name(m_idx);
1220 monster_type *m_ptr = &m_list[m_idx];
1221 int rlev = monster_level_idx(m_idx);
1222 bool seen = (!p_ptr->blind && m_ptr->ml);
1227 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1229 msg_format(_("%^s¤¬¼«Ê¬¤Î½ý¤Ë½¸Ã椷¤¿¡£", "%^s concentrates on %s wounds."), m_name);
1232 m_ptr->hp += (rlev * 6);
1235 if (m_ptr->hp >= m_ptr->maxhp)
1238 m_ptr->hp = m_ptr->maxhp;
1242 msg_format(_("%^s¤Ï´°Á´¤Ë¼£¤Ã¤¿¡ª", "%^s looks completely healed!"), m_name);
1244 msg_format(_("%^s¤Ï´°Á´¤Ë¼£¤Ã¤¿¤è¤¦¤À¡ª", "%^s sounds completely healed!"), m_name);
1247 /* Partially healed */
1252 msg_format(_("%^s¤ÏÂÎÎϤò²óÉü¤·¤¿¤è¤¦¤À¡£", "%^s looks healthier."), m_name);
1254 msg_format(_("%^s¤ÏÂÎÎϤò²óÉü¤·¤¿¤è¤¦¤À¡£", "%^s sounds healthier."), m_name);
1257 /* Redraw (later) if needed */
1258 if (p_ptr->health_who == m_idx) p_ptr->redraw |= (PR_HEALTH);
1259 if (p_ptr->riding == m_idx) p_ptr->redraw |= (PR_UHEALTH);
1262 if (MON_MONFEAR(m_ptr))
1265 (void)set_monster_monfear(m_idx, 0);
1268 msg_format(_("%^s¤Ïͦµ¤¤ò¼è¤êÌᤷ¤¿¡£", "%^s recovers %s courage."), m_name);
1271 void spell_RF6_INVULNER(int m_idx)
1273 cptr m_name = monster_name(m_idx);
1274 monster_type *m_ptr = &m_list[m_idx];
1275 bool seen = (!p_ptr->blind && m_ptr->ml);
1280 msg_format(_("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."), m_name);
1282 msg_format(_("%s¤Ï̵½ý¤Îµå¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a Globe of Invulnerability."), m_name);
1284 if (!MON_INVULNER(m_ptr)) (void)set_monster_invulner(m_idx, randint1(4) + 4, FALSE);
1287 void spell_RF6_BLINK(int m_idx)
1289 cptr m_name = monster_name(m_idx);
1291 if (teleport_barrier(m_idx))
1293 msg_format(_("ËâË¡¤Î¥Ð¥ê¥¢¤¬%^s¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¼ÙË⤷¤¿¡£",
1294 "Magic barrier obstructs teleporting of %^s."), m_name);
1298 msg_format(_("%^s¤¬½Ö»þ¤Ë¾Ã¤¨¤¿¡£", "%^s blinks away."), m_name);
1299 teleport_away(m_idx, 10, 0L);
1300 p_ptr->update |= (PU_MONSTERS);
1304 void spell_RF6_TPORT(int m_idx)
1306 cptr m_name = monster_name(m_idx);
1308 if (teleport_barrier(m_idx))
1310 msg_format(_("ËâË¡¤Î¥Ð¥ê¥¢¤¬%^s¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¼ÙË⤷¤¿¡£",
1311 "Magic barrier obstructs teleporting of %^s."), m_name);
1315 msg_format(_("%^s¤¬¥Æ¥ì¥Ý¡¼¥È¤·¤¿¡£", "%^s teleports away."), m_name);
1316 teleport_away_followable(m_idx);
1320 int spell_RF6_WORLD(int m_idx)
1322 cptr m_name = monster_name(m_idx);
1323 monster_type *m_ptr = &m_list[m_idx];
1326 if (m_ptr->r_idx == MON_DIO) who = 1;
1327 else if (m_ptr->r_idx == MON_WONG) who = 3;
1328 if (!process_the_world(randint1(2) + 2, who, TRUE)) return (FALSE);
1332 int spell_RF6_SPECIAL(int y, int x, int m_idx)
1334 cptr m_name = monster_name(m_idx);
1335 monster_type *m_ptr = &m_list[m_idx];
1336 monster_race *r_ptr = &r_info[m_ptr->r_idx];
1338 bool direct = player_bold(y, x);
1339 int k, dam, count=0;
1342 switch (m_ptr->r_idx)
1345 /* Moved to process_monster(), like multiplication */
1347 case MON_BANORLUPART:
1349 int dummy_hp = (m_ptr->hp + 1) / 2;
1350 int dummy_maxhp = m_ptr->maxhp / 2;
1351 int dummy_y = m_ptr->fy;
1352 int dummy_x = m_ptr->fx;
1354 if (p_ptr->inside_arena || p_ptr->inside_battle || !summon_possible(m_ptr->fy, m_ptr->fx)) return -1;
1355 delete_monster_idx(cave[m_ptr->fy][m_ptr->fx].m_idx);
1356 summon_named_creature(0, dummy_y, dummy_x, MON_BANOR, mode);
1357 m_list[hack_m_idx_ii].hp = dummy_hp;
1358 m_list[hack_m_idx_ii].maxhp = dummy_maxhp;
1359 summon_named_creature(0, dummy_y, dummy_x, MON_LUPART, mode);
1360 m_list[hack_m_idx_ii].hp = dummy_hp;
1361 m_list[hack_m_idx_ii].maxhp = dummy_maxhp;
1363 msg_print(_("¡Ø¥Ð¡¼¥Î¡¼¥ë¡¦¥ë¥Ñ¡¼¥È¡Ù¤¬Ê¬Îö¤·¤¿¡ª","Banor=Rupart splits in two person!"));
1371 int dummy_maxhp = 0;
1372 int dummy_y = m_ptr->fy;
1373 int dummy_x = m_ptr->fx;
1375 if (!r_info[MON_BANOR].cur_num || !r_info[MON_LUPART].cur_num) return (FALSE);
1376 for (k = 1; k < m_max; k++)
1378 if (m_list[k].r_idx == MON_BANOR || m_list[k].r_idx == MON_LUPART)
1380 dummy_hp += m_list[k].hp;
1381 dummy_maxhp += m_list[k].maxhp;
1382 if (m_list[k].r_idx != m_ptr->r_idx)
1384 dummy_y = m_list[k].fy;
1385 dummy_x = m_list[k].fx;
1387 delete_monster_idx(k);
1390 summon_named_creature(0, dummy_y, dummy_x, MON_BANORLUPART, mode);
1391 m_list[hack_m_idx_ii].hp = dummy_hp;
1392 m_list[hack_m_idx_ii].maxhp = dummy_maxhp;
1394 msg_print(_("¡Ø¥Ð¡¼¥Î¡¼¥ë¡Ù¤È¡Ø¥ë¥Ñ¡¼¥È¡Ù¤¬¹çÂΤ·¤¿¡ª", "Banor and Rupart combine into one!"));
1400 msg_format(_("%^s¤¬²¿¤«ÂçÎ̤ËÅꤲ¤¿¡£", "%^s spreads something."), m_name);
1402 msg_format(_("%^s¤Ï¼êÜØÃƤò¤Ð¤é¤Þ¤¤¤¿¡£", "%^s throws some hand grenades."), m_name);
1405 int num = 1 + randint1(3);
1407 for (k = 0; k < num; k++)
1409 count += summon_named_creature(m_idx, y, x, MON_SHURYUUDAN, mode);
1413 if (p_ptr->blind && count)
1414 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¤Ð¤é¤Þ¤«¤ì¤ë²»¤¬¤¹¤ë¡£", "You hear many things are scattered nearby."));
1419 if (r_ptr->d_char == 'B')
1422 if (one_in_(3) || !direct)
1424 msg_format(_("%^s¤ÏÆÍÁ³»ë³¦¤«¤é¾Ã¤¨¤¿!", "%^s suddenly go out of your sight!"), m_name);
1425 teleport_away(m_idx, 10, TELEPORT_NONMAGICAL);
1426 p_ptr->update |= (PU_MONSTERS);
1431 bool fear; /* dummy */
1433 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤òÄϤó¤Ç¶õÃ椫¤éÅꤲÍî¤È¤·¤¿¡£",
1434 "%^s holds you, and drops from the sky."), m_name);
1435 dam = damroll(4, 8);
1436 teleport_player_to(m_ptr->fy, m_ptr->fx, TELEPORT_NONMAGICAL | TELEPORT_PASSIVE);
1440 if (p_ptr->levitation)
1442 msg_print(_("¤¢¤Ê¤¿¤ÏÀŤ«¤ËÃåÃϤ·¤¿¡£", "You float gently down to the ground."));
1446 msg_print(_("¤¢¤Ê¤¿¤ÏÃÏÌ̤ËᤤĤ±¤é¤ì¤¿¡£", "You crashed into the ground."));
1447 dam += damroll(6, 8);
1450 /* Mega hack -- this special action deals damage to the player. Therefore the code of "eyeeye" is necessary.
1453 get_damage = take_hit(DAMAGE_NOESCAPE, dam, m_name, -1);
1454 if (p_ptr->tim_eyeeye && get_damage > 0 && !p_ptr->is_dead)
1457 msg_format("¹¶·â¤¬%s¼«¿È¤ò½ý¤Ä¤±¤¿¡ª", m_name);
1459 char m_name_self[80];
1462 monster_desc(m_name_self, m_ptr, MD_PRON_VISIBLE | MD_POSSESSIVE | MD_OBJECTIVE);
1464 msg_format("The attack of %s has wounded %s!", m_name, m_name_self);
1466 project(0, 0, m_ptr->fy, m_ptr->fx, get_damage, GF_MISSILE, PROJECT_KILL, -1);
1467 set_tim_eyeeye(p_ptr->tim_eyeeye - 5, TRUE);
1470 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);
1475 /* Something is wrong */
1482 void spell_RF6_TELE_TO(int m_idx)
1484 cptr m_name = monster_name(m_idx);
1485 monster_type *m_ptr = &m_list[m_idx];
1487 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ò°ú¤Ìᤷ¤¿¡£", "%^s commands you to return."), m_name);
1489 teleport_player_to(m_ptr->fy, m_ptr->fx, TELEPORT_PASSIVE);
1490 learn_spell(MS_TELE_TO);
1493 void spell_RF6_TELE_AWAY(int m_idx)
1495 cptr m_name = monster_name(m_idx);
1498 msg_format(_("%^s¤Ë¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤é¤ì¤¿¡£", "%^s teleports you away."), m_name);
1499 if ((p_ptr->pseikaku == SEIKAKU_COMBAT) || (inventory[INVEN_BOW].name1 == ART_CRIMSON))
1500 msg_print(_("¤¯¤Ã¤½¡Á", ""));
1502 learn_spell(MS_TELE_AWAY);
1503 teleport_player_away(m_idx, 100);
1506 void spell_RF6_TELE_LEVEL(int m_idx)
1508 cptr m_name = monster_name(m_idx);
1509 int rlev = monster_level_idx(m_idx);
1513 msg_format(_("%^s¤¬²¿¤«´ñ̯¤Ê¸ÀÍÕ¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles strangely."), m_name);
1515 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤Î¤ò»Ø¤µ¤·¤¿¡£", "%^s gestures at your feet."), m_name);
1517 if (p_ptr->resist_nexus)
1519 msg_print(_("¤·¤«¤·¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡ª", "You are unaffected!"));
1521 else if (randint0(100 + rlev / 2) < p_ptr->skill_sav)
1523 msg_print(_("¤·¤«¤·¸úÎϤòÄ·¤ÍÊÖ¤·¤¿¡ª", "You resist the effects!"));
1529 learn_spell(MS_TELE_LEVEL);
1530 update_smart_learn(m_idx, DRS_NEXUS);
1533 int spell_RF6_PSY_SPEAR(int y, int x, int m_idx)
1535 bool learnable = spell_learnable(m_idx);
1536 cptr m_name = monster_name(m_idx);
1537 monster_type *m_ptr = &m_list[m_idx];
1538 monster_race *r_ptr = &r_info[m_ptr->r_idx];
1539 int rlev = monster_level_idx(m_idx);
1543 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1545 msg_format(_("%^s¤¬¸÷¤Î·õ¤òÊü¤Ã¤¿¡£", "%^s throw a Psycho-Spear."), m_name);
1547 dam = (r_ptr->flags2 & RF2_POWERFUL) ? (randint1(rlev * 2) + 150) : (randint1(rlev * 3 / 2) + 100);
1548 beam(m_idx, y, x, GF_PSY_SPEAR, dam, MS_PSY_SPEAR, MONSTER_TO_PLAYER);
1552 void spell_RF6_DARKNESS(int m_idx)
1554 cptr m_name = monster_name(m_idx);
1555 monster_type *m_ptr = &m_list[m_idx];
1556 monster_race *r_ptr = &r_info[m_ptr->r_idx];
1557 bool can_use_lite_area = FALSE;
1559 if ((p_ptr->pclass == CLASS_NINJA) &&
1560 !(r_ptr->flags3 & (RF3_UNDEAD | RF3_HURT_LITE)) &&
1561 !(r_ptr->flags7 & RF7_DARK_MASK))
1562 can_use_lite_area = TRUE;
1566 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1567 else if (can_use_lite_area)
1568 msg_format(_("%^s¤¬ÊÕ¤ê¤òÌÀ¤ë¤¯¾È¤é¤·¤¿¡£", "%^s cast a spell to light up."), m_name);
1570 msg_format(_("%^s¤¬°Å°Ç¤ÎÃæ¤Ç¼ê¤ò¿¶¤Ã¤¿¡£", "%^s gestures in shadow."), m_name);
1572 if (can_use_lite_area)
1574 (void)lite_area(0, 3);
1578 learn_spell(MS_DARKNESS);
1579 (void)unlite_area(0, 3);
1583 void spell_RF6_TRAPS(int y, int x, int m_idx)
1585 cptr m_name = monster_name(m_idx);
1589 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤Æ¼Ù°¤ËÈù¾Ð¤ó¤À¡£",
1590 "%^s mumbles, and then cackles evilly."), m_name);
1592 msg_format(_("%^s¤¬¼öʸ¤ò¾§¤¨¤Æ¼Ù°¤ËÈù¾Ð¤ó¤À¡£",
1593 "%^s casts a spell and cackles evilly."), m_name);
1595 learn_spell(MS_MAKE_TRAP);
1596 (void)trap_creation(y, x);
1599 void spell_RF6_FORGET(int m_idx)
1601 cptr m_name = monster_name(m_idx);
1602 int rlev = monster_level_idx(m_idx);
1605 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤Îµ²±¤ò¾Ãµî¤·¤è¤¦¤È¤·¤Æ¤¤¤ë¡£",
1606 "%^s tries to blank your mind."), m_name);
1608 if (randint0(100 + rlev / 2) < p_ptr->skill_sav)
1610 msg_print(_("¤·¤«¤·¸úÎϤòÄ·¤ÍÊÖ¤·¤¿¡ª", "You resist the effects!"));
1612 else if (lose_all_info())
1614 msg_print(_("µ²±¤¬Çö¤ì¤Æ¤·¤Þ¤Ã¤¿¡£", "Your memories fade away."));
1616 learn_spell(MS_FORGET);
1619 void spell_RF6_RAISE_DEAD(int m_idx)
1621 cptr m_name = monster_name(m_idx);
1622 monster_type *m_ptr = &m_list[m_idx];
1626 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1628 msg_format(_("%^s¤¬»à¼ÔÉü³è¤Î¼öʸ¤ò¾§¤¨¤¿¡£",
1629 "%^s casts a spell to revive corpses."), m_name);
1631 animate_dead(m_idx, m_ptr->fy, m_ptr->fx);
1634 void spell_RF6_S_KIN(int y, int x, int m_idx)
1636 cptr m_name = monster_name(m_idx);
1637 monster_type *m_ptr = &m_list[m_idx];
1638 monster_race *r_ptr = &r_info[m_ptr->r_idx];
1639 int rlev = monster_level_idx(m_idx);
1643 if (m_ptr->r_idx == MON_SERPENT || m_ptr->r_idx == MON_ZOMBI_SERPENT)
1646 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1648 msg_format(_("%^s¤¬¥À¥ó¥¸¥ç¥ó¤Î¼ç¤ò¾¤´¤·¤¿¡£",
1649 "%^s magically summons guardians of dungeons."), m_name);
1654 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1657 msg_format("%^s¤ÏËâË¡¤Ç%s¤ò¾¤´¤·¤¿¡£",
1659 ((r_ptr->flags1) & RF1_UNIQUE ?
1662 msg_format("%^s magically summons %s %s.",
1664 ((r_ptr->flags1) & RF1_UNIQUE ?
1665 "minions" : "kin"));
1669 switch (m_ptr->r_idx)
1675 int num = 4 + randint1(3);
1676 for (k = 0; k < num; k++)
1678 count += summon_specific(m_idx, y, x, rlev, SUMMON_EAGLES, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
1685 int num = 2 + randint1(3);
1686 for (k = 0; k < num; k++)
1688 count += summon_named_creature(m_idx, y, x, MON_IE, mode);
1694 case MON_ZOMBI_SERPENT:
1696 int num = 2 + randint1(3);
1698 if (r_info[MON_JORMUNGAND].cur_num < r_info[MON_JORMUNGAND].max_num && one_in_(6))
1700 msg_print(_("ÃÏÌ̤«¤é¿å¤¬¿á¤½Ð¤·¤¿¡ª", "Water blew off from the ground!"));
1701 fire_ball_hide(GF_WATER_FLOW, 0, 3, 8);
1704 for (k = 0; k < num; k++)
1706 count += summon_specific(m_idx, y, x, rlev, SUMMON_GUARDIANS, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
1713 int num = randint1(3);
1714 for (k = 0; k < num; k++)
1716 count += summon_named_creature(m_idx, y, x, MON_LOCKE_CLONE, mode);
1723 int num = 2 + randint1(3);
1724 for (k = 0; k < num; k++)
1726 count += summon_specific(m_idx, y, x, rlev, SUMMON_LOUSE, PM_ALLOW_GROUP);
1732 summon_kin_type = r_ptr->d_char; /* Big hack */
1734 for (k = 0; k < 4; k++)
1736 count += summon_specific(m_idx, y, x, rlev, SUMMON_KIN, PM_ALLOW_GROUP);
1741 if (p_ptr->blind && count)
1742 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear many things appear nearby."));
1745 void spell_RF6_S_CYBER(int y, int x, int m_idx)
1747 cptr m_name = monster_name(m_idx);
1752 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1754 msg_format(_("%^s¤¬¥µ¥¤¥Ð¡¼¥Ç¡¼¥â¥ó¤ò¾¤´¤·¤¿¡ª",
1755 "%^s magically summons Cyberdemons!"), m_name);
1757 count = summon_cyber(m_idx, y, x);
1759 if (p_ptr->blind && count)
1760 msg_print(_("½Å¸ü¤Ê²»¤¬¶á¤¯¤Çʹ¤³¤¨¤ë¡£", "You hear heavy steps nearby."));
1763 void spell_RF6_S_MONSTER(int y, int x, int m_idx)
1765 cptr m_name = monster_name(m_idx);
1766 int rlev = monster_level_idx(m_idx);
1771 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1773 msg_format(_("%^s¤¬ËâË¡¤ÇÃç´Ö¤ò¾¤´¤·¤¿¡ª", "%^s magically summons help!"), m_name);
1775 for (k = 0; k < 1; k++)
1777 count += summon_specific(m_idx, y, x, rlev, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
1779 if (p_ptr->blind && count)
1780 msg_print(_("²¿¤«¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear something appear nearby."));
1783 void spell_RF6_S_MONSTERS(int y, int x, int m_idx)
1785 cptr m_name = monster_name(m_idx);
1786 int rlev = monster_level_idx(m_idx);
1791 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1793 msg_format(_("%^s¤¬ËâË¡¤Ç¥â¥ó¥¹¥¿¡¼¤ò¾¤´¤·¤¿¡ª", "%^s magically summons monsters!"), m_name);
1795 for (k = 0; k < S_NUM_6; k++)
1797 count += summon_specific(m_idx, y, x, rlev, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
1800 if (p_ptr->blind && count)
1801 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear many things appear nearby."));
1804 void spell_RF6_S_ANT(int y, int x, int m_idx)
1806 cptr m_name = monster_name(m_idx);
1807 int rlev = monster_level_idx(m_idx);
1812 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1814 msg_format(_("%^s¤¬ËâË¡¤Ç¥¢¥ê¤ò¾¤´¤·¤¿¡£", "%^s magically summons ants."), m_name);
1816 for (k = 0; k < S_NUM_6; k++)
1818 count += summon_specific(m_idx, y, x, rlev, SUMMON_ANT, PM_ALLOW_GROUP);
1821 if (p_ptr->blind && count)
1822 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear many things appear nearby."));
1825 void spell_RF6_S_SPIDER(int y, int x, int m_idx)
1827 cptr m_name = monster_name(m_idx);
1828 int rlev = monster_level_idx(m_idx);
1833 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1835 msg_format(_("%^s¤¬ËâË¡¤Ç¥¯¥â¤ò¾¤´¤·¤¿¡£", "%^s magically summons spiders."), m_name);
1837 for (k = 0; k < S_NUM_6; k++)
1839 count += summon_specific(m_idx, y, x, rlev, SUMMON_SPIDER, PM_ALLOW_GROUP);
1842 if (p_ptr->blind && count)
1843 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear many things appear nearby."));
1846 void spell_RF6_S_HOUND(int y, int x, int m_idx)
1848 cptr m_name = monster_name(m_idx);
1849 int rlev = monster_level_idx(m_idx);
1854 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1856 msg_format(_("%^s¤¬ËâË¡¤Ç¥Ï¥¦¥ó¥É¤ò¾¤´¤·¤¿¡£", "%^s magically summons hounds."), m_name);
1858 for (k = 0; k < S_NUM_4; k++)
1860 count += summon_specific(m_idx, y, x, rlev, SUMMON_HOUND, PM_ALLOW_GROUP);
1863 if (p_ptr->blind && count)
1864 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear many things appear nearby."));
1867 void spell_RF6_S_HYDRA(int y, int x, int m_idx)
1869 cptr m_name = monster_name(m_idx);
1870 int rlev = monster_level_idx(m_idx);
1875 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1877 msg_format(_("%^s¤¬ËâË¡¤Ç¥Ò¥É¥é¤ò¾¤´¤·¤¿¡£", "%^s magically summons hydras."), m_name);
1879 for (k = 0; k < S_NUM_4; k++)
1881 count += summon_specific(m_idx, y, x, rlev, SUMMON_HYDRA, PM_ALLOW_GROUP);
1883 if (p_ptr->blind && count)
1884 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear many things appear nearby."));
1887 void spell_RF6_S_ANGEL(int y, int x, int m_idx)
1889 cptr m_name = monster_name(m_idx);
1890 monster_type *m_ptr = &m_list[m_idx];
1891 monster_race *r_ptr = &r_info[m_ptr->r_idx];
1892 int rlev = monster_level_idx(m_idx);
1899 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1901 msg_format(_("%^s¤¬ËâË¡¤ÇÅ·»È¤ò¾¤´¤·¤¿¡ª", "%^s magically summons an angel!"), m_name);
1903 if ((r_ptr->flags1 & RF1_UNIQUE) && !easy_band)
1905 num += r_ptr->level / 40;
1908 for (k = 0; k < num; k++)
1910 count += summon_specific(m_idx, y, x, rlev, SUMMON_ANGEL, PM_ALLOW_GROUP);
1915 if (p_ptr->blind && count)
1916 msg_print(_("²¿¤«¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear something appear nearby."));
1921 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear many things appear nearby."));
1925 void spell_RF6_S_DEMON(int y, int x, int m_idx)
1927 cptr m_name = monster_name(m_idx);
1928 int rlev = monster_level_idx(m_idx);
1933 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1935 msg_format(_("%^s¤ÏËâË¡¤Çº®Æ٤εÜÄ¤é°Ëâ¤ò¾¤´¤·¤¿¡ª",
1936 "%^s magically summons a demon from the Courts of Chaos!"), m_name);
1938 for (k = 0; k < 1; k++)
1940 count += summon_specific(m_idx, y, x, rlev, SUMMON_DEMON, PM_ALLOW_GROUP);
1943 if (p_ptr->blind && count)
1944 msg_print(_("²¿¤«¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear something appear nearby."));
1947 void spell_RF6_S_UNDEAD(int y, int x, int m_idx)
1949 cptr m_name = monster_name(m_idx);
1950 int rlev = monster_level_idx(m_idx);
1955 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1957 msg_format(_("%^s¤¬ËâË¡¤Ç¥¢¥ó¥Ç¥Ã¥É¤Î¶¯Å¨¤ò¾¤´¤·¤¿¡ª",
1958 "%^s magically summons an undead adversary!"), m_name);
1960 for (k = 0; k < 1; k++)
1962 count += summon_specific(m_idx, y, x, rlev, SUMMON_UNDEAD, PM_ALLOW_GROUP);
1965 if (p_ptr->blind && count)
1966 msg_print(_("²¿¤«¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear something appear nearby."));
1969 void spell_RF6_S_DRAGON(int y, int x, int m_idx)
1971 cptr m_name = monster_name(m_idx);
1972 int rlev = monster_level_idx(m_idx);
1977 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1979 msg_format(_("%^s¤¬ËâË¡¤Ç¥É¥é¥´¥ó¤ò¾¤´¤·¤¿¡ª", "%^s magically summons a dragon!"), m_name);
1981 for (k = 0; k < 1; k++)
1983 count += summon_specific(m_idx, y, x, rlev, SUMMON_DRAGON, PM_ALLOW_GROUP);
1985 if (p_ptr->blind && count)
1986 msg_print(_("²¿¤«¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear something appear nearby."));
1989 void spell_RF6_S_HI_UNDEAD(int y, int x, int m_idx)
1991 cptr m_name = monster_name(m_idx);
1992 monster_type *m_ptr = &m_list[m_idx];
1993 monster_race *r_ptr = &r_info[m_ptr->r_idx];
1994 int rlev = monster_level_idx(m_idx);
1999 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))
2005 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
2007 msg_format(_("%^s¤¬ËâË¡¤ÇÍ©µ´ÀïÂâ¤ò¾¤´¤·¤¿¡ª", "%^s magically summons rangers of Nazgul!"), m_name);
2011 for (k = 0; k < 30; k++)
2013 if (!summon_possible(cy, cx) || !cave_empty_bold(cy, cx))
2016 for (j = 100; j > 0; j--)
2018 scatter(&cy, &cx, y, x, 2, 0);
2019 if (cave_empty_bold(cy, cx)) break;
2023 if (!cave_empty_bold(cy, cx)) continue;
2025 if (summon_named_creature(m_idx, cy, cx, MON_NAZGUL, mode))
2031 msg_format(_("¡ÖÍ©µ´ÀïÂâ%d¹æ¡¢¥Ê¥º¥°¥ë¡¦¥Ö¥é¥Ã¥¯¡ª¡×",
2032 "A Nazgul says 'Nazgul-Rangers Number %d, Nazgul-Black!'"), count);
2034 msg_format(_("¡ÖƱ¤¸¤¯%d¹æ¡¢¥Ê¥º¥°¥ë¡¦¥Ö¥é¥Ã¥¯¡ª¡×",
2035 "Another one says 'Number %d, Nazgul-Black!'"), count);
2040 msg_format(_("¡Ö%d¿Í¤½¤í¤Ã¤Æ¡¢¥ê¥ó¥°¥ì¥ó¥¸¥ã¡¼¡ª¡×",
2041 "They say 'The %d meets! We are the Ring-Ranger!'."), count);
2047 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
2049 msg_format(_("%^s¤¬ËâË¡¤Ç¶¯ÎϤʥ¢¥ó¥Ç¥Ã¥É¤ò¾¤´¤·¤¿¡ª",
2050 "%^s magically summons greater undead!"), m_name);
2052 for (k = 0; k < S_NUM_6; k++)
2054 count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_UNDEAD, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
2057 if (p_ptr->blind && count)
2059 msg_print(_("´Ö¶á¤Ç²¿¤«Â¿¤¯¤Î¤â¤Î¤¬Ç礤²ó¤ë²»¤¬Ê¹¤³¤¨¤ë¡£",
2060 "You hear many creepy things appear nearby."));
2065 void spell_RF6_S_HI_DRAGON(int y, int x, int m_idx)
2067 cptr m_name = monster_name(m_idx);
2068 int rlev = monster_level_idx(m_idx);
2073 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
2075 msg_format(_("%^s¤¬ËâË¡¤Ç¸ÅÂå¥É¥é¥´¥ó¤ò¾¤´¤·¤¿¡ª", "%^s magically summons ancient dragons!"), m_name);
2077 for (k = 0; k < S_NUM_4; k++)
2079 count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_DRAGON, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
2081 if (p_ptr->blind && count)
2083 msg_print(_("¿¤¯¤ÎÎ϶¯¤¤¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬Ê¹¤³¤¨¤ë¡£",
2084 "You hear many powerful things appear nearby."));
2088 void spell_RF6_S_AMBERITES(int y, int x, int m_idx)
2090 cptr m_name = monster_name(m_idx);
2091 int rlev = monster_level_idx(m_idx);
2096 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
2098 msg_format(_("%^s¤¬¥¢¥ó¥Ð¡¼¤Î²¦Â²¤ò¾¤´¤·¤¿¡ª", "%^s magically summons Lords of Amber!"), m_name);
2100 for (k = 0; k < S_NUM_4; k++)
2102 count += summon_specific(m_idx, y, x, rlev, SUMMON_AMBERITES, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
2104 if (p_ptr->blind && count)
2106 msg_print(_("ÉÔ»à¤Î¼Ô¤¬¶á¤¯¤Ë¸½¤ì¤ë¤Î¤¬Ê¹¤³¤¨¤¿¡£", "You hear immortal beings appear nearby."));
2110 void spell_RF6_S_UNIQUE(int y, int x, int m_idx)
2112 cptr m_name = monster_name(m_idx);
2113 monster_type *m_ptr = &m_list[m_idx];
2114 int rlev = monster_level_idx(m_idx);
2116 bool uniques_are_summoned = FALSE;
2117 int non_unique_type = SUMMON_HI_UNDEAD;
2122 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
2124 msg_format(_("%^s¤¬ËâË¡¤ÇÆÃÊ̤ʶ¯Å¨¤ò¾¤´¤·¤¿¡ª", "%^s magically summons special opponents!"), m_name);
2126 for (k = 0; k < S_NUM_4; k++)
2128 count += summon_specific(m_idx, y, x, rlev, SUMMON_UNIQUE, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
2131 if (count) uniques_are_summoned = TRUE;
2133 if ((m_ptr->sub_align & (SUB_ALIGN_GOOD | SUB_ALIGN_EVIL)) == (SUB_ALIGN_GOOD | SUB_ALIGN_EVIL))
2134 non_unique_type = 0;
2135 else if (m_ptr->sub_align & SUB_ALIGN_GOOD)
2136 non_unique_type = SUMMON_ANGEL;
2138 for (k = count; k < S_NUM_4; k++)
2140 count += summon_specific(m_idx, y, x, rlev, non_unique_type, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
2143 if (p_ptr->blind && count)
2145 msg_format(_("¿¤¯¤Î%s¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬Ê¹¤³¤¨¤ë¡£", "You hear many %s appear nearby."),
2146 uniques_are_summoned ? _("Î϶¯¤¤¤â¤Î", "powerful things") : _("¤â¤Î", "things"));