OSDN Git Service

summon_specific() や、place_monster()等の仕様変更。
[hengband/hengband.git] / src / mspells2.c
1 /* File: mspells2.c */
2
3 /* Purpose: Monster spells (attack monster) */
4
5 /*
6  * Copyright (c) 1989 James E. Wilson, Robert A. Koeneke
7  *
8  * This software may be copied and distributed for educational, research, and
9  * not for profit purposes provided that this copyright and statement are
10  * included in all such copies.
11  */
12
13 #include "angband.h"
14
15
16 /*
17  * Monster casts a breath (or ball) attack at another monster.
18  * Pass over any monsters that may be in the way
19  * Affect grids, objects, monsters, and the player
20  */
21 static void monst_breath_monst(int m_idx, int y, int x, int typ, int dam_hp, int rad, bool breath, int monspell, bool learnable)
22 {
23         int flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL | PROJECT_MONSTER;
24
25         monster_type *m_ptr = &m_list[m_idx];
26         monster_race *r_ptr = &r_info[m_ptr->r_idx];
27
28         /* Determine the radius of the blast */
29         if (rad < 1) rad = (r_ptr->flags2 & RF2_POWERFUL) ? 3 : 2;
30
31         /* Handle breath attacks */
32         if (breath) rad = 0 - rad;
33
34         if (typ == GF_ROCKET) flg |= PROJECT_STOP;
35
36         (void)project(m_idx, rad, y, x, dam_hp, typ, flg, (learnable ? monspell : -1));
37 }
38
39
40 /*
41  * Monster casts a bolt at another monster
42  * Stop if we hit a monster
43  * Affect monsters and the player
44  */
45 static void monst_bolt_monst(int m_idx, int y, int x, int typ, int dam_hp, int monspell, bool learnable)
46 {
47         int flg = PROJECT_STOP | PROJECT_KILL | PROJECT_MONSTER;
48
49         (void)project(m_idx, 0, y, x, dam_hp, typ, flg, (learnable ? monspell : -1));
50 }
51
52 static void monst_beam_monst(int m_idx, int y, int x, int typ, int dam_hp, int monspell, bool learnable)
53 {
54         int flg = PROJECT_BEAM | PROJECT_KILL | PROJECT_THRU | PROJECT_MONSTER | PROJECT_NO_REF;
55
56         (void)project(m_idx, 0, y, x, dam_hp, typ, flg, (learnable ? monspell : -1));
57 }
58
59 /*
60  * Determine if a beam spell will hit the target.
61  */
62 bool direct_beam(int y1, int x1, int y2, int x2, monster_type *m_ptr)
63 {
64         bool hit2 = FALSE;
65         int i, y, x;
66
67         int grid_n = 0;
68         u16b grid_g[512];
69
70         bool friend = is_pet(m_ptr);
71
72         /* Check the projection path */
73         grid_n = project_path(grid_g, MAX_RANGE, y1, x1, y2, x2, PROJECT_THRU);
74
75         /* No grid is ever projectable from itself */
76         if (!grid_n) return (FALSE);
77
78         for (i = 0; i < grid_n; i++)
79         {
80                 y = GRID_Y(grid_g[i]);
81                 x = GRID_X(grid_g[i]);
82
83                 if (y == y2 && x == x2)
84                         hit2 = TRUE;
85                 else if (friend && cave[y][x].m_idx > 0 &&
86                          !are_enemies(m_ptr, &m_list[cave[y][x].m_idx]))
87                 {
88                         /* Friends don't shoot friends */
89                         return FALSE;
90                 }
91
92                 if (friend && y == py && x == px)
93                         return FALSE;
94         }
95         if (!hit2)
96                 return FALSE;
97         return TRUE;
98 }
99
100 static bool breath_direct(int y1, int x1, int y2, int x2, int rad, bool disint_ball, bool friend)
101 {
102         /* Must be the same as projectable() */
103
104         int i, y, x;
105
106         int grid_n = 0;
107         u16b grid_g[512];
108
109         void breath_shape(u16b *path_g, int dist, int *pgrids, byte *gx, byte *gy, byte *gm, int *pgm_rad, int rad, int y1, int x1, int y2, int x2, bool disint_ball, bool real_breath);
110
111         int grids = 0;
112         byte gx[1024], gy[1024];
113         byte gm[32];
114         int gm_rad = rad;
115
116         bool hit2 = FALSE;
117         bool hityou = FALSE;
118
119         /* Check the projection path */
120         grid_n = project_path(grid_g, MAX_RANGE, y1, x1, y2, x2, disint_ball ? PROJECT_DISI : 0);
121         breath_shape(grid_g, grid_n, &grids, gx, gy, gm, &gm_rad, rad, y1, x1, y2, x2, disint_ball, FALSE);
122
123         for (i = 0; i < grids; i++)
124         {
125                 /* Extract the location */
126                 y = gy[i];
127                 x = gx[i];
128
129                 if (y == y2 && x == x2)
130                         hit2 = TRUE;
131                 if (y == py && x == px)
132                         hityou = TRUE;
133         }
134         if (!hit2)
135                 return FALSE;
136         if (friend && hityou)
137                 return FALSE;
138         return TRUE;
139 }
140
141 /*
142  * Monster tries to 'cast a spell' (or breath, etc)
143  * at another monster.
144  *
145  * The player is only disturbed if able to be affected by the spell.
146  */
147 bool monst_spell_monst(int m_idx)
148 {
149         int y = 0, x = 0;
150         int i, k, t_idx;
151         int chance, thrown_spell, count = 0;
152         int rlev;
153         int dam = 0;
154         int start;
155         int plus = 1;
156         u32b p_mode = 0L, u_mode = 0L;
157         int s_num_6 = (easy_band ? 2 : 6);
158         int s_num_4 = (easy_band ? 1 : 4);
159
160         byte spell[96], num = 0;
161
162         char m_name[160];
163         char t_name[160];
164         char m_poss[160];
165         char ddesc[160];
166
167         monster_type *m_ptr = &m_list[m_idx];
168         monster_type *t_ptr;
169
170         monster_race *r_ptr = &r_info[m_ptr->r_idx];
171         monster_race *tr_ptr;
172
173         u32b f4, f5, f6;
174
175         /* Expected ball spell radius */
176         int rad = (r_ptr->flags2 & RF2_POWERFUL) ? 3 : 2;
177
178         bool wake_up = FALSE;
179         bool fear = FALSE;
180
181         bool blind = (p_ptr->blind ? TRUE : FALSE);
182
183         bool see_m = m_ptr->ml;
184         bool maneable = player_has_los_bold(m_ptr->fy, m_ptr->fx);
185         bool learnable = (see_m && maneable && !world_monster);
186         bool see_t;
187         bool see_either;
188         bool see_both;
189         bool known;
190
191         bool pet = is_pet(m_ptr);
192
193         /* Prepare flags for summoning */
194         if (pet) p_mode |= PM_FORCE_PET;
195         if (!pet) u_mode |= PM_ALLOW_UNIQUE;
196
197         /* Cannot cast spells when confused */
198         if (m_ptr->confused) return (FALSE);
199
200         /* Hack -- Extract the spell probability */
201         chance = (r_ptr->freq_inate + r_ptr->freq_spell) / 2;
202
203         /* Not allowed to cast spells */
204         if (!chance) return (FALSE);
205
206         if (randint0(100) >= chance) return (FALSE);
207
208         if (p_ptr->inside_battle)
209         {
210                 start = randint1(m_max-1)+m_max;
211                 if(randint0(2)) plus = -1;
212         }
213         else start = m_max + 1;
214
215         /* Scan thru all monsters */
216         for (i = start; ((i < start + m_max) && (i > start - m_max)); i+=plus)
217         {
218                 /* The monster itself isn't a target */
219                 int dummy = (i % m_max);
220                 if (!dummy) continue;
221
222                 t_idx = dummy;
223                 t_ptr = &m_list[t_idx];
224                 tr_ptr = &r_info[t_ptr->r_idx];
225
226                 /* Paranoia -- Skip dead monsters */
227                 if (!t_ptr->r_idx) continue;
228
229                 if (pet)
230                 {
231                         if (pet_t_m_idx && (dummy != pet_t_m_idx) && !los(m_ptr->fy, m_ptr->fx, t_ptr->fy, t_ptr->fx)) continue;
232                 }
233
234                 /* Monster must be 'an enemy' */
235                 if (!are_enemies(m_ptr, t_ptr)) continue;
236
237                 /* Extract the racial spell flags */
238                 f4 = r_ptr->flags4;
239                 f5 = r_ptr->flags5;
240                 f6 = r_ptr->flags6;
241
242                 /* Monster must be projectable */
243                 if (!projectable(m_ptr->fy, m_ptr->fx, t_ptr->fy, t_ptr->fx))
244                 {
245                         bool success = FALSE;
246                         if (m_ptr->target_y)
247                         {
248                                 if ((m_ptr->target_y == t_ptr->fy) && (m_ptr->target_x == t_ptr->fx))
249                                 {
250                                         y = m_ptr->target_y;
251                                         x = m_ptr->target_x;
252                                         f4 &= (RF4_INDIRECT_MASK);
253                                         f5 &= (RF5_INDIRECT_MASK);
254                                         f6 &= (RF6_INDIRECT_MASK);
255                                         success = TRUE;
256                                 }
257                         }
258                         if (!success) continue;
259                 }
260
261                 reset_target(m_ptr);
262
263                 /* OK -- we've got a target */
264                 y = t_ptr->fy;
265                 x = t_ptr->fx;
266
267                 /* Extract the monster level */
268                 rlev = ((r_ptr->level >= 1) ? r_ptr->level : 1);
269
270                 if (pet)
271                 {
272                         f4 &= ~(RF4_SHRIEK);
273                         f6 &= ~(RF6_DARKNESS | RF6_TRAPS);
274                 }
275
276                 if (dun_level && (!p_ptr->inside_quest || (p_ptr->inside_quest < MIN_RANDOM_QUEST)) && (d_info[dungeon_type].flags1 & DF1_NO_MAGIC))
277                 {
278                         f4 &= (RF4_NOMAGIC_MASK);
279                         f5 &= (RF5_NOMAGIC_MASK);
280                         f6 &= (RF6_NOMAGIC_MASK);
281                 }
282
283                 if (p_ptr->inside_arena || p_ptr->inside_battle)
284                 {
285                         f4 &= ~(RF4_SUMMON_MASK);
286                         f5 &= ~(RF5_SUMMON_MASK);
287                         f6 &= ~(RF6_SUMMON_MASK);
288                 }
289                 if (p_ptr->inside_battle && !one_in_(3))
290                 {
291                         f6 &= ~(RF6_HEAL);
292                 }
293
294                 if (!(p_ptr->pet_extra_flags & PF_TELEPORT) && pet)
295                 {
296                         f6 &= ~((RF6_BLINK | RF6_TPORT | RF6_TELE_AWAY));
297                 }
298
299                 if (m_idx == p_ptr->riding)
300                 {
301                         f4 &= ~(RF4_RIDING_MASK);
302                         f5 &= ~(RF5_RIDING_MASK);
303                         f6 &= ~(RF6_RIDING_MASK);
304                 }
305
306                 if (!(p_ptr->pet_extra_flags & PF_ATTACK_SPELL) && pet)
307                 {
308                         f4 &= ~(RF4_ATTACK_MASK);
309                         f5 &= ~(RF5_ATTACK_MASK);
310                         f6 &= ~(RF6_ATTACK_MASK);
311                 }
312
313                 if (!(p_ptr->pet_extra_flags & PF_SUMMON_SPELL) && pet)
314                 {
315                         f4 &= ~(RF4_SUMMON_MASK);
316                         f5 &= ~(RF5_SUMMON_MASK);
317                         f6 &= ~(RF6_SUMMON_MASK);
318                 }
319
320                 /* Prevent collateral damage */
321                 if (!(p_ptr->pet_extra_flags & PF_BALL_SPELL) && pet && (m_idx != p_ptr->riding))
322                 {
323                         if(distance(py, px, y, x) <= rad)
324                         {
325                                 f4 &= ~(RF4_BALL_MASK);
326                                 f5 &= ~(RF5_BALL_MASK);
327                                 f6 &= ~(RF6_BALL_MASK);
328                         }
329
330                         if (((f4 & RF4_BEAM_MASK) ||
331                              (f5 & RF5_BEAM_MASK) ||
332                              (f6 & RF6_BEAM_MASK)) &&
333                             !direct_beam(m_ptr->fy, m_ptr->fx, t_ptr->fy, t_ptr->fx, m_ptr))
334                         {
335                                 f4 &= ~(RF4_BEAM_MASK);
336                                 f5 &= ~(RF5_BEAM_MASK);
337                                 f6 &= ~(RF6_BEAM_MASK);
338                         }
339
340                         if (((f4 & RF4_BREATH_MASK) ||
341                           (f5 & RF5_BREATH_MASK) ||
342                           (f6 & RF6_BREATH_MASK)) &&
343                          !breath_direct(m_ptr->fy, m_ptr->fx, t_ptr->fy, t_ptr->fx, rad, FALSE, TRUE))
344                         {
345                                 f4 &= ~(RF4_BREATH_MASK);
346                                 f5 &= ~(RF5_BREATH_MASK);
347                                 f6 &= ~(RF6_BREATH_MASK);
348                         }
349                         else if ((f4 & RF4_BR_DISI) &&
350                                  !breath_direct(m_ptr->fy, m_ptr->fx, t_ptr->fy, t_ptr->fx, rad, TRUE, TRUE))
351                         {
352                                 f4 &= ~(RF4_BR_DISI);
353                         }
354                 }
355
356                 /* Remove some spells if necessary */
357                 if (!stupid_monsters)
358                 {
359                         /* Check for a clean bolt shot */
360                         if (((f4 & RF4_BOLT_MASK) ||
361                              (f5 & RF5_BOLT_MASK) ||
362                              (f6 & RF6_BOLT_MASK)) &&
363                             !(r_ptr->flags2 & RF2_STUPID) &&
364                             !clean_shot(m_ptr->fy, m_ptr->fx, t_ptr->fy, t_ptr->fx, pet))
365                         {
366                                 f4 &= ~(RF4_BOLT_MASK);
367                                 f5 &= ~(RF5_BOLT_MASK);
368                                 f6 &= ~(RF6_BOLT_MASK);
369                         }
370
371                         /* Check for a possible summon */
372                         if (((f4 & RF4_SUMMON_MASK) ||
373                              (f5 & RF5_SUMMON_MASK) ||
374                              (f6 & RF6_SUMMON_MASK)) &&
375                             !(r_ptr->flags2 & RF2_STUPID) &&
376                             !(summon_possible(t_ptr->fy, t_ptr->fx)))
377                         {
378                                 /* Remove summoning spells */
379                                 f4 &= ~(RF4_SUMMON_MASK);
380                                 f5 &= ~(RF5_SUMMON_MASK);
381                                 f6 &= ~(RF6_SUMMON_MASK);
382                         }
383                 }
384                 /* Hack -- allow "desperate" spells */
385                 if ((r_ptr->flags2 & RF2_SMART) &&
386                         (m_ptr->hp < m_ptr->maxhp / 10) &&
387                         (randint0(100) < 50))
388                 {
389                         /* Require intelligent spells */
390                         f4 &= (RF4_INT_MASK);
391                         f5 &= (RF5_INT_MASK);
392                         f6 &= (RF6_INT_MASK);
393
394                 }
395
396                 /* No spells left */
397                 if (!f4 && !f5 && !f6) return (FALSE);
398
399                 /* Extract the "inate" spells */
400                 for (k = 0; k < 32; k++)
401                 {
402                         if (f4 & (1L << k)) spell[num++] = k + 32 * 3;
403                 }
404
405                 /* Extract the "normal" spells */
406                 for (k = 0; k < 32; k++)
407                 {
408                         if (f5 & (1L << k)) spell[num++] = k + 32 * 4;
409                 }
410
411                 /* Extract the "bizarre" spells */
412                 for (k = 0; k < 32; k++)
413                 {
414                         if (f6 & (1L << k)) spell[num++] = k + 32 * 5;
415                 }
416
417                 /* No spells left */
418                 if (!num) return (FALSE);
419
420                 /* Stop if player is dead or gone */
421                 if (!alive || death) return (FALSE);
422
423                 /* Handle "leaving" */
424                 if (p_ptr->leaving) return (FALSE);
425
426                 /* Get the monster name (or "it") */
427                 monster_desc(m_name, m_ptr, 0x00);
428
429                 /* Get the monster possessive ("his"/"her"/"its") */
430                 monster_desc(m_poss, m_ptr, 0x22);
431
432                 /* Get the target's name (or "it") */
433                 monster_desc(t_name, t_ptr, 0x00);
434
435                 /* Hack -- Get the "died from" name */
436                 monster_desc(ddesc, m_ptr, 0x88);
437
438                 /* Choose a spell to cast */
439                 thrown_spell = spell[randint0(num)];
440
441                 see_t = t_ptr->ml;
442                 see_either = (see_m || see_t);
443                 see_both = (see_m && see_t);
444
445                 /* Can the player be aware of this attack? */
446                 known = (m_ptr->cdis <= MAX_SIGHT) || (t_ptr->cdis <= MAX_SIGHT);
447
448                 if (p_ptr->riding && (m_idx == p_ptr->riding)) disturb(1, 0);
449
450                 /* Check for spell failure (inate attacks never fail) */
451                 if ((thrown_spell >= 128) && m_ptr->stunned && one_in_(2))
452                 {
453                         disturb(1, 0);
454                         /* Message */
455                         if (thrown_spell != (160+7)) /* Not RF6_SPECIAL */
456                         {
457 #ifdef JP
458 msg_format("%^s¤Ï¼öʸ¤ò¾§¤¨¤è¤¦¤È¤·¤¿¤¬¼ºÇÔ¤·¤¿¡£", m_name);
459 #else
460                                 msg_format("%^s tries to cast a spell, but fails.", m_name);
461 #endif
462                         }
463
464                         return (TRUE);
465                 }
466
467                 switch (thrown_spell)
468                 {
469                         /* RF4_SHRIEK */
470                         case 96+0:
471                         {
472                                 if (known)
473                                 {
474                                         if (see_m)
475                                         {
476 #ifdef JP
477 msg_format("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¶«¤ó¤À¡£", m_name, t_name);
478 #else
479                                                 msg_format("%^s shrieks at %s.", m_name, t_name);
480 #endif
481
482                                         }
483                                         else
484                                         {
485                                                 mon_fight = TRUE;
486                                         }
487                                 }
488
489                                 wake_up = TRUE;
490
491                                 break;
492                         }
493
494                         /* RF4_XXX1 */
495                         case 96+1:
496                         {
497                                 /* XXX XXX XXX */
498                                 return FALSE;
499                         }
500
501                         /* RF4_DISPEL */
502                         case 96+2:
503                         {
504                                 return FALSE;
505                         }
506
507                         /* RF4_XXX4X4 */
508                         case 96+3:
509                         {
510                                 if (known)
511                                 {
512                                         if (see_either)
513                                         {
514                                                 disturb(1, 0);
515
516                                                 if (blind)
517                                                 {
518 #ifdef JP
519 msg_format("%^s¤¬²¿¤«¤ò¼Í¤Ã¤¿¡£", m_name);
520 #else
521                                                         msg_format("%^s shoots something.", m_name);
522 #endif
523
524                                                 }
525                                                 else
526                                                 {
527 #ifdef JP
528 msg_format("%^s¤¬%s¤Ë¥í¥±¥Ã¥È¤òȯ¼Í¤·¤¿¡£", m_name, t_name);
529 #else
530                                                         msg_format("%^s fires a rocket at %s.", m_name, t_name);
531 #endif
532
533                                                 }
534                                         }
535                                         else
536                                         {
537                                                 mon_fight = TRUE;
538                                         }
539                                 }
540
541                                 dam = ((m_ptr->hp / 4) > 800 ? 800 : (m_ptr->hp / 4));
542                                 monst_breath_monst(m_idx, y, x, GF_ROCKET,
543                                         dam, 2, FALSE, MS_ROCKET, learnable);
544
545                                 break;
546                         }
547
548                         /* RF4_SHOOT */
549                         case 96+4:
550                         {
551                                 if (known)
552                                 {
553                                         if (see_either)
554                                         {
555                                                 if (blind)
556                                                 {
557 #ifdef JP
558 msg_format("%^s¤¬´ñ̯¤Ê²»¤òȯ¤·¤¿¡£", m_name);
559 #else
560                                                         msg_format("%^s makes a strange noise.", m_name);
561 #endif
562
563                                                 }
564                                                 else
565                                                 {
566 #ifdef JP
567 msg_format("%^s¤¬%s¤ËÌð¤òÊü¤Ã¤¿¡£", m_name, t_name);
568 #else
569                                                         msg_format("%^s fires an arrow at %s.", m_name, t_name);
570 #endif
571
572                                                 }
573                                         }
574                                         else
575                                         {
576                                                 mon_fight = TRUE;
577                                         }
578
579                                         sound(SOUND_SHOOT);
580                                 }
581
582                                 dam = damroll(r_ptr->blow[0].d_dice, r_ptr->blow[0].d_side);
583                                 monst_bolt_monst(m_idx, y, x, GF_ARROW, dam, MS_SHOOT, learnable);
584
585                                 break;
586                         }
587
588                         /* RF4_XXX2 */
589                         case 96+5:
590                         {
591                                 /* XXX XXX XXX */
592                                 return FALSE;
593                         }
594
595                         /* RF4_XXX3 */
596                         case 96+6:
597                         {
598                                 /* XXX XXX XXX */
599                                 return FALSE;
600                         }
601
602                         /* RF4_XXX4 */
603                         case 96+7:
604                         {
605                                 /* XXX XXX XXX */
606                                 return FALSE;
607                         }
608
609                         /* RF4_BR_ACID */
610                         case 96+8:
611                         {
612                                 if (known)
613                                 {
614                                         if (see_either)
615                                         {
616                                                 disturb(1, 0);
617
618                                                 if (blind)
619                                                 {
620 #ifdef JP
621 msg_format("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name);
622 #else
623                                                         msg_format("%^s breathes.", m_name);
624 #endif
625
626                                                 }
627                                                 else
628                                                 {
629 #ifdef JP
630 msg_format("%^s¤¬%s¤Ë»À¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name, t_name);
631 #else
632                                                         msg_format("%^s breathes acid at %s.", m_name, t_name);
633 #endif
634
635                                                 }
636                                         }
637                                         else
638                                         {
639                                                 mon_fight = TRUE;
640                                         }
641
642                                         sound(SOUND_BREATH);
643                                 }
644
645                                 dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
646                                 monst_breath_monst(m_idx, y, x, GF_ACID,
647                                         dam,0, TRUE, MS_BR_ACID, learnable);
648
649                                 break;
650                         }
651
652                         /* RF4_BR_ELEC */
653                         case 96+9:
654                         {
655                                 if (known)
656                                 {
657                                         if (see_either)
658                                         {
659                                                 disturb(1, 0);
660
661                                                 if (blind)
662                                                 {
663 #ifdef JP
664 msg_format("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name);
665 #else
666                                                         msg_format("%^s breathes.", m_name);
667 #endif
668
669                                                 }
670                                                 else
671                                                 {
672 #ifdef JP
673 msg_format("%^s¤¬%s¤Ë°ðºÊ¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name, t_name);
674 #else
675                                                         msg_format("%^s breathes lightning at %s.", m_name, t_name);
676 #endif
677
678                                                 }
679                                         }
680                                         else
681                                         {
682                                                 mon_fight = TRUE;
683                                         }
684
685                                         sound(SOUND_BREATH);
686                                 }
687
688                                 dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
689                                 monst_breath_monst(m_idx, y, x, GF_ELEC,
690                                         dam,0, TRUE, MS_BR_ELEC, learnable);
691
692                                 break;
693                         }
694
695                         /* RF4_BR_FIRE */
696                         case 96+10:
697                         {
698                                 if (known)
699                                 {
700                                         if (see_either)
701                                         {
702                                                 disturb(1, 0);
703
704                                                 if (blind)
705                                                 {
706 #ifdef JP
707 msg_format("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name);
708 #else
709                                                         msg_format("%^s breathes.", m_name);
710 #endif
711
712                                                 }
713                                                 else
714                                                 {
715 #ifdef JP
716 msg_format("%^s¤¬%s¤Ë²Ð±ê¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name, t_name);
717 #else
718                                                         msg_format("%^s breathes fire at %s.", m_name, t_name);
719 #endif
720
721                                                 }
722                                         }
723                                         else
724                                         {
725                                                 mon_fight = TRUE;
726                                         }
727
728                                         sound(SOUND_BREATH);
729                                 }
730
731                                 dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
732                                 monst_breath_monst(m_idx, y, x, GF_FIRE,
733                                         dam,0, TRUE, MS_BR_FIRE, learnable);
734
735                                 break;
736                         }
737
738                         /* RF4_BR_COLD */
739                         case 96+11:
740                         {
741                                 if (known)
742                                 {
743                                         if (see_either)
744                                         {
745                                                 disturb(1, 0);
746
747                                                 if (blind)
748                                                 {
749 #ifdef JP
750 msg_format("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name);
751 #else
752                                                         msg_format("%^s breathes.", m_name);
753 #endif
754
755                                                 }
756                                                 else
757                                                 {
758 #ifdef JP
759 msg_format("%^s¤¬%s¤ËÎ䵤¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name, t_name);
760 #else
761                                                         msg_format("%^s breathes frost at %s.", m_name, t_name);
762 #endif
763
764                                                 }
765                                         }
766                                         else
767                                         {
768                                                 mon_fight = TRUE;
769                                         }
770
771                                         sound(SOUND_BREATH);
772                                 }
773
774                                 dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
775                                 monst_breath_monst(m_idx, y, x, GF_COLD,
776                                         dam,0, TRUE, MS_BR_COLD, learnable);
777                                 break;
778                         }
779
780                         /* RF4_BR_POIS */
781                         case 96+12:
782                         {
783                                 if (known)
784                                 {
785                                         if (see_either)
786                                         {
787                                                 disturb(1, 0);
788
789                                                 if (blind)
790                                                 {
791 #ifdef JP
792 msg_format("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name);
793 #else
794                                                         msg_format("%^s breathes.", m_name);
795 #endif
796
797                                                 }
798                                                 else
799                                                 {
800 #ifdef JP
801 msg_format("%^s¤¬%s¤Ë¥¬¥¹¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name, t_name);
802 #else
803                                                         msg_format("%^s breathes gas at %s.", m_name, t_name);
804 #endif
805
806                                                 }
807                                         }
808                                         else
809                                         {
810                                                 mon_fight = TRUE;
811                                         }
812
813                                         sound(SOUND_BREATH);
814                                 }
815
816                                 dam = ((m_ptr->hp / 3) > 800 ? 800 : (m_ptr->hp / 3));
817                                 monst_breath_monst(m_idx, y, x, GF_POIS,
818                                         dam,0, TRUE, MS_BR_POIS, learnable);
819
820                                 break;
821                         }
822
823                         /* RF4_BR_NETH */
824                         case 96+13:
825                         {
826                                 if (known)
827                                 {
828                                         if (see_either)
829                                         {
830                                                 disturb(1, 0);
831
832                                                 if (blind)
833                                                 {
834 #ifdef JP
835 msg_format("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name);
836 #else
837                                                         msg_format("%^s breathes.", m_name);
838 #endif
839
840                                                 }
841                                                 else
842                                                 {
843 #ifdef JP
844 msg_format("%^s¤¬%s¤ËÃϹö¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name, t_name);
845 #else
846                                                         msg_format("%^s breathes nether at %s.", m_name, t_name);
847 #endif
848
849                                                 }
850                                         }
851                                         else
852                                         {
853                                                 mon_fight = TRUE;
854                                         }
855
856                                         sound(SOUND_BREATH);
857                                 }
858
859                                 dam = ((m_ptr->hp / 6) > 550 ? 550 : (m_ptr->hp / 6));
860                                 monst_breath_monst(m_idx, y, x, GF_NETHER,
861                                         dam,0, TRUE, MS_BR_NETHER, learnable);
862
863                                 break;
864                         }
865
866                         /* RF4_BR_LITE */
867                         case 96+14:
868                         {
869                                 if (known)
870                                 {
871                                         if (see_either)
872                                         {
873                                                 disturb(1, 0);
874
875                                                 if (blind)
876                                                 {
877 #ifdef JP
878 msg_format("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name);
879 #else
880                                                         msg_format("%^s breathes.", m_name);
881 #endif
882
883                                                 }
884                                                 else
885                                                 {
886 #ifdef JP
887 msg_format("%^s¤¬%s¤ËÁ®¸÷¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name, t_name);
888 #else
889                                                         msg_format("%^s breathes light at %s.", m_name, t_name);
890 #endif
891
892                                                 }
893                                         }
894                                         else
895                                         {
896                                                 mon_fight = TRUE;
897                                         }
898
899                                         sound(SOUND_BREATH);
900                                 }
901
902                                 dam = ((m_ptr->hp / 6) > 400 ? 400 : (m_ptr->hp / 6));
903                                 monst_breath_monst(m_idx, y, x, GF_LITE,
904                                         dam,0, TRUE, MS_BR_LITE, learnable);
905
906                                 break;
907                         }
908
909                         /* RF4_BR_DARK */
910                         case 96+15:
911                         {
912                                 if (known)
913                                 {
914                                         if (see_either)
915                                         {
916                                                 disturb(1, 0);
917
918                                                 if (blind)
919                                                 {
920 #ifdef JP
921 msg_format("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name);
922 #else
923                                                         msg_format("%^s breathes.", m_name);
924 #endif
925
926                                                 }
927                                                 else
928                                                 {
929 #ifdef JP
930 msg_format("%^s¤¬%s¤Ë°Å¹õ¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name, t_name);
931 #else
932                                                         msg_format("%^s breathes darkness at %s.", m_name, t_name);
933 #endif
934
935                                                 }
936                                         }
937                                         else
938                                         {
939                                                 mon_fight = TRUE;
940                                         }
941
942                                         sound(SOUND_BREATH);
943                                 }
944
945                                 dam = ((m_ptr->hp / 6) > 400 ? 400 : (m_ptr->hp / 6));
946                                 monst_breath_monst(m_idx, y, x, GF_DARK,
947                                         dam,0, TRUE, MS_BR_DARK, learnable);
948
949                                 break;
950                         }
951
952                         /* RF4_BR_CONF */
953                         case 96+16:
954                         {
955                                 if (known)
956                                 {
957                                         if (see_either)
958                                         {
959                                                 disturb(1, 0);
960
961                                                 if (blind)
962                                                 {
963 #ifdef JP
964 msg_format("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name);
965 #else
966                                                         msg_format("%^s breathes.", m_name);
967 #endif
968
969                                                 }
970                                                 else
971                                                 {
972 #ifdef JP
973 msg_format("%^s¤¬%s¤Ëº®Íð¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name, t_name);
974 #else
975                                                         msg_format("%^s breathes confusion at %s.", m_name, t_name);
976 #endif
977
978                                                 }
979                                         }
980                                         else
981                                         {
982                                                 mon_fight = TRUE;
983                                         }
984
985                                         sound(SOUND_BREATH);
986                                 }
987
988                                 dam = ((m_ptr->hp / 6) > 450 ? 450 : (m_ptr->hp / 6));
989                                 monst_breath_monst(m_idx, y, x, GF_CONFUSION,
990                                         dam,0, TRUE, MS_BR_CONF, learnable);
991
992                                 break;
993                         }
994
995                         /* RF4_BR_SOUN */
996                         case 96+17:
997                         {
998                                 if (known)
999                                 {
1000                                         if (see_either)
1001                                         {
1002                                                 disturb(1, 0);
1003
1004                                                 if (m_ptr->r_idx == MON_JAIAN)
1005 #ifdef JP
1006                                                         msg_format("¡Ö¥Ü¥©¥¨¡Á¡Á¡Á¡Á¡Á¡Á¡×");
1007 #else
1008                                                         msg_format("'Booooeeeeee'");
1009 #endif
1010                                                 else if (blind)
1011                                                 {
1012 #ifdef JP
1013 msg_format("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name);
1014 #else
1015                                                         msg_format("%^s breathes.", m_name);
1016 #endif
1017
1018                                                 }
1019                                                 else
1020                                                 {
1021 #ifdef JP
1022 msg_format("%^s¤¬%s¤Ë¹ì²»¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name, t_name);
1023 #else
1024                                                         msg_format("%^s breathes sound at %s.", m_name, t_name);
1025 #endif
1026
1027                                                 }
1028                                         }
1029                                         else
1030                                         {
1031                                                 mon_fight = TRUE;
1032                                         }
1033
1034                                         sound(SOUND_BREATH);
1035                                 }
1036
1037                                 dam = ((m_ptr->hp / 6) > 450 ? 450 : (m_ptr->hp / 6));
1038                                 monst_breath_monst(m_idx, y, x, GF_SOUND,
1039                                         dam,0, TRUE, MS_BR_SOUND, learnable);
1040
1041                                 break;
1042                         }
1043
1044                         /* RF4_BR_CHAO */
1045                         case 96+18:
1046                         {
1047                                 if (known)
1048                                 {
1049                                         if (see_either)
1050                                         {
1051                                                 disturb(1, 0);
1052
1053                                                 if (blind)
1054                                                 {
1055 #ifdef JP
1056 msg_format("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name);
1057 #else
1058                                                         msg_format("%^s breathes.", m_name);
1059 #endif
1060
1061                                                 }
1062                                                 else
1063                                                 {
1064 #ifdef JP
1065 msg_format("%^s¤¬%s¤Ë¥«¥ª¥¹¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name, t_name);
1066 #else
1067                                                         msg_format("%^s breathes chaos at %s.", m_name, t_name);
1068 #endif
1069
1070                                                 }
1071                                         }
1072                                         else
1073                                         {
1074                                                 mon_fight = TRUE;
1075                                         }
1076
1077                                         sound(SOUND_BREATH);
1078                                 }
1079
1080                                 dam = ((m_ptr->hp / 6) > 600 ? 600 : (m_ptr->hp / 6));
1081                                 monst_breath_monst(m_idx, y, x, GF_CHAOS,
1082                                         dam,0, TRUE, MS_BR_CHAOS, learnable);
1083
1084                                 break;
1085                         }
1086
1087                         /* RF4_BR_DISE */
1088                         case 96+19:
1089                         {
1090                                 if (known)
1091                                 {
1092                                         if (see_either)
1093                                         {
1094                                                 disturb(1, 0);
1095
1096                                                 if (blind)
1097                                                 {
1098 #ifdef JP
1099 msg_format("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name);
1100 #else
1101                                                         msg_format("%^s breathes.", m_name);
1102 #endif
1103
1104                                                 }
1105                                                 else
1106                                                 {
1107 #ifdef JP
1108 msg_format("%^s¤¬%s¤ËÎô²½¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name, t_name);
1109 #else
1110                                                         msg_format("%^s breathes disenchantment at %s.", m_name, t_name);
1111 #endif
1112
1113                                                 }
1114                                         }
1115                                         else
1116                                         {
1117                                                 mon_fight = TRUE;
1118                                         }
1119
1120                                         sound(SOUND_BREATH);
1121                                 }
1122
1123                                 dam = ((m_ptr->hp / 6) > 500 ? 500 : (m_ptr->hp / 6));
1124                                 monst_breath_monst(m_idx, y, x, GF_DISENCHANT,
1125                                         dam,0, TRUE, MS_BR_DISEN, learnable);
1126
1127                                 break;
1128                         }
1129
1130                         /* RF4_BR_NEXU */
1131                         case 96+20:
1132                         {
1133                                 if (known)
1134                                 {
1135                                         if (see_either)
1136                                         {
1137                                                 disturb(1, 0);
1138
1139                                                 if (blind)
1140                                                 {
1141 #ifdef JP
1142 msg_format("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name);
1143 #else
1144                                                         msg_format("%^s breathes.", m_name);
1145 #endif
1146
1147                                                 }
1148                                                 else
1149                                                 {
1150 #ifdef JP
1151 msg_format("%^s¤¬%s¤Ë°ø²Ìº®Íð¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name, t_name);
1152 #else
1153                                                         msg_format("%^s breathes nexus at %s.", m_name, t_name);
1154 #endif
1155
1156                                                 }
1157                                         }
1158                                         else
1159                                         {
1160                                                 mon_fight = TRUE;
1161                                         }
1162
1163                                         sound(SOUND_BREATH);
1164                                 }
1165
1166                                 dam = ((m_ptr->hp / 3) > 250 ? 250 : (m_ptr->hp / 3));
1167                                 monst_breath_monst(m_idx, y, x, GF_NEXUS,
1168                                         dam,0, TRUE, MS_BR_NEXUS, learnable);
1169
1170                                 break;
1171                         }
1172
1173                         /* RF4_BR_TIME */
1174                         case 96+21:
1175                         {
1176                                 if (known)
1177                                 {
1178                                         if (see_either)
1179                                         {
1180                                                 disturb(1, 0);
1181
1182                                                 if (blind)
1183                                                 {
1184 #ifdef JP
1185 msg_format("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name);
1186 #else
1187                                                         msg_format("%^s breathes.", m_name);
1188 #endif
1189
1190                                                 }
1191                                                 else
1192                                                 {
1193 #ifdef JP
1194 msg_format("%^s¤¬%s¤Ë»þ´ÖµÕž¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name, t_name);
1195 #else
1196                                                         msg_format("%^s breathes time at %s.", m_name, t_name);
1197 #endif
1198
1199                                                 }
1200                                         }
1201                                         else
1202                                         {
1203                                                 mon_fight = TRUE;
1204                                         }
1205
1206                                         sound(SOUND_BREATH);
1207                                 }
1208
1209                                 dam = ((m_ptr->hp / 3) > 150 ? 150 : (m_ptr->hp / 3));
1210                                 monst_breath_monst(m_idx, y, x, GF_TIME,
1211                                         dam,0, TRUE, MS_BR_TIME, learnable);
1212
1213                                 break;
1214                         }
1215
1216                         /* RF4_BR_INER */
1217                         case 96+22:
1218                         {
1219                                 if (known)
1220                                 {
1221                                         if (see_either)
1222                                         {
1223                                                 disturb(1, 0);
1224
1225                                                 if (blind)
1226                                                 {
1227 #ifdef JP
1228 msg_format("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name);
1229 #else
1230                                                         msg_format("%^s breathes.", m_name);
1231 #endif
1232
1233                                                 }
1234                                                 else
1235                                                 {
1236 #ifdef JP
1237 msg_format("%^s¤¬%s¤ËÃÙÆߤΥ֥쥹¤òÅǤ¤¤¿¡£", m_name, t_name);
1238 #else
1239                                                         msg_format("%^s breathes inertia at %s.", m_name, t_name);
1240 #endif
1241
1242                                                 }
1243                                         }
1244                                         else
1245                                         {
1246                                                 mon_fight = TRUE;
1247                                         }
1248
1249                                         sound(SOUND_BREATH);
1250                                 }
1251
1252                                 dam = ((m_ptr->hp / 6) > 200 ? 200 : (m_ptr->hp / 6));
1253                                 monst_breath_monst(m_idx, y, x, GF_INERTIA,
1254                                         dam,0, TRUE, MS_BR_INERTIA, learnable);
1255
1256                                 break;
1257                         }
1258
1259                         /* RF4_BR_GRAV */
1260                         case 96+23:
1261                         {
1262                                 if (known)
1263                                 {
1264                                         if (see_either)
1265                                         {
1266                                                 disturb(1, 0);
1267
1268                                                 if (blind)
1269                                                 {
1270 #ifdef JP
1271 msg_format("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name);
1272 #else
1273                                                         msg_format("%^s breathes.", m_name);
1274 #endif
1275
1276                                                 }
1277                                                 else
1278                                                 {
1279 #ifdef JP
1280 msg_format("%^s¤¬%s¤Ë½ÅÎϤΥ֥쥹¤òÅǤ¤¤¿¡£", m_name, t_name);
1281 #else
1282                                                         msg_format("%^s breathes gravity at %s.", m_name, t_name);
1283 #endif
1284
1285                                                 }
1286                                         }
1287                                         else
1288                                         {
1289                                                 mon_fight = TRUE;
1290                                         }
1291
1292                                         sound(SOUND_BREATH);
1293                                 }
1294
1295                                 dam = ((m_ptr->hp / 3) > 200 ? 200 : (m_ptr->hp / 3));
1296                                 monst_breath_monst(m_idx, y, x, GF_GRAVITY,
1297                                         dam,0, TRUE, MS_BR_GRAVITY, learnable);
1298
1299                                 break;
1300                         }
1301
1302                         /* RF4_BR_SHAR */
1303                         case 96+24:
1304                         {
1305                                 if (known)
1306                                 {
1307                                         if (see_either)
1308                                         {
1309                                                 disturb(1, 0);
1310
1311                                                 if (m_ptr->r_idx == MON_BOTEI)
1312 #ifdef JP
1313                                                         msg_format("¡Ö¥ÜÄë¥Ó¥ë¥«¥Ã¥¿¡¼¡ª¡ª¡ª¡×");
1314 #else
1315                                                         msg_format("'Boty-Build cutter!!!'");
1316 #endif
1317                                                 else if (blind)
1318                                                 {
1319 #ifdef JP
1320 msg_format("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name);
1321 #else
1322                                                         msg_format("%^s breathes.", m_name);
1323 #endif
1324
1325                                                 }
1326                                                 else
1327                                                 {
1328 #ifdef JP
1329 msg_format("%^s¤¬%s¤ËÇËÊҤΥ֥쥹¤òÅǤ¤¤¿¡£", m_name, t_name);
1330 #else
1331                                                         msg_format("%^s breathes shards at %s.", m_name, t_name);
1332 #endif
1333
1334                                                 }
1335                                         }
1336                                         else
1337                                         {
1338                                                 mon_fight = TRUE;
1339                                         }
1340
1341                                         sound(SOUND_BREATH);
1342                                 }
1343
1344                                 dam = ((m_ptr->hp / 6) > 500 ? 500 : (m_ptr->hp / 6));
1345                                 monst_breath_monst(m_idx, y, x, GF_SHARDS,
1346                                         dam,0, TRUE, MS_BR_SHARDS, learnable);
1347
1348                                 break;
1349                         }
1350
1351                         /* RF4_BR_PLAS */
1352                         case 96+25:
1353                         {
1354                                 if (known)
1355                                 {
1356                                         if (see_either)
1357                                         {
1358                                                 disturb(1, 0);
1359
1360                                                 if (blind)
1361                                                 {
1362 #ifdef JP
1363 msg_format("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name);
1364 #else
1365                                                         msg_format("%^s breathes.", m_name);
1366 #endif
1367
1368                                                 }
1369                                                 else
1370                                                 {
1371 #ifdef JP
1372 msg_format("%^s¤¬%s¤Ë¥×¥é¥º¥Þ¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name, t_name);
1373 #else
1374                                                         msg_format("%^s breathes plasma at %s.", m_name, t_name);
1375 #endif
1376
1377                                                 }
1378                                         }
1379                                         else
1380                                         {
1381                                                 mon_fight = TRUE;
1382                                         }
1383
1384                                         sound(SOUND_BREATH);
1385                                 }
1386
1387                                 dam = ((m_ptr->hp / 6) > 150 ? 150 : (m_ptr->hp / 6));
1388                                 monst_breath_monst(m_idx, y, x, GF_PLASMA,
1389                                         dam,0, TRUE, MS_BR_PLASMA, learnable);
1390
1391                                 break;
1392                         }
1393
1394                         /* RF4_BR_WALL */
1395                         case 96+26:
1396                         {
1397                                 if (known)
1398                                 {
1399                                         if (see_either)
1400                                         {
1401                                                 disturb(1, 0);
1402
1403                                                 if (blind)
1404                                                 {
1405 #ifdef JP
1406 msg_format("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name);
1407 #else
1408                                                         msg_format("%^s breathes.", m_name);
1409 #endif
1410
1411                                                 }
1412                                                 else
1413                                                 {
1414 #ifdef JP
1415 msg_format("%^s¤¬%s¤Ë¥Õ¥©¡¼¥¹¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name, t_name);
1416 #else
1417                                                         msg_format("%^s breathes force at %s.", m_name, t_name);
1418 #endif
1419
1420                                                 }
1421                                         }
1422                                         else
1423                                         {
1424                                                 mon_fight = TRUE;
1425                                         }
1426
1427                                         sound(SOUND_BREATH);
1428                                 }
1429
1430                                 dam = ((m_ptr->hp / 6) > 200 ? 200 : (m_ptr->hp / 6));
1431                                 monst_breath_monst(m_idx, y, x, GF_FORCE,
1432                                         dam,0, TRUE, MS_BR_FORCE, learnable);
1433                                 break;
1434                         }
1435
1436                         /* RF4_BR_MANA */
1437                         case 96+27:
1438                         {
1439                                 if (known)
1440                                 {
1441                                         if (see_either)
1442                                         {
1443                                                 disturb(1, 0);
1444
1445                                                 if (blind)
1446                                                 {
1447 #ifdef JP
1448 msg_format("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name);
1449 #else
1450                                                         msg_format("%^s breathes.", m_name);
1451 #endif
1452
1453                                                 }
1454                                                 else
1455                                                 {
1456 #ifdef JP
1457 msg_format("%^s¤¬%s¤ËËâÎϤΥ֥쥹¤òÅǤ¤¤¿¡£", m_name, t_name);
1458 #else
1459                                                         msg_format("%^s breathes mana at %s.", m_name, t_name);
1460 #endif
1461
1462                                                 }
1463                                         }
1464                                         else
1465                                         {
1466                                                 mon_fight = TRUE;
1467                                         }
1468
1469                                         sound(SOUND_BREATH);
1470                                 }
1471
1472                                 dam = ((m_ptr->hp / 3) > 250 ? 250 : (m_ptr->hp / 3));
1473                                 monst_breath_monst(m_idx, y, x, GF_MANA,
1474                                         dam,0, TRUE, MS_BR_MANA, learnable);
1475
1476                                 break;
1477                         }
1478
1479                         /* RF4_BA_NUKE */
1480                         case 96+28:
1481                         {
1482                                 if (known)
1483                                 {
1484                                         if (see_either)
1485                                         {
1486                                                 disturb(1, 0);
1487
1488                                                 if (blind)
1489                                                 {
1490 #ifdef JP
1491 msg_format("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", m_name);
1492 #else
1493                                                         msg_format("%^s mumbles.", m_name);
1494 #endif
1495
1496                                                 }
1497                                                 else
1498                                                 {
1499 #ifdef JP
1500 msg_format("%^s¤¬%s¤ËÊü¼Íǽµå¤òÊü¤Ã¤¿¡£", m_name, t_name);
1501 #else
1502                                                         msg_format("%^s casts a ball of radiation at %s.", m_name, t_name);
1503 #endif
1504
1505                                                 }
1506                                         }
1507                                         else
1508                                         {
1509                                                 mon_fight = TRUE;
1510                                         }
1511                                 }
1512
1513                                 dam = (rlev + damroll(10, 6));
1514                                 monst_breath_monst(m_idx, y, x, GF_NUKE,
1515                                         dam, 2, FALSE, MS_BALL_NUKE, learnable);
1516
1517                                 break;
1518                         }
1519
1520                         /* RF4_RF4_BR_NUKE */
1521                         case 96+29:
1522                         {
1523                                 if (known)
1524                                 {
1525                                         if (see_either)
1526                                         {
1527                                                 disturb(1, 0);
1528
1529                                                 if (blind)
1530                                                 {
1531 #ifdef JP
1532 msg_format("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name);
1533 #else
1534                                                         msg_format("%^s breathes.", m_name);
1535 #endif
1536
1537                                                 }
1538                                                 else
1539                                                 {
1540 #ifdef JP
1541 msg_format("%^s¤¬%s¤ËÊü¼ÍÀ­ÇÑ´þʪ¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name, t_name);
1542 #else
1543                                                         msg_format("%^s breathes toxic waste at %s.", m_name, t_name);
1544 #endif
1545
1546                                                 }
1547                                         }
1548                                         else
1549                                         {
1550                                                 mon_fight = TRUE;
1551                                         }
1552
1553                                         sound(SOUND_BREATH);
1554                                 }
1555
1556                                 dam = ((m_ptr->hp / 3) > 800 ? 800 : (m_ptr->hp / 3));
1557                                 monst_breath_monst(m_idx, y, x, GF_NUKE,
1558                                         dam,0, TRUE, MS_BR_NUKE, learnable);
1559                                 break;
1560                         }
1561
1562                         /* RF4_BA_CHAO */
1563                         case 96+30:
1564                         {
1565                                 if (known)
1566                                 {
1567                                         if (see_either)
1568                                         {
1569                                                 disturb(1, 0);
1570
1571                                                 if (blind)
1572                                                 {
1573 #ifdef JP
1574 msg_format("%^s¤¬¶²¤í¤·¤²¤Ë¤Ä¤Ö¤ä¤¤¤¿¡£", m_name);
1575 #else
1576                                                         msg_format("%^s mumbles frighteningly.", m_name);
1577 #endif
1578
1579                                                 }
1580                                                 else
1581                                                 {
1582 #ifdef JP
1583 msg_format("%^s¤¬%s¤Ë½ã¥í¥°¥ë¥¹¤òÊü¤Ã¤¿¡£", m_name, t_name);
1584 #else
1585                                                         msg_format("%^s invokes raw Logrus upon %s.", m_name, t_name);
1586 #endif
1587
1588                                                 }
1589                                         }
1590                                         else
1591                                         {
1592                                                 mon_fight = TRUE;
1593                                         }
1594                                 }
1595
1596                                 dam = (rlev * 2) + damroll(10, 10);
1597                                 monst_breath_monst(m_idx, y, x, GF_CHAOS,
1598                                         dam, 4, FALSE, MS_BALL_CHAOS, learnable);
1599
1600                                 break;
1601                         }
1602
1603                         /* RF4_BR_DISI */
1604                         case 96+31:
1605                         {
1606                                 if (known)
1607                                 {
1608                                         if (see_either)
1609                                         {
1610                                                 disturb(1, 0);
1611
1612                                                 if (blind)
1613                                                 {
1614 #ifdef JP
1615 msg_format("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name);
1616 #else
1617                                                         msg_format("%^s breathes.", m_name);
1618 #endif
1619
1620                                                 }
1621                                                 else
1622                                                 {
1623 #ifdef JP
1624 msg_format("%^s¤¬%s¤Ëʬ²ò¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", m_name, t_name);
1625 #else
1626                                                         msg_format("%^s breathes disintegration at %s.", m_name, t_name);
1627 #endif
1628
1629                                                 }
1630                                         }
1631                                         else
1632                                         {
1633                                                 mon_fight = TRUE;
1634                                         }
1635
1636                                         sound(SOUND_BREATH);
1637                                 }
1638
1639                                 dam = ((m_ptr->hp / 6) > 150 ? 150 : (m_ptr->hp / 6));
1640                                 monst_breath_monst(m_idx, y, x, GF_DISINTEGRATE,
1641                                         dam,0, TRUE, MS_BR_DISI, learnable);
1642                                 break;
1643                         }
1644
1645                         /* RF5_BA_ACID */
1646                         case 128+0:
1647                         {
1648                                 if (known)
1649                                 {
1650                                         if (see_either)
1651                                         {
1652                                                 disturb(1, 0);
1653
1654                                                 if (blind)
1655                                                 {
1656 #ifdef JP
1657 msg_format("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", m_name);
1658 #else
1659                                                         msg_format("%^s mumbles.", m_name);
1660 #endif
1661
1662                                                 }
1663                                                 else
1664                                                 {
1665 #ifdef JP
1666 msg_format("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥¢¥·¥Ã¥É¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", m_name, t_name);
1667 #else
1668                                                         msg_format("%^s casts an acid ball at %s.", m_name, t_name);
1669 #endif
1670
1671                                                 }
1672                                         }
1673                                         else
1674                                         {
1675                                                 mon_fight = TRUE;
1676                                         }
1677                                 }
1678
1679                                 dam = (randint1(rlev * 3) + 15) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
1680                                 monst_breath_monst(m_idx, y, x, GF_ACID, dam, 2, FALSE, MS_BALL_ACID, learnable);
1681
1682                                 break;
1683                         }
1684
1685                         /* RF5_BA_ELEC */
1686                         case 128+1:
1687                         {
1688                                 if (known)
1689                                 {
1690                                         if (see_either)
1691                                         {
1692                                                 disturb(1, 0);
1693
1694                                                 if (blind)
1695                                                 {
1696 #ifdef JP
1697 msg_format("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", m_name);
1698 #else
1699                                                         msg_format("%^s mumbles.", m_name);
1700 #endif
1701
1702                                                 }
1703                                                 else
1704                                                 {
1705 #ifdef JP
1706 msg_format("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥µ¥ó¥À¡¼¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", m_name, t_name);
1707 #else
1708                                                         msg_format("%^s casts a lightning ball at %s.", m_name, t_name);
1709 #endif
1710
1711                                                 }
1712                                         }
1713                                         else
1714                                         {
1715                                                 mon_fight = TRUE;
1716                                         }
1717                                 }
1718
1719                                 dam = (randint1(rlev * 3 / 2) + 8) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
1720                                 monst_breath_monst(m_idx, y, x, GF_ELEC, dam, 2, FALSE, MS_BALL_ELEC, learnable);
1721
1722                                 break;
1723                         }
1724
1725                         /* RF5_BA_FIRE */
1726                         case 128+2:
1727                         {
1728                                 if (known)
1729                                 {
1730                                         if (see_either)
1731                                         {
1732                                                 disturb(1, 0);
1733
1734                                                 if (m_ptr->r_idx == MON_ROLENTO)
1735                                                 {
1736 #ifdef JP
1737 if (blind)
1738         msg_format("%^s¤¬²¿¤«¤òÅꤲ¤¿¡£", m_name);
1739 else
1740         msg_format("%^s¤¬%^s¤Ë¸þ¤«¤Ã¤Æ¼êÜØÃƤòÅꤲ¤¿¡£", m_name, t_name);
1741 #else
1742 if (blind)
1743         msg_format("%^s throws something.", m_name);
1744 else
1745         msg_format("%^s throws a hand grenade.", m_name);
1746 #endif
1747                                                 }
1748                                                 else
1749                                                 {
1750                                                         if (blind)
1751                                                         {
1752 #ifdef JP
1753 msg_format("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", m_name);
1754 #else
1755                                                                 msg_format("%^s mumbles.", m_name);
1756 #endif
1757
1758                                                         }
1759                                                         else
1760                                                         {
1761 #ifdef JP
1762 msg_format("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥Õ¥¡¥¤¥¢¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", m_name, t_name);
1763 #else
1764                                                                 msg_format("%^s casts a fire ball at %s.", m_name, t_name);
1765 #endif
1766
1767                                                         }
1768                                                 }
1769                                         }
1770                                         else
1771                                         {
1772                                                 mon_fight = TRUE;
1773                                         }
1774                                 }
1775
1776                                 dam = (randint1(rlev * 7 / 2) + 10) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
1777                                 monst_breath_monst(m_idx, y, x, GF_FIRE, dam, 2, FALSE, MS_BALL_FIRE, learnable);
1778
1779                                 break;
1780                         }
1781
1782                         /* RF5_BA_COLD */
1783                         case 128+3:
1784                         {
1785                                 if (known)
1786                                 {
1787                                         if (see_either)
1788                                         {
1789                                                 disturb(1, 0);
1790
1791                                                 if (blind)
1792                                                 {
1793 #ifdef JP
1794 msg_format("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", m_name);
1795 #else
1796                                                         msg_format("%^s mumbles.", m_name);
1797 #endif
1798
1799                                                 }
1800                                                 else
1801                                                 {
1802 #ifdef JP
1803 msg_format("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥¢¥¤¥¹¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", m_name, t_name);
1804 #else
1805                                                         msg_format("%^s casts a frost ball at %s.", m_name, t_name);
1806 #endif
1807
1808                                                 }
1809                                         }
1810                                         else
1811                                         {
1812                                                 mon_fight = TRUE;
1813                                         }
1814                                 }
1815
1816                                 dam = (randint1(rlev * 3 / 2) + 10) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
1817                                 monst_breath_monst(m_idx, y, x, GF_COLD, dam, 2, FALSE, MS_BALL_COLD, learnable);
1818
1819                                 break;
1820                         }
1821
1822                         /* RF5_BA_POIS */
1823                         case 128+4:
1824                         {
1825                                 if (known)
1826                                 {
1827                                         if (see_either)
1828                                         {
1829                                                 disturb(1, 0);
1830
1831                                                 if (blind)
1832                                                 {
1833 #ifdef JP
1834 msg_format("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", m_name);
1835 #else
1836                                                         msg_format("%^s mumbles.", m_name);
1837 #endif
1838
1839                                                 }
1840                                                 else
1841                                                 {
1842 #ifdef JP
1843 msg_format("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ°­½­±À¤Î¼öʸ¤ò¾§¤¨¤¿¡£", m_name, t_name);
1844 #else
1845                                                         msg_format("%^s casts a stinking cloud at %s.", m_name, t_name);
1846 #endif
1847
1848                                                 }
1849                                         }
1850                                         else
1851                                         {
1852                                                 mon_fight = TRUE;
1853                                         }
1854                                 }
1855
1856                                 dam = damroll(12, 2) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
1857                                 monst_breath_monst(m_idx, y, x, GF_POIS, dam, 2, FALSE, MS_BALL_POIS, learnable);
1858
1859                                 break;
1860                         }
1861
1862                         /* RF5_BA_NETH */
1863                         case 128+5:
1864                         {
1865                                 if (known)
1866                                 {
1867                                         if (see_either)
1868                                         {
1869                                                 disturb(1, 0);
1870
1871                                                 if (blind)
1872                                                 {
1873 #ifdef JP
1874 msg_format("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", m_name);
1875 #else
1876                                                         msg_format("%^s mumbles.", m_name);
1877 #endif
1878
1879                                                 }
1880                                                 else
1881                                                 {
1882 #ifdef JP
1883 msg_format("%^s¤¬%s¤Ë¸þ¤«¤Ã¤ÆÃϹöµå¤Î¼öʸ¤ò¾§¤¨¤¿¡£", m_name, t_name);
1884 #else
1885                                                         msg_format("%^s casts a nether ball at %s.", m_name, t_name);
1886 #endif
1887
1888                                                 }
1889                                         }
1890                                         else
1891                                         {
1892                                                 mon_fight = TRUE;
1893                                         }
1894                                 }
1895
1896                                 dam = 50 + damroll(10, 10) + (rlev * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1));
1897                                 monst_breath_monst(m_idx, y, x, GF_NETHER, dam, 2, FALSE, MS_BALL_NETHER, learnable);
1898
1899                                 break;
1900                         }
1901
1902                         /* RF5_BA_WATE */
1903                         case 128+6:
1904                         {
1905                                 if (known)
1906                                 {
1907                                         if (see_either)
1908                                         {
1909                                                 disturb(1, 0);
1910
1911                                                 if (blind)
1912                                                 {
1913 #ifdef JP
1914 msg_format("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", m_name);
1915 #else
1916                                                         msg_format("%^s mumbles.", m_name);
1917 #endif
1918
1919                                                 }
1920                                                 else
1921                                                 {
1922 #ifdef JP
1923 msg_format("%^s¤¬%s¤ËÂФ·¤Æή¤ì¤ë¤è¤¦¤Ê¿È¿¶¤ê¤ò¤·¤¿¡£", m_name, t_name);
1924 #else
1925                                                         msg_format("%^s gestures fluidly at %s.", m_name, t_name);
1926 #endif
1927
1928 #ifdef JP
1929 msg_format("%^s¤Ï±²´¬¤Ë°û¤ß¹þ¤Þ¤ì¤¿¡£", t_name);
1930 #else
1931                                                         msg_format("%^s is engulfed in a whirlpool.", t_name);
1932 #endif
1933
1934                                                 }
1935                                         }
1936                                         else
1937                                         {
1938                                                 mon_fight = TRUE;
1939                                         }
1940                                 }
1941
1942                                 dam = ((r_ptr->flags2 & RF2_POWERFUL) ? randint1(rlev * 3) : randint1(rlev * 2)) + 50;
1943                                 monst_breath_monst(m_idx, y, x, GF_WATER, dam, 4, FALSE, MS_BALL_WATER, learnable);
1944
1945                                 break;
1946                         }
1947
1948                         /* RF5_BA_MANA */
1949                         case 128+7:
1950                         {
1951                                 if (known)
1952                                 {
1953                                         if (see_either)
1954                                         {
1955                                                 disturb(1, 0);
1956
1957                                                 if (blind)
1958                                                 {
1959 #ifdef JP
1960 msg_format("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", m_name);
1961 #else
1962                                                         msg_format("%^s mumbles powerfully.", m_name);
1963 #endif
1964
1965                                                 }
1966                                                 else
1967                                                 {
1968 #ifdef JP
1969 msg_format("%^s¤¬%s¤ËÂФ·¤ÆËâÎϤÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", m_name, t_name);
1970 #else
1971                                                         msg_format("%^s invokes a mana storm upon %s.", m_name, t_name);
1972 #endif
1973
1974                                                 }
1975                                         }
1976                                         else
1977                                         {
1978                                                 mon_fight = TRUE;
1979                                         }
1980                                 }
1981
1982                                 dam = (rlev * 4) + 50 + damroll(10, 10);
1983                                 monst_breath_monst(m_idx, y, x, GF_MANA, dam, 4, FALSE, MS_BALL_MANA, learnable);
1984
1985                                 break;
1986                         }
1987
1988                         /* RF5_BA_DARK */
1989                         case 128+8:
1990                         {
1991                                 if (known)
1992                                 {
1993                                         if (see_either)
1994                                         {
1995                                                 disturb(1, 0);
1996
1997                                                 if (blind)
1998                                                 {
1999 #ifdef JP
2000 msg_format("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", m_name);
2001 #else
2002                                                         msg_format("%^s mumbles powerfully.", m_name);
2003 #endif
2004
2005                                                 }
2006                                                 else
2007                                                 {
2008 #ifdef JP
2009 msg_format("%^s¤¬%s¤ËÂФ·¤Æ°Å¹õ¤ÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", m_name, t_name);
2010 #else
2011                                                         msg_format("%^s invokes a darkness storm upon %s.", m_name, t_name);
2012 #endif
2013
2014                                                 }
2015                                         }
2016                                         else
2017                                         {
2018                                                 mon_fight = TRUE;
2019                                         }
2020                                 }
2021
2022                                 dam = (rlev * 4) + 50 + damroll(10, 10);
2023                                 monst_breath_monst(m_idx, y, x, GF_DARK, dam, 4, FALSE, MS_BALL_DARK, learnable);
2024
2025                                 break;
2026                         }
2027
2028                         /* RF5_DRAIN_MANA */
2029                         case 128+9:
2030                         {
2031                                 /* Attack power */
2032                                 int power = (randint1(rlev) / 2) + 1;
2033
2034                                 if (see_m)
2035                                 {
2036                                         /* Basic message */
2037 #ifdef JP
2038 msg_format("%^s¤ÏÀº¿À¥¨¥Í¥ë¥®¡¼¤ò%s¤«¤éµÛ¤¤¤È¤Ã¤¿¡£", m_name, t_name);
2039 #else
2040                                         msg_format("%^s draws psychic energy from %s.", m_name, t_name);
2041 #endif
2042
2043                                 }
2044
2045                                 /* Heal the monster */
2046                                 if (m_ptr->hp < m_ptr->maxhp)
2047                                 {
2048                                         if (!tr_ptr->flags4 && !tr_ptr->flags5 && !tr_ptr->flags6)
2049                                         {
2050                                                 if (see_both)
2051                                                 {
2052 #ifdef JP
2053 msg_format("%^s¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£", t_name);
2054 #else
2055                                                         msg_format("%^s is unaffected!", t_name);
2056 #endif
2057
2058                                                 }
2059                                         }
2060                                         else
2061                                         {
2062                                                 /* Heal */
2063                                                 m_ptr->hp += 6 * power;
2064                                                 if (m_ptr->hp > m_ptr->maxhp) m_ptr->hp = m_ptr->maxhp;
2065
2066                                                 /* Redraw (later) if needed */
2067                                                 if (p_ptr->health_who == m_idx) p_ptr->redraw |= (PR_HEALTH);
2068                                                 if (p_ptr->riding == m_idx) p_ptr->redraw |= (PR_UHEALTH);
2069
2070                                                 /* Special message */
2071                                                 if (see_m)
2072                                                 {
2073 #ifdef JP
2074 msg_format("%^s¤Ïµ¤Ê¬¤¬Îɤµ¤½¤¦¤À¡£", m_name);
2075 #else
2076                                                         msg_format("%^s appears healthier.", m_name);
2077 #endif
2078
2079                                                 }
2080                                         }
2081                                 }
2082
2083                                 wake_up = TRUE;
2084
2085                                 break;
2086                         }
2087
2088                         /* RF5_MIND_BLAST */
2089                         case 128+10:
2090                         {
2091                                 if (see_m)
2092                                 {
2093 #ifdef JP
2094 msg_format("%^s¤Ï%s¤ò¤¸¤Ã¤Èâˤó¤À", m_name, t_name);
2095 #else
2096                                         msg_format("%^s gazes intently at %s.", m_name, t_name);
2097 #endif
2098
2099                                 }
2100
2101                                 dam = damroll(7, 7);
2102                                 /* Attempt a saving throw */
2103                                 if ((tr_ptr->flags1 & RF1_UNIQUE) ||
2104                                          (tr_ptr->flags3 & RF3_NO_CONF) ||
2105                                          (tr_ptr->flags3 & RF3_RES_ALL) ||
2106                                          (tr_ptr->level > randint1((rlev - 10) < 1 ? 1 : (rlev - 10)) + 10))
2107                                 {
2108                                         /* No obvious effect */
2109                                         if (see_both)
2110                                         {
2111                                                 /* Memorize a flag */
2112                                                 if (tr_ptr->flags3 & (RF3_RES_ALL))
2113                                                 {
2114                                                         tr_ptr->r_flags3 |= (RF3_RES_ALL);
2115                                                 }
2116                                                 else if (tr_ptr->flags3 & (RF3_NO_CONF))
2117                                                 {
2118                                                         tr_ptr->r_flags3 |= (RF3_NO_CONF);
2119                                                 }
2120
2121 #ifdef JP
2122 msg_format("%^s¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£", t_name);
2123 #else
2124                                                 msg_format("%^s is unaffected!", t_name);
2125 #endif
2126
2127                                         }
2128                                 }
2129                                 else
2130                                 {
2131                                         if (see_t)
2132                                         {
2133 #ifdef JP
2134 msg_format("%^s¤ÏÀº¿À¹¶·â¤ò¿©¤é¤Ã¤¿¡£", t_name);
2135 #else
2136                                                 msg_format("%^s is blasted by psionic energy.", t_name);
2137 #endif
2138
2139                                         }
2140
2141                                         t_ptr->confused += randint0(4) + 4;
2142
2143 #ifdef JP
2144 mon_take_hit_mon(FALSE, t_idx, dam, &fear, "¤ÎÀº¿À¤ÏÊø²õ¤·¡¢ÆùÂΤÏÈ´¤±¶õ¤È¤Ê¤Ã¤¿¡£", m_idx);
2145 #else
2146                                         mon_take_hit_mon(FALSE, t_idx, dam, &fear, " collapses, a mindless husk.", m_idx);
2147 #endif
2148
2149                                 }
2150
2151                                 wake_up = TRUE;
2152
2153                                 break;
2154                         }
2155
2156                         /* RF5_BRAIN_SMASH */
2157                         case 128+11:
2158                         {
2159                                 if (see_m)
2160                                 {
2161 #ifdef JP
2162 msg_format("%^s¤Ï%s¤ò¤¸¤Ã¤Èâˤó¤À", m_name, t_name);
2163 #else
2164                                         msg_format("%^s gazes intently at %s.", m_name, t_name);
2165 #endif
2166
2167                                 }
2168
2169                                 dam = damroll(12, 12);
2170                                 /* Attempt a saving throw */
2171                                 if ((tr_ptr->flags1 & RF1_UNIQUE) ||
2172                                          (tr_ptr->flags3 & RF3_NO_CONF) ||
2173                                          (tr_ptr->flags3 & RF3_RES_ALL) ||
2174                                          (tr_ptr->level > randint1((rlev - 10) < 1 ? 1 : (rlev - 10)) + 10))
2175                                 {
2176                                         /* No obvious effect */
2177                                         if (see_both)
2178                                         {
2179                                                 /* Memorize a flag */
2180                                                 if (tr_ptr->flags3 & (RF3_RES_ALL))
2181                                                 {
2182                                                         tr_ptr->r_flags3 |= (RF3_RES_ALL);
2183                                                 }
2184                                                 else if (tr_ptr->flags3 & (RF3_NO_CONF))
2185                                                 {
2186                                                         tr_ptr->r_flags3 |= (RF3_NO_CONF);
2187                                                 }
2188
2189 #ifdef JP
2190 msg_format("%^s¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£", t_name);
2191 #else
2192                                                 msg_format("%^s is unaffected!", t_name);
2193 #endif
2194
2195                                         }
2196                                 }
2197                                 else
2198                                 {
2199                                         if (see_t)
2200                                         {
2201 #ifdef JP
2202 msg_format("%^s¤ÏÀº¿À¹¶·â¤ò¿©¤é¤Ã¤¿¡£", t_name);
2203 #else
2204                                                 msg_format("%^s is blasted by psionic energy.", t_name);
2205 #endif
2206
2207                                         }
2208
2209                                         t_ptr->confused += randint0(4) + 4;
2210                                         t_ptr->slow = MIN(200, t_ptr->slow + 10);
2211                                         t_ptr->stunned += randint0(4) + 4;
2212
2213 #ifdef JP
2214 mon_take_hit_mon(FALSE, t_idx, dam, &fear, "¤ÎÀº¿À¤ÏÊø²õ¤·¡¢ÆùÂΤÏÈ´¤±¶õ¤È¤Ê¤Ã¤¿¡£", m_idx);
2215 #else
2216                                         mon_take_hit_mon(FALSE, t_idx, dam, &fear, " collapses, a mindless husk.", m_idx);
2217 #endif
2218
2219                                 }
2220
2221                                 wake_up = TRUE;
2222
2223                                 break;
2224                         }
2225
2226                         /* RF5_CAUSE_1 */
2227                         case 128+12:
2228                         {
2229                                 if (known)
2230                                 {
2231                                         if (see_m)
2232                                         {
2233 #ifdef JP
2234 msg_format("%^s¤Ï%s¤ò»Ø¤µ¤·¤Æ¼ö¤¤¤ò¤«¤±¤¿¡£", m_name, t_name);
2235 #else
2236                                                 msg_format("%^s points at %s and curses.", m_name, t_name);
2237 #endif
2238
2239                                         }
2240                                         else
2241                                         {
2242                                                 mon_fight = TRUE;
2243                                         }
2244                                 }
2245
2246                                 dam = damroll(3, 8);
2247                                 if ((randint0(100 + rlev/2) < (tr_ptr->level + 35)) ||
2248                                          (tr_ptr->flags3 & RF3_RES_ALL))
2249                                 {
2250                                         /* Memorize a flag */
2251                                         if (tr_ptr->flags3 & (RF3_RES_ALL))
2252                                         {
2253                                                 tr_ptr->r_flags3 |= (RF3_RES_ALL);
2254                                         }
2255 #ifdef JP
2256 if (see_both) msg_format("%^s¤ÏÂÑÀ­¤ò»ý¤Ã¤Æ¤¤¤ë¡ª", t_name);
2257 #else
2258                                         if (see_both) msg_format("%^s resists!", t_name);
2259 #endif
2260
2261                                 }
2262                                 else
2263                                 {
2264 #ifdef JP
2265 mon_take_hit_mon(FALSE, t_idx, dam, &fear, "¤Ï»à¤ó¤À¡£", m_idx);
2266 #else
2267                                         mon_take_hit_mon(FALSE, t_idx, dam, &fear, " is destroyed.", m_idx);
2268 #endif
2269
2270                                 }
2271
2272                                 wake_up = TRUE;
2273
2274                                 break;
2275                         }
2276
2277                         /* RF5_CAUSE_2 */
2278                         case 128+13:
2279                         {
2280                                 if (known)
2281                                 {
2282                                         if (see_m)
2283                                         {
2284 #ifdef JP
2285 msg_format("%^s¤Ï%s¤ò»Ø¤µ¤·¤Æ¶²¤í¤·¤²¤Ë¼ö¤¤¤ò¤«¤±¤¿¡£", m_name, t_name);
2286 #else
2287                                                 msg_format("%^s points at %s and curses horribly.", m_name, t_name);
2288 #endif
2289
2290                                         }
2291                                         else
2292                                         {
2293                                                 mon_fight = TRUE;
2294                                         }
2295                                 }
2296
2297                                 dam = damroll(8, 8);
2298                                 if ((randint0(100 + rlev/2) < (tr_ptr->level + 35)) ||
2299                                          (tr_ptr->flags3 & RF3_RES_ALL))
2300                                 {
2301                                         /* Memorize a flag */
2302                                         if (tr_ptr->flags3 & (RF3_RES_ALL))
2303                                         {
2304                                                 tr_ptr->r_flags3 |= (RF3_RES_ALL);
2305                                         }
2306 #ifdef JP
2307 if (see_both) msg_format("%^s¤ÏÂÑÀ­¤ò»ý¤Ã¤Æ¤¤¤ë¡ª", t_name);
2308 #else
2309                                         if (see_both) msg_format("%^s resists!", t_name);
2310 #endif
2311
2312                                 }
2313                                 else
2314                                 {
2315 #ifdef JP
2316 mon_take_hit_mon(FALSE, t_idx, dam, &fear, "¤Ï»à¤ó¤À¡£", m_idx);
2317 #else
2318                                         mon_take_hit_mon(FALSE, t_idx, dam, &fear, " is destroyed.", m_idx);
2319 #endif
2320
2321                                 }
2322
2323                                 wake_up = TRUE;
2324
2325                                 break;
2326                         }
2327
2328                         /* RF5_CAUSE_3 */
2329                         case 128+14:
2330                         {
2331                                 if (known)
2332                                 {
2333                                         if (see_m)
2334                                         {
2335 #ifdef JP
2336 msg_format("%^s¤Ï%s¤ò»Ø¤µ¤·¡¢¶²¤í¤·¤²¤Ë¼öʸ¤ò¾§¤¨¤¿¡ª", m_name, t_name);
2337 #else
2338                                                 msg_format("%^s points at %s, incanting terribly!", m_name, t_name);
2339 #endif
2340
2341                                         }
2342                                         else
2343                                         {
2344                                                 mon_fight = TRUE;
2345                                         }
2346                                 }
2347
2348                                 dam = damroll(10, 15);
2349                                 if ((randint0(100 + rlev/2) < (tr_ptr->level + 35)) ||
2350                                          (tr_ptr->flags3 & RF3_RES_ALL))
2351                                 {
2352                                         /* Memorize a flag */
2353                                         if (tr_ptr->flags3 & (RF3_RES_ALL))
2354                                         {
2355                                                 tr_ptr->r_flags3 |= (RF3_RES_ALL);
2356                                         }
2357 #ifdef JP
2358 if (see_both) msg_format("%^s¤ÏÂÑÀ­¤ò»ý¤Ã¤Æ¤¤¤ë¡ª", t_name);
2359 #else
2360                                         if (see_both) msg_format("%^s resists!", t_name);
2361 #endif
2362
2363                                 }
2364                                 else
2365                                 {
2366 #ifdef JP
2367 mon_take_hit_mon(FALSE, t_idx, dam, &fear, "¤Ï»à¤ó¤À¡£", m_idx);
2368 #else
2369                                         mon_take_hit_mon(FALSE, t_idx, dam, &fear, " is destroyed.", m_idx);
2370 #endif
2371
2372                                 }
2373
2374                                 wake_up = TRUE;
2375
2376                                 break;
2377                         }
2378
2379                         /* RF5_CAUSE_4 */
2380                         case 128+15:
2381                         {
2382                                 if (known)
2383                                 {
2384                                         if (see_m)
2385                                         {
2386 #ifdef JP
2387 msg_format("%^s¤¬%s¤ÎÈ빦¤òÆͤ¤¤Æ¡¢¡Ö¤ªÁ°¤Ï´û¤Ë»à¤ó¤Ç¤¤¤ë¡×¤È¶«¤ó¤À¡£", m_name, t_name);
2388 #else
2389                                                 msg_format("%^s points at %s, screaming the word, 'DIE!'", m_name, t_name);
2390 #endif
2391
2392                                         }
2393                                         else
2394                                         {
2395                                                 mon_fight = TRUE;
2396                                         }
2397                                 }
2398
2399                                 dam = damroll(15, 15);
2400                                 if (((randint0(100 + rlev/2) < (tr_ptr->level + 35)) && (m_ptr->r_idx != MON_KENSHIROU)) ||
2401                                          (tr_ptr->flags3 & RF3_RES_ALL))
2402                                 {
2403                                         /* Memorize a flag */
2404                                         if (tr_ptr->flags3 & (RF3_RES_ALL))
2405                                         {
2406                                                 tr_ptr->r_flags3 |= (RF3_RES_ALL);
2407                                         }
2408 #ifdef JP
2409 if (see_both) msg_format("%^s¤ÏÂÑÀ­¤ò»ý¤Ã¤Æ¤¤¤ë¡ª", t_name);
2410 #else
2411                                         if (see_both) msg_format("%^s resists!", t_name);
2412 #endif
2413
2414                                 }
2415                                 else
2416                                 {
2417 #ifdef JP
2418 mon_take_hit_mon(FALSE, t_idx, dam, &fear, "¤Ï»à¤ó¤À¡£", m_idx);
2419 #else
2420                                         mon_take_hit_mon(FALSE, t_idx, dam, &fear, " is destroyed.", m_idx);
2421 #endif
2422
2423                                 }
2424
2425                                 wake_up = TRUE;
2426
2427                                 break;
2428                         }
2429
2430                         /* RF5_BO_ACID */
2431                         case 128+16:
2432                         {
2433                                 if (known)
2434                                 {
2435                                         if (see_either)
2436                                         {
2437 #ifdef JP
2438 msg_format("%s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥¢¥·¥Ã¥É¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", m_name, t_name);
2439 #else
2440                                                 msg_format("%^s casts an acid bolt at %s.", m_name, t_name);
2441 #endif
2442
2443                                         }
2444                                         else
2445                                         {
2446                                                 mon_fight = TRUE;
2447                                         }
2448                                 }
2449
2450                                 dam = (damroll(7, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
2451                                 monst_bolt_monst(m_idx, y, x, GF_ACID,
2452                                         dam, MS_BOLT_ACID, learnable);
2453
2454                                 break;
2455                         }
2456
2457                         /* RF5_BO_ELEC */
2458                         case 128+17:
2459                         {
2460                                 if (known)
2461                                 {
2462                                         if (see_either)
2463                                         {
2464 #ifdef JP
2465 msg_format("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥µ¥ó¥À¡¼¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", m_name, t_name);
2466 #else
2467                                                 msg_format("%^s casts a lightning bolt at %s.", m_name, t_name);
2468 #endif
2469
2470                                         }
2471                                         else
2472                                         {
2473                                                 mon_fight = TRUE;
2474                                         }
2475                                 }
2476
2477                                 dam = (damroll(4, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
2478                                 monst_bolt_monst(m_idx, y, x, GF_ELEC,
2479                                         dam, MS_BOLT_ELEC, learnable);
2480
2481                                 break;
2482                         }
2483
2484                         /* RF5_BO_FIRE */
2485                         case 128+18:
2486                         {
2487                                 if (known)
2488                                 {
2489                                         if (see_either)
2490                                         {
2491 #ifdef JP
2492 msg_format("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥Õ¥¡¥¤¥¢¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", m_name, t_name);
2493 #else
2494                                                 msg_format("%^s casts a fire bolt at %s.", m_name, t_name);
2495 #endif
2496
2497                                         }
2498                                         else
2499                                         {
2500                                                 mon_fight = TRUE;
2501                                         }
2502                                 }
2503
2504                                 dam = (damroll(9, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
2505                                 monst_bolt_monst(m_idx, y, x, GF_FIRE,
2506                                         dam, MS_BOLT_FIRE, learnable);
2507
2508                                 break;
2509                         }
2510
2511                         /* RF5_BO_COLD */
2512                         case 128+19:
2513                         {
2514                                 if (known)
2515                                 {
2516                                         if (see_either)
2517                                         {
2518 #ifdef JP
2519 msg_format("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥¢¥¤¥¹¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", m_name, t_name);
2520 #else
2521                                                 msg_format("%^s casts a frost bolt at %s.", m_name, t_name);
2522 #endif
2523
2524                                         }
2525                                         else
2526                                         {
2527                                                 mon_fight = TRUE;
2528                                         }
2529                                 }
2530
2531                                 dam = (damroll(6, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
2532                                 monst_bolt_monst(m_idx, y, x, GF_COLD,
2533                                         dam, MS_BOLT_COLD, learnable);
2534
2535                                 break;
2536                         }
2537
2538                         /* RF5_BA_LITE */
2539                         case 128+20:
2540                         {
2541                                 if (known)
2542                                 {
2543                                         if (see_either)
2544                                         {
2545                                                 disturb(1, 0);
2546
2547                                                 if (blind)
2548                                                 {
2549 #ifdef JP
2550 msg_format("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", m_name);
2551 #else
2552                                                         msg_format("%^s mumbles powerfully.", m_name);
2553 #endif
2554
2555                                                 }
2556                                                 else
2557                                                 {
2558 #ifdef JP
2559 msg_format("%^s¤¬%s¤ËÂФ·¤Æ¥¹¥¿¡¼¥Ð¡¼¥¹¥È¤Î¼öʸ¤òÇ°¤¸¤¿¡£", m_name, t_name);
2560 #else
2561                                                         msg_format("%^s invokes a starburst upon %s.", m_name, t_name);
2562 #endif
2563
2564                                                 }
2565                                         }
2566                                         else
2567                                         {
2568                                                 mon_fight = TRUE;
2569                                         }
2570                                 }
2571
2572                                 dam = (rlev * 4) + 50 + damroll(10, 10);
2573                                 monst_breath_monst(m_idx, y, x, GF_LITE, dam, 4, FALSE, MS_STARBURST, learnable);
2574
2575                                 break;
2576                         }
2577
2578                         /* RF5_BO_NETH */
2579                         case 128+21:
2580                         {
2581                                 if (known)
2582                                 {
2583                                         if (see_either)
2584                                         {
2585 #ifdef JP
2586 msg_format("%^s¤¬%s¤Ë¸þ¤«¤Ã¤ÆÃϹö¤ÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", m_name, t_name);
2587 #else
2588                                                 msg_format("%^s casts a nether bolt at %s.", m_name, t_name);
2589 #endif
2590
2591                                         }
2592                                         else
2593                                         {
2594                                                 mon_fight = TRUE;
2595                                         }
2596                                 }
2597
2598                                 dam = 30 + damroll(5, 5) + (rlev * 4) / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3);
2599                                 monst_bolt_monst(m_idx, y, x, GF_NETHER,
2600                                         dam, MS_BOLT_NETHER, learnable);
2601
2602                                 break;
2603                         }
2604
2605                         /* RF5_BO_WATE */
2606                         case 128+22:
2607                         {
2608                                 if (known)
2609                                 {
2610                                         if (see_either)
2611                                         {
2612 #ifdef JP
2613 msg_format("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥¦¥©¡¼¥¿¡¼¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", m_name, t_name);
2614 #else
2615                                                 msg_format("%^s casts a water bolt at %s.", m_name, t_name);
2616 #endif
2617
2618                                         }
2619                                         else
2620                                         {
2621                                                 mon_fight = TRUE;
2622                                         }
2623                                 }
2624
2625                                 dam = damroll(10, 10) + (rlev * 3 / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3));
2626                                 monst_bolt_monst(m_idx, y, x, GF_WATER,
2627                                         dam, MS_BOLT_WATER, learnable);
2628
2629                                 break;
2630                         }
2631
2632                         /* RF5_BO_MANA */
2633                         case 128+23:
2634                         {
2635                                 if (known)
2636                                 {
2637                                         if (see_either)
2638                                         {
2639 #ifdef JP
2640 msg_format("%^s¤¬%s¤Ë¸þ¤«¤Ã¤ÆËâÎϤÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", m_name, t_name);
2641 #else
2642                                                 msg_format("%^s casts a mana bolt at %s.", m_name, t_name);
2643 #endif
2644
2645                                         }
2646                                         else
2647                                         {
2648                                                 mon_fight = TRUE;
2649                                         }
2650                                 }
2651
2652                                 dam = randint1(rlev * 7 / 2) + 50;
2653                                 monst_bolt_monst(m_idx, y, x, GF_MANA,
2654                                         dam, MS_BOLT_MANA, learnable);
2655
2656                                 break;
2657                         }
2658
2659                         /* RF5_BO_PLAS */
2660                         case 128+24:
2661                         {
2662                                 if (known)
2663                                 {
2664                                         if (see_either)
2665                                         {
2666 #ifdef JP
2667 msg_format("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥×¥é¥º¥Þ¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", m_name, t_name);
2668 #else
2669                                                 msg_format("%^s casts a plasma bolt at %s.", m_name, t_name);
2670 #endif
2671
2672                                         }
2673                                         else
2674                                         {
2675                                                 mon_fight = TRUE;
2676                                         }
2677                                 }
2678
2679                                 dam = 10 + damroll(8, 7) + (rlev * 3 / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3));
2680                                 monst_bolt_monst(m_idx, y, x, GF_PLASMA,
2681                                         dam, MS_BOLT_PLASMA, learnable);
2682
2683                                 break;
2684                         }
2685
2686                         /* RF5_BO_ICEE */
2687                         case 128+25:
2688                         {
2689                                 if (known)
2690                                 {
2691                                         if (see_either)
2692                                         {
2693 #ifdef JP
2694 msg_format("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¶Ë´¨¤ÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", m_name, t_name);
2695 #else
2696                                                 msg_format("%^s casts an ice bolt at %s.", m_name, t_name);
2697 #endif
2698
2699                                         }
2700                                         else
2701                                         {
2702                                                 mon_fight = TRUE;
2703                                         }
2704                                 }
2705
2706                                 dam = damroll(6, 6) + (rlev * 3 / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3));
2707                                 monst_bolt_monst(m_idx, y, x, GF_ICE,
2708                                         dam, MS_BOLT_ICE, learnable);
2709
2710                                 break;
2711                         }
2712
2713                         /* RF5_MISSILE */
2714                         case 128+26:
2715                         {
2716                                 if (known)
2717                                 {
2718                                         if (see_either)
2719                                         {
2720 #ifdef JP
2721 msg_format("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥Þ¥¸¥Ã¥¯¡¦¥ß¥µ¥¤¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", m_name, t_name);
2722 #else
2723                                                 msg_format("%^s casts a magic missile at %s.", m_name, t_name);
2724 #endif
2725
2726                                         }
2727                                         else
2728                                         {
2729                                                 mon_fight = TRUE;
2730                                         }
2731                                 }
2732
2733                                 dam = damroll(2, 6) + (rlev / 3);
2734                                 monst_bolt_monst(m_idx, y, x, GF_MISSILE,
2735                                         dam, MS_MAGIC_MISSILE, learnable);
2736
2737                                 break;
2738                         }
2739
2740                         /* RF5_SCARE */
2741                         case 128+27:
2742                         {
2743                                 if (known)
2744                                 {
2745                                         if (see_either)
2746                                         {
2747 #ifdef JP
2748 msg_format("%^s¤¬¶²¤í¤·¤²¤Ê¸¸³Ð¤òºî¤ê½Ð¤·¤¿¡£", m_name, t_name);
2749 #else
2750                                                 msg_format("%^s casts a fearful illusion in front of %s.", m_name, t_name);
2751 #endif
2752
2753                                         }
2754                                         else
2755                                         {
2756                                                 mon_fight = TRUE;
2757                                         }
2758                                 }
2759
2760                                 if (tr_ptr->flags3 & RF3_NO_FEAR)
2761                                 {
2762 #ifdef JP
2763 if (see_t) msg_format("%^s¤Ï¶²Éݤò´¶¤¸¤Ê¤¤¡£", t_name);
2764 #else
2765                                         if (see_t) msg_format("%^s refuses to be frightened.", t_name);
2766 #endif
2767
2768                                 }
2769                                 else if (tr_ptr->level > randint1((rlev - 10) < 1 ? 1 : (rlev - 10)) + 10)
2770                                 {
2771 #ifdef JP
2772 if (see_t) msg_format("%^s¤Ï¶²Éݤò´¶¤¸¤Ê¤¤¡£", t_name);
2773 #else
2774                                         if (see_t) msg_format("%^s refuses to be frightened.", t_name);
2775 #endif
2776
2777                                 }
2778                                 else
2779                                 {
2780                                         if (!t_ptr->monfear) fear = TRUE;
2781
2782                                         t_ptr->monfear += randint0(4) + 4;
2783                                 }
2784
2785                                 wake_up = TRUE;
2786
2787                                 break;
2788                         }
2789
2790                         /* RF5_BLIND */
2791                         case 128+28:
2792                         {
2793                                 if (known)
2794                                 {
2795                                         if (see_either)
2796                                         {
2797 #ifdef JP
2798 msg_format("%s¤Ï¼öʸ¤ò¾§¤¨¤Æ%s¤ÎÌܤò¾Æ¤­ÉÕ¤«¤»¤¿¡£", m_name, t_name);
2799 #else
2800                                                 msg_format("%^s casts a spell, burning %s%s eyes.", m_name, t_name,
2801                                                                           (streq(t_name, "it") ? "s" : "'s"));
2802 #endif
2803
2804                                         }
2805                                         else
2806                                         {
2807                                                 mon_fight = TRUE;
2808                                         }
2809                                 }
2810
2811                                 /* Simulate blindness with confusion */
2812                                 if (tr_ptr->flags3 & RF3_NO_CONF)
2813                                 {
2814 #ifdef JP
2815 if (see_t) msg_format("%^s¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£", t_name);
2816 #else
2817                                         if (see_t) msg_format("%^s is unaffected.", t_name);
2818 #endif
2819
2820                                 }
2821                                 else if (tr_ptr->level > randint1((rlev - 10) < 1 ? 1 : (rlev - 10)) + 10)
2822                                 {
2823 #ifdef JP
2824 if (see_t) msg_format("%^s¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£", t_name);
2825 #else
2826                                         if (see_t) msg_format("%^s is unaffected.", t_name);
2827 #endif
2828
2829                                 }
2830                                 else
2831                                 {
2832 #ifdef JP
2833 if (see_t)   msg_format("%^s¤ÏÌܤ¬¸«¤¨¤Ê¤¯¤Ê¤Ã¤¿¡ª ", t_name);
2834 #else
2835                                         if (see_t) msg_format("%^s is blinded!", t_name);
2836 #endif
2837
2838
2839                                         t_ptr->confused += 12 + (byte)randint0(4);
2840                                 }
2841
2842                                 wake_up = TRUE;
2843
2844                                 break;
2845                         }
2846
2847                         /* RF5_CONF */
2848                         case 128+29:
2849                         {
2850                                 if (known)
2851                                 {
2852                                         if (see_either)
2853                                         {
2854 #ifdef JP
2855 msg_format("%^s¤¬%s¤ÎÁ°¤Ë¸¸ÏÇŪ¤Ê¸¸¤ò¤Ä¤¯¤ê½Ð¤·¤¿¡£", m_name, t_name);
2856 #else
2857                                                 msg_format("%^s casts a mesmerizing illusion in front of %s.", m_name, t_name);
2858 #endif
2859
2860                                         }
2861                                         else
2862                                         {
2863                                                 mon_fight = TRUE;
2864                                         }
2865                                 }
2866
2867                                 if (tr_ptr->flags3 & RF3_NO_CONF)
2868                                 {
2869 #ifdef JP
2870 if (see_t) msg_format("%^s¤ÏÏǤ蘆¤ì¤Ê¤«¤Ã¤¿¡£", t_name);
2871 #else
2872                                         if (see_t) msg_format("%^s disbelieves the feeble spell.", t_name);
2873 #endif
2874
2875                                 }
2876                                 else if (tr_ptr->level > randint1((rlev - 10) < 1 ? 1 : (rlev - 10)) + 10)
2877                                 {
2878 #ifdef JP
2879 if (see_t) msg_format("%^s¤ÏÏǤ蘆¤ì¤Ê¤«¤Ã¤¿¡£", t_name);
2880 #else
2881                                         if (see_t) msg_format("%^s disbelieves the feeble spell.", t_name);
2882 #endif
2883
2884                                 }
2885                                 else
2886                                 {
2887 #ifdef JP
2888 if (see_t) msg_format("%^s¤Ïº®Í𤷤¿¤è¤¦¤À¡£", t_name);
2889 #else
2890                                         if (see_t) msg_format("%^s seems confused.", t_name);
2891 #endif
2892
2893
2894                                         t_ptr->confused += 12 + (byte)randint0(4);
2895                                 }
2896
2897                                 wake_up = TRUE;
2898
2899                                 break;
2900                         }
2901
2902                         /* RF5_SLOW */
2903                         case 128+30:
2904                         {
2905                                 if (known)
2906                                 {
2907                                         if (see_either)
2908                                         {
2909 #ifdef JP
2910 msg_format("%s¤¬%s¤Î¶ÚÆù¤«¤éÎϤòµÛ¤¤¤È¤Ã¤¿¡£", m_name, t_name);
2911 #else
2912                                                 msg_format("%^s drains power from %s%s muscles.", m_name, t_name,
2913                                                                           (streq(t_name, "it") ? "s" : "'s"));
2914 #endif
2915
2916                                         }
2917                                         else
2918                                         {
2919                                                 mon_fight = TRUE;
2920                                         }
2921                                 }
2922
2923                                 if (tr_ptr->flags1 & RF1_UNIQUE)
2924                                 {
2925 #ifdef JP
2926 if (see_t) msg_format("%^s¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£", t_name);
2927 #else
2928                                         if (see_t) msg_format("%^s is unaffected.", t_name);
2929 #endif
2930
2931                                 }
2932                                 else if (tr_ptr->level > randint1((rlev - 10) < 1 ? 1 : (rlev - 10)) + 10)
2933                                 {
2934 #ifdef JP
2935 if (see_t) msg_format("%^s¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£", t_name);
2936 #else
2937                                         if (see_t) msg_format("%^s is unaffected.", t_name);
2938 #endif
2939
2940                                 }
2941                                 else
2942                                 {
2943                                         if (!t_ptr->slow)
2944                                         {
2945 #ifdef JP
2946 if (see_t) msg_format("%s¤ÎÆ°¤­¤¬ÃÙ¤¯¤Ê¤Ã¤¿¡£", t_name);
2947 #else
2948                                         if (see_t) msg_format("%^s starts moving slower.", t_name);
2949 #endif
2950                                         }
2951
2952                                         t_ptr->slow = MIN(200, t_ptr->slow + 50);
2953                                 }
2954
2955                                 wake_up = TRUE;
2956
2957                                 break;
2958                         }
2959
2960                         /* RF5_HOLD */
2961                         case 128+31:
2962                         {
2963                                 if (known)
2964                                 {
2965                                         if (see_either)
2966                                         {
2967 #ifdef JP
2968 msg_format("%^s¤Ï%s¤ò¤¸¤Ã¤È¸«¤Ä¤á¤¿¡£", m_name, t_name);
2969 #else
2970                                                 msg_format("%^s stares intently at %s.", m_name, t_name);
2971 #endif
2972
2973                                         }
2974                                         else
2975                                         {
2976                                                 mon_fight = TRUE;
2977                                         }
2978                                 }
2979
2980                                 if ((tr_ptr->flags1 & RF1_UNIQUE) ||
2981                                          (tr_ptr->flags3 & RF3_NO_STUN))
2982                                 {
2983 #ifdef JP
2984 if (see_t) msg_format("%^s¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£", t_name);
2985 #else
2986                                         if (see_t) msg_format("%^s is unaffected.", t_name);
2987 #endif
2988
2989                                 }
2990                                 else if (tr_ptr->level > randint1((rlev - 10) < 1 ? 1 : (rlev - 10)) + 10)
2991                                 {
2992 #ifdef JP
2993 if (see_t) msg_format("%^s¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£", t_name);
2994 #else
2995                                         if (see_t) msg_format("%^s is unaffected.", t_name);
2996 #endif
2997
2998                                 }
2999                                 else
3000                                 {
3001 #ifdef JP
3002 if (see_t) msg_format("%^s¤ÏËãá㤷¤¿¡ª", t_name);
3003 #else
3004                                         if (see_t) msg_format("%^s is paralyzed!", t_name);
3005 #endif
3006
3007
3008                                         t_ptr->stunned += randint1(4) + 4;
3009                                 }
3010
3011                                 wake_up = TRUE;
3012
3013                                 break;
3014                         }
3015
3016
3017                         /* RF6_HASTE */
3018                         case 160+0:
3019                         {
3020                                 if (known)
3021                                 {
3022                                         if (see_m)
3023                                         {
3024 #ifdef JP
3025 msg_format("%^s¤¬¼«Ê¬¤ÎÂΤËÇ°¤òÁ÷¤Ã¤¿¡£", m_name, m_poss);
3026 #else
3027                                                 msg_format("%^s concentrates on %s body.", m_name, m_poss);
3028 #endif
3029
3030                                         }
3031                                         else
3032                                         {
3033                                                 mon_fight = TRUE;
3034                                         }
3035                                 }
3036
3037                                 /* Allow quick speed increases to base+10 */
3038                                 if (!m_ptr->fast)
3039                                 {
3040 #ifdef JP
3041 if (see_m) msg_format("%^s¤ÎÆ°¤­¤¬Â®¤¯¤Ê¤Ã¤¿¡£", m_name);
3042 #else
3043                                         if (see_m) msg_format("%^s starts moving faster.", m_name);
3044 #endif
3045
3046                                 }
3047                                 m_ptr->fast = MIN(200, m_ptr->fast + 100);
3048                                 if (p_ptr->riding == m_idx) p_ptr->update |= PU_BONUS;
3049                                 break;
3050                         }
3051
3052                         /* RF6_HAND_DOOM */
3053                         case 160+1:
3054                         {
3055                                 if (known)
3056                                 {
3057                                         if (see_m)
3058                                         {
3059 #ifdef JP
3060 msg_format("%^s¤¬%s¤Ë<ÇËÌǤμê>¤òÊü¤Ã¤¿¡ª", m_name, t_name);
3061 #else
3062                                                 msg_format("%^s invokes the Hand of Doom upon %s!", m_name, t_name);
3063 #endif
3064
3065                                         }
3066                                         else
3067                                         {
3068                                                 mon_fight = TRUE;
3069                                         }
3070                                 }
3071
3072                                 if ((tr_ptr->flags1 & RF1_UNIQUE) || (tr_ptr->flags3 & RF3_RES_ALL))
3073                                 {
3074                                         /* Memorize a flag */
3075                                         if (tr_ptr->flags3 & (RF3_RES_ALL))
3076                                         {
3077                                                 tr_ptr->r_flags3 |= (RF3_RES_ALL);
3078                                         }
3079 #ifdef JP
3080 if (see_both) msg_format("¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡ª", t_name);
3081 #else
3082                                         if (see_both) msg_format("^%s is unaffected!", t_name);
3083 #endif
3084
3085                                 }
3086                                 else
3087                                 {
3088                                         if ((r_ptr->level + randint1(20)) >
3089                                                 (tr_ptr->level + 10 + randint1(20)))
3090                                         {
3091                                                 t_ptr->hp = t_ptr->hp -
3092                                                   (((s32b)((40 + randint1(20)) * t_ptr->hp)) / 100);
3093
3094                                                 if (t_ptr->hp < 1) t_ptr->hp = 1;
3095                                         }
3096                                         else
3097                                         {
3098 #ifdef JP
3099 if (see_both) msg_format("%^s¤ÏÂÑÀ­¤ò»ý¤Ã¤Æ¤¤¤ë¡ª", t_name);
3100 #else
3101                                                 if (see_both) msg_format("%^s resists!", t_name);
3102 #endif
3103
3104                                         }
3105                                 }
3106
3107                                 wake_up = TRUE;
3108
3109                                 break;
3110                         }
3111
3112                         /* RF6_HEAL */
3113                         case 160+2:
3114                         {
3115                                 if (known)
3116                                 {
3117                                         if (see_m)
3118                                         {
3119 #ifdef JP
3120 msg_format("%^s¤Ï¼«Ê¬¤Î½ý¤ËÇ°¤ò½¸Ã椷¤¿¡£", m_name);
3121 #else
3122                                                 msg_format("%^s concentrates on %s wounds.", m_name, m_poss);
3123 #endif
3124
3125                                         }
3126                                         else
3127                                         {
3128                                                 mon_fight = TRUE;
3129                                         }
3130                                 }
3131
3132                                 /* Heal some */
3133                                 m_ptr->hp += (rlev * 6);
3134
3135                                 /* Fully healed */
3136                                 if (m_ptr->hp >= m_ptr->maxhp)
3137                                 {
3138                                         /* Fully healed */
3139                                         m_ptr->hp = m_ptr->maxhp;
3140
3141                                         if (known)
3142                                         {
3143                                                 if (see_m)
3144                                                 {
3145 #ifdef JP
3146 msg_format("%^s¤Ï´°Á´¤Ë¼£¤Ã¤¿¡ª", m_name);
3147 #else
3148                                                         msg_format("%^s looks completely healed!", m_name);
3149 #endif
3150
3151                                                 }
3152                                                 else
3153                                                 {
3154                                                         mon_fight = TRUE;
3155                                                 }
3156                                         }
3157                                 }
3158
3159                                 /* Partially healed */
3160                                 else if (known)
3161                                 {
3162                                         if (see_m)
3163                                         {
3164 #ifdef JP
3165 msg_format("%^s¤ÏÂÎÎϤò²óÉü¤·¤¿¤è¤¦¤À¡£", m_name);
3166 #else
3167                                                 msg_format("%^s looks healthier.", m_name);
3168 #endif
3169
3170                                         }
3171                                         else
3172                                         {
3173                                                 mon_fight = TRUE;
3174                                         }
3175                                 }
3176
3177                                 /* Redraw (later) if needed */
3178                                 if (p_ptr->health_who == m_idx) p_ptr->redraw |= (PR_HEALTH);
3179                                 if (p_ptr->riding == m_idx) p_ptr->redraw |= (PR_UHEALTH);
3180
3181                                 /* Cancel fear */
3182                                 if (m_ptr->monfear)
3183                                 {
3184                                         /* Cancel fear */
3185                                         m_ptr->monfear = 0;
3186
3187                                         /* Message */
3188 #ifdef JP
3189 if (see_m) msg_format("%^s¤Ïͦµ¤¤ò¼è¤êÌᤷ¤¿¡£", m_name);
3190 #else
3191                                         if (see_m) msg_format("%^s recovers %s courage.", m_name, m_poss);
3192 #endif
3193
3194                                 }
3195
3196                                 break;
3197                         }
3198
3199                         /* RF6_INVULNER */
3200                         case 160+3:
3201                         {
3202                                 if (known)
3203                                 {
3204                                         if (see_m)
3205                                         {
3206                                                 disturb(1, 0);
3207 #ifdef JP
3208 msg_format("%s¤Ï̵½ý¤Îµå¤Î¼öʸ¤ò¾§¤¨¤¿¡£", m_name);
3209 #else
3210                                                 msg_format("%^s casts a Globe of Invulnerability.", m_name);
3211 #endif
3212
3213                                         }
3214                                         else
3215                                         {
3216                                                 mon_fight = TRUE;
3217                                         }
3218                                 }
3219
3220                                 if (!m_ptr->invulner) m_ptr->invulner = randint1(4) + 4;
3221
3222                                 if (p_ptr->health_who == m_idx) p_ptr->redraw |= (PR_HEALTH);
3223                                 if (p_ptr->riding == m_idx) p_ptr->redraw |= (PR_UHEALTH);
3224                                 break;
3225                         }
3226
3227                         /* RF6_BLINK */
3228                         case 160+4:
3229                         {
3230                                 if (see_m)
3231                                 {
3232 #ifdef JP
3233 msg_format("%^s¤¬½Ö»þ¤Ë¾Ã¤¨¤¿¡£", m_name);
3234 #else
3235                                         msg_format("%^s blinks away.", m_name);
3236 #endif
3237
3238                                 }
3239
3240                                 teleport_away(m_idx, 10, FALSE);
3241
3242                                 break;
3243                         }
3244
3245                         /* RF6_TPORT */
3246                         case 160+5:
3247                         {
3248                                 int i, oldfy, oldfx;
3249                                 u32b f1 = 0 , f2 = 0 , f3 = 0;
3250                                 object_type *o_ptr;
3251
3252                                 oldfy = m_ptr->fy;
3253                                 oldfx = m_ptr->fx;
3254
3255                                 if (see_m)
3256                                 {
3257 #ifdef JP
3258 msg_format("%^s¤¬¥Æ¥ì¥Ý¡¼¥È¤·¤¿¡£", m_name);
3259 #else
3260                                         msg_format("%^s teleports away.", m_name);
3261 #endif
3262
3263                                 }
3264
3265                                 teleport_away(m_idx, MAX_SIGHT * 2 + 5, FALSE);
3266
3267                                 if (los(py, px, oldfy, oldfx) && !world_monster && see_m)
3268                                 {
3269                                         for (i=INVEN_RARM;i<INVEN_TOTAL;i++)
3270                                         {
3271                                                 o_ptr = &inventory[i];
3272                                                 if(!cursed_p(o_ptr))
3273                                                 {
3274                                                         object_flags(o_ptr, &f1, &f2, &f3);
3275
3276                                                         if((f3 & TR3_TELEPORT) || (p_ptr->muta1 & MUT1_VTELEPORT) || (p_ptr->pclass == CLASS_IMITATOR))
3277                                                         {
3278 #ifdef JP
3279                                                                 if(get_check_strict("¤Ä¤¤¤Æ¤¤¤­¤Þ¤¹¤«¡©", CHECK_OKAY_CANCEL))
3280 #else
3281                                                                 if(get_check_strict("Do you follow it? ", CHECK_OKAY_CANCEL))
3282 #endif
3283                                                                 {
3284                                                                         if (one_in_(3))
3285                                                                         {
3286                                                                                 teleport_player(200);
3287 #ifdef JP
3288                                                                                 msg_print("¼ºÇÔ¡ª");
3289 #else
3290                                                                                 msg_print("Failed!");
3291 #endif
3292                                                                         }
3293                                                                         else teleport_player_to(m_ptr->fy, m_ptr->fx, TRUE);
3294                                                                         p_ptr->energy_need = ENERGY_NEED();
3295                                                                 }
3296                                                                 break;
3297                                                         }
3298                                                 }
3299                                         }
3300                                 }
3301                                 break;
3302                         }
3303
3304                         /* RF6_WORLD */
3305                         case 160+6:
3306                         {
3307 #if 0
3308                                 int who = 0;
3309                                 if(m_ptr->r_idx = MON_DIO) who == 1;
3310                                 else if(m_ptr->r_idx = MON_WONG) who == 3;
3311                                 dam = who;
3312                                 if(!process_the_world(randint1(2)+2, who, los(py, px, m_ptr->fy, m_ptr->fx))) return (FALSE);
3313 #endif
3314                                 return FALSE;
3315                         }
3316
3317                         /* RF6_XXX4X6 */
3318                         case 160+7:
3319                         {
3320                                 int k;
3321                                 if (p_ptr->inside_arena || p_ptr->inside_battle) return FALSE;
3322                                 switch(m_ptr->r_idx)
3323                                 {
3324                                         case MON_OHMU:
3325                                         {
3326                                                 for (k = 0; k < 6; k++)
3327                                                 {
3328                                                         summon_specific(m_idx, m_ptr->fy, m_ptr->fx, rlev, SUMMON_BIZARRE1, PM_ALLOW_GROUP);
3329                                                 }
3330                                                 return FALSE;
3331                                         }
3332                                         default: return FALSE;
3333                                 }
3334                         }
3335
3336                         /* RF6_TELE_TO */
3337                         case 160+8:
3338                         {
3339                                 /* Not implemented */
3340                                 return FALSE;
3341                         }
3342
3343                         /* RF6_TELE_AWAY */
3344                         case 160+9:
3345                         {
3346                                 bool resists_tele = FALSE;
3347
3348                                 if (known)
3349                                 {
3350                                         if (see_either)
3351                                         {
3352 #ifdef JP
3353 msg_format("%^s¤Ï%s¤ò¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤¿¡£", m_name, t_name);
3354 #else
3355                                                 msg_format("%^s teleports %s away.", m_name, t_name);
3356 #endif
3357
3358                                         }
3359                                         else
3360                                         {
3361                                                 mon_fight = TRUE;
3362                                         }
3363                                 }
3364
3365                                 if (tr_ptr->flags3 & RF3_RES_TELE)
3366                                 {
3367                                         if ((tr_ptr->flags1 & RF1_UNIQUE) || (tr_ptr->flags3 & (RF3_RES_ALL)))
3368                                         {
3369                                                 if (see_t)
3370                                                 {
3371                                                         tr_ptr->r_flags3 |= RF3_RES_TELE;
3372 #ifdef JP
3373 msg_format("%^s¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£", t_name);
3374 #else
3375                                                         msg_format("%^s is unaffected!", t_name);
3376 #endif
3377
3378                                                 }
3379
3380                                                 resists_tele = TRUE;
3381                                         }
3382                                         else if (tr_ptr->level > randint1(100))
3383                                         {
3384                                                 if (see_t)
3385                                                 {
3386                                                         tr_ptr->r_flags3 |= RF3_RES_TELE;
3387 #ifdef JP
3388 msg_format("%^s¤ÏÂÑÀ­¤ò»ý¤Ã¤Æ¤¤¤ë¡ª", t_name);
3389 #else
3390                                                         msg_format("%^s resists!", t_name);
3391 #endif
3392
3393                                                 }
3394
3395                                                 resists_tele = TRUE;
3396                                         }
3397                                 }
3398
3399                                 if (!resists_tele)
3400                                 {
3401                                         if (t_idx == p_ptr->riding) teleport_player(MAX_SIGHT * 2 + 5);
3402                                         else teleport_away(t_idx, MAX_SIGHT * 2 + 5, FALSE);
3403                                 }
3404
3405                                 break;
3406                         }
3407
3408                         /* RF6_TELE_LEVEL */
3409                         case 160+10:
3410                         {
3411                                 /* Not implemented */
3412                                 return FALSE;
3413                         }
3414
3415                         /* RF6_PSY_SPEAR */
3416                         case 160+11:
3417                         {
3418                                 if (known)
3419                                 {
3420                                         if (see_either)
3421                                         {
3422 #ifdef JP
3423 msg_format("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¸÷¤Î·õ¤òÊü¤Ã¤¿¡£", m_name, t_name);
3424 #else
3425                                                 msg_format("%^s throw a Psycho-spear at %s.", m_name, t_name);
3426 #endif
3427
3428                                         }
3429                                         else
3430                                         {
3431                                                 mon_fight = TRUE;
3432                                         }
3433                                 }
3434
3435                                 dam = (r_ptr->flags2 & RF2_POWERFUL) ? (randint1(rlev * 2) + 180) : (randint1(rlev * 3 / 2) + 120);
3436                                 monst_beam_monst(m_idx, y, x, GF_PSY_SPEAR,
3437                                         dam, MS_PSY_SPEAR, learnable);
3438                                 break;
3439                         }
3440
3441                         /* RF6_DARKNESS */
3442                         case 160+12:
3443                         {
3444                                 if (known)
3445                                 {
3446                                         if (see_m)
3447                                         {
3448 #ifdef JP
3449 msg_format("%^s¤¬°Å°Ç¤ÎÃæ¤Ç¼ê¤ò¿¶¤Ã¤¿¡£", m_name);
3450 #else
3451                                                 msg_format("%^s gestures in shadow.", m_name);
3452 #endif
3453
3454
3455                                                 if (see_t)
3456                                                 {
3457 #ifdef JP
3458 msg_format("%^s¤Ï°Å°Ç¤ËÊñ¤Þ¤ì¤¿¡£", t_name);
3459 #else
3460                                                         msg_format("%^s is surrounded by darkness.", t_name);
3461 #endif
3462
3463                                                 }
3464                                         }
3465                                         else
3466                                         {
3467                                                 mon_fight = TRUE;
3468                                         }
3469                                 }
3470
3471                                 (void)project(m_idx, 3, y, x, 0, GF_DARK_WEAK, PROJECT_GRID | PROJECT_KILL | PROJECT_MONSTER, MS_DARKNESS);
3472
3473                                 unlite_room(y, x);
3474
3475                                 break;
3476                         }
3477
3478                         /* RF6_TRAPS */
3479                         case 160+13:
3480                         {
3481 #if 0
3482                                 if (known)
3483                                 {
3484                                         if (see_m)
3485                                         {
3486 #ifdef JP
3487 msg_format("%^s¤¬¼öʸ¤ò¾§¤¨¤Æ¼Ù°­¤ËÈù¾Ð¤ó¤À¡£", m_name);
3488 #else
3489                                                 msg_format("%^s casts a spell and cackles evilly.", m_name);
3490 #endif
3491                                         }
3492                                         else
3493                                         {
3494 #ifdef JP
3495 msg_format("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", m_name);
3496 #else
3497                                                 msg_format("%^s mumbles.", m_name);
3498 #endif
3499                                         }
3500                                 }
3501
3502                                 trap_creation(y, x);
3503 #endif
3504                                 break;
3505                         }
3506
3507                         /* RF6_FORGET */
3508                         case 160+14:
3509                         {
3510                                 /* Not implemented */
3511                                 return FALSE;
3512                         }
3513
3514                         /* RF6_RAISE_DEAD */
3515                         case 160+15:
3516                         {
3517                                 disturb(1, 0);
3518 #ifdef JP
3519                                 if (blind) msg_format("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", m_name);
3520 #else
3521                                 if (blind) msg_format("%^s mumbles.", m_name);
3522 #endif
3523
3524 #ifdef JP
3525                                 else msg_format("%^s¤¬»à¼ÔÉü³è¤Î¼öʸ¤ò¾§¤¨¤¿¡£", m_name);
3526 #else
3527                                 else msg_format("%^s casts a spell to revive corpses.", m_name);
3528 #endif
3529                                 animate_dead(m_idx, m_ptr->fy, m_ptr->fx);
3530                                 break;
3531                         }
3532
3533                         /* RF6_SUMMON_KIN */
3534                         case 160+16:
3535                         {
3536                                 if (known)
3537                                 {
3538                                         if (see_either)
3539                                         {
3540                                                 disturb(1, 0);
3541
3542                                                 if (m_ptr->r_idx == MON_ROLENTO)
3543                                                 {
3544 #ifdef JP
3545                                                         msg_format("%^s¤Ï¼êÜØÃƤò¤Ð¤é¤Þ¤¤¤¿¡£",
3546                                                                 m_name);
3547 #else
3548                                                         msg_format("%^s throws some hand grenades.",
3549                                                                 m_name);
3550 #endif
3551                                                 }
3552                                                 else if (m_ptr->r_idx == MON_SERPENT || m_ptr->r_idx == MON_ZOMBI_SERPENT)
3553                                                 {
3554 #ifdef JP
3555                                                         msg_format("%^s¤¬¥À¥ó¥¸¥ç¥ó¤Î¼ç¤ò¾¤´­¤·¤¿¡£", m_name);
3556 #else
3557                                                         msg_format("%^s magically summons guardians of dungeons.", m_name);
3558 #endif
3559                                                 }
3560                                                 else
3561                                                 {
3562 #ifdef JP
3563 msg_format("%s¤¬ËâË¡¤Ç%s¤ò¾¤´­¤·¤¿¡£", m_name,
3564   ((r_ptr->flags1 & RF1_UNIQUE) ? "¼ê²¼" : "Ãç´Ö"));
3565 #else
3566                                                         msg_format("%^s magically summons %s %s.", m_name, m_poss,
3567                                                                           ((r_ptr->flags1 & RF1_UNIQUE) ? "minions" : "kin"));
3568 #endif
3569                                                 }
3570
3571                                         }
3572                                         else
3573                                         {
3574                                                 mon_fight = TRUE;
3575                                         }
3576                                 }
3577
3578                                 if(m_ptr->r_idx == MON_ROLENTO)
3579                                 {
3580                                         int num = 1 + randint1(3);
3581                                         for (k = 0; k < num; k++)
3582                                         {
3583                                                 count += summon_named_creature(m_idx, y, x, MON_SHURYUUDAN, p_mode);
3584                                         }
3585                                 }
3586                                 else if(m_ptr->r_idx == MON_LOUSY)
3587                                 {
3588                                         int num = 2 + randint1(3);
3589                                         for (k = 0; k < num; k++)
3590                                         {
3591                                                 count += summon_specific(m_idx, y, x, rlev, SUMMON_LOUSE, (PM_ALLOW_GROUP | p_mode));
3592                                         }
3593                                 }
3594                                 else if(m_ptr->r_idx == MON_BULLGATES)
3595                                 {
3596                                         int num = 2 + randint1(3);
3597                                         for (k = 0; k < num; k++)
3598                                         {
3599                                                 count += summon_named_creature(m_idx, y, x, 921, p_mode);
3600                                         }
3601                                 }
3602                                 else if (m_ptr->r_idx == MON_CALDARM)
3603                                 {
3604                                         int num = randint1(3);
3605                                         for (k = 0; k < num; k++)
3606                                         {
3607                                                 count += summon_named_creature(m_idx, y, x, 930, p_mode);
3608                                         }
3609                                 }
3610                                 else if (m_ptr->r_idx == MON_SERPENT || m_ptr->r_idx == MON_ZOMBI_SERPENT)
3611                                 {
3612                                         int num = 2 + randint1(3);
3613                                         for (k = 0; k < num; k++)
3614                                         {
3615                                                 count += summon_specific(m_idx, y, x, rlev, SUMMON_GUARDIANS, (PM_ALLOW_GROUP | p_mode | PM_ALLOW_UNIQUE));
3616                                         }
3617                                 }
3618                                 else
3619                                 {
3620                                         summon_kin_type = r_ptr->d_char;
3621
3622                                         for (k = 0; k < 4; k++)
3623                                         {
3624                                                 count += summon_specific(m_idx, y, x, rlev, SUMMON_KIN, (PM_ALLOW_GROUP | p_mode));
3625                                         }
3626                                 }
3627
3628                                 if (known && !see_t && count)
3629                                 {
3630                                      mon_fight = TRUE;
3631                                 }
3632
3633                                 break;
3634                         }
3635
3636                         /* RF6_S_CYBER */
3637                         case 160+17:
3638                         {
3639                                 if (known)
3640                                 {
3641                                         if (see_either)
3642                                         {
3643                                                 disturb(1, 0);
3644
3645 #ifdef JP
3646 msg_format("%^s¤¬¥µ¥¤¥Ð¡¼¥Ç¡¼¥â¥ó¤ò¾¤´­¤·¤¿¡ª", m_name);
3647 #else
3648                                                 msg_format("%^s magically summons Cyberdemons!", m_name);
3649 #endif
3650
3651                                         }
3652                                         else
3653                                         {
3654                                                 mon_fight = TRUE;
3655                                         }
3656                                 }
3657
3658                                 if (is_friendly(m_ptr))
3659                                 {
3660                                         count += summon_specific(m_idx, y, x, rlev, SUMMON_CYBER, (PM_ALLOW_GROUP | p_mode));
3661                                 }
3662                                 else
3663                                 {
3664                                         count += summon_cyber(m_idx, y, x);
3665                                 }
3666
3667                                 if (known && !see_t && count)
3668                                 {
3669                                      mon_fight = TRUE;
3670                                 }
3671
3672                                 break;
3673                         }
3674
3675                         /* RF6_S_MONSTER */
3676                         case 160+18:
3677                         {
3678                                 if (known)
3679                                 {
3680                                         if (see_either)
3681                                         {
3682                                                 disturb(1, 0);
3683
3684 #ifdef JP
3685 msg_format("%^s¤¬ËâË¡¤ÇÃç´Ö¤ò¾¤´­¤·¤¿¡ª", m_name);
3686 #else
3687                                                 msg_format("%^s magically summons help!", m_name);
3688 #endif
3689
3690                                         }
3691                                         else
3692                                         {
3693                                                 mon_fight = TRUE;
3694                                         }
3695                                 }
3696
3697                                 count += summon_specific(m_idx, y, x, rlev, 0, (p_mode | u_mode));
3698
3699                                 if (known && !see_t && count)
3700                                 {
3701                                       mon_fight = TRUE;
3702                                 }
3703
3704                                 break;
3705                         }
3706
3707                         /* RF6_S_MONSTERS */
3708                         case 160+19:
3709                         {
3710                                 if (known)
3711                                 {
3712                                         if (see_either)
3713                                         {
3714                                                 disturb(1, 0);
3715
3716 #ifdef JP
3717 msg_format("%^s¤¬ËâË¡¤Ç¥â¥ó¥¹¥¿¡¼¤ò¾¤´­¤·¤¿¡ª", m_name);
3718 #else
3719                                                 msg_format("%^s magically summons monsters!", m_name);
3720 #endif
3721
3722                                         }
3723                                         else
3724                                         {
3725                                                 mon_fight = TRUE;
3726                                         }
3727                                 }
3728
3729                                 for (k = 0; k < s_num_6; k++)
3730                                 {
3731                                         count += summon_specific(m_idx, y, x, rlev, 0, (PM_ALLOW_GROUP | p_mode | u_mode));
3732                                 }
3733
3734                                 if (known && !see_t && count)
3735                                 {
3736                                   mon_fight = TRUE;
3737                                 }
3738
3739                                 break;
3740                         }
3741
3742                         /* RF6_S_ANT */
3743                         case 160+20:
3744                         {
3745                                 if (known)
3746                                 {
3747                                         if (see_either)
3748                                         {
3749                                                 disturb(1, 0);
3750
3751 #ifdef JP
3752 msg_format("%^s¤¬ËâË¡¤Ç¥¢¥ê¤ò¾¤´­¤·¤¿¡£", m_name);
3753 #else
3754                                                 msg_format("%^s magically summons ants.", m_name);
3755 #endif
3756
3757                                         }
3758                                         else
3759                                         {
3760                                                 mon_fight = TRUE;
3761                                         }
3762                                 }
3763
3764                                 for (k = 0; k < s_num_6; k++)
3765                                 {
3766                                         count += summon_specific(m_idx, y, x, rlev, SUMMON_ANT, (PM_ALLOW_GROUP | p_mode));
3767                                 }
3768
3769                                 if (known && !see_t && count)
3770                                 {
3771                                      mon_fight = TRUE;
3772                                 }
3773
3774                                 break;
3775                         }
3776
3777                         /* RF6_S_SPIDER */
3778                         case 160+21:
3779                         {
3780                                 if (known)
3781                                 {
3782                                         if (see_either)
3783                                         {
3784                                                 disturb(1, 0);
3785
3786 #ifdef JP
3787 msg_format("%^s¤¬ËâË¡¤Ç¥¯¥â¤ò¾¤´­¤·¤¿¡£", m_name);
3788 #else
3789                                                 msg_format("%^s magically summons spiders.", m_name);
3790 #endif
3791
3792                                         }
3793                                         else
3794                                         {
3795                                                 mon_fight = TRUE;
3796                                         }
3797                                 }
3798
3799                                 for (k = 0; k < s_num_6; k++)
3800                                 {
3801                                         count += summon_specific(m_idx, y, x, rlev, SUMMON_SPIDER, (PM_ALLOW_GROUP | p_mode));
3802                                 }
3803
3804                                 if (known && !see_t && count)
3805                                 {
3806                                     mon_fight = TRUE;
3807                                 }
3808
3809                                 break;
3810                         }
3811
3812                         /* RF6_S_HOUND */
3813                         case 160+22:
3814                         {
3815                                 if (known)
3816                                 {
3817                                         if (see_either)
3818                                         {
3819                                                 disturb(1, 0);
3820
3821 #ifdef JP
3822 msg_format("%^s¤¬ËâË¡¤Ç¥Ï¥¦¥ó¥É¤ò¾¤´­¤·¤¿¡£", m_name);
3823 #else
3824                                                 msg_format("%^s magically summons hounds.", m_name);
3825 #endif
3826
3827                                         }
3828                                         else
3829                                         {
3830                                                 mon_fight = TRUE;
3831                                         }
3832                                 }
3833
3834                                 for (k = 0; k < s_num_4; k++)
3835                                 {
3836                                         count += summon_specific(m_idx, y, x, rlev, SUMMON_HOUND, (PM_ALLOW_GROUP | p_mode));
3837                                 }
3838
3839                                 if (known && !see_t && count)
3840                                 {
3841                                      mon_fight = TRUE;
3842                                 }
3843
3844                                 break;
3845                         }
3846
3847                         /* RF6_S_HYDRA */
3848                         case 160+23:
3849                         {
3850                                 if (known)
3851                                 {
3852                                         if (see_either)
3853                                         {
3854                                                 disturb(1, 0);
3855
3856 #ifdef JP
3857 msg_format("%^s¤¬ËâË¡¤Ç¥Ò¥É¥é¤ò¾¤´­¤·¤¿¡£", m_name);
3858 #else
3859                                                 msg_format("%^s magically summons hydras.", m_name);
3860 #endif
3861
3862                                         }
3863                                         else
3864                                         {
3865                                                 mon_fight = TRUE;
3866                                         }
3867                                 }
3868
3869                                 for (k = 0; k < s_num_4; k++)
3870                                 {
3871                                         count += summon_specific(m_idx, y, x, rlev, SUMMON_HYDRA, (PM_ALLOW_GROUP | p_mode));
3872                                 }
3873
3874                                 if (known && !see_t && count)
3875                                 {
3876                                     mon_fight = TRUE;
3877                                 }
3878
3879                                 break;
3880                         }
3881
3882                         /* RF6_S_ANGEL */
3883                         case 160+24:
3884                         {
3885                                 int num = 1;
3886                                 if (known)
3887                                 {
3888                                         if (see_either)
3889                                         {
3890                                                 disturb(1, 0);
3891
3892 #ifdef JP
3893 msg_format("%^s¤¬ËâË¡¤ÇÅ·»È¤ò¾¤´­¤·¤¿¡ª", m_name);
3894 #else
3895                                                 msg_format("%^s magically summons an angel!", m_name);
3896 #endif
3897
3898                                         }
3899                                         else
3900                                         {
3901                                                 mon_fight = TRUE;
3902                                         }
3903                                 }
3904
3905                                 if ((r_ptr->flags1 & RF1_UNIQUE) && !easy_band)
3906                                 {
3907                                         num += r_ptr->level/40;
3908                                 }
3909
3910                                 for (k = 0; k < num; k++)
3911                                 {
3912                                         count += summon_specific(m_idx, y, x, rlev, SUMMON_ANGEL, (PM_ALLOW_GROUP | p_mode));
3913                                 }
3914
3915                                 if (known && !see_t && count)
3916                                 {
3917                                    mon_fight = TRUE;
3918                                 }
3919
3920                                 break;
3921                         }
3922
3923                         /* RF6_S_DEMON */
3924                         case 160+25:
3925                         {
3926                                 if (known)
3927                                 {
3928                                         if (see_either)
3929                                         {
3930                                                 disturb(1, 0);
3931
3932 #ifdef JP
3933 msg_format("%^s¤¬ËâË¡¤Çº®Æ٤εÜÄ¤é¥Ç¡¼¥â¥ó¤ò¾¤´­¤·¤¿¡ª", m_name);
3934 #else
3935                                                 msg_format("%^s magically summons a demon from the Courts of Chaos!", m_name);
3936 #endif
3937
3938                                         }
3939                                         else
3940                                         {
3941                                                 mon_fight = TRUE;
3942                                         }
3943                                 }
3944
3945                                 for (k = 0; k < 1; k++)
3946                                 {
3947                                         count += summon_specific(m_idx, y, x, rlev, SUMMON_DEMON, (PM_ALLOW_GROUP | p_mode));
3948                                 }
3949
3950                                 if (known && !see_t && count)
3951                                 {
3952                                     mon_fight = TRUE;
3953                                 }
3954
3955                                 break;
3956                         }
3957
3958                         /* RF6_S_UNDEAD */
3959                         case 160+26:
3960                         {
3961                                 if (known)
3962                                 {
3963                                         if (see_either)
3964                                         {
3965                                                 disturb(1, 0);
3966
3967 #ifdef JP
3968 msg_format("%s¤¬ËâË¡¤Ç¥¢¥ó¥Ç¥Ã¥É¤ò¾¤´­¤·¤¿¡£", m_name);
3969 #else
3970                                                 msg_format("%^s magically summons undead.", m_name);
3971 #endif
3972
3973                                         }
3974                                         else
3975                                         {
3976                                                 mon_fight = TRUE;
3977                                         }
3978                                 }
3979
3980                                 for (k = 0; k < 1; k++)
3981                                 {
3982                                         count += summon_specific(m_idx, y, x, rlev, SUMMON_UNDEAD, (PM_ALLOW_GROUP | p_mode));
3983                                 }
3984
3985                                 if (known && !see_t && count)
3986                                 {
3987                                     mon_fight = TRUE;
3988                                 }
3989
3990                                 break;
3991                         }
3992
3993                         /* RF6_S_DRAGON */
3994                         case 160+27:
3995                         {
3996                                 if (known)
3997                                 {
3998                                         if (see_either)
3999                                         {
4000                                                 disturb(1, 0);
4001
4002 #ifdef JP
4003 msg_format("%^s¤¬ËâË¡¤Ç¥É¥é¥´¥ó¤ò¾¤´­¤·¤¿¡ª", m_name);
4004 #else
4005                                                 msg_format("%^s magically summons a dragon!", m_name);
4006 #endif
4007
4008                                         }
4009                                         else
4010                                         {
4011                                                 mon_fight = TRUE;
4012                                         }
4013                                 }
4014
4015                                 for (k = 0; k < 1; k++)
4016                                 {
4017                                         count += summon_specific(m_idx, y, x, rlev, SUMMON_DRAGON, (PM_ALLOW_GROUP | p_mode));
4018                                 }
4019
4020                                 if (known && !see_t && count)
4021                                 {
4022                                     mon_fight = TRUE;
4023                                 }
4024
4025                                 break;
4026                         }
4027
4028                         /* RF6_S_HI_UNDEAD */
4029                         case 160+28:
4030                         {
4031                                 if (known)
4032                                 {
4033                                         if (see_either)
4034                                         {
4035                                                 disturb(1, 0);
4036
4037 #ifdef JP
4038 msg_format("%s¤¬ËâË¡¤Ç¥¢¥ó¥Ç¥Ã¥É¤ò¾¤´­¤·¤¿¡£", m_name);
4039 #else
4040                                                 msg_format("%^s magically summons undead.", m_name);
4041 #endif
4042
4043                                         }
4044                                         else
4045                                         {
4046                                                 mon_fight = TRUE;
4047                                         }
4048                                 }
4049
4050                                 for (k = 0; k < s_num_6; k++)
4051                                 {
4052                                         count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_UNDEAD, (PM_ALLOW_GROUP | p_mode | u_mode));
4053                                 }
4054
4055                                 if (known && !see_t && count)
4056                                 {
4057                                    mon_fight = TRUE;
4058                                 }
4059
4060                                 break;
4061                         }
4062
4063                         /* RF6_S_HI_DRAGON */
4064                         case 160+29:
4065                         {
4066                                 if (known)
4067                                 {
4068                                         if (see_either)
4069                                         {
4070                                                 disturb(1, 0);
4071
4072 #ifdef JP
4073 msg_format("%^s¤¬ËâË¡¤Ç¸ÅÂå¥É¥é¥´¥ó¤ò¾¤´­¤·¤¿¡ª", m_name);
4074 #else
4075                                                 msg_format("%^s magically summons ancient dragons!", m_name);
4076 #endif
4077
4078                                         }
4079                                         else
4080                                         {
4081                                                 mon_fight = TRUE;
4082                                         }
4083                                 }
4084
4085                                 for (k = 0; k < s_num_4; k++)
4086                                 {
4087                                         count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_DRAGON, (PM_ALLOW_GROUP | p_mode | u_mode));
4088                                 }
4089
4090                                 if (known && !see_t && count)
4091                                 {
4092                                    mon_fight = TRUE;
4093                                 }
4094
4095                                 break;
4096                         }
4097
4098                         /* RF6_S_AMBERITES */
4099                         case 160+30:
4100                         {
4101                                 if (known)
4102                                 {
4103                                         if (see_either)
4104                                         {
4105                                                 disturb(1, 0);
4106
4107 #ifdef JP
4108 msg_format("%^s¤¬¥¢¥ó¥Ð¡¼¤Î²¦Â²¤ò¾¤´­¤·¤¿¡ª", m_name);
4109 #else
4110                                                 msg_format("%^s magically summons Lords of Amber!", m_name);
4111 #endif
4112
4113                                         }
4114                                         else
4115                                         {
4116                                                 mon_fight = TRUE;
4117                                         }
4118                                 }
4119
4120                                 for (k = 0; k < s_num_4; k++)
4121                                 {
4122                                         count += summon_specific(m_idx, y, x, rlev, SUMMON_AMBERITES, (PM_ALLOW_GROUP | p_mode | PM_ALLOW_UNIQUE));
4123                                 }
4124
4125                                 if (known && !see_t && count)
4126                                 {
4127                                    mon_fight = TRUE;
4128                                 }
4129
4130                                 break;
4131                         }
4132
4133                         /* RF6_S_UNIQUE */
4134                         case 160+31:
4135                         {
4136                                 if (known)
4137                                 {
4138                                         if (see_either)
4139                                         {
4140                                                 disturb(1, 0);
4141
4142 #ifdef JP
4143 msg_format("%^s¤¬ËâË¡¤ÇÆÃÊ̤ʶ¯Å¨¤ò¾¤´­¤·¤¿¡ª", m_name);
4144 #else
4145                                                 msg_format("%^s magically summons special opponents!", m_name);
4146 #endif
4147
4148                                         }
4149                                         else
4150                                         {
4151                                                 mon_fight = TRUE;
4152                                         }
4153                                 }
4154
4155                                 for (k = 0; k < s_num_4; k++)
4156                                 {
4157                                         count += summon_specific(m_idx, y, x, rlev, SUMMON_UNIQUE, (PM_ALLOW_GROUP | p_mode | PM_ALLOW_UNIQUE));
4158                                 }
4159
4160                                 if (known && !see_t && count)
4161                                 {
4162                                    mon_fight = TRUE;
4163                                 }
4164
4165                                 break;
4166                         }
4167                 }
4168
4169                 if (wake_up)
4170                 {
4171                         t_ptr->csleep = 0;
4172                 }
4173
4174                 if (fear && see_t)
4175                 {
4176 #ifdef JP
4177 msg_format("%^s¤Ï¶²Éݤ·¤Æƨ¤²½Ð¤·¤¿¡ª", t_name);
4178 #else
4179                         msg_format("%^s flees in terror!", t_name);
4180 #endif
4181
4182                 }
4183
4184                 if (see_m && maneable && !world_monster && !p_ptr->blind && (p_ptr->pclass == CLASS_IMITATOR))
4185                 {
4186                         if (thrown_spell != 167)
4187                         {
4188                                 if (mane_num == MAX_MANE)
4189                                 {
4190                                         int i;
4191                                         mane_num--;
4192                                         for (i = 0;i < mane_num-1;i++)
4193                                         {
4194                                                 mane_spell[i] = mane_spell[i+1];
4195                                                 mane_dam[i] = mane_dam[i+1];
4196                                         }
4197                                 }
4198                                 mane_spell[mane_num] = thrown_spell - 96;
4199                                 mane_dam[mane_num] = dam;
4200                                 mane_num++;
4201                                 new_mane = TRUE;
4202
4203                                 p_ptr->redraw |= (PR_MANE);
4204                         }
4205                 }
4206
4207                 /* Remember what the monster did, if we saw it */
4208                 if (see_m)
4209                 {
4210                         /* Inate spell */
4211                         if (thrown_spell < 32*4)
4212                         {
4213                                 r_ptr->r_flags4 |= (1L << (thrown_spell - 32*3));
4214                                 if (r_ptr->r_cast_inate < MAX_UCHAR) r_ptr->r_cast_inate++;
4215                         }
4216
4217                         /* Bolt or Ball */
4218                         else if (thrown_spell < 32*5)
4219                         {
4220                                 r_ptr->r_flags5 |= (1L << (thrown_spell - 32*4));
4221                                 if (r_ptr->r_cast_spell < MAX_UCHAR) r_ptr->r_cast_spell++;
4222                         }
4223
4224                         /* Special spell */
4225                         else if (thrown_spell < 32*6)
4226                         {
4227                                 r_ptr->r_flags6 |= (1L << (thrown_spell - 32*5));
4228                                 if (r_ptr->r_cast_spell < MAX_UCHAR) r_ptr->r_cast_spell++;
4229                         }
4230                 }
4231
4232                 /* Always take note of monsters that kill you */
4233                 if (death && (r_ptr->r_deaths < MAX_SHORT) && !p_ptr->inside_arena)
4234                 {
4235                         r_ptr->r_deaths++;
4236                 }
4237
4238                 /* A spell was cast */
4239                 return (TRUE);
4240         }
4241
4242         /* No enemy found */
4243         return (FALSE);
4244 }