4 * @brief ¥â¥ó¥¹¥¿¡¼¤Î¼öʸ¤ÎÄ̤·ÈÖ¹æ¤ò¼èÆÀ¤¹¤ë /
5 * @param SPELL_NUM_BASE RF4¤Ê¤éRF4_SPELL_START¤Î¤è¤¦¤Ë32¶èÀÚ¤ê¤Î¥Ù¡¼¥¹¤È¤Ê¤ë¿ôÃÍ
6 * @param SPELL_FLAG RF4_SHRIEK¤Ê¤É¤Î¥¹¥Ú¥ë¥Õ¥é¥°
7 * @return ¼öʸ¤ÎÄ̤·Èֹ档
9 int monspell_num(int SPELL_NUM_BASE, u32b SPELL_FLAG)
12 for (k = 0; k < 32; k++)
14 if (SPELL_FLAG & (1L << k)) return k + SPELL_NUM_BASE;
21 * @brief ¥â¥ó¥¹¥¿¡¼ID¤ò¼è¤ê¡¢¥â¥ó¥¹¥¿¡¼Ì¾¤òm_name¤ËÂåÆþ¤¹¤ë /
22 * @param m_idx ¥â¥ó¥¹¥¿¡¼ID
23 * @param m_name ¥â¥ó¥¹¥¿¡¼Ì¾¤òÆþÎϤ¹¤ëÇÛÎó
25 void monster_name(int m_idx, char* m_name)
27 monster_type *m_ptr = &m_list[m_idx];
28 monster_desc(m_name, m_ptr, 0x00);
32 * @brief ¥â¥ó¥¹¥¿¡¼2ÂΤ¬¥×¥ì¥¤¥ä¡¼¤Î¶á¤¯¤Ëµï¤ë¤«¤ÎȽÄê /
33 * @param m_idx ¥â¥ó¥¹¥¿¡¼ID°ìÂÎÌÜ
34 * @param t_idx ¥â¥ó¥¹¥¿¡¼IDÆóÂÎÌÜ
35 * @return ¥â¥ó¥¹¥¿¡¼2ÂΤΤɤÁ¤é¤«¤¬¥×¥ì¥¤¥ä¡¼¤Î¶á¤¯¤Ëµï¤ì¤ÐTRUE¡¢¤É¤Á¤é¤â±ó¤±¤ì¤ÐFALSE¤òÊÖ¤¹¡£
37 bool monster_near_player(int m_idx, int t_idx)
39 monster_type *m_ptr = &m_list[m_idx];
40 monster_type *t_ptr = &m_list[t_idx];
41 return (m_ptr->cdis <= MAX_SIGHT) || (t_ptr->cdis <= MAX_SIGHT);
45 * @brief ¥×¥ì¥¤¥ä¡¼¤¬¥â¥ó¥¹¥¿¡¼¤ò¸«¤ë¤³¤È¤¬¤Ç¤¤ë¤«¤ÎȽÄê /
46 * @param m_idx ¥â¥ó¥¹¥¿¡¼ID
47 * @return ¥×¥ì¥¤¥ä¡¼¤¬¥â¥ó¥¹¥¿¡¼¤ò¸«¤ë¤³¤È¤¬¤Ç¤¤ë¤Ê¤éTRUE¡¢¤½¤¦¤Ç¤Ê¤±¤ì¤ÐFALSE¤òÊÖ¤¹¡£
49 bool see_monster(int m_idx)
51 monster_type *m_ptr = &m_list[m_idx];
52 return is_seen(m_ptr);
56 * @brief ¥â¥ó¥¹¥¿¡¼¤Î¾§¤¨¤¿¼öʸ¤òÀÄËâË¡¤Ç³Ø½¬¤Ç¤¤ë¤«È½Äꤹ¤ë /
57 * @param m_idx ¥â¥ó¥¹¥¿¡¼ID
58 * @return ¥×¥ì¥¤¥ä¡¼¤¬ÀÄËâË¡¤Ç³Ø½¬¤Ç¤¤ë¤Ê¤éTRUE¡¢¤½¤¦¤Ç¤Ê¤±¤ì¤ÐFALSE¤òÊÖ¤¹¡£
60 bool spell_learnable(int m_idx)
62 monster_type *m_ptr = &m_list[m_idx];
63 /* Extract the "see-able-ness" */
64 bool seen = (!p_ptr->blind && m_ptr->ml);
66 bool maneable = player_has_los_bold(m_ptr->fy, m_ptr->fx);
67 return (seen && maneable && !world_monster);
71 * @brief ¥â¥ó¥¹¥¿¡¼ID¤«¤é¥â¥ó¥¹¥¿¡¼¤Î¥ì¥Ù¥ë¤ò¼èÆÀ¤¹¤ë /
72 * @param m_idx ¥â¥ó¥¹¥¿¡¼ID
73 * @return ¥â¥ó¥¹¥¿¡¼¤Î¥ì¥Ù¥ë
75 int monster_level_idx(int m_idx)
77 monster_type *m_ptr = &m_list[m_idx];
78 monster_race *r_ptr = &r_info[m_ptr->r_idx];
79 int rlev = ((r_ptr->level >= 1) ? r_ptr->level : 1);
84 * @brief ¥â¥ó¥¹¥¿¡¼ID¤«¤éPOWERFUL¥Õ¥é¥°¤ÎÍ̵¤ò¼èÆÀ¤¹¤ë /
85 * @param m_idx ¥â¥ó¥¹¥¿¡¼ID
86 * @return POWERFUL¥Õ¥é¥°¤¬¤¢¤ì¤ÐTRUE¡¢¤Ê¤±¤ì¤ÐFALSE¤òÊÖ¤¹¡£
88 bool monster_is_powerful(int m_idx)
90 monster_type *m_ptr = &m_list[m_idx];
91 monster_race *r_ptr = &r_info[m_ptr->r_idx];
92 return (r_ptr->flags2 & RF2_POWERFUL);
96 * @brief ¥â¥ó¥¹¥¿¡¼¤¬¥æ¥Ë¡¼¥¯¾¤´²Äǽ¤Ç¤¢¤ë¤«¤òȽÄꤹ¤ë /
97 * @param m_idx ¥â¥ó¥¹¥¿¡¼ID
98 * @return ¾¤´²Äǽ¤Ç¤¢¤ì¤ÐPM_ALLOW_UNIQUE¤òÊÖ¤¹¡£
100 u32b monster_u_mode(int m_idx)
103 monster_type *m_ptr = &m_list[m_idx];
104 bool pet = is_pet(m_ptr);
105 if (!pet) u_mode |= PM_ALLOW_UNIQUE;
110 * @brief ¥â¥ó¥¹¥¿¡¼¤òµ¯¤³¤¹ /
111 * @param m_idx ¥â¥ó¥¹¥¿¡¼ID
113 void monster_wakeup(int t_idx)
115 (void)set_monster_csleep(t_idx, 0);
119 * @brief ¥â¥ó¥¹¥¿¡¼¤¬¼öʸ¹Ô»È¤¹¤ëºÝ¤Î¥á¥Ã¥»¡¼¥¸¤ò½èÍý¤¹¤ëÈÆÍÑ´Ø¿ô /
120 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
121 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
122 * @param msg1 msg_flag¤¬TRUE¤Ç¡¢¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹ç¤Î¥á¥Ã¥»¡¼¥¸
123 * @param msg2 msg_flag¤¬TRUE¤Ç¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹ç¤Î¥á¥Ã¥»¡¼¥¸
124 * @param msg3 msg_flag¤¬FALSE¤Ç¡¢¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹ç¤Î¥á¥Ã¥»¡¼¥¸
125 * @param msg4 msg_flag¤¬FALSE¤Ç¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹ç¤Î¥á¥Ã¥»¡¼¥¸
126 * @param msg_flag ¥á¥Ã¥»¡¼¥¸¤òʬ´ô¤¹¤ë¤¿¤á¤Î¥Õ¥é¥°
127 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
129 void monspell_message_base(int m_idx, int t_idx, cptr msg1, cptr msg2, cptr msg3, cptr msg4, bool msg_flag, int TARGET_TYPE)
131 bool known = monster_near_player(m_idx, t_idx);
132 bool see_either = see_monster(m_idx) || see_monster(t_idx);
133 bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
134 bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
135 char m_name[80], t_name[80];
136 monster_name(m_idx, m_name);
137 monster_name(t_idx, t_name);
139 if (mon_to_player || (mon_to_mon && known && see_either))
145 msg_format(msg1, m_name);
146 else if (mon_to_mon && known && see_either)
147 msg_format(msg2, m_name);
153 msg_format(msg3, m_name);
155 else if (mon_to_mon && known && see_either)
157 msg_format(msg4, m_name, t_name);
161 if (mon_to_mon && known && !see_either)
166 * @brief ¥â¥ó¥¹¥¿¡¼¤¬¼öʸ¹Ô»È¤¹¤ëºÝ¤Î¥á¥Ã¥»¡¼¥¸¤ò½èÍý¤¹¤ëÈÆÍÑ´Ø¿ô¡£ÌÕÌÜ»þ¤ÈÄ̾ï»þ¤Î¥á¥Ã¥»¡¼¥¸¤òÀÚ¤êÂؤ¨¤ë¡£ /
167 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
168 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
169 * @param msg1 ¥×¥ì¥¤¥ä¡¼¤¬ÌÕÌܾõÂ֤Υá¥Ã¥»¡¼¥¸
170 * @param msg2 ¥×¥ì¥¤¥ä¡¼¤¬ÌÕÌܤǤʤ¯¡¢¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹ç¤Î¥á¥Ã¥»¡¼¥¸
171 * @param msg3 ¥×¥ì¥¤¥ä¡¼¤¬ÌÕÌܤǤʤ¯¡¢¥â¥ó¥¹¥¿¡¼ÂоݤȤ¹¤ë¾ì¹ç¤Î¥á¥Ã¥»¡¼¥¸
172 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
174 void monspell_message(int m_idx, int t_idx, cptr msg1, cptr msg2, cptr msg3, int TARGET_TYPE)
176 monspell_message_base(m_idx, t_idx, msg1, msg1, msg2, msg3, p_ptr->blind, TARGET_TYPE);
180 * @brief ¥â¥ó¥¹¥¿¡¼¤¬¼öʸ¹Ô»È¤¹¤ëºÝ¤Î¥á¥Ã¥»¡¼¥¸¤ò½èÍý¤¹¤ëÈÆÍÑ´Ø¿ô¡£ÂÐ¥â¥ó¥¹¥¿¡¼¤ÈÂХץ쥤¥ä¡¼¤Î¥á¥Ã¥»¡¼¥¸¤òÀÚ¤êÂؤ¨¤ë¡£ /
181 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
182 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
183 * @param msg1 ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹ç¤Î¥á¥Ã¥»¡¼¥¸
184 * @param msg2 ¥â¥ó¥¹¥¿¡¼ÂоݤȤ¹¤ë¾ì¹ç¤Î¥á¥Ã¥»¡¼¥¸
185 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
187 void simple_monspell_message(int m_idx, int t_idx, cptr msg1, cptr msg2, int TARGET_TYPE)
189 monspell_message_base(m_idx, t_idx, msg1, msg2, msg1, msg2, p_ptr->blind, TARGET_TYPE);
193 * @brief RF4_SHRIEK¤Î½èÍý¡£¶«¤Ó¡£ /
194 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
195 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
196 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
198 void spell_RF4_SHRIEK(int m_idx, int t_idx, int TARGET_TYPE)
200 simple_monspell_message(m_idx, t_idx,
201 _("%^s¤¬¤«¤ó¹â¤¤¶âÀÚ¤êÀ¼¤ò¤¢¤²¤¿¡£", "%^s makes a high pitched shriek."),
202 _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¶«¤ó¤À¡£", "%^s shrieks at %s."),
205 if (TARGET_TYPE == MONSTER_TO_PLAYER)
207 aggravate_monsters(m_idx);
209 else if (TARGET_TYPE == MONSTER_TO_MONSTER)
211 monster_wakeup(t_idx);
216 * @brief RF4_DISPEL¤Î½èÍý¡£ËâÎϾõ /
217 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
218 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
219 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
221 void spell_RF4_DISPEL(int m_idx, int t_idx, int TARGET_TYPE)
223 bool known = monster_near_player(m_idx, t_idx);
224 bool see_m = see_monster(m_idx);
225 char m_name[80], t_name[80];
226 monster_name(m_idx, m_name);
227 monster_name(t_idx, t_name);
229 monspell_message(m_idx, t_idx,
230 _("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."),
231 _("%^s¤¬ËâÎϾõî¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a dispel magic."),
232 _("%^s¤¬%s¤ËÂФ·¤ÆËâÎϾõî¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a dispel magic at %s."),
235 if (TARGET_TYPE == MONSTER_TO_PLAYER)
238 if (p_ptr->riding) dispel_monster_status(p_ptr->riding);
240 if ((p_ptr->pseikaku == SEIKAKU_COMBAT) || (inventory[INVEN_BOW].name1 == ART_CRIMSON))
241 msg_print(_("¤ä¤ê¤ä¤¬¤Ã¤¿¤Ê¡ª", ""));
243 learn_spell(MS_DISPEL);
245 else if (TARGET_TYPE == MONSTER_TO_MONSTER)
247 if (t_idx == p_ptr->riding) dispel_player();
248 dispel_monster_status(t_idx);
253 * @brief RF4_ROCKET¤Î½èÍý¡£¥í¥±¥Ã¥È¡£ /
254 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
255 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
256 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
257 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
258 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
259 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
261 int spell_RF4_ROCKET(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
265 monspell_message(m_idx, t_idx,
266 _("%^s¤¬²¿¤«¤ò¼Í¤Ã¤¿¡£", "%^s shoots something."),
267 _("%^s¤¬¥í¥±¥Ã¥È¤òȯ¼Í¤·¤¿¡£", "%^s fires a rocket."),
268 _("%^s¤¬%s¤Ë¥í¥±¥Ã¥È¤òȯ¼Í¤·¤¿¡£", "%^s fires a rocket at %s."),
271 dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_ROCKET), m_idx, DAM_ROLL);
272 breath(y, x, m_idx, GF_ROCKET, dam, 2, FALSE, MS_ROCKET, TARGET_TYPE);
273 if (TARGET_TYPE == MONSTER_TO_PLAYER)
274 update_smart_learn(m_idx, DRS_SHARD);
279 * @brief RF4_SHOOT¤Î½èÍý¡£¼Í·â¡£ /
280 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
281 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
282 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
283 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
284 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
285 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
287 int spell_RF4_SHOOT(int y, int x, int m_idx, int t_idx,int TARGET_TYPE)
291 monspell_message(m_idx, t_idx,
292 _("%^s¤¬´ñ̯¤Ê²»¤òȯ¤·¤¿¡£", "%^s makes a strange noise."),
293 _("%^s¤¬Ìð¤òÊü¤Ã¤¿¡£", "%^s fires an arrow."),
294 _("%^s¤¬%s¤ËÌð¤òÊü¤Ã¤¿¡£", "%^s fires an arrow at %s."),
297 dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_SHOOT), m_idx, DAM_ROLL);
298 bolt(m_idx, y, x, GF_ARROW, dam, MS_SHOOT, TARGET_TYPE);
305 * @brief RF4_BR_*¤Î½èÍý¡£³Æ¼ï¥Ö¥ì¥¹¡£ /
306 * @param GF_TYPE ¥Ö¥ì¥¹¤Î°À
307 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
308 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
309 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
310 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
311 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
312 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
314 int spell_RF4_BREATH(int GF_TYPE, int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
316 int dam, ms_type, drs_type;
318 bool smart_learn = TRUE;
319 monster_type *m_ptr = &m_list[m_idx];
320 bool known = monster_near_player(m_idx, t_idx);
321 bool see_either = see_monster(m_idx) || see_monster(t_idx);
322 bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
323 bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
324 char m_name[80], t_name[80];
325 monster_name(m_idx, m_name);
326 monster_name(t_idx, t_name);
331 dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_ACID), m_idx, DAM_ROLL);
332 type_s = _("»À", "acid");
333 ms_type = MS_BR_ACID;
337 dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_ELEC), m_idx, DAM_ROLL);
338 type_s = _("°ðºÊ", "lightning");
339 ms_type = MS_BR_ELEC;
343 dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_FIRE), m_idx, DAM_ROLL);
344 type_s = _("²Ð±ê", "fire");
345 ms_type = MS_BR_FIRE;
349 dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_COLD), m_idx, DAM_ROLL);
350 type_s = _("Î䵤", "frost");
351 ms_type = MS_BR_COLD;
355 dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_POIS), m_idx, DAM_ROLL);
356 type_s = _("¥¬¥¹", "gas");
357 ms_type = MS_BR_POIS;
361 dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_NETH), m_idx, DAM_ROLL);
362 type_s = _("ÃϹö", "nether");
363 ms_type = MS_BR_NETHER;
367 dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_LITE), m_idx, DAM_ROLL);
368 type_s = _("Á®¸÷", "light");
369 ms_type = MS_BR_LITE;
373 dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_DARK), m_idx, DAM_ROLL);
374 type_s = _("°Å¹õ", "darkness");
375 ms_type = MS_BR_DARK;
379 dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_CONF), m_idx, DAM_ROLL);
380 type_s = _("º®Íð", "confusion");
381 ms_type = MS_BR_CONF;
385 dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_SOUN), m_idx, DAM_ROLL);
386 type_s = _("¹ì²»", "sound");
387 ms_type = MS_BR_SOUND;
388 drs_type = DRS_SOUND;
391 dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_CHAO), m_idx, DAM_ROLL);
392 type_s = _("¥«¥ª¥¹", "chaos");
393 ms_type = MS_BR_CHAOS;
394 drs_type = DRS_CHAOS;
397 dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_DISE), m_idx, DAM_ROLL);
398 type_s = _("Îô²½", "disenchantment");
399 ms_type = MS_BR_DISEN;
400 drs_type = DRS_DISEN;
403 dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_NEXU), m_idx, DAM_ROLL);
404 type_s = _("°ø²Ìº®Íð", "nexus");
405 ms_type = MS_BR_NEXUS;
406 drs_type = DRS_NEXUS;
409 dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_TIME), m_idx, DAM_ROLL);
410 type_s = _("»þ´ÖµÕž", "time");
411 ms_type = MS_BR_TIME;
415 dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_INER), m_idx, DAM_ROLL);
416 type_s = _("ÃÙÆß", "inertia");
417 ms_type = MS_BR_INERTIA;
421 dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_GRAV), m_idx, DAM_ROLL);
422 type_s = _("½ÅÎÏ", "gravity");
423 ms_type = MS_BR_GRAVITY;
427 dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_SHAR), m_idx, DAM_ROLL);
428 type_s = _("ÇËÊÒ", "shards");
429 ms_type = MS_BR_SHARDS;
430 drs_type = DRS_SHARD;
433 dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_PLAS), m_idx, DAM_ROLL);
434 type_s = _("¥×¥é¥º¥Þ", "plasma");
435 ms_type = MS_BR_PLASMA;
439 dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_WALL), m_idx, DAM_ROLL);
440 type_s = _("¥Õ¥©¡¼¥¹", "force");
441 ms_type = MS_BR_FORCE;
445 dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_MANA), m_idx, DAM_ROLL);
446 type_s = _("ËâÎÏ", "mana");
447 ms_type = MS_BR_MANA;
451 dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_NUKE), m_idx, DAM_ROLL);
452 type_s = _("Êü¼ÍÀÇÑ´þʪ", "toxic waste");
453 ms_type = MS_BR_NUKE;
456 case GF_DISINTEGRATE:
457 dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_DISI), m_idx, DAM_ROLL);
458 type_s = _("ʬ²ò", "disintegration");
459 ms_type = MS_BR_DISI;
466 if (mon_to_player || (mon_to_mon && known && see_either))
469 if (m_ptr->r_idx == MON_JAIAN && GF_TYPE == GF_SOUND)
471 msg_format(_("¡Ö¥Ü¥©¥¨¡Á¡Á¡Á¡Á¡Á¡Á¡×", "'Booooeeeeee'"));
473 else if (m_ptr->r_idx == MON_BOTEI && GF_TYPE == GF_SHARDS)
475 msg_format(_("¡Ö¥ÜÄë¥Ó¥ë¥«¥Ã¥¿¡¼¡ª¡ª¡ª¡×", "'Boty-Build cutter!!!'"));
477 else if (p_ptr->blind)
479 if (mon_to_player || (mon_to_mon && known && see_either))
480 msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
486 msg_format(_("%^s¤¬%^s¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes %^s."), m_name, type_s);
488 else if (mon_to_mon && known && see_either)
490 _(msg_format("%^s¤¬%^s¤Ë%^s¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name, t_name, type_s),
491 msg_format("%^s breathes %^s at %^s.", m_name, type_s, t_name));
495 if (mon_to_mon && known && !see_either)
499 breath(y, x, m_idx, GF_TYPE, dam, 0, TRUE, ms_type, TARGET_TYPE);
500 if (smart_learn && mon_to_player)
501 update_smart_learn(m_idx, drs_type);
507 * @brief RF4_BA_NUKE¤Î½èÍý¡£Êü¼Íǽµå¡£ /
508 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
509 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
510 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
511 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
512 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
513 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
515 int spell_RF4_BA_NUKE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
519 monspell_message(m_idx, t_idx,
520 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
521 _("%^s¤¬Êü¼Íǽµå¤òÊü¤Ã¤¿¡£", "%^s casts a ball of radiation."),
522 _("%^s¤¬%s¤ËÊü¼Íǽµå¤òÊü¤Ã¤¿¡£", "%^s casts a ball of radiation at %s."),
525 dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BA_NUKE), m_idx, DAM_ROLL);
526 breath(y, x, m_idx, GF_NUKE, dam, 2, FALSE, MS_BALL_NUKE, TARGET_TYPE);
527 if (TARGET_TYPE == MONSTER_TO_PLAYER)
528 update_smart_learn(m_idx, DRS_POIS);
534 * @brief RF4_BA_CHAO¤Î½èÍý¡£½ã¥í¥°¥ë¥¹¡£ /
535 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
536 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
537 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
538 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
539 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
540 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
542 int spell_RF4_BA_CHAO(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
546 monspell_message(m_idx, t_idx,
547 _("%^s¤¬¶²¤í¤·¤²¤Ë¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles frighteningly."),
548 _("%^s¤¬½ã¥í¥°¥ë¥¹¤òÊü¤Ã¤¿¡£", "%^s invokes a raw Logrus."),
549 _("%^s¤¬%s¤Ë½ã¥í¥°¥ë¥¹¤òÊü¤Ã¤¿¡£", "%^s invokes raw Logrus upon %s."),
552 dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BA_CHAO), m_idx, DAM_ROLL);
553 breath(y, x, m_idx, GF_CHAOS, dam, 4, FALSE, MS_BALL_CHAOS, TARGET_TYPE);
554 if (TARGET_TYPE == MONSTER_TO_PLAYER)
555 update_smart_learn(m_idx, DRS_CHAOS);
561 * @brief RF5_BA_ACID¤Î½èÍý¡£¥¢¥·¥Ã¥É¡¦¥Ü¡¼¥ë¡£ /
562 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
563 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
564 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
565 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
566 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
567 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
569 int spell_RF5_BA_ACID(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
573 monspell_message(m_idx, t_idx,
574 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
575 _("%^s¤¬¥¢¥·¥Ã¥É¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts an acid ball."),
576 _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥¢¥·¥Ã¥É¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£",
577 "%^s casts an acid ball at %s."),
580 rad = monster_is_powerful(m_idx) ? 4 : 2;
581 dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BA_ACID), m_idx, DAM_ROLL);
582 breath(y, x, m_idx, GF_ACID, dam, rad, FALSE, MS_BALL_ACID, TARGET_TYPE);
583 if (TARGET_TYPE == MONSTER_TO_PLAYER)
584 update_smart_learn(m_idx, DRS_ACID);
590 * @brief RF5_BA_ELEC¤Î½èÍý¡£¥µ¥ó¥À¡¼¡¦¥Ü¡¼¥ë¡£ /
591 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
592 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
593 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
594 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
595 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
596 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
598 int spell_RF5_BA_ELEC(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
602 monspell_message(m_idx, t_idx,
603 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
604 _("%^s¤¬¥µ¥ó¥À¡¼¡¦¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a lightning ball."),
605 _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥µ¥ó¥À¡¼¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£",
606 "%^s casts a lightning ball at %s."),
609 rad = monster_is_powerful(m_idx) ? 4 : 2;
610 dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BA_ELEC), m_idx, DAM_ROLL);
611 breath(y, x, m_idx, GF_ELEC, dam, rad, FALSE, MS_BALL_ELEC, TARGET_TYPE);
612 if (TARGET_TYPE == MONSTER_TO_PLAYER)
613 update_smart_learn(m_idx, DRS_ELEC);
619 * @brief RF5_BA_FIRE¤Î½èÍý¡£¥Õ¥¡¥¤¥¢¡¦¥Ü¡¼¥ë¡£ /
620 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
621 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
622 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
623 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
624 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
625 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
627 int spell_RF5_BA_FIRE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
630 monster_type *m_ptr = &m_list[m_idx];
632 if (m_ptr->r_idx == MON_ROLENTO)
634 monspell_message(m_idx, t_idx,
635 _("%s¤¬²¿¤«¤òÅꤲ¤¿¡£", "%^s throws something."),
636 _("%s¤Ï¼êÜØÃƤòÅꤲ¤¿¡£", "%^s throws a hand grenade."),
637 _("%^s¤¬%^s¤Ë¸þ¤«¤Ã¤Æ¼êÜØÃƤòÅꤲ¤¿¡£", "%^s throws a hand grenade."),
642 monspell_message(m_idx, t_idx,
643 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
644 _("%^s¤¬¥Õ¥¡¥¤¥¢¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a fire ball."),
645 _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥Õ¥¡¥¤¥¢¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£",
646 "%^s casts a fire ball at %s."),
649 rad = monster_is_powerful(m_idx) ? 4 : 2;
650 dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BA_FIRE), m_idx, DAM_ROLL);
651 breath(y, x, m_idx, GF_FIRE, dam, rad, FALSE, MS_BALL_FIRE, TARGET_TYPE);
652 if (TARGET_TYPE == MONSTER_TO_PLAYER)
653 update_smart_learn(m_idx, DRS_FIRE);
659 * @brief RF5_BA_COLD¤Î½èÍý¡£¥¢¥¤¥¹¡¦¥Ü¡¼¥ë¡£ /
660 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
661 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
662 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
663 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
664 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
665 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
667 int spell_RF5_BA_COLD(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
671 monspell_message(m_idx, t_idx,
672 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
673 _("%^s¤¬¥¢¥¤¥¹¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a frost ball."),
674 _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥¢¥¤¥¹¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£",
675 "%^s casts a frost ball at %s."),
678 rad = monster_is_powerful(m_idx) ? 4 : 2;
679 dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BA_COLD), m_idx, DAM_ROLL);
680 breath(y, x, m_idx, GF_COLD, dam, rad, FALSE, MS_BALL_COLD, TARGET_TYPE);
681 if (TARGET_TYPE == MONSTER_TO_PLAYER)
682 update_smart_learn(m_idx, DRS_COLD);
688 * @brief RF5_BA_POIS¤Î½èÍý¡£°½±À¡£ /
689 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
690 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
691 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
692 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
693 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
694 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
696 int spell_RF5_BA_POIS(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
700 monspell_message(m_idx, t_idx,
701 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
702 _("%^s¤¬°½±À¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a stinking cloud."),
703 _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ°½±À¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a stinking cloud at %s."),
706 dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BA_POIS), m_idx, DAM_ROLL);
707 breath(y, x, m_idx, GF_POIS, dam, 2, FALSE, MS_BALL_POIS, TARGET_TYPE);
708 if (TARGET_TYPE == MONSTER_TO_PLAYER)
709 update_smart_learn(m_idx, DRS_POIS);
715 * @brief RF5_BA_NETH¤Î½èÍý¡£ÃϹöµå¡£ /
716 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
717 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
718 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
719 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
720 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
721 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
723 int spell_RF5_BA_NETH(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
727 monspell_message(m_idx, t_idx,
728 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
729 _("%^s¤¬ÃϹöµå¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a nether ball."),
730 _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤ÆÃϹöµå¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a nether ball at %s."),
733 dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BA_NETH), m_idx, DAM_ROLL);
734 breath(y, x, m_idx, GF_NETHER, dam, 2, FALSE, MS_BALL_NETHER, TARGET_TYPE);
735 if (TARGET_TYPE == MONSTER_TO_PLAYER)
736 update_smart_learn(m_idx, DRS_NETH);
742 * @brief RF5_BA_WATE¤Î½èÍý¡£¥¦¥©¡¼¥¿¡¼¡¦¥Ü¡¼¥ë¡£ /
743 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
744 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
745 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
746 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
747 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
748 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
750 int spell_RF5_BA_WATE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
753 bool known = monster_near_player(m_idx, t_idx);
754 bool see_either = see_monster(m_idx) || see_monster(t_idx);
755 bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
756 bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
758 monster_name(t_idx, t_name);
761 monspell_message(m_idx, t_idx,
762 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
763 _("%^s¤¬Î®¤ì¤ë¤è¤¦¤Ê¿È¿¶¤ê¤ò¤·¤¿¡£", "%^s gestures fluidly."),
764 _("%^s¤¬%s¤ËÂФ·¤Æή¤ì¤ë¤è¤¦¤Ê¿È¿¶¤ê¤ò¤·¤¿¡£", "%^s gestures fluidly at %s."),
769 msg_format(_("¤¢¤Ê¤¿¤Ï±²´¬¤¤Ë°û¤ß¹þ¤Þ¤ì¤¿¡£", "You are engulfed in a whirlpool."));
771 else if (mon_to_mon && known && see_either && !p_ptr->blind)
773 msg_format(_("%^s¤Ï±²´¬¤Ë°û¤ß¹þ¤Þ¤ì¤¿¡£", "%^s is engulfed in a whirlpool."), t_name);
776 dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BA_WATE), m_idx, DAM_ROLL);
777 breath(y, x, m_idx, GF_WATER, dam, 4, FALSE, MS_BALL_WATER, TARGET_TYPE);
782 * @brief RF5_BA_MANA¤Î½èÍý¡£ËâÎϤÎÍò¡£ /
783 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
784 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
785 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
786 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
787 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
788 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
790 int spell_RF5_BA_MANA(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
794 monspell_message(m_idx, t_idx,
795 _("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."),
796 _("%^s¤¬ËâÎϤÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a mana storm."),
797 _("%^s¤¬%s¤ËÂФ·¤ÆËâÎϤÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a mana storm upon %s."),
800 dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BA_MANA), m_idx, DAM_ROLL);
801 breath(y, x, m_idx, GF_MANA, dam, 4, FALSE, MS_BALL_MANA, TARGET_TYPE);
806 * @brief RF5_BA_DARK¤Î½èÍý¡£°Å¹õ¤ÎÍò¡£ /
807 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
808 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
809 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
810 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
811 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
812 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
814 int spell_RF5_BA_DARK(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
818 monspell_message(m_idx, t_idx,
819 _("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."),
820 _("%^s¤¬°Å¹õ¤ÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a darkness storm."),
821 _("%^s¤¬%s¤ËÂФ·¤Æ°Å¹õ¤ÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a darkness storm upon %s."),
824 dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BA_DARK), m_idx, DAM_ROLL);
825 breath(y, x, m_idx, GF_DARK, dam, 4, FALSE, MS_BALL_DARK, TARGET_TYPE);
826 if (TARGET_TYPE == MONSTER_TO_PLAYER)
827 update_smart_learn(m_idx, DRS_DARK);
833 * @brief RF5_DRAIN_MANA¤Î½èÍý¡£ËâÎϵۼý¡£ /
834 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
835 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
836 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
837 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
838 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
839 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
841 int spell_RF5_DRAIN_MANA(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
844 char m_name[80], t_name[80];
845 monster_name(m_idx, m_name);
846 monster_name(t_idx, t_name);
849 if (TARGET_TYPE == MONSTER_TO_PLAYER)
853 else if (TARGET_TYPE == MONSTER_TO_MONSTER && see_monster(m_idx))
856 msg_format(_("%^s¤ÏÀº¿À¥¨¥Í¥ë¥®¡¼¤ò%s¤«¤éµÛ¤¤¤È¤Ã¤¿¡£", "%^s draws psychic energy from %s."), m_name, t_name);
859 dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_DRAIN_MANA), m_idx, DAM_ROLL);
860 breath(y, x, m_idx, GF_DRAIN_MANA, dam, 0, FALSE, MS_DRAIN_MANA, TARGET_TYPE);
861 if (TARGET_TYPE == MONSTER_TO_PLAYER)
862 update_smart_learn(m_idx, DRS_MANA);
868 * @brief RF5_MIND_BLAST¤Î½èÍý¡£Àº¿À¹¶·â¡£ /
869 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
870 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
871 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
872 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
873 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
874 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
876 int spell_RF5_MIND_BLAST(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
878 monster_type *m_ptr = &m_list[m_idx];
879 bool seen = (!p_ptr->blind && m_ptr->ml);
881 char m_name[80], t_name[80];
882 monster_name(m_idx, m_name);
883 monster_name(t_idx, t_name);
886 if (TARGET_TYPE == MONSTER_TO_PLAYER)
890 msg_print(_("²¿¤«¤¬¤¢¤Ê¤¿¤ÎÀº¿À¤ËÇ°¤òÊü¤Ã¤Æ¤¤¤ë¤è¤¦¤À¡£", "You feel something focusing on your mind."));
892 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ÎÆ·¤ò¤¸¤Ã¤È¤Ë¤é¤ó¤Ç¤¤¤ë¡£", "%^s gazes deep into your eyes."), m_name);
894 else if (TARGET_TYPE == MONSTER_TO_MONSTER && see_monster(m_idx))
896 msg_format(_("%^s¤Ï%s¤ò¤¸¤Ã¤Èâˤó¤À¡£", "%^s gazes intently at %s."), m_name, t_name);
899 dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_MIND_BLAST), m_idx, DAM_ROLL);
900 breath(y, x, m_idx, GF_MIND_BLAST, dam, 0, FALSE, MS_MIND_BLAST, TARGET_TYPE);
905 * @brief RF5_BRAIN_SMASH¤Î½èÍý¡£Ç¾¹¶·â¡£ /
906 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
907 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
908 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
909 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
910 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
911 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
913 int spell_RF5_BRAIN_SMASH(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
915 monster_type *m_ptr = &m_list[m_idx];
916 bool seen = (!p_ptr->blind && m_ptr->ml);
918 char m_name[80], t_name[80];
919 monster_name(m_idx, m_name);
920 monster_name(t_idx, t_name);
923 if (TARGET_TYPE == MONSTER_TO_PLAYER)
927 msg_print(_("²¿¤«¤¬¤¢¤Ê¤¿¤ÎÀº¿À¤ËÇ°¤òÊü¤Ã¤Æ¤¤¤ë¤è¤¦¤À¡£", "You feel something focusing on your mind."));
929 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ÎÆ·¤ò¤¸¤Ã¤È¤Ë¤é¤ó¤Ç¤¤¤ë¡£", "%^s gazes deep into your eyes."), m_name);
931 else if (TARGET_TYPE == MONSTER_TO_MONSTER && see_monster(m_idx))
933 msg_format(_("%^s¤Ï%s¤ò¤¸¤Ã¤Èâˤó¤À¡£", "%^s gazes intently at %s."), m_name, t_name);
936 dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BRAIN_SMASH), m_idx, DAM_ROLL);
937 breath(y, x, m_idx, GF_BRAIN_SMASH, dam, 0, FALSE, MS_BRAIN_SMASH, TARGET_TYPE);
942 * @brief RF5_CAUSE_*¤Î¥á¥Ã¥»¡¼¥¸½èÍý´Ø¿ô /
943 * @param GF_TYPE ¹¶·â¤Ë»ÈÍѤ¹¤ë°À
944 * @param dam ¹¶·â¤Ë»ÈÍѤ¹¤ë¥À¥á¡¼¥¸ÎÌ
945 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
946 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
947 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
948 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
949 * @param msg1 ÂХץ쥤¥ä¡¼¡¢ÌÕÌÜ»þ¥á¥Ã¥»¡¼¥¸
950 * @param msg2 ÂХץ쥤¥ä¡¼¡¢ÈóÌÕÌÜ»þ¥á¥Ã¥»¡¼¥¸
951 * @param msg3 ÂÐ¥â¥ó¥¹¥¿¡¼¤Î¥á¥Ã¥»¡¼¥¸
952 * @param MS_TYPE ¼öʸ¤ÎÈÖ¹æ
953 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
954 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
956 void spell_RF5_CAUSE(int GF_TYPE, int dam, int y, int x, int m_idx, int t_idx, cptr msg1, cptr msg2, cptr msg3, int MS_TYPE, int TARGET_TYPE)
958 char m_name[80], t_name[80];
959 monster_name(m_idx, m_name);
960 monster_name(t_idx, t_name);
962 if (TARGET_TYPE == MONSTER_TO_PLAYER)
966 msg_format(msg1, m_name);
968 msg_format(msg2, m_name);
970 else if (TARGET_TYPE == MONSTER_TO_MONSTER)
972 if (see_monster(m_idx))
974 msg_format(msg3, m_name, t_name);
981 breath(y, x, m_idx, GF_TYPE, dam, 0, FALSE, MS_TYPE, TARGET_TYPE);
985 * @brief RF5_CAUSE_1¤Î½èÍý¡£·Ú½ý¤Î¼ö¤¤¡£ /
986 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
987 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
988 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
989 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
990 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
991 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
993 int spell_RF5_CAUSE_1(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
995 cptr msg1, msg2, msg3;
997 dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_CAUSE_1), m_idx, DAM_ROLL);
999 msg1 = _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles.");
1000 msg2 = _("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¼ö¤Ã¤¿¡£", "%^s points at you and curses.");
1001 msg3 = _("%^s¤Ï%s¤ò»Ø¤µ¤·¤Æ¼ö¤¤¤ò¤«¤±¤¿¡£", "%^s points at %s and curses.");
1003 spell_RF5_CAUSE(GF_CAUSE_1, dam, y, x, m_idx, t_idx, msg1, msg2, msg3, MS_CAUSE_1, TARGET_TYPE);
1008 * @brief RF5_CAUSE_2¤Î½èÍý¡£½Å½ý¤Î¼ö¤¤¡£ /
1009 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
1010 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
1011 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
1012 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
1013 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
1014 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
1016 int spell_RF5_CAUSE_2(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
1018 cptr msg1, msg2, msg3;
1020 dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_CAUSE_2), m_idx, DAM_ROLL);
1022 msg1 = _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles.");
1023 msg2 = _("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¶²¤í¤·¤²¤Ë¼ö¤Ã¤¿¡£", "%^s points at you and curses horribly.");
1024 msg3 = _("%^s¤Ï%s¤ò»Ø¤µ¤·¤Æ¶²¤í¤·¤²¤Ë¼ö¤¤¤ò¤«¤±¤¿¡£", "%^s points at %s and curses horribly.");
1026 spell_RF5_CAUSE(GF_CAUSE_2, dam, y, x, m_idx, t_idx, msg1, msg2, msg3, MS_CAUSE_2, TARGET_TYPE);
1031 * @brief RF5_CAUSE_3¤Î½èÍý¡£Ã×Ì¿½ý¤Î¼ö¤¤¡£ /
1032 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
1033 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
1034 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
1035 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
1036 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
1037 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
1039 int spell_RF5_CAUSE_3(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
1041 cptr msg1, msg2, msg3;
1043 dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_CAUSE_3), m_idx, DAM_ROLL);
1045 msg1 = _("%^s¤¬²¿¤«¤òÂçÀ¼¤Ç¶«¤ó¤À¡£", "%^s mumbles loudly.");
1046 msg2 = _("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¶²¤í¤·¤²¤Ë¼öʸ¤ò¾§¤¨¤¿¡ª", "%^s points at you, incanting terribly!");
1047 msg3 = _("%^s¤Ï%s¤ò»Ø¤µ¤·¡¢¶²¤í¤·¤²¤Ë¼öʸ¤ò¾§¤¨¤¿¡ª", "%^s points at %s, incanting terribly!");
1049 spell_RF5_CAUSE(GF_CAUSE_3, dam, y, x, m_idx, t_idx, msg1, msg2, msg3, MS_CAUSE_3, TARGET_TYPE);
1054 * @brief RF5_CAUSE_4¤Î½èÍý¡£È빦¤òÆͤ¯¡£ /
1055 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
1056 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
1057 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
1058 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
1059 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
1060 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
1062 int spell_RF5_CAUSE_4(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
1064 cptr msg1, msg2, msg3;
1066 dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_CAUSE_4), m_idx, DAM_ROLL);
1068 msg1 = _("%^s¤¬¡Ö¤ªÁ°¤Ï´û¤Ë»à¤ó¤Ç¤¤¤ë¡×¤È¶«¤ó¤À¡£", "%^s screams the word 'DIE!'");
1069 msg2 = _("%^s¤¬¤¢¤Ê¤¿¤ÎÈ빦¤òÆͤ¤¤Æ¡Ö¤ªÁ°¤Ï´û¤Ë»à¤ó¤Ç¤¤¤ë¡×¤È¶«¤ó¤À¡£", "%^s points at you, screaming the word DIE!");
1070 msg3 = _("%^s¤¬%s¤ÎÈ빦¤òÆͤ¤¤Æ¡¢¡Ö¤ªÁ°¤Ï´û¤Ë»à¤ó¤Ç¤¤¤ë¡×¤È¶«¤ó¤À¡£", "%^s points at %s, screaming the word, 'DIE!'");
1072 spell_RF5_CAUSE(GF_CAUSE_4, dam, y, x, m_idx, t_idx, msg1, msg2, msg3, MS_CAUSE_4, TARGET_TYPE);
1077 * @brief RF5_BO_ACID¤Î½èÍý¡£¥¢¥·¥Ã¥É¡¦¥Ü¥ë¥È¡£ /
1078 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
1079 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
1080 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
1081 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
1082 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
1083 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
1085 int spell_RF5_BO_ACID(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
1089 monspell_message(m_idx, t_idx,
1090 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
1091 _("%^s¤¬¥¢¥·¥Ã¥É¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a acid bolt."),
1092 _("%s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥¢¥·¥Ã¥É¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts an acid bolt at %s."),
1095 dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BO_ACID), m_idx, DAM_ROLL);
1096 bolt(m_idx, y, x, GF_ACID, dam, MS_BOLT_ACID, TARGET_TYPE);
1097 if (TARGET_TYPE == MONSTER_TO_PLAYER)
1099 update_smart_learn(m_idx, DRS_ACID);
1100 update_smart_learn(m_idx, DRS_REFLECT);
1106 * @brief RF5_BO_ELEC¤Î½èÍý¡£¥µ¥ó¥À¡¼¡¦¥Ü¥ë¥È¡£ /
1107 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
1108 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
1109 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
1110 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
1111 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
1112 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
1114 int spell_RF5_BO_ELEC(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
1118 monspell_message(m_idx, t_idx,
1119 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
1120 _("%^s¤¬¥µ¥ó¥À¡¼¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a lightning bolt."),
1121 _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥µ¥ó¥À¡¼¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a lightning bolt at %s."),
1124 dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BO_ELEC), m_idx, DAM_ROLL);
1125 bolt(m_idx, y, x, GF_ELEC, dam, MS_BOLT_ELEC, TARGET_TYPE);
1126 if (TARGET_TYPE == MONSTER_TO_PLAYER)
1128 update_smart_learn(m_idx, DRS_ELEC);
1129 update_smart_learn(m_idx, DRS_REFLECT);
1135 * @brief RF5_BO_FIRE¤Î½èÍý¡£¥Õ¥¡¥¤¥¢¡¦¥Ü¥ë¥È¡£ /
1136 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
1137 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
1138 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
1139 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
1140 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
1141 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
1143 int spell_RF5_BO_FIRE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
1147 monspell_message(m_idx, t_idx,
1148 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
1149 _("%^s¤¬¥Õ¥¡¥¤¥¢¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a fire bolt."),
1150 _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥Õ¥¡¥¤¥¢¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a fire bolt at %s."),
1153 dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BO_FIRE), m_idx, DAM_ROLL);
1154 bolt(m_idx, y, x, GF_FIRE, dam, MS_BOLT_FIRE, TARGET_TYPE);
1155 if (TARGET_TYPE == MONSTER_TO_PLAYER)
1157 update_smart_learn(m_idx, DRS_FIRE);
1158 update_smart_learn(m_idx, DRS_REFLECT);
1164 * @brief RF5_BO_COLD¤Î½èÍý¡£¥¢¥¤¥¹¡¦¥Ü¥ë¥È¡£ /
1165 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
1166 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
1167 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
1168 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
1169 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
1170 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
1172 int spell_RF5_BO_COLD(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
1176 monspell_message(m_idx, t_idx,
1177 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
1178 _("%^s¤¬¥¢¥¤¥¹¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a frost bolt."),
1179 _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥¢¥¤¥¹¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a frost bolt at %s."),
1182 dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BO_COLD), m_idx, DAM_ROLL);
1183 bolt(m_idx, y, x, GF_COLD, dam, MS_BOLT_COLD, TARGET_TYPE);
1184 if (TARGET_TYPE == MONSTER_TO_PLAYER)
1186 update_smart_learn(m_idx, DRS_COLD);
1187 update_smart_learn(m_idx, DRS_REFLECT);
1193 * @brief RF5_BA_LITE¤Î½èÍý¡£¥¹¥¿¡¼¥Ð¡¼¥¹¥È¡£ /
1194 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
1195 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
1196 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
1197 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
1198 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
1199 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
1201 int spell_RF5_BA_LITE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
1205 monspell_message(m_idx, t_idx,
1206 _("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."),
1207 _("%^s¤¬¥¹¥¿¡¼¥Ð¡¼¥¹¥È¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a starburst."),
1208 _("%^s¤¬%s¤ËÂФ·¤Æ¥¹¥¿¡¼¥Ð¡¼¥¹¥È¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a starburst upon %s."),
1211 dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BA_LITE), m_idx, DAM_ROLL);
1212 breath(y, x, m_idx, GF_LITE, dam, 4, FALSE, MS_STARBURST, TARGET_TYPE);
1213 if (TARGET_TYPE == MONSTER_TO_PLAYER)
1214 update_smart_learn(m_idx, DRS_LITE);
1220 * @brief RF5_BO_NETH¤Î½èÍý¡£ÃϹö¤ÎÌð¡£ /
1221 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
1222 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
1223 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
1224 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
1225 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
1226 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
1228 int spell_RF5_BO_NETH(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
1232 monspell_message(m_idx, t_idx,
1233 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
1234 _("%^s¤¬ÃϹö¤ÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a nether bolt."),
1235 _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤ÆÃϹö¤ÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a nether bolt at %s."),
1238 dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BO_NETH), m_idx, DAM_ROLL);
1239 bolt(m_idx, y, x, GF_NETHER, dam, MS_BOLT_NETHER, TARGET_TYPE);
1240 if (TARGET_TYPE == MONSTER_TO_PLAYER)
1242 update_smart_learn(m_idx, DRS_NETH);
1243 update_smart_learn(m_idx, DRS_REFLECT);
1249 * @brief RF5_BO_WATE¤Î½èÍý¡£¥¦¥©¡¼¥¿¡¼¡¦¥Ü¥ë¥È¡£ /
1250 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
1251 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
1252 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
1253 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
1254 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
1255 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
1257 int spell_RF5_BO_WATE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
1260 int rlev = monster_level_idx(m_idx);
1262 monspell_message(m_idx, t_idx,
1263 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
1264 _("%^s¤¬¥¦¥©¡¼¥¿¡¼¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a water bolt."),
1265 _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥¦¥©¡¼¥¿¡¼¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a water bolt at %s."),
1268 dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BO_WATE), m_idx, DAM_ROLL);
1269 bolt(m_idx, y, x, GF_WATER, dam, MS_BOLT_WATER, TARGET_TYPE);
1270 if (TARGET_TYPE == MONSTER_TO_PLAYER)
1272 update_smart_learn(m_idx, DRS_REFLECT);
1278 * @brief RF5_BO_MANA¤Î½èÍý¡£ËâÎϤÎÌð¡£ /
1279 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
1280 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
1281 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
1282 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
1283 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
1284 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
1286 int spell_RF5_BO_MANA(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
1289 int rlev = monster_level_idx(m_idx);
1291 monspell_message(m_idx, t_idx,
1292 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
1293 _("%^s¤¬ËâÎϤÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a mana bolt."),
1294 _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤ÆËâÎϤÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a mana bolt at %s."),
1297 dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BO_MANA), m_idx, DAM_ROLL);
1298 bolt(m_idx, y, x, GF_MANA, dam, MS_BOLT_MANA, TARGET_TYPE);
1299 if (TARGET_TYPE == MONSTER_TO_PLAYER)
1301 update_smart_learn(m_idx, DRS_REFLECT);
1307 * @brief RF5_BO_PLAS¤Î½èÍý¡£¥×¥é¥º¥Þ¡¦¥Ü¥ë¥È¡£ /
1308 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
1309 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
1310 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
1311 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
1312 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
1313 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
1315 int spell_RF5_BO_PLAS(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
1318 int rlev = monster_level_idx(m_idx);
1320 monspell_message(m_idx, t_idx,
1321 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
1322 _("%^s¤¬¥×¥é¥º¥Þ¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a plasma bolt."),
1323 _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥×¥é¥º¥Þ¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a plasma bolt at %s."),
1326 dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BO_PLAS), m_idx, DAM_ROLL);
1327 bolt(m_idx, y, x, GF_PLASMA, dam, MS_BOLT_PLASMA, TARGET_TYPE);
1328 if (TARGET_TYPE == MONSTER_TO_PLAYER)
1330 update_smart_learn(m_idx, DRS_REFLECT);
1336 * @brief RF5_BO_ICEE¤Î½èÍý¡£¶Ë´¨¤ÎÌð¡£ /
1337 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
1338 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
1339 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
1340 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
1341 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
1342 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
1344 int spell_RF5_BO_ICEE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
1347 int rlev = monster_level_idx(m_idx);
1349 monspell_message(m_idx, t_idx,
1350 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
1351 _("%^s¤¬¶Ë´¨¤ÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts an ice bolt."),
1352 _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¶Ë´¨¤ÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts an ice bolt at %s."),
1355 dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BO_ICEE), m_idx, DAM_ROLL);
1356 bolt(m_idx, y, x, GF_ICE, dam, MS_BOLT_ICE, TARGET_TYPE);
1357 if (TARGET_TYPE == MONSTER_TO_PLAYER)
1359 update_smart_learn(m_idx, DRS_COLD);
1360 update_smart_learn(m_idx, DRS_REFLECT);
1366 * @brief RF5_MISSILE¤Î½èÍý¡£¥Þ¥¸¥Ã¥¯¡¦¥ß¥µ¥¤¥ë¡£ /
1367 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
1368 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
1369 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
1370 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
1371 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
1372 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
1374 int spell_RF5_MISSILE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
1377 int rlev = monster_level_idx(m_idx);
1379 monspell_message(m_idx, t_idx,
1380 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
1381 _("%^s¤¬¥Þ¥¸¥Ã¥¯¡¦¥ß¥µ¥¤¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a magic missile."),
1382 _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥Þ¥¸¥Ã¥¯¡¦¥ß¥µ¥¤¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a magic missile at %s."),
1385 dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_MISSILE), m_idx, DAM_ROLL);
1386 bolt(m_idx, y, x, GF_MISSILE, dam, MS_MAGIC_MISSILE, TARGET_TYPE);
1387 if (TARGET_TYPE == MONSTER_TO_PLAYER)
1389 update_smart_learn(m_idx, DRS_REFLECT);
1395 * @brief ¾õÂÖ°Û¾ï¼öʸ¤Î¥á¥Ã¥»¡¼¥¸½èÍý´Ø¿ô¡£ /
1396 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
1397 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
1398 * @param msg1 ÂХץ쥤¥ä¡¼¤Ê¤éÌÕÌÜ»þ¥á¥Ã¥»¡¼¥¸¡£ÂÐ¥â¥ó¥¹¥¿¡¼¤Ê¤éÄ̾ï»þ¥á¥Ã¥»¡¼¥¸¡£
1399 * @param msg2 ÂХץ쥤¥ä¡¼¤Ê¤éÈóÌÕÌÜ»þ¥á¥Ã¥»¡¼¥¸¡£ÂÐ¥â¥ó¥¹¥¿¡¼¤Ê¤éÂÑÀÍ¥á¥Ã¥»¡¼¥¸¡£
1400 * @param msg3 ÂХץ쥤¥ä¡¼¤Ê¤éÂÑÀÍ¥á¥Ã¥»¡¼¥¸¡£ÂÐ¥â¥ó¥¹¥¿¡¼¤Ê¤éÄñ¹³»þ¥á¥Ã¥»¡¼¥¸¡£
1401 * @param msg4 ÂХץ쥤¥ä¡¼¤Ê¤éÄñ¹³»þ¥á¥Ã¥»¡¼¥¸¡£ÂÐ¥â¥ó¥¹¥¿¡¼¤Ê¤éÀ®¸ù»þ¥á¥Ã¥»¡¼¥¸¡£
1402 * @param resist ÂÑÀ¤ÎÍ̵¤òȽÊ̤¹¤ë¥Õ¥é¥°
1403 * @param saving_throw Äñ¹³¤ËÀ®¸ù¤·¤¿¤«È½Ê̤¹¤ë¥Õ¥é¥°
1404 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
1406 void spell_badstatus_message(int m_idx, int t_idx, cptr msg1, cptr msg2, cptr msg3, cptr msg4, bool resist, bool saving_throw, int TARGET_TYPE)
1408 bool see_either = see_monster(m_idx) || see_monster(t_idx);
1409 bool see_t = see_monster(t_idx);
1410 bool known = monster_near_player(m_idx, t_idx);
1411 char m_name[80], t_name[80];
1412 monster_name(m_idx, m_name);
1413 monster_name(t_idx, t_name);
1415 if (TARGET_TYPE == MONSTER_TO_PLAYER)
1419 msg_format(msg1, m_name);
1421 msg_format(msg2, m_name);
1427 else if (saving_throw)
1432 else if (TARGET_TYPE == MONSTER_TO_MONSTER)
1438 msg_format(msg1, m_name, t_name);
1448 if (see_t) msg_format(msg2, t_name);
1450 else if (saving_throw)
1452 if (see_t) msg_format(msg3, t_name);
1456 if (see_t) msg_format(msg4, t_name);
1458 monster_wakeup(t_idx);
1463 * @brief RF5_SCARE¤Î½èÍý¡£¶²ÉÝ¡£ /
1464 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
1465 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
1466 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
1467 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
1468 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
1470 void spell_RF5_SCARE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
1472 monster_type *t_ptr = &m_list[t_idx];
1473 monster_race *tr_ptr = &r_info[t_ptr->r_idx];
1474 int rlev = monster_level_idx(m_idx);
1475 bool resist, saving_throw;
1477 if (TARGET_TYPE == MONSTER_TO_PLAYER)
1479 resist = p_ptr->resist_fear;
1480 saving_throw = (randint0(100 + rlev / 2) < p_ptr->skill_sav);
1481 spell_badstatus_message(m_idx, t_idx,
1482 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¯¤È¡¢¶²¤í¤·¤²¤Ê²»¤¬Ê¹¤³¤¨¤¿¡£", "%^s mumbles, and you hear scary noises."),
1483 _("%^s¤¬¶²¤í¤·¤²¤Ê¸¸³Ð¤òºî¤ê½Ð¤·¤¿¡£", "%^s casts a fearful illusion."),
1484 _("¤·¤«¤·¶²Éݤ˿¯¤µ¤ì¤Ê¤«¤Ã¤¿¡£", "You refuse to be frightened."),
1485 _("¤·¤«¤·¶²Éݤ˿¯¤µ¤ì¤Ê¤«¤Ã¤¿¡£", "You refuse to be frightened."),
1486 resist, saving_throw, TARGET_TYPE);
1488 if (!resist && !saving_throw)
1490 (void)set_afraid(p_ptr->afraid + randint0(4) + 4);
1492 learn_spell(MS_SCARE);
1493 update_smart_learn(m_idx, DRS_FEAR);
1495 else if (TARGET_TYPE == MONSTER_TO_MONSTER)
1497 resist = tr_ptr->flags3 & RF3_NO_FEAR;
1498 saving_throw = (tr_ptr->level > randint1((rlev - 10) < 1 ? 1 : (rlev - 10)) + 10);
1500 spell_badstatus_message(m_idx, t_idx,
1501 _("%^s¤¬¶²¤í¤·¤²¤Ê¸¸³Ð¤òºî¤ê½Ð¤·¤¿¡£", "%^s casts a fearful illusion in front of %s."),
1502 _("%^s¤Ï¶²Éݤò´¶¤¸¤Ê¤¤¡£", "%^s refuses to be frightened."),
1503 _("%^s¤Ï¶²Éݤò´¶¤¸¤Ê¤¤¡£", "%^s refuses to be frightened."),
1504 _("%^s¤Ï¶²Éݤ·¤Æƨ¤²½Ð¤·¤¿¡ª", "%^s flees in terror!"),
1505 resist, saving_throw, TARGET_TYPE);
1507 if (!resist && !saving_throw)
1509 set_monster_monfear(t_idx, MON_MONFEAR(t_ptr) + randint0(4) + 4);
1515 * @brief RF5_BLIND¤Î½èÍý¡£ÌÕÌÜ¡£ /
1516 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
1517 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
1518 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
1519 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
1520 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
1522 void spell_RF5_BLIND(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
1524 monster_type *t_ptr = &m_list[t_idx];
1525 monster_race *tr_ptr = &r_info[t_ptr->r_idx];
1526 int rlev = monster_level_idx(m_idx);
1527 bool resist, saving_throw;
1529 if (TARGET_TYPE == MONSTER_TO_PLAYER)
1531 resist = p_ptr->resist_blind;
1532 saving_throw = (randint0(100 + rlev / 2) < p_ptr->skill_sav);
1533 spell_badstatus_message(m_idx, t_idx,
1534 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
1535 _("%^s¤¬¼öʸ¤ò¾§¤¨¤Æ¤¢¤Ê¤¿¤ÎÌܤò¤¯¤é¤Þ¤·¤¿¡ª", "%^s casts a spell, burning your eyes!"),
1536 _("¤·¤«¤·¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡ª", "You are unaffected!"),
1537 _("¤·¤«¤·¸úÎϤòÄ·¤ÍÊÖ¤·¤¿¡ª", "You resist the effects!"),
1538 resist, saving_throw, TARGET_TYPE);
1540 if (!resist && !saving_throw)
1542 (void)set_blind(12 + randint0(4));
1544 learn_spell(MS_BLIND);
1545 update_smart_learn(m_idx, DRS_BLIND);
1547 else if (TARGET_TYPE == MONSTER_TO_MONSTER)
1551 monster_name(t_idx, t_name);
1553 if (streq(t_name, "it"))
1555 msg1 = _("%s¤Ï¼öʸ¤ò¾§¤¨¤Æ%s¤ÎÌܤò¾Æ¤ÉÕ¤«¤»¤¿¡£", "%^s casts a spell, burning %ss eyes.");
1559 msg1 = _("%s¤Ï¼öʸ¤ò¾§¤¨¤Æ%s¤ÎÌܤò¾Æ¤ÉÕ¤«¤»¤¿¡£", "%^s casts a spell, burning %s's eyes.");
1562 resist = tr_ptr->flags3 & RF3_NO_CONF;
1563 saving_throw = (tr_ptr->level > randint1((rlev - 10) < 1 ? 1 : (rlev - 10)) + 10);
1565 spell_badstatus_message(m_idx, t_idx,
1567 _("%^s¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£", "%^s is unaffected."),
1568 _("%^s¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£", "%^s is unaffected."),
1569 _("%^s¤ÏÌܤ¬¸«¤¨¤Ê¤¯¤Ê¤Ã¤¿¡ª ", "%^s is blinded!"),
1570 resist, saving_throw, TARGET_TYPE);
1572 if (!resist && !saving_throw)
1574 (void)set_monster_confused(t_idx, MON_CONFUSED(t_ptr) + 12 + randint0(4));
1580 * @brief RF5_CONF¤Î½èÍý¡£º®Íð¡£ /
1581 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
1582 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
1583 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
1584 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
1585 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
1587 void spell_RF5_CONF(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
1589 monster_type *t_ptr = &m_list[t_idx];
1590 monster_race *tr_ptr = &r_info[t_ptr->r_idx];
1591 int rlev = monster_level_idx(m_idx);
1592 bool resist, saving_throw;
1594 if (TARGET_TYPE == MONSTER_TO_PLAYER)
1596 resist = p_ptr->resist_conf;
1597 saving_throw = (randint0(100 + rlev / 2) < p_ptr->skill_sav);
1598 spell_badstatus_message(m_idx, t_idx,
1599 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¯¤È¡¢Æ¬¤òǺ¤Þ¤¹²»¤¬¤·¤¿¡£", "%^s mumbles, and you hear puzzling noises."),
1600 _("%^s¤¬Í¶ÏÇŪ¤Ê¸¸³Ð¤òºî¤ê½Ð¤·¤¿¡£", "%^s creates a mesmerising illusion."),
1601 _("¤·¤«¤·¸¸³Ð¤Ë¤Ï¤À¤Þ¤µ¤ì¤Ê¤«¤Ã¤¿¡£", "You disbelieve the feeble spell."),
1602 _("¤·¤«¤·¸¸³Ð¤Ë¤Ï¤À¤Þ¤µ¤ì¤Ê¤«¤Ã¤¿¡£", "You disbelieve the feeble spell."),
1603 resist, saving_throw, TARGET_TYPE);
1605 if (!resist && !saving_throw)
1607 (void)set_confused(p_ptr->confused + randint0(4) + 4);
1609 learn_spell(MS_CONF);
1610 update_smart_learn(m_idx, DRS_CONF);
1612 else if (TARGET_TYPE == MONSTER_TO_MONSTER)
1614 resist = tr_ptr->flags3 & RF3_NO_CONF;
1615 saving_throw = (tr_ptr->level > randint1((rlev - 10) < 1 ? 1 : (rlev - 10)) + 10);
1617 spell_badstatus_message(m_idx, t_idx,
1618 _("%^s¤¬%s¤ÎÁ°¤Ë¸¸ÏÇŪ¤Ê¸¸¤ò¤Ä¤¯¤ê½Ð¤·¤¿¡£", "%^s casts a mesmerizing illusion in front of %s."),
1619 _("%^s¤ÏÏǤ蘆¤ì¤Ê¤«¤Ã¤¿¡£", "%^s disbelieves the feeble spell."),
1620 _("%^s¤ÏÏǤ蘆¤ì¤Ê¤«¤Ã¤¿¡£", "%^s disbelieves the feeble spell."),
1621 _("%^s¤Ïº®Í𤷤¿¤è¤¦¤À¡£", "%^s seems confused."),
1622 resist, saving_throw, TARGET_TYPE);
1624 if (!resist && !saving_throw)
1626 (void)set_monster_confused(t_idx, MON_CONFUSED(t_ptr) + 12 + randint0(4));
1632 * @brief RF5_SLOW¤Î½èÍý¡£¸ºÂ®¡£ /
1633 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
1634 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
1635 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
1636 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
1637 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
1639 void spell_RF5_SLOW(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
1641 monster_type *t_ptr = &m_list[t_idx];
1642 monster_race *tr_ptr = &r_info[t_ptr->r_idx];
1643 int rlev = monster_level_idx(m_idx);
1644 bool resist, saving_throw;
1646 if (TARGET_TYPE == MONSTER_TO_PLAYER)
1648 resist = p_ptr->resist_conf;
1649 saving_throw = (randint0(100 + rlev / 2) < p_ptr->skill_sav);
1650 spell_badstatus_message(m_idx, t_idx,
1651 _("%^s¤¬¤¢¤Ê¤¿¤Î¶ÚÎϤòµÛ¤¤¼è¤í¤¦¤È¤·¤¿¡ª", "%^s drains power from your muscles!"),
1652 _("%^s¤¬¤¢¤Ê¤¿¤Î¶ÚÎϤòµÛ¤¤¼è¤í¤¦¤È¤·¤¿¡ª", "%^s drains power from your muscles!"),
1653 _("¤·¤«¤·¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡ª", "You are unaffected!"),
1654 _("¤·¤«¤·¸úÎϤòÄ·¤ÍÊÖ¤·¤¿¡ª", "You resist the effects!"),
1655 resist, saving_throw, TARGET_TYPE);
1657 if (!resist && !saving_throw)
1659 (void)set_slow(p_ptr->slow + randint0(4) + 4, FALSE);
1661 learn_spell(MS_SLOW);
1662 update_smart_learn(m_idx, DRS_FREE);
1664 else if (TARGET_TYPE == MONSTER_TO_MONSTER)
1668 monster_name(t_idx, t_name);
1670 if (streq(t_name, "it"))
1672 msg1 = _("%s¤¬%s¤Î¶ÚÆù¤«¤éÎϤòµÛ¤¤¤È¤Ã¤¿¡£", "%^s drains power from %ss muscles.");
1676 msg1 = _("%s¤¬%s¤Î¶ÚÆù¤«¤éÎϤòµÛ¤¤¤È¤Ã¤¿¡£", "%^s drains power from %s's muscles.");
1679 resist = tr_ptr->flags1 & RF1_UNIQUE;
1680 saving_throw = (tr_ptr->level > randint1((rlev - 10) < 1 ? 1 : (rlev - 10)) + 10);
1682 spell_badstatus_message(m_idx, t_idx,
1684 _("%^s¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£", "%^s is unaffected."),
1685 _("%^s¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£", "%^s is unaffected."),
1686 _("%s¤ÎÆ°¤¤¬ÃÙ¤¯¤Ê¤Ã¤¿¡£", "%^s starts moving slower."),
1687 resist, saving_throw, TARGET_TYPE);
1689 if (!resist && !saving_throw)
1691 set_monster_slow(t_idx, MON_SLOW(t_ptr) + 50);
1697 * @brief RF5_HOLD¤Î½èÍý¡£Ëãáã¡£ /
1698 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
1699 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
1700 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
1701 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
1702 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
1704 void spell_RF5_HOLD(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
1706 monster_type *t_ptr = &m_list[t_idx];
1707 monster_race *tr_ptr = &r_info[t_ptr->r_idx];
1708 int rlev = monster_level_idx(m_idx);
1709 bool resist, saving_throw;
1711 if (TARGET_TYPE == MONSTER_TO_PLAYER)
1713 resist = p_ptr->free_act;
1714 saving_throw = (randint0(100 + rlev / 2) < p_ptr->skill_sav);
1715 spell_badstatus_message(m_idx, t_idx,
1716 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
1717 _("%^s¤¬¤¢¤Ê¤¿¤ÎÌܤò¤¸¤Ã¤È¸«¤Ä¤á¤¿¡ª", "%^s stares deep into your eyes!"),
1718 _("¤·¤«¤·¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡ª", "You are unaffected!"),
1719 _("¤·¤«¤·¸úÎϤòÄ·¤ÍÊÖ¤·¤¿¡ª", "You resist the effects!"),
1720 resist, saving_throw, TARGET_TYPE);
1722 if (!resist && !saving_throw)
1724 (void)set_paralyzed(p_ptr->paralyzed + randint0(4) + 4);
1726 learn_spell(MS_SLEEP);
1727 update_smart_learn(m_idx, DRS_FREE);
1729 else if (TARGET_TYPE == MONSTER_TO_MONSTER)
1731 resist = (tr_ptr->flags1 & RF1_UNIQUE) || (tr_ptr->flags3 & RF3_NO_STUN);
1732 saving_throw = (tr_ptr->level > randint1((rlev - 10) < 1 ? 1 : (rlev - 10)) + 10);
1734 spell_badstatus_message(m_idx, t_idx,
1735 _("%^s¤Ï%s¤ò¤¸¤Ã¤È¸«¤Ä¤á¤¿¡£", "%^s stares intently at %s."),
1736 _("%^s¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£", "%^s is unaffected."),
1737 _("%^s¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£", "%^s is unaffected."),
1738 _("%^s¤ÏËãá㤷¤¿¡ª", "%^s is paralyzed!"),
1739 resist, saving_throw, TARGET_TYPE);
1741 if (!resist && !saving_throw)
1743 (void)set_monster_stunned(t_idx, MON_STUNNED(t_ptr) + randint1(4) + 4);
1749 * @brief RF6_HASTE¤Î½èÍý¡£²Ã®¡£ /
1750 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
1751 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
1752 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
1754 void spell_RF6_HASTE(int m_idx, int t_idx, int TARGET_TYPE)
1756 bool see_m = see_monster(m_idx);
1757 monster_type *m_ptr = &m_list[m_idx];
1759 monster_name(m_idx, m_name);
1761 monspell_message_base(m_idx, t_idx,
1762 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
1763 _("%^s¤¬¼«Ê¬¤ÎÂΤËÇ°¤òÁ÷¤Ã¤¿¡£", "%^s concentrates on %s body."),
1764 _("%^s¤¬¼«Ê¬¤ÎÂΤËÇ°¤òÁ÷¤Ã¤¿¡£", "%^s concentrates on %s body."),
1765 _("%^s¤¬¼«Ê¬¤ÎÂΤËÇ°¤òÁ÷¤Ã¤¿¡£", "%^s concentrates on %s body."),
1766 p_ptr->blind, TARGET_TYPE);
1768 /* Allow quick speed increases to base+10 */
1769 if (set_monster_fast(m_idx, MON_FAST(m_ptr) + 100))
1771 if (TARGET_TYPE == MONSTER_TO_PLAYER ||
1772 (TARGET_TYPE == MONSTER_TO_MONSTER && see_m))
1773 msg_format(_("%^s¤ÎÆ°¤¤¬Â®¤¯¤Ê¤Ã¤¿¡£", "%^s starts moving faster."), m_name);
1778 * @brief RF6_HAND_DOOM¤Î½èÍý¡£ÇËÌǤμꡣ /
1779 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
1780 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
1781 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
1782 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
1783 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
1784 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
1786 int spell_RF6_HAND_DOOM(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
1790 simple_monspell_message(m_idx, t_idx,
1791 _("%^s¤¬<ÇËÌǤμê>¤òÊü¤Ã¤¿¡ª", "%^s invokes the Hand of Doom!"),
1792 _("%^s¤¬%s¤Ë<ÇËÌǤμê>¤òÊü¤Ã¤¿¡ª", "%^s invokes the Hand of Doom upon %s!"),
1795 if (TARGET_TYPE == MONSTER_TO_PLAYER)
1797 dam = monspell_damage(monspell_num(RF6_SPELL_START, RF6_HAND_DOOM), m_idx, DAM_ROLL);
1798 breath(y, x, m_idx, GF_HAND_DOOM, dam, 0, FALSE, MS_HAND_DOOM, MONSTER_TO_PLAYER);
1800 else if (TARGET_TYPE == MONSTER_TO_MONSTER)
1802 dam = 20; /* Dummy power */
1803 breath(y, x, m_idx, GF_HAND_DOOM, dam, 0, FALSE, MS_HAND_DOOM, MONSTER_TO_MONSTER);
1809 * @brief RF6_HEAL¤Î½èÍý¡£¼£Ìþ¡£ /
1810 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
1811 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
1812 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
1814 void spell_RF6_HEAL(int m_idx, int t_idx, int TARGET_TYPE)
1816 monster_type *m_ptr = &m_list[m_idx];
1817 int rlev = monster_level_idx(m_idx);
1818 bool seen = (!p_ptr->blind && m_ptr->ml);
1820 monster_name(m_idx, m_name);
1825 monspell_message_base(m_idx, t_idx,
1826 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
1827 _("%^s¤Ï¼«Ê¬¤Î½ý¤ËÇ°¤ò½¸Ã椷¤¿¡£", "%^s concentrates on %s wounds."),
1828 _("%^s¤¬¼«Ê¬¤Î½ý¤Ë½¸Ã椷¤¿¡£", "%^s concentrates on %s wounds."),
1829 _("%^s¤Ï¼«Ê¬¤Î½ý¤ËÇ°¤ò½¸Ã椷¤¿¡£", "%^s concentrates on %s wounds."),
1830 p_ptr->blind, TARGET_TYPE);
1833 m_ptr->hp += (rlev * 6);
1836 if (m_ptr->hp >= m_ptr->maxhp)
1839 m_ptr->hp = m_ptr->maxhp;
1842 monspell_message_base(m_idx, t_idx,
1843 _("%^s¤Ï´°Á´¤Ë¼£¤Ã¤¿¤è¤¦¤À¡ª", "%^s sounds completely healed!"),
1844 _("%^s¤Ï´°Á´¤Ë¼£¤Ã¤¿¤è¤¦¤À¡ª", "%^s sounds completely healed!"),
1845 _("%^s¤Ï´°Á´¤Ë¼£¤Ã¤¿¡ª", "%^s looks completely healed!"),
1846 _("%^s¤Ï´°Á´¤Ë¼£¤Ã¤¿¡ª", "%^s looks completely healed!"),
1847 !seen, TARGET_TYPE);
1850 /* Partially healed */
1854 monspell_message_base(m_idx, t_idx,
1855 _("%^s¤ÏÂÎÎϤò²óÉü¤·¤¿¤è¤¦¤À¡£", "%^s sounds healthier."),
1856 _("%^s¤ÏÂÎÎϤò²óÉü¤·¤¿¤è¤¦¤À¡£", "%^s sounds healthier."),
1857 _("%^s¤ÏÂÎÎϤò²óÉü¤·¤¿¤è¤¦¤À¡£", "%^s looks healthier."),
1858 _("%^s¤ÏÂÎÎϤò²óÉü¤·¤¿¤è¤¦¤À¡£", "%^s looks healthier."),
1859 !seen, TARGET_TYPE);
1862 /* Redraw (later) if needed */
1863 if (p_ptr->health_who == m_idx) p_ptr->redraw |= (PR_HEALTH);
1864 if (p_ptr->riding == m_idx) p_ptr->redraw |= (PR_UHEALTH);
1867 if (MON_MONFEAR(m_ptr))
1870 (void)set_monster_monfear(m_idx, 0);
1873 if (see_monster(m_idx))
1874 msg_format(_("%^s¤Ïͦµ¤¤ò¼è¤êÌᤷ¤¿¡£", "%^s recovers %s courage."), m_name);
1879 * @brief RF6_INVULNER¤Î½èÍý¡£ÌµÅ¨¡£ /
1880 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
1881 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
1882 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
1884 void spell_RF6_INVULNER(int m_idx, int t_idx, int TARGET_TYPE)
1886 monster_type *m_ptr = &m_list[m_idx];
1887 bool seen = (!p_ptr->blind && m_ptr->ml);
1890 monspell_message_base(m_idx, t_idx,
1891 _("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."),
1892 _("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."),
1893 _("%s¤Ï̵½ý¤Îµå¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a Globe of Invulnerability."),
1894 _("%s¤Ï̵½ý¤Îµå¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a Globe of Invulnerability."),
1895 !seen, TARGET_TYPE);
1897 if (!MON_INVULNER(m_ptr)) (void)set_monster_invulner(m_idx, randint1(4) + 4, FALSE);
1901 * @brief RF6_BLINK¤Î½èÍý¡£¥·¥ç¡¼¥È¡¦¥Æ¥ì¥Ý¡¼¥È¡£ /
1902 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
1903 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
1905 void spell_RF6_BLINK(int m_idx, int TARGET_TYPE)
1908 monster_name(m_idx, m_name);
1910 if (TARGET_TYPE==MONSTER_TO_PLAYER)
1913 if (teleport_barrier(m_idx))
1915 if(see_monster(m_idx))
1916 msg_format(_("ËâË¡¤Î¥Ð¥ê¥¢¤¬%^s¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¼ÙË⤷¤¿¡£",
1917 "Magic barrier obstructs teleporting of %^s."), m_name);
1921 if(see_monster(m_idx))
1922 msg_format(_("%^s¤¬½Ö»þ¤Ë¾Ã¤¨¤¿¡£", "%^s blinks away."), m_name);
1924 teleport_away(m_idx, 10, 0L);
1926 if (TARGET_TYPE==MONSTER_TO_PLAYER)
1927 p_ptr->update |= (PU_MONSTERS);
1932 * @brief RF6_TPORT¤Î½èÍý¡£¥Æ¥ì¥Ý¡¼¥È¡£ /
1933 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
1934 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
1936 void spell_RF6_TPORT(int m_idx, int TARGET_TYPE)
1939 monster_name(m_idx, m_name);
1941 if (TARGET_TYPE==MONSTER_TO_PLAYER)
1943 if (teleport_barrier(m_idx))
1945 if(see_monster(m_idx))
1946 msg_format(_("ËâË¡¤Î¥Ð¥ê¥¢¤¬%^s¤Î¥Æ¥ì¥Ý¡¼¥È¤ò¼ÙË⤷¤¿¡£",
1947 "Magic barrier obstructs teleporting of %^s."), m_name);
1951 if(see_monster(m_idx))
1952 msg_format(_("%^s¤¬¥Æ¥ì¥Ý¡¼¥È¤·¤¿¡£", "%^s teleports away."), m_name);
1954 teleport_away_followable(m_idx);
1959 * @brief RF6_WORLD¤Î½èÍý¡£»þ¤ò»ß¤á¤ë¡£ /
1960 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
1962 int spell_RF6_WORLD(int m_idx)
1964 monster_type *m_ptr = &m_list[m_idx];
1967 monster_name(m_idx, m_name);
1970 if (m_ptr->r_idx == MON_DIO) who = 1;
1971 else if (m_ptr->r_idx == MON_WONG) who = 3;
1972 if (!process_the_world(randint1(2) + 2, who, TRUE)) return (FALSE);
1977 * @brief ¥Ð¡¼¥Î¡¼¥ë¡¦¥ë¥Ñ¡¼¥È¤ÎRF6_SPECIAL¤Î½èÍý¡£Ê¬Îö¡¦¹çÂΡ£ /
1978 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
1980 int spell_RF6_SPECIAL_BANORLUPART(int m_idx)
1982 monster_type *m_ptr = &m_list[m_idx];
1983 int dummy_hp, dummy_maxhp, k;
1984 int dummy_y = m_ptr->fy;
1985 int dummy_x = m_ptr->fx;
1988 switch(m_ptr->r_idx)
1990 case MON_BANORLUPART:
1991 dummy_hp = (m_ptr->hp + 1) / 2;
1992 dummy_maxhp = m_ptr->maxhp / 2;
1994 if (p_ptr->inside_arena || p_ptr->inside_battle || !summon_possible(m_ptr->fy, m_ptr->fx))
1997 delete_monster_idx(cave[m_ptr->fy][m_ptr->fx].m_idx);
1998 summon_named_creature(0, dummy_y, dummy_x, MON_BANOR, mode);
1999 m_list[hack_m_idx_ii].hp = dummy_hp;
2000 m_list[hack_m_idx_ii].maxhp = dummy_maxhp;
2001 summon_named_creature(0, dummy_y, dummy_x, MON_LUPART, mode);
2002 m_list[hack_m_idx_ii].hp = dummy_hp;
2003 m_list[hack_m_idx_ii].maxhp = dummy_maxhp;
2005 msg_print(_("¡Ø¥Ð¡¼¥Î¡¼¥ë¡¦¥ë¥Ñ¡¼¥È¡Ù¤¬Ê¬Îö¤·¤¿¡ª","Banor=Rupart splits in two person!"));
2013 if (!r_info[MON_BANOR].cur_num || !r_info[MON_LUPART].cur_num)
2016 for (k = 1; k < m_max; k++)
2018 if (m_list[k].r_idx == MON_BANOR || m_list[k].r_idx == MON_LUPART)
2020 dummy_hp += m_list[k].hp;
2021 dummy_maxhp += m_list[k].maxhp;
2022 if (m_list[k].r_idx != m_ptr->r_idx)
2024 dummy_y = m_list[k].fy;
2025 dummy_x = m_list[k].fx;
2027 delete_monster_idx(k);
2030 summon_named_creature(0, dummy_y, dummy_x, MON_BANORLUPART, mode);
2031 m_list[hack_m_idx_ii].hp = dummy_hp;
2032 m_list[hack_m_idx_ii].maxhp = dummy_maxhp;
2034 msg_print(_("¡Ø¥Ð¡¼¥Î¡¼¥ë¡Ù¤È¡Ø¥ë¥Ñ¡¼¥È¡Ù¤¬¹çÂΤ·¤¿¡ª", "Banor and Rupart combine into one!"));
2041 * @brief ¥í¥ì¥ó¥È¤ÎRF6_SPECIAL¤Î½èÍý¡£¼êÜØÃƤξ¤´¡£ /
2042 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
2043 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
2044 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
2045 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
2046 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
2047 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
2049 int spell_RF6_SPECIAL_ROLENTO(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
2052 int num = 1 + randint1(3);
2055 monspell_message(m_idx, t_idx,
2056 _("%^s¤¬²¿¤«ÂçÎ̤ËÅꤲ¤¿¡£", "%^s spreads something."),
2057 _("%^s¤Ï¼êÜØÃƤò¤Ð¤é¤Þ¤¤¤¿¡£", "%^s throws some hand grenades."),
2058 _("%^s¤Ï¼êÜØÃƤò¤Ð¤é¤Þ¤¤¤¿¡£", "%^s throws some hand grenades."),
2061 for (k = 0; k < num; k++)
2063 count += summon_named_creature(m_idx, y, x, MON_SHURYUUDAN, mode);
2066 if (p_ptr->blind && count)
2067 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¤Ð¤é¤Þ¤«¤ì¤ë²»¤¬¤¹¤ë¡£", "You hear many things are scattered nearby."));
2073 * @brief B¥·¥ó¥Ü¥ë¤ÎRF6_SPECIAL¤Î½èÍý¡£ÅꤲÍî¤È¤¹¹¶·â¡£ /
2074 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
2075 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
2076 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
2077 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
2078 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
2079 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
2081 int spell_RF6_SPECIAL_B(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
2084 monster_type *m_ptr = &m_list[m_idx];
2085 monster_type *t_ptr = &m_list[t_idx];
2086 monster_race *tr_ptr = &r_info[t_ptr->r_idx];
2087 bool monster_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
2088 bool monster_to_monster = (TARGET_TYPE == MONSTER_TO_MONSTER);
2089 bool direct = player_bold(y, x);
2091 monster_name(m_idx, m_name);
2094 if (one_in_(3) || !direct)
2096 simple_monspell_message(m_idx, t_idx,
2097 _("%^s¤ÏÆÍÁ³»ë³¦¤«¤é¾Ã¤¨¤¿!", "%^s suddenly go out of your sight!"),
2098 _("%^s¤ÏÆÍÁ³µÞ¾å¾º¤·¤Æ»ë³¦¤«¤é¾Ã¤¨¤¿!", "%^s suddenly go out of your sight!"),
2101 teleport_away(m_idx, 10, TELEPORT_NONMAGICAL);
2102 p_ptr->update |= (PU_MONSTERS);
2107 bool fear; /* dummy */
2109 simple_monspell_message(m_idx, t_idx,
2110 _("%^s¤¬¤¢¤Ê¤¿¤òÄϤó¤Ç¶õÃ椫¤éÅꤲÍî¤È¤·¤¿¡£", "%^s holds you, and drops from the sky."),
2111 _("%^s¤¬%s¤òÄϤó¤Ç¶õÃ椫¤éÅꤲÍî¤È¤·¤¿¡£", "%^s holds %s, and drops from the sky."),
2114 dam = damroll(4, 8);
2116 if (monster_to_player || t_idx == p_ptr->riding)
2117 teleport_player_to(m_ptr->fy, m_ptr->fx, TELEPORT_NONMAGICAL | TELEPORT_PASSIVE);
2119 teleport_monster_to(t_idx, m_ptr->fy, m_ptr->fx, 100, TELEPORT_NONMAGICAL | TELEPORT_PASSIVE);
2123 if ((monster_to_player && p_ptr->levitation) ||
2124 (monster_to_monster && (tr_ptr->flags7 & RF7_CAN_FLY)))
2126 simple_monspell_message(m_idx, t_idx,
2127 _("¤¢¤Ê¤¿¤ÏÀŤ«¤ËÃåÃϤ·¤¿¡£", "You float gently down to the ground."),
2128 _("%^s¤ÏÀŤ«¤ËÃåÃϤ·¤¿¡£", "%^s floats gently down to the ground."),
2133 simple_monspell_message(m_idx, t_idx,
2134 _("¤¢¤Ê¤¿¤ÏÃÏÌ̤ËᤤĤ±¤é¤ì¤¿¡£", "You crashed into the ground."),
2135 _("%^s¤ÏÃÏÌ̤ËᤤĤ±¤é¤ì¤¿¡£", "%^s crashed into the ground."),
2137 dam += damroll(6, 8);
2140 if(monster_to_player ||
2141 (monster_to_monster && p_ptr->riding == t_idx))
2143 /* Mega hack -- this special action deals damage to the player. Therefore the code of "eyeeye" is necessary.
2146 get_damage = take_hit(DAMAGE_NOESCAPE, dam, m_name, -1);
2147 if (p_ptr->tim_eyeeye && get_damage > 0 && !p_ptr->is_dead)
2149 char m_name_self[80];
2151 monster_desc(m_name_self, m_ptr, MD_PRON_VISIBLE | MD_POSSESSIVE | MD_OBJECTIVE);
2153 msg_format(_("¹¶·â¤¬%s¼«¿È¤ò½ý¤Ä¤±¤¿¡ª", "The attack of %s has wounded %s!"), m_name, m_name_self);
2155 project(0, 0, m_ptr->fy, m_ptr->fx, get_damage, GF_MISSILE, PROJECT_KILL, -1);
2156 set_tim_eyeeye(p_ptr->tim_eyeeye - 5, TRUE);
2160 if(monster_to_player && p_ptr->riding)
2161 mon_take_hit_mon(p_ptr->riding, dam, &fear, extract_note_dies(real_r_ptr(&m_list[p_ptr->riding])), m_idx);
2163 if(monster_to_monster)
2164 mon_take_hit_mon(t_idx, dam, &fear, extract_note_dies(real_r_ptr(t_ptr)), m_idx);
2170 * @brief RF6_SPECIAL¤Î½èÍý¡£¥â¥ó¥¹¥¿¡¼¤Î¼ïÎà¤Ë¤è¤Ã¤Æ¼Â½èÍý¤Ë¿¶¤êʬ¤±¤ë¡£ /
2171 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
2172 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
2173 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
2174 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
2175 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
2176 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
2178 int spell_RF6_SPECIAL(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
2180 monster_type *m_ptr = &m_list[m_idx];
2181 monster_race *r_ptr = &r_info[m_ptr->r_idx];
2186 switch (m_ptr->r_idx)
2189 /* Moved to process_monster(), like multiplication */
2192 case MON_BANORLUPART:
2195 return spell_RF6_SPECIAL_BANORLUPART(m_idx);
2198 return spell_RF6_SPECIAL_ROLENTO(y, x, m_idx, t_idx, TARGET_TYPE);
2202 if (r_ptr->d_char == 'B')
2204 return spell_RF6_SPECIAL_B(y, x, m_idx, t_idx, TARGET_TYPE);
2208 /* Something is wrong */
2214 * @brief RF6_TELE_TO¤Î½èÍý¡£¥Æ¥ì¥Ý¡¼¥È¡¦¥Ð¥Ã¥¯¡£ /
2215 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
2216 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
2217 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
2218 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
2220 void spell_RF6_TELE_TO(int m_idx, int t_idx, int TARGET_TYPE)
2222 monster_type *m_ptr = &m_list[m_idx];
2223 monster_type *t_ptr = &m_list[t_idx];
2224 monster_race *tr_ptr = &r_info[t_ptr->r_idx];
2226 simple_monspell_message(m_idx, t_idx,
2227 _("%^s¤¬¤¢¤Ê¤¿¤ò°ú¤Ìᤷ¤¿¡£", "%^s commands you to return."),
2228 _("%^s¤¬%s¤ò°ú¤Ìᤷ¤¿¡£", "%^s commands %s to return."),
2231 if (TARGET_TYPE == MONSTER_TO_PLAYER)
2233 teleport_player_to(m_ptr->fy, m_ptr->fx, TELEPORT_PASSIVE);
2234 learn_spell(MS_TELE_TO);
2236 else if (TARGET_TYPE == MONSTER_TO_MONSTER)
2238 bool resists_tele = FALSE;
2240 monster_name(t_idx, t_name);
2242 if (tr_ptr->flagsr & RFR_RES_TELE)
2244 if ((tr_ptr->flags1 & RF1_UNIQUE) || (tr_ptr->flagsr & RFR_RES_ALL))
2246 if (is_original_ap_and_seen(t_ptr)) tr_ptr->r_flagsr |= RFR_RES_TELE;
2247 if (see_monster(t_idx))
2249 msg_format(_("%^s¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£", "%^s is unaffected!"), t_name);
2251 resists_tele = TRUE;
2253 else if (tr_ptr->level > randint1(100))
2255 if (is_original_ap_and_seen(t_ptr)) tr_ptr->r_flagsr |= RFR_RES_TELE;
2256 if (see_monster(t_idx))
2258 msg_format(_("%^s¤ÏÂÑÀ¤ò»ý¤Ã¤Æ¤¤¤ë¡ª", "%^s resists!"), t_name);
2260 resists_tele = TRUE;
2266 if (t_idx == p_ptr->riding)
2267 teleport_player_to(m_ptr->fy, m_ptr->fx, TELEPORT_PASSIVE);
2269 teleport_monster_to(t_idx, m_ptr->fy, m_ptr->fx, 100, TELEPORT_PASSIVE);
2271 monster_wakeup(t_idx);
2276 * @brief RF6_TELE_AWAY¤Î½èÍý¡£¥Æ¥ì¥Ý¡¼¥È¡¦¥¢¥¦¥§¥¤¡£ /
2277 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
2278 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
2279 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
2280 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
2282 void spell_RF6_TELE_AWAY(int m_idx, int t_idx, int TARGET_TYPE)
2284 monster_type *m_ptr = &m_list[m_idx];
2285 monster_type *t_ptr = &m_list[t_idx];
2286 monster_race *tr_ptr = &r_info[t_ptr->r_idx];
2288 simple_monspell_message(m_idx, t_idx,
2289 _("%^s¤Ë¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤é¤ì¤¿¡£", "%^s teleports you away."),
2290 _("%^s¤Ï%s¤ò¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤¿¡£", "%^s teleports %s away."),
2293 if (TARGET_TYPE == MONSTER_TO_PLAYER)
2295 if ((p_ptr->pseikaku == SEIKAKU_COMBAT) || (inventory[INVEN_BOW].name1 == ART_CRIMSON))
2296 msg_print(_("¤¯¤Ã¤½¡Á", ""));
2298 learn_spell(MS_TELE_AWAY);
2299 teleport_player_away(m_idx, 100);
2301 else if (TARGET_TYPE == MONSTER_TO_MONSTER)
2303 bool resists_tele = FALSE;
2305 monster_name(t_idx, t_name);
2307 if (tr_ptr->flagsr & RFR_RES_TELE)
2309 if ((tr_ptr->flags1 & RF1_UNIQUE) || (tr_ptr->flagsr & RFR_RES_ALL))
2311 if (is_original_ap_and_seen(t_ptr)) tr_ptr->r_flagsr |= RFR_RES_TELE;
2312 if (see_monster(t_idx))
2314 msg_format(_("%^s¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£", "%^s is unaffected!"), t_name);
2316 resists_tele = TRUE;
2318 else if (tr_ptr->level > randint1(100))
2320 if (is_original_ap_and_seen(t_ptr)) tr_ptr->r_flagsr |= RFR_RES_TELE;
2321 if (see_monster(t_idx))
2323 msg_format(_("%^s¤ÏÂÑÀ¤ò»ý¤Ã¤Æ¤¤¤ë¡ª", "%^s resists!"), t_name);
2325 resists_tele = TRUE;
2331 if (t_idx == p_ptr->riding)
2332 teleport_player_away(m_idx, MAX_SIGHT * 2 + 5);
2334 teleport_away(t_idx, MAX_SIGHT * 2 + 5, TELEPORT_PASSIVE);
2336 monster_wakeup(t_idx);
2341 * @brief RF6_TELE_LEVEL¤Î½èÍý¡£¥Æ¥ì¥Ý¡¼¥È¡¦¥ì¥Ù¥ë¡£ /
2342 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
2343 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
2344 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
2345 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
2347 void spell_RF6_TELE_LEVEL(int m_idx, int t_idx, int TARGET_TYPE)
2349 monster_type *t_ptr = &m_list[t_idx];
2350 monster_race *tr_ptr = &r_info[t_ptr->r_idx];
2351 int rlev = monster_level_idx(m_idx);
2352 bool resist, saving_throw;
2354 if (TARGET_TYPE == MONSTER_TO_PLAYER)
2356 resist = p_ptr->resist_nexus;
2357 saving_throw = (randint0(100 + rlev / 2) < p_ptr->skill_sav);
2358 spell_badstatus_message(m_idx, t_idx,
2359 _("%^s¤¬²¿¤«´ñ̯¤Ê¸ÀÍÕ¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles strangely."),
2360 _("%^s¤¬¤¢¤Ê¤¿¤Î¤ò»Ø¤µ¤·¤¿¡£", "%^s gestures at your feet."),
2361 _("¤·¤«¤·¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡ª", "You are unaffected!"),
2362 _("¤·¤«¤·¸úÎϤòÄ·¤ÍÊÖ¤·¤¿¡ª", "You resist the effects!"),
2363 resist, saving_throw, TARGET_TYPE);
2365 if (!resist && !saving_throw)
2369 learn_spell(MS_TELE_LEVEL);
2370 update_smart_learn(m_idx, DRS_NEXUS);
2372 else if (TARGET_TYPE == MONSTER_TO_MONSTER)
2374 resist = tr_ptr->flagsr & (RFR_EFF_RES_NEXU_MASK | RFR_RES_TELE);
2375 saving_throw = (tr_ptr->flags1 & RF1_QUESTOR) ||
2376 (tr_ptr->level > randint1((rlev - 10) < 1 ? 1 : (rlev - 10)) + 10);
2378 spell_badstatus_message(m_idx, t_idx,
2379 _("%^s¤¬%s¤Î¤ò»Ø¤µ¤·¤¿¡£", "%^s gestures at %s's feet."),
2380 _("%^s¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£", "%^s is unaffected!"),
2381 _("%^s¤Ï¸úÎϤòÄ·¤ÍÊÖ¤·¤¿¡ª", "%^s resist the effects!"),
2383 resist, saving_throw, TARGET_TYPE);
2385 if (!resist && !saving_throw)
2387 teleport_level((t_idx == p_ptr->riding) ? 0 : t_idx);
2393 * @brief RF6_PSY_SPEAR¤Î½èÍý¡£¸÷¤Î·õ¡£ /
2394 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
2395 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
2396 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
2397 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
2398 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
2399 * @return ¥À¥á¡¼¥¸Î̤òÊÖ¤¹¡£
2401 int spell_RF6_PSY_SPEAR(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
2404 int rlev = monster_level_idx(m_idx);
2406 monspell_message(m_idx, t_idx,
2407 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
2408 _("%^s¤¬¸÷¤Î·õ¤òÊü¤Ã¤¿¡£", "%^s throw a Psycho-Spear."),
2409 _("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¸÷¤Î·õ¤òÊü¤Ã¤¿¡£", "%^s throw a Psycho-spear at %s."),
2412 dam = monspell_damage(monspell_num(RF6_SPELL_START, RF6_PSY_SPEAR), m_idx, DAM_ROLL);
2413 beam(m_idx, y, x, GF_PSY_SPEAR, dam, MS_PSY_SPEAR, MONSTER_TO_PLAYER);
2418 * @brief RF6_DARKNESS¤Î½èÍý¡£°Å°ÇorÁ®¸÷¡£ /
2419 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
2420 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
2421 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
2422 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
2423 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
2425 void spell_RF6_DARKNESS(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
2427 monster_type *m_ptr = &m_list[m_idx];
2428 monster_type *t_ptr = &m_list[t_idx];
2429 monster_race *r_ptr = &r_info[m_ptr->r_idx];
2430 bool can_use_lite_area = FALSE;
2431 bool monster_to_monster = TARGET_TYPE == MONSTER_TO_MONSTER;
2432 bool monster_to_player = TARGET_TYPE == MONSTER_TO_PLAYER;
2434 monster_name(t_idx, t_name);
2436 if ((p_ptr->pclass == CLASS_NINJA) &&
2437 !(r_ptr->flags3 & (RF3_UNDEAD | RF3_HURT_LITE)) &&
2438 !(r_ptr->flags7 & RF7_DARK_MASK))
2439 can_use_lite_area = TRUE;
2441 if(monster_to_monster && !is_hostile(t_ptr))
2442 can_use_lite_area = FALSE;
2445 if (can_use_lite_area)
2447 monspell_message(m_idx, t_idx,
2448 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
2449 _("%^s¤¬ÊÕ¤ê¤òÌÀ¤ë¤¯¾È¤é¤·¤¿¡£", "%^s cast a spell to light up."),
2450 _("%^s¤¬ÊÕ¤ê¤òÌÀ¤ë¤¯¾È¤é¤·¤¿¡£", "%^s cast a spell to light up."),
2453 if (see_monster(t_idx) && monster_to_monster)
2455 msg_format(_("%^s¤ÏÇò¤¤¸÷¤ËÊñ¤Þ¤ì¤¿¡£", "%^s is surrounded by a white light."), t_name);
2460 monspell_message(m_idx, t_idx,
2461 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
2462 _("%^s¤¬°Å°Ç¤ÎÃæ¤Ç¼ê¤ò¿¶¤Ã¤¿¡£", "%^s gestures in shadow."),
2463 _("%^s¤¬°Å°Ç¤ÎÃæ¤Ç¼ê¤ò¿¶¤Ã¤¿¡£", "%^s gestures in shadow."),
2466 if (see_monster(t_idx) && monster_to_monster)
2468 msg_format(_("%^s¤Ï°Å°Ç¤ËÊñ¤Þ¤ì¤¿¡£", "%^s is surrounded by darkness."), t_name);
2472 if(monster_to_player)
2474 if (can_use_lite_area)
2476 (void)lite_area(0, 3);
2480 learn_spell(MS_DARKNESS);
2481 (void)unlite_area(0, 3);
2484 else if(monster_to_monster)
2486 if (can_use_lite_area)
2488 (void)project(m_idx, 3, y, x, 0, GF_LITE_WEAK, PROJECT_GRID | PROJECT_KILL, -1);
2493 (void)project(m_idx, 3, y, x, 0, GF_DARK_WEAK, PROJECT_GRID | PROJECT_KILL, MS_DARKNESS);
2500 * @brief RF6_TRAPS¤Î½èÍý¡£¥È¥é¥Ã¥×¡£ /
2501 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
2502 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
2503 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
2505 void spell_RF6_TRAPS(int y, int x, int m_idx)
2508 monster_name(m_idx, m_name);
2512 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤Æ¼Ù°¤ËÈù¾Ð¤ó¤À¡£",
2513 "%^s mumbles, and then cackles evilly."), m_name);
2515 msg_format(_("%^s¤¬¼öʸ¤ò¾§¤¨¤Æ¼Ù°¤ËÈù¾Ð¤ó¤À¡£",
2516 "%^s casts a spell and cackles evilly."), m_name);
2518 learn_spell(MS_MAKE_TRAP);
2519 (void)trap_creation(y, x);
2523 * @brief RF6_FORGET¤Î½èÍý¡£µ²±¾Ãµî¡£ /
2524 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
2526 void spell_RF6_FORGET(int m_idx)
2528 int rlev = monster_level_idx(m_idx);
2530 monster_name(m_idx, m_name);
2534 msg_format(_("%^s¤¬¤¢¤Ê¤¿¤Îµ²±¤ò¾Ãµî¤·¤è¤¦¤È¤·¤Æ¤¤¤ë¡£",
2535 "%^s tries to blank your mind."), m_name);
2537 if (randint0(100 + rlev / 2) < p_ptr->skill_sav)
2539 msg_print(_("¤·¤«¤·¸úÎϤòÄ·¤ÍÊÖ¤·¤¿¡ª", "You resist the effects!"));
2541 else if (lose_all_info())
2543 msg_print(_("µ²±¤¬Çö¤ì¤Æ¤·¤Þ¤Ã¤¿¡£", "Your memories fade away."));
2545 learn_spell(MS_FORGET);
2550 * @brief RF6_RAISE_DEAD¤Î½èÍý¡£»à¼ÔÉü³è¡£ /
2551 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
2552 * @param t_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID¡£¥×¥ì¥¤¥ä¡¼¤Î¾ì¹ç¤Ïdummy¤Ç0¤È¤¹¤ë¡£
2553 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
2555 void spell_RF6_RAISE_DEAD(int m_idx, int t_idx, int TARGET_TYPE)
2557 monster_type *m_ptr = &m_list[m_idx];
2559 monspell_message(m_idx, t_idx,
2560 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
2561 _("%^s¤¬»à¼ÔÉü³è¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a spell to revive corpses."),
2562 _("%^s¤¬»à¼ÔÉü³è¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a spell to revive corpses."),
2565 animate_dead(m_idx, m_ptr->fy, m_ptr->fx);
2570 * @brief Â뾤´¤Î½èÍý¡£ /
2571 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
2572 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
2573 * @param rlev ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼¤Î¥ì¥Ù¥ë
2574 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
2575 * @return ¾¤´¤·¤¿¥â¥ó¥¹¥¿¡¼¤Î¿ô¤òÊÖ¤¹¡£
2577 int summon_EAGLE(int y, int x, int rlev, int m_idx)
2580 int num = 4 + randint1(3);
2581 for (k = 0; k < num; k++)
2583 count += summon_specific(m_idx, y, x, rlev, SUMMON_EAGLES, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
2589 * @brief ¥¤¥ó¥¿¡¼¥Í¥Ã¥È¡¦¥¨¥¯¥¹¥×¥í¡¼¥À¡¼¾¤´¤Î½èÍý¡£ /
2590 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
2591 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
2592 * @param rlev ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼¤Î¥ì¥Ù¥ë
2593 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
2594 * @return ¾¤´¤·¤¿¥â¥ó¥¹¥¿¡¼¤Î¿ô¤òÊÖ¤¹¡£
2596 int summon_IE(int y, int x, int rlev, int m_idx)
2600 int num = 2 + randint1(3);
2601 for (k = 0; k < num; k++)
2603 count += summon_named_creature(m_idx, y, x, MON_IE, mode);
2609 * @brief ¥À¥ó¥¸¥ç¥ó¡¦¥¬¡¼¥Ç¥£¥¢¥ó¾¤´¤Î½èÍý¡£ /
2610 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
2611 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
2612 * @param rlev ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼¤Î¥ì¥Ù¥ë
2613 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
2614 * @param m_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID
2615 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
2616 * @return ¾¤´¤·¤¿¥â¥ó¥¹¥¿¡¼¤Î¿ô¤òÊÖ¤¹¡£
2618 int summon_Guardian(int y, int x, int rlev, int m_idx, int t_idx, int TARGET_TYPE)
2621 int num = 2 + randint1(3);
2622 bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
2623 bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
2625 if (r_info[MON_JORMUNGAND].cur_num < r_info[MON_JORMUNGAND].max_num && one_in_(6))
2627 simple_monspell_message(m_idx, t_idx,
2628 _("ÃÏÌ̤«¤é¿å¤¬¿á¤½Ð¤·¤¿¡ª", "Water blew off from the ground!"),
2629 _("ÃÏÌ̤«¤é¿å¤¬¿á¤½Ð¤·¤¿¡ª", "Water blew off from the ground!"),
2633 fire_ball_hide(GF_WATER_FLOW, 0, 3, 8);
2635 project(t_idx, 8, y, x, 3, GF_WATER_FLOW, PROJECT_GRID | PROJECT_HIDE, -1);
2638 for (k = 0; k < num; k++)
2640 count += summon_specific(m_idx, y, x, rlev, SUMMON_GUARDIANS, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
2646 * @brief ¥í¥Ã¥¯¤Î¥¯¥í¡¼¥ó¾¤´¤Î½èÍý¡£ /
2647 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
2648 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
2649 * @param rlev ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼¤Î¥ì¥Ù¥ë
2650 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
2651 * @return ¾¤´¤·¤¿¥â¥ó¥¹¥¿¡¼¤Î¿ô¤òÊÖ¤¹¡£
2653 int summon_LOCK_CLONE(int y, int x, int rlev, int m_idx)
2657 int num = randint1(3);
2658 for (k = 0; k < num; k++)
2660 count += summon_named_creature(m_idx, y, x, MON_LOCKE_CLONE, mode);
2666 * @brief ¥·¥é¥ß¾¤´¤Î½èÍý¡£ /
2667 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
2668 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
2669 * @param rlev ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼¤Î¥ì¥Ù¥ë
2670 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
2671 * @return ¾¤´¤·¤¿¥â¥ó¥¹¥¿¡¼¤Î¿ô¤òÊÖ¤¹¡£
2673 int summon_LOUSE(int y, int x, int rlev, int m_idx)
2676 int num = 2 + randint1(3);
2677 for (k = 0; k < num; k++)
2679 count += summon_specific(m_idx, y, x, rlev, SUMMON_LOUSE, PM_ALLOW_GROUP);
2685 * @brief µß±ç¾¤´¤ÎÄ̾ï½èÍý¡£Æ±¥·¥ó¥Ü¥ë¤Î¥â¥ó¥¹¥¿¡¼¤ò¾¤´¤¹¤ë¡£ /
2686 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
2687 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
2688 * @param rlev ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼¤Î¥ì¥Ù¥ë
2689 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
2690 * @return ¾¤´¤·¤¿¥â¥ó¥¹¥¿¡¼¤Î¿ô¤òÊÖ¤¹¡£
2692 int summon_Kin(int y, int x, int rlev, int m_idx)
2695 monster_type *m_ptr = &m_list[m_idx];
2696 monster_race *r_ptr = &r_info[m_ptr->r_idx];
2697 summon_kin_type = r_ptr->d_char; /* Big hack */
2699 for (k = 0; k < 4; k++)
2701 count += summon_specific(m_idx, y, x, rlev, SUMMON_KIN, PM_ALLOW_GROUP);
2707 * @brief RF6_S_KIN¤Î½èÍý¡£µß±ç¾¤´¡£»ÈÍѤ¹¤ë¥â¥ó¥¹¥¿¡¼¤Î¼ïÎà¤Ë¤è¤ê¡¢¼Â½èÍý¤Ëʬ´ô¤µ¤»¤ë¡£ /
2708 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
2709 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
2710 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
2711 * @param m_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID
2712 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
2713 * @return ¾¤´¤·¤¿¥â¥ó¥¹¥¿¡¼¤Î¿ô¤òÊÖ¤¹¡£
2715 void spell_RF6_S_KIN(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
2717 bool known = monster_near_player(m_idx, t_idx);
2718 bool see_either = see_monster(m_idx) || see_monster(t_idx);
2719 bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
2720 bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
2721 monster_type *m_ptr = &m_list[m_idx];
2722 monster_race *r_ptr = &r_info[m_ptr->r_idx];
2723 int rlev = monster_level_idx(m_idx);
2726 char m_name[80], t_name[80], m_poss[80];
2727 monster_name(m_idx, m_name);
2728 monster_name(t_idx, t_name);
2729 monster_desc(m_poss, m_ptr, MD_PRON_VISIBLE | MD_POSSESSIVE);
2732 if (m_ptr->r_idx == MON_SERPENT || m_ptr->r_idx == MON_ZOMBI_SERPENT)
2734 monspell_message(m_idx, t_idx,
2735 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
2736 _("%^s¤¬¥À¥ó¥¸¥ç¥ó¤Î¼ç¤ò¾¤´¤·¤¿¡£", "%^s magically summons guardians of dungeons."),
2737 _("%^s¤¬¥À¥ó¥¸¥ç¥ó¤Î¼ç¤ò¾¤´¤·¤¿¡£", "%^s magically summons guardians of dungeons."),
2742 if (mon_to_player || (mon_to_mon && known && see_either))
2748 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
2752 if (mon_to_player || (mon_to_mon && known && see_either))
2754 _(msg_format("%s¤¬ËâË¡¤Ç%s¤ò¾¤´¤·¤¿¡£", m_name, ((r_ptr->flags1 & RF1_UNIQUE) ? "¼ê²¼" : "Ãç´Ö")),
2755 msg_format("%^s magically summons %s %s.", m_name, m_poss, ((r_ptr->flags1 & RF1_UNIQUE) ? "minions" : "kin")));
2759 if (mon_to_mon && known && !see_either)
2763 switch (m_ptr->r_idx)
2768 count += summon_EAGLE(y, x, rlev, m_idx);
2772 count += summon_IE(y, x, rlev, m_idx);
2776 case MON_ZOMBI_SERPENT:
2777 count += summon_Guardian(y, x, rlev, m_idx, t_idx, TARGET_TYPE);
2781 count += summon_LOCK_CLONE(y, x, rlev, m_idx);
2785 count += summon_LOUSE(y, x, rlev, m_idx);
2789 count += summon_Kin(y, x, rlev, m_idx);
2793 if (p_ptr->blind && count && mon_to_player)
2794 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear many things appear nearby."));
2796 if (known && !see_monster(t_idx) && count && mon_to_mon)
2801 * @brief RF6_S_CYBER¤Î½èÍý¡£¥µ¥¤¥Ð¡¼¡¦¥Ç¡¼¥â¥ó¾¤´¡£ /
2802 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
2803 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
2804 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
2805 * @param m_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID
2806 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
2807 * @return ¾¤´¤·¤¿¥â¥ó¥¹¥¿¡¼¤Î¿ô¤òÊÖ¤¹¡£
2809 void spell_RF6_S_CYBER(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
2812 monster_type *m_ptr = &m_list[m_idx];
2813 int rlev = monster_level_idx(m_idx);
2814 bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
2815 bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
2817 monspell_message(m_idx, t_idx,
2818 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
2819 _("%^s¤¬¥µ¥¤¥Ð¡¼¥Ç¡¼¥â¥ó¤ò¾¤´¤·¤¿¡ª", "%^s magically summons Cyberdemons!"),
2820 _("%^s¤¬¥µ¥¤¥Ð¡¼¥Ç¡¼¥â¥ó¤ò¾¤´¤·¤¿¡ª", "%^s magically summons Cyberdemons!"),
2823 if (is_friendly(m_ptr) && mon_to_mon)
2825 count += summon_specific(m_idx, y, x, rlev, SUMMON_CYBER, (PM_ALLOW_GROUP));
2829 count += summon_cyber(m_idx, y, x);
2832 if (p_ptr->blind && count && mon_to_player)
2833 msg_print(_("½Å¸ü¤Ê²»¤¬¶á¤¯¤Çʹ¤³¤¨¤ë¡£", "You hear heavy steps nearby."));
2835 if (monster_near_player(m_idx, t_idx) && !see_monster(t_idx) && count && mon_to_mon)
2840 * @brief RF6_S_MONSTER¤Î½èÍý¡£¥â¥ó¥¹¥¿¡¼°ìÂξ¤´¡£ /
2841 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
2842 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
2843 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
2844 * @param m_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID
2845 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
2846 * @return ¾¤´¤·¤¿¥â¥ó¥¹¥¿¡¼¤Î¿ô¤òÊÖ¤¹¡£
2848 void spell_RF6_S_MONSTER(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
2851 monster_type *m_ptr = &m_list[m_idx];
2852 int rlev = monster_level_idx(m_idx);
2853 bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
2854 bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
2856 monspell_message(m_idx, t_idx,
2857 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
2858 _("%^s¤¬ËâË¡¤ÇÃç´Ö¤ò¾¤´¤·¤¿¡ª", "%^s magically summons help!"),
2859 _("%^s¤¬ËâË¡¤ÇÃç´Ö¤ò¾¤´¤·¤¿¡ª", "%^s magically summons help!"),
2862 for (k = 0; k < 1; k++)
2865 count += summon_specific(m_idx, y, x, rlev, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
2868 count += summon_specific(m_idx, y, x, rlev, 0, (monster_u_mode(m_idx)));
2871 if (p_ptr->blind && count && mon_to_player)
2872 msg_print(_("²¿¤«¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear something appear nearby."));
2874 if (monster_near_player(m_idx, t_idx) && !see_monster(t_idx) && count && mon_to_mon)
2879 * @brief RF6_S_MONSTERS¤Î½èÍý¡£¥â¥ó¥¹¥¿¡¼Ê£¿ô¾¤´¡£ /
2880 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
2881 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
2882 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
2883 * @param m_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID
2884 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
2885 * @return ¾¤´¤·¤¿¥â¥ó¥¹¥¿¡¼¤Î¿ô¤òÊÖ¤¹¡£
2887 void spell_RF6_S_MONSTERS(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
2890 monster_type *m_ptr = &m_list[m_idx];
2891 int rlev = monster_level_idx(m_idx);
2892 bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
2893 bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
2895 monspell_message(m_idx, t_idx,
2896 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
2897 _("%^s¤¬ËâË¡¤Ç¥â¥ó¥¹¥¿¡¼¤ò¾¤´¤·¤¿¡ª", "%^s magically summons monsters!"),
2898 _("%^s¤¬ËâË¡¤Ç¥â¥ó¥¹¥¿¡¼¤ò¾¤´¤·¤¿¡ª", "%^s magically summons monsters!"),
2901 for (k = 0; k < S_NUM_6; k++)
2904 count += summon_specific(m_idx, y, x, rlev, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
2907 count += summon_specific(m_idx, y, x, rlev, 0, (PM_ALLOW_GROUP | monster_u_mode(m_idx)));
2910 if (p_ptr->blind && count && mon_to_player)
2911 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear many things appear nearby."));
2913 if (monster_near_player(m_idx, t_idx) && !see_monster(t_idx) && count && mon_to_mon)
2918 * @brief RF6_S_ANT¤Î½èÍý¡£¥¢¥ê¾¤´¡£ /
2919 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
2920 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
2921 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
2922 * @param m_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID
2923 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
2924 * @return ¾¤´¤·¤¿¥â¥ó¥¹¥¿¡¼¤Î¿ô¤òÊÖ¤¹¡£
2926 void spell_RF6_S_ANT(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
2929 monster_type *m_ptr = &m_list[m_idx];
2930 int rlev = monster_level_idx(m_idx);
2931 bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
2932 bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
2934 monspell_message(m_idx, t_idx,
2935 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
2936 _("%^s¤¬ËâË¡¤Ç¥¢¥ê¤ò¾¤´¤·¤¿¡£", "%^s magically summons ants."),
2937 _("%^s¤¬ËâË¡¤Ç¥¢¥ê¤ò¾¤´¤·¤¿¡£", "%^s magically summons ants."),
2940 for (k = 0; k < S_NUM_6; k++)
2942 count += summon_specific(m_idx, y, x, rlev, SUMMON_ANT, PM_ALLOW_GROUP);
2945 if (p_ptr->blind && count && mon_to_player)
2946 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear many things appear nearby."));
2948 if (monster_near_player(m_idx, t_idx) && !see_monster(t_idx) && count && mon_to_mon)
2953 * @brief RF6_S_SPIDER¤Î½èÍý¡£¥¯¥â¾¤´¡£ /
2954 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
2955 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
2956 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
2957 * @param m_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID
2958 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
2959 * @return ¾¤´¤·¤¿¥â¥ó¥¹¥¿¡¼¤Î¿ô¤òÊÖ¤¹¡£
2961 void spell_RF6_S_SPIDER(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
2964 monster_type *m_ptr = &m_list[m_idx];
2965 int rlev = monster_level_idx(m_idx);
2966 bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
2967 bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
2969 monspell_message(m_idx, t_idx,
2970 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
2971 _("%^s¤¬ËâË¡¤Ç¥¯¥â¤ò¾¤´¤·¤¿¡£", "%^s magically summons spiders."),
2972 _("%^s¤¬ËâË¡¤Ç¥¯¥â¤ò¾¤´¤·¤¿¡£", "%^s magically summons spiders."),
2975 for (k = 0; k < S_NUM_6; k++)
2977 count += summon_specific(m_idx, y, x, rlev, SUMMON_SPIDER, PM_ALLOW_GROUP);
2980 if (p_ptr->blind && count && mon_to_player)
2981 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear many things appear nearby."));
2983 if (monster_near_player(m_idx, t_idx) && !see_monster(t_idx) && count && mon_to_mon)
2988 * @brief RF6_S_HOUND¤Î½èÍý¡£¥Ï¥¦¥ó¥É¾¤´¡£ /
2989 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
2990 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
2991 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
2992 * @param m_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID
2993 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
2994 * @return ¾¤´¤·¤¿¥â¥ó¥¹¥¿¡¼¤Î¿ô¤òÊÖ¤¹¡£
2996 void spell_RF6_S_HOUND(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
2999 monster_type *m_ptr = &m_list[m_idx];
3000 int rlev = monster_level_idx(m_idx);
3001 bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
3002 bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
3004 monspell_message(m_idx, t_idx,
3005 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
3006 _("%^s¤¬ËâË¡¤Ç¥Ï¥¦¥ó¥É¤ò¾¤´¤·¤¿¡£", "%^s magically summons hounds."),
3007 _("%^s¤¬ËâË¡¤Ç¥Ï¥¦¥ó¥É¤ò¾¤´¤·¤¿¡£", "%^s magically summons hounds."),
3010 for (k = 0; k < S_NUM_4; k++)
3012 count += summon_specific(m_idx, y, x, rlev, SUMMON_HOUND, PM_ALLOW_GROUP);
3015 if (p_ptr->blind && count && mon_to_player)
3016 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear many things appear nearby."));
3018 if (monster_near_player(m_idx, t_idx) && !see_monster(t_idx) && count && mon_to_mon)
3023 * @brief RF6_S_HYDRA¤Î½èÍý¡£¥Ò¥É¥é¾¤´¡£ /
3024 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
3025 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
3026 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
3027 * @param m_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID
3028 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
3029 * @return ¾¤´¤·¤¿¥â¥ó¥¹¥¿¡¼¤Î¿ô¤òÊÖ¤¹¡£
3031 void spell_RF6_S_HYDRA(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
3034 monster_type *m_ptr = &m_list[m_idx];
3035 int rlev = monster_level_idx(m_idx);
3036 bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
3037 bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
3039 monspell_message(m_idx, t_idx,
3040 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
3041 _("%^s¤¬ËâË¡¤Ç¥Ò¥É¥é¤ò¾¤´¤·¤¿¡£", "%^s magically summons hydras."),
3042 _("%^s¤¬ËâË¡¤Ç¥Ò¥É¥é¤ò¾¤´¤·¤¿¡£", "%^s magically summons hydras."),
3045 for (k = 0; k < S_NUM_4; k++)
3047 count += summon_specific(m_idx, y, x, rlev, SUMMON_HYDRA, PM_ALLOW_GROUP);
3050 if (p_ptr->blind && count && mon_to_player)
3051 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear many things appear nearby."));
3053 if (monster_near_player(m_idx, t_idx) && !see_monster(t_idx) && count && mon_to_mon)
3058 * @brief RF6_S_ANGEL¤Î½èÍý¡£Å·»È°ìÂξ¤´¡£ /
3059 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
3060 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
3061 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
3062 * @param m_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID
3063 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
3064 * @return ¾¤´¤·¤¿¥â¥ó¥¹¥¿¡¼¤Î¿ô¤òÊÖ¤¹¡£
3066 void spell_RF6_S_ANGEL(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
3070 monster_type *m_ptr = &m_list[m_idx];
3071 monster_race *r_ptr = &r_info[m_ptr->r_idx];
3072 int rlev = monster_level_idx(m_idx);
3073 bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
3074 bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
3076 monspell_message(m_idx, t_idx,
3077 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
3078 _("%^s¤¬ËâË¡¤ÇÅ·»È¤ò¾¤´¤·¤¿¡ª", "%^s magically summons an angel!"),
3079 _("%^s¤¬ËâË¡¤ÇÅ·»È¤ò¾¤´¤·¤¿¡ª", "%^s magically summons an angel!"),
3082 if ((r_ptr->flags1 & RF1_UNIQUE) && !easy_band)
3084 num += r_ptr->level / 40;
3087 for (k = 0; k < num; k++)
3089 count += summon_specific(m_idx, y, x, rlev, SUMMON_ANGEL, PM_ALLOW_GROUP);
3094 if (p_ptr->blind && count)
3095 msg_print(_("²¿¤«¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear something appear nearby."));
3100 msg_print(_("¿¤¯¤Î¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear many things appear nearby."));
3103 if (monster_near_player(m_idx, t_idx) && !see_monster(t_idx) && count && mon_to_mon)
3108 * @brief RF6_S_DEMON¤Î½èÍý¡£¥Ç¡¼¥â¥ó°ìÂξ¤´¡£ /
3109 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
3110 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
3111 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
3112 * @param m_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID
3113 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
3114 * @return ¾¤´¤·¤¿¥â¥ó¥¹¥¿¡¼¤Î¿ô¤òÊÖ¤¹¡£
3116 void spell_RF6_S_DEMON(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
3119 monster_type *m_ptr = &m_list[m_idx];
3120 int rlev = monster_level_idx(m_idx);
3121 bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
3122 bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
3124 monspell_message(m_idx, t_idx,
3125 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
3126 _("%^s¤ÏËâË¡¤Çº®Æ٤εÜÄ¤é°Ëâ¤ò¾¤´¤·¤¿¡ª", "%^s magically summons a demon from the Courts of Chaos!"),
3127 _("%^s¤ÏËâË¡¤Çº®Æ٤εÜÄ¤é°Ëâ¤ò¾¤´¤·¤¿¡ª", "%^s magically summons a demon from the Courts of Chaos!"),
3130 for (k = 0; k < 1; k++)
3132 count += summon_specific(m_idx, y, x, rlev, SUMMON_DEMON, PM_ALLOW_GROUP);
3135 if (p_ptr->blind && count)
3136 msg_print(_("²¿¤«¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear something appear nearby."));
3138 if (monster_near_player(m_idx, t_idx) && !see_monster(t_idx) && count && mon_to_mon)
3143 * @brief RF6_S_UNDEAD¤Î½èÍý¡£¥¢¥ó¥Ç¥Ã¥É°ìÂξ¤´¡£ /
3144 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
3145 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
3146 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
3147 * @param m_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID
3148 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
3149 * @return ¾¤´¤·¤¿¥â¥ó¥¹¥¿¡¼¤Î¿ô¤òÊÖ¤¹¡£
3151 void spell_RF6_S_UNDEAD(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
3154 monster_type *m_ptr = &m_list[m_idx];
3155 int rlev = monster_level_idx(m_idx);
3156 bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
3157 bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
3159 monspell_message(m_idx, t_idx,
3160 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
3161 _("%^s¤¬ËâË¡¤Ç¥¢¥ó¥Ç¥Ã¥É¤Î¶¯Å¨¤ò¾¤´¤·¤¿¡ª", "%^s magically summons an undead adversary!"),
3162 _("%s¤¬ËâË¡¤Ç¥¢¥ó¥Ç¥Ã¥É¤ò¾¤´¤·¤¿¡£", "%^s magically summons undead."),
3165 for (k = 0; k < 1; k++)
3167 count += summon_specific(m_idx, y, x, rlev, SUMMON_UNDEAD, PM_ALLOW_GROUP);
3170 if (p_ptr->blind && count)
3171 msg_print(_("²¿¤«¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear something appear nearby."));
3173 if (monster_near_player(m_idx, t_idx) && !see_monster(t_idx) && count && mon_to_mon)
3178 * @brief RF6_S_DRAGON¤Î½èÍý¡£¥É¥é¥´¥ó°ìÂξ¤´¡£ /
3179 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
3180 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
3181 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
3182 * @param m_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID
3183 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
3184 * @return ¾¤´¤·¤¿¥â¥ó¥¹¥¿¡¼¤Î¿ô¤òÊÖ¤¹¡£
3186 void spell_RF6_S_DRAGON(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
3189 monster_type *m_ptr = &m_list[m_idx];
3190 int rlev = monster_level_idx(m_idx);
3191 bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
3192 bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
3194 monspell_message(m_idx, t_idx,
3195 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
3196 _("%^s¤¬ËâË¡¤Ç¥É¥é¥´¥ó¤ò¾¤´¤·¤¿¡ª", "%^s magically summons a dragon!"),
3197 _("%^s¤¬ËâË¡¤Ç¥É¥é¥´¥ó¤ò¾¤´¤·¤¿¡ª", "%^s magically summons a dragon!"),
3200 for (k = 0; k < 1; k++)
3202 count += summon_specific(m_idx, y, x, rlev, SUMMON_DRAGON, PM_ALLOW_GROUP);
3205 if (p_ptr->blind && count)
3206 msg_print(_("²¿¤«¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬¤¹¤ë¡£", "You hear something appear nearby."));
3208 if (monster_near_player(m_idx, t_idx) && !see_monster(t_idx) && count && mon_to_mon)
3213 * @brief ¥Ê¥º¥°¥ëÀïÂ⾤´¤Î½èÍý¡£ /
3214 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
3215 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
3216 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
3217 * @return ¾¤´¤·¤¿¥â¥ó¥¹¥¿¡¼¤Î¿ô¤òÊÖ¤¹¡£
3219 int summon_NAZGUL(int y, int x, int m_idx)
3226 monster_name(m_idx, m_name);
3229 msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
3231 msg_format(_("%^s¤¬ËâË¡¤ÇÍ©µ´ÀïÂâ¤ò¾¤´¤·¤¿¡ª", "%^s magically summons rangers of Nazgul!"), m_name);
3235 for (k = 0; k < 30; k++)
3237 if (!summon_possible(cy, cx) || !cave_empty_bold(cy, cx))
3240 for (j = 100; j > 0; j--)
3242 scatter(&cy, &cx, y, x, 2, 0);
3243 if (cave_empty_bold(cy, cx)) break;
3247 if (!cave_empty_bold(cy, cx)) continue;
3249 if (summon_named_creature(m_idx, cy, cx, MON_NAZGUL, mode))
3255 msg_format(_("¡ÖÍ©µ´ÀïÂâ%d¹æ¡¢¥Ê¥º¥°¥ë¡¦¥Ö¥é¥Ã¥¯¡ª¡×",
3256 "A Nazgul says 'Nazgul-Rangers Number %d, Nazgul-Black!'"), count);
3258 msg_format(_("¡ÖƱ¤¸¤¯%d¹æ¡¢¥Ê¥º¥°¥ë¡¦¥Ö¥é¥Ã¥¯¡ª¡×",
3259 "Another one says 'Number %d, Nazgul-Black!'"), count);
3264 msg_format(_("¡Ö%d¿Í¤½¤í¤Ã¤Æ¡¢¥ê¥ó¥°¥ì¥ó¥¸¥ã¡¼¡ª¡×",
3265 "They say 'The %d meets! We are the Ring-Ranger!'."), count);
3271 * @brief RF6_S_HI_UNDEAD¤Î½èÍý¡£¶¯ÎϤʥ¢¥ó¥Ç¥Ã¥É¾¤´¡£ /
3272 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
3273 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
3274 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
3275 * @param m_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID
3276 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
3277 * @return ¾¤´¤·¤¿¥â¥ó¥¹¥¿¡¼¤Î¿ô¤òÊÖ¤¹¡£
3279 void spell_RF6_S_HI_UNDEAD(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
3281 bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
3282 bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
3283 monster_type *m_ptr = &m_list[m_idx];
3284 monster_race *r_ptr = &r_info[m_ptr->r_idx];
3285 int rlev = monster_level_idx(m_idx);
3288 monster_name(m_idx, m_name);
3292 if (((m_ptr->r_idx == MON_MORGOTH) || (m_ptr->r_idx == MON_SAURON) || (m_ptr->r_idx == MON_ANGMAR)) &&
3293 ((r_info[MON_NAZGUL].cur_num + 2) < r_info[MON_NAZGUL].max_num) &&
3296 count += summon_NAZGUL(y, x, m_idx);
3300 monspell_message(m_idx, t_idx,
3301 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
3302 _("%^s¤¬ËâË¡¤Ç¶¯ÎϤʥ¢¥ó¥Ç¥Ã¥É¤ò¾¤´¤·¤¿¡ª", "%^s magically summons greater undead!"),
3303 _("%s¤¬ËâË¡¤Ç¥¢¥ó¥Ç¥Ã¥É¤ò¾¤´¤·¤¿¡£", "%^s magically summons undead."),
3306 for (k = 0; k < S_NUM_6; k++)
3309 count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_UNDEAD, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
3312 count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_UNDEAD, (PM_ALLOW_GROUP | monster_u_mode(m_idx)));
3315 if (p_ptr->blind && count && mon_to_player)
3317 msg_print(_("´Ö¶á¤Ç²¿¤«Â¿¤¯¤Î¤â¤Î¤¬Ç礤²ó¤ë²»¤¬Ê¹¤³¤¨¤ë¡£", "You hear many creepy things appear nearby."));
3320 if (monster_near_player(m_idx, t_idx) && !see_monster(t_idx) && count && mon_to_mon)
3325 * @brief RF6_S_HI_DRAGON¤Î½èÍý¡£¸ÅÂå¥É¥é¥´¥ó¾¤´¡£ /
3326 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
3327 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
3328 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
3329 * @param m_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID
3330 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
3331 * @return ¾¤´¤·¤¿¥â¥ó¥¹¥¿¡¼¤Î¿ô¤òÊÖ¤¹¡£
3333 void spell_RF6_S_HI_DRAGON(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
3336 monster_type *m_ptr = &m_list[m_idx];
3337 int rlev = monster_level_idx(m_idx);
3338 bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
3339 bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
3341 monspell_message(m_idx, t_idx,
3342 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
3343 _("%^s¤¬ËâË¡¤Ç¸ÅÂå¥É¥é¥´¥ó¤ò¾¤´¤·¤¿¡ª", "%^s magically summons ancient dragons!"),
3344 _("%^s¤¬ËâË¡¤Ç¸ÅÂå¥É¥é¥´¥ó¤ò¾¤´¤·¤¿¡ª", "%^s magically summons ancient dragons!"),
3347 for (k = 0; k < S_NUM_4; k++)
3350 count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_DRAGON, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
3353 count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_DRAGON, (PM_ALLOW_GROUP | monster_u_mode(m_idx)));
3356 if (p_ptr->blind && count && mon_to_player)
3358 msg_print(_("¿¤¯¤ÎÎ϶¯¤¤¤â¤Î¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬Ê¹¤³¤¨¤ë¡£", "You hear many powerful things appear nearby."));
3361 if (monster_near_player(m_idx, t_idx) && !see_monster(t_idx) && count && mon_to_mon)
3366 * @brief RF6_S_AMBERITES¤Î½èÍý¡£¥¢¥ó¥Ð¡¼¤Î²¦Â²¾¤´¡£ /
3367 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
3368 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
3369 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
3370 * @param m_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID
3371 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
3372 * @return ¾¤´¤·¤¿¥â¥ó¥¹¥¿¡¼¤Î¿ô¤òÊÖ¤¹¡£
3374 void spell_RF6_S_AMBERITES(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
3377 monster_type *m_ptr = &m_list[m_idx];
3378 int rlev = monster_level_idx(m_idx);
3379 bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
3380 bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
3382 monspell_message(m_idx, t_idx,
3383 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
3384 _("%^s¤¬¥¢¥ó¥Ð¡¼¤Î²¦Â²¤ò¾¤´¤·¤¿¡ª", "%^s magically summons Lords of Amber!"),
3385 _("%^s¤¬¥¢¥ó¥Ð¡¼¤Î²¦Â²¤ò¾¤´¤·¤¿¡ª", "%^s magically summons Lords of Amber!"),
3388 for (k = 0; k < S_NUM_4; k++)
3390 count += summon_specific(m_idx, y, x, rlev, SUMMON_AMBERITES, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
3393 if (p_ptr->blind && count && mon_to_player)
3395 msg_print(_("ÉÔ»à¤Î¼Ô¤¬¶á¤¯¤Ë¸½¤ì¤ë¤Î¤¬Ê¹¤³¤¨¤¿¡£", "You hear immortal beings appear nearby."));
3398 if (monster_near_player(m_idx, t_idx) && !see_monster(t_idx) && count && mon_to_mon)
3403 * @brief RF6_S_UNIQUE¤Î½èÍý¡£¥æ¥Ë¡¼¥¯¡¦¥â¥ó¥¹¥¿¡¼¾¤´¡£ /
3404 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
3405 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
3406 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
3407 * @param m_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID
3408 * @param TARGET_TYPE ¥×¥ì¥¤¥ä¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_PLAYER¡¢¥â¥ó¥¹¥¿¡¼¤òÂоݤȤ¹¤ë¾ì¹çMONSTER_TO_MONSTER
3409 * @return ¾¤´¤·¤¿¥â¥ó¥¹¥¿¡¼¤Î¿ô¤òÊÖ¤¹¡£
3411 void spell_RF6_S_UNIQUE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
3414 monster_type *m_ptr = &m_list[m_idx];
3415 int rlev = monster_level_idx(m_idx);
3416 bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
3417 bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
3418 bool uniques_are_summoned = FALSE;
3419 int non_unique_type = SUMMON_HI_UNDEAD;
3421 monspell_message(m_idx, t_idx,
3422 _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."),
3423 _("%^s¤¬ËâË¡¤ÇÆÃÊ̤ʶ¯Å¨¤ò¾¤´¤·¤¿¡ª", "%^s magically summons special opponents!"),
3424 _("%^s¤¬ËâË¡¤ÇÆÃÊ̤ʶ¯Å¨¤ò¾¤´¤·¤¿¡ª", "%^s magically summons special opponents!"),
3427 for (k = 0; k < S_NUM_4; k++)
3429 count += summon_specific(m_idx, y, x, rlev, SUMMON_UNIQUE, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
3432 if (count) uniques_are_summoned = TRUE;
3434 if ((m_ptr->sub_align & (SUB_ALIGN_GOOD | SUB_ALIGN_EVIL)) == (SUB_ALIGN_GOOD | SUB_ALIGN_EVIL))
3435 non_unique_type = 0;
3436 else if (m_ptr->sub_align & SUB_ALIGN_GOOD)
3437 non_unique_type = SUMMON_ANGEL;
3439 for (k = count; k < S_NUM_4; k++)
3441 count += summon_specific(m_idx, y, x, rlev, non_unique_type, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE));
3444 if (p_ptr->blind && count && mon_to_player)
3446 msg_format(_("¿¤¯¤Î%s¤¬´Ö¶á¤Ë¸½¤ì¤¿²»¤¬Ê¹¤³¤¨¤ë¡£", "You hear many %s appear nearby."),
3447 uniques_are_summoned ? _("Î϶¯¤¤¤â¤Î", "powerful things") : _("¤â¤Î", "things"));
3450 if (monster_near_player(m_idx, t_idx) && !see_monster(t_idx) && count && mon_to_mon)
3457 * @brief ¥â¥ó¥¹¥¿¡¼¤«¤é¥×¥ì¥¤¥ä¡¼¤Ø¤Î¼öʸ¤Î¿¶¤êʬ¤±´Ø¿ô¡£ /
3458 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
3459 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
3460 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
3461 * @return ¹¶·â¼öʸ¤Î¥À¥á¡¼¥¸¡¢¤Þ¤¿¤Ï¾¤´¤·¤¿¥â¥ó¥¹¥¿¡¼¤Î¿ô¤òÊÖ¤¹¡£¤½¤Î¾¤Î¾ì¹ç0¡£°Ê¹ß¤Î½èÍý¤òÃæÃǤ¹¤ë¤Ê¤é-1¤òÊÖ¤¹¡£
3463 int monspell_to_player(int SPELL_NUM, int y, int x, int m_idx)
3467 case RF4_SPELL_START + 0: spell_RF4_SHRIEK(m_idx, 0, MONSTER_TO_PLAYER); break; /* RF4_SHRIEK */
3468 case RF4_SPELL_START + 1: break; /* RF4_XXX1 */
3469 case RF4_SPELL_START + 2: spell_RF4_DISPEL(m_idx, 0, MONSTER_TO_PLAYER); break; /* RF4_DISPEL */
3470 case RF4_SPELL_START + 3: return spell_RF4_ROCKET(y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF4_ROCKET */
3471 case RF4_SPELL_START + 4: return spell_RF4_SHOOT(y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF4_SHOOT */
3472 case RF4_SPELL_START + 5: break; /* RF4_XXX2 */
3473 case RF4_SPELL_START + 6: break; /* RF4_XXX3 */
3474 case RF4_SPELL_START + 7: break; /* RF4_XXX4 */
3475 case RF4_SPELL_START + 8: return spell_RF4_BREATH(GF_ACID, y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF4_BR_ACID */
3476 case RF4_SPELL_START + 9: return spell_RF4_BREATH(GF_ELEC, y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF4_BR_ELEC */
3477 case RF4_SPELL_START + 10: return spell_RF4_BREATH(GF_FIRE, y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF4_BR_FIRE */
3478 case RF4_SPELL_START + 11: return spell_RF4_BREATH(GF_COLD, y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF4_BR_COLD */
3479 case RF4_SPELL_START + 12: return spell_RF4_BREATH(GF_POIS, y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF4_BR_POIS */
3480 case RF4_SPELL_START + 13: return spell_RF4_BREATH(GF_NETHER, y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF4_BR_NETH */
3481 case RF4_SPELL_START + 14: return spell_RF4_BREATH(GF_LITE, y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF4_BR_LITE */
3482 case RF4_SPELL_START + 15: return spell_RF4_BREATH(GF_DARK, y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF4_BR_DARK */
3483 case RF4_SPELL_START + 16: return spell_RF4_BREATH(GF_CONFUSION, y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF4_BR_CONF */
3484 case RF4_SPELL_START + 17: return spell_RF4_BREATH(GF_SOUND, y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF4_BR_SOUN */
3485 case RF4_SPELL_START + 18: return spell_RF4_BREATH(GF_CHAOS, y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF4_BR_CHAO */
3486 case RF4_SPELL_START + 19: return spell_RF4_BREATH(GF_DISENCHANT, y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF4_BR_DISE */
3487 case RF4_SPELL_START + 20: return spell_RF4_BREATH(GF_NEXUS, y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF4_BR_NEXU */
3488 case RF4_SPELL_START + 21: return spell_RF4_BREATH(GF_TIME, y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF4_BR_TIME */
3489 case RF4_SPELL_START + 22: return spell_RF4_BREATH(GF_INERTIA, y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF4_BR_INER */
3490 case RF4_SPELL_START + 23: return spell_RF4_BREATH(GF_GRAVITY, y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF4_BR_GRAV */
3491 case RF4_SPELL_START + 24: return spell_RF4_BREATH(GF_SHARDS, y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF4_BR_SHAR */
3492 case RF4_SPELL_START + 25: return spell_RF4_BREATH(GF_PLASMA, y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF4_BR_PLAS */
3493 case RF4_SPELL_START + 26: return spell_RF4_BREATH(GF_FORCE, y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF4_BR_WALL */
3494 case RF4_SPELL_START + 27: return spell_RF4_BREATH(GF_MANA, y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF4_BR_MANA */
3495 case RF4_SPELL_START + 28: return spell_RF4_BA_NUKE(y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF4_BA_NUKE */
3496 case RF4_SPELL_START + 29: return spell_RF4_BREATH(GF_NUKE, y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF4_BR_NUKE */
3497 case RF4_SPELL_START + 30: return spell_RF4_BA_CHAO(y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF4_BA_CHAO */
3498 case RF4_SPELL_START + 31: return spell_RF4_BREATH(GF_DISINTEGRATE, y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF4_BR_DISI */
3499 case RF5_SPELL_START + 0: return spell_RF5_BA_ACID(y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF5_BA_ACID */
3500 case RF5_SPELL_START + 1: return spell_RF5_BA_ELEC(y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF5_BA_ELEC */
3501 case RF5_SPELL_START + 2: return spell_RF5_BA_FIRE(y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF5_BA_FIRE */
3502 case RF5_SPELL_START + 3: return spell_RF5_BA_COLD(y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF5_BA_COLD */
3503 case RF5_SPELL_START + 4: return spell_RF5_BA_POIS(y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF5_BA_POIS */
3504 case RF5_SPELL_START + 5: return spell_RF5_BA_NETH(y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF5_BA_NETH */
3505 case RF5_SPELL_START + 6: return spell_RF5_BA_WATE(y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF5_BA_WATE */
3506 case RF5_SPELL_START + 7: return spell_RF5_BA_MANA(y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF5_BA_MANA */
3507 case RF5_SPELL_START + 8: return spell_RF5_BA_DARK(y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF5_BA_DARK */
3508 case RF5_SPELL_START + 9: return spell_RF5_DRAIN_MANA(y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF5_DRAIN_MANA */
3509 case RF5_SPELL_START + 10: return spell_RF5_MIND_BLAST(y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF5_MIND_BLAST */
3510 case RF5_SPELL_START + 11: return spell_RF5_BRAIN_SMASH(y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF5_MIND_BLAST */
3511 case RF5_SPELL_START + 12: return spell_RF5_CAUSE_1(y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF5_CAUSE_1 */
3512 case RF5_SPELL_START + 13: return spell_RF5_CAUSE_2(y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF5_CAUSE_2 */
3513 case RF5_SPELL_START + 14: return spell_RF5_CAUSE_3(y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF5_CAUSE_3 */
3514 case RF5_SPELL_START + 15: return spell_RF5_CAUSE_4(y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF5_CAUSE_4 */
3515 case RF5_SPELL_START + 16: return spell_RF5_BO_ACID(y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF5_BO_ACID */
3516 case RF5_SPELL_START + 17: return spell_RF5_BO_ELEC(y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF5_BO_ELEC */
3517 case RF5_SPELL_START + 18: return spell_RF5_BO_FIRE(y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF5_BO_FIRE */
3518 case RF5_SPELL_START + 19: return spell_RF5_BO_COLD(y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF5_BO_COLD */
3519 case RF5_SPELL_START + 20: return spell_RF5_BA_LITE(y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF5_BA_LITE */
3520 case RF5_SPELL_START + 21: return spell_RF5_BO_NETH(y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF5_BO_NETH */
3521 case RF5_SPELL_START + 22: return spell_RF5_BO_WATE(y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF5_BO_WATE */
3522 case RF5_SPELL_START + 23: return spell_RF5_BO_MANA(y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF5_BO_MANA */
3523 case RF5_SPELL_START + 24: return spell_RF5_BO_PLAS(y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF5_BO_PLAS */
3524 case RF5_SPELL_START + 25: return spell_RF5_BO_ICEE(y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF5_BO_ICEE */
3525 case RF5_SPELL_START + 26: return spell_RF5_MISSILE(y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF5_MISSILE */
3526 case RF5_SPELL_START + 27: spell_RF5_SCARE(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF5_SCARE */
3527 case RF5_SPELL_START + 28: spell_RF5_BLIND(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF5_BLIND */
3528 case RF5_SPELL_START + 29: spell_RF5_CONF(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF5_CONF */
3529 case RF5_SPELL_START + 30: spell_RF5_SLOW(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF5_SLOW */
3530 case RF5_SPELL_START + 31: spell_RF5_HOLD(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF5_HOLD */
3531 case RF6_SPELL_START + 0: spell_RF6_HASTE(m_idx, 0, MONSTER_TO_PLAYER); break; /* RF6_HASTE */
3532 case RF6_SPELL_START + 1: return spell_RF6_HAND_DOOM(y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF6_HAND_DOOM */
3533 case RF6_SPELL_START + 2: spell_RF6_HEAL(m_idx, 0, MONSTER_TO_PLAYER); break; /* RF6_HEAL */
3534 case RF6_SPELL_START + 3: spell_RF6_INVULNER(m_idx, 0, MONSTER_TO_PLAYER); break; /* RF6_INVULNER */
3535 case RF6_SPELL_START + 4: spell_RF6_BLINK(m_idx, MONSTER_TO_PLAYER); break; /* RF6_BLINK */
3536 case RF6_SPELL_START + 5: spell_RF6_TPORT(m_idx, MONSTER_TO_PLAYER); break; /* RF6_TPORT */
3537 case RF6_SPELL_START + 6: return spell_RF6_WORLD(m_idx); break; /* RF6_WORLD */
3538 case RF6_SPELL_START + 7: return spell_RF6_SPECIAL(y, x, m_idx, 0, MONSTER_TO_PLAYER); /* RF6_SPECIAL */
3539 case RF6_SPELL_START + 8: spell_RF6_TELE_TO(m_idx, 0, MONSTER_TO_PLAYER); break; /* RF6_TELE_TO */
3540 case RF6_SPELL_START + 9: spell_RF6_TELE_AWAY(m_idx, 0, MONSTER_TO_PLAYER); break; /* RF6_TELE_AWAY */
3541 case RF6_SPELL_START + 10: spell_RF6_TELE_LEVEL(m_idx, 0, MONSTER_TO_PLAYER); break; /* RF6_TELE_LEVEL */
3542 case RF6_SPELL_START + 11: spell_RF6_PSY_SPEAR(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF6_PSY_SPEAR */
3543 case RF6_SPELL_START + 12: spell_RF6_DARKNESS(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF6_DARKNESS */
3544 case RF6_SPELL_START + 13: spell_RF6_TRAPS(y, x, m_idx); break; /* RF6_TRAPS */
3545 case RF6_SPELL_START + 14: spell_RF6_FORGET(m_idx); break; /* RF6_FORGET */
3546 case RF6_SPELL_START + 15: spell_RF6_RAISE_DEAD(m_idx, 0, MONSTER_TO_PLAYER); break; /* RF6_RAISE_DEAD */
3547 case RF6_SPELL_START + 16: spell_RF6_S_KIN(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF6_S_KIN */
3548 case RF6_SPELL_START + 17: spell_RF6_S_CYBER(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF6_S_CYBER */
3549 case RF6_SPELL_START + 18: spell_RF6_S_MONSTER(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF6_S_MONSTER */
3550 case RF6_SPELL_START + 19: spell_RF6_S_MONSTERS(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF6_S_MONSTER */
3551 case RF6_SPELL_START + 20: spell_RF6_S_ANT(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF6_S_ANT */
3552 case RF6_SPELL_START + 21: spell_RF6_S_SPIDER(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF6_S_SPIDER */
3553 case RF6_SPELL_START + 22: spell_RF6_S_HOUND(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF6_S_HOUND */
3554 case RF6_SPELL_START + 23: spell_RF6_S_HYDRA(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF6_S_HYDRA */
3555 case RF6_SPELL_START + 24: spell_RF6_S_ANGEL(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF6_S_ANGEL */
3556 case RF6_SPELL_START + 25: spell_RF6_S_DEMON(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF6_S_DEMON */
3557 case RF6_SPELL_START + 26: spell_RF6_S_UNDEAD(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF6_S_UNDEAD */
3558 case RF6_SPELL_START + 27: spell_RF6_S_DRAGON(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF6_S_DRAGON */
3559 case RF6_SPELL_START + 28: spell_RF6_S_HI_UNDEAD(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF6_S_HI_UNDEAD */
3560 case RF6_SPELL_START + 29: spell_RF6_S_HI_DRAGON(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF6_S_HI_DRAGON */
3561 case RF6_SPELL_START + 30: spell_RF6_S_AMBERITES(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF6_S_AMBERITES */
3562 case RF6_SPELL_START + 31: spell_RF6_S_UNIQUE(y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF6_S_UNIQUE */
3568 * @brief ¥â¥ó¥¹¥¿¡¼¤«¤é¥â¥ó¥¹¥¿¡¼¤Ø¤Î¼öʸ¤Î¿¶¤êʬ¤±´Ø¿ô¡£ /
3569 * @param y ÂоݤÎÃÏÅÀ¤ÎyºÂɸ
3570 * @param x ÂоݤÎÃÏÅÀ¤ÎxºÂɸ
3571 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
3572 * @param m_idx ¼öʸ¤ò¼õ¤±¤ë¥â¥ó¥¹¥¿¡¼ID
3573 * @return ¹¶·â¼öʸ¤Î¥À¥á¡¼¥¸¡¢¤Þ¤¿¤Ï¾¤´¤·¤¿¥â¥ó¥¹¥¿¡¼¤Î¿ô¤òÊÖ¤¹¡£¤½¤Î¾¤Î¾ì¹ç0¡£°Ê¹ß¤Î½èÍý¤òÃæÃǤ¹¤ë¤Ê¤é-1¤òÊÖ¤¹¡£
3575 int monspell_to_monster(int SPELL_NUM, int y, int x, int m_idx, int t_idx)
3579 case RF4_SPELL_START + 0: spell_RF4_SHRIEK(m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF4_SHRIEK */
3580 case RF4_SPELL_START + 1: return -1; /* RF4_XXX1 */
3581 case RF4_SPELL_START + 2: spell_RF4_DISPEL(m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF4_DISPEL */
3582 case RF4_SPELL_START + 3: return spell_RF4_ROCKET(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF4_ROCKET */
3583 case RF4_SPELL_START + 4: return spell_RF4_SHOOT(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF4_SHOOT */
3584 case RF4_SPELL_START + 5: return -1; /* RF4_XXX2 */
3585 case RF4_SPELL_START + 6: return -1; /* RF4_XXX3 */
3586 case RF4_SPELL_START + 7: return -1; /* RF4_XXX4 */
3587 case RF4_SPELL_START + 8: return spell_RF4_BREATH(GF_ACID, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF4_BR_ACID */
3588 case RF4_SPELL_START + 9: return spell_RF4_BREATH(GF_ELEC, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF4_BR_ELEC */
3589 case RF4_SPELL_START + 10: return spell_RF4_BREATH(GF_FIRE, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF4_BR_FIRE */
3590 case RF4_SPELL_START + 11: return spell_RF4_BREATH(GF_COLD, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF4_BR_COLD */
3591 case RF4_SPELL_START + 12: return spell_RF4_BREATH(GF_POIS, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF4_BR_POIS */
3592 case RF4_SPELL_START + 13: return spell_RF4_BREATH(GF_NETHER, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF4_BR_NETH */
3593 case RF4_SPELL_START + 14: return spell_RF4_BREATH(GF_LITE, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF4_BR_LITE */
3594 case RF4_SPELL_START + 15: return spell_RF4_BREATH(GF_DARK, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF4_BR_DARK */
3595 case RF4_SPELL_START + 16: return spell_RF4_BREATH(GF_CONFUSION, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF4_BR_CONF */
3596 case RF4_SPELL_START + 17: return spell_RF4_BREATH(GF_SOUND, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF4_BR_SOUN */
3597 case RF4_SPELL_START + 18: return spell_RF4_BREATH(GF_CHAOS, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF4_BR_CHAO */
3598 case RF4_SPELL_START + 19: return spell_RF4_BREATH(GF_DISENCHANT, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF4_BR_DISE */
3599 case RF4_SPELL_START + 20: return spell_RF4_BREATH(GF_NEXUS, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF4_BR_NEXU */
3600 case RF4_SPELL_START + 21: return spell_RF4_BREATH(GF_TIME, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF4_BR_TIME */
3601 case RF4_SPELL_START + 22: return spell_RF4_BREATH(GF_INERTIA, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF4_BR_INER */
3602 case RF4_SPELL_START + 23: return spell_RF4_BREATH(GF_GRAVITY, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF4_BR_GRAV */
3603 case RF4_SPELL_START + 24: return spell_RF4_BREATH(GF_SHARDS, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF4_BR_SHAR */
3604 case RF4_SPELL_START + 25: return spell_RF4_BREATH(GF_PLASMA, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF4_BR_PLAS */
3605 case RF4_SPELL_START + 26: return spell_RF4_BREATH(GF_FORCE, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF4_BR_WALL */
3606 case RF4_SPELL_START + 27: return spell_RF4_BREATH(GF_MANA, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF4_BR_MANA */
3607 case RF4_SPELL_START + 28: return spell_RF4_BA_NUKE(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF4_BA_NUKE */
3608 case RF4_SPELL_START + 29: return spell_RF4_BREATH(GF_NUKE, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF4_BR_NUKE */
3609 case RF4_SPELL_START + 30: return spell_RF4_BA_CHAO(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF4_BA_CHAO */
3610 case RF4_SPELL_START + 31: return spell_RF4_BREATH(GF_DISINTEGRATE, y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF4_BR_DISI */
3611 case RF5_SPELL_START + 0: return spell_RF5_BA_ACID(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF5_BA_ACID */
3612 case RF5_SPELL_START + 1: return spell_RF5_BA_ELEC(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF5_BA_ELEC */
3613 case RF5_SPELL_START + 2: return spell_RF5_BA_FIRE(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF5_BA_FIRE */
3614 case RF5_SPELL_START + 3: return spell_RF5_BA_COLD(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF5_BA_COLD */
3615 case RF5_SPELL_START + 4: return spell_RF5_BA_POIS(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF5_BA_POIS */
3616 case RF5_SPELL_START + 5: return spell_RF5_BA_NETH(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF5_BA_NETH */
3617 case RF5_SPELL_START + 6: return spell_RF5_BA_WATE(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF5_BA_WATE */
3618 case RF5_SPELL_START + 7: return spell_RF5_BA_MANA(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF5_BA_MANA */
3619 case RF5_SPELL_START + 8: return spell_RF5_BA_DARK(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF5_BA_DARK */
3620 case RF5_SPELL_START + 9: return spell_RF5_DRAIN_MANA(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF5_DRAIN_MANA */
3621 case RF5_SPELL_START + 10: return spell_RF5_MIND_BLAST(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF5_MIND_BLAST */
3622 case RF5_SPELL_START + 11: return spell_RF5_BRAIN_SMASH(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF5_BRAIN_SMASH */
3623 case RF5_SPELL_START + 12: return spell_RF5_CAUSE_1(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF5_CAUSE_1 */
3624 case RF5_SPELL_START + 13: return spell_RF5_CAUSE_2(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF5_CAUSE_2 */
3625 case RF5_SPELL_START + 14: return spell_RF5_CAUSE_3(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF5_CAUSE_3 */
3626 case RF5_SPELL_START + 15: return spell_RF5_CAUSE_4(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF5_CAUSE_4 */
3627 case RF5_SPELL_START + 16: return spell_RF5_BO_ACID(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF5_BO_ACID */
3628 case RF5_SPELL_START + 17: return spell_RF5_BO_ELEC(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF5_BO_ELEC */
3629 case RF5_SPELL_START + 18: return spell_RF5_BO_FIRE(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF5_BO_FIRE */
3630 case RF5_SPELL_START + 19: return spell_RF5_BO_COLD(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF5_BO_COLD */
3631 case RF5_SPELL_START + 20: return spell_RF5_BA_LITE(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF5_BA_LITE */
3632 case RF5_SPELL_START + 21: return spell_RF5_BO_NETH(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF5_BO_NETH */
3633 case RF5_SPELL_START + 22: return spell_RF5_BO_WATE(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF5_BO_WATE */
3634 case RF5_SPELL_START + 23: return spell_RF5_BO_MANA(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF5_BO_MANA */
3635 case RF5_SPELL_START + 24: return spell_RF5_BO_PLAS(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF5_BO_PLAS */
3636 case RF5_SPELL_START + 25: return spell_RF5_BO_ICEE(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF5_BO_ICEE */
3637 case RF5_SPELL_START + 26: return spell_RF5_MISSILE(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF5_MISSILE */
3638 case RF5_SPELL_START + 27: spell_RF5_SCARE(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF5_SCARE */
3639 case RF5_SPELL_START + 28: spell_RF5_BLIND(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF5_BLIND */
3640 case RF5_SPELL_START + 29: spell_RF5_CONF(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF5_CONF */
3641 case RF5_SPELL_START + 30: spell_RF5_SLOW(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF5_SLOW */
3642 case RF5_SPELL_START + 31: spell_RF5_HOLD(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF5_HOLD */
3643 case RF6_SPELL_START + 0: spell_RF6_HASTE(m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF6_HASTE */
3644 case RF6_SPELL_START + 1: return spell_RF6_HAND_DOOM(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF6_HAND_DOOM */
3645 case RF6_SPELL_START + 2: spell_RF6_HEAL(m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF6_HEAL */
3646 case RF6_SPELL_START + 3: spell_RF6_INVULNER(m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF6_INVULNER */
3647 case RF6_SPELL_START + 4: spell_RF6_BLINK(m_idx, MONSTER_TO_MONSTER); break; /* RF6_BLINK */
3648 case RF6_SPELL_START + 5: spell_RF6_TPORT(m_idx, MONSTER_TO_MONSTER); break; /* RF6_TPORT */
3649 case RF6_SPELL_START + 6: return -1; break; /* RF6_WORLD */
3650 case RF6_SPELL_START + 7: return spell_RF6_SPECIAL(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); /* RF6_SPECIAL */
3651 case RF6_SPELL_START + 8: spell_RF6_TELE_TO(m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF6_TELE_TO */
3652 case RF6_SPELL_START + 9: spell_RF6_TELE_AWAY(m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF6_TELE_AWAY */
3653 case RF6_SPELL_START + 10: spell_RF6_TELE_LEVEL(m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF6_TELE_LEVEL */
3654 case RF6_SPELL_START + 11: spell_RF6_PSY_SPEAR(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF6_PSY_SPEAR */
3655 case RF6_SPELL_START + 12: spell_RF6_DARKNESS(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF6_DARKNESS */
3656 case RF6_SPELL_START + 13: return -1; /* RF6_TRAPS */
3657 case RF6_SPELL_START + 14: return -1; /* RF6_FORGET */
3658 case RF6_SPELL_START + 15: spell_RF6_RAISE_DEAD(m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF6_RAISE_DEAD */
3659 case RF6_SPELL_START + 16: spell_RF6_S_KIN(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF6_S_KIN */
3660 case RF6_SPELL_START + 17: spell_RF6_S_CYBER(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF6_S_CYBER */
3661 case RF6_SPELL_START + 18: spell_RF6_S_MONSTER(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF6_S_MONSTER */
3662 case RF6_SPELL_START + 19: spell_RF6_S_MONSTERS(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF6_S_MONSTER */
3663 case RF6_SPELL_START + 20: spell_RF6_S_ANT(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF6_S_ANT */
3664 case RF6_SPELL_START + 21: spell_RF6_S_SPIDER(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF6_S_SPIDER */
3665 case RF6_SPELL_START + 22: spell_RF6_S_HOUND(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF6_S_HOUND */
3666 case RF6_SPELL_START + 23: spell_RF6_S_HYDRA(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF6_S_HYDRA */
3667 case RF6_SPELL_START + 24: spell_RF6_S_ANGEL(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF6_S_ANGEL */
3668 case RF6_SPELL_START + 25: spell_RF6_S_DEMON(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF6_S_DEMON */
3669 case RF6_SPELL_START + 26: spell_RF6_S_UNDEAD(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF6_S_UNDEAD */
3670 case RF6_SPELL_START + 27: spell_RF6_S_DRAGON(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF6_S_DRAGON */
3671 case RF6_SPELL_START + 28: spell_RF6_S_HI_UNDEAD(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF6_S_HI_UNDEAD */
3672 case RF6_SPELL_START + 29: spell_RF6_S_HI_DRAGON(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF6_S_HI_DRAGON */
3673 case RF6_SPELL_START + 30: spell_RF6_S_AMBERITES(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF6_S_AMBERITES */
3674 case RF6_SPELL_START + 31: spell_RF6_S_UNIQUE(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF6_S_UNIQUE */
3680 * @brief ¥â¥ó¥¹¥¿¡¼¤Î»È¤¦¼öʸ¤Î°ÒÎϤòÊÖ¤¹ /
3681 * @param SPELL_NUM ¼öʸÈÖ¹æ
3682 * @param hp ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼¤ÎÂÎÎÏ
3683 * @param rlev ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼¤Î¥ì¥Ù¥ë
3684 * @param powerful ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼¤Îpowerful¥Õ¥é¥°
3685 * @param r_ptr ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼¤Î¼ï²¥Ý¥¤¥ó¥¿
3686 * @param TYPE DAM_MAX¤ÇºÇÂçÃͤòÊÖ¤·¡¢DAM_MIN¤ÇºÇ¾®ÃͤòÊÖ¤¹¡£DAM_ROLL¤Ï¥À¥¤¥¹¤ò¿¶¤Ã¤ÆÃͤò·èÄꤹ¤ë¡£
3687 * @return ¹¶·â¼öʸ¤Î¥À¥á¡¼¥¸¤òÊÖ¤¹¡£¹¶·â¼öʸ°Ê³°¤Ï-1¤òÊÖ¤¹¡£
3689 int monspell_damage_base(int SPELL_NUM, int hp, int rlev, bool powerful, monster_race* r_ptr, int TYPE)
3691 int dam = 0, dice_num = 0, dice_side = 0, mult = 1, div = 1;
3695 case RF4_SPELL_START + 0: return -1; /* RF4_SHRIEK */
3696 case RF4_SPELL_START + 1: return -1; /* RF4_XXX1 */
3697 case RF4_SPELL_START + 2: return -1; /* RF4_DISPEL */
3700 case RF4_SPELL_START + 3:
3701 dam = (hp / 4) > 800 ? 800 : (hp / 4);
3705 case RF4_SPELL_START + 4:
3706 dice_num = r_ptr->blow[0].d_dice;
3707 dice_side = r_ptr->blow[0].d_side;
3709 case RF4_SPELL_START + 5: return -1; /* RF4_XXX2 */
3710 case RF4_SPELL_START + 6: return -1; /* RF4_XXX3 */
3711 case RF4_SPELL_START + 7: return -1; /* RF4_XXX4 */
3717 case RF4_SPELL_START + 8:
3718 case RF4_SPELL_START + 9:
3719 case RF4_SPELL_START + 10:
3720 case RF4_SPELL_START + 11:
3721 dam = ((hp / 3) > 1600 ? 1600 : (hp / 3));
3725 case RF4_SPELL_START + 12:
3726 dam = ((hp / 3) > 800 ? 800 : (hp / 3));
3730 case RF4_SPELL_START + 13:
3731 dam = ((hp / 6) > 550 ? 550 : (hp / 6));
3736 case RF4_SPELL_START + 14:
3737 case RF4_SPELL_START + 15:
3738 dam = ((hp / 6) > 400 ? 400 : (hp / 6));
3743 case RF4_SPELL_START + 16:
3744 case RF4_SPELL_START + 17:
3745 dam = ((hp / 6) > 450 ? 450 : (hp / 6));
3749 case RF4_SPELL_START + 18:
3750 dam = ((hp / 6) > 600 ? 600 : (hp / 6));
3754 case RF4_SPELL_START + 19:
3755 dam = ((hp / 6) > 500 ? 500 : (hp / 6));
3759 case RF4_SPELL_START + 20:
3760 dam = ((hp / 3) > 250 ? 250 : (hp / 3));
3764 case RF4_SPELL_START + 21:
3765 dam = ((hp / 3) > 150 ? 150 : (hp / 3));
3770 case RF4_SPELL_START + 22:
3771 case RF4_SPELL_START + 23:
3772 dam = ((hp / 6) > 200 ? 200 : (hp / 6));
3776 case RF4_SPELL_START + 24:
3777 dam = ((hp / 6) > 500 ? 500 : (hp / 6));
3781 case RF4_SPELL_START + 25:
3782 dam = ((hp / 6) > 150 ? 150 : (hp / 6));
3786 case RF4_SPELL_START + 26:
3787 dam = ((hp / 6) > 200 ? 200 : (hp / 6));
3791 case RF4_SPELL_START + 27:
3792 dam = ((hp / 3) > 250 ? 250 : (hp / 3));
3796 case RF4_SPELL_START + 28:
3797 mult = powerful ? 2 : 1;
3798 dam = rlev * (mult / div);
3804 case RF4_SPELL_START + 29:
3805 dam = ((hp / 3) > 800 ? 800 : (hp / 3));
3809 case RF4_SPELL_START + 30:
3810 dam = (powerful ? (rlev * 3) : (rlev * 2));
3816 case RF4_SPELL_START + 31:
3817 dam = ((hp / 6) > 150 ? 150 : (hp / 6));
3821 case RF5_SPELL_START + 0:
3824 dam = (rlev * 4) + 50;
3832 dice_side = rlev * 3;
3837 case RF5_SPELL_START + 1:
3840 dam = (rlev * 4) + 50;
3848 dice_side = rlev * 3 / 2;
3853 case RF5_SPELL_START + 2:
3856 dam = (rlev * 4) + 50;
3864 dice_side = rlev * 7 / 2;
3869 case RF5_SPELL_START + 3:
3872 dam = (rlev * 4) + 50;
3880 dice_side = rlev * 3 / 2;
3885 case RF5_SPELL_START + 4:
3886 mult = powerful ? 2 : 1;
3892 case RF5_SPELL_START + 5:
3893 dam = 50 + (rlev * powerful ? 2 : 1);
3899 case RF5_SPELL_START + 6:
3902 dice_side = powerful ? (rlev * 3) : (rlev * 2);
3907 case RF5_SPELL_START + 7:
3908 case RF5_SPELL_START + 8:
3909 dam = (rlev * 4) + 50;
3914 /* RF5_DRAIN_MANA */
3915 case RF5_SPELL_START + 9:
3922 /* RF5_MIND_BLAST */
3923 case RF5_SPELL_START + 10:
3928 /* RF5_BRAIN_SMASH */
3929 case RF5_SPELL_START + 11:
3935 case RF5_SPELL_START + 12:
3941 case RF5_SPELL_START + 13:
3947 case RF5_SPELL_START + 14:
3953 case RF5_SPELL_START + 15:
3959 case RF5_SPELL_START + 16:
3960 mult = powerful ? 2 : 1;
3961 dam = rlev / 3 * (mult / div);
3967 case RF5_SPELL_START + 17:
3968 mult = powerful ? 2 : 1;
3969 dam = rlev / 3 * (mult / div);
3975 case RF5_SPELL_START + 18:
3976 mult = powerful ? 2 : 1;
3977 dam = rlev / 3 * (mult / div);
3983 case RF5_SPELL_START + 19:
3984 mult = powerful ? 2 : 1;
3985 dam = rlev / 3 * (mult / div);
3991 case RF5_SPELL_START + 20:
3992 dam = (rlev * 4) + 50;
3998 case RF5_SPELL_START + 21:
3999 dam = 30 + (rlev * 4) / (powerful ? 2 : 3);
4005 case RF5_SPELL_START + 22:
4006 dam = (rlev * 3 / (powerful ? 2 : 3));
4012 case RF5_SPELL_START + 23:
4015 dice_side = rlev * 7 / 2;
4019 case RF5_SPELL_START + 24:
4020 dam = 10 + (rlev * 3 / (powerful ? 2 : 3));
4026 case RF5_SPELL_START + 25:
4027 dam = (rlev * 3 / (powerful ? 2 : 3));
4033 case RF5_SPELL_START + 26:
4039 case RF5_SPELL_START + 27: return -1; /* RF5_SCARE */
4040 case RF5_SPELL_START + 28: return -1; /* RF5_BLIND */
4041 case RF5_SPELL_START + 29: return -1; /* RF5_CONF */
4042 case RF5_SPELL_START + 30: return -1; /* RF5_SLOW */
4043 case RF5_SPELL_START + 31: return -1; /* RF5_HOLD */
4044 case RF6_SPELL_START + 0: return -1; /* RF6_HASTE */
4047 case RF6_SPELL_START + 1:
4050 dam = 40 * (mult / div);
4055 case RF6_SPELL_START + 2: return -1; /* RF6_HEAL */
4056 case RF6_SPELL_START + 3: return -1; /* RF6_INVULNER */
4057 case RF6_SPELL_START + 4: return -1; /* RF6_BLINK */
4058 case RF6_SPELL_START + 5: return -1; /* RF6_TPORT */
4059 case RF6_SPELL_START + 6: return -1; /* RF6_WORLD */
4060 case RF6_SPELL_START + 7: return -1; /* RF6_SPECIAL */
4061 case RF6_SPELL_START + 8: return -1; /* RF6_TELE_TO */
4062 case RF6_SPELL_START + 9: return -1; /* RF6_TELE_AWAY */
4063 case RF6_SPELL_START + 10: return -1; /* RF6_TELE_LEVEL */
4066 case RF6_SPELL_START + 11:
4067 dam = powerful ? 150 : 100;
4069 dice_side = powerful ? (rlev * 2) : (rlev * 3 / 2);
4072 case RF6_SPELL_START + 12: return -1; /* RF6_DARKNESS */
4073 case RF6_SPELL_START + 13: return -1; /* RF6_TRAPS */
4074 case RF6_SPELL_START + 14: return -1; /* RF6_FORGET */
4075 case RF6_SPELL_START + 15: return -1; /* RF6_RAISE_DEAD */
4076 case RF6_SPELL_START + 16: return -1; /* RF6_S_KIN */
4077 case RF6_SPELL_START + 17: return -1; /* RF6_S_CYBER */
4078 case RF6_SPELL_START + 18: return -1; /* RF6_S_MONSTER */
4079 case RF6_SPELL_START + 19: return -1; /* RF6_S_MONSTER */
4080 case RF6_SPELL_START + 20: return -1; /* RF6_S_ANT */
4081 case RF6_SPELL_START + 21: return -1; /* RF6_S_SPIDER */
4082 case RF6_SPELL_START + 22: return -1; /* RF6_S_HOUND */
4083 case RF6_SPELL_START + 23: return -1; /* RF6_S_HYDRA */
4084 case RF6_SPELL_START + 24: return -1; /* RF6_S_ANGEL */
4085 case RF6_SPELL_START + 25: return -1; /* RF6_S_DEMON */
4086 case RF6_SPELL_START + 26: return -1; /* RF6_S_UNDEAD */
4087 case RF6_SPELL_START + 27: return -1; /* RF6_S_DRAGON */
4088 case RF6_SPELL_START + 28: return -1; /* RF6_S_HI_UNDEAD */
4089 case RF6_SPELL_START + 29: return -1; /* RF6_S_HI_DRAGON */
4090 case RF6_SPELL_START + 30: return -1; /* RF6_S_AMBERITES */
4091 case RF6_SPELL_START + 31: return -1; /* RF6_S_UNIQUE */
4096 case DAM_MAX: dam += maxroll(dice_num, dice_side) * mult / div ; break;
4097 case DAM_MIN: dam += dice_num * 1 * mult / div; break;
4098 case DAM_ROLL: dam += damroll(dice_num, dice_side) * mult / div; break;
4106 * @brief ¥â¥ó¥¹¥¿¡¼¤Î»È¤¦¼öʸ¤Î°ÒÎϤòÊÖ¤¹ /
4107 * @param SPELL_NUM ¼öʸÈÖ¹æ
4108 * @param m_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼ID
4109 * @param TYPE DAM_MAX¤ÇºÇÂçÃͤòÊÖ¤·¡¢DAM_MIN¤ÇºÇ¾®ÃͤòÊÖ¤¹¡£DAM_ROLL¤Ï¥À¥¤¥¹¤ò¿¶¤Ã¤ÆÃͤò·èÄꤹ¤ë¡£
4110 * @return ¹¶·â¼öʸ¤Î¥À¥á¡¼¥¸¤òÊÖ¤¹¡£¹¶·â¼öʸ°Ê³°¤Ï-1¤òÊÖ¤¹¡£
4112 int monspell_damage(int SPELL_NUM, int m_idx, int TYPE)
4114 monster_type *m_ptr = &m_list[m_idx];
4115 monster_race *r_ptr = &r_info[m_ptr->r_idx];
4117 int rlev = monster_level_idx(m_idx);
4119 if (TYPE == DAM_MAX)
4121 hp = m_ptr->max_maxhp;
4123 else if (TYPE == DAM_ROLL)
4127 return monspell_damage_base(SPELL_NUM, hp, rlev, monster_is_powerful(m_idx), r_ptr, TYPE);
4131 * @brief ¥â¥ó¥¹¥¿¡¼¤Î»È¤¦¼öʸ¤Î°ÒÎϤòÊÖ¤¹ /
4132 * @param SPELL_NUM ¼öʸÈÖ¹æ
4133 * @param r_idx ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼¤Î¼ï²ID
4134 * @param TYPE DAM_MAX¤ÇºÇÂçÃͤòÊÖ¤·¡¢DAM_MIN¤ÇºÇ¾®ÃͤòÊÖ¤¹¡£DAM_ROLL¤Ï¥À¥¤¥¹¤ò¿¶¤Ã¤ÆÃͤò·èÄꤹ¤ë¡£
4135 * @return ¹¶·â¼öʸ¤Î¥À¥á¡¼¥¸¤òÊÖ¤¹¡£¹¶·â¼öʸ°Ê³°¤Ï-1¤òÊÖ¤¹¡£
4137 int monspell_race_damage(int SPELL_NUM, int r_idx, int TYPE)
4139 monster_race *r_ptr = &r_info[r_idx];
4140 int rlev = ((r_ptr->level >= 1) ? r_ptr->level : 1);
4141 bool powerful = r_ptr->flags2 & RF2_POWERFUL;
4142 u32b hp = r_ptr->hdice * (ironman_nightmare ? 2 : 1) * r_ptr->hside;
4144 return monspell_damage_base(SPELL_NUM, MIN(30000, hp), rlev, powerful, r_ptr, TYPE);