OSDN Git Service

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