OSDN Git Service

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