OSDN Git Service

refactor: replace #ifdef JP macros on make_attack_spell
[hengband/hengband.git] / src / mspells4.c
1 #include "angband.h"
2
3 void spell_RF4_SHRIEK(int m_idx, cptr m_name)
4 {
5     disturb(1, 1);
6     msg_format(_("%^s¤¬¤«¤ó¹â¤¤¶âÀÚ¤êÀ¼¤ò¤¢¤²¤¿¡£", "%^s makes a high pitched shriek."), m_name);
7     aggravate_monsters(m_idx);
8 }
9
10 void spell_RF4_DISPEL(bool blind, cptr m_name)
11 {
12     disturb(1, 1);
13
14     if (blind)
15         msg_format(_("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."), m_name);
16     else
17         msg_format(_("%^s¤¬ËâÎϾõî¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a dispel magic."), m_name);
18
19     dispel_player();
20     if (p_ptr->riding) dispel_monster_status(p_ptr->riding);
21
22 #ifdef JP
23     if ((p_ptr->pseikaku == SEIKAKU_COMBAT) || (inventory[INVEN_BOW].name1 == ART_CRIMSON))
24         msg_print("¤ä¤ê¤ä¤¬¤Ã¤¿¤Ê¡ª");
25 #endif
26     learn_spell(MS_DISPEL);
27 }
28
29 void spell_RF4_ROCKET(bool blind, cptr m_name, monster_type* m_ptr, int y, int x, int m_idx, bool learnable)
30 {
31     int dam;
32
33     disturb(1, 1);
34     if (blind)
35         msg_format(_("%^s¤¬²¿¤«¤ò¼Í¤Ã¤¿¡£", "%^s shoots something."), m_name);
36     else
37         msg_format(_("%^s¤¬¥í¥±¥Ã¥È¤òȯ¼Í¤·¤¿¡£", "%^s fires a rocket."), m_name);
38
39     dam = ((m_ptr->hp / 4) > 800 ? 800 : (m_ptr->hp / 4));
40     breath(y, x, m_idx, GF_ROCKET,
41         dam, 2, FALSE, MS_ROCKET, learnable);
42     update_smart_learn(m_idx, DRS_SHARD);
43 }
44
45 void spell_RF4_SHOOT(bool blind, cptr m_name, monster_race* r_ptr, int m_idx, bool learnable)
46 {
47     int dam;
48     disturb(1, 1);
49     if (blind)
50         msg_format(_("%^s¤¬´ñ̯¤Ê²»¤òȯ¤·¤¿¡£", "%^s makes a strange noise."), m_name);
51     else
52         msg_format(_("%^s¤¬Ìð¤òÊü¤Ã¤¿¡£", "%^s fires an arrow."), m_name);
53
54     dam = damroll(r_ptr->blow[0].d_dice, r_ptr->blow[0].d_side);
55     bolt(m_idx, GF_ARROW, dam, MS_SHOOT, learnable);
56     update_smart_learn(m_idx, DRS_REFLECT);
57 }
58
59 void spell_RF4_BREATH(int GF_TYPE, bool blind, cptr m_name, monster_type* m_ptr, int y, int x, int m_idx, bool learnable)
60 {
61     int dam, ms_type, drs_type;
62     cptr type_s;
63     bool smart_learn = TRUE;
64
65     switch (GF_TYPE)
66     {
67         case GF_ACID:
68             dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
69             type_s = _("»À", "acid");
70             ms_type = MS_BR_ACID;
71             drs_type = DRS_ACID;
72             break;
73         case GF_ELEC:
74             dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
75             type_s = _("°ðºÊ", "lightning");
76             ms_type = MS_BR_ELEC;
77             drs_type = DRS_ELEC;
78             break;
79         case GF_FIRE:
80             dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
81             type_s = _("²Ð±ê", "fire");
82             ms_type = MS_BR_FIRE;
83             drs_type = DRS_FIRE;
84             break;
85         case GF_COLD:
86             dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
87             type_s = _("Î䵤", "frost");
88             ms_type = MS_BR_COLD;
89             drs_type = DRS_COLD;
90             break;
91         case GF_POIS:
92             dam = ((m_ptr->hp / 3) > 800 ? 800 : (m_ptr->hp / 3));
93             type_s = _("¥¬¥¹", "gas");
94             ms_type = MS_BR_POIS;
95             drs_type = DRS_POIS;
96             break;
97         case GF_NETHER:
98             dam = ((m_ptr->hp / 6) > 550 ? 550 : (m_ptr->hp / 6));
99             type_s = _("ÃϹö", "nether");
100             ms_type = MS_BR_NETHER;
101             drs_type = DRS_NETH;
102             break;
103         case GF_LITE:
104             dam = ((m_ptr->hp / 6) > 400 ? 400 : (m_ptr->hp / 6));
105             type_s = _("Á®¸÷", "light");
106             ms_type = MS_BR_LITE;
107             drs_type = DRS_LITE;
108             break;
109         case GF_DARK:
110             dam = ((m_ptr->hp / 6) > 400 ? 400 : (m_ptr->hp / 6));
111             type_s = _("°Å¹õ", "darkness");
112             ms_type = MS_BR_DARK;
113             drs_type = DRS_DARK;
114             break;
115         case GF_CONFUSION:
116             dam = ((m_ptr->hp / 6) > 450 ? 450 : (m_ptr->hp / 6));
117             type_s = _("º®Íð", "confusion");
118             ms_type = MS_BR_CONF;
119             drs_type = DRS_CONF;
120             break;
121         case GF_SOUND:
122             dam = ((m_ptr->hp / 6) > 450 ? 450 : (m_ptr->hp / 6));
123             type_s = _("¹ì²»", "sound");
124             ms_type = MS_BR_SOUND;
125             drs_type = DRS_SOUND;
126             break;
127         case GF_CHAOS:
128             dam = ((m_ptr->hp / 6) > 600 ? 600 : (m_ptr->hp / 6));
129             type_s = _("¥«¥ª¥¹", "chaos");
130             ms_type = MS_BR_CHAOS;
131             drs_type = DRS_CHAOS;
132             break;
133         case GF_DISENCHANT:
134             dam = ((m_ptr->hp / 6) > 500 ? 500 : (m_ptr->hp / 6));
135             type_s = _("Îô²½", "disenchantment");
136             ms_type = MS_BR_DISEN;
137             drs_type = DRS_DISEN;
138             break;
139         case GF_NEXUS:
140             dam = ((m_ptr->hp / 3) > 250 ? 250 : (m_ptr->hp / 3));
141             type_s = _("°ø²Ìº®Íð", "nexus");
142             ms_type = MS_BR_NEXUS;
143             drs_type = DRS_NEXUS;
144             break;
145         case GF_TIME:
146             dam = ((m_ptr->hp / 3) > 150 ? 150 : (m_ptr->hp / 3));
147             type_s = _("»þ´ÖµÕž", "time");
148             ms_type = MS_BR_TIME;
149             smart_learn = FALSE;
150             break;
151         case GF_INERTIA:
152             dam = ((m_ptr->hp / 6) > 200 ? 200 : (m_ptr->hp / 6));
153             type_s = _("ÃÙÆß", "inertia");
154             ms_type = MS_BR_INERTIA;
155             smart_learn = FALSE;
156             break;
157         case GF_GRAVITY:
158             dam = ((m_ptr->hp / 3) > 200 ? 200 : (m_ptr->hp / 3));
159             type_s = _("½ÅÎÏ", "gravity");
160             ms_type = MS_BR_GRAVITY;
161             smart_learn = FALSE;
162             break;
163         case GF_SHARDS:
164             dam = ((m_ptr->hp / 6) > 500 ? 500 : (m_ptr->hp / 6));
165             type_s = _("ÇËÊÒ", "shards");
166             ms_type = MS_BR_SHARDS;
167             drs_type = DRS_SHARD;
168             break;
169         case GF_PLASMA:
170             dam = ((m_ptr->hp / 6) > 150 ? 150 : (m_ptr->hp / 6));
171             type_s = _("¥×¥é¥º¥Þ", "plasma");
172             ms_type = MS_BR_PLASMA;
173             smart_learn = FALSE;
174             break;
175         case GF_FORCE:
176             dam = ((m_ptr->hp / 6) > 200 ? 200 : (m_ptr->hp / 6));
177             type_s = _("¥Õ¥©¡¼¥¹", "force");
178             ms_type = MS_BR_FORCE;
179             smart_learn = FALSE;
180             break;
181         case GF_MANA:
182             dam = ((m_ptr->hp / 3) > 250 ? 250 : (m_ptr->hp / 3));
183             type_s = _("ËâÎÏ", "mana");
184             ms_type = MS_BR_MANA;
185             smart_learn = FALSE;
186             break;
187         case GF_NUKE:
188             dam = ((m_ptr->hp / 3) > 800 ? 800 : (m_ptr->hp / 3));
189             type_s = _("Êü¼ÍÀ­ÇÑ´þʪ", "toxic waste");
190             ms_type = MS_BR_NUKE;
191             drs_type = DRS_POIS;
192             break;
193         case GF_DISINTEGRATE:
194             dam = ((m_ptr->hp / 6) > 150 ? 150 : (m_ptr->hp / 6));
195             type_s = _("ʬ²ò", "disintegration");
196             ms_type = MS_BR_DISI;
197             smart_learn = FALSE;
198             break;
199         default:
200             break;
201     }
202
203     disturb(1, 1);
204     if (m_ptr->r_idx == MON_JAIAN && GF_TYPE == GF_SOUND)
205     {
206         msg_format(_("¡Ö¥Ü¥©¥¨¡Á¡Á¡Á¡Á¡Á¡Á¡×", "'Booooeeeeee'"));
207     }
208     else if (m_ptr->r_idx == MON_BOTEI && GF_TYPE == GF_SHARDS)
209     {
210         msg_format(_("¡Ö¥ÜÄë¥Ó¥ë¥«¥Ã¥¿¡¼¡ª¡ª¡ª¡×", "'Boty-Build cutter!!!'"));
211     }
212     else if (blind)
213     {
214         msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
215     }
216     else
217     {
218         msg_format(_("%^s¤¬%^s¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes %^s."), m_name, type_s);
219     }
220
221     breath(y, x, m_idx, GF_TYPE, dam, 0, TRUE, ms_type, learnable);
222     if (smart_learn) update_smart_learn(m_idx, drs_type);
223 }
224
225 void spell_RF4_BA_CHAO(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable)
226 {
227     int dam;
228     disturb(1, 1);
229
230     if (blind)
231         msg_format(_("%^s¤¬¶²¤í¤·¤²¤Ë¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles frighteningly."), m_name);
232     else
233         msg_format(_("%^s¤¬½ã¥í¥°¥ë¥¹¤òÊü¤Ã¤¿¡£", "%^s invokes a raw Logrus."), m_name);
234     
235     dam = ((r_ptr->flags2 & RF2_POWERFUL) ? (rlev * 3) : (rlev * 2)) + damroll(10, 10);
236
237     breath(y, x, m_idx, GF_CHAOS, dam, 4, FALSE, MS_BALL_CHAOS, learnable);
238     update_smart_learn(m_idx, DRS_CHAOS);
239 }
240
241 void spell_RF4_BA_NUKE(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable)
242 {
243     int dam;
244     disturb(1, 1);
245
246     if (blind)
247         msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
248     else
249         msg_format(_("%^s¤¬Êü¼Íǽµå¤òÊü¤Ã¤¿¡£", "%^s casts a ball of radiation."), m_name);
250     
251     dam = (rlev + damroll(10, 6)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
252
253     breath(y, x, m_idx, GF_NUKE, dam, 2, FALSE, MS_BALL_NUKE, learnable);
254     update_smart_learn(m_idx, DRS_POIS);
255 }
256
257 void spell_RF5_BA_ACID(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable)
258 {
259     int dam, rad;
260     disturb(1, 1);
261
262     if (blind)
263         msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
264     else
265         msg_format(_("%^s¤¬¥¢¥·¥Ã¥É¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts an acid ball."), m_name);
266     
267     if (r_ptr->flags2 & RF2_POWERFUL)
268     {
269         rad = 4;
270         dam = (rlev * 4) + 50 + damroll(10, 10);
271     }
272     else
273     {
274         rad = 2;
275         dam = (randint1(rlev * 3) + 15);
276     }
277     breath(y, x, m_idx, GF_ACID, dam, rad, FALSE, MS_BALL_ACID, learnable);
278     update_smart_learn(m_idx, DRS_ACID);
279 }
280
281 void spell_RF5_BA_ELEC(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable)
282 {
283     int dam, rad;
284     disturb(1, 1);
285
286     if (blind)
287         msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
288     else
289         msg_format(_("%^s¤¬¥µ¥ó¥À¡¼¡¦¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a lightning ball."), m_name);
290
291     if (r_ptr->flags2 & RF2_POWERFUL)
292     {
293         rad = 4;
294         dam = (rlev * 4) + 50 + damroll(10, 10);
295     }
296     else
297     {
298         rad = 2;
299         dam = (randint1(rlev * 3 / 2) + 8);
300     }
301     breath(y, x, m_idx, GF_ELEC, dam, rad, FALSE, MS_BALL_ELEC, learnable);
302     update_smart_learn(m_idx, DRS_ELEC);
303 }
304
305 void spell_RF5_BA_FIRE(monster_type* m_ptr, bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable)
306 {
307     int dam, rad;
308     disturb(1, 1);
309
310     if (m_ptr->r_idx == MON_ROLENTO)
311     {
312         if (blind)
313             msg_format(_("%s¤¬²¿¤«¤òÅꤲ¤¿¡£", "%^s throws something."), m_name);
314         else
315             msg_format(_("%s¤Ï¼êÜØÃƤòÅꤲ¤¿¡£", "%^s throws a hand grenade."), m_name);
316     }
317     else
318     {
319         if (blind)
320             msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
321         else
322             msg_format(_("%^s¤¬¥Õ¥¡¥¤¥¢¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a fire ball."), m_name);
323     }
324
325     if (r_ptr->flags2 & RF2_POWERFUL)
326     {
327         rad = 4;
328         dam = (rlev * 4) + 50 + damroll(10, 10);
329     }
330     else
331     {
332         rad = 2;
333         dam = (randint1(rlev * 7 / 2) + 10);
334     }
335     breath(y, x, m_idx, GF_FIRE, dam, rad, FALSE, MS_BALL_FIRE, learnable);
336     update_smart_learn(m_idx, DRS_FIRE);
337 }
338
339 void spell_RF5_BA_COLD(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable)
340 {
341     int dam, rad;
342     disturb(1, 1);
343
344     if (blind)
345         msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
346     else
347         msg_format(_("%^s¤¬¥¢¥¤¥¹¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a frost ball."), m_name);
348
349     if (r_ptr->flags2 & RF2_POWERFUL)
350     {
351         rad = 4;
352         dam = (rlev * 4) + 50 + damroll(10, 10);
353     }
354     else
355     {
356         rad = 2;
357         dam = (randint1(rlev * 3 / 2) + 10);
358     }
359     breath(y, x, m_idx, GF_COLD, dam, rad, FALSE, MS_BALL_COLD, learnable);
360     update_smart_learn(m_idx, DRS_COLD);
361 }
362
363 void spell_RF5_BA_POIS(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable)
364 {
365     int dam;
366     disturb(1, 1);
367
368     if (blind)
369         msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
370     else
371         msg_format(_("%^s¤¬°­½­±À¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a stinking cloud."), m_name);
372
373     dam = damroll(12, 2) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
374     breath(y, x, m_idx, GF_POIS, dam, 2, FALSE, MS_BALL_POIS, learnable);
375     update_smart_learn(m_idx, DRS_POIS);
376 }
377
378 void spell_RF5_BA_NETH(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable)
379 {
380     int dam;
381     disturb(1, 1);
382     if (blind)
383         msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
384     else
385         msg_format(_("%^s¤¬ÃϹöµå¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a nether ball."), m_name);
386
387     dam = 50 + damroll(10, 10) + (rlev * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1));
388     breath(y, x, m_idx, GF_NETHER, dam, 2, FALSE, MS_BALL_NETHER, learnable);
389     update_smart_learn(m_idx, DRS_NETH);
390 }
391
392 void spell_RF5_BA_WATE(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable)
393 {
394     int dam;
395     disturb(1, 1);
396
397     if (blind)
398         msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
399     else
400         msg_format(_("%^s¤¬Î®¤ì¤ë¤è¤¦¤Ê¿È¿¶¤ê¤ò¤·¤¿¡£", "%^s gestures fluidly."), m_name);
401
402     msg_print(_("¤¢¤Ê¤¿¤Ï±²´¬¤­¤Ë°û¤ß¹þ¤Þ¤ì¤¿¡£", "You are engulfed in a whirlpool."));
403
404     dam = ((r_ptr->flags2 & RF2_POWERFUL) ? randint1(rlev * 3) : randint1(rlev * 2)) + 50;
405     breath(y, x, m_idx, GF_WATER, dam, 4, FALSE, MS_BALL_WATER, learnable);
406 }
407
408 void spell_RF5_BA_MANA(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable)
409 {
410     int dam;
411     disturb(1, 1);
412     if (blind)
413         msg_format(_("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."), m_name);
414     else
415         msg_format(_("%^s¤¬ËâÎϤÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a mana storm."), m_name);
416
417     dam = (rlev * 4) + 50 + damroll(10, 10);
418     breath(y, x, m_idx, GF_MANA, dam, 4, FALSE, MS_BALL_MANA, learnable);
419 }
420
421 void spell_RF5_BA_DARK(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable)
422 {
423     int dam;
424     disturb(1, 1);
425
426     if (blind)
427         msg_format(_("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."), m_name);
428     else
429         msg_format(_("%^s¤¬°Å¹õ¤ÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a darkness storm."), m_name);
430
431     dam = (rlev * 4) + 50 + damroll(10, 10);
432     breath(y, x, m_idx, GF_DARK, dam, 4, FALSE, MS_BALL_DARK, learnable);
433     update_smart_learn(m_idx, DRS_DARK);
434 }
435
436 void spell_RF5_DRAIN_MANA(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable)
437 {
438     int dam;
439     disturb(1, 1);
440
441     dam = (randint1(rlev) / 2) + 1;
442     breath(y, x, m_idx, GF_DRAIN_MANA, dam, 0, FALSE, MS_DRAIN_MANA, learnable);
443     update_smart_learn(m_idx, DRS_MANA);
444 }
445
446 void spell_RF5_MIND_BLAST(bool seen, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable)
447 {
448     int dam;
449     disturb(1, 1);
450     if (!seen)
451         msg_print(_("²¿¤«¤¬¤¢¤Ê¤¿¤ÎÀº¿À¤ËÇ°¤òÊü¤Ã¤Æ¤¤¤ë¤è¤¦¤À¡£", "You feel something focusing on your mind."));
452     else
453         msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ÎÆ·¤ò¤¸¤Ã¤È¤Ë¤é¤ó¤Ç¤¤¤ë¡£", "%^s gazes deep into your eyes."), m_name);
454
455     dam = damroll(7, 7);
456     breath(y, x, m_idx, GF_MIND_BLAST, dam, 0, FALSE, MS_MIND_BLAST, learnable);
457 }
458
459 void spell_RF5_BRAIN_SMASH(bool seen, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable)
460 {
461     int dam;
462     disturb(1, 1);
463     if (!seen)
464         msg_print(_("²¿¤«¤¬¤¢¤Ê¤¿¤ÎÀº¿À¤ËÇ°¤òÊü¤Ã¤Æ¤¤¤ë¤è¤¦¤À¡£", "You feel something focusing on your mind."));
465     else
466         msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ÎÆ·¤ò¤¸¤Ã¤È¸«¤Æ¤¤¤ë¡£", "%^s looks deep into your eyes."), m_name);
467
468     dam = damroll(12, 12);
469 }
470
471 void spell_RF5_CAUSE_1(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable)
472 {
473     int dam;
474     disturb(1, 1);
475
476     if (blind)
477         msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
478     else
479         msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¼ö¤Ã¤¿¡£", "%^s points at you and curses."), m_name);
480
481     dam = damroll(3, 8);
482     breath(y, x, m_idx, GF_CAUSE_1, dam, 0, FALSE, MS_CAUSE_1, learnable);
483 }
484
485 void spell_RF5_CAUSE_2(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable)
486 {
487     int dam;
488     disturb(1, 1);
489
490     if (blind)
491         msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
492     else
493         msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¶²¤í¤·¤²¤Ë¼ö¤Ã¤¿¡£", "%^s points at you and curses horribly."), m_name);
494
495     dam = damroll(8, 8);
496     breath(y, x, m_idx, GF_CAUSE_2, dam, 0, FALSE, MS_CAUSE_2, learnable);
497 }
498
499 void spell_RF5_CAUSE_3(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable)
500 {
501     int dam;
502     disturb(1, 1);
503
504     if (blind)
505         msg_format(_("%^s¤¬²¿¤«¤òÂçÀ¼¤Ç¶«¤ó¤À¡£", "%^s mumbles loudly."), m_name);
506     else
507         msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¶²¤í¤·¤²¤Ë¼öʸ¤ò¾§¤¨¤¿¡ª", "%^s points at you, incanting terribly!"), m_name);
508
509     dam = damroll(10, 15);
510     breath(y, x, m_idx, GF_CAUSE_3, dam, 0, FALSE, MS_CAUSE_3, learnable);
511 }
512
513 void spell_RF5_CAUSE_4(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable)
514 {
515     int dam;
516     disturb(1, 1);
517
518     if (blind)
519         msg_format(_("%^s¤¬¡Ö¤ªÁ°¤Ï´û¤Ë»à¤ó¤Ç¤¤¤ë¡×¤È¶«¤ó¤À¡£", "%^s screams the word 'DIE!'"), m_name);
520     else
521         msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ÎÈ빦¤òÆͤ¤¤Æ¡Ö¤ªÁ°¤Ï´û¤Ë»à¤ó¤Ç¤¤¤ë¡×¤È¶«¤ó¤À¡£",
522         "%^s points at you, screaming the word DIE!"), m_name);
523
524     dam = damroll(15, 15);
525     breath(y, x, m_idx, GF_CAUSE_4, dam, 0, FALSE, MS_CAUSE_4, learnable);
526 }
527
528 void spell_RF5_BO_ACID(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable)
529 {
530     int dam;
531     disturb(1, 1);
532
533     if (blind)
534         msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
535     else
536         msg_format(_("%^s¤¬¥¢¥·¥Ã¥É¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a acid bolt."), m_name);
537
538     dam = (damroll(7, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
539     bolt(m_idx, GF_ACID, dam, MS_BOLT_ACID, learnable);
540     update_smart_learn(m_idx, DRS_ACID);
541     update_smart_learn(m_idx, DRS_REFLECT);
542 }
543
544 void spell_RF5_BO_ELEC(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable)
545 {
546     int dam;
547     disturb(1, 1);
548
549     if (blind)
550         msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
551     else
552         msg_format(_("%^s¤¬¥µ¥ó¥À¡¼¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a lightning bolt."), m_name);
553
554     dam = (damroll(4, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
555     bolt(m_idx, GF_ELEC, dam, MS_BOLT_ELEC, learnable);
556     update_smart_learn(m_idx, DRS_ELEC);
557     update_smart_learn(m_idx, DRS_REFLECT);
558 }
559
560 void spell_RF5_BO_FIRE(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable)
561 {
562     int dam;
563     disturb(1, 1);
564
565     if (blind)
566         msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
567     else
568         msg_format(_("%^s¤¬¥Õ¥¡¥¤¥¢¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a fire bolt."), m_name);
569
570     dam = (damroll(9, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
571     bolt(m_idx, GF_FIRE, dam, MS_BOLT_FIRE, learnable);
572     update_smart_learn(m_idx, DRS_FIRE);
573     update_smart_learn(m_idx, DRS_REFLECT);
574 }
575
576 void spell_RF5_BO_COLD(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable)
577 {
578     int dam;
579     disturb(1, 1);
580
581     if (blind)
582         msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
583     else
584         msg_format(_("%^s¤¬¥¢¥¤¥¹¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a frost bolt."), m_name);
585
586     dam = (damroll(6, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
587     bolt(m_idx, GF_COLD, dam, MS_BOLT_COLD, learnable);
588     update_smart_learn(m_idx, DRS_COLD);
589     update_smart_learn(m_idx, DRS_REFLECT);
590 }
591
592
593 void spell_RF5_BA_LITE(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable)
594 {
595     int dam;
596     disturb(1, 1);
597
598     if (blind)
599         msg_format(_("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."), m_name);
600     else
601         msg_format(_("%^s¤¬¥¹¥¿¡¼¥Ð¡¼¥¹¥È¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a starburst."), m_name);
602
603     dam = (rlev * 4) + 50 + damroll(10, 10);
604     breath(y, x, m_idx, GF_LITE, dam, 4, FALSE, MS_STARBURST, learnable);
605     update_smart_learn(m_idx, DRS_LITE);
606 }
607
608
609 void spell_RF5_BO_NETH(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable)
610 {
611     int dam;
612     disturb(1, 1);
613
614     if (blind)
615         msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
616     else
617         msg_format(_("%^s¤¬ÃϹö¤ÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a nether bolt."), m_name);
618
619     dam = 30 + damroll(5, 5) + (rlev * 4) / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3);
620     bolt(m_idx, GF_NETHER, dam, MS_BOLT_NETHER, learnable);
621     update_smart_learn(m_idx, DRS_NETH);
622     update_smart_learn(m_idx, DRS_REFLECT);
623 }
624
625 void spell_RF5_BO_WATE(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable)
626 {
627     int dam;
628     disturb(1, 1);
629
630     if (blind)
631         msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
632     else
633         msg_format(_("%^s¤¬¥¦¥©¡¼¥¿¡¼¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a water bolt."), m_name);
634
635     dam = damroll(10, 10) + (rlev * 3 / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3));
636     bolt(m_idx, GF_WATER, dam, MS_BOLT_WATER, learnable);
637     update_smart_learn(m_idx, DRS_REFLECT);
638 }
639
640 void spell_RF5_BO_MANA(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable)
641 {
642     int dam;
643     disturb(1, 1);
644     if (blind)
645         msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
646     else
647         msg_format(_("%^s¤¬ËâÎϤÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a mana bolt."), m_name);
648
649     dam = randint1(rlev * 7 / 2) + 50;
650     bolt(m_idx, GF_MANA, dam, MS_BOLT_MANA, learnable);
651     update_smart_learn(m_idx, DRS_REFLECT);
652 }
653
654 void spell_RF5_BO_PLAS(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable)
655 {
656     int dam;
657     disturb(1, 1);
658     if (blind)
659         msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
660
661     else
662         msg_format(_("%^s¤¬¥×¥é¥º¥Þ¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a plasma bolt."), m_name);
663
664     dam = 10 + damroll(8, 7) + (rlev * 3 / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3));
665     bolt(m_idx, GF_PLASMA, dam, MS_BOLT_PLASMA, learnable);
666     update_smart_learn(m_idx, DRS_REFLECT);
667 }
668
669 void spell_RF5_BO_ICEE(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable)
670 {
671     int dam;
672     disturb(1, 1);
673     if (blind)
674         msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
675     else
676         msg_format(_("%^s¤¬¶Ë´¨¤ÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts an ice bolt."), m_name);
677
678     dam = damroll(6, 6) + (rlev * 3 / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3));
679     bolt(m_idx, GF_ICE, dam, MS_BOLT_ICE, learnable);
680     update_smart_learn(m_idx, DRS_COLD);
681     update_smart_learn(m_idx, DRS_REFLECT);
682 }
683
684
685 void spell_RF5_MISSILE(bool blind, cptr m_name, monster_race* r_ptr, int rlev, int y, int x, int m_idx, bool learnable)
686 {
687     int dam;
688     disturb(1, 1);
689     if (blind)
690         msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
691     else
692         msg_format(_("%^s¤¬¥Þ¥¸¥Ã¥¯¡¦¥ß¥µ¥¤¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a magic missile."), m_name);
693
694     dam = damroll(2, 6) + (rlev / 3);
695     bolt(m_idx, GF_MISSILE, dam, MS_MAGIC_MISSILE, learnable);
696     update_smart_learn(m_idx, DRS_REFLECT);
697 }