OSDN Git Service

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