3 cptr monster_name(int m_idx)
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 int spell_core(int SPELL_NUM, int hp, int y, int x, int m_idx, int SPELL_TYPE)
48 monster_type *m_ptr = &m_list[m_idx];
49 monster_race *r_ptr = &r_info[m_ptr->r_idx];
50 bool learnable = spell_learnable(m_idx);
55 dam = (hp / 4) > 800 ? 800 : (hp / 4);
56 if (SPELL_TYPE == SPELL_MON_TO_PLAYER)
58 breath(y, x, m_idx, GF_ROCKET, dam, 2, FALSE, MS_ROCKET, learnable);
59 update_smart_learn(m_idx, DRS_SHARD);
61 else if (SPELL_TYPE == SPELL_MON_TO_MON)
63 monst_breath_monst(m_idx, y, x, GF_ROCKET, dam, 2, FALSE, MS_ROCKET, learnable);
70 void MP_spell_RF4_SHRIEK(int m_idx)
72 cptr m_name = monster_name(m_idx);
74 msg_format(_("%^s¤¬¤«¤ó¹â¤¤¶âÀÚ¤êÀ¼¤ò¤¢¤²¤¿¡£", "%^s makes a high pitched shriek."), m_name);
75 aggravate_monsters(m_idx);
78 void MM_spell_RF4_SHRIEK(int m_idx, int t_idx)
80 cptr m_name = monster_name(m_idx);
81 cptr t_name = monster_name(t_idx);
82 bool known = monster_near_player(m_idx, t_idx);
83 bool see_m = see_monster(m_idx);
88 msg_format(_("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¶«¤ó¤À¡£", "%^s shrieks at %s."), m_name, t_name);
95 (void)set_monster_csleep(t_idx, 0);
98 void MP_spell_RF4_DISPEL(int m_idx)
100 cptr m_name = monster_name(m_idx);
104 msg_format(_("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."), m_name);
106 msg_format(_("%^s¤¬ËâÎϾõî¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a dispel magic."), m_name);
109 if (p_ptr->riding) dispel_monster_status(p_ptr->riding);
111 if ((p_ptr->pseikaku == SEIKAKU_COMBAT) || (inventory[INVEN_BOW].name1 == ART_CRIMSON))
112 msg_print(_("¤ä¤ê¤ä¤¬¤Ã¤¿¤Ê¡ª", ""));
114 learn_spell(MS_DISPEL);
117 void MM_spell_RF4_DISPEL(int m_idx, int t_idx)
119 cptr m_name = monster_name(m_idx);
120 cptr t_name = monster_name(t_idx);
121 bool known = monster_near_player(m_idx, t_idx);
122 bool see_m = see_monster(m_idx);
127 msg_format(_("%^s¤¬%s¤ËÂФ·¤ÆËâÎϾõî¤Î¼öʸ¤òÇ°¤¸¤¿¡£",
128 "%^s invokes a dispel magic at %s."), m_name, t_name);
136 if (t_idx == p_ptr->riding) dispel_player();
137 dispel_monster_status(t_idx);
141 int MP_spell_RF4_ROCKET(int y, int x, int m_idx)
143 cptr m_name = monster_name(m_idx);
144 monster_type *m_ptr = &m_list[m_idx];
147 msg_format(_("%^s¤¬²¿¤«¤ò¼Í¤Ã¤¿¡£", "%^s shoots something."), m_name);
149 msg_format(_("%^s¤¬¥í¥±¥Ã¥È¤òȯ¼Í¤·¤¿¡£", "%^s fires a rocket."), m_name);
151 return spell_core(RF4_ROCKET, m_ptr->hp, y, x, m_idx, SPELL_MON_TO_PLAYER);
154 int MM_spell_RF4_ROCKET(int y, int x, int m_idx, int t_idx)
156 cptr m_name = monster_name(m_idx);
157 cptr t_name = monster_name(t_idx);
158 monster_type *m_ptr = &m_list[m_idx];
160 bool known = monster_near_player(m_idx, t_idx);
161 bool see_either = see_monster(m_idx) || see_monster(t_idx);
170 msg_format(_("%^s¤¬²¿¤«¤ò¼Í¤Ã¤¿¡£", "%^s shoots something."), m_name);
174 msg_format(_("%^s¤¬%s¤Ë¥í¥±¥Ã¥È¤òȯ¼Í¤·¤¿¡£", "%^s fires a rocket at %s."), m_name, t_name);
182 return spell_core(RF4_ROCKET, m_ptr->hp, y, x, m_idx, SPELL_MON_TO_MON);
185 int spell_RF4_SHOOT(int m_idx)
187 bool learnable = spell_learnable(m_idx);
188 cptr m_name = monster_name(m_idx);
189 monster_type *m_ptr = &m_list[m_idx];
190 monster_race *r_ptr = &r_info[m_ptr->r_idx];
195 msg_format(_("%^s¤¬´ñ̯¤Ê²»¤òȯ¤·¤¿¡£", "%^s makes a strange noise."), m_name);
197 msg_format(_("%^s¤¬Ìð¤òÊü¤Ã¤¿¡£", "%^s fires an arrow."), m_name);
199 dam = damroll(r_ptr->blow[0].d_dice, r_ptr->blow[0].d_side);
200 bolt(m_idx, GF_ARROW, dam, MS_SHOOT, learnable);
201 update_smart_learn(m_idx, DRS_REFLECT);
205 int spell_RF4_BREATH(int GF_TYPE, int y, int x, int m_idx)
207 bool learnable = spell_learnable(m_idx);
208 int dam, ms_type, drs_type;
210 bool smart_learn = TRUE;
211 cptr m_name = monster_name(m_idx);
212 monster_type *m_ptr = &m_list[m_idx];
217 dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
218 type_s = _("»À", "acid");
219 ms_type = MS_BR_ACID;
223 dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
224 type_s = _("°ðºÊ", "lightning");
225 ms_type = MS_BR_ELEC;
229 dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
230 type_s = _("²Ð±ê", "fire");
231 ms_type = MS_BR_FIRE;
235 dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
236 type_s = _("Î䵤", "frost");
237 ms_type = MS_BR_COLD;
241 dam = ((m_ptr->hp / 3) > 800 ? 800 : (m_ptr->hp / 3));
242 type_s = _("¥¬¥¹", "gas");
243 ms_type = MS_BR_POIS;
247 dam = ((m_ptr->hp / 6) > 550 ? 550 : (m_ptr->hp / 6));
248 type_s = _("ÃϹö", "nether");
249 ms_type = MS_BR_NETHER;
253 dam = ((m_ptr->hp / 6) > 400 ? 400 : (m_ptr->hp / 6));
254 type_s = _("Á®¸÷", "light");
255 ms_type = MS_BR_LITE;
259 dam = ((m_ptr->hp / 6) > 400 ? 400 : (m_ptr->hp / 6));
260 type_s = _("°Å¹õ", "darkness");
261 ms_type = MS_BR_DARK;
265 dam = ((m_ptr->hp / 6) > 450 ? 450 : (m_ptr->hp / 6));
266 type_s = _("º®Íð", "confusion");
267 ms_type = MS_BR_CONF;
271 dam = ((m_ptr->hp / 6) > 450 ? 450 : (m_ptr->hp / 6));
272 type_s = _("¹ì²»", "sound");
273 ms_type = MS_BR_SOUND;
274 drs_type = DRS_SOUND;
277 dam = ((m_ptr->hp / 6) > 600 ? 600 : (m_ptr->hp / 6));
278 type_s = _("¥«¥ª¥¹", "chaos");
279 ms_type = MS_BR_CHAOS;
280 drs_type = DRS_CHAOS;
283 dam = ((m_ptr->hp / 6) > 500 ? 500 : (m_ptr->hp / 6));
284 type_s = _("Îô²½", "disenchantment");
285 ms_type = MS_BR_DISEN;
286 drs_type = DRS_DISEN;
289 dam = ((m_ptr->hp / 3) > 250 ? 250 : (m_ptr->hp / 3));
290 type_s = _("°ø²Ìº®Íð", "nexus");
291 ms_type = MS_BR_NEXUS;
292 drs_type = DRS_NEXUS;
295 dam = ((m_ptr->hp / 3) > 150 ? 150 : (m_ptr->hp / 3));
296 type_s = _("»þ´ÖµÕž", "time");
297 ms_type = MS_BR_TIME;
301 dam = ((m_ptr->hp / 6) > 200 ? 200 : (m_ptr->hp / 6));
302 type_s = _("ÃÙÆß", "inertia");
303 ms_type = MS_BR_INERTIA;
307 dam = ((m_ptr->hp / 3) > 200 ? 200 : (m_ptr->hp / 3));
308 type_s = _("½ÅÎÏ", "gravity");
309 ms_type = MS_BR_GRAVITY;
313 dam = ((m_ptr->hp / 6) > 500 ? 500 : (m_ptr->hp / 6));
314 type_s = _("ÇËÊÒ", "shards");
315 ms_type = MS_BR_SHARDS;
316 drs_type = DRS_SHARD;
319 dam = ((m_ptr->hp / 6) > 150 ? 150 : (m_ptr->hp / 6));
320 type_s = _("¥×¥é¥º¥Þ", "plasma");
321 ms_type = MS_BR_PLASMA;
325 dam = ((m_ptr->hp / 6) > 200 ? 200 : (m_ptr->hp / 6));
326 type_s = _("¥Õ¥©¡¼¥¹", "force");
327 ms_type = MS_BR_FORCE;
331 dam = ((m_ptr->hp / 3) > 250 ? 250 : (m_ptr->hp / 3));
332 type_s = _("ËâÎÏ", "mana");
333 ms_type = MS_BR_MANA;
337 dam = ((m_ptr->hp / 3) > 800 ? 800 : (m_ptr->hp / 3));
338 type_s = _("Êü¼ÍÀÇÑ´þʪ", "toxic waste");
339 ms_type = MS_BR_NUKE;
342 case GF_DISINTEGRATE:
343 dam = ((m_ptr->hp / 6) > 150 ? 150 : (m_ptr->hp / 6));
344 type_s = _("ʬ²ò", "disintegration");
345 ms_type = MS_BR_DISI;
353 if (m_ptr->r_idx == MON_JAIAN && GF_TYPE == GF_SOUND)
355 msg_format(_("¡Ö¥Ü¥©¥¨¡Á¡Á¡Á¡Á¡Á¡Á¡×", "'Booooeeeeee'"));
357 else if (m_ptr->r_idx == MON_BOTEI && GF_TYPE == GF_SHARDS)
359 msg_format(_("¡Ö¥ÜÄë¥Ó¥ë¥«¥Ã¥¿¡¼¡ª¡ª¡ª¡×", "'Boty-Build cutter!!!'"));
361 else if (p_ptr->blind)
363 msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
367 msg_format(_("%^s¤¬%^s¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes %^s."), m_name, type_s);
370 breath(y, x, m_idx, GF_TYPE, dam, 0, TRUE, ms_type, learnable);
371 if (smart_learn) update_smart_learn(m_idx, drs_type);
375 int spell_RF4_BA_CHAO(int y, int x, int m_idx)
377 bool learnable = spell_learnable(m_idx);
378 cptr m_name = monster_name(m_idx);
379 monster_type *m_ptr = &m_list[m_idx];
380 monster_race *r_ptr = &r_info[m_ptr->r_idx];
381 int rlev = monster_level_idx(m_idx);
387 msg_format(_("%^s¤¬¶²¤í¤·¤²¤Ë¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles frighteningly."), m_name);
389 msg_format(_("%^s¤¬½ã¥í¥°¥ë¥¹¤òÊü¤Ã¤¿¡£", "%^s invokes a raw Logrus."), m_name);
391 dam = ((r_ptr->flags2 & RF2_POWERFUL) ? (rlev * 3) : (rlev * 2)) + damroll(10, 10);
393 breath(y, x, m_idx, GF_CHAOS, dam, 4, FALSE, MS_BALL_CHAOS, learnable);
394 update_smart_learn(m_idx, DRS_CHAOS);
398 int spell_RF4_BA_NUKE(int y, int x, int m_idx)
400 bool learnable = spell_learnable(m_idx);
401 cptr m_name = monster_name(m_idx);
402 monster_type *m_ptr = &m_list[m_idx];
403 monster_race *r_ptr = &r_info[m_ptr->r_idx];
404 int rlev = monster_level_idx(m_idx);
409 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
411 msg_format(_("%^s¤¬Êü¼Íǽµå¤òÊü¤Ã¤¿¡£", "%^s casts a ball of radiation."), m_name);
413 dam = (rlev + damroll(10, 6)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
415 breath(y, x, m_idx, GF_NUKE, dam, 2, FALSE, MS_BALL_NUKE, learnable);
416 update_smart_learn(m_idx, DRS_POIS);
420 int spell_RF5_BA_ACID(int y, int x, int m_idx)
422 bool learnable = spell_learnable(m_idx);
423 cptr m_name = monster_name(m_idx);
424 monster_type *m_ptr = &m_list[m_idx];
425 monster_race *r_ptr = &r_info[m_ptr->r_idx];
426 int rlev = monster_level_idx(m_idx);
431 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
433 msg_format(_("%^s¤¬¥¢¥·¥Ã¥É¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts an acid ball."), m_name);
435 if (r_ptr->flags2 & RF2_POWERFUL)
438 dam = (rlev * 4) + 50 + damroll(10, 10);
443 dam = (randint1(rlev * 3) + 15);
445 breath(y, x, m_idx, GF_ACID, dam, rad, FALSE, MS_BALL_ACID, learnable);
446 update_smart_learn(m_idx, DRS_ACID);
450 int spell_RF5_BA_ELEC(int y, int x, int m_idx)
452 bool learnable = spell_learnable(m_idx);
453 cptr m_name = monster_name(m_idx);
454 monster_type *m_ptr = &m_list[m_idx];
455 monster_race *r_ptr = &r_info[m_ptr->r_idx];
456 int rlev = monster_level_idx(m_idx);
461 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
463 msg_format(_("%^s¤¬¥µ¥ó¥À¡¼¡¦¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a lightning ball."), m_name);
465 if (r_ptr->flags2 & RF2_POWERFUL)
468 dam = (rlev * 4) + 50 + damroll(10, 10);
473 dam = (randint1(rlev * 3 / 2) + 8);
475 breath(y, x, m_idx, GF_ELEC, dam, rad, FALSE, MS_BALL_ELEC, learnable);
476 update_smart_learn(m_idx, DRS_ELEC);
480 int spell_RF5_BA_FIRE(int y, int x, int m_idx)
482 bool learnable = spell_learnable(m_idx);
483 cptr m_name = monster_name(m_idx);
484 monster_type *m_ptr = &m_list[m_idx];
485 monster_race *r_ptr = &r_info[m_ptr->r_idx];
486 int rlev = monster_level_idx(m_idx);
490 if (m_ptr->r_idx == MON_ROLENTO)
493 msg_format(_("%s¤¬²¿¤«¤òÅꤲ¤¿¡£", "%^s throws something."), m_name);
495 msg_format(_("%s¤Ï¼êÜØÃƤòÅꤲ¤¿¡£", "%^s throws a hand grenade."), m_name);
500 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
502 msg_format(_("%^s¤¬¥Õ¥¡¥¤¥¢¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a fire ball."), m_name);
505 if (r_ptr->flags2 & RF2_POWERFUL)
508 dam = (rlev * 4) + 50 + damroll(10, 10);
513 dam = (randint1(rlev * 7 / 2) + 10);
515 breath(y, x, m_idx, GF_FIRE, dam, rad, FALSE, MS_BALL_FIRE, learnable);
516 update_smart_learn(m_idx, DRS_FIRE);
520 int spell_RF5_BA_COLD(int y, int x, int m_idx)
522 bool learnable = spell_learnable(m_idx);
523 cptr m_name = monster_name(m_idx);
524 monster_type *m_ptr = &m_list[m_idx];
525 monster_race *r_ptr = &r_info[m_ptr->r_idx];
526 int rlev = monster_level_idx(m_idx);
531 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
533 msg_format(_("%^s¤¬¥¢¥¤¥¹¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a frost ball."), m_name);
535 if (r_ptr->flags2 & RF2_POWERFUL)
538 dam = (rlev * 4) + 50 + damroll(10, 10);
543 dam = (randint1(rlev * 3 / 2) + 10);
545 breath(y, x, m_idx, GF_COLD, dam, rad, FALSE, MS_BALL_COLD, learnable);
546 update_smart_learn(m_idx, DRS_COLD);
550 int spell_RF5_BA_POIS(int y, int x, int m_idx)
552 bool learnable = spell_learnable(m_idx);
553 cptr m_name = monster_name(m_idx);
554 monster_type *m_ptr = &m_list[m_idx];
555 monster_race *r_ptr = &r_info[m_ptr->r_idx];
556 int rlev = monster_level_idx(m_idx);
561 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
563 msg_format(_("%^s¤¬°½±À¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a stinking cloud."), m_name);
565 dam = damroll(12, 2) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
566 breath(y, x, m_idx, GF_POIS, dam, 2, FALSE, MS_BALL_POIS, learnable);
567 update_smart_learn(m_idx, DRS_POIS);
571 int spell_RF5_BA_NETH(int y, int x, int m_idx)
573 bool learnable = spell_learnable(m_idx);
574 cptr m_name = monster_name(m_idx);
575 monster_type *m_ptr = &m_list[m_idx];
576 monster_race *r_ptr = &r_info[m_ptr->r_idx];
577 int rlev = monster_level_idx(m_idx);
581 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
583 msg_format(_("%^s¤¬ÃϹöµå¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a nether ball."), m_name);
585 dam = 50 + damroll(10, 10) + (rlev * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1));
586 breath(y, x, m_idx, GF_NETHER, dam, 2, FALSE, MS_BALL_NETHER, learnable);
587 update_smart_learn(m_idx, DRS_NETH);
591 int spell_RF5_BA_WATE(int y, int x, int m_idx)
593 bool learnable = spell_learnable(m_idx);
594 cptr m_name = monster_name(m_idx);
595 monster_type *m_ptr = &m_list[m_idx];
596 monster_race *r_ptr = &r_info[m_ptr->r_idx];
597 int rlev = monster_level_idx(m_idx);
602 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
604 msg_format(_("%^s¤¬Î®¤ì¤ë¤è¤¦¤Ê¿È¿¶¤ê¤ò¤·¤¿¡£", "%^s gestures fluidly."), m_name);
606 msg_print(_("¤¢¤Ê¤¿¤Ï±²´¬¤¤Ë°û¤ß¹þ¤Þ¤ì¤¿¡£", "You are engulfed in a whirlpool."));
608 dam = ((r_ptr->flags2 & RF2_POWERFUL) ? randint1(rlev * 3) : randint1(rlev * 2)) + 50;
609 breath(y, x, m_idx, GF_WATER, dam, 4, FALSE, MS_BALL_WATER, learnable);
613 int spell_RF5_BA_MANA(int y, int x, int m_idx)
615 bool learnable = spell_learnable(m_idx);
616 cptr m_name = monster_name(m_idx);
617 monster_type *m_ptr = &m_list[m_idx];
618 monster_race *r_ptr = &r_info[m_ptr->r_idx];
619 int rlev = monster_level_idx(m_idx);
623 msg_format(_("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."), m_name);
625 msg_format(_("%^s¤¬ËâÎϤÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a mana storm."), m_name);
627 dam = (rlev * 4) + 50 + damroll(10, 10);
628 breath(y, x, m_idx, GF_MANA, dam, 4, FALSE, MS_BALL_MANA, learnable);
632 int spell_RF5_BA_DARK(int y, int x, int m_idx)
634 bool learnable = spell_learnable(m_idx);
635 cptr m_name = monster_name(m_idx);
636 monster_type *m_ptr = &m_list[m_idx];
637 monster_race *r_ptr = &r_info[m_ptr->r_idx];
638 int rlev = monster_level_idx(m_idx);
643 msg_format(_("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."), m_name);
645 msg_format(_("%^s¤¬°Å¹õ¤ÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a darkness storm."), m_name);
647 dam = (rlev * 4) + 50 + damroll(10, 10);
648 breath(y, x, m_idx, GF_DARK, dam, 4, FALSE, MS_BALL_DARK, learnable);
649 update_smart_learn(m_idx, DRS_DARK);
653 int spell_RF5_DRAIN_MANA(int y, int x, int m_idx)
655 bool learnable = spell_learnable(m_idx);
656 cptr m_name = monster_name(m_idx);
657 int rlev = monster_level_idx(m_idx);
661 dam = (randint1(rlev) / 2) + 1;
662 breath(y, x, m_idx, GF_DRAIN_MANA, dam, 0, FALSE, MS_DRAIN_MANA, learnable);
663 update_smart_learn(m_idx, DRS_MANA);
667 int spell_RF5_MIND_BLAST(int y, int x, int m_idx)
669 bool learnable = spell_learnable(m_idx);
670 cptr m_name = monster_name(m_idx);
671 monster_type *m_ptr = &m_list[m_idx];
672 bool seen = (!p_ptr->blind && m_ptr->ml);
673 int rlev = monster_level_idx(m_idx);
677 msg_print(_("²¿¤«¤¬¤¢¤Ê¤¿¤ÎÀº¿À¤ËÇ°¤òÊü¤Ã¤Æ¤¤¤ë¤è¤¦¤À¡£", "You feel something focusing on your mind."));
679 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ÎÆ·¤ò¤¸¤Ã¤È¤Ë¤é¤ó¤Ç¤¤¤ë¡£", "%^s gazes deep into your eyes."), m_name);
682 breath(y, x, m_idx, GF_MIND_BLAST, dam, 0, FALSE, MS_MIND_BLAST, learnable);
686 int spell_RF5_BRAIN_SMASH(int y, int x, int m_idx)
688 bool learnable = spell_learnable(m_idx);
689 cptr m_name = monster_name(m_idx);
690 monster_type *m_ptr = &m_list[m_idx];
691 bool seen = (!p_ptr->blind && m_ptr->ml);
692 int rlev = monster_level_idx(m_idx);
696 msg_print(_("²¿¤«¤¬¤¢¤Ê¤¿¤ÎÀº¿À¤ËÇ°¤òÊü¤Ã¤Æ¤¤¤ë¤è¤¦¤À¡£", "You feel something focusing on your mind."));
698 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ÎÆ·¤ò¤¸¤Ã¤È¸«¤Æ¤¤¤ë¡£", "%^s looks deep into your eyes."), m_name);
700 dam = damroll(12, 12);
701 breath(y, x, m_idx, GF_BRAIN_SMASH, dam, 0, FALSE, MS_BRAIN_SMASH, learnable);
705 int spell_RF5_CAUSE_1(int y, int x, int m_idx)
707 bool learnable = spell_learnable(m_idx);
708 cptr m_name = monster_name(m_idx);
709 int rlev = monster_level_idx(m_idx);
714 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
716 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¼ö¤Ã¤¿¡£", "%^s points at you and curses."), m_name);
719 breath(y, x, m_idx, GF_CAUSE_1, dam, 0, FALSE, MS_CAUSE_1, learnable);
723 int spell_RF5_CAUSE_2(int y, int x, int m_idx)
725 bool learnable = spell_learnable(m_idx);
726 cptr m_name = monster_name(m_idx);
727 int rlev = monster_level_idx(m_idx);
732 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
734 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¶²¤í¤·¤²¤Ë¼ö¤Ã¤¿¡£", "%^s points at you and curses horribly."), m_name);
737 breath(y, x, m_idx, GF_CAUSE_2, dam, 0, FALSE, MS_CAUSE_2, learnable);
741 int spell_RF5_CAUSE_3(int y, int x, int m_idx)
743 bool learnable = spell_learnable(m_idx);
744 cptr m_name = monster_name(m_idx);
745 int rlev = monster_level_idx(m_idx);
750 msg_format(_("%^s¤¬²¿¤«¤òÂçÀ¼¤Ç¶«¤ó¤À¡£", "%^s mumbles loudly."), m_name);
752 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¶²¤í¤·¤²¤Ë¼öʸ¤ò¾§¤¨¤¿¡ª", "%^s points at you, incanting terribly!"), m_name);
754 dam = damroll(10, 15);
755 breath(y, x, m_idx, GF_CAUSE_3, dam, 0, FALSE, MS_CAUSE_3, learnable);
759 int spell_RF5_CAUSE_4(int y, int x, int m_idx)
761 bool learnable = spell_learnable(m_idx);
762 cptr m_name = monster_name(m_idx);
763 int rlev = monster_level_idx(m_idx);
768 msg_format(_("%^s¤¬¡Ö¤ªÁ°¤Ï´û¤Ë»à¤ó¤Ç¤¤¤ë¡×¤È¶«¤ó¤À¡£", "%^s screams the word 'DIE!'"), m_name);
770 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ÎÈ빦¤òÆͤ¤¤Æ¡Ö¤ªÁ°¤Ï´û¤Ë»à¤ó¤Ç¤¤¤ë¡×¤È¶«¤ó¤À¡£",
771 "%^s points at you, screaming the word DIE!"), m_name);
773 dam = damroll(15, 15);
774 breath(y, x, m_idx, GF_CAUSE_4, dam, 0, FALSE, MS_CAUSE_4, learnable);
778 int spell_RF5_BO_ACID(int y, int x, int m_idx)
780 bool learnable = spell_learnable(m_idx);
781 cptr m_name = monster_name(m_idx);
782 monster_type *m_ptr = &m_list[m_idx];
783 monster_race *r_ptr = &r_info[m_ptr->r_idx];
784 int rlev = monster_level_idx(m_idx);
789 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
791 msg_format(_("%^s¤¬¥¢¥·¥Ã¥É¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a acid bolt."), m_name);
793 dam = (damroll(7, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
794 bolt(m_idx, GF_ACID, dam, MS_BOLT_ACID, learnable);
795 update_smart_learn(m_idx, DRS_ACID);
796 update_smart_learn(m_idx, DRS_REFLECT);
800 int spell_RF5_BO_ELEC(int y, int x, int m_idx)
802 bool learnable = spell_learnable(m_idx);
803 cptr m_name = monster_name(m_idx);
804 monster_type *m_ptr = &m_list[m_idx];
805 monster_race *r_ptr = &r_info[m_ptr->r_idx];
806 int rlev = monster_level_idx(m_idx);
811 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
813 msg_format(_("%^s¤¬¥µ¥ó¥À¡¼¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a lightning bolt."), m_name);
815 dam = (damroll(4, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
816 bolt(m_idx, GF_ELEC, dam, MS_BOLT_ELEC, learnable);
817 update_smart_learn(m_idx, DRS_ELEC);
818 update_smart_learn(m_idx, DRS_REFLECT);
822 int spell_RF5_BO_FIRE(int y, int x, int m_idx)
824 bool learnable = spell_learnable(m_idx);
825 cptr m_name = monster_name(m_idx);
826 monster_type *m_ptr = &m_list[m_idx];
827 monster_race *r_ptr = &r_info[m_ptr->r_idx];
828 int rlev = monster_level_idx(m_idx);
833 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
835 msg_format(_("%^s¤¬¥Õ¥¡¥¤¥¢¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a fire bolt."), m_name);
837 dam = (damroll(9, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
838 bolt(m_idx, GF_FIRE, dam, MS_BOLT_FIRE, learnable);
839 update_smart_learn(m_idx, DRS_FIRE);
840 update_smart_learn(m_idx, DRS_REFLECT);
844 int spell_RF5_BO_COLD(int y, int x, int m_idx)
846 bool learnable = spell_learnable(m_idx);
847 cptr m_name = monster_name(m_idx);
848 monster_type *m_ptr = &m_list[m_idx];
849 monster_race *r_ptr = &r_info[m_ptr->r_idx];
850 int rlev = monster_level_idx(m_idx);
855 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
857 msg_format(_("%^s¤¬¥¢¥¤¥¹¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a frost bolt."), m_name);
859 dam = (damroll(6, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
860 bolt(m_idx, GF_COLD, dam, MS_BOLT_COLD, learnable);
861 update_smart_learn(m_idx, DRS_COLD);
862 update_smart_learn(m_idx, DRS_REFLECT);
867 int spell_RF5_BA_LITE(int y, int x, int m_idx)
869 bool learnable = spell_learnable(m_idx);
870 cptr m_name = monster_name(m_idx);
871 int rlev = monster_level_idx(m_idx);
876 msg_format(_("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."), m_name);
878 msg_format(_("%^s¤¬¥¹¥¿¡¼¥Ð¡¼¥¹¥È¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a starburst."), m_name);
880 dam = (rlev * 4) + 50 + damroll(10, 10);
881 breath(y, x, m_idx, GF_LITE, dam, 4, FALSE, MS_STARBURST, learnable);
882 update_smart_learn(m_idx, DRS_LITE);
887 int spell_RF5_BO_NETH(int y, int x, int m_idx)
889 bool learnable = spell_learnable(m_idx);
890 cptr m_name = monster_name(m_idx);
891 monster_type *m_ptr = &m_list[m_idx];
892 monster_race *r_ptr = &r_info[m_ptr->r_idx];
893 int rlev = monster_level_idx(m_idx);
898 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
900 msg_format(_("%^s¤¬ÃϹö¤ÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a nether bolt."), m_name);
902 dam = 30 + damroll(5, 5) + (rlev * 4) / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3);
903 bolt(m_idx, GF_NETHER, dam, MS_BOLT_NETHER, learnable);
904 update_smart_learn(m_idx, DRS_NETH);
905 update_smart_learn(m_idx, DRS_REFLECT);
909 int spell_RF5_BO_WATE(int y, int x, int m_idx)
911 bool learnable = spell_learnable(m_idx);
912 cptr m_name = monster_name(m_idx);
913 monster_type *m_ptr = &m_list[m_idx];
914 monster_race *r_ptr = &r_info[m_ptr->r_idx];
915 int rlev = monster_level_idx(m_idx);
920 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
922 msg_format(_("%^s¤¬¥¦¥©¡¼¥¿¡¼¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a water bolt."), m_name);
924 dam = damroll(10, 10) + (rlev * 3 / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3));
925 bolt(m_idx, GF_WATER, dam, MS_BOLT_WATER, learnable);
926 update_smart_learn(m_idx, DRS_REFLECT);
930 int spell_RF5_BO_MANA(int y, int x, int m_idx)
932 bool learnable = spell_learnable(m_idx);
933 cptr m_name = monster_name(m_idx);
934 monster_type *m_ptr = &m_list[m_idx];
935 monster_race *r_ptr = &r_info[m_ptr->r_idx];
936 int rlev = monster_level_idx(m_idx);
940 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
942 msg_format(_("%^s¤¬ËâÎϤÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a mana bolt."), m_name);
944 dam = randint1(rlev * 7 / 2) + 50;
945 bolt(m_idx, GF_MANA, dam, MS_BOLT_MANA, learnable);
946 update_smart_learn(m_idx, DRS_REFLECT);
950 int spell_RF5_BO_PLAS(int y, int x, int m_idx)
952 bool learnable = spell_learnable(m_idx);
953 cptr m_name = monster_name(m_idx);
954 monster_type *m_ptr = &m_list[m_idx];
955 monster_race *r_ptr = &r_info[m_ptr->r_idx];
956 int rlev = monster_level_idx(m_idx);
960 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
963 msg_format(_("%^s¤¬¥×¥é¥º¥Þ¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a plasma bolt."), m_name);
965 dam = 10 + damroll(8, 7) + (rlev * 3 / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3));
966 bolt(m_idx, GF_PLASMA, dam, MS_BOLT_PLASMA, learnable);
967 update_smart_learn(m_idx, DRS_REFLECT);
971 int spell_RF5_BO_ICEE(int y, int x, int m_idx)
973 bool learnable = spell_learnable(m_idx);
974 cptr m_name = monster_name(m_idx);
975 monster_type *m_ptr = &m_list[m_idx];
976 monster_race *r_ptr = &r_info[m_ptr->r_idx];
977 int rlev = monster_level_idx(m_idx);
981 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
983 msg_format(_("%^s¤¬¶Ë´¨¤ÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts an ice bolt."), m_name);
985 dam = damroll(6, 6) + (rlev * 3 / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3));
986 bolt(m_idx, GF_ICE, dam, MS_BOLT_ICE, learnable);
987 update_smart_learn(m_idx, DRS_COLD);
988 update_smart_learn(m_idx, DRS_REFLECT);
993 int spell_RF5_MISSILE(int y, int x, int m_idx)
995 bool learnable = spell_learnable(m_idx);
996 cptr m_name = monster_name(m_idx);
997 int rlev = monster_level_idx(m_idx);
1001 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1003 msg_format(_("%^s¤¬¥Þ¥¸¥Ã¥¯¡¦¥ß¥µ¥¤¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a magic missile."), m_name);
1005 dam = damroll(2, 6) + (rlev / 3);
1006 bolt(m_idx, GF_MISSILE, dam, MS_MAGIC_MISSILE, learnable);
1007 update_smart_learn(m_idx, DRS_REFLECT);
1011 void spell_RF5_SCARE(int y, int x, int m_idx)
1013 cptr m_name = monster_name(m_idx);
1014 int rlev = monster_level_idx(m_idx);
1018 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¯¤È¡¢¶²¤í¤·¤²¤Ê²»¤¬Ê¹¤³¤¨¤¿¡£", "%^s mumbles, and you hear scary noises."), m_name);
1020 msg_format(_("%^s¤¬¶²¤í¤·¤²¤Ê¸¸³Ð¤òºî¤ê½Ð¤·¤¿¡£", "%^s casts a fearful illusion."), m_name);
1022 if (p_ptr->resist_fear)
1024 msg_print(_("¤·¤«¤·¶²Éݤ˿¯¤µ¤ì¤Ê¤«¤Ã¤¿¡£", "You refuse to be frightened."));
1026 else if (randint0(100 + rlev / 2) < p_ptr->skill_sav)
1028 msg_print(_("¤·¤«¤·¶²Éݤ˿¯¤µ¤ì¤Ê¤«¤Ã¤¿¡£", "You refuse to be frightened."));
1032 (void)set_afraid(p_ptr->afraid + randint0(4) + 4);
1034 learn_spell(MS_SCARE);
1035 update_smart_learn(m_idx, DRS_FEAR);
1038 void spell_RF5_BLIND(int y, int x, int m_idx)
1040 cptr m_name = monster_name(m_idx);
1041 int rlev = monster_level_idx(m_idx);
1045 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1047 msg_format(_("%^s¤¬¼öʸ¤ò¾§¤¨¤Æ¤¢¤Ê¤¿¤ÎÌܤò¤¯¤é¤Þ¤·¤¿¡ª",
1048 "%^s casts a spell, burning your eyes!"), m_name);
1050 if (p_ptr->resist_blind)
1052 msg_print(_("¤·¤«¤·¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡ª", "You are unaffected!"));
1054 else if (randint0(100 + rlev / 2) < p_ptr->skill_sav)
1056 msg_print(_("¤·¤«¤·¸úÎϤòÄ·¤ÍÊÖ¤·¤¿¡ª", "You resist the effects!"));
1060 (void)set_blind(12 + randint0(4));
1062 learn_spell(MS_BLIND);
1063 update_smart_learn(m_idx, DRS_BLIND);
1066 void spell_RF5_CONF(int y, int x, int m_idx)
1068 cptr m_name = monster_name(m_idx);
1069 int rlev = monster_level_idx(m_idx);
1073 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¯¤È¡¢Æ¬¤òǺ¤Þ¤¹²»¤¬¤·¤¿¡£",
1074 "%^s mumbles, and you hear puzzling noises."), m_name);
1076 msg_format(_("%^s¤¬Í¶ÏÇŪ¤Ê¸¸³Ð¤òºî¤ê½Ð¤·¤¿¡£",
1077 "%^s creates a mesmerising illusion."), m_name);
1079 if (p_ptr->resist_conf)
1081 msg_print(_("¤·¤«¤·¸¸³Ð¤Ë¤Ï¤À¤Þ¤µ¤ì¤Ê¤«¤Ã¤¿¡£", "You disbelieve the feeble spell."));
1083 else if (randint0(100 + rlev / 2) < p_ptr->skill_sav)
1085 msg_print(_("¤·¤«¤·¸¸³Ð¤Ë¤Ï¤À¤Þ¤µ¤ì¤Ê¤«¤Ã¤¿¡£", "You disbelieve the feeble spell."));
1089 (void)set_confused(p_ptr->confused + randint0(4) + 4);
1091 learn_spell(MS_CONF);
1092 update_smart_learn(m_idx, DRS_CONF);
1095 void spell_RF5_SLOW(int y, int x, int m_idx)
1097 cptr m_name = monster_name(m_idx);
1098 int rlev = monster_level_idx(m_idx);
1101 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤Î¶ÚÎϤòµÛ¤¤¼è¤í¤¦¤È¤·¤¿¡ª",
1102 "%^s drains power from your muscles!"), m_name);
1104 if (p_ptr->free_act)
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_slow(p_ptr->slow + randint0(4) + 4, FALSE);
1116 learn_spell(MS_SLOW);
1117 update_smart_learn(m_idx, DRS_FREE);
1120 void spell_RF5_HOLD(int y, int x, int m_idx)
1122 cptr m_name = monster_name(m_idx);
1123 int rlev = monster_level_idx(m_idx);
1127 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1129 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ÎÌܤò¤¸¤Ã¤È¸«¤Ä¤á¤¿¡ª", "%^s stares deep into your eyes!"), m_name);
1131 if (p_ptr->free_act)
1133 msg_print(_("¤·¤«¤·¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡ª", "You are unaffected!"));
1135 else if (randint0(100 + rlev / 2) < p_ptr->skill_sav)
1137 msg_format(_("¤·¤«¤·¸úÎϤòÄ·¤ÍÊÖ¤·¤¿¡ª", "You resist the effects!"));
1141 (void)set_paralyzed(p_ptr->paralyzed + randint0(4) + 4);
1143 learn_spell(MS_SLEEP);
1144 update_smart_learn(m_idx, DRS_FREE);
1147 void spell_RF6_HASTE(int m_idx)
1149 cptr m_name = monster_name(m_idx);
1150 monster_type *m_ptr = &m_list[m_idx];
1154 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1158 msg_format(_("%^s¤¬¼«Ê¬¤ÎÂΤËÇ°¤òÁ÷¤Ã¤¿¡£", "%^s concentrates on %s body."), m_name);
1161 /* Allow quick speed increases to base+10 */
1162 if (set_monster_fast(m_idx, MON_FAST(m_ptr) + 100))
1164 msg_format(_("%^s¤ÎÆ°¤¤¬Â®¤¯¤Ê¤Ã¤¿¡£", "%^s starts moving faster."), m_name);
1168 int spell_RF6_HAND_DOOM(int y, int x, int m_idx)
1170 bool learnable = spell_learnable(m_idx);
1171 cptr m_name = monster_name(m_idx);
1172 monster_type *m_ptr = &m_list[m_idx];
1175 msg_format(_("%^s¤¬<ÇËÌǤμê>¤òÊü¤Ã¤¿¡ª", "%^s invokes the Hand of Doom!"), m_name);
1176 dam = (((s32b)((40 + randint1(20)) * (p_ptr->chp))) / 100);
1177 breath(y, x, m_idx, GF_HAND_DOOM, dam, 0, FALSE, MS_HAND_DOOM, learnable);
1181 void spell_RF6_HEAL(int m_idx)
1183 cptr m_name = monster_name(m_idx);
1184 monster_type *m_ptr = &m_list[m_idx];
1185 int rlev = monster_level_idx(m_idx);
1186 bool seen = (!p_ptr->blind && m_ptr->ml);
1191 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1193 msg_format(_("%^s¤¬¼«Ê¬¤Î½ý¤Ë½¸Ã椷¤¿¡£", "%^s concentrates on %s wounds."), m_name);
1196 m_ptr->hp += (rlev * 6);
1199 if (m_ptr->hp >= m_ptr->maxhp)
1202 m_ptr->hp = m_ptr->maxhp;
1206 msg_format(_("%^s¤Ï´°Á´¤Ë¼£¤Ã¤¿¡ª", "%^s looks completely healed!"), m_name);
1208 msg_format(_("%^s¤Ï´°Á´¤Ë¼£¤Ã¤¿¤è¤¦¤À¡ª", "%^s sounds completely healed!"), m_name);
1211 /* Partially healed */
1216 msg_format(_("%^s¤ÏÂÎÎϤò²óÉü¤·¤¿¤è¤¦¤À¡£", "%^s looks healthier."), m_name);
1218 msg_format(_("%^s¤ÏÂÎÎϤò²óÉü¤·¤¿¤è¤¦¤À¡£", "%^s sounds healthier."), m_name);
1221 /* Redraw (later) if needed */
1222 if (p_ptr->health_who == m_idx) p_ptr->redraw |= (PR_HEALTH);
1223 if (p_ptr->riding == m_idx) p_ptr->redraw |= (PR_UHEALTH);
1226 if (MON_MONFEAR(m_ptr))
1229 (void)set_monster_monfear(m_idx, 0);
1232 msg_format(_("%^s¤Ïͦµ¤¤ò¼è¤êÌᤷ¤¿¡£", "%^s recovers %s courage."), m_name);
1235 void spell_RF6_INVULNER(int m_idx)
1237 cptr m_name = monster_name(m_idx);
1238 monster_type *m_ptr = &m_list[m_idx];
1239 bool seen = (!p_ptr->blind && m_ptr->ml);
1244 msg_format(_("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."), m_name);
1246 msg_format(_("%s¤Ï̵½ý¤Îµå¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a Globe of Invulnerability."), m_name);
1248 if (!MON_INVULNER(m_ptr)) (void)set_monster_invulner(m_idx, randint1(4) + 4, FALSE);
1251 void spell_RF6_BLINK(int m_idx)
1253 cptr m_name = monster_name(m_idx);
1255 if (teleport_barrier(m_idx))
1257 msg_format(_("ËâË¡¤Î¥Ð¥ê¥¢¤¬%^s¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¼ÙË⤷¤¿¡£",
1258 "Magic barrier obstructs teleporting of %^s."), m_name);
1262 msg_format(_("%^s¤¬½Ö»þ¤Ë¾Ã¤¨¤¿¡£", "%^s blinks away."), m_name);
1263 teleport_away(m_idx, 10, 0L);
1264 p_ptr->update |= (PU_MONSTERS);
1268 void spell_RF6_TPORT(int m_idx)
1270 cptr m_name = monster_name(m_idx);
1272 if (teleport_barrier(m_idx))
1274 msg_format(_("ËâË¡¤Î¥Ð¥ê¥¢¤¬%^s¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¼ÙË⤷¤¿¡£",
1275 "Magic barrier obstructs teleporting of %^s."), m_name);
1279 msg_format(_("%^s¤¬¥Æ¥ì¥Ý¡¼¥È¤·¤¿¡£", "%^s teleports away."), m_name);
1280 teleport_away_followable(m_idx);
1284 int spell_RF6_WORLD(int m_idx)
1286 cptr m_name = monster_name(m_idx);
1287 monster_type *m_ptr = &m_list[m_idx];
1290 if (m_ptr->r_idx == MON_DIO) who = 1;
1291 else if (m_ptr->r_idx == MON_WONG) who = 3;
1292 if (!process_the_world(randint1(2) + 2, who, TRUE)) return (FALSE);
1296 int spell_RF6_SPECIAL(int y, int x, int m_idx)
1298 cptr m_name = monster_name(m_idx);
1299 monster_type *m_ptr = &m_list[m_idx];
1300 monster_race *r_ptr = &r_info[m_ptr->r_idx];
1302 bool direct = player_bold(y, x);
1303 int k, dam, count=0;
1306 switch (m_ptr->r_idx)
1309 /* Moved to process_monster(), like multiplication */
1311 case MON_BANORLUPART:
1313 int dummy_hp = (m_ptr->hp + 1) / 2;
1314 int dummy_maxhp = m_ptr->maxhp / 2;
1315 int dummy_y = m_ptr->fy;
1316 int dummy_x = m_ptr->fx;
1318 if (p_ptr->inside_arena || p_ptr->inside_battle || !summon_possible(m_ptr->fy, m_ptr->fx)) return -1;
1319 delete_monster_idx(cave[m_ptr->fy][m_ptr->fx].m_idx);
1320 summon_named_creature(0, dummy_y, dummy_x, MON_BANOR, mode);
1321 m_list[hack_m_idx_ii].hp = dummy_hp;
1322 m_list[hack_m_idx_ii].maxhp = dummy_maxhp;
1323 summon_named_creature(0, dummy_y, dummy_x, MON_LUPART, mode);
1324 m_list[hack_m_idx_ii].hp = dummy_hp;
1325 m_list[hack_m_idx_ii].maxhp = dummy_maxhp;
1327 msg_print(_("¡Ø¥Ð¡¼¥Î¡¼¥ë¡¦¥ë¥Ñ¡¼¥È¡Ù¤¬Ê¬Îö¤·¤¿¡ª","Banor=Rupart splits in two person!"));
1335 int dummy_maxhp = 0;
1336 int dummy_y = m_ptr->fy;
1337 int dummy_x = m_ptr->fx;
1339 if (!r_info[MON_BANOR].cur_num || !r_info[MON_LUPART].cur_num) return (FALSE);
1340 for (k = 1; k < m_max; k++)
1342 if (m_list[k].r_idx == MON_BANOR || m_list[k].r_idx == MON_LUPART)
1344 dummy_hp += m_list[k].hp;
1345 dummy_maxhp += m_list[k].maxhp;
1346 if (m_list[k].r_idx != m_ptr->r_idx)
1348 dummy_y = m_list[k].fy;
1349 dummy_x = m_list[k].fx;
1351 delete_monster_idx(k);
1354 summon_named_creature(0, dummy_y, dummy_x, MON_BANORLUPART, mode);
1355 m_list[hack_m_idx_ii].hp = dummy_hp;
1356 m_list[hack_m_idx_ii].maxhp = dummy_maxhp;
1358 msg_print(_("¡Ø¥Ð¡¼¥Î¡¼¥ë¡Ù¤È¡Ø¥ë¥Ñ¡¼¥È¡Ù¤¬¹çÂΤ·¤¿¡ª", "Banor and Rupart combine into one!"));
1364 msg_format(_("%^s¤¬²¿¤«ÂçÎ̤ËÅꤲ¤¿¡£", "%^s spreads something."), m_name);
1366 msg_format(_("%^s¤Ï¼êÜØÃƤò¤Ð¤é¤Þ¤¤¤¿¡£", "%^s throws some hand grenades."), m_name);
1369 int num = 1 + randint1(3);
1371 for (k = 0; k < num; k++)
1373 count += summon_named_creature(m_idx, y, x, MON_SHURYUUDAN, mode);
1377 if (p_ptr->blind && count)
1378 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¤Ð¤é¤Þ¤«¤ì¤ë²»¤¬¤¹¤ë¡£", "You hear many things are scattered nearby."));
1383 if (r_ptr->d_char == 'B')
1386 if (one_in_(3) || !direct)
1388 msg_format(_("%^s¤ÏÆÍÁ³»ë³¦¤«¤é¾Ã¤¨¤¿!", "%^s suddenly go out of your sight!"), m_name);
1389 teleport_away(m_idx, 10, TELEPORT_NONMAGICAL);
1390 p_ptr->update |= (PU_MONSTERS);
1395 bool fear; /* dummy */
1397 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤òÄϤó¤Ç¶õÃ椫¤éÅꤲÍî¤È¤·¤¿¡£",
1398 "%^s holds you, and drops from the sky."), m_name);
1399 dam = damroll(4, 8);
1400 teleport_player_to(m_ptr->fy, m_ptr->fx, TELEPORT_NONMAGICAL | TELEPORT_PASSIVE);
1404 if (p_ptr->levitation)
1406 msg_print(_("¤¢¤Ê¤¿¤ÏÀŤ«¤ËÃåÃϤ·¤¿¡£", "You float gently down to the ground."));
1410 msg_print(_("¤¢¤Ê¤¿¤ÏÃÏÌ̤ËᤤĤ±¤é¤ì¤¿¡£", "You crashed into the ground."));
1411 dam += damroll(6, 8);
1414 /* Mega hack -- this special action deals damage to the player. Therefore the code of "eyeeye" is necessary.
1417 get_damage = take_hit(DAMAGE_NOESCAPE, dam, m_name, -1);
1418 if (p_ptr->tim_eyeeye && get_damage > 0 && !p_ptr->is_dead)
1421 msg_format("¹¶·â¤¬%s¼«¿È¤ò½ý¤Ä¤±¤¿¡ª", m_name);
1423 char m_name_self[80];
1426 monster_desc(m_name_self, m_ptr, MD_PRON_VISIBLE | MD_POSSESSIVE | MD_OBJECTIVE);
1428 msg_format("The attack of %s has wounded %s!", m_name, m_name_self);
1430 project(0, 0, m_ptr->fy, m_ptr->fx, get_damage, GF_MISSILE, PROJECT_KILL, -1);
1431 set_tim_eyeeye(p_ptr->tim_eyeeye - 5, TRUE);
1434 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);
1439 /* Something is wrong */
1446 void spell_RF6_TELE_TO(int m_idx)
1448 cptr m_name = monster_name(m_idx);
1449 monster_type *m_ptr = &m_list[m_idx];
1451 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ò°ú¤Ìᤷ¤¿¡£", "%^s commands you to return."), m_name);
1453 teleport_player_to(m_ptr->fy, m_ptr->fx, TELEPORT_PASSIVE);
1454 learn_spell(MS_TELE_TO);
1457 void spell_RF6_TELE_AWAY(int m_idx)
1459 cptr m_name = monster_name(m_idx);
1462 msg_format(_("%^s¤Ë¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤é¤ì¤¿¡£", "%^s teleports you away."), m_name);
1463 if ((p_ptr->pseikaku == SEIKAKU_COMBAT) || (inventory[INVEN_BOW].name1 == ART_CRIMSON))
1464 msg_print(_("¤¯¤Ã¤½¡Á", ""));
1466 learn_spell(MS_TELE_AWAY);
1467 teleport_player_away(m_idx, 100);
1470 void spell_RF6_TELE_LEVEL(int m_idx)
1472 cptr m_name = monster_name(m_idx);
1473 int rlev = monster_level_idx(m_idx);
1477 msg_format(_("%^s¤¬²¿¤«´ñ̯¤Ê¸ÀÍÕ¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles strangely."), m_name);
1479 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤Î¤ò»Ø¤µ¤·¤¿¡£", "%^s gestures at your feet."), m_name);
1481 if (p_ptr->resist_nexus)
1483 msg_print(_("¤·¤«¤·¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡ª", "You are unaffected!"));
1485 else if (randint0(100 + rlev / 2) < p_ptr->skill_sav)
1487 msg_print(_("¤·¤«¤·¸úÎϤòÄ·¤ÍÊÖ¤·¤¿¡ª", "You resist the effects!"));
1493 learn_spell(MS_TELE_LEVEL);
1494 update_smart_learn(m_idx, DRS_NEXUS);
1497 int spell_RF6_PSY_SPEAR(int m_idx)
1499 bool learnable = spell_learnable(m_idx);
1500 cptr m_name = monster_name(m_idx);
1501 monster_type *m_ptr = &m_list[m_idx];
1502 monster_race *r_ptr = &r_info[m_ptr->r_idx];
1503 int rlev = monster_level_idx(m_idx);
1507 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1509 msg_format(_("%^s¤¬¸÷¤Î·õ¤òÊü¤Ã¤¿¡£", "%^s throw a Psycho-Spear."), m_name);
1511 dam = (r_ptr->flags2 & RF2_POWERFUL) ? (randint1(rlev * 2) + 150) : (randint1(rlev * 3 / 2) + 100);
1512 beam(m_idx, GF_PSY_SPEAR, dam, MS_PSY_SPEAR, learnable);
1516 void spell_RF6_DARKNESS(int m_idx)
1518 cptr m_name = monster_name(m_idx);
1519 monster_type *m_ptr = &m_list[m_idx];
1520 monster_race *r_ptr = &r_info[m_ptr->r_idx];
1521 bool can_use_lite_area = FALSE;
1523 if ((p_ptr->pclass == CLASS_NINJA) &&
1524 !(r_ptr->flags3 & (RF3_UNDEAD | RF3_HURT_LITE)) &&
1525 !(r_ptr->flags7 & RF7_DARK_MASK))
1526 can_use_lite_area = TRUE;
1530 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1531 else if (can_use_lite_area)
1532 msg_format(_("%^s¤¬ÊÕ¤ê¤òÌÀ¤ë¤¯¾È¤é¤·¤¿¡£", "%^s cast a spell to light up."), m_name);
1534 msg_format(_("%^s¤¬°Å°Ç¤ÎÃæ¤Ç¼ê¤ò¿¶¤Ã¤¿¡£", "%^s gestures in shadow."), m_name);
1536 if (can_use_lite_area)
1538 (void)lite_area(0, 3);
1542 learn_spell(MS_DARKNESS);
1543 (void)unlite_area(0, 3);
1547 void spell_RF6_TRAPS(int y, int x, int m_idx)
1549 cptr m_name = monster_name(m_idx);
1553 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤Æ¼Ù°¤ËÈù¾Ð¤ó¤À¡£",
1554 "%^s mumbles, and then cackles evilly."), m_name);
1556 msg_format(_("%^s¤¬¼öʸ¤ò¾§¤¨¤Æ¼Ù°¤ËÈù¾Ð¤ó¤À¡£",
1557 "%^s casts a spell and cackles evilly."), m_name);
1559 learn_spell(MS_MAKE_TRAP);
1560 (void)trap_creation(y, x);
1563 void spell_RF6_FORGET(int m_idx)
1565 cptr m_name = monster_name(m_idx);
1566 int rlev = monster_level_idx(m_idx);
1569 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤Îµ²±¤ò¾Ãµî¤·¤è¤¦¤È¤·¤Æ¤¤¤ë¡£",
1570 "%^s tries to blank your mind."), m_name);
1572 if (randint0(100 + rlev / 2) < p_ptr->skill_sav)
1574 msg_print(_("¤·¤«¤·¸úÎϤòÄ·¤ÍÊÖ¤·¤¿¡ª", "You resist the effects!"));
1576 else if (lose_all_info())
1578 msg_print(_("µ²±¤¬Çö¤ì¤Æ¤·¤Þ¤Ã¤¿¡£", "Your memories fade away."));
1580 learn_spell(MS_FORGET);
1583 void spell_RF6_RAISE_DEAD(int m_idx)
1585 cptr m_name = monster_name(m_idx);
1586 monster_type *m_ptr = &m_list[m_idx];
1590 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1592 msg_format(_("%^s¤¬»à¼ÔÉü³è¤Î¼öʸ¤ò¾§¤¨¤¿¡£",
1593 "%^s casts a spell to revive corpses."), m_name);
1595 animate_dead(m_idx, m_ptr->fy, m_ptr->fx);
1598 void spell_RF6_S_KIN(int y, int x, int m_idx)
1600 cptr m_name = monster_name(m_idx);
1601 monster_type *m_ptr = &m_list[m_idx];
1602 monster_race *r_ptr = &r_info[m_ptr->r_idx];
1603 int rlev = monster_level_idx(m_idx);
1607 if (m_ptr->r_idx == MON_SERPENT || m_ptr->r_idx == MON_ZOMBI_SERPENT)
1610 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1612 msg_format(_("%^s¤¬¥À¥ó¥¸¥ç¥ó¤Î¼ç¤ò¾¤´¤·¤¿¡£",
1613 "%^s magically summons guardians of dungeons."), m_name);
1618 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1621 msg_format("%^s¤ÏËâË¡¤Ç%s¤ò¾¤´¤·¤¿¡£",
1623 ((r_ptr->flags1) & RF1_UNIQUE ?
1626 msg_format("%^s magically summons %s %s.",
1628 ((r_ptr->flags1) & RF1_UNIQUE ?
1629 "minions" : "kin"));
1633 switch (m_ptr->r_idx)
1639 int num = 4 + randint1(3);
1640 for (k = 0; k < num; k++)
1642 count += summon_specific(m_idx, y, x, rlev, SUMMON_EAGLES, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
1649 int num = 2 + randint1(3);
1650 for (k = 0; k < num; k++)
1652 count += summon_named_creature(m_idx, y, x, MON_IE, mode);
1658 case MON_ZOMBI_SERPENT:
1660 int num = 2 + randint1(3);
1662 if (r_info[MON_JORMUNGAND].cur_num < r_info[MON_JORMUNGAND].max_num && one_in_(6))
1664 msg_print(_("ÃÏÌ̤«¤é¿å¤¬¿á¤½Ð¤·¤¿¡ª", "Water blew off from the ground!"));
1665 fire_ball_hide(GF_WATER_FLOW, 0, 3, 8);
1668 for (k = 0; k < num; k++)
1670 count += summon_specific(m_idx, y, x, rlev, SUMMON_GUARDIANS, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
1677 int num = randint1(3);
1678 for (k = 0; k < num; k++)
1680 count += summon_named_creature(m_idx, y, x, MON_LOCKE_CLONE, mode);
1687 int num = 2 + randint1(3);
1688 for (k = 0; k < num; k++)
1690 count += summon_specific(m_idx, y, x, rlev, SUMMON_LOUSE, PM_ALLOW_GROUP);
1696 summon_kin_type = r_ptr->d_char; /* Big hack */
1698 for (k = 0; k < 4; k++)
1700 count += summon_specific(m_idx, y, x, rlev, SUMMON_KIN, PM_ALLOW_GROUP);
1705 if (p_ptr->blind && count)
1706 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear many things appear nearby."));
1709 void spell_RF6_S_CYBER(int y, int x, int m_idx)
1711 cptr m_name = monster_name(m_idx);
1716 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1718 msg_format(_("%^s¤¬¥µ¥¤¥Ð¡¼¥Ç¡¼¥â¥ó¤ò¾¤´¤·¤¿¡ª",
1719 "%^s magically summons Cyberdemons!"), m_name);
1721 count = summon_cyber(m_idx, y, x);
1723 if (p_ptr->blind && count)
1724 msg_print(_("½Å¸ü¤Ê²»¤¬¶á¤¯¤Çʹ¤³¤¨¤ë¡£", "You hear heavy steps nearby."));
1727 void spell_RF6_S_MONSTER(int y, int x, int m_idx)
1729 cptr m_name = monster_name(m_idx);
1730 int rlev = monster_level_idx(m_idx);
1735 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1737 msg_format(_("%^s¤¬ËâË¡¤ÇÃç´Ö¤ò¾¤´¤·¤¿¡ª", "%^s magically summons help!"), m_name);
1739 for (k = 0; k < 1; k++)
1741 count += summon_specific(m_idx, y, x, rlev, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
1743 if (p_ptr->blind && count)
1744 msg_print(_("²¿¤«¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear something appear nearby."));
1747 void spell_RF6_S_MONSTERS(int y, int x, int m_idx)
1749 cptr m_name = monster_name(m_idx);
1750 int rlev = monster_level_idx(m_idx);
1755 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1757 msg_format(_("%^s¤¬ËâË¡¤Ç¥â¥ó¥¹¥¿¡¼¤ò¾¤´¤·¤¿¡ª", "%^s magically summons monsters!"), m_name);
1759 for (k = 0; k < S_NUM_6; k++)
1761 count += summon_specific(m_idx, y, x, rlev, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
1764 if (p_ptr->blind && count)
1765 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear many things appear nearby."));
1768 void spell_RF6_S_ANT(int y, int x, int m_idx)
1770 cptr m_name = monster_name(m_idx);
1771 int rlev = monster_level_idx(m_idx);
1776 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1778 msg_format(_("%^s¤¬ËâË¡¤Ç¥¢¥ê¤ò¾¤´¤·¤¿¡£", "%^s magically summons ants."), m_name);
1780 for (k = 0; k < S_NUM_6; k++)
1782 count += summon_specific(m_idx, y, x, rlev, SUMMON_ANT, PM_ALLOW_GROUP);
1785 if (p_ptr->blind && count)
1786 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear many things appear nearby."));
1789 void spell_RF6_S_SPIDER(int y, int x, int m_idx)
1791 cptr m_name = monster_name(m_idx);
1792 int rlev = monster_level_idx(m_idx);
1797 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1799 msg_format(_("%^s¤¬ËâË¡¤Ç¥¯¥â¤ò¾¤´¤·¤¿¡£", "%^s magically summons spiders."), m_name);
1801 for (k = 0; k < S_NUM_6; k++)
1803 count += summon_specific(m_idx, y, x, rlev, SUMMON_SPIDER, PM_ALLOW_GROUP);
1806 if (p_ptr->blind && count)
1807 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear many things appear nearby."));
1810 void spell_RF6_S_HOUND(int y, int x, int m_idx)
1812 cptr m_name = monster_name(m_idx);
1813 int rlev = monster_level_idx(m_idx);
1818 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1820 msg_format(_("%^s¤¬ËâË¡¤Ç¥Ï¥¦¥ó¥É¤ò¾¤´¤·¤¿¡£", "%^s magically summons hounds."), m_name);
1822 for (k = 0; k < S_NUM_4; k++)
1824 count += summon_specific(m_idx, y, x, rlev, SUMMON_HOUND, PM_ALLOW_GROUP);
1827 if (p_ptr->blind && count)
1828 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear many things appear nearby."));
1831 void spell_RF6_S_HYDRA(int y, int x, int m_idx)
1833 cptr m_name = monster_name(m_idx);
1834 int rlev = monster_level_idx(m_idx);
1839 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1841 msg_format(_("%^s¤¬ËâË¡¤Ç¥Ò¥É¥é¤ò¾¤´¤·¤¿¡£", "%^s magically summons hydras."), m_name);
1843 for (k = 0; k < S_NUM_4; k++)
1845 count += summon_specific(m_idx, y, x, rlev, SUMMON_HYDRA, PM_ALLOW_GROUP);
1847 if (p_ptr->blind && count)
1848 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear many things appear nearby."));
1851 void spell_RF6_S_ANGEL(int y, int x, int m_idx)
1853 cptr m_name = monster_name(m_idx);
1854 monster_type *m_ptr = &m_list[m_idx];
1855 monster_race *r_ptr = &r_info[m_ptr->r_idx];
1856 int rlev = monster_level_idx(m_idx);
1863 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1865 msg_format(_("%^s¤¬ËâË¡¤ÇÅ·»È¤ò¾¤´¤·¤¿¡ª", "%^s magically summons an angel!"), m_name);
1867 if ((r_ptr->flags1 & RF1_UNIQUE) && !easy_band)
1869 num += r_ptr->level / 40;
1872 for (k = 0; k < num; k++)
1874 count += summon_specific(m_idx, y, x, rlev, SUMMON_ANGEL, PM_ALLOW_GROUP);
1879 if (p_ptr->blind && count)
1880 msg_print(_("²¿¤«¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear something appear nearby."));
1885 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear many things appear nearby."));
1889 void spell_RF6_S_DEMON(int y, int x, int m_idx)
1891 cptr m_name = monster_name(m_idx);
1892 int rlev = monster_level_idx(m_idx);
1897 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1899 msg_format(_("%^s¤ÏËâË¡¤Çº®Æ٤εÜÄ¤é°Ëâ¤ò¾¤´¤·¤¿¡ª",
1900 "%^s magically summons a demon from the Courts of Chaos!"), m_name);
1902 for (k = 0; k < 1; k++)
1904 count += summon_specific(m_idx, y, x, rlev, SUMMON_DEMON, PM_ALLOW_GROUP);
1907 if (p_ptr->blind && count)
1908 msg_print(_("²¿¤«¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear something appear nearby."));
1911 void spell_RF6_S_UNDEAD(int y, int x, int m_idx)
1913 cptr m_name = monster_name(m_idx);
1914 int rlev = monster_level_idx(m_idx);
1919 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1921 msg_format(_("%^s¤¬ËâË¡¤Ç¥¢¥ó¥Ç¥Ã¥É¤Î¶¯Å¨¤ò¾¤´¤·¤¿¡ª",
1922 "%^s magically summons an undead adversary!"), m_name);
1924 for (k = 0; k < 1; k++)
1926 count += summon_specific(m_idx, y, x, rlev, SUMMON_UNDEAD, PM_ALLOW_GROUP);
1929 if (p_ptr->blind && count)
1930 msg_print(_("²¿¤«¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear something appear nearby."));
1933 void spell_RF6_S_DRAGON(int y, int x, int m_idx)
1935 cptr m_name = monster_name(m_idx);
1936 int rlev = monster_level_idx(m_idx);
1941 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1943 msg_format(_("%^s¤¬ËâË¡¤Ç¥É¥é¥´¥ó¤ò¾¤´¤·¤¿¡ª", "%^s magically summons a dragon!"), m_name);
1945 for (k = 0; k < 1; k++)
1947 count += summon_specific(m_idx, y, x, rlev, SUMMON_DRAGON, PM_ALLOW_GROUP);
1949 if (p_ptr->blind && count)
1950 msg_print(_("²¿¤«¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear something appear nearby."));
1953 void spell_RF6_S_HI_UNDEAD(int y, int x, int m_idx)
1955 cptr m_name = monster_name(m_idx);
1956 monster_type *m_ptr = &m_list[m_idx];
1957 monster_race *r_ptr = &r_info[m_ptr->r_idx];
1958 int rlev = monster_level_idx(m_idx);
1963 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))
1969 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1971 msg_format(_("%^s¤¬ËâË¡¤ÇÍ©µ´ÀïÂâ¤ò¾¤´¤·¤¿¡ª", "%^s magically summons rangers of Nazgul!"), m_name);
1975 for (k = 0; k < 30; k++)
1977 if (!summon_possible(cy, cx) || !cave_empty_bold(cy, cx))
1980 for (j = 100; j > 0; j--)
1982 scatter(&cy, &cx, y, x, 2, 0);
1983 if (cave_empty_bold(cy, cx)) break;
1987 if (!cave_empty_bold(cy, cx)) continue;
1989 if (summon_named_creature(m_idx, cy, cx, MON_NAZGUL, mode))
1995 msg_format(_("¡ÖÍ©µ´ÀïÂâ%d¹æ¡¢¥Ê¥º¥°¥ë¡¦¥Ö¥é¥Ã¥¯¡ª¡×",
1996 "A Nazgul says 'Nazgul-Rangers Number %d, Nazgul-Black!'"), count);
1998 msg_format(_("¡ÖƱ¤¸¤¯%d¹æ¡¢¥Ê¥º¥°¥ë¡¦¥Ö¥é¥Ã¥¯¡ª¡×",
1999 "Another one says 'Number %d, Nazgul-Black!'"), count);
2004 msg_format(_("¡Ö%d¿Í¤½¤í¤Ã¤Æ¡¢¥ê¥ó¥°¥ì¥ó¥¸¥ã¡¼¡ª¡×",
2005 "They say 'The %d meets! We are the Ring-Ranger!'."), count);
2011 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
2013 msg_format(_("%^s¤¬ËâË¡¤Ç¶¯ÎϤʥ¢¥ó¥Ç¥Ã¥É¤ò¾¤´¤·¤¿¡ª",
2014 "%^s magically summons greater undead!"), m_name);
2016 for (k = 0; k < S_NUM_6; k++)
2018 count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_UNDEAD, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
2021 if (p_ptr->blind && count)
2023 msg_print(_("´Ö¶á¤Ç²¿¤«Â¿¤¯¤Î¤â¤Î¤¬Ç礤²ó¤ë²»¤¬Ê¹¤³¤¨¤ë¡£",
2024 "You hear many creepy things appear nearby."));
2029 void spell_RF6_S_HI_DRAGON(int y, int x, int m_idx)
2031 cptr m_name = monster_name(m_idx);
2032 int rlev = monster_level_idx(m_idx);
2037 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
2039 msg_format(_("%^s¤¬ËâË¡¤Ç¸ÅÂå¥É¥é¥´¥ó¤ò¾¤´¤·¤¿¡ª", "%^s magically summons ancient dragons!"), m_name);
2041 for (k = 0; k < S_NUM_4; k++)
2043 count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_DRAGON, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
2045 if (p_ptr->blind && count)
2047 msg_print(_("¿¤¯¤ÎÎ϶¯¤¤¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬Ê¹¤³¤¨¤ë¡£",
2048 "You hear many powerful things appear nearby."));
2052 void spell_RF6_S_AMBERITES(int y, int x, int m_idx)
2054 cptr m_name = monster_name(m_idx);
2055 int rlev = monster_level_idx(m_idx);
2060 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
2062 msg_format(_("%^s¤¬¥¢¥ó¥Ð¡¼¤Î²¦Â²¤ò¾¤´¤·¤¿¡ª", "%^s magically summons Lords of Amber!"), m_name);
2064 for (k = 0; k < S_NUM_4; k++)
2066 count += summon_specific(m_idx, y, x, rlev, SUMMON_AMBERITES, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
2068 if (p_ptr->blind && count)
2070 msg_print(_("ÉÔ»à¤Î¼Ô¤¬¶á¤¯¤Ë¸½¤ì¤ë¤Î¤¬Ê¹¤³¤¨¤¿¡£", "You hear immortal beings appear nearby."));
2074 void spell_RF6_S_UNIQUE(int y, int x, int m_idx)
2076 cptr m_name = monster_name(m_idx);
2077 monster_type *m_ptr = &m_list[m_idx];
2078 int rlev = monster_level_idx(m_idx);
2080 bool uniques_are_summoned = FALSE;
2081 int non_unique_type = SUMMON_HI_UNDEAD;
2086 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
2088 msg_format(_("%^s¤¬ËâË¡¤ÇÆÃÊ̤ʶ¯Å¨¤ò¾¤´¤·¤¿¡ª", "%^s magically summons special opponents!"), m_name);
2090 for (k = 0; k < S_NUM_4; k++)
2092 count += summon_specific(m_idx, y, x, rlev, SUMMON_UNIQUE, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
2095 if (count) uniques_are_summoned = TRUE;
2097 if ((m_ptr->sub_align & (SUB_ALIGN_GOOD | SUB_ALIGN_EVIL)) == (SUB_ALIGN_GOOD | SUB_ALIGN_EVIL))
2098 non_unique_type = 0;
2099 else if (m_ptr->sub_align & SUB_ALIGN_GOOD)
2100 non_unique_type = SUMMON_ANGEL;
2102 for (k = count; k < S_NUM_4; k++)
2104 count += summon_specific(m_idx, y, x, rlev, non_unique_type, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
2107 if (p_ptr->blind && count)
2109 msg_format(_("¿¤¯¤Î%s¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬Ê¹¤³¤¨¤ë¡£", "You hear many %s appear nearby."),
2110 uniques_are_summoned ? _("Î϶¯¤¤¤â¤Î", "powerful things") : _("¤â¤Î", "things"));