OSDN Git Service

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