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 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 breath(y, x, m_idx, GF_ROCKET, dam, 2, FALSE, MS_ROCKET, SPELL_TYPE);
57 if (SPELL_TYPE == SPELL_MON_TO_PLAYER)
59 update_smart_learn(m_idx, DRS_SHARD);
66 void MP_spell_RF4_SHRIEK(int m_idx)
68 cptr m_name = monster_name(m_idx);
70 msg_format(_("%^s¤¬¤«¤ó¹â¤¤¶âÀÚ¤êÀ¼¤ò¤¢¤²¤¿¡£", "%^s makes a high pitched shriek."), m_name);
71 aggravate_monsters(m_idx);
74 void MM_spell_RF4_SHRIEK(int m_idx, int t_idx)
76 cptr m_name = monster_name(m_idx);
77 cptr t_name = monster_name(t_idx);
78 bool known = monster_near_player(m_idx, t_idx);
79 bool see_m = see_monster(m_idx);
84 msg_format(_("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¶«¤ó¤À¡£", "%^s shrieks at %s."), m_name, t_name);
91 (void)set_monster_csleep(t_idx, 0);
94 void MP_spell_RF4_DISPEL(int m_idx)
96 cptr m_name = monster_name(m_idx);
100 msg_format(_("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."), m_name);
102 msg_format(_("%^s¤¬ËâÎϾõî¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a dispel magic."), m_name);
105 if (p_ptr->riding) dispel_monster_status(p_ptr->riding);
107 if ((p_ptr->pseikaku == SEIKAKU_COMBAT) || (inventory[INVEN_BOW].name1 == ART_CRIMSON))
108 msg_print(_("¤ä¤ê¤ä¤¬¤Ã¤¿¤Ê¡ª", ""));
110 learn_spell(MS_DISPEL);
113 void MM_spell_RF4_DISPEL(int m_idx, int t_idx)
115 cptr m_name = monster_name(m_idx);
116 cptr t_name = monster_name(t_idx);
117 bool known = monster_near_player(m_idx, t_idx);
118 bool see_m = see_monster(m_idx);
123 msg_format(_("%^s¤¬%s¤ËÂФ·¤ÆËâÎϾõî¤Î¼öʸ¤òÇ°¤¸¤¿¡£",
124 "%^s invokes a dispel magic at %s."), m_name, t_name);
132 if (t_idx == p_ptr->riding) dispel_player();
133 dispel_monster_status(t_idx);
137 int MP_spell_RF4_ROCKET(int y, int x, int m_idx)
139 cptr m_name = monster_name(m_idx);
140 monster_type *m_ptr = &m_list[m_idx];
143 msg_format(_("%^s¤¬²¿¤«¤ò¼Í¤Ã¤¿¡£", "%^s shoots something."), m_name);
145 msg_format(_("%^s¤¬¥í¥±¥Ã¥È¤òȯ¼Í¤·¤¿¡£", "%^s fires a rocket."), m_name);
147 return spell_core(RF4_ROCKET, m_ptr->hp, y, x, m_idx, SPELL_MON_TO_PLAYER);
150 int MM_spell_RF4_ROCKET(int y, int x, int m_idx, int t_idx)
152 cptr m_name = monster_name(m_idx);
153 cptr t_name = monster_name(t_idx);
154 monster_type *m_ptr = &m_list[m_idx];
156 bool known = monster_near_player(m_idx, t_idx);
157 bool see_either = see_monster(m_idx) || see_monster(t_idx);
166 msg_format(_("%^s¤¬²¿¤«¤ò¼Í¤Ã¤¿¡£", "%^s shoots something."), m_name);
170 msg_format(_("%^s¤¬%s¤Ë¥í¥±¥Ã¥È¤òȯ¼Í¤·¤¿¡£", "%^s fires a rocket at %s."), m_name, t_name);
178 return spell_core(RF4_ROCKET, m_ptr->hp, y, x, m_idx, SPELL_MON_TO_MON);
181 int spell_RF4_SHOOT(int m_idx)
183 bool learnable = spell_learnable(m_idx);
184 cptr m_name = monster_name(m_idx);
185 monster_type *m_ptr = &m_list[m_idx];
186 monster_race *r_ptr = &r_info[m_ptr->r_idx];
191 msg_format(_("%^s¤¬´ñ̯¤Ê²»¤òȯ¤·¤¿¡£", "%^s makes a strange noise."), m_name);
193 msg_format(_("%^s¤¬Ìð¤òÊü¤Ã¤¿¡£", "%^s fires an arrow."), m_name);
195 dam = damroll(r_ptr->blow[0].d_dice, r_ptr->blow[0].d_side);
196 bolt(m_idx, GF_ARROW, dam, MS_SHOOT);
197 update_smart_learn(m_idx, DRS_REFLECT);
201 int spell_RF4_BREATH(int GF_TYPE, int y, int x, int m_idx)
203 bool learnable = spell_learnable(m_idx);
204 int dam, ms_type, drs_type;
206 bool smart_learn = TRUE;
207 cptr m_name = monster_name(m_idx);
208 monster_type *m_ptr = &m_list[m_idx];
213 dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
214 type_s = _("»À", "acid");
215 ms_type = MS_BR_ACID;
219 dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
220 type_s = _("°ðºÊ", "lightning");
221 ms_type = MS_BR_ELEC;
225 dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
226 type_s = _("²Ð±ê", "fire");
227 ms_type = MS_BR_FIRE;
231 dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
232 type_s = _("Î䵤", "frost");
233 ms_type = MS_BR_COLD;
237 dam = ((m_ptr->hp / 3) > 800 ? 800 : (m_ptr->hp / 3));
238 type_s = _("¥¬¥¹", "gas");
239 ms_type = MS_BR_POIS;
243 dam = ((m_ptr->hp / 6) > 550 ? 550 : (m_ptr->hp / 6));
244 type_s = _("ÃϹö", "nether");
245 ms_type = MS_BR_NETHER;
249 dam = ((m_ptr->hp / 6) > 400 ? 400 : (m_ptr->hp / 6));
250 type_s = _("Á®¸÷", "light");
251 ms_type = MS_BR_LITE;
255 dam = ((m_ptr->hp / 6) > 400 ? 400 : (m_ptr->hp / 6));
256 type_s = _("°Å¹õ", "darkness");
257 ms_type = MS_BR_DARK;
261 dam = ((m_ptr->hp / 6) > 450 ? 450 : (m_ptr->hp / 6));
262 type_s = _("º®Íð", "confusion");
263 ms_type = MS_BR_CONF;
267 dam = ((m_ptr->hp / 6) > 450 ? 450 : (m_ptr->hp / 6));
268 type_s = _("¹ì²»", "sound");
269 ms_type = MS_BR_SOUND;
270 drs_type = DRS_SOUND;
273 dam = ((m_ptr->hp / 6) > 600 ? 600 : (m_ptr->hp / 6));
274 type_s = _("¥«¥ª¥¹", "chaos");
275 ms_type = MS_BR_CHAOS;
276 drs_type = DRS_CHAOS;
279 dam = ((m_ptr->hp / 6) > 500 ? 500 : (m_ptr->hp / 6));
280 type_s = _("Îô²½", "disenchantment");
281 ms_type = MS_BR_DISEN;
282 drs_type = DRS_DISEN;
285 dam = ((m_ptr->hp / 3) > 250 ? 250 : (m_ptr->hp / 3));
286 type_s = _("°ø²Ìº®Íð", "nexus");
287 ms_type = MS_BR_NEXUS;
288 drs_type = DRS_NEXUS;
291 dam = ((m_ptr->hp / 3) > 150 ? 150 : (m_ptr->hp / 3));
292 type_s = _("»þ´ÖµÕž", "time");
293 ms_type = MS_BR_TIME;
297 dam = ((m_ptr->hp / 6) > 200 ? 200 : (m_ptr->hp / 6));
298 type_s = _("ÃÙÆß", "inertia");
299 ms_type = MS_BR_INERTIA;
303 dam = ((m_ptr->hp / 3) > 200 ? 200 : (m_ptr->hp / 3));
304 type_s = _("½ÅÎÏ", "gravity");
305 ms_type = MS_BR_GRAVITY;
309 dam = ((m_ptr->hp / 6) > 500 ? 500 : (m_ptr->hp / 6));
310 type_s = _("ÇËÊÒ", "shards");
311 ms_type = MS_BR_SHARDS;
312 drs_type = DRS_SHARD;
315 dam = ((m_ptr->hp / 6) > 150 ? 150 : (m_ptr->hp / 6));
316 type_s = _("¥×¥é¥º¥Þ", "plasma");
317 ms_type = MS_BR_PLASMA;
321 dam = ((m_ptr->hp / 6) > 200 ? 200 : (m_ptr->hp / 6));
322 type_s = _("¥Õ¥©¡¼¥¹", "force");
323 ms_type = MS_BR_FORCE;
327 dam = ((m_ptr->hp / 3) > 250 ? 250 : (m_ptr->hp / 3));
328 type_s = _("ËâÎÏ", "mana");
329 ms_type = MS_BR_MANA;
333 dam = ((m_ptr->hp / 3) > 800 ? 800 : (m_ptr->hp / 3));
334 type_s = _("Êü¼ÍÀÇÑ´þʪ", "toxic waste");
335 ms_type = MS_BR_NUKE;
338 case GF_DISINTEGRATE:
339 dam = ((m_ptr->hp / 6) > 150 ? 150 : (m_ptr->hp / 6));
340 type_s = _("ʬ²ò", "disintegration");
341 ms_type = MS_BR_DISI;
349 if (m_ptr->r_idx == MON_JAIAN && GF_TYPE == GF_SOUND)
351 msg_format(_("¡Ö¥Ü¥©¥¨¡Á¡Á¡Á¡Á¡Á¡Á¡×", "'Booooeeeeee'"));
353 else if (m_ptr->r_idx == MON_BOTEI && GF_TYPE == GF_SHARDS)
355 msg_format(_("¡Ö¥ÜÄë¥Ó¥ë¥«¥Ã¥¿¡¼¡ª¡ª¡ª¡×", "'Boty-Build cutter!!!'"));
357 else if (p_ptr->blind)
359 msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
363 msg_format(_("%^s¤¬%^s¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes %^s."), m_name, type_s);
366 breath(y, x, m_idx, GF_TYPE, dam, 0, TRUE, ms_type, SPELL_MON_TO_PLAYER);
367 if (smart_learn) update_smart_learn(m_idx, drs_type);
371 int spell_RF4_BA_CHAO(int y, int x, int m_idx)
373 bool learnable = spell_learnable(m_idx);
374 cptr m_name = monster_name(m_idx);
375 monster_type *m_ptr = &m_list[m_idx];
376 monster_race *r_ptr = &r_info[m_ptr->r_idx];
377 int rlev = monster_level_idx(m_idx);
383 msg_format(_("%^s¤¬¶²¤í¤·¤²¤Ë¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles frighteningly."), m_name);
385 msg_format(_("%^s¤¬½ã¥í¥°¥ë¥¹¤òÊü¤Ã¤¿¡£", "%^s invokes a raw Logrus."), m_name);
387 dam = ((r_ptr->flags2 & RF2_POWERFUL) ? (rlev * 3) : (rlev * 2)) + damroll(10, 10);
389 breath(y, x, m_idx, GF_CHAOS, dam, 4, FALSE, MS_BALL_CHAOS, SPELL_MON_TO_PLAYER);
390 update_smart_learn(m_idx, DRS_CHAOS);
394 int spell_RF4_BA_NUKE(int y, int x, int m_idx)
396 bool learnable = spell_learnable(m_idx);
397 cptr m_name = monster_name(m_idx);
398 monster_type *m_ptr = &m_list[m_idx];
399 monster_race *r_ptr = &r_info[m_ptr->r_idx];
400 int rlev = monster_level_idx(m_idx);
405 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
407 msg_format(_("%^s¤¬Êü¼Íǽµå¤òÊü¤Ã¤¿¡£", "%^s casts a ball of radiation."), m_name);
409 dam = (rlev + damroll(10, 6)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
411 breath(y, x, m_idx, GF_NUKE, dam, 2, FALSE, MS_BALL_NUKE, SPELL_MON_TO_PLAYER);
412 update_smart_learn(m_idx, DRS_POIS);
416 int spell_RF5_BA_ACID(int y, int x, int m_idx)
418 bool learnable = spell_learnable(m_idx);
419 cptr m_name = monster_name(m_idx);
420 monster_type *m_ptr = &m_list[m_idx];
421 monster_race *r_ptr = &r_info[m_ptr->r_idx];
422 int rlev = monster_level_idx(m_idx);
427 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
429 msg_format(_("%^s¤¬¥¢¥·¥Ã¥É¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts an acid ball."), m_name);
431 if (r_ptr->flags2 & RF2_POWERFUL)
434 dam = (rlev * 4) + 50 + damroll(10, 10);
439 dam = (randint1(rlev * 3) + 15);
441 breath(y, x, m_idx, GF_ACID, dam, rad, FALSE, MS_BALL_ACID, SPELL_MON_TO_PLAYER);
442 update_smart_learn(m_idx, DRS_ACID);
446 int spell_RF5_BA_ELEC(int y, int x, int m_idx)
448 bool learnable = spell_learnable(m_idx);
449 cptr m_name = monster_name(m_idx);
450 monster_type *m_ptr = &m_list[m_idx];
451 monster_race *r_ptr = &r_info[m_ptr->r_idx];
452 int rlev = monster_level_idx(m_idx);
457 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
459 msg_format(_("%^s¤¬¥µ¥ó¥À¡¼¡¦¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a lightning ball."), m_name);
461 if (r_ptr->flags2 & RF2_POWERFUL)
464 dam = (rlev * 4) + 50 + damroll(10, 10);
469 dam = (randint1(rlev * 3 / 2) + 8);
471 breath(y, x, m_idx, GF_ELEC, dam, rad, FALSE, MS_BALL_ELEC, SPELL_MON_TO_PLAYER);
472 update_smart_learn(m_idx, DRS_ELEC);
476 int spell_RF5_BA_FIRE(int y, int x, int m_idx)
478 bool learnable = spell_learnable(m_idx);
479 cptr m_name = monster_name(m_idx);
480 monster_type *m_ptr = &m_list[m_idx];
481 monster_race *r_ptr = &r_info[m_ptr->r_idx];
482 int rlev = monster_level_idx(m_idx);
486 if (m_ptr->r_idx == MON_ROLENTO)
489 msg_format(_("%s¤¬²¿¤«¤òÅꤲ¤¿¡£", "%^s throws something."), m_name);
491 msg_format(_("%s¤Ï¼êÜØÃƤòÅꤲ¤¿¡£", "%^s throws a hand grenade."), m_name);
496 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
498 msg_format(_("%^s¤¬¥Õ¥¡¥¤¥¢¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a fire ball."), m_name);
501 if (r_ptr->flags2 & RF2_POWERFUL)
504 dam = (rlev * 4) + 50 + damroll(10, 10);
509 dam = (randint1(rlev * 7 / 2) + 10);
511 breath(y, x, m_idx, GF_FIRE, dam, rad, FALSE, MS_BALL_FIRE, SPELL_MON_TO_PLAYER);
512 update_smart_learn(m_idx, DRS_FIRE);
516 int spell_RF5_BA_COLD(int y, int x, int m_idx)
518 bool learnable = spell_learnable(m_idx);
519 cptr m_name = monster_name(m_idx);
520 monster_type *m_ptr = &m_list[m_idx];
521 monster_race *r_ptr = &r_info[m_ptr->r_idx];
522 int rlev = monster_level_idx(m_idx);
527 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
529 msg_format(_("%^s¤¬¥¢¥¤¥¹¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a frost ball."), m_name);
531 if (r_ptr->flags2 & RF2_POWERFUL)
534 dam = (rlev * 4) + 50 + damroll(10, 10);
539 dam = (randint1(rlev * 3 / 2) + 10);
541 breath(y, x, m_idx, GF_COLD, dam, rad, FALSE, MS_BALL_COLD, SPELL_MON_TO_PLAYER);
542 update_smart_learn(m_idx, DRS_COLD);
546 int spell_RF5_BA_POIS(int y, int x, int m_idx)
548 bool learnable = spell_learnable(m_idx);
549 cptr m_name = monster_name(m_idx);
550 monster_type *m_ptr = &m_list[m_idx];
551 monster_race *r_ptr = &r_info[m_ptr->r_idx];
552 int rlev = monster_level_idx(m_idx);
557 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
559 msg_format(_("%^s¤¬°½±À¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a stinking cloud."), m_name);
561 dam = damroll(12, 2) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
562 breath(y, x, m_idx, GF_POIS, dam, 2, FALSE, MS_BALL_POIS, SPELL_MON_TO_PLAYER);
563 update_smart_learn(m_idx, DRS_POIS);
567 int spell_RF5_BA_NETH(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);
577 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
579 msg_format(_("%^s¤¬ÃϹöµå¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a nether ball."), m_name);
581 dam = 50 + damroll(10, 10) + (rlev * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1));
582 breath(y, x, m_idx, GF_NETHER, dam, 2, FALSE, MS_BALL_NETHER, SPELL_MON_TO_PLAYER);
583 update_smart_learn(m_idx, DRS_NETH);
587 int spell_RF5_BA_WATE(int y, int x, int m_idx)
589 bool learnable = spell_learnable(m_idx);
590 cptr m_name = monster_name(m_idx);
591 monster_type *m_ptr = &m_list[m_idx];
592 monster_race *r_ptr = &r_info[m_ptr->r_idx];
593 int rlev = monster_level_idx(m_idx);
598 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
600 msg_format(_("%^s¤¬Î®¤ì¤ë¤è¤¦¤Ê¿È¿¶¤ê¤ò¤·¤¿¡£", "%^s gestures fluidly."), m_name);
602 msg_print(_("¤¢¤Ê¤¿¤Ï±²´¬¤¤Ë°û¤ß¹þ¤Þ¤ì¤¿¡£", "You are engulfed in a whirlpool."));
604 dam = ((r_ptr->flags2 & RF2_POWERFUL) ? randint1(rlev * 3) : randint1(rlev * 2)) + 50;
605 breath(y, x, m_idx, GF_WATER, dam, 4, FALSE, MS_BALL_WATER, SPELL_MON_TO_PLAYER);
609 int spell_RF5_BA_MANA(int y, int x, int m_idx)
611 cptr m_name = monster_name(m_idx);
612 monster_type *m_ptr = &m_list[m_idx];
613 monster_race *r_ptr = &r_info[m_ptr->r_idx];
614 int rlev = monster_level_idx(m_idx);
618 msg_format(_("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."), m_name);
620 msg_format(_("%^s¤¬ËâÎϤÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a mana storm."), m_name);
622 dam = (rlev * 4) + 50 + damroll(10, 10);
623 breath(y, x, m_idx, GF_MANA, dam, 4, FALSE, MS_BALL_MANA, SPELL_MON_TO_PLAYER);
627 int spell_RF5_BA_DARK(int y, int x, int m_idx)
629 cptr m_name = monster_name(m_idx);
630 monster_type *m_ptr = &m_list[m_idx];
631 monster_race *r_ptr = &r_info[m_ptr->r_idx];
632 int rlev = monster_level_idx(m_idx);
637 msg_format(_("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."), m_name);
639 msg_format(_("%^s¤¬°Å¹õ¤ÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a darkness storm."), m_name);
641 dam = (rlev * 4) + 50 + damroll(10, 10);
642 breath(y, x, m_idx, GF_DARK, dam, 4, FALSE, MS_BALL_DARK, SPELL_MON_TO_PLAYER);
643 update_smart_learn(m_idx, DRS_DARK);
647 int spell_RF5_DRAIN_MANA(int y, int x, int m_idx)
649 cptr m_name = monster_name(m_idx);
650 int rlev = monster_level_idx(m_idx);
654 dam = (randint1(rlev) / 2) + 1;
655 breath(y, x, m_idx, GF_DRAIN_MANA, dam, 0, FALSE, MS_DRAIN_MANA, SPELL_MON_TO_PLAYER);
656 update_smart_learn(m_idx, DRS_MANA);
660 int spell_RF5_MIND_BLAST(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 bool seen = (!p_ptr->blind && m_ptr->ml);
665 int rlev = monster_level_idx(m_idx);
669 msg_print(_("²¿¤«¤¬¤¢¤Ê¤¿¤ÎÀº¿À¤ËÇ°¤òÊü¤Ã¤Æ¤¤¤ë¤è¤¦¤À¡£", "You feel something focusing on your mind."));
671 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ÎÆ·¤ò¤¸¤Ã¤È¤Ë¤é¤ó¤Ç¤¤¤ë¡£", "%^s gazes deep into your eyes."), m_name);
674 breath(y, x, m_idx, GF_MIND_BLAST, dam, 0, FALSE, MS_MIND_BLAST, SPELL_MON_TO_PLAYER);
678 int spell_RF5_BRAIN_SMASH(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 bool seen = (!p_ptr->blind && m_ptr->ml);
683 int rlev = monster_level_idx(m_idx);
687 msg_print(_("²¿¤«¤¬¤¢¤Ê¤¿¤ÎÀº¿À¤ËÇ°¤òÊü¤Ã¤Æ¤¤¤ë¤è¤¦¤À¡£", "You feel something focusing on your mind."));
689 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ÎÆ·¤ò¤¸¤Ã¤È¸«¤Æ¤¤¤ë¡£", "%^s looks deep into your eyes."), m_name);
691 dam = damroll(12, 12);
692 breath(y, x, m_idx, GF_BRAIN_SMASH, dam, 0, FALSE, MS_BRAIN_SMASH, SPELL_MON_TO_PLAYER);
696 int spell_RF5_CAUSE_1(int y, int x, int m_idx)
698 cptr m_name = monster_name(m_idx);
699 int rlev = monster_level_idx(m_idx);
704 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
706 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¼ö¤Ã¤¿¡£", "%^s points at you and curses."), m_name);
709 breath(y, x, m_idx, GF_CAUSE_1, dam, 0, FALSE, MS_CAUSE_1, SPELL_MON_TO_PLAYER);
713 int spell_RF5_CAUSE_2(int y, int x, int m_idx)
715 cptr m_name = monster_name(m_idx);
716 int rlev = monster_level_idx(m_idx);
721 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
723 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¶²¤í¤·¤²¤Ë¼ö¤Ã¤¿¡£", "%^s points at you and curses horribly."), m_name);
726 breath(y, x, m_idx, GF_CAUSE_2, dam, 0, FALSE, MS_CAUSE_2, SPELL_MON_TO_PLAYER);
730 int spell_RF5_CAUSE_3(int y, int x, int m_idx)
732 cptr m_name = monster_name(m_idx);
733 int rlev = monster_level_idx(m_idx);
738 msg_format(_("%^s¤¬²¿¤«¤òÂçÀ¼¤Ç¶«¤ó¤À¡£", "%^s mumbles loudly."), m_name);
740 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¶²¤í¤·¤²¤Ë¼öʸ¤ò¾§¤¨¤¿¡ª", "%^s points at you, incanting terribly!"), m_name);
742 dam = damroll(10, 15);
743 breath(y, x, m_idx, GF_CAUSE_3, dam, 0, FALSE, MS_CAUSE_3, SPELL_MON_TO_PLAYER);
747 int spell_RF5_CAUSE_4(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 screams the word 'DIE!'"), m_name);
757 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ÎÈ빦¤òÆͤ¤¤Æ¡Ö¤ªÁ°¤Ï´û¤Ë»à¤ó¤Ç¤¤¤ë¡×¤È¶«¤ó¤À¡£",
758 "%^s points at you, screaming the word DIE!"), m_name);
760 dam = damroll(15, 15);
761 breath(y, x, m_idx, GF_CAUSE_4, dam, 0, FALSE, MS_CAUSE_4, SPELL_MON_TO_PLAYER);
765 int spell_RF5_BO_ACID(int y, int x, int m_idx)
767 bool learnable = spell_learnable(m_idx);
768 cptr m_name = monster_name(m_idx);
769 monster_type *m_ptr = &m_list[m_idx];
770 monster_race *r_ptr = &r_info[m_ptr->r_idx];
771 int rlev = monster_level_idx(m_idx);
776 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
778 msg_format(_("%^s¤¬¥¢¥·¥Ã¥É¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a acid bolt."), m_name);
780 dam = (damroll(7, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
781 bolt(m_idx, GF_ACID, dam, MS_BOLT_ACID);
782 update_smart_learn(m_idx, DRS_ACID);
783 update_smart_learn(m_idx, DRS_REFLECT);
787 int spell_RF5_BO_ELEC(int y, int x, int m_idx)
789 bool learnable = spell_learnable(m_idx);
790 cptr m_name = monster_name(m_idx);
791 monster_type *m_ptr = &m_list[m_idx];
792 monster_race *r_ptr = &r_info[m_ptr->r_idx];
793 int rlev = monster_level_idx(m_idx);
798 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
800 msg_format(_("%^s¤¬¥µ¥ó¥À¡¼¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a lightning bolt."), m_name);
802 dam = (damroll(4, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
803 bolt(m_idx, GF_ELEC, dam, MS_BOLT_ELEC);
804 update_smart_learn(m_idx, DRS_ELEC);
805 update_smart_learn(m_idx, DRS_REFLECT);
809 int spell_RF5_BO_FIRE(int y, int x, int m_idx)
811 bool learnable = spell_learnable(m_idx);
812 cptr m_name = monster_name(m_idx);
813 monster_type *m_ptr = &m_list[m_idx];
814 monster_race *r_ptr = &r_info[m_ptr->r_idx];
815 int rlev = monster_level_idx(m_idx);
820 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
822 msg_format(_("%^s¤¬¥Õ¥¡¥¤¥¢¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a fire bolt."), m_name);
824 dam = (damroll(9, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
825 bolt(m_idx, GF_FIRE, dam, MS_BOLT_FIRE);
826 update_smart_learn(m_idx, DRS_FIRE);
827 update_smart_learn(m_idx, DRS_REFLECT);
831 int spell_RF5_BO_COLD(int y, int x, int m_idx)
833 bool learnable = spell_learnable(m_idx);
834 cptr m_name = monster_name(m_idx);
835 monster_type *m_ptr = &m_list[m_idx];
836 monster_race *r_ptr = &r_info[m_ptr->r_idx];
837 int rlev = monster_level_idx(m_idx);
842 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
844 msg_format(_("%^s¤¬¥¢¥¤¥¹¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a frost bolt."), m_name);
846 dam = (damroll(6, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
847 bolt(m_idx, GF_COLD, dam, MS_BOLT_COLD);
848 update_smart_learn(m_idx, DRS_COLD);
849 update_smart_learn(m_idx, DRS_REFLECT);
854 int spell_RF5_BA_LITE(int y, int x, int m_idx)
856 cptr m_name = monster_name(m_idx);
857 int rlev = monster_level_idx(m_idx);
862 msg_format(_("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."), m_name);
864 msg_format(_("%^s¤¬¥¹¥¿¡¼¥Ð¡¼¥¹¥È¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a starburst."), m_name);
866 dam = (rlev * 4) + 50 + damroll(10, 10);
867 breath(y, x, m_idx, GF_LITE, dam, 4, FALSE, MS_STARBURST, SPELL_MON_TO_PLAYER);
868 update_smart_learn(m_idx, DRS_LITE);
873 int spell_RF5_BO_NETH(int y, int x, int m_idx)
875 bool learnable = spell_learnable(m_idx);
876 cptr m_name = monster_name(m_idx);
877 monster_type *m_ptr = &m_list[m_idx];
878 monster_race *r_ptr = &r_info[m_ptr->r_idx];
879 int rlev = monster_level_idx(m_idx);
884 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
886 msg_format(_("%^s¤¬ÃϹö¤ÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a nether bolt."), m_name);
888 dam = 30 + damroll(5, 5) + (rlev * 4) / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3);
889 bolt(m_idx, GF_NETHER, dam, MS_BOLT_NETHER);
890 update_smart_learn(m_idx, DRS_NETH);
891 update_smart_learn(m_idx, DRS_REFLECT);
895 int spell_RF5_BO_WATE(int y, int x, int m_idx)
897 bool learnable = spell_learnable(m_idx);
898 cptr m_name = monster_name(m_idx);
899 monster_type *m_ptr = &m_list[m_idx];
900 monster_race *r_ptr = &r_info[m_ptr->r_idx];
901 int rlev = monster_level_idx(m_idx);
906 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
908 msg_format(_("%^s¤¬¥¦¥©¡¼¥¿¡¼¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a water bolt."), m_name);
910 dam = damroll(10, 10) + (rlev * 3 / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3));
911 bolt(m_idx, GF_WATER, dam, MS_BOLT_WATER);
912 update_smart_learn(m_idx, DRS_REFLECT);
916 int spell_RF5_BO_MANA(int y, int x, int m_idx)
918 bool learnable = spell_learnable(m_idx);
919 cptr m_name = monster_name(m_idx);
920 monster_type *m_ptr = &m_list[m_idx];
921 monster_race *r_ptr = &r_info[m_ptr->r_idx];
922 int rlev = monster_level_idx(m_idx);
926 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
928 msg_format(_("%^s¤¬ËâÎϤÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a mana bolt."), m_name);
930 dam = randint1(rlev * 7 / 2) + 50;
931 bolt(m_idx, GF_MANA, dam, MS_BOLT_MANA);
932 update_smart_learn(m_idx, DRS_REFLECT);
936 int spell_RF5_BO_PLAS(int y, int x, int m_idx)
938 bool learnable = spell_learnable(m_idx);
939 cptr m_name = monster_name(m_idx);
940 monster_type *m_ptr = &m_list[m_idx];
941 monster_race *r_ptr = &r_info[m_ptr->r_idx];
942 int rlev = monster_level_idx(m_idx);
946 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
949 msg_format(_("%^s¤¬¥×¥é¥º¥Þ¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a plasma bolt."), m_name);
951 dam = 10 + damroll(8, 7) + (rlev * 3 / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3));
952 bolt(m_idx, GF_PLASMA, dam, MS_BOLT_PLASMA);
953 update_smart_learn(m_idx, DRS_REFLECT);
957 int spell_RF5_BO_ICEE(int y, int x, int m_idx)
959 bool learnable = spell_learnable(m_idx);
960 cptr m_name = monster_name(m_idx);
961 monster_type *m_ptr = &m_list[m_idx];
962 monster_race *r_ptr = &r_info[m_ptr->r_idx];
963 int rlev = monster_level_idx(m_idx);
967 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
969 msg_format(_("%^s¤¬¶Ë´¨¤ÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts an ice bolt."), m_name);
971 dam = damroll(6, 6) + (rlev * 3 / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3));
972 bolt(m_idx, GF_ICE, dam, MS_BOLT_ICE);
973 update_smart_learn(m_idx, DRS_COLD);
974 update_smart_learn(m_idx, DRS_REFLECT);
979 int spell_RF5_MISSILE(int y, int x, int m_idx)
981 bool learnable = spell_learnable(m_idx);
982 cptr m_name = monster_name(m_idx);
983 int rlev = monster_level_idx(m_idx);
987 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
989 msg_format(_("%^s¤¬¥Þ¥¸¥Ã¥¯¡¦¥ß¥µ¥¤¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a magic missile."), m_name);
991 dam = damroll(2, 6) + (rlev / 3);
992 bolt(m_idx, GF_MISSILE, dam, MS_MAGIC_MISSILE);
993 update_smart_learn(m_idx, DRS_REFLECT);
997 void spell_RF5_SCARE(int y, int x, int m_idx)
999 cptr m_name = monster_name(m_idx);
1000 int rlev = monster_level_idx(m_idx);
1004 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¯¤È¡¢¶²¤í¤·¤²¤Ê²»¤¬Ê¹¤³¤¨¤¿¡£", "%^s mumbles, and you hear scary noises."), m_name);
1006 msg_format(_("%^s¤¬¶²¤í¤·¤²¤Ê¸¸³Ð¤òºî¤ê½Ð¤·¤¿¡£", "%^s casts a fearful illusion."), m_name);
1008 if (p_ptr->resist_fear)
1010 msg_print(_("¤·¤«¤·¶²Éݤ˿¯¤µ¤ì¤Ê¤«¤Ã¤¿¡£", "You refuse to be frightened."));
1012 else if (randint0(100 + rlev / 2) < p_ptr->skill_sav)
1014 msg_print(_("¤·¤«¤·¶²Éݤ˿¯¤µ¤ì¤Ê¤«¤Ã¤¿¡£", "You refuse to be frightened."));
1018 (void)set_afraid(p_ptr->afraid + randint0(4) + 4);
1020 learn_spell(MS_SCARE);
1021 update_smart_learn(m_idx, DRS_FEAR);
1024 void spell_RF5_BLIND(int y, int x, int m_idx)
1026 cptr m_name = monster_name(m_idx);
1027 int rlev = monster_level_idx(m_idx);
1031 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1033 msg_format(_("%^s¤¬¼öʸ¤ò¾§¤¨¤Æ¤¢¤Ê¤¿¤ÎÌܤò¤¯¤é¤Þ¤·¤¿¡ª",
1034 "%^s casts a spell, burning your eyes!"), m_name);
1036 if (p_ptr->resist_blind)
1038 msg_print(_("¤·¤«¤·¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡ª", "You are unaffected!"));
1040 else if (randint0(100 + rlev / 2) < p_ptr->skill_sav)
1042 msg_print(_("¤·¤«¤·¸úÎϤòÄ·¤ÍÊÖ¤·¤¿¡ª", "You resist the effects!"));
1046 (void)set_blind(12 + randint0(4));
1048 learn_spell(MS_BLIND);
1049 update_smart_learn(m_idx, DRS_BLIND);
1052 void spell_RF5_CONF(int y, int x, int m_idx)
1054 cptr m_name = monster_name(m_idx);
1055 int rlev = monster_level_idx(m_idx);
1059 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¯¤È¡¢Æ¬¤òǺ¤Þ¤¹²»¤¬¤·¤¿¡£",
1060 "%^s mumbles, and you hear puzzling noises."), m_name);
1062 msg_format(_("%^s¤¬Í¶ÏÇŪ¤Ê¸¸³Ð¤òºî¤ê½Ð¤·¤¿¡£",
1063 "%^s creates a mesmerising illusion."), m_name);
1065 if (p_ptr->resist_conf)
1067 msg_print(_("¤·¤«¤·¸¸³Ð¤Ë¤Ï¤À¤Þ¤µ¤ì¤Ê¤«¤Ã¤¿¡£", "You disbelieve the feeble spell."));
1069 else if (randint0(100 + rlev / 2) < p_ptr->skill_sav)
1071 msg_print(_("¤·¤«¤·¸¸³Ð¤Ë¤Ï¤À¤Þ¤µ¤ì¤Ê¤«¤Ã¤¿¡£", "You disbelieve the feeble spell."));
1075 (void)set_confused(p_ptr->confused + randint0(4) + 4);
1077 learn_spell(MS_CONF);
1078 update_smart_learn(m_idx, DRS_CONF);
1081 void spell_RF5_SLOW(int y, int x, int m_idx)
1083 cptr m_name = monster_name(m_idx);
1084 int rlev = monster_level_idx(m_idx);
1087 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤Î¶ÚÎϤòµÛ¤¤¼è¤í¤¦¤È¤·¤¿¡ª",
1088 "%^s drains power from your muscles!"), m_name);
1090 if (p_ptr->free_act)
1092 msg_print(_("¤·¤«¤·¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡ª", "You are unaffected!"));
1094 else if (randint0(100 + rlev / 2) < p_ptr->skill_sav)
1096 msg_print(_("¤·¤«¤·¸úÎϤòÄ·¤ÍÊÖ¤·¤¿¡ª", "You resist the effects!"));
1100 (void)set_slow(p_ptr->slow + randint0(4) + 4, FALSE);
1102 learn_spell(MS_SLOW);
1103 update_smart_learn(m_idx, DRS_FREE);
1106 void spell_RF5_HOLD(int y, int x, int m_idx)
1108 cptr m_name = monster_name(m_idx);
1109 int rlev = monster_level_idx(m_idx);
1113 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1115 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ÎÌܤò¤¸¤Ã¤È¸«¤Ä¤á¤¿¡ª", "%^s stares deep into your eyes!"), m_name);
1117 if (p_ptr->free_act)
1119 msg_print(_("¤·¤«¤·¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡ª", "You are unaffected!"));
1121 else if (randint0(100 + rlev / 2) < p_ptr->skill_sav)
1123 msg_format(_("¤·¤«¤·¸úÎϤòÄ·¤ÍÊÖ¤·¤¿¡ª", "You resist the effects!"));
1127 (void)set_paralyzed(p_ptr->paralyzed + randint0(4) + 4);
1129 learn_spell(MS_SLEEP);
1130 update_smart_learn(m_idx, DRS_FREE);
1133 void spell_RF6_HASTE(int m_idx)
1135 cptr m_name = monster_name(m_idx);
1136 monster_type *m_ptr = &m_list[m_idx];
1140 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1144 msg_format(_("%^s¤¬¼«Ê¬¤ÎÂΤËÇ°¤òÁ÷¤Ã¤¿¡£", "%^s concentrates on %s body."), m_name);
1147 /* Allow quick speed increases to base+10 */
1148 if (set_monster_fast(m_idx, MON_FAST(m_ptr) + 100))
1150 msg_format(_("%^s¤ÎÆ°¤¤¬Â®¤¯¤Ê¤Ã¤¿¡£", "%^s starts moving faster."), m_name);
1154 int spell_RF6_HAND_DOOM(int y, int x, int m_idx)
1156 cptr m_name = monster_name(m_idx);
1157 monster_type *m_ptr = &m_list[m_idx];
1160 msg_format(_("%^s¤¬<ÇËÌǤμê>¤òÊü¤Ã¤¿¡ª", "%^s invokes the Hand of Doom!"), m_name);
1161 dam = (((s32b)((40 + randint1(20)) * (p_ptr->chp))) / 100);
1162 breath(y, x, m_idx, GF_HAND_DOOM, dam, 0, FALSE, MS_HAND_DOOM, SPELL_MON_TO_PLAYER);
1166 void spell_RF6_HEAL(int m_idx)
1168 cptr m_name = monster_name(m_idx);
1169 monster_type *m_ptr = &m_list[m_idx];
1170 int rlev = monster_level_idx(m_idx);
1171 bool seen = (!p_ptr->blind && m_ptr->ml);
1176 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1178 msg_format(_("%^s¤¬¼«Ê¬¤Î½ý¤Ë½¸Ã椷¤¿¡£", "%^s concentrates on %s wounds."), m_name);
1181 m_ptr->hp += (rlev * 6);
1184 if (m_ptr->hp >= m_ptr->maxhp)
1187 m_ptr->hp = m_ptr->maxhp;
1191 msg_format(_("%^s¤Ï´°Á´¤Ë¼£¤Ã¤¿¡ª", "%^s looks completely healed!"), m_name);
1193 msg_format(_("%^s¤Ï´°Á´¤Ë¼£¤Ã¤¿¤è¤¦¤À¡ª", "%^s sounds completely healed!"), m_name);
1196 /* Partially healed */
1201 msg_format(_("%^s¤ÏÂÎÎϤò²óÉü¤·¤¿¤è¤¦¤À¡£", "%^s looks healthier."), m_name);
1203 msg_format(_("%^s¤ÏÂÎÎϤò²óÉü¤·¤¿¤è¤¦¤À¡£", "%^s sounds healthier."), m_name);
1206 /* Redraw (later) if needed */
1207 if (p_ptr->health_who == m_idx) p_ptr->redraw |= (PR_HEALTH);
1208 if (p_ptr->riding == m_idx) p_ptr->redraw |= (PR_UHEALTH);
1211 if (MON_MONFEAR(m_ptr))
1214 (void)set_monster_monfear(m_idx, 0);
1217 msg_format(_("%^s¤Ïͦµ¤¤ò¼è¤êÌᤷ¤¿¡£", "%^s recovers %s courage."), m_name);
1220 void spell_RF6_INVULNER(int m_idx)
1222 cptr m_name = monster_name(m_idx);
1223 monster_type *m_ptr = &m_list[m_idx];
1224 bool seen = (!p_ptr->blind && m_ptr->ml);
1229 msg_format(_("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."), m_name);
1231 msg_format(_("%s¤Ï̵½ý¤Îµå¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a Globe of Invulnerability."), m_name);
1233 if (!MON_INVULNER(m_ptr)) (void)set_monster_invulner(m_idx, randint1(4) + 4, FALSE);
1236 void spell_RF6_BLINK(int m_idx)
1238 cptr m_name = monster_name(m_idx);
1240 if (teleport_barrier(m_idx))
1242 msg_format(_("ËâË¡¤Î¥Ð¥ê¥¢¤¬%^s¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¼ÙË⤷¤¿¡£",
1243 "Magic barrier obstructs teleporting of %^s."), m_name);
1247 msg_format(_("%^s¤¬½Ö»þ¤Ë¾Ã¤¨¤¿¡£", "%^s blinks away."), m_name);
1248 teleport_away(m_idx, 10, 0L);
1249 p_ptr->update |= (PU_MONSTERS);
1253 void spell_RF6_TPORT(int m_idx)
1255 cptr m_name = monster_name(m_idx);
1257 if (teleport_barrier(m_idx))
1259 msg_format(_("ËâË¡¤Î¥Ð¥ê¥¢¤¬%^s¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¼ÙË⤷¤¿¡£",
1260 "Magic barrier obstructs teleporting of %^s."), m_name);
1264 msg_format(_("%^s¤¬¥Æ¥ì¥Ý¡¼¥È¤·¤¿¡£", "%^s teleports away."), m_name);
1265 teleport_away_followable(m_idx);
1269 int spell_RF6_WORLD(int m_idx)
1271 cptr m_name = monster_name(m_idx);
1272 monster_type *m_ptr = &m_list[m_idx];
1275 if (m_ptr->r_idx == MON_DIO) who = 1;
1276 else if (m_ptr->r_idx == MON_WONG) who = 3;
1277 if (!process_the_world(randint1(2) + 2, who, TRUE)) return (FALSE);
1281 int spell_RF6_SPECIAL(int y, int x, int m_idx)
1283 cptr m_name = monster_name(m_idx);
1284 monster_type *m_ptr = &m_list[m_idx];
1285 monster_race *r_ptr = &r_info[m_ptr->r_idx];
1287 bool direct = player_bold(y, x);
1288 int k, dam, count=0;
1291 switch (m_ptr->r_idx)
1294 /* Moved to process_monster(), like multiplication */
1296 case MON_BANORLUPART:
1298 int dummy_hp = (m_ptr->hp + 1) / 2;
1299 int dummy_maxhp = m_ptr->maxhp / 2;
1300 int dummy_y = m_ptr->fy;
1301 int dummy_x = m_ptr->fx;
1303 if (p_ptr->inside_arena || p_ptr->inside_battle || !summon_possible(m_ptr->fy, m_ptr->fx)) return -1;
1304 delete_monster_idx(cave[m_ptr->fy][m_ptr->fx].m_idx);
1305 summon_named_creature(0, dummy_y, dummy_x, MON_BANOR, mode);
1306 m_list[hack_m_idx_ii].hp = dummy_hp;
1307 m_list[hack_m_idx_ii].maxhp = dummy_maxhp;
1308 summon_named_creature(0, dummy_y, dummy_x, MON_LUPART, mode);
1309 m_list[hack_m_idx_ii].hp = dummy_hp;
1310 m_list[hack_m_idx_ii].maxhp = dummy_maxhp;
1312 msg_print(_("¡Ø¥Ð¡¼¥Î¡¼¥ë¡¦¥ë¥Ñ¡¼¥È¡Ù¤¬Ê¬Îö¤·¤¿¡ª","Banor=Rupart splits in two person!"));
1320 int dummy_maxhp = 0;
1321 int dummy_y = m_ptr->fy;
1322 int dummy_x = m_ptr->fx;
1324 if (!r_info[MON_BANOR].cur_num || !r_info[MON_LUPART].cur_num) return (FALSE);
1325 for (k = 1; k < m_max; k++)
1327 if (m_list[k].r_idx == MON_BANOR || m_list[k].r_idx == MON_LUPART)
1329 dummy_hp += m_list[k].hp;
1330 dummy_maxhp += m_list[k].maxhp;
1331 if (m_list[k].r_idx != m_ptr->r_idx)
1333 dummy_y = m_list[k].fy;
1334 dummy_x = m_list[k].fx;
1336 delete_monster_idx(k);
1339 summon_named_creature(0, dummy_y, dummy_x, MON_BANORLUPART, mode);
1340 m_list[hack_m_idx_ii].hp = dummy_hp;
1341 m_list[hack_m_idx_ii].maxhp = dummy_maxhp;
1343 msg_print(_("¡Ø¥Ð¡¼¥Î¡¼¥ë¡Ù¤È¡Ø¥ë¥Ñ¡¼¥È¡Ù¤¬¹çÂΤ·¤¿¡ª", "Banor and Rupart combine into one!"));
1349 msg_format(_("%^s¤¬²¿¤«ÂçÎ̤ËÅꤲ¤¿¡£", "%^s spreads something."), m_name);
1351 msg_format(_("%^s¤Ï¼êÜØÃƤò¤Ð¤é¤Þ¤¤¤¿¡£", "%^s throws some hand grenades."), m_name);
1354 int num = 1 + randint1(3);
1356 for (k = 0; k < num; k++)
1358 count += summon_named_creature(m_idx, y, x, MON_SHURYUUDAN, mode);
1362 if (p_ptr->blind && count)
1363 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¤Ð¤é¤Þ¤«¤ì¤ë²»¤¬¤¹¤ë¡£", "You hear many things are scattered nearby."));
1368 if (r_ptr->d_char == 'B')
1371 if (one_in_(3) || !direct)
1373 msg_format(_("%^s¤ÏÆÍÁ³»ë³¦¤«¤é¾Ã¤¨¤¿!", "%^s suddenly go out of your sight!"), m_name);
1374 teleport_away(m_idx, 10, TELEPORT_NONMAGICAL);
1375 p_ptr->update |= (PU_MONSTERS);
1380 bool fear; /* dummy */
1382 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤òÄϤó¤Ç¶õÃ椫¤éÅꤲÍî¤È¤·¤¿¡£",
1383 "%^s holds you, and drops from the sky."), m_name);
1384 dam = damroll(4, 8);
1385 teleport_player_to(m_ptr->fy, m_ptr->fx, TELEPORT_NONMAGICAL | TELEPORT_PASSIVE);
1389 if (p_ptr->levitation)
1391 msg_print(_("¤¢¤Ê¤¿¤ÏÀŤ«¤ËÃåÃϤ·¤¿¡£", "You float gently down to the ground."));
1395 msg_print(_("¤¢¤Ê¤¿¤ÏÃÏÌ̤ËᤤĤ±¤é¤ì¤¿¡£", "You crashed into the ground."));
1396 dam += damroll(6, 8);
1399 /* Mega hack -- this special action deals damage to the player. Therefore the code of "eyeeye" is necessary.
1402 get_damage = take_hit(DAMAGE_NOESCAPE, dam, m_name, -1);
1403 if (p_ptr->tim_eyeeye && get_damage > 0 && !p_ptr->is_dead)
1406 msg_format("¹¶·â¤¬%s¼«¿È¤ò½ý¤Ä¤±¤¿¡ª", m_name);
1408 char m_name_self[80];
1411 monster_desc(m_name_self, m_ptr, MD_PRON_VISIBLE | MD_POSSESSIVE | MD_OBJECTIVE);
1413 msg_format("The attack of %s has wounded %s!", m_name, m_name_self);
1415 project(0, 0, m_ptr->fy, m_ptr->fx, get_damage, GF_MISSILE, PROJECT_KILL, -1);
1416 set_tim_eyeeye(p_ptr->tim_eyeeye - 5, TRUE);
1419 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);
1424 /* Something is wrong */
1431 void spell_RF6_TELE_TO(int m_idx)
1433 cptr m_name = monster_name(m_idx);
1434 monster_type *m_ptr = &m_list[m_idx];
1436 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ò°ú¤Ìᤷ¤¿¡£", "%^s commands you to return."), m_name);
1438 teleport_player_to(m_ptr->fy, m_ptr->fx, TELEPORT_PASSIVE);
1439 learn_spell(MS_TELE_TO);
1442 void spell_RF6_TELE_AWAY(int m_idx)
1444 cptr m_name = monster_name(m_idx);
1447 msg_format(_("%^s¤Ë¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤é¤ì¤¿¡£", "%^s teleports you away."), m_name);
1448 if ((p_ptr->pseikaku == SEIKAKU_COMBAT) || (inventory[INVEN_BOW].name1 == ART_CRIMSON))
1449 msg_print(_("¤¯¤Ã¤½¡Á", ""));
1451 learn_spell(MS_TELE_AWAY);
1452 teleport_player_away(m_idx, 100);
1455 void spell_RF6_TELE_LEVEL(int m_idx)
1457 cptr m_name = monster_name(m_idx);
1458 int rlev = monster_level_idx(m_idx);
1462 msg_format(_("%^s¤¬²¿¤«´ñ̯¤Ê¸ÀÍÕ¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles strangely."), m_name);
1464 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤Î¤ò»Ø¤µ¤·¤¿¡£", "%^s gestures at your feet."), m_name);
1466 if (p_ptr->resist_nexus)
1468 msg_print(_("¤·¤«¤·¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡ª", "You are unaffected!"));
1470 else if (randint0(100 + rlev / 2) < p_ptr->skill_sav)
1472 msg_print(_("¤·¤«¤·¸úÎϤòÄ·¤ÍÊÖ¤·¤¿¡ª", "You resist the effects!"));
1478 learn_spell(MS_TELE_LEVEL);
1479 update_smart_learn(m_idx, DRS_NEXUS);
1482 int spell_RF6_PSY_SPEAR(int m_idx)
1484 bool learnable = spell_learnable(m_idx);
1485 cptr m_name = monster_name(m_idx);
1486 monster_type *m_ptr = &m_list[m_idx];
1487 monster_race *r_ptr = &r_info[m_ptr->r_idx];
1488 int rlev = monster_level_idx(m_idx);
1492 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1494 msg_format(_("%^s¤¬¸÷¤Î·õ¤òÊü¤Ã¤¿¡£", "%^s throw a Psycho-Spear."), m_name);
1496 dam = (r_ptr->flags2 & RF2_POWERFUL) ? (randint1(rlev * 2) + 150) : (randint1(rlev * 3 / 2) + 100);
1497 beam(m_idx, GF_PSY_SPEAR, dam, MS_PSY_SPEAR);
1501 void spell_RF6_DARKNESS(int m_idx)
1503 cptr m_name = monster_name(m_idx);
1504 monster_type *m_ptr = &m_list[m_idx];
1505 monster_race *r_ptr = &r_info[m_ptr->r_idx];
1506 bool can_use_lite_area = FALSE;
1508 if ((p_ptr->pclass == CLASS_NINJA) &&
1509 !(r_ptr->flags3 & (RF3_UNDEAD | RF3_HURT_LITE)) &&
1510 !(r_ptr->flags7 & RF7_DARK_MASK))
1511 can_use_lite_area = TRUE;
1515 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1516 else if (can_use_lite_area)
1517 msg_format(_("%^s¤¬ÊÕ¤ê¤òÌÀ¤ë¤¯¾È¤é¤·¤¿¡£", "%^s cast a spell to light up."), m_name);
1519 msg_format(_("%^s¤¬°Å°Ç¤ÎÃæ¤Ç¼ê¤ò¿¶¤Ã¤¿¡£", "%^s gestures in shadow."), m_name);
1521 if (can_use_lite_area)
1523 (void)lite_area(0, 3);
1527 learn_spell(MS_DARKNESS);
1528 (void)unlite_area(0, 3);
1532 void spell_RF6_TRAPS(int y, int x, int m_idx)
1534 cptr m_name = monster_name(m_idx);
1538 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤Æ¼Ù°¤ËÈù¾Ð¤ó¤À¡£",
1539 "%^s mumbles, and then cackles evilly."), m_name);
1541 msg_format(_("%^s¤¬¼öʸ¤ò¾§¤¨¤Æ¼Ù°¤ËÈù¾Ð¤ó¤À¡£",
1542 "%^s casts a spell and cackles evilly."), m_name);
1544 learn_spell(MS_MAKE_TRAP);
1545 (void)trap_creation(y, x);
1548 void spell_RF6_FORGET(int m_idx)
1550 cptr m_name = monster_name(m_idx);
1551 int rlev = monster_level_idx(m_idx);
1554 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤Îµ²±¤ò¾Ãµî¤·¤è¤¦¤È¤·¤Æ¤¤¤ë¡£",
1555 "%^s tries to blank your mind."), m_name);
1557 if (randint0(100 + rlev / 2) < p_ptr->skill_sav)
1559 msg_print(_("¤·¤«¤·¸úÎϤòÄ·¤ÍÊÖ¤·¤¿¡ª", "You resist the effects!"));
1561 else if (lose_all_info())
1563 msg_print(_("µ²±¤¬Çö¤ì¤Æ¤·¤Þ¤Ã¤¿¡£", "Your memories fade away."));
1565 learn_spell(MS_FORGET);
1568 void spell_RF6_RAISE_DEAD(int m_idx)
1570 cptr m_name = monster_name(m_idx);
1571 monster_type *m_ptr = &m_list[m_idx];
1575 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1577 msg_format(_("%^s¤¬»à¼ÔÉü³è¤Î¼öʸ¤ò¾§¤¨¤¿¡£",
1578 "%^s casts a spell to revive corpses."), m_name);
1580 animate_dead(m_idx, m_ptr->fy, m_ptr->fx);
1583 void spell_RF6_S_KIN(int y, int x, int m_idx)
1585 cptr m_name = monster_name(m_idx);
1586 monster_type *m_ptr = &m_list[m_idx];
1587 monster_race *r_ptr = &r_info[m_ptr->r_idx];
1588 int rlev = monster_level_idx(m_idx);
1592 if (m_ptr->r_idx == MON_SERPENT || m_ptr->r_idx == MON_ZOMBI_SERPENT)
1595 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1597 msg_format(_("%^s¤¬¥À¥ó¥¸¥ç¥ó¤Î¼ç¤ò¾¤´¤·¤¿¡£",
1598 "%^s magically summons guardians of dungeons."), m_name);
1603 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1606 msg_format("%^s¤ÏËâË¡¤Ç%s¤ò¾¤´¤·¤¿¡£",
1608 ((r_ptr->flags1) & RF1_UNIQUE ?
1611 msg_format("%^s magically summons %s %s.",
1613 ((r_ptr->flags1) & RF1_UNIQUE ?
1614 "minions" : "kin"));
1618 switch (m_ptr->r_idx)
1624 int num = 4 + randint1(3);
1625 for (k = 0; k < num; k++)
1627 count += summon_specific(m_idx, y, x, rlev, SUMMON_EAGLES, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
1634 int num = 2 + randint1(3);
1635 for (k = 0; k < num; k++)
1637 count += summon_named_creature(m_idx, y, x, MON_IE, mode);
1643 case MON_ZOMBI_SERPENT:
1645 int num = 2 + randint1(3);
1647 if (r_info[MON_JORMUNGAND].cur_num < r_info[MON_JORMUNGAND].max_num && one_in_(6))
1649 msg_print(_("ÃÏÌ̤«¤é¿å¤¬¿á¤½Ð¤·¤¿¡ª", "Water blew off from the ground!"));
1650 fire_ball_hide(GF_WATER_FLOW, 0, 3, 8);
1653 for (k = 0; k < num; k++)
1655 count += summon_specific(m_idx, y, x, rlev, SUMMON_GUARDIANS, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
1662 int num = randint1(3);
1663 for (k = 0; k < num; k++)
1665 count += summon_named_creature(m_idx, y, x, MON_LOCKE_CLONE, mode);
1672 int num = 2 + randint1(3);
1673 for (k = 0; k < num; k++)
1675 count += summon_specific(m_idx, y, x, rlev, SUMMON_LOUSE, PM_ALLOW_GROUP);
1681 summon_kin_type = r_ptr->d_char; /* Big hack */
1683 for (k = 0; k < 4; k++)
1685 count += summon_specific(m_idx, y, x, rlev, SUMMON_KIN, PM_ALLOW_GROUP);
1690 if (p_ptr->blind && count)
1691 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear many things appear nearby."));
1694 void spell_RF6_S_CYBER(int y, int x, int m_idx)
1696 cptr m_name = monster_name(m_idx);
1701 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1703 msg_format(_("%^s¤¬¥µ¥¤¥Ð¡¼¥Ç¡¼¥â¥ó¤ò¾¤´¤·¤¿¡ª",
1704 "%^s magically summons Cyberdemons!"), m_name);
1706 count = summon_cyber(m_idx, y, x);
1708 if (p_ptr->blind && count)
1709 msg_print(_("½Å¸ü¤Ê²»¤¬¶á¤¯¤Çʹ¤³¤¨¤ë¡£", "You hear heavy steps nearby."));
1712 void spell_RF6_S_MONSTER(int y, int x, int m_idx)
1714 cptr m_name = monster_name(m_idx);
1715 int rlev = monster_level_idx(m_idx);
1720 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1722 msg_format(_("%^s¤¬ËâË¡¤ÇÃç´Ö¤ò¾¤´¤·¤¿¡ª", "%^s magically summons help!"), m_name);
1724 for (k = 0; k < 1; k++)
1726 count += summon_specific(m_idx, y, x, rlev, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
1728 if (p_ptr->blind && count)
1729 msg_print(_("²¿¤«¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear something appear nearby."));
1732 void spell_RF6_S_MONSTERS(int y, int x, int m_idx)
1734 cptr m_name = monster_name(m_idx);
1735 int rlev = monster_level_idx(m_idx);
1740 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1742 msg_format(_("%^s¤¬ËâË¡¤Ç¥â¥ó¥¹¥¿¡¼¤ò¾¤´¤·¤¿¡ª", "%^s magically summons monsters!"), m_name);
1744 for (k = 0; k < S_NUM_6; k++)
1746 count += summon_specific(m_idx, y, x, rlev, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
1749 if (p_ptr->blind && count)
1750 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear many things appear nearby."));
1753 void spell_RF6_S_ANT(int y, int x, int m_idx)
1755 cptr m_name = monster_name(m_idx);
1756 int rlev = monster_level_idx(m_idx);
1761 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1763 msg_format(_("%^s¤¬ËâË¡¤Ç¥¢¥ê¤ò¾¤´¤·¤¿¡£", "%^s magically summons ants."), m_name);
1765 for (k = 0; k < S_NUM_6; k++)
1767 count += summon_specific(m_idx, y, x, rlev, SUMMON_ANT, PM_ALLOW_GROUP);
1770 if (p_ptr->blind && count)
1771 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear many things appear nearby."));
1774 void spell_RF6_S_SPIDER(int y, int x, int m_idx)
1776 cptr m_name = monster_name(m_idx);
1777 int rlev = monster_level_idx(m_idx);
1782 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1784 msg_format(_("%^s¤¬ËâË¡¤Ç¥¯¥â¤ò¾¤´¤·¤¿¡£", "%^s magically summons spiders."), m_name);
1786 for (k = 0; k < S_NUM_6; k++)
1788 count += summon_specific(m_idx, y, x, rlev, SUMMON_SPIDER, PM_ALLOW_GROUP);
1791 if (p_ptr->blind && count)
1792 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear many things appear nearby."));
1795 void spell_RF6_S_HOUND(int y, int x, int m_idx)
1797 cptr m_name = monster_name(m_idx);
1798 int rlev = monster_level_idx(m_idx);
1803 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1805 msg_format(_("%^s¤¬ËâË¡¤Ç¥Ï¥¦¥ó¥É¤ò¾¤´¤·¤¿¡£", "%^s magically summons hounds."), m_name);
1807 for (k = 0; k < S_NUM_4; k++)
1809 count += summon_specific(m_idx, y, x, rlev, SUMMON_HOUND, PM_ALLOW_GROUP);
1812 if (p_ptr->blind && count)
1813 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear many things appear nearby."));
1816 void spell_RF6_S_HYDRA(int y, int x, int m_idx)
1818 cptr m_name = monster_name(m_idx);
1819 int rlev = monster_level_idx(m_idx);
1824 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1826 msg_format(_("%^s¤¬ËâË¡¤Ç¥Ò¥É¥é¤ò¾¤´¤·¤¿¡£", "%^s magically summons hydras."), m_name);
1828 for (k = 0; k < S_NUM_4; k++)
1830 count += summon_specific(m_idx, y, x, rlev, SUMMON_HYDRA, PM_ALLOW_GROUP);
1832 if (p_ptr->blind && count)
1833 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear many things appear nearby."));
1836 void spell_RF6_S_ANGEL(int y, int x, int m_idx)
1838 cptr m_name = monster_name(m_idx);
1839 monster_type *m_ptr = &m_list[m_idx];
1840 monster_race *r_ptr = &r_info[m_ptr->r_idx];
1841 int rlev = monster_level_idx(m_idx);
1848 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1850 msg_format(_("%^s¤¬ËâË¡¤ÇÅ·»È¤ò¾¤´¤·¤¿¡ª", "%^s magically summons an angel!"), m_name);
1852 if ((r_ptr->flags1 & RF1_UNIQUE) && !easy_band)
1854 num += r_ptr->level / 40;
1857 for (k = 0; k < num; k++)
1859 count += summon_specific(m_idx, y, x, rlev, SUMMON_ANGEL, PM_ALLOW_GROUP);
1864 if (p_ptr->blind && count)
1865 msg_print(_("²¿¤«¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear something appear nearby."));
1870 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear many things appear nearby."));
1874 void spell_RF6_S_DEMON(int y, int x, int m_idx)
1876 cptr m_name = monster_name(m_idx);
1877 int rlev = monster_level_idx(m_idx);
1882 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1884 msg_format(_("%^s¤ÏËâË¡¤Çº®Æ٤εÜÄ¤é°Ëâ¤ò¾¤´¤·¤¿¡ª",
1885 "%^s magically summons a demon from the Courts of Chaos!"), m_name);
1887 for (k = 0; k < 1; k++)
1889 count += summon_specific(m_idx, y, x, rlev, SUMMON_DEMON, PM_ALLOW_GROUP);
1892 if (p_ptr->blind && count)
1893 msg_print(_("²¿¤«¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear something appear nearby."));
1896 void spell_RF6_S_UNDEAD(int y, int x, int m_idx)
1898 cptr m_name = monster_name(m_idx);
1899 int rlev = monster_level_idx(m_idx);
1904 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1906 msg_format(_("%^s¤¬ËâË¡¤Ç¥¢¥ó¥Ç¥Ã¥É¤Î¶¯Å¨¤ò¾¤´¤·¤¿¡ª",
1907 "%^s magically summons an undead adversary!"), m_name);
1909 for (k = 0; k < 1; k++)
1911 count += summon_specific(m_idx, y, x, rlev, SUMMON_UNDEAD, PM_ALLOW_GROUP);
1914 if (p_ptr->blind && count)
1915 msg_print(_("²¿¤«¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear something appear nearby."));
1918 void spell_RF6_S_DRAGON(int y, int x, int m_idx)
1920 cptr m_name = monster_name(m_idx);
1921 int rlev = monster_level_idx(m_idx);
1926 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1928 msg_format(_("%^s¤¬ËâË¡¤Ç¥É¥é¥´¥ó¤ò¾¤´¤·¤¿¡ª", "%^s magically summons a dragon!"), m_name);
1930 for (k = 0; k < 1; k++)
1932 count += summon_specific(m_idx, y, x, rlev, SUMMON_DRAGON, PM_ALLOW_GROUP);
1934 if (p_ptr->blind && count)
1935 msg_print(_("²¿¤«¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear something appear nearby."));
1938 void spell_RF6_S_HI_UNDEAD(int y, int x, int m_idx)
1940 cptr m_name = monster_name(m_idx);
1941 monster_type *m_ptr = &m_list[m_idx];
1942 monster_race *r_ptr = &r_info[m_ptr->r_idx];
1943 int rlev = monster_level_idx(m_idx);
1948 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))
1954 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1956 msg_format(_("%^s¤¬ËâË¡¤ÇÍ©µ´ÀïÂâ¤ò¾¤´¤·¤¿¡ª", "%^s magically summons rangers of Nazgul!"), m_name);
1960 for (k = 0; k < 30; k++)
1962 if (!summon_possible(cy, cx) || !cave_empty_bold(cy, cx))
1965 for (j = 100; j > 0; j--)
1967 scatter(&cy, &cx, y, x, 2, 0);
1968 if (cave_empty_bold(cy, cx)) break;
1972 if (!cave_empty_bold(cy, cx)) continue;
1974 if (summon_named_creature(m_idx, cy, cx, MON_NAZGUL, mode))
1980 msg_format(_("¡ÖÍ©µ´ÀïÂâ%d¹æ¡¢¥Ê¥º¥°¥ë¡¦¥Ö¥é¥Ã¥¯¡ª¡×",
1981 "A Nazgul says 'Nazgul-Rangers Number %d, Nazgul-Black!'"), count);
1983 msg_format(_("¡ÖƱ¤¸¤¯%d¹æ¡¢¥Ê¥º¥°¥ë¡¦¥Ö¥é¥Ã¥¯¡ª¡×",
1984 "Another one says 'Number %d, Nazgul-Black!'"), count);
1989 msg_format(_("¡Ö%d¿Í¤½¤í¤Ã¤Æ¡¢¥ê¥ó¥°¥ì¥ó¥¸¥ã¡¼¡ª¡×",
1990 "They say 'The %d meets! We are the Ring-Ranger!'."), count);
1996 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
1998 msg_format(_("%^s¤¬ËâË¡¤Ç¶¯ÎϤʥ¢¥ó¥Ç¥Ã¥É¤ò¾¤´¤·¤¿¡ª",
1999 "%^s magically summons greater undead!"), m_name);
2001 for (k = 0; k < S_NUM_6; k++)
2003 count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_UNDEAD, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
2006 if (p_ptr->blind && count)
2008 msg_print(_("´Ö¶á¤Ç²¿¤«Â¿¤¯¤Î¤â¤Î¤¬Ç礤²ó¤ë²»¤¬Ê¹¤³¤¨¤ë¡£",
2009 "You hear many creepy things appear nearby."));
2014 void spell_RF6_S_HI_DRAGON(int y, int x, int m_idx)
2016 cptr m_name = monster_name(m_idx);
2017 int rlev = monster_level_idx(m_idx);
2022 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
2024 msg_format(_("%^s¤¬ËâË¡¤Ç¸ÅÂå¥É¥é¥´¥ó¤ò¾¤´¤·¤¿¡ª", "%^s magically summons ancient dragons!"), m_name);
2026 for (k = 0; k < S_NUM_4; k++)
2028 count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_DRAGON, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
2030 if (p_ptr->blind && count)
2032 msg_print(_("¿¤¯¤ÎÎ϶¯¤¤¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬Ê¹¤³¤¨¤ë¡£",
2033 "You hear many powerful things appear nearby."));
2037 void spell_RF6_S_AMBERITES(int y, int x, int m_idx)
2039 cptr m_name = monster_name(m_idx);
2040 int rlev = monster_level_idx(m_idx);
2045 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
2047 msg_format(_("%^s¤¬¥¢¥ó¥Ð¡¼¤Î²¦Â²¤ò¾¤´¤·¤¿¡ª", "%^s magically summons Lords of Amber!"), m_name);
2049 for (k = 0; k < S_NUM_4; k++)
2051 count += summon_specific(m_idx, y, x, rlev, SUMMON_AMBERITES, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
2053 if (p_ptr->blind && count)
2055 msg_print(_("ÉÔ»à¤Î¼Ô¤¬¶á¤¯¤Ë¸½¤ì¤ë¤Î¤¬Ê¹¤³¤¨¤¿¡£", "You hear immortal beings appear nearby."));
2059 void spell_RF6_S_UNIQUE(int y, int x, int m_idx)
2061 cptr m_name = monster_name(m_idx);
2062 monster_type *m_ptr = &m_list[m_idx];
2063 int rlev = monster_level_idx(m_idx);
2065 bool uniques_are_summoned = FALSE;
2066 int non_unique_type = SUMMON_HI_UNDEAD;
2071 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
2073 msg_format(_("%^s¤¬ËâË¡¤ÇÆÃÊ̤ʶ¯Å¨¤ò¾¤´¤·¤¿¡ª", "%^s magically summons special opponents!"), m_name);
2075 for (k = 0; k < S_NUM_4; k++)
2077 count += summon_specific(m_idx, y, x, rlev, SUMMON_UNIQUE, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
2080 if (count) uniques_are_summoned = TRUE;
2082 if ((m_ptr->sub_align & (SUB_ALIGN_GOOD | SUB_ALIGN_EVIL)) == (SUB_ALIGN_GOOD | SUB_ALIGN_EVIL))
2083 non_unique_type = 0;
2084 else if (m_ptr->sub_align & SUB_ALIGN_GOOD)
2085 non_unique_type = SUMMON_ANGEL;
2087 for (k = count; k < S_NUM_4; k++)
2089 count += summon_specific(m_idx, y, x, rlev, non_unique_type, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
2092 if (p_ptr->blind && count)
2094 msg_format(_("¿¤¯¤Î%s¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬Ê¹¤³¤¨¤ë¡£", "You hear many %s appear nearby."),
2095 uniques_are_summoned ? _("Î϶¯¤¤¤â¤Î", "powerful things") : _("¤â¤Î", "things"));