OSDN Git Service

[Refactor] #37353 自己分析処理を selfinfo.c/h に分離。 / Separate self knoledge spells to selfin...
[hengband/hengband.git] / src / mutation.c
1 /*!
2  * @file mutation.c
3  * @brief 突然変異ルールの実装 / Mutation effects (and racial powers)
4  * @date 2014/01/11
5  * @author
6  * Copyright (c) 1997 Ben Harrison, James E. Wilson, Robert A. Koeneke\n
7  *\n
8  * This software may be copied and distributed for educational, research,\n
9  * and not for profit purposes provided that this copyright and statement\n
10  * are included in all such copies.  Other copyrights may also apply.\n
11  * 2014 Deskull rearranged comment for Doxygen.\n
12  */
13
14 #include "angband.h"
15 #include "selfinfo.h"
16
17 /*!
18  * @brief プレイヤーに突然変異を与える
19  * @param choose_mut 与えたい突然変異のID、0ならばランダムに選択
20  * @return なし
21  */
22 bool gain_random_mutation(int choose_mut)
23 {
24         int     attempts_left = 20;
25         cptr    muta_desc = "";
26         bool    muta_chosen = FALSE;
27         u32b    muta_which = 0;
28         u32b    *muta_class = NULL;
29
30         if (choose_mut) attempts_left = 1;
31
32         while (attempts_left--)
33         {
34                 switch (choose_mut ? choose_mut : (p_ptr->pclass == CLASS_BERSERKER ? 74+randint1(119) : randint1(193)))
35                 {
36                 case 1: case 2: case 3: case 4:
37                         muta_class = &(p_ptr->muta1);
38                         muta_which = MUT1_SPIT_ACID;
39                         muta_desc = _("酸を吐く能力を得た。", "You gain the ability to spit acid.");
40                         break;
41                         
42                 case 5: case 6: case 7:
43                         muta_class = &(p_ptr->muta1);
44                         muta_which = MUT1_BR_FIRE;
45                         muta_desc = _("火を吐く能力を得た。", "You gain the ability to breathe fire.");
46                         break;
47                         
48                 case 8: case 9:
49                         muta_class = &(p_ptr->muta1);
50                         muta_which = MUT1_HYPN_GAZE;
51                         muta_desc = _("催眠眼の能力を得た。", "Your eyes look mesmerizing...");
52                         break;
53                         
54                 case 10: case 11:
55                         muta_class = &(p_ptr->muta1);
56                         muta_which = MUT1_TELEKINES;
57                         muta_desc = _("物体を念動力で動かす能力を得た。", "You gain the ability to move objects telekinetically.");
58                         break;
59                         
60                 case 12: case 13: case 14:
61                         muta_class = &(p_ptr->muta1);
62                         muta_which = MUT1_VTELEPORT;
63                         muta_desc = _("自分の意思でテレポートする能力を得た。", "You gain the power of teleportation at will.");
64                         break;
65                         
66                 case 15: case 16:
67                         muta_class = &(p_ptr->muta1);
68                         muta_which = MUT1_MIND_BLST;
69                         muta_desc = _("精神攻撃の能力を得た。", "You gain the power of Mind Blast.");
70                         break;
71                         
72                 case 17: case 18:
73                         muta_class = &(p_ptr->muta1);
74                         muta_which = MUT1_RADIATION;
75                         muta_desc = _("あなたは強い放射線を発生し始めた。", "You start emitting hard radiation.");
76                         break;
77                         
78                 case 19: case 20:
79                         muta_class = &(p_ptr->muta1);
80                         muta_which = MUT1_VAMPIRISM;
81                         muta_desc = _("生命力を吸収できるようになった。", "You become vampiric.");
82                         break;
83                         
84                 case 21: case 22: case 23:
85                         muta_class = &(p_ptr->muta1);
86                         muta_which = MUT1_SMELL_MET;
87                         muta_desc = _("金属の匂いを嗅ぎ分けられるようになった。", "You smell a metallic odor.");
88                         break;
89                         
90                 case 24: case 25: case 26: case 27:
91                         muta_class = &(p_ptr->muta1);
92                         muta_which = MUT1_SMELL_MON;
93                         muta_desc = _("モンスターの臭いを嗅ぎ分けられるようになった。", "You smell filthy monsters.");
94                         break;
95                         
96                 case 28: case 29: case 30:
97                         muta_class = &(p_ptr->muta1);
98                         muta_which = MUT1_BLINK;
99                         muta_desc = _("近距離テレポートの能力を得た。", "You gain the power of minor teleportation.");
100                         break;
101                         
102                 case 31: case 32:
103                         muta_class = &(p_ptr->muta1);
104                         muta_which = MUT1_EAT_ROCK;
105                         muta_desc = _("壁が美味しそうに見える。", "The walls look delicious.");
106                         break;
107                         
108                 case 33: case 34:
109                         muta_class = &(p_ptr->muta1);
110                         muta_which = MUT1_SWAP_POS;
111                         muta_desc = _("他人の靴で一マイル歩くような気分がする。", "You feel like walking a mile in someone else's shoes.");
112                         break;
113                         
114                 case 35: case 36: case 37:
115                         muta_class = &(p_ptr->muta1);
116                         muta_which = MUT1_SHRIEK;
117                         muta_desc = _("あなたの声は相当強くなった。", "Your vocal cords get much tougher.");
118                         break;
119                         
120                 case 38: case 39: case 40:
121                         muta_class = &(p_ptr->muta1);
122                         muta_which = MUT1_ILLUMINE;
123                         muta_desc = _("あなたは光り輝いて部屋を明るくするようになった。", "You can light up rooms with your presence.");
124                         break;
125                         
126                 case 41: case 42:
127                         muta_class = &(p_ptr->muta1);
128                         muta_which = MUT1_DET_CURSE;
129                         muta_desc = _("邪悪な魔法を感知できるようになった。", "You can feel evil magics.");
130                         break;
131                         
132                 case 43: case 44: case 45:
133                         muta_class = &(p_ptr->muta1);
134                         muta_which = MUT1_BERSERK;
135                         muta_desc = _("制御できる激情を感じる。", "You feel a controlled rage.");
136                         break;
137                         
138                 case 46:
139                         muta_class = &(p_ptr->muta1);
140                         muta_which = MUT1_POLYMORPH;
141                         muta_desc = _("体が変異しやすくなった。", "Your body seems mutable.");
142                         break;
143                         
144                 case 47: case 48:
145                         muta_class = &(p_ptr->muta1);
146                         muta_which = MUT1_MIDAS_TCH;
147                         muta_desc = _("「ミダス王の手」の能力を得た。", "You gain the Midas touch.");/*トゥームレイダースにありましたね。 */
148                         break;
149                         
150                 case 49:
151                         muta_class = &(p_ptr->muta1);
152                         muta_which = MUT1_GROW_MOLD;
153                         muta_desc = _("突然カビに親しみを覚えた。", "You feel a sudden affinity for mold.");
154                         break;
155                         
156                 case 50: case 51: case 52:
157                         muta_class = &(p_ptr->muta1);
158                         muta_which = MUT1_RESIST;
159                         muta_desc = _("あなたは自分自身を守れる気がする。", "You feel like you can protect yourself.");
160                         break;
161                         
162                 case 53: case 54: case 55:
163                         muta_class = &(p_ptr->muta1);
164                         muta_which = MUT1_EARTHQUAKE;
165                         muta_desc = _("ダンジョンを破壊する能力を得た。", "You gain the ability to wreck the dungeon.");
166                         break;
167                         
168                 case 56:
169                         muta_class = &(p_ptr->muta1);
170                         muta_which = MUT1_EAT_MAGIC;
171                         muta_desc = _("魔法のアイテムが美味そうに見える。", "Your magic items look delicious.");
172                         break;
173                         
174                 case 57: case 58:
175                         muta_class = &(p_ptr->muta1);
176                         muta_which = MUT1_WEIGH_MAG;
177                         muta_desc = _("あなたは周囲にある魔法をより良く理解できる気がする。", "You feel you can better understand the magic around you.");
178                         break;
179                         
180                 case 59:
181                         muta_class = &(p_ptr->muta1);
182                         muta_which = MUT1_STERILITY;
183                         muta_desc = _("周りの全ての者に頭痛を起こすことができる。", "You can give everything around you a headache.");
184                         break;
185                 case 60: case 61:
186                         muta_class = &(p_ptr->muta1);
187                         muta_which = MUT1_PANIC_HIT;
188                         muta_desc = _("突然、泥棒の気分が分かるようになった。", "You suddenly understand how thieves feel.");
189                         break;
190                         
191                 case 62: case 63: case 64:
192                         muta_class = &(p_ptr->muta1);
193                         muta_which = MUT1_DAZZLE;
194                         muta_desc = _("眩い閃光を発する能力を得た。", "You gain the ability to emit dazzling lights.");
195                         break;
196                         
197                 case 65: case 66: case 67:
198                         muta_class = &(p_ptr->muta1);
199                         muta_which = MUT1_LASER_EYE;
200                         muta_desc = _("あなたの目は一瞬焼け付いた。", "Your eyes burn for a moment.");
201                         break;
202                         
203                 case 68: case 69:
204                         muta_class = &(p_ptr->muta1);
205                         muta_which = MUT1_RECALL;
206                         muta_desc = _("少しだけホームシックになったが、すぐ直った。", "You feel briefly homesick, but it passes.");
207                         break;
208                         
209                 case 70:
210                         muta_class = &(p_ptr->muta1);
211                         muta_which = MUT1_BANISH;
212                         muta_desc = _("神聖な怒りの力に満たされた。", "You feel a holy wrath fill you.");
213                         break;
214                         
215                 case 71: case 72:
216                         muta_class = &(p_ptr->muta1);
217                         muta_which = MUT1_COLD_TOUCH;
218                         muta_desc = _("あなたの両手はとても冷たくなった。", "Your hands get very cold.");
219                         break;
220                         
221                 case 73: case 74:
222                         muta_class = &(p_ptr->muta1);
223                         muta_which = MUT1_LAUNCHER;
224                         muta_desc = _("あなたの物を投げる手はかなり強くなった気がする。", "Your throwing arm feels much stronger.");
225                         break;
226                         
227                 case 75:
228                         muta_class = &(p_ptr->muta2);
229                         muta_which = MUT2_BERS_RAGE;
230                         muta_desc = _("あなたは狂暴化の発作を起こすようになった!", "You become subject to fits of berserk rage!");
231                         break;
232                         
233                 case 76:
234                         muta_class = &(p_ptr->muta2);
235                         muta_which = MUT2_COWARDICE;
236                         muta_desc = _("信じられないくらい臆病になった!", "You become an incredible coward!");
237                         break;
238                         
239                 case 77:
240                         muta_class = &(p_ptr->muta2);
241                         muta_which = MUT2_RTELEPORT;
242                         muta_desc = _("あなたの位置は非常に不確定になった。", "Your position seems very uncertain...");
243                         break;
244                         
245                 case 78:
246                         muta_class = &(p_ptr->muta2);
247                         muta_which = MUT2_ALCOHOL;
248                         muta_desc = _("あなたはアルコールを分泌するようになった。", "Your body starts producing alcohol!");
249                         break;
250                         
251                 case 79:
252                         muta_class = &(p_ptr->muta2);
253                         muta_which = MUT2_HALLU;
254                         muta_desc = _("あなたは幻覚を引き起こす精神錯乱に侵された。", "You are afflicted by a hallucinatory insanity!");
255                         break;
256                         
257                 case 80:
258                         muta_class = &(p_ptr->muta2);
259                         muta_which = MUT2_FLATULENT;
260                         muta_desc = _( "あなたは制御不能な強烈な屁をこくようになった。",  "You become subject to uncontrollable flatulence.");
261
262                         break;
263                 case 81: case 82:
264                         muta_class = &(p_ptr->muta2);
265                         muta_which = MUT2_SCOR_TAIL;
266                         muta_desc = _( "サソリの尻尾が生えてきた!",  "You grow a scorpion tail!");
267
268                         break;
269                 case 83: case 84:
270                         muta_class = &(p_ptr->muta2);
271                         muta_which = MUT2_HORNS;
272                         muta_desc = _( "額に角が生えた!",  "Horns pop forth into your forehead!");
273
274                         break;
275                 case 85: case 86:
276                         muta_class = &(p_ptr->muta2);
277                         muta_which = MUT2_BEAK;
278                         muta_desc = _( "口が鋭く強いクチバシに変化した!",  "Your mouth turns into a sharp, powerful beak!");
279
280                         break;
281                 case 87: case 88:
282                         muta_class = &(p_ptr->muta2);
283                         muta_which = MUT2_ATT_DEMON;
284                         muta_desc = _( "悪魔を引き付けるようになった。",  "You start attracting demons.");
285
286                         break;
287                 case 89:
288                         muta_class = &(p_ptr->muta2);
289                         muta_which = MUT2_PROD_MANA;
290                         muta_desc = _( "あなたは制御不能な魔法のエネルギーを発生するようになった。",  "You start producing magical energy uncontrollably.");
291
292                         break;
293                 case 90: case 91:
294                         muta_class = &(p_ptr->muta2);
295                         muta_which = MUT2_SPEED_FLUX;
296                         muta_desc = _( "あなたは躁鬱質になった。",  "You become manic-depressive.");
297
298                         break;
299                 case 92: case 93:
300                         muta_class = &(p_ptr->muta2);
301                         muta_which = MUT2_BANISH_ALL;
302                         muta_desc = _( "恐ろしい力があなたの背後に潜んでいる気がする。",  "You feel a terrifying power lurking behind you.");
303
304                         break;
305                 case 94:
306                         muta_class = &(p_ptr->muta2);
307                         muta_which = MUT2_EAT_LIGHT;
308                         muta_desc = _( "あなたはウンゴリアントに奇妙な親しみを覚えるようになった。",  "You feel a strange kinship with Ungoliant.");
309
310                         break;
311                 case 95: case 96:
312                         muta_class = &(p_ptr->muta2);
313                         muta_which = MUT2_TRUNK;
314                         muta_desc = _( "あなたの鼻は伸びて象の鼻のようになった。",  "Your nose grows into an elephant-like trunk.");
315
316                         break;
317                 case 97:
318                         muta_class = &(p_ptr->muta2);
319                         muta_which = MUT2_ATT_ANIMAL;
320                         muta_desc = _( "動物を引き付けるようになった。",  "You start attracting animals.");
321
322                         break;
323                 case 98:
324                         muta_class = &(p_ptr->muta2);
325                         muta_which = MUT2_TENTACLES;
326                         muta_desc = _( "邪悪な触手が体の両側に生えてきた。",  "Evil-looking tentacles sprout from your sides.");
327
328                         break;
329                 case 99:
330                         muta_class = &(p_ptr->muta2);
331                         muta_which = MUT2_RAW_CHAOS;
332                         muta_desc = _( "周囲の空間が不安定になった気がする。",  "You feel the universe is less stable around you.");
333
334                         break;
335                 case 100: case 101: case 102:
336                         muta_class = &(p_ptr->muta2);
337                         muta_which = MUT2_NORMALITY;
338                         muta_desc = _( "あなたは奇妙なほど普通になった気がする。",  "You feel strangely normal.");
339
340                         break;
341                 case 103:
342                         muta_class = &(p_ptr->muta2);
343                         muta_which = MUT2_WRAITH;
344                         muta_desc = _( "あなたは幽体化したり実体化したりするようになった。",  "You start to fade in and out of the physical world.");
345
346                         break;
347                 case 104:
348                         muta_class = &(p_ptr->muta2);
349                         muta_which = MUT2_POLY_WOUND;
350                         muta_desc = _( "あなたはカオスの力が古い傷に入り込んでくるのを感じた。",  "You feel forces of chaos entering your old scars.");
351
352                         break;
353                 case 105:
354                         muta_class = &(p_ptr->muta2);
355                         muta_which = MUT2_WASTING;
356                         muta_desc = _( "あなたは突然おぞましい衰弱病にかかった。",  "You suddenly contract a horrible wasting disease.");
357
358                         break;
359                 case 106:
360                         muta_class = &(p_ptr->muta2);
361                         muta_which = MUT2_ATT_DRAGON;
362                         muta_desc = _( "あなたはドラゴンを引きつけるようになった。",  "You start attracting dragons.");
363
364                         break;
365                 case 107: case 108:
366                         muta_class = &(p_ptr->muta2);
367                         muta_which = MUT2_WEIRD_MIND;
368                         muta_desc = _( "あなたの思考は突然おかしな方向に向き始めた。",  "Your thoughts suddenly take off in strange directions.");
369
370                         break;
371                 case 109:
372                         muta_class = &(p_ptr->muta2);
373                         muta_which = MUT2_NAUSEA;
374                         muta_desc = _( "胃袋がピクピクしはじめた。",  "Your stomach starts to roil nauseously.");
375
376                         break;
377                 case 110: case 111:
378                         /* Chaos warriors already have a chaos deity */
379                         if (p_ptr->pclass != CLASS_CHAOS_WARRIOR)
380                         {
381                                 muta_class = &(p_ptr->muta2);
382                                 muta_which = MUT2_CHAOS_GIFT;
383                         muta_desc = _( "あなたはカオスの守護悪魔の注意を惹くようになった。",  "You attract the notice of a chaos deity!");
384
385                         }
386                         break;
387                 case 112:
388                         muta_class = &(p_ptr->muta2);
389                         muta_which = MUT2_WALK_SHAD;
390                         muta_desc = _( "あなたは現実が紙のように薄いと感じるようになった。",  "You feel like reality is as thin as paper.");
391
392                         break;
393                 case 113: case 114:
394                         muta_class = &(p_ptr->muta2);
395                         muta_which = MUT2_WARNING;
396                         muta_desc = _( "あなたは突然パラノイアになった気がする。",  "You suddenly feel paranoid.");
397
398                         break;
399                 case 115:
400                         muta_class = &(p_ptr->muta2);
401                         muta_which = MUT2_INVULN;
402                         muta_desc = _( "あなたは祝福され、無敵状態になる発作を起こすようになった。",  "You are blessed with fits of invulnerability.");
403
404                         break;
405                 case 116: case 117:
406                         muta_class = &(p_ptr->muta2);
407                         muta_which = MUT2_SP_TO_HP;
408                         muta_desc = _( "魔法の治癒の発作を起こすようになった。",  "You are subject to fits of magical healing.");
409
410                         break;
411                 case 118:
412                         muta_class = &(p_ptr->muta2);
413                         muta_which = MUT2_HP_TO_SP;
414                         muta_desc = _( "痛みを伴う精神明瞭化の発作を起こすようになった。",  "You are subject to fits of painful clarity.");
415
416                         break;
417                 case 119:
418                         muta_class = &(p_ptr->muta2);
419                         muta_which = MUT2_DISARM;
420                         muta_desc = _( "あなたの脚は長さが四倍になった。",  "Your feet grow to four times their former size.");
421
422                         break;
423                 case 120: case 121: case 122:
424                         muta_class = &(p_ptr->muta3);
425                         muta_which = MUT3_HYPER_STR;
426                         muta_desc = _( "超人的に強くなった!",  "You turn into a superhuman he-man!");
427
428                         break;
429                 case 123: case 124: case 125:
430                         muta_class = &(p_ptr->muta3);
431                         muta_which = MUT3_PUNY;
432                         muta_desc = _( "筋肉が弱ってしまった...",  "Your muscles wither away...");
433
434                         break;
435                 case 126: case 127: case 128:
436                         muta_class = &(p_ptr->muta3);
437                         muta_which = MUT3_HYPER_INT;
438                         muta_desc = _( "あなたの脳は生体コンピュータに進化した!",  "Your brain evolves into a living computer!");
439
440                         break;
441                 case 129: case 130: case 131:
442                         muta_class = &(p_ptr->muta3);
443                         muta_which = MUT3_MORONIC;
444                         muta_desc = _( "脳が萎縮してしまった...",  "Your brain withers away...");
445
446                         break;
447                 case 132: case 133:
448                         muta_class = &(p_ptr->muta3);
449                         muta_which = MUT3_RESILIENT;
450                         muta_desc = _( "並外れてタフになった。",  "You become extraordinarily resilient.");
451
452                         break;
453                 case 134: case 135:
454                         muta_class = &(p_ptr->muta3);
455                         muta_which = MUT3_XTRA_FAT;
456                         muta_desc = _( "あなたは気持ち悪いくらい太った!",  "You become sickeningly fat!");
457
458                         break;
459                 case 136: case 137:
460                         muta_class = &(p_ptr->muta3);
461                         muta_which = MUT3_ALBINO;
462                         muta_desc = _( "アルビノになった!弱くなった気がする...",  "You turn into an albino! You feel frail...");
463
464                         break;
465                 case 138: case 139: case 140:
466                         muta_class = &(p_ptr->muta3);
467                         muta_which = MUT3_FLESH_ROT;
468                         muta_desc = _( "あなたの肉体は腐敗する病気に侵された!",  "Your flesh is afflicted by a rotting disease!");
469
470                         break;
471                 case 141: case 142:
472                         muta_class = &(p_ptr->muta3);
473                         muta_which = MUT3_SILLY_VOI;
474                         muta_desc = _( "声が間抜けなキーキー声になった!",  "Your voice turns into a ridiculous squeak!");
475
476                         break;
477                 case 143: case 144:
478                         muta_class = &(p_ptr->muta3);
479                         muta_which = MUT3_BLANK_FAC;
480                         muta_desc = _( "のっぺらぼうになった!",  "Your face becomes completely featureless!");
481
482                         break;
483                 case 145:
484                         muta_class = &(p_ptr->muta3);
485                         muta_which = MUT3_ILL_NORM;
486                         muta_desc = _( "心の安らぐ幻影を映し出すようになった。",  "You start projecting a reassuring image.");
487
488                         break;
489                 case 146: case 147: case 148:
490                         muta_class = &(p_ptr->muta3);
491                         muta_which = MUT3_XTRA_EYES;
492                         muta_desc = _( "新たに二つの目が出来た!",  "You grow an extra pair of eyes!");
493
494                         break;
495                 case 149: case 150:
496                         muta_class = &(p_ptr->muta3);
497                         muta_which = MUT3_MAGIC_RES;
498                         muta_desc = _( "魔法への耐性がついた。",  "You become resistant to magic.");
499
500                         break;
501                 case 151: case 152: case 153:
502                         muta_class = &(p_ptr->muta3);
503                         muta_which = MUT3_XTRA_NOIS;
504                         muta_desc = _( "あなたは奇妙な音を立て始めた!",  "You start making strange noise!");
505
506                         break;
507                 case 154: case 155: case 156:
508                         muta_class = &(p_ptr->muta3);
509                         muta_which = MUT3_INFRAVIS;
510                         muta_desc = _( "赤外線視力が増した。",  "Your infravision is improved.");
511
512                         break;
513                 case 157: case 158:
514                         muta_class = &(p_ptr->muta3);
515                         muta_which = MUT3_XTRA_LEGS;
516                         muta_desc = _( "新たに二本の足が生えてきた!",  "You grow an extra pair of legs!");
517
518                         break;
519                 case 159: case 160:
520                         muta_class = &(p_ptr->muta3);
521                         muta_which = MUT3_SHORT_LEG;
522                         muta_desc = _( "足が短い突起になってしまった!",  "Your legs turn into short stubs!");
523
524                         break;
525                 case 161: case 162:
526                         muta_class = &(p_ptr->muta3);
527                         muta_which = MUT3_ELEC_TOUC;
528                         muta_desc = _( "血管を電流が流れ始めた!",  "Electricity starts running through you!");
529
530                         break;
531                 case 163: case 164:
532                         muta_class = &(p_ptr->muta3);
533                         muta_which = MUT3_FIRE_BODY;
534                         muta_desc = _( "あなたの体は炎につつまれている。",  "Your body is enveloped in flames!");
535
536                         break;
537                 case 165: case 166: case 167:
538                         muta_class = &(p_ptr->muta3);
539                         muta_which = MUT3_WART_SKIN;
540                         muta_desc = _( "気持ち悪いイボイボが体中にできた!",  "Disgusting warts appear everywhere on you!");
541
542                         break;
543                 case 168: case 169: case 170:
544                         muta_class = &(p_ptr->muta3);
545                         muta_which = MUT3_SCALES;
546                         muta_desc = _( "肌が黒い鱗に変わった!",  "Your skin turns into black scales!");
547
548                         break;
549                 case 171: case 172:
550                         muta_class = &(p_ptr->muta3);
551                         muta_which = MUT3_IRON_SKIN;
552                         muta_desc = _( "あなたの肌は鉄になった!",  "Your skin turns to steel!");
553
554                         break;
555                 case 173: case 174:
556                         muta_class = &(p_ptr->muta3);
557                         muta_which = MUT3_WINGS;
558                         muta_desc = _( "背中に羽が生えた。",  "You grow a pair of wings.");
559
560                         break;
561                 case 175: case 176: case 177:
562                         muta_class = &(p_ptr->muta3);
563                         muta_which = MUT3_FEARLESS;
564                         muta_desc = _( "完全に怖れ知らずになった。",  "You become completely fearless.");
565
566                         break;
567                 case 178: case 179:
568                         muta_class = &(p_ptr->muta3);
569                         muta_which = MUT3_REGEN;
570                         muta_desc = _( "急速に回復し始めた。",  "You start regenerating.");
571
572                         break;
573                 case 180: case 181:
574                         muta_class = &(p_ptr->muta3);
575                         muta_which = MUT3_ESP;
576                         muta_desc = _( "テレパシーの能力を得た!",  "You develop a telepathic ability!");
577
578                         break;
579                 case 182: case 183: case 184:
580                         muta_class = &(p_ptr->muta3);
581                         muta_which = MUT3_LIMBER;
582                         muta_desc = _( "筋肉がしなやかになった。",  "Your muscles become limber.");
583
584                         break;
585                 case 185: case 186: case 187:
586                         muta_class = &(p_ptr->muta3);
587                         muta_which = MUT3_ARTHRITIS;
588                         muta_desc = _( "関節が突然痛み出した。",  "Your joints suddenly hurt.");
589
590                         break;
591                 case 188:
592                         if (p_ptr->pseikaku == SEIKAKU_LUCKY) break;
593                         muta_class = &(p_ptr->muta3);
594                         muta_which = MUT3_BAD_LUCK;
595                         muta_desc = _( "悪意に満ちた黒いオーラがあなたをとりまいた...",  "There is a malignant black aura surrounding you...");
596
597                         break;
598                 case 189:
599                         muta_class = &(p_ptr->muta3);
600                         muta_which = MUT3_VULN_ELEM;
601                         muta_desc = _( "妙に無防備になった気がする。",  "You feel strangely exposed.");
602
603                         break;
604                 case 190: case 191: case 192:
605                         muta_class = &(p_ptr->muta3);
606                         muta_which = MUT3_MOTION;
607                         muta_desc = _( "体の動作がより正確になった。",  "You move with new assurance.");
608
609                         break;
610                 case 193:
611                         muta_class = &(p_ptr->muta3);
612                         muta_which = MUT3_GOOD_LUCK;
613                         muta_desc = _( "慈悲深い白いオーラがあなたをとりまいた...",  "There is a benevolent white aura surrounding you...");
614
615                         break;
616                 default:
617                         muta_class = NULL;
618                         muta_which = 0;
619                 }
620
621                 if (muta_class && muta_which)
622                 {
623                         if (!(*muta_class & muta_which))
624                         {
625                                 muta_chosen = TRUE;
626                         }
627                 }
628                 if (muta_chosen == TRUE) break;
629         }
630
631         if (!muta_chosen)
632         {
633                 msg_print(_("普通になった気がする。", "You feel normal."));
634
635                 return FALSE;
636         }
637         else
638         {
639                 chg_virtue(V_CHANCE, 1);
640
641                 /*
642                   some races are apt to gain specified mutations
643                   This should be allowed only if "choose_mut" is 0.
644                                                         --- henkma
645                 */
646                 if(!choose_mut){
647                         if (p_ptr->prace == RACE_VAMPIRE &&
648                           !(p_ptr->muta1 & MUT1_HYPN_GAZE) &&
649                            (randint1(10) < 7))
650                         {
651                                 muta_class = &(p_ptr->muta1);
652                                 muta_which = MUT1_HYPN_GAZE;
653                         muta_desc = _( "眼が幻惑的になった...",  "Your eyes look mesmerizing...");
654
655                         }
656
657                         else if (p_ptr->prace == RACE_IMP &&
658                                  !(p_ptr->muta2 & MUT2_HORNS) &&
659                                  (randint1(10) < 7))
660                           {
661                                 muta_class = &(p_ptr->muta2);
662                                 muta_which = MUT2_HORNS;
663                         muta_desc = _( "角が額から生えてきた!",  "Horns pop forth into your forehead!");
664
665                         }
666
667                         else if (p_ptr->prace == RACE_YEEK &&
668                                 !(p_ptr->muta1 & MUT1_SHRIEK) &&
669                                 (randint1(10) < 7))
670                         {
671                                 muta_class = &(p_ptr->muta1);
672                                 muta_which = MUT1_SHRIEK;
673                         muta_desc = _( "声質がかなり強くなった。",  "Your vocal cords get much tougher.");
674
675                         }
676
677                         else if (p_ptr->prace == RACE_BEASTMAN &&
678                                 !(p_ptr->muta1 & MUT1_POLYMORPH) &&
679                                 (randint1(10) < 2))
680                         {
681                                 muta_class = &(p_ptr->muta1);
682                                 muta_which = MUT1_POLYMORPH;
683                         muta_desc = _( "あなたの肉体は変化できるようになった、",  "Your body seems mutable.");
684
685                         }
686
687                         else if (p_ptr->prace == RACE_MIND_FLAYER &&
688                                 !(p_ptr->muta2 & MUT2_TENTACLES) &&
689                                 (randint1(10) < 7))
690                         {
691                                 muta_class = &(p_ptr->muta2);
692                                 muta_which = MUT2_TENTACLES;
693                         muta_desc = _( "邪悪な触手が口の周りに生えた。",  "Evil-looking tentacles sprout from your mouth.");
694
695                         }
696                 }
697                 msg_print(_("突然変異した!", "You mutate!"));
698
699                 msg_print(muta_desc);
700                 *muta_class |= muta_which;
701
702                 if (muta_class == &(p_ptr->muta3))
703                 {
704                         if (muta_which == MUT3_PUNY)
705                         {
706                                 if (p_ptr->muta3 & MUT3_HYPER_STR)
707                                 {
708                                         msg_print(_("あなたはもう超人的に強くはない!", "You no longer feel super-strong!"));
709
710                                         p_ptr->muta3 &= ~(MUT3_HYPER_STR);
711                                 }
712                         }
713                         else if (muta_which == MUT3_HYPER_STR)
714                         {
715                                 if (p_ptr->muta3 & MUT3_PUNY)
716                                 {
717                                         msg_print(_("あなたはもう虚弱ではない!", "You no longer feel puny!"));
718
719                                         p_ptr->muta3 &= ~(MUT3_PUNY);
720                                 }
721                         }
722                         else if (muta_which == MUT3_MORONIC)
723                         {
724                                 if (p_ptr->muta3 & MUT3_HYPER_INT)
725                                 {
726                                         msg_print(_("あなたの脳はもう生体コンピュータではない。", "Your brain is no longer a living computer."));
727
728                                         p_ptr->muta3 &= ~(MUT3_HYPER_INT);
729                                 }
730                         }
731                         else if (muta_which == MUT3_HYPER_INT)
732                         {
733                                 if (p_ptr->muta3 & MUT3_MORONIC)
734                                 {
735                                         msg_print(_("あなたはもう精神薄弱ではない。", "You are no longer moronic."));
736
737                                         p_ptr->muta3 &= ~(MUT3_MORONIC);
738                                 }
739                         }
740                         else if (muta_which == MUT3_IRON_SKIN)
741                         {
742                                 if (p_ptr->muta3 & MUT3_SCALES)
743                                 {
744                                         msg_print(_("鱗がなくなった。", "You lose your scales."));
745
746                                         p_ptr->muta3 &= ~(MUT3_SCALES);
747                                 }
748                                 if (p_ptr->muta3 & MUT3_FLESH_ROT)
749                                 {
750                                         msg_print(_("肉体が腐乱しなくなった。", "Your flesh rots no longer."));
751
752                                         p_ptr->muta3 &= ~(MUT3_FLESH_ROT);
753                                 }
754                                 if (p_ptr->muta3 & MUT3_WART_SKIN)
755                                 {
756                                         msg_print(_("肌のイボイボがなくなった。", "You lose your warts."));
757
758                                         p_ptr->muta3 &= ~(MUT3_WART_SKIN);
759                                 }
760                         }
761                         else if (muta_which == MUT3_WART_SKIN || muta_which == MUT3_SCALES
762                                 || muta_which == MUT3_FLESH_ROT)
763                         {
764                                 if (p_ptr->muta3 & MUT3_IRON_SKIN)
765                                 {
766                                         msg_print(_("あなたの肌はもう鉄ではない。", "Your skin is no longer made of steel."));
767
768                                         p_ptr->muta3 &= ~(MUT3_IRON_SKIN);
769                                 }
770                         }
771                         else if (muta_which == MUT3_FEARLESS)
772                         {
773                                 if (p_ptr->muta2 & MUT2_COWARDICE)
774                                 {
775                                         msg_print(_("臆病でなくなった。", "You are no longer cowardly."));
776
777                                         p_ptr->muta2 &= ~(MUT2_COWARDICE);
778                                 }
779                         }
780                         else if (muta_which == MUT3_FLESH_ROT)
781                         {
782                                 if (p_ptr->muta3 & MUT3_REGEN)
783                                 {
784                                         msg_print(_("急速に回復しなくなった。", "You stop regenerating."));
785
786                                         p_ptr->muta3 &= ~(MUT3_REGEN);
787                                 }
788                         }
789                         else if (muta_which == MUT3_REGEN)
790                         {
791                                 if (p_ptr->muta3 & MUT3_FLESH_ROT)
792                                 {
793                                         msg_print(_("肉体が腐乱しなくなった。", "Your flesh stops rotting."));
794
795                                         p_ptr->muta3 &= ~(MUT3_FLESH_ROT);
796                                 }
797                         }
798                         else if (muta_which == MUT3_LIMBER)
799                         {
800                                 if (p_ptr->muta3 & MUT3_ARTHRITIS)
801                                 {
802                                         msg_print(_("関節が痛くなくなった。", "Your joints stop hurting."));
803
804                                         p_ptr->muta3 &= ~(MUT3_ARTHRITIS);
805                                 }
806                         }
807                         else if (muta_which == MUT3_ARTHRITIS)
808                         {
809                                 if (p_ptr->muta3 & MUT3_LIMBER)
810                                 {
811                                         msg_print(_("あなたはしなやかでなくなった。", "You no longer feel limber."));
812
813                                         p_ptr->muta3 &= ~(MUT3_LIMBER);
814                                 }
815                         }
816                 }
817                 else if (muta_class == &(p_ptr->muta2))
818                 {
819                         if (muta_which == MUT2_COWARDICE)
820                         {
821                                 if (p_ptr->muta3 & MUT3_FEARLESS)
822                                 {
823                                         msg_print(_("恐れ知らずでなくなった。", "You no longer feel fearless."));
824
825                                         p_ptr->muta3 &= ~(MUT3_FEARLESS);
826                                 }
827                         }
828                         if (muta_which == MUT2_BEAK)
829                         {
830                                 if (p_ptr->muta2 & MUT2_TRUNK)
831                                 {
832                                         msg_print(_("あなたの鼻はもう象の鼻のようではなくなった。", "Your nose is no longer elephantine."));
833
834                                         p_ptr->muta2 &= ~(MUT2_TRUNK);
835                                 }
836                         }
837                         if (muta_which == MUT2_TRUNK)
838                         {
839                                 if (p_ptr->muta2 & MUT2_BEAK)
840                                 {
841                                         msg_print(_("硬いクチバシがなくなった。", "You no longer have a hard beak."));
842
843                                         p_ptr->muta2 &= ~(MUT2_BEAK);
844                                 }
845                         }
846                 }
847
848                 mutant_regenerate_mod = calc_mutant_regenerate_mod();
849                 p_ptr->update |= PU_BONUS;
850                 handle_stuff();
851                 return TRUE;
852         }
853 }
854
855 /*!
856  * @brief プレイヤーから突然変異を取り除く
857  * @param choose_mut 取り除きたい突然変異のID、0ならばランダムに消去
858  * @return なし
859  */
860 bool lose_mutation(int choose_mut)
861 {
862         int attempts_left = 20;
863         cptr muta_desc = "";
864         bool muta_chosen = FALSE;
865         u32b muta_which = 0;
866         u32b *muta_class = NULL;
867
868         if (choose_mut) attempts_left = 1;
869
870         while (attempts_left--)
871         {
872                 switch (choose_mut ? choose_mut : randint1(193))
873                 {
874                 case 1: case 2: case 3: case 4:
875                         muta_class = &(p_ptr->muta1);
876                         muta_which = MUT1_SPIT_ACID;
877                         muta_desc = _( "酸を吹きかける能力を失った。",  "You lose the ability to spit acid.");
878
879                         break;
880                 case 5: case 6: case 7:
881                         muta_class = &(p_ptr->muta1);
882                         muta_which = MUT1_BR_FIRE;
883                         muta_desc = _( "炎のブレスを吐く能力を失った。",  "You lose the ability to breathe fire.");
884
885                         break;
886                 case 8: case 9:
887                         muta_class = &(p_ptr->muta1);
888                         muta_which = MUT1_HYPN_GAZE;
889                         muta_desc = _( "あなたの目はつまらない目になった。",  "Your eyes look uninteresting.");
890
891                         break;
892                 case 10: case 11:
893                         muta_class = &(p_ptr->muta1);
894                         muta_which = MUT1_TELEKINES;
895                         muta_desc = _( "念動力で物を動かす能力を失った。",  "You lose the ability to move objects telekinetically.");
896
897                         break;
898                 case 12: case 13: case 14:
899                         muta_class = &(p_ptr->muta1);
900                         muta_which = MUT1_VTELEPORT;
901                         muta_desc = _( "自分の意思でテレポートする能力を失った。",  "You lose the power of teleportation at will.");
902
903                         break;
904                 case 15: case 16:
905                         muta_class = &(p_ptr->muta1);
906                         muta_which = MUT1_MIND_BLST;
907                         muta_desc = _( "精神攻撃の能力を失った。",  "You lose the power of Mind Blast.");
908
909                         break;
910                 case 17: case 18:
911                         muta_class = &(p_ptr->muta1);
912                         muta_which = MUT1_RADIATION;
913                         muta_desc = _( "あなたは放射能を発生しなくなった。",  "You stop emitting hard radiation.");
914
915                         break;
916                 case 19: case 20:
917                         muta_class = &(p_ptr->muta1);
918                         muta_which = MUT1_VAMPIRISM;
919                         muta_desc = _( "吸血の能力を失った。",  "You are no longer vampiric.");
920
921                         break;
922                 case 21: case 22: case 23:
923                         muta_class = &(p_ptr->muta1);
924                         muta_which = MUT1_SMELL_MET;
925                         muta_desc = _( "金属の臭いを嗅げなくなった。",  "You no longer smell a metallic odor.");
926
927                         break;
928                 case 24: case 25: case 26: case 27:
929                         muta_class = &(p_ptr->muta1);
930                         muta_which = MUT1_SMELL_MON;
931                         muta_desc = _( "不潔なモンスターの臭いを嗅げなくなった。",  "You no longer smell filthy monsters.");
932
933                         break;
934                 case 28: case 29: case 30:
935                         muta_class = &(p_ptr->muta1);
936                         muta_which = MUT1_BLINK;
937                         muta_desc = _( "近距離テレポートの能力を失った。",  "You lose the power of minor teleportation.");
938
939                         break;
940                 case 31: case 32:
941                         muta_class = &(p_ptr->muta1);
942                         muta_which = MUT1_EAT_ROCK;
943                         muta_desc = _( "壁は美味しそうに見えなくなった。",  "The walls look unappetizing.");
944
945                         break;
946                 case 33: case 34:
947                         muta_class = &(p_ptr->muta1);
948                         muta_which = MUT1_SWAP_POS;
949                         muta_desc = _( "あなたは自分の靴に留まる感じがする。",  "You feel like staying in your own shoes.");
950
951                         break;
952                 case 35: case 36: case 37:
953                         muta_class = &(p_ptr->muta1);
954                         muta_which = MUT1_SHRIEK;
955                         muta_desc = _( "あなたの声質は弱くなった。",  "Your vocal cords get much weaker.");
956
957                         break;
958                 case 38: case 39: case 40:
959                         muta_class = &(p_ptr->muta1);
960                         muta_which = MUT1_ILLUMINE;
961                         muta_desc = _( "部屋を明るく照らすことが出来なくなった。",  "You can no longer light up rooms with your presence.");
962
963                         break;
964                 case 41: case 42:
965                         muta_class = &(p_ptr->muta1);
966                         muta_which = MUT1_DET_CURSE;
967                         muta_desc = _( "邪悪な魔法を感じられなくなった。",  "You can no longer feel evil magics.");
968
969                         break;
970                 case 43: case 44: case 45:
971                         muta_class = &(p_ptr->muta1);
972                         muta_which = MUT1_BERSERK;
973                         muta_desc = _( "制御できる激情を感じなくなった。",  "You no longer feel a controlled rage.");
974
975                         break;
976                 case 46:
977                         muta_class = &(p_ptr->muta1);
978                         muta_which = MUT1_POLYMORPH;
979                         muta_desc = _( "あなたの体は安定したように見える。",  "Your body seems stable.");
980
981                         break;
982                 case 47: case 48:
983                         muta_class = &(p_ptr->muta1);
984                         muta_which = MUT1_MIDAS_TCH;
985                         muta_desc = _( "ミダスの手の能力を失った。",  "You lose the Midas touch.");
986
987                         break;
988                 case 49:
989                         muta_class = &(p_ptr->muta1);
990                         muta_which = MUT1_GROW_MOLD;
991                         muta_desc = _( "突然カビが嫌いになった。",  "You feel a sudden dislike for mold.");
992
993                         break;
994                 case 50: case 51: case 52:
995                         muta_class = &(p_ptr->muta1);
996                         muta_which = MUT1_RESIST;
997                         muta_desc = _( "傷つき易くなった気がする。",  "You feel like you might be vulnerable.");
998
999                         break;
1000                 case 53: case 54: case 55:
1001                         muta_class = &(p_ptr->muta1);
1002                         muta_which = MUT1_EARTHQUAKE;
1003                         muta_desc = _( "ダンジョンを壊す能力を失った。",  "You lose the ability to wreck the dungeon.");
1004
1005                         break;
1006                 case 56:
1007                         muta_class = &(p_ptr->muta1);
1008                         muta_which = MUT1_EAT_MAGIC;
1009                         muta_desc = _( "魔法のアイテムはもう美味しそうに見えなくなった。",  "Your magic items no longer look delicious.");
1010
1011                         break;
1012                 case 57: case 58:
1013                         muta_class = &(p_ptr->muta1);
1014                         muta_which = MUT1_WEIGH_MAG;
1015                         muta_desc = _( "魔力を感じられなくなった。",  "You no longer sense magic.");
1016
1017                         break;
1018                 case 59:
1019                         muta_class = &(p_ptr->muta1);
1020                         muta_which = MUT1_STERILITY;
1021                         muta_desc = _( "たくさんの安堵の吐息が聞こえた。",  "You hear a massed sigh of relief.");
1022
1023                         break;
1024                 case 60: case 61:
1025                         muta_class = &(p_ptr->muta1);
1026                         muta_which = MUT1_PANIC_HIT;
1027                         muta_desc = _( "あちこちへ跳べる気分がなくなった。",  "You no longer feel jumpy.");
1028
1029                         break;
1030                 case 62: case 63: case 64:
1031                         muta_class = &(p_ptr->muta1);
1032                         muta_which = MUT1_DAZZLE;
1033                         muta_desc = _( "まばゆい閃光を発する能力を失った。",  "You lose the ability to emit dazzling lights.");
1034
1035                         break;
1036                 case 65: case 66: case 67:
1037                         muta_class = &(p_ptr->muta1);
1038                         muta_which = MUT1_LASER_EYE;
1039                         muta_desc = _( "眼が少しの間焼き付いて、痛みが和らいだ。",  "Your eyes burn for a moment, then feel soothed.");
1040
1041                         break;
1042                 case 68: case 69:
1043                         muta_class = &(p_ptr->muta1);
1044                         muta_which = MUT1_RECALL;
1045                         muta_desc = _( "少しの間ホームシックになった。",  "You feel briefly homesick.");
1046
1047                         break;
1048                 case 70:
1049                         muta_class = &(p_ptr->muta1);
1050                         muta_which = MUT1_BANISH;
1051                         muta_desc = _( "神聖な怒りの力を感じなくなった。",  "You no longer feel a holy wrath.");
1052
1053                         break;
1054                 case 71: case 72:
1055                         muta_class = &(p_ptr->muta1);
1056                         muta_which = MUT1_COLD_TOUCH;
1057                         muta_desc = _( "手が暖かくなった。",  "Your hands warm up.");
1058
1059                         break;
1060                 case 73: case 74:
1061                         muta_class = &(p_ptr->muta1);
1062                         muta_which = MUT1_LAUNCHER;
1063                         muta_desc = _( "物を投げる手が弱くなった気がする。",  "Your throwing arm feels much weaker.");
1064
1065                         break;
1066                 case 75:
1067                         muta_class = &(p_ptr->muta2);
1068                         muta_which = MUT2_BERS_RAGE;
1069                         muta_desc = _( "凶暴化の発作にさらされなくなった!",  "You are no longer subject to fits of berserk rage!");
1070
1071                         break;
1072                 case 76:
1073                         muta_class = &(p_ptr->muta2);
1074                         muta_which = MUT2_COWARDICE;
1075                         muta_desc = _( "もう信じがたいほど臆病ではなくなった!",  "You are no longer an incredible coward!");
1076
1077                         break;
1078                 case 77:
1079                         muta_class = &(p_ptr->muta2);
1080                         muta_which = MUT2_RTELEPORT;
1081                         muta_desc = _( "あなたの位置はより確定的になった。",  "Your position seems more certain.");
1082
1083                         break;
1084                 case 78:
1085                         muta_class = &(p_ptr->muta2);
1086                         muta_which = MUT2_ALCOHOL;
1087                         muta_desc = _( "あなたはアルコールを分泌しなくなった!",  "Your body stops producing alcohol!");
1088
1089                         break;
1090                 case 79:
1091                         muta_class = &(p_ptr->muta2);
1092                         muta_which = MUT2_HALLU;
1093                         muta_desc = _( "幻覚をひき起こす精神障害を起こさなくなった!",  "You are no longer afflicted by a hallucinatory insanity!");
1094
1095                         break;
1096                 case 80:
1097                         muta_class = &(p_ptr->muta2);
1098                         muta_which = MUT2_FLATULENT;
1099                         muta_desc = _( "もう強烈な屁はこかなくなった。",  "You are no longer subject to uncontrollable flatulence.");
1100
1101                         break;
1102                 case 81: case 82:
1103                         muta_class = &(p_ptr->muta2);
1104                         muta_which = MUT2_SCOR_TAIL;
1105                         muta_desc = _( "サソリの尻尾がなくなった!",  "You lose your scorpion tail!");
1106
1107                         break;
1108                 case 83: case 84:
1109                         muta_class = &(p_ptr->muta2);
1110                         muta_which = MUT2_HORNS;
1111                         muta_desc = _( "額から角が消えた!",  "Your horns vanish from your forehead!");
1112
1113                         break;
1114                 case 85: case 86:
1115                         muta_class = &(p_ptr->muta2);
1116                         muta_which = MUT2_BEAK;
1117                         muta_desc = _( "口が普通に戻った!",  "Your mouth reverts to normal!");
1118
1119                         break;
1120                 case 87: case 88:
1121                         muta_class = &(p_ptr->muta2);
1122                         muta_which = MUT2_ATT_DEMON;
1123                         muta_desc = _( "デーモンを引き寄せなくなった。",  "You stop attracting demons.");
1124
1125                         break;
1126                 case 89:
1127                         muta_class = &(p_ptr->muta2);
1128                         muta_which = MUT2_PROD_MANA;
1129                         muta_desc = _( "制御不能な魔法のエネルギーを発生しなくなった。",  "You stop producing magical energy uncontrollably.");
1130
1131                         break;
1132                 case 90: case 91:
1133                         muta_class = &(p_ptr->muta2);
1134                         muta_which = MUT2_SPEED_FLUX;
1135                         muta_desc = _( "躁鬱質でなくなった。",  "You are no longer manic-depressive.");
1136
1137                         break;
1138                 case 92: case 93:
1139                         muta_class = &(p_ptr->muta2);
1140                         muta_which = MUT2_BANISH_ALL;
1141                         muta_desc = _( "背後に恐ろしい力を感じなくなった。",  "You no longer feel a terrifying power lurking behind you.");
1142
1143                         break;
1144                 case 94:
1145                         muta_class = &(p_ptr->muta2);
1146                         muta_which = MUT2_EAT_LIGHT;
1147                         muta_desc = _( "世界が明るいと感じる。",  "You feel the world's a brighter place.");
1148
1149                         break;
1150                 case 95: case 96:
1151                         muta_class = &(p_ptr->muta2);
1152                         muta_which = MUT2_TRUNK;
1153                         muta_desc = _( "鼻が普通の長さに戻った。",  "Your nose returns to a normal length.");
1154
1155                         break;
1156                 case 97:
1157                         muta_class = &(p_ptr->muta2);
1158                         muta_which = MUT2_ATT_ANIMAL;
1159                         muta_desc = _( "動物を引き寄せなくなった。",  "You stop attracting animals.");
1160
1161                         break;
1162                 case 98:
1163                         muta_class = &(p_ptr->muta2);
1164                         muta_which = MUT2_TENTACLES;
1165                         muta_desc = _( "触手が消えた。",  "Your tentacles vanish from your sides.");
1166
1167                         break;
1168                 case 99:
1169                         muta_class = &(p_ptr->muta2);
1170                         muta_which = MUT2_RAW_CHAOS;
1171                         muta_desc = _( "周囲の空間が安定した気がする。",  "You feel the universe is more stable around you.");
1172
1173                         break;
1174                 case 100: case 101: case 102:
1175                         muta_class = &(p_ptr->muta2);
1176                         muta_which = MUT2_NORMALITY;
1177                         muta_desc = _( "普通に奇妙な感じがする。",  "You feel normally strange.");
1178
1179                         break;
1180                 case 103:
1181                         muta_class = &(p_ptr->muta2);
1182                         muta_which = MUT2_WRAITH;
1183                         muta_desc = _( "あなたは物質世界にしっかり存在している。",  "You are firmly in the physical world.");
1184
1185                         break;
1186                 case 104:
1187                         muta_class = &(p_ptr->muta2);
1188                         muta_which = MUT2_POLY_WOUND;
1189                         muta_desc = _( "古い傷からカオスの力が去っていった。",  "You feel forces of chaos departing your old scars.");
1190
1191                         break;
1192                 case 105:
1193                         muta_class = &(p_ptr->muta2);
1194                         muta_which = MUT2_WASTING;
1195                         muta_desc = _( "おぞましい衰弱病が治った!",  "You are cured of the horrible wasting disease!");
1196
1197                         break;
1198                 case 106:
1199                         muta_class = &(p_ptr->muta2);
1200                         muta_which = MUT2_ATT_DRAGON;
1201                         muta_desc = _( "ドラゴンを引き寄せなくなった。",  "You stop attracting dragons.");
1202
1203                         break;
1204                 case 107: case 108:
1205                         muta_class = &(p_ptr->muta2);
1206                         muta_which = MUT2_WEIRD_MIND;
1207                         muta_desc = _( "思考が退屈な方向に戻った。",  "Your thoughts return to boring paths.");
1208
1209                         break;
1210                 case 109:
1211                         muta_class = &(p_ptr->muta2);
1212                         muta_which = MUT2_NAUSEA;
1213                         muta_desc = _( "胃が痙攣しなくなった。",  "Your stomach stops roiling.");
1214
1215                         break;
1216                 case 110: case 111:
1217                         muta_class = &(p_ptr->muta2);
1218                         muta_which = MUT2_CHAOS_GIFT;
1219                         muta_desc = _( "混沌の神々の興味を惹かなくなった。",  "You lose the attention of the chaos deities.");
1220
1221                         break;
1222                 case 112:
1223                         muta_class = &(p_ptr->muta2);
1224                         muta_which = MUT2_WALK_SHAD;
1225                         muta_desc = _( "物質世界に捕らわれている気がする。",  "You feel like you're trapped in reality.");
1226
1227                         break;
1228                 case 113: case 114:
1229                         muta_class = &(p_ptr->muta2);
1230                         muta_which = MUT2_WARNING;
1231                         muta_desc = _( "パラノイアでなくなった。",  "You no longer feel paranoid.");
1232
1233                         break;
1234                 case 115:
1235                         muta_class = &(p_ptr->muta2);
1236                         muta_which = MUT2_INVULN;
1237                         muta_desc = _( "無敵状態の発作を起こさなくなった。",  "You are no longer blessed with fits of invulnerability.");
1238
1239                         break;
1240                 case 116: case 117:
1241                         muta_class = &(p_ptr->muta2);
1242                         muta_which = MUT2_SP_TO_HP;
1243                         muta_desc = _( "魔法の治癒の発作に襲われなくなった。",  "You are no longer subject to fits of magical healing.");
1244
1245                         break;
1246                 case 118:
1247                         muta_class = &(p_ptr->muta2);
1248                         muta_which = MUT2_HP_TO_SP;
1249                         muta_desc = _( "痛みを伴う精神明瞭化の発作に襲われなくなった。",  "You are no longer subject to fits of painful clarity.");
1250
1251                         break;
1252                 case 119:
1253                         muta_class = &(p_ptr->muta2);
1254                         muta_which = MUT2_DISARM;
1255                         muta_desc = _( "脚が元の大きさに戻った。",  "Your feet shrink to their former size.");
1256
1257                         break;
1258                 case 120: case 121: case 122:
1259                         muta_class = &(p_ptr->muta3);
1260                         muta_which = MUT3_HYPER_STR;
1261                         muta_desc = _( "筋肉が普通に戻った。",  "Your muscles revert to normal.");
1262
1263                         break;
1264                 case 123: case 124: case 125:
1265                         muta_class = &(p_ptr->muta3);
1266                         muta_which = MUT3_PUNY;
1267                         muta_desc = _( "筋肉が普通に戻った。",  "Your muscles revert to normal.");
1268
1269                         break;
1270                 case 126: case 127: case 128:
1271                         muta_class = &(p_ptr->muta3);
1272                         muta_which = MUT3_HYPER_INT;
1273                         muta_desc = _( "脳が普通に戻った。",  "Your brain reverts to normal.");
1274
1275                         break;
1276                 case 129: case 130: case 131:
1277                         muta_class = &(p_ptr->muta3);
1278                         muta_which = MUT3_MORONIC;
1279                         muta_desc = _( "脳が普通に戻った。",  "Your brain reverts to normal.");
1280
1281                         break;
1282                 case 132: case 133:
1283                         muta_class = &(p_ptr->muta3);
1284                         muta_which = MUT3_RESILIENT;
1285                         muta_desc = _( "普通の丈夫さに戻った。",  "You become ordinarily resilient again.");
1286
1287                         break;
1288                 case 134: case 135:
1289                         muta_class = &(p_ptr->muta3);
1290                         muta_which = MUT3_XTRA_FAT;
1291                         muta_desc = _( "奇跡的なダイエットに成功した!",  "You benefit from a miracle diet!");
1292
1293                         break;
1294                 case 136: case 137:
1295                         muta_class = &(p_ptr->muta3);
1296                         muta_which = MUT3_ALBINO;
1297                         muta_desc = _( "アルビノでなくなった!",  "You are no longer an albino!");
1298
1299                         break;
1300                 case 138: case 139: case 140:
1301                         muta_class = &(p_ptr->muta3);
1302                         muta_which = MUT3_FLESH_ROT;
1303                         muta_desc = _( "肉体を腐敗させる病気が治った!",  "Your flesh is no longer afflicted by a rotting disease!");
1304
1305                         break;
1306                 case 141: case 142:
1307                         muta_class = &(p_ptr->muta3);
1308                         muta_which = MUT3_SILLY_VOI;
1309                         muta_desc = _( "声質が普通に戻った。",  "Your voice returns to normal.");
1310
1311                         break;
1312                 case 143: case 144:
1313                         muta_class = &(p_ptr->muta3);
1314                         muta_which = MUT3_BLANK_FAC;
1315                         muta_desc = _( "顔に目鼻が戻った。",  "Your facial features return.");
1316
1317                         break;
1318                 case 145:
1319                         muta_class = &(p_ptr->muta3);
1320                         muta_which = MUT3_ILL_NORM;
1321                         muta_desc = _( "心が安らぐ幻影を映し出さなくなった。",  "You stop projecting a reassuring image.");
1322
1323                         break;
1324                 case 146: case 147: case 148:
1325                         muta_class = &(p_ptr->muta3);
1326                         muta_which = MUT3_XTRA_EYES;
1327                         muta_desc = _( "余分な目が消えてしまった!",  "Your extra eyes vanish!");
1328
1329                         break;
1330                 case 149: case 150:
1331                         muta_class = &(p_ptr->muta3);
1332                         muta_which = MUT3_MAGIC_RES;
1333                         muta_desc = _( "魔法に弱くなった。",  "You become susceptible to magic again.");
1334
1335                         break;
1336                 case 151: case 152: case 153:
1337                         muta_class = &(p_ptr->muta3);
1338                         muta_which = MUT3_XTRA_NOIS;
1339                         muta_desc = _( "奇妙な音を立てなくなった!",  "You stop making strange noise!");
1340
1341                         break;
1342                 case 154: case 155: case 156:
1343                         muta_class = &(p_ptr->muta3);
1344                         muta_which = MUT3_INFRAVIS;
1345                         muta_desc = _( "赤外線視力が落ちた。",  "Your infravision is degraded.");
1346
1347                         break;
1348                 case 157: case 158:
1349                         muta_class = &(p_ptr->muta3);
1350                         muta_which = MUT3_XTRA_LEGS;
1351                         muta_desc = _( "余分な脚が消えてしまった!",  "Your extra legs disappear!");
1352
1353                         break;
1354                 case 159: case 160:
1355                         muta_class = &(p_ptr->muta3);
1356                         muta_which = MUT3_SHORT_LEG;
1357                         muta_desc = _( "脚の長さが普通に戻った。",  "Your legs lengthen to normal.");
1358
1359                         break;
1360                 case 161: case 162:
1361                         muta_class = &(p_ptr->muta3);
1362                         muta_which = MUT3_ELEC_TOUC;
1363                         muta_desc = _( "体を電流が流れなくなった。",  "Electricity stops running through you.");
1364
1365                         break;
1366                 case 163: case 164:
1367                         muta_class = &(p_ptr->muta3);
1368                         muta_which = MUT3_FIRE_BODY;
1369                         muta_desc = _( "体が炎に包まれなくなった。",  "Your body is no longer enveloped in flames.");
1370
1371                         break;
1372                 case 165: case 166: case 167:
1373                         muta_class = &(p_ptr->muta3);
1374                         muta_which = MUT3_WART_SKIN;
1375                         muta_desc = _( "イボイボが消えた!",  "Your warts disappear!");
1376
1377                         break;
1378                 case 168: case 169: case 170:
1379                         muta_class = &(p_ptr->muta3);
1380                         muta_which = MUT3_SCALES;
1381                         muta_desc = _( "鱗が消えた!",  "Your scales vanish!");
1382
1383                         break;
1384                 case 171: case 172:
1385                         muta_class = &(p_ptr->muta3);
1386                         muta_which = MUT3_IRON_SKIN;
1387                         muta_desc = _( "肌が肉にもどった!",  "Your skin reverts to flesh!");
1388
1389                         break;
1390                 case 173: case 174:
1391                         muta_class = &(p_ptr->muta3);
1392                         muta_which = MUT3_WINGS;
1393                         muta_desc = _( "背中の羽根が取れ落ちた。",  "Your wings fall off.");
1394
1395                         break;
1396                 case 175: case 176: case 177:
1397                         muta_class = &(p_ptr->muta3);
1398                         muta_which = MUT3_FEARLESS;
1399                         muta_desc = _( "再び恐怖を感じるようになった。",  "You begin to feel fear again.");
1400
1401                         break;
1402                 case 178: case 179:
1403                         muta_class = &(p_ptr->muta3);
1404                         muta_which = MUT3_REGEN;
1405                         muta_desc = _( "急速回復しなくなった。",  "You stop regenerating.");
1406
1407                         break;
1408                 case 180: case 181:
1409                         muta_class = &(p_ptr->muta3);
1410                         muta_which = MUT3_ESP;
1411                         muta_desc = _( "テレパシーの能力を失った!",  "You lose your telepathic ability!");
1412
1413                         break;
1414                 case 182: case 183: case 184:
1415                         muta_class = &(p_ptr->muta3);
1416                         muta_which = MUT3_LIMBER;
1417                         muta_desc = _( "筋肉が硬くなった。",  "Your muscles stiffen.");
1418
1419                         break;
1420                 case 185: case 186: case 187:
1421                         muta_class = &(p_ptr->muta3);
1422                         muta_which = MUT3_ARTHRITIS;
1423                         muta_desc = _( "関節が痛くなくなった。",  "Your joints stop hurting.");
1424
1425                         break;
1426                 case 188:
1427                         muta_class = &(p_ptr->muta3);
1428                         muta_which = MUT3_BAD_LUCK;
1429                         muta_desc = _( "黒いオーラは渦巻いて消えた。",  "Your black aura swirls and fades.");
1430
1431                         break;
1432                 case 189:
1433                         muta_class = &(p_ptr->muta3);
1434                         muta_which = MUT3_VULN_ELEM;
1435                         muta_desc = _( "無防備な感じはなくなった。",  "You feel less exposed.");
1436
1437                         break;
1438                 case 190: case 191: case 192:
1439                         muta_class = &(p_ptr->muta3);
1440                         muta_which = MUT3_MOTION;
1441                         muta_desc = _( "動作の正確さがなくなった。",  "You move with less assurance.");
1442
1443                         break;
1444                 case 193:
1445                         if (p_ptr->pseikaku == SEIKAKU_LUCKY) break;
1446                         muta_class = &(p_ptr->muta3);
1447                         muta_which = MUT3_GOOD_LUCK;
1448                         muta_desc = _( "白いオーラは輝いて消えた。",  "Your white aura shimmers and fades.");
1449
1450                         break;
1451                 default:
1452                         muta_class = NULL;
1453                         muta_which = 0;
1454                 }
1455
1456                 if (muta_class && muta_which)
1457                 {
1458                         if (*(muta_class) & muta_which)
1459                         {
1460                                 muta_chosen = TRUE;
1461                         }
1462                 }
1463                 if (muta_chosen == TRUE) break;
1464         }
1465
1466         if (!muta_chosen)
1467         {
1468                 return FALSE;
1469         }
1470         else
1471         {
1472                 msg_print(muta_desc);
1473                 *(muta_class) &= ~(muta_which);
1474
1475                 p_ptr->update |= PU_BONUS;
1476                 handle_stuff();
1477                 mutant_regenerate_mod = calc_mutant_regenerate_mod();
1478                 return TRUE;
1479         }
1480 }
1481
1482 void lose_all_mutations(void)
1483 {
1484         if (p_ptr->muta1 || p_ptr->muta2 || p_ptr->muta3)
1485         {
1486                 chg_virtue(V_CHANCE, -5);
1487                 msg_print(_("全ての突然変異が治った。", "You are cured of all mutations."));
1488                 p_ptr->muta1 = p_ptr->muta2 = p_ptr->muta3 = 0;
1489                 p_ptr->update |= PU_BONUS;
1490                 handle_stuff();
1491                 mutant_regenerate_mod = calc_mutant_regenerate_mod();
1492         }
1493 }
1494
1495 /*!
1496  * @brief ファイルポインタを通じて突然変異の一覧を出力する
1497  * @param OutFile 出力先ファイルポインタ
1498  * @return なし
1499  */
1500 void dump_mutations(FILE *OutFile)
1501 {
1502         if (!OutFile) return;
1503
1504         if (p_ptr->muta1)
1505         {
1506                 if (p_ptr->muta1 & MUT1_SPIT_ACID)
1507                 {
1508                         fprintf(OutFile, _(" あなたは酸を吹きかけることができる。(ダメージ レベルX1)\n", " You can spit acid (dam lvl).\n"));
1509
1510                 }
1511                 if (p_ptr->muta1 & MUT1_BR_FIRE)
1512                 {
1513                         fprintf(OutFile, _(" あなたは炎のブレスを吐くことができる。(ダメージ レベルX2)\n", " You can breathe fire (dam lvl * 2).\n"));
1514
1515                 }
1516                 if (p_ptr->muta1 & MUT1_HYPN_GAZE)
1517                 {
1518                         fprintf(OutFile, _(" あなたの睨みは催眠効果をもつ。\n", " Your gaze is hypnotic.\n"));
1519
1520                 }
1521                 if (p_ptr->muta1 & MUT1_TELEKINES)
1522                 {
1523                         fprintf(OutFile, _(" あなたは念動力をもっている。\n", " You are telekinetic.\n"));
1524
1525                 }
1526                 if (p_ptr->muta1 & MUT1_VTELEPORT)
1527                 {
1528                         fprintf(OutFile, _(" あなたは自分の意思でテレポートできる。\n", " You can teleport at will.\n"));
1529
1530                 }
1531                 if (p_ptr->muta1 & MUT1_MIND_BLST)
1532                 {
1533                         fprintf(OutFile, _(" あなたは敵を精神攻撃できる。\n", " You can Mind Blast your enemies.\n"));
1534
1535                 }
1536                 if (p_ptr->muta1 & MUT1_RADIATION)
1537                 {
1538                         fprintf(OutFile, _(" あなたは自分の意思で放射能を発生することができる。\n", " You can emit hard radiation at will.\n"));
1539
1540                 }
1541                 if (p_ptr->muta1 & MUT1_VAMPIRISM)
1542                 {
1543                         fprintf(OutFile, _(" あなたは吸血鬼のように敵から生命力を吸収することができる。\n", " You can drain life from a foe like a vampire.\n"));
1544
1545                 }
1546                 if (p_ptr->muta1 & MUT1_SMELL_MET)
1547                 {
1548                         fprintf(OutFile, _(" あなたは近くにある貴金属をかぎ分けることができる。\n", " You can smell nearby precious metal.\n"));
1549
1550                 }
1551                 if (p_ptr->muta1 & MUT1_SMELL_MON)
1552                 {
1553                         fprintf(OutFile, _(" あなたは近くのモンスターの存在をかぎ分けることができる。\n", " You can smell nearby monsters.\n"));
1554
1555                 }
1556                 if (p_ptr->muta1 & MUT1_BLINK)
1557                 {
1558                         fprintf(OutFile, _(" あなたは短い距離をテレポートできる。\n", " You can teleport yourself short distances.\n"));
1559
1560                 }
1561                 if (p_ptr->muta1 & MUT1_EAT_ROCK)
1562                 {
1563                         fprintf(OutFile, _(" あなたは硬い岩を食べることができる。\n", " You can consume solid rock.\n"));
1564
1565                 }
1566                 if (p_ptr->muta1 & MUT1_SWAP_POS)
1567                 {
1568                         fprintf(OutFile, _(" あなたは他の者と場所を入れ替わることができる。\n", " You can switch locations with another being.\n"));
1569
1570                 }
1571                 if (p_ptr->muta1 & MUT1_SHRIEK)
1572                 {
1573                         fprintf(OutFile, _(" あなたは身の毛もよだつ叫び声を発することができる。\n", " You can emit a horrible shriek.\n"));
1574
1575                 }
1576                 if (p_ptr->muta1 & MUT1_ILLUMINE)
1577                 {
1578                         fprintf(OutFile, _(" あなたは明るい光を放つことができる。\n", " You can emit bright light.\n"));
1579
1580                 }
1581                 if (p_ptr->muta1 & MUT1_DET_CURSE)
1582                 {
1583                         fprintf(OutFile, _(" あなたは邪悪な魔法の危険を感じとることができる。\n", " You can feel the danger of evil magic.\n"));
1584
1585                 }
1586                 if (p_ptr->muta1 & MUT1_BERSERK)
1587                 {
1588                         fprintf(OutFile, _(" あなたは自分の意思で狂乱戦闘状態になることができる。\n", " You can drive yourself into a berserk frenzy.\n"));
1589
1590                 }
1591                 if (p_ptr->muta1 & MUT1_POLYMORPH)
1592                 {
1593                         fprintf(OutFile, _(" あなたは自分の意志で変化できる。\n", " You can polymorph yourself at will.\n"));
1594
1595                 }
1596                 if (p_ptr->muta1 & MUT1_MIDAS_TCH)
1597                 {
1598                         fprintf(OutFile, _(" あなたは通常アイテムを金に変えることができる。\n", " You can turn ordinary items to gold.\n"));
1599
1600                 }
1601                 if (p_ptr->muta1 & MUT1_GROW_MOLD)
1602                 {
1603                         fprintf(OutFile, _(" あなたは周囲にキノコを生やすことができる。\n", " You can cause mold to grow near you.\n"));
1604
1605                 }
1606                 if (p_ptr->muta1 & MUT1_RESIST)
1607                 {
1608                         fprintf(OutFile, _(" あなたは元素の攻撃に対して身を硬くすることができる。\n", " You can harden yourself to the ravages of the elements.\n"));
1609
1610                 }
1611                 if (p_ptr->muta1 & MUT1_EARTHQUAKE)
1612                 {
1613                         fprintf(OutFile, _(" あなたは周囲のダンジョンを崩壊させることができる。\n", " You can bring down the dungeon around your ears.\n"));
1614
1615                 }
1616                 if (p_ptr->muta1 & MUT1_EAT_MAGIC)
1617                 {
1618                         fprintf(OutFile, _(" あなたは魔法のエネルギーを自分の物として使用できる。\n", " You can consume magic energy for your own use.\n"));
1619
1620                 }
1621                 if (p_ptr->muta1 & MUT1_WEIGH_MAG)
1622                 {
1623                         fprintf(OutFile, _(" あなたは自分に影響を与える魔法の力を感じることができる。\n", " You can feel the strength of the magics affecting you.\n"));
1624
1625                 }
1626                 if (p_ptr->muta1 & MUT1_STERILITY)
1627                 {
1628                         fprintf(OutFile, _(" あなたは集団的生殖不能を起こすことができる。\n", " You can cause mass impotence.\n"));
1629
1630                 }
1631                 if (p_ptr->muta1 & MUT1_PANIC_HIT)
1632                 {
1633                         fprintf(OutFile, _(" あなたは攻撃した後身を守るため逃げることができる。\n", " You can run for your life after hitting something.\n"));
1634
1635                 }
1636                 if (p_ptr->muta1 & MUT1_DAZZLE)
1637                 {
1638                         fprintf(OutFile, _(" あなたは混乱と盲目を引き起こす放射能を発生することができる。 \n", " You can emit confusing, blinding radiation.\n"));
1639
1640                 }
1641                 if (p_ptr->muta1 & MUT1_LASER_EYE)
1642                 {
1643                         fprintf(OutFile, _(" あなたは目からレーザー光線を発射することができる。\n", " Your eyes can fire laser beams.\n"));
1644
1645                 }
1646                 if (p_ptr->muta1 & MUT1_RECALL)
1647                 {
1648                         fprintf(OutFile, _(" あなたは街とダンジョンの間を行き来することができる。\n", " You can travel between town and the depths.\n"));
1649
1650                 }
1651                 if (p_ptr->muta1 & MUT1_BANISH)
1652                 {
1653                         fprintf(OutFile, _(" あなたは邪悪なモンスターを地獄に落とすことができる。\n", " You can send evil creatures directly to Hell.\n"));
1654
1655                 }
1656                 if (p_ptr->muta1 & MUT1_COLD_TOUCH)
1657                 {
1658                         fprintf(OutFile, _(" あなたは物を触って凍らせることができる。\n", " You can freeze things with a touch.\n"));
1659
1660                 }
1661                 if (p_ptr->muta1 & MUT1_LAUNCHER)
1662                 {
1663                         fprintf(OutFile, _(" あなたはアイテムを力強く投げることができる。\n", " You can hurl objects with great force.\n"));
1664
1665                 }
1666         }
1667
1668         if (p_ptr->muta2)
1669         {
1670                 if (p_ptr->muta2 & MUT2_BERS_RAGE)
1671                 {
1672                         fprintf(OutFile, _(" あなたは狂戦士化の発作を起こす。\n", " You are subject to berserker fits.\n"));
1673
1674                 }
1675                 if (p_ptr->muta2 & MUT2_COWARDICE)
1676                 {
1677                         fprintf(OutFile, _(" あなたは時々臆病になる。\n", " You are subject to cowardice.\n"));
1678
1679                 }
1680                 if (p_ptr->muta2 & MUT2_RTELEPORT)
1681                 {
1682                         fprintf(OutFile, _(" あなたはランダムにテレポートする。\n", " You are teleporting randomly.\n"));
1683
1684                 }
1685                 if (p_ptr->muta2 & MUT2_ALCOHOL)
1686                 {
1687                         fprintf(OutFile, _(" あなたの体はアルコールを分泌する。\n", " Your body produces alcohol.\n"));
1688
1689                 }
1690                 if (p_ptr->muta2 & MUT2_HALLU)
1691                 {
1692                         fprintf(OutFile, _(" あなたは幻覚を引き起こす精神錯乱に侵されている。\n", " You have a hallucinatory insanity.\n"));
1693
1694                 }
1695                 if (p_ptr->muta2 & MUT2_FLATULENT)
1696                 {
1697                         fprintf(OutFile, _(" あなたは制御できない強烈な屁をこく。\n", " You are subject to uncontrollable flatulence.\n"));
1698
1699                 }
1700                 if (p_ptr->muta2 & MUT2_PROD_MANA)
1701                 {
1702                         fprintf(OutFile, _(" あなたは制御不能な魔法のエネルギーを発している。\n", " You are producing magical energy uncontrollably.\n"));
1703
1704                 }
1705                 if (p_ptr->muta2 & MUT2_ATT_DEMON)
1706                 {
1707                         fprintf(OutFile, _(" あなたはデーモンを引きつける。\n", " You attract demons.\n"));
1708
1709                 }
1710                 if (p_ptr->muta2 & MUT2_SCOR_TAIL)
1711                 {
1712                         fprintf(OutFile, _(" あなたはサソリの尻尾が生えている。(毒、ダメージ 3d7)\n", " You have a scorpion tail (poison, 3d7).\n"));
1713
1714                 }
1715                 if (p_ptr->muta2 & MUT2_HORNS)
1716                 {
1717                         fprintf(OutFile, _(" あなたは角が生えている。(ダメージ 2d6)\n", " You have horns (dam. 2d6).\n"));
1718
1719                 }
1720                 if (p_ptr->muta2 & MUT2_BEAK)
1721                 {
1722                         fprintf(OutFile, _(" あなたはクチバシが生えている。(ダメージ 2d4)\n", " You have a beak (dam. 2d4).\n"));
1723
1724                 }
1725                 if (p_ptr->muta2 & MUT2_SPEED_FLUX)
1726                 {
1727                         fprintf(OutFile, _(" あなたはランダムに早く動いたり遅く動いたりする。\n", " You move faster or slower randomly.\n"));
1728
1729                 }
1730                 if (p_ptr->muta2 & MUT2_BANISH_ALL)
1731                 {
1732                         fprintf(OutFile, _(" あなたは時々近くのモンスターを消滅させる。\n", " You sometimes cause nearby creatures to vanish.\n"));
1733
1734                 }
1735                 if (p_ptr->muta2 & MUT2_EAT_LIGHT)
1736                 {
1737                         fprintf(OutFile, _(" あなたは時々周囲の光を吸収して栄養にする。\n", " You sometimes feed off of the light around you.\n"));
1738
1739                 }
1740                 if (p_ptr->muta2 & MUT2_TRUNK)
1741                 {
1742                         fprintf(OutFile, _(" あなたは象のような鼻を持っている。(ダメージ 1d4)\n", " You have an elephantine trunk (dam 1d4).\n"));
1743
1744                 }
1745                 if (p_ptr->muta2 & MUT2_ATT_ANIMAL)
1746                 {
1747                         fprintf(OutFile, _(" あなたは動物を引きつける。\n", " You attract animals.\n"));
1748
1749                 }
1750                 if (p_ptr->muta2 & MUT2_TENTACLES)
1751                 {
1752                         fprintf(OutFile, _(" あなたは邪悪な触手を持っている。(ダメージ 2d5)\n", " You have evil looking tentacles (dam 2d5).\n"));
1753
1754                 }
1755                 if (p_ptr->muta2 & MUT2_RAW_CHAOS)
1756                 {
1757                         fprintf(OutFile, _(" あなたはしばしば純カオスに包まれる。\n", " You occasionally are surrounded with raw chaos.\n"));
1758
1759                 }
1760                 if (p_ptr->muta2 & MUT2_NORMALITY)
1761                 {
1762                         fprintf(OutFile, _(" あなたは変異していたが、回復してきている。\n", " You may be mutated, but you're recovering.\n"));
1763
1764                 }
1765                 if (p_ptr->muta2 & MUT2_WRAITH)
1766                 {
1767                         fprintf(OutFile, _(" あなたの肉体は幽体化したり実体化したりする。\n", " You fade in and out of physical reality.\n"));
1768
1769                 }
1770                 if (p_ptr->muta2 & MUT2_POLY_WOUND)
1771                 {
1772                         fprintf(OutFile, _(" あなたの健康はカオスの力に影響を受ける。\n", " Your health is subject to chaotic forces.\n"));
1773
1774                 }
1775                 if (p_ptr->muta2 & MUT2_WASTING)
1776                 {
1777                         fprintf(OutFile, _(" あなたは衰弱する恐ろしい病気にかかっている。\n", " You have a horrible wasting disease.\n"));
1778
1779                 }
1780                 if (p_ptr->muta2 & MUT2_ATT_DRAGON)
1781                 {
1782                         fprintf(OutFile, _(" あなたはドラゴンを引きつける。\n", " You attract dragons.\n"));
1783
1784                 }
1785                 if (p_ptr->muta2 & MUT2_WEIRD_MIND)
1786                 {
1787                         fprintf(OutFile, _(" あなたの精神はランダムに拡大したり縮小したりしている。\n", " Your mind randomly expands and contracts.\n"));
1788
1789                 }
1790                 if (p_ptr->muta2 & MUT2_NAUSEA)
1791                 {
1792                         fprintf(OutFile, _(" あなたの胃は非常に落ち着きがない。\n", " You have a seriously upset stomach.\n"));
1793
1794                 }
1795                 if (p_ptr->muta2 & MUT2_CHAOS_GIFT)
1796                 {
1797                         fprintf(OutFile, _(" あなたはカオスの守護悪魔から褒美をうけとる。\n", " Chaos deities give you gifts.\n"));
1798
1799                 }
1800                 if (p_ptr->muta2 & MUT2_WALK_SHAD)
1801                 {
1802                         fprintf(OutFile, _(" あなたはしばしば他の「影」に迷い込む。\n", " You occasionally stumble into other shadows.\n"));
1803
1804                 }
1805                 if (p_ptr->muta2 & MUT2_WARNING)
1806                 {
1807                         fprintf(OutFile, _(" あなたは敵に関する警告を感じる。\n", " You receive warnings about your foes.\n"));
1808
1809                 }
1810                 if (p_ptr->muta2 & MUT2_INVULN)
1811                 {
1812                         fprintf(OutFile, _(" あなたは時々負け知らずな気分になる。\n", " You occasionally feel invincible.\n"));
1813
1814                 }
1815                 if (p_ptr->muta2 & MUT2_SP_TO_HP)
1816                 {
1817                         fprintf(OutFile, _(" あなたは時々血が筋肉にどっと流れる。\n", " Your blood sometimes rushes to your muscles.\n"));
1818
1819                 }
1820                 if (p_ptr->muta2 & MUT2_HP_TO_SP)
1821                 {
1822                         fprintf(OutFile, _(" あなたは時々頭に血がどっと流れる。\n", " Your blood sometimes rushes to your head.\n"));
1823
1824                 }
1825                 if (p_ptr->muta2 & MUT2_DISARM)
1826                 {
1827                         fprintf(OutFile, _(" あなたはよくつまづいて物を落とす。\n", " You occasionally stumble and drop things.\n"));
1828
1829                 }
1830         }
1831
1832         if (p_ptr->muta3)
1833         {
1834                 if (p_ptr->muta3 & MUT3_HYPER_STR)
1835                 {
1836                         fprintf(OutFile, _(" あなたは超人的に強い。(腕力+4)\n", " You are superhumanly strong (+4 STR).\n"));
1837
1838                 }
1839                 if (p_ptr->muta3 & MUT3_PUNY)
1840                 {
1841                         fprintf(OutFile, _(" あなたは虚弱だ。(腕力-4)\n", " You are puny (-4 STR).\n"));
1842
1843                 }
1844                 if (p_ptr->muta3 & MUT3_HYPER_INT)
1845                 {
1846                         fprintf(OutFile, _(" あなたの脳は生体コンピュータだ。(知能&賢さ+4)\n", " Your brain is a living computer (+4 INT/WIS).\n"));
1847
1848                 }
1849                 if (p_ptr->muta3 & MUT3_MORONIC)
1850                 {
1851                         fprintf(OutFile, _(" あなたは精神薄弱だ。(知能&賢さ-4)\n", " You are moronic (-4 INT/WIS).\n"));
1852
1853                 }
1854                 if (p_ptr->muta3 & MUT3_RESILIENT)
1855                 {
1856                         fprintf(OutFile, _(" あなたの体は弾力性に富んでいる。(耐久+4)\n", " You are very resilient (+4 CON).\n"));
1857
1858                 }
1859                 if (p_ptr->muta3 & MUT3_XTRA_FAT)
1860                 {
1861                         fprintf(OutFile, _(" あなたは極端に太っている。(耐久+2,スピード-2)\n", " You are extremely fat (+2 CON, -2 speed).\n"));
1862
1863                 }
1864                 if (p_ptr->muta3 & MUT3_ALBINO)
1865                 {
1866                         fprintf(OutFile, _(" あなたはアルビノだ。(耐久-4)\n", " You are albino (-4 CON).\n"));
1867
1868                 }
1869                 if (p_ptr->muta3 & MUT3_FLESH_ROT)
1870                 {
1871                         fprintf(OutFile, _(" あなたの肉体は腐敗している。(耐久-2,魅力-1)\n", " Your flesh is rotting (-2 CON, -1 CHR).\n"));
1872
1873                 }
1874                 if (p_ptr->muta3 & MUT3_SILLY_VOI)
1875                 {
1876                         fprintf(OutFile, _(" あなたの声は間抜けなキーキー声だ。(魅力-4)\n", " Your voice is a silly squeak (-4 CHR).\n"));
1877
1878                 }
1879                 if (p_ptr->muta3 & MUT3_BLANK_FAC)
1880                 {
1881                         fprintf(OutFile, _(" あなたはのっぺらぼうだ。(魅力-1)\n", " Your face is featureless (-1 CHR).\n"));
1882
1883                 }
1884                 if (p_ptr->muta3 & MUT3_ILL_NORM)
1885                 {
1886                         fprintf(OutFile, _(" あなたは幻影に覆われている。\n", " Your appearance is masked with illusion.\n"));
1887
1888                 }
1889                 if (p_ptr->muta3 & MUT3_XTRA_EYES)
1890                 {
1891                         fprintf(OutFile, _(" あなたは余分に二つの目を持っている。(探索+15)\n", " You have an extra pair of eyes (+15 search).\n"));
1892
1893                 }
1894                 if (p_ptr->muta3 & MUT3_MAGIC_RES)
1895                 {
1896                         fprintf(OutFile, _(" あなたは魔法への耐性をもっている。\n", " You are resistant to magic.\n"));
1897
1898                 }
1899                 if (p_ptr->muta3 & MUT3_XTRA_NOIS)
1900                 {
1901                         fprintf(OutFile, _(" あなたは変な音を発している。(隠密-3)\n", " You make a lot of strange noise (-3 stealth).\n"));
1902
1903                 }
1904                 if (p_ptr->muta3 & MUT3_INFRAVIS)
1905                 {
1906                         fprintf(OutFile, _(" あなたは素晴らしい赤外線視力を持っている。(+3)\n", " You have remarkable infravision (+3).\n"));
1907
1908                 }
1909                 if (p_ptr->muta3 & MUT3_XTRA_LEGS)
1910                 {
1911                         fprintf(OutFile, _(" あなたは余分に二本の足が生えている。(加速+3)\n", " You have an extra pair of legs (+3 speed).\n"));
1912
1913                 }
1914                 if (p_ptr->muta3 & MUT3_SHORT_LEG)
1915                 {
1916                         fprintf(OutFile, _(" あなたの足は短い突起だ。(加速-3)\n", " Your legs are short stubs (-3 speed).\n"));
1917
1918                 }
1919                 if (p_ptr->muta3 & MUT3_ELEC_TOUC)
1920                 {
1921                         fprintf(OutFile, _(" あなたの血管には電流が流れている。\n", " Electricity is running through your veins.\n"));
1922
1923                 }
1924                 if (p_ptr->muta3 & MUT3_FIRE_BODY)
1925                 {
1926                         fprintf(OutFile, _(" あなたの体は炎につつまれている。\n", " Your body is enveloped in flames.\n"));
1927
1928                 }
1929                 if (p_ptr->muta3 & MUT3_WART_SKIN)
1930                 {
1931                         fprintf(OutFile, _(" あなたの肌はイボに被われている。(魅力-2, AC+5)\n", " Your skin is covered with warts (-2 CHR, +5 AC).\n"));
1932
1933                 }
1934                 if (p_ptr->muta3 & MUT3_SCALES)
1935                 {
1936                         fprintf(OutFile, _(" あなたの肌は鱗になっている。(魅力-1, AC+10)\n", " Your skin has turned into scales (-1 CHR, +10 AC).\n"));
1937
1938                 }
1939                 if (p_ptr->muta3 & MUT3_IRON_SKIN)
1940                 {
1941                         fprintf(OutFile, _(" あなたの肌は鉄でできている。(器用-1, AC+25)\n", " Your skin is made of steel (-1 DEX, +25 AC).\n"));
1942
1943                 }
1944                 if (p_ptr->muta3 & MUT3_WINGS)
1945                 {
1946                         fprintf(OutFile, _(" あなたは羽を持っている。\n", " You have wings.\n"));
1947
1948                 }
1949                 if (p_ptr->muta3 & MUT3_FEARLESS)
1950                 {
1951                         fprintf(OutFile, _(" あなたは全く恐怖を感じない。\n", " You are completely fearless.\n"));
1952
1953                 }
1954                 if (p_ptr->muta3 & MUT3_REGEN)
1955                 {
1956                         fprintf(OutFile, _(" あなたは急速に回復する。\n", " You are regenerating.\n"));
1957
1958                 }
1959                 if (p_ptr->muta3 & MUT3_ESP)
1960                 {
1961                         fprintf(OutFile, _(" あなたはテレパシーを持っている。\n", " You are telepathic.\n"));
1962
1963                 }
1964                 if (p_ptr->muta3 & MUT3_LIMBER)
1965                 {
1966                         fprintf(OutFile, _(" あなたの体は非常にしなやかだ。(器用+3)\n", " Your body is very limber (+3 DEX).\n"));
1967
1968                 }
1969                 if (p_ptr->muta3 & MUT3_ARTHRITIS)
1970                 {
1971                         fprintf(OutFile, _(" あなたはいつも関節に痛みを感じている。(器用-3)\n", " Your joints ache constantly (-3 DEX).\n"));
1972
1973                 }
1974                 if (p_ptr->muta3 & MUT3_VULN_ELEM)
1975                 {
1976                         fprintf(OutFile, _(" あなたは元素の攻撃に弱い。\n", " You are susceptible to damage from the elements.\n"));
1977
1978                 }
1979                 if (p_ptr->muta3 & MUT3_MOTION)
1980                 {
1981                         fprintf(OutFile, _(" あなたの動作は正確で力強い。(隠密+1)\n", " Your movements are precise and forceful (+1 STL).\n"));
1982
1983                 }
1984                 if (p_ptr->muta3 & MUT3_GOOD_LUCK)
1985                 {
1986                         fprintf(OutFile, _(" あなたは白いオーラにつつまれている。\n", " There is a white aura surrounding you.\n"));
1987
1988                 }
1989                 if (p_ptr->muta3 & MUT3_BAD_LUCK)
1990                 {
1991                         fprintf(OutFile, _(" あなたは黒いオーラにつつまれている。\n", " There is a black aura surrounding you.\n"));
1992
1993                 }
1994         }
1995 }
1996
1997 /*!
1998  * @brief 突然変異表示コマンドの実装 / List mutations we have...
1999  * @return なし
2000  */
2001 void do_cmd_knowledge_mutations(void)
2002 {
2003         FILE *fff;
2004         char file_name[1024];
2005
2006         /* Open a new file */
2007         fff = my_fopen_temp(file_name, 1024);
2008
2009         /* Dump the mutations to file */
2010         if (fff) dump_mutations(fff);
2011
2012         /* Close the file */
2013         my_fclose(fff);
2014
2015         /* Display the file contents */
2016         show_file(TRUE, file_name, _("突然変異", "Mutations"), 0, 0);
2017
2018         /* Remove the file */
2019         fd_kill(file_name);
2020 }
2021
2022 /*!
2023  * @brief 符号なし32ビット整数のビット数を返す。
2024  * @param x ビット数を調べたい変数
2025  * @return ビット数
2026  */
2027 int count_bits(BIT_FLAGS x)
2028 {
2029         int n = 0;
2030
2031         if (x) do
2032         {
2033                 n++;
2034         }
2035         while (0 != (x = x&(x-1)));
2036
2037         return (n);
2038 }
2039
2040 /*!
2041  * @brief 現在プレイヤー得ている突然変異の数を返す。
2042  * @return 現在得ている突然変異の数
2043  */
2044 static int count_mutations(void)
2045 {
2046         return (count_bits(p_ptr->muta1) +
2047                 count_bits(p_ptr->muta2) +
2048                 count_bits(p_ptr->muta3));
2049 }
2050
2051
2052 /*!
2053  * @brief 突然変異による自然回復ペナルティをパーセント値で返す /
2054  * Return the modifier to the regeneration rate (in percent)
2055  * @return ペナルティ修正(%)
2056  */
2057 int calc_mutant_regenerate_mod(void)
2058 {
2059         int regen;
2060         int mod = 10;
2061         int count = count_mutations();
2062
2063         /*
2064          * Beastman get 10 "free" mutations and
2065          * only 5% decrease per additional mutation
2066          */
2067
2068         if (p_ptr->pseikaku == SEIKAKU_LUCKY) count--;
2069         if (p_ptr->prace == RACE_BEASTMAN)
2070         {
2071                 count -= 10;
2072                 mod = 5;
2073         }
2074
2075         /* No negative modifier */
2076         if (count <= 0) return 100;
2077
2078         regen = 100 - count * mod;
2079
2080         /* Max. 90% decrease in regeneration speed */
2081         if (regen < 10) regen = 10;
2082
2083         return (regen);
2084 }
2085
2086 /*!
2087  * @brief 突然変異レイシャル上で口を使うよりを行った際に歌や呪術を停止する /
2088  * @return なし
2089  */
2090 static void mutation_stop_mouth(void)
2091 {
2092         if (music_singing_any()) stop_singing();
2093         if (hex_spelling_any()) stop_hex_spell_all();
2094 }
2095
2096
2097 /*!
2098  * @brief 突然変異のレイシャル効果実装
2099  * @return 発動させる突然変異レイシャルのID
2100  * @return レイシャルを実行した場合TRUE、キャンセルした場合FALSEを返す
2101  */
2102 bool mutation_power_aux(u32b power)
2103 {
2104         int     dir = 0;
2105         int     lvl = p_ptr->lev;
2106
2107
2108         switch (power)
2109         {
2110                 case MUT1_SPIT_ACID:
2111                         if (!get_aim_dir(&dir)) return FALSE;
2112                         mutation_stop_mouth();
2113                         msg_print(_("酸を吐きかけた...", "You spit acid..."));
2114
2115                         fire_ball(GF_ACID, dir, lvl, 1 + (lvl / 30));
2116                         break;
2117
2118                 case MUT1_BR_FIRE:
2119                         if (!get_aim_dir(&dir)) return FALSE;
2120                         mutation_stop_mouth();
2121                         msg_print(_("あなたは火炎のブレスを吐いた...", "You breathe fire..."));
2122
2123                         fire_breath(GF_FIRE, dir, lvl * 2, 1 + (lvl / 20));
2124                         break;
2125
2126                 case MUT1_HYPN_GAZE:
2127                         if (!get_aim_dir(&dir)) return FALSE;
2128                         msg_print(_("あなたの目は幻惑的になった...", "Your eyes look mesmerizing..."));
2129
2130                         (void)charm_monster(dir, lvl);
2131                         break;
2132
2133                 case MUT1_TELEKINES:
2134                         if (!get_aim_dir(&dir)) return FALSE;
2135                         msg_print(_("集中している...", "You concentrate..."));
2136
2137                         fetch(dir, lvl * 10, TRUE);
2138                         break;
2139
2140                 case MUT1_VTELEPORT:
2141                         msg_print(_("集中している...", "You concentrate..."));
2142
2143                         teleport_player(10 + 4 * lvl, 0L);
2144                         break;
2145
2146                 case MUT1_MIND_BLST:
2147                         if (!get_aim_dir(&dir)) return FALSE;
2148                         msg_print(_("集中している...", "You concentrate..."));
2149
2150                         fire_bolt(GF_PSI, dir, damroll(3 + ((lvl - 1) / 5), 3));
2151                         break;
2152
2153                 case MUT1_RADIATION:
2154                         msg_print(_("体から放射能が発生した!", "Radiation flows from your body!"));
2155
2156                         fire_ball(GF_NUKE, 0, (lvl * 2), 3 + (lvl / 20));
2157                         break;
2158
2159                 case MUT1_VAMPIRISM:
2160                         {
2161                                 int x, y, dummy;
2162                                 cave_type *c_ptr;
2163
2164                                 /* Only works on adjacent monsters */
2165                                 if (!get_rep_dir2(&dir)) return FALSE;
2166                                 y = p_ptr->y + ddy[dir];
2167                                 x = p_ptr->x + ddx[dir];
2168                                 c_ptr = &cave[y][x];
2169
2170                                 mutation_stop_mouth();
2171
2172                                 if (!(c_ptr->m_idx))
2173                                 {
2174                                         msg_print(_("何もない場所に噛みついた!", "You bite into thin air!"));
2175
2176                                         break;
2177                                 }
2178
2179                                 msg_print(_("あなたはニヤリとして牙をむいた...", "You grin and bare your fangs..."));
2180
2181
2182                                 dummy = lvl * 2;
2183
2184                                 if (hypodynamic_bolt(dir, dummy))
2185                                 {
2186                                         if (p_ptr->food < PY_FOOD_FULL)
2187                                                 /* No heal if we are "full" */
2188                                                 (void)hp_player(dummy);
2189                                         else
2190                                                 msg_print(_("あなたは空腹ではありません。", "You were not hungry."));
2191
2192                                         /* Gain nutritional sustenance: 150/hp drained */
2193                                         /* A Food ration gives 5000 food points (by contrast) */
2194                                         /* Don't ever get more than "Full" this way */
2195                                         /* But if we ARE Gorged,  it won't cure us */
2196                                         dummy = p_ptr->food + MIN(5000, 100 * dummy);
2197                                         if (p_ptr->food < PY_FOOD_MAX)   /* Not gorged already */
2198                                                 (void)set_food(dummy >= PY_FOOD_MAX ? PY_FOOD_MAX-1 : dummy);
2199                                 }
2200                                 else
2201                                         msg_print(_("げぇ!ひどい味だ。", "Yechh. That tastes foul."));
2202
2203                         }
2204                         break;
2205
2206                 case MUT1_SMELL_MET:
2207                         mutation_stop_mouth();
2208                         (void)detect_treasure(DETECT_RAD_DEFAULT);
2209                         break;
2210
2211                 case MUT1_SMELL_MON:
2212                         mutation_stop_mouth();
2213                         (void)detect_monsters_normal(DETECT_RAD_DEFAULT);
2214                         break;
2215
2216                 case MUT1_BLINK:
2217                         teleport_player(10, 0L);
2218                         break;
2219
2220                 case MUT1_EAT_ROCK:
2221                         {
2222                                 int x, y;
2223                                 cave_type *c_ptr;
2224                                 feature_type *f_ptr, *mimic_f_ptr;
2225
2226                                 if (!get_rep_dir2(&dir)) return FALSE;
2227                                 y = p_ptr->y + ddy[dir];
2228                                 x = p_ptr->x + ddx[dir];
2229                                 c_ptr = &cave[y][x];
2230                                 f_ptr = &f_info[c_ptr->feat];
2231                                 mimic_f_ptr = &f_info[get_feat_mimic(c_ptr)];
2232
2233                                 mutation_stop_mouth();
2234
2235                                 if (!have_flag(mimic_f_ptr->flags, FF_HURT_ROCK))
2236                                 {
2237                                         msg_print(_("この地形は食べられない。", "You cannot eat this feature."));
2238                                         break;
2239                                 }
2240                                 else if (have_flag(f_ptr->flags, FF_PERMANENT))
2241                                 {
2242                                         msg_format(_("いてっ!この%sはあなたの歯より硬い!", "Ouch!  This %s is harder than your teeth!"), f_name + mimic_f_ptr->name);
2243                                         break;
2244                                 }
2245                                 else if (c_ptr->m_idx)
2246                                 {
2247                                         monster_type *m_ptr = &m_list[c_ptr->m_idx];
2248                                         msg_print(_("何かが邪魔しています!", "There's something in the way!"));
2249
2250                                         if (!m_ptr->ml || !is_pet(m_ptr)) py_attack(y, x, 0);
2251                                         break;
2252                                 }
2253                                 else if (have_flag(f_ptr->flags, FF_TREE))
2254                                 {
2255                                         msg_print(_("木の味は好きじゃない!", "You don't like the woody taste!"));
2256                                         break;
2257                                 }
2258                                 else if (have_flag(f_ptr->flags, FF_GLASS))
2259                                 {
2260                                         msg_print(_("ガラスの味は好きじゃない!", "You don't like the glassy taste!"));
2261                                         break;
2262                                 }
2263                                 else if (have_flag(f_ptr->flags, FF_DOOR) || have_flag(f_ptr->flags, FF_CAN_DIG))
2264                                 {
2265                                         (void)set_food(p_ptr->food + 3000);
2266                                 }
2267                                 else if (have_flag(f_ptr->flags, FF_MAY_HAVE_GOLD) || have_flag(f_ptr->flags, FF_HAS_GOLD))
2268                                 {
2269                                         (void)set_food(p_ptr->food + 5000);
2270                                 }
2271                                 else
2272                                 {
2273                                         msg_format(_("この%sはとてもおいしい!", "This %s is very filling!"), f_name + mimic_f_ptr->name);
2274                                         (void)set_food(p_ptr->food + 10000);
2275                                 }
2276
2277                                 /* Destroy the wall */
2278                                 cave_alter_feat(y, x, FF_HURT_ROCK);
2279
2280                                 /* Move the player */
2281                                 (void)move_player_effect(y, x, MPE_DONT_PICKUP);
2282                         }
2283                         break;
2284
2285                 case MUT1_SWAP_POS:
2286                         project_length = -1;
2287                         if (!get_aim_dir(&dir))
2288                         {
2289                                 project_length = 0;
2290                                 return FALSE;
2291                         }
2292                         (void)teleport_swap(dir);
2293                         project_length = 0;
2294                         break;
2295
2296                 case MUT1_SHRIEK:
2297                         mutation_stop_mouth();
2298                         (void)fire_ball(GF_SOUND, 0, 2 * lvl, 8);
2299                         (void)aggravate_monsters(0);
2300                         break;
2301
2302                 case MUT1_ILLUMINE:
2303                         (void)lite_area(damroll(2, (lvl / 2)), (lvl / 10) + 1);
2304                         break;
2305
2306                 case MUT1_DET_CURSE:
2307                         {
2308                                 int i;
2309
2310                                 for (i = 0; i < INVEN_TOTAL; i++)
2311                                 {
2312                                         object_type *o_ptr = &inventory[i];
2313
2314                                         if (!o_ptr->k_idx) continue;
2315                                         if (!object_is_cursed(o_ptr)) continue;
2316
2317                                         o_ptr->feeling = FEEL_CURSED;
2318                                 }
2319                         }
2320                         break;
2321
2322                 case MUT1_BERSERK:
2323                         (void)set_shero(randint1(25) + 25, FALSE);
2324                         (void)hp_player(30);
2325                         (void)set_afraid(0);
2326                         break;
2327
2328                 case MUT1_POLYMORPH:
2329                         if (!get_check(_("変身します。よろしいですか?", "You will polymorph your self. Are you sure? "))) return FALSE;
2330                         do_poly_self();
2331                         break;
2332
2333                 case MUT1_MIDAS_TCH:
2334                         if (!alchemy()) return FALSE;
2335                         break;
2336
2337                 /* Summon pet molds around the player */
2338                 case MUT1_GROW_MOLD:
2339                         {
2340                                 int i;
2341                                 for (i = 0; i < 8; i++)
2342                                 {
2343                                         summon_specific(-1, p_ptr->y, p_ptr->x, lvl, SUMMON_MOLD, PM_FORCE_PET);
2344                                 }
2345                         }
2346                         break;
2347
2348                 case MUT1_RESIST:
2349                         {
2350                                 int num = lvl / 10;
2351                                 TIME_EFFECT dur = randint1(20) + 20;
2352
2353                                 if (randint0(5) < num)
2354                                 {
2355                                         (void)set_oppose_acid(dur, FALSE);
2356                                         num--;
2357                                 }
2358                                 if (randint0(4) < num)
2359                                 {
2360                                         (void)set_oppose_elec(dur, FALSE);
2361                                         num--;
2362                                 }
2363                                 if (randint0(3) < num)
2364                                 {
2365                                         (void)set_oppose_fire(dur, FALSE);
2366                                         num--;
2367                                 }
2368                                 if (randint0(2) < num)
2369                                 {
2370                                         (void)set_oppose_cold(dur, FALSE);
2371                                         num--;
2372                                 }
2373                                 if (num)
2374                                 {
2375                                         (void)set_oppose_pois(dur, FALSE);
2376                                         num--;
2377                                 }
2378                         }
2379                         break;
2380
2381                 case MUT1_EARTHQUAKE:
2382                         (void)earthquake(p_ptr->y, p_ptr->x, 10);
2383                         break;
2384
2385                 case MUT1_EAT_MAGIC:
2386                         if (!eat_magic(p_ptr->lev * 2)) return FALSE;
2387                         break;
2388
2389                 case MUT1_WEIGH_MAG:
2390                         report_magics();
2391                         break;
2392
2393                 case MUT1_STERILITY:
2394                         /* Fake a population explosion. */
2395 #ifdef JP
2396                         msg_print("突然頭が痛くなった!");
2397                         take_hit(DAMAGE_LOSELIFE, randint1(17) + 17, "禁欲を強いた疲労", -1);
2398 #else
2399                         msg_print("You suddenly have a headache!");
2400                         take_hit(DAMAGE_LOSELIFE, randint1(17) + 17, "the strain of forcing abstinence", -1);
2401 #endif
2402
2403                         num_repro += MAX_REPRO;
2404                         break;
2405
2406                 case MUT1_PANIC_HIT:
2407                         {
2408                                 int x, y;
2409
2410                                 if (!get_rep_dir2(&dir)) return FALSE;
2411                                 y = p_ptr->y + ddy[dir];
2412                                 x = p_ptr->x + ddx[dir];
2413                                 if (cave[y][x].m_idx)
2414                                 {
2415                                         py_attack(y, x, 0);
2416                                         if (randint0(p_ptr->skill_dis) < 7)
2417                                                 msg_print(_("うまく逃げられなかった。", "You failed to teleport."));
2418                                         else teleport_player(30, 0L);
2419                                 }
2420                                 else
2421                                 {
2422                                         msg_print(_("その方向にはモンスターはいません。", "You don't see any monster in this direction"));
2423
2424                                         msg_print(NULL);
2425                                 }
2426                         }
2427                         break;
2428
2429                 case MUT1_DAZZLE:
2430                         stun_monsters(lvl * 4);
2431                         confuse_monsters(lvl * 4);
2432                         turn_monsters(lvl * 4);
2433                         break;
2434
2435                 case MUT1_LASER_EYE:
2436                         if (!get_aim_dir(&dir)) return FALSE;
2437                         fire_beam(GF_LITE, dir, 2 * lvl);
2438                         break;
2439
2440                 case MUT1_RECALL:
2441                         if (!word_of_recall()) return FALSE;
2442                         break;
2443
2444                 case MUT1_BANISH:
2445                         {
2446                                 int x, y;
2447                                 cave_type *c_ptr;
2448                                 monster_type *m_ptr;
2449                                 monster_race *r_ptr;
2450
2451                                 if (!get_rep_dir2(&dir)) return FALSE;
2452                                 y = p_ptr->y + ddy[dir];
2453                                 x = p_ptr->x + ddx[dir];
2454                                 c_ptr = &cave[y][x];
2455
2456                                 if (!c_ptr->m_idx)
2457                                 {
2458                                         msg_print(_("邪悪な存在を感じとれません!", "You sense no evil there!"));
2459
2460                                         break;
2461                                 }
2462
2463                                 m_ptr = &m_list[c_ptr->m_idx];
2464                                 r_ptr = &r_info[m_ptr->r_idx];
2465
2466                                 if ((r_ptr->flags3 & RF3_EVIL) &&
2467                                     !(r_ptr->flags1 & RF1_QUESTOR) &&
2468                                     !(r_ptr->flags1 & RF1_UNIQUE) &&
2469                                     !p_ptr->inside_arena && !p_ptr->inside_quest &&
2470                                         (r_ptr->level < randint1(p_ptr->lev+50)) &&
2471                                         !(m_ptr->mflag2 & MFLAG2_NOGENO))
2472                                 {
2473                                         if (record_named_pet && is_pet(m_ptr) && m_ptr->nickname)
2474                                         {
2475                                                 char m_name[80];
2476
2477                                                 monster_desc(m_name, m_ptr, MD_INDEF_VISIBLE);
2478                                                 do_cmd_write_nikki(NIKKI_NAMED_PET, RECORD_NAMED_PET_GENOCIDE, m_name);
2479                                         }
2480
2481                                         /* Delete the monster, rather than killing it. */
2482                                         delete_monster_idx(c_ptr->m_idx);
2483                                         msg_print(_("その邪悪なモンスターは硫黄臭い煙とともに消え去った!", "The evil creature vanishes in a puff of sulfurous smoke!"));
2484
2485                                 }
2486                                 else
2487                                 {
2488                                         msg_print(_("祈りは効果がなかった!", "Your invocation is ineffectual!"));
2489
2490                                         if (one_in_(13)) m_ptr->mflag2 |= MFLAG2_NOGENO;
2491                                 }
2492                         }
2493                         break;
2494
2495                 case MUT1_COLD_TOUCH:
2496                         {
2497                                 int x, y;
2498                                 cave_type *c_ptr;
2499
2500                                 if (!get_rep_dir2(&dir)) return FALSE;
2501                                 y = p_ptr->y + ddy[dir];
2502                                 x = p_ptr->x + ddx[dir];
2503                                 c_ptr = &cave[y][x];
2504
2505                                 if (!c_ptr->m_idx)
2506                                 {
2507                                         msg_print(_("あなたは何もない場所で手を振った。", "You wave your hands in the air."));
2508
2509                                         break;
2510                                 }
2511                                 fire_bolt(GF_COLD, dir, 2 * lvl);
2512                         }
2513                         break;
2514
2515                 /* XXX_XXX_XXX Hack!  MUT1_LAUNCHER is negative, see above */
2516                 case 3: /* MUT1_LAUNCHER */
2517                         /* Gives a multiplier of 2 at first, up to 3 at 40th */
2518                         if (!do_cmd_throw_aux(2 + lvl / 40, FALSE, -1)) return FALSE;
2519                         break;
2520
2521                 default:
2522                         p_ptr->energy_use = 0;
2523                         msg_format(_("能力 %s は実装されていません。", "Power %s not implemented. Oops."), power);
2524         }
2525
2526         return TRUE;
2527 }