OSDN Git Service

Merge branch 'master' of git.osdn.net:/gitroot/hengband/hengband
[hengband/hengband.git] / src / player / selfinfo.c
1 /*!
2  * @file selfinfo.c
3  * @brief 自己分析処理/ Self knowledge
4  * @date 2018/09/07
5  * @author
6  * <pre>
7  * Copyright (c) 1997 Ben Harrison, James E. Wilson, Robert A. Koeneke
8  * This software may be copied and distributed for educational, research,
9  * and not for profit purposes provided that this copyright and statement
10  * are included in all such copies.  Other copyrights may also apply.
11  * </pre>
12  * 2018 Deskull
13  * @details
14  * spell2s.cから分離
15  */
16
17 #include "player/selfinfo.h"
18 #include "inventory/inventory-slot-types.h"
19 #include "io/input-key-acceptor.h"
20 #include "mutation/mutation-flag-types.h"
21 #include "object-enchant/tr-types.h"
22 #include "object-enchant/trc-types.h"
23 #include "object/object-flags.h"
24 #include "player/attack-defense-types.h"
25 #include "player/avatar.h"
26 #include "player/player-class.h"
27 #include "player/player-race-types.h"
28 #include "player/player-race.h"
29 #include "player/player-status-table.h"
30 #include "realm/realm-names-table.h"
31 #include "realm/realm-song-numbers.h"
32 #include "status/element-resistance.h"
33 #include "term/screen-processor.h"
34 #include "util/bit-flags-calculator.h"
35 #include "player/player-status-flags.h"
36
37 /*!
38  * @brief 自己分析処理(Nethackからのアイデア) / self-knowledge... idea from nethack.
39  * @return なし
40  * @details
41  * <pre>
42  * Useful for determining powers and
43  * resistences of items.  It saves the screen, clears it, then starts listing
44  * attributes, a screenful at a time.  (There are a LOT of attributes to
45  * list.  It will probably take 2 or 3 screens for a powerful character whose
46  * using several artifacts...) -CFT
47  *
48  * It is now a lot more efficient. -BEN-
49  *
50  * See also "identify_fully()".
51  *
52  * Use the "show_file()" method, perhaps.
53  * </pre>
54  */
55 void self_knowledge(player_type *creature_ptr)
56 {
57     int i = 0, j, k;
58
59     int v_nr = 0;
60     char v_string[8][128];
61     char s_string[6][128];
62
63     BIT_FLAGS flgs[TR_FLAG_SIZE];
64
65     object_type *o_ptr;
66
67     char Dummy[80];
68     char buf[2][80];
69
70     concptr info[220];
71
72     PLAYER_LEVEL plev = creature_ptr->lev;
73
74     int percent;
75
76     for (j = 0; j < TR_FLAG_SIZE; j++)
77         flgs[j] = 0L;
78
79     creature_ptr->knowledge |= (KNOW_STAT | KNOW_HPRATE);
80
81     strcpy(Dummy, "");
82
83     percent
84         = (int)(((long)creature_ptr->player_hp[PY_MAX_LEVEL - 1] * 200L) / (2 * creature_ptr->hitdie + ((PY_MAX_LEVEL - 1 + 3) * (creature_ptr->hitdie + 1))));
85
86     sprintf(Dummy, _("現在の体力ランク : %d/100", "Your current Life Rating is %d/100."), percent);
87     strcpy(buf[0], Dummy);
88     info[i++] = buf[0];
89     info[i++] = "";
90
91     chg_virtue(creature_ptr, V_KNOWLEDGE, 1);
92     chg_virtue(creature_ptr, V_ENLIGHTEN, 1);
93
94     /* Acquire item flags from equipment */
95     for (k = INVEN_RARM; k < INVEN_TOTAL; k++) {
96         u32b tflgs[TR_FLAG_SIZE];
97
98         o_ptr = &creature_ptr->inventory_list[k];
99         if (!o_ptr->k_idx)
100             continue;
101         object_flags(creature_ptr, o_ptr, tflgs);
102
103         /* Extract flags */
104         for (j = 0; j < TR_FLAG_SIZE; j++)
105             flgs[j] |= tflgs[j];
106     }
107
108     info[i++] = _("能力の最大値", "Limits of maximum stats");
109
110     for (v_nr = 0; v_nr < A_MAX; v_nr++) {
111         char stat_desc[80];
112
113         sprintf(stat_desc, "%s 18/%d", stat_names[v_nr], creature_ptr->stat_max_max[v_nr] - 18);
114
115         strcpy(s_string[v_nr], stat_desc);
116
117         info[i++] = s_string[v_nr];
118     }
119     info[i++] = "";
120
121     sprintf(Dummy, _("現在の属性 : %s(%ld)", "Your alignment : %s(%ld)"), your_alignment(creature_ptr), (long int)creature_ptr->align);
122     strcpy(buf[1], Dummy);
123     info[i++] = buf[1];
124     for (v_nr = 0; v_nr < 8; v_nr++) {
125         GAME_TEXT vir_name[20];
126         char vir_desc[80];
127         int tester = creature_ptr->virtues[v_nr];
128
129         strcpy(vir_name, virtue[(creature_ptr->vir_types[v_nr]) - 1]);
130
131         sprintf(vir_desc, _("おっと。%sの情報なし。", "Oops. No info about %s."), vir_name);
132         if (tester < -100)
133             sprintf(vir_desc, _("[%s]の対極 (%d)", "You are the polar opposite of %s (%d)."), vir_name, tester);
134         else if (tester < -80)
135             sprintf(vir_desc, _("[%s]の大敵 (%d)", "You are an arch-enemy of %s (%d)."), vir_name, tester);
136         else if (tester < -60)
137             sprintf(vir_desc, _("[%s]の強敵 (%d)", "You are a bitter enemy of %s (%d)."), vir_name, tester);
138         else if (tester < -40)
139             sprintf(vir_desc, _("[%s]の敵 (%d)", "You are an enemy of %s (%d)."), vir_name, tester);
140         else if (tester < -20)
141             sprintf(vir_desc, _("[%s]の罪者 (%d)", "You have sinned against %s (%d)."), vir_name, tester);
142         else if (tester < 0)
143             sprintf(vir_desc, _("[%s]の迷道者 (%d)", "You have strayed from the path of %s (%d)."), vir_name, tester);
144         else if (tester == 0)
145             sprintf(vir_desc, _("[%s]の中立者 (%d)", "You are neutral to %s (%d)."), vir_name, tester);
146         else if (tester < 20)
147             sprintf(vir_desc, _("[%s]の小徳者 (%d)", "You are somewhat virtuous in %s (%d)."), vir_name, tester);
148         else if (tester < 40)
149             sprintf(vir_desc, _("[%s]の中徳者 (%d)", "You are virtuous in %s (%d)."), vir_name, tester);
150         else if (tester < 60)
151             sprintf(vir_desc, _("[%s]の高徳者 (%d)", "You are very virtuous in %s (%d)."), vir_name, tester);
152         else if (tester < 80)
153             sprintf(vir_desc, _("[%s]の覇者 (%d)", "You are a champion of %s (%d)."), vir_name, tester);
154         else if (tester < 100)
155             sprintf(vir_desc, _("[%s]の偉大な覇者 (%d)", "You are a great champion of %s (%d)."), vir_name, tester);
156         else
157             sprintf(vir_desc, _("[%s]の具現者 (%d)", "You are the living embodiment of %s (%d)."), vir_name, tester);
158
159         strcpy(v_string[v_nr], vir_desc);
160
161         info[i++] = v_string[v_nr];
162     }
163     info[i++] = "";
164
165     /* Racial powers... */
166     if (creature_ptr->mimic_form) {
167         switch (creature_ptr->mimic_form) {
168         case MIMIC_DEMON:
169         case MIMIC_DEMON_LORD:
170             sprintf(Dummy, _("あなたは %d ダメージの地獄か火炎のブレスを吐くことができる。(%d MP)", "You can nether breathe, dam. %d (cost %d)."), 3 * plev,
171                 10 + plev / 3);
172
173             info[i++] = Dummy;
174             break;
175         case MIMIC_VAMPIRE:
176             if (plev > 1) {
177                 sprintf(Dummy, _("あなたは敵から %d-%d HP の生命力を吸収できる。(%d MP)", "You can steal life from a foe, dam. %d-%d (cost %d)."),
178                     plev + MAX(1, plev / 10), plev + plev * MAX(1, plev / 10), 1 + (plev / 3));
179                 info[i++] = Dummy;
180             }
181             break;
182         }
183     } else {
184         switch (creature_ptr->prace) {
185         case RACE_NIBELUNG:
186         case RACE_DWARF:
187             if (plev > 4)
188                 info[i++] = _("あなたは罠とドアと階段を感知できる。(5 MP)", "You can find traps, doors and stairs (cost 5).");
189             break;
190         case RACE_HOBBIT:
191             if (plev > 14) {
192                 info[i++] = _("あなたは食料を生成できる。(10 MP)", "You can produce food (cost 10).");
193             }
194             break;
195         case RACE_GNOME:
196             if (plev > 4) {
197                 sprintf(Dummy, _("あなたは範囲 %d 以内にテレポートできる。(%d MP)", "You can teleport, range %d (cost %d)."), (1 + plev), (5 + (plev / 5)));
198                 info[i++] = Dummy;
199             }
200             break;
201         case RACE_HALF_ORC:
202             if (plev > 2)
203                 info[i++] = _("あなたは恐怖を除去できる。(5 MP)", "You can remove fear (cost 5).");
204             break;
205         case RACE_HALF_TROLL:
206             if (plev > 9)
207                 info[i++] = _("あなたは狂暴化することができる。(12 MP) ", "You can enter a berserk fury (cost 12).");
208             break;
209         case RACE_AMBERITE:
210             if (plev > 29)
211                 info[i++] = _("あなたはシャドウシフトすることができる。(50 MP)", "You can Shift Shadows (cost 50).");
212
213             if (plev > 39)
214                 info[i++] = _("あなたは「パターン」を心に描いて歩くことができる。(75 MP)", "You can mentally Walk the Pattern (cost 75).");
215
216             break;
217         case RACE_BARBARIAN:
218             if (plev > 7)
219                 info[i++] = _("あなたは狂暴化することができる。(10 MP) ", "You can enter a berserk fury (cost 10).");
220
221             break;
222         case RACE_HALF_OGRE:
223             if (plev > 24)
224                 info[i++] = _("あなたは爆発のルーンを仕掛けることができる。(35 MP)", "You can set an Explosive Rune (cost 35).");
225
226             break;
227         case RACE_HALF_GIANT:
228             if (plev > 19)
229                 info[i++] = _("あなたは石の壁を壊すことができる。(10 MP)", "You can break stone walls (cost 10).");
230             break;
231         case RACE_HALF_TITAN:
232             if (plev > 34)
233                 info[i++] = _("あなたはモンスターをスキャンすることができる。(20 MP)", "You can probe monsters (cost 20).");
234             break;
235         case RACE_CYCLOPS:
236             if (plev > 19) {
237                 sprintf(Dummy, _("あなたは %d ダメージの岩石を投げることができる。(15 MP)", "You can throw a boulder, dam. %d (cost 15)."), 3 * plev);
238                 info[i++] = Dummy;
239             }
240             break;
241         case RACE_YEEK:
242             if (plev > 14)
243                 info[i++] = _("あなたは恐怖を呼び起こす叫び声を発することができる。(15 MP)", "You can make a terrifying scream (cost 15).");
244             break;
245         case RACE_KLACKON:
246             if (plev > 8) {
247                 sprintf(Dummy, _("あなたは %d ダメージの酸を吹きかけることができる。(9 MP)", "You can spit acid, dam. %d (cost 9)."), plev);
248                 info[i++] = Dummy;
249             }
250             break;
251         case RACE_KOBOLD:
252             if (plev > 11) {
253                 sprintf(Dummy, _("あなたは %d ダメージの毒矢を投げることができる。(8 MP)", "You can throw a dart of poison, dam. %d (cost 8)."), plev);
254                 info[i++] = Dummy;
255             }
256             break;
257         case RACE_DARK_ELF:
258             if (plev > 1) {
259                 sprintf(Dummy, _("あなたは %d ダメージのマジック・ミサイルの呪文を使える。(2 MP)", "You can cast a Magic Missile, dam %d (cost 2)."),
260                     (3 + ((plev - 1) / 5)));
261                 info[i++] = Dummy;
262             }
263             break;
264         case RACE_DRACONIAN:
265             sprintf(Dummy, _("あなたは %d ダメージのブレスを吐くことができる。(%d MP)", "You can breathe, dam. %d (cost %d)."), 2 * plev, plev);
266             info[i++] = Dummy;
267             break;
268         case RACE_MIND_FLAYER:
269             if (plev > 14)
270                 sprintf(Dummy, _("あなたは %d ダメージの精神攻撃をすることができる。(12 MP)", "You can mind blast your enemies, dam %d (cost 12)."), plev);
271             info[i++] = Dummy;
272             break;
273         case RACE_IMP:
274             if (plev > 29) {
275                 sprintf(Dummy, _("あなたは %d ダメージのファイア・ボールの呪文を使える。(15 MP)", "You can cast a Fire Ball, dam. %d (cost 15)."), plev);
276                 info[i++] = Dummy;
277             } else if (plev > 8) {
278                 sprintf(Dummy, _("あなたは %d ダメージのファイア・ボルトの呪文を使える。(15 MP)", "You can cast a Fire Bolt, dam. %d (cost 15)."), plev);
279                 info[i++] = Dummy;
280             }
281             break;
282         case RACE_GOLEM:
283             if (plev > 19)
284                 info[i++] = _("あなたは d20+30 ターンの間肌を石に変化させられる。(15 MP)", "You can turn your skin to stone, dur d20+30 (cost 15).");
285             break;
286         case RACE_ZOMBIE:
287         case RACE_SKELETON:
288             if (plev > 29)
289                 info[i++] = _("あなたは失った経験値を回復することができる。(30 MP)", "You can restore lost experience (cost 30).");
290             break;
291         case RACE_VAMPIRE:
292             if (plev > 1) {
293                 sprintf(Dummy, _("あなたは敵から %d-%d HP の生命力を吸収できる。(%d MP)", "You can steal life from a foe, dam. %d-%d (cost %d)."),
294                     plev + MAX(1, plev / 10), plev + plev * MAX(1, plev / 10), 1 + (plev / 3));
295                 info[i++] = Dummy;
296             }
297             break;
298         case RACE_SPECTRE:
299             if (plev > 3) {
300                 info[i++] = _("あなたは泣き叫んで敵を恐怖させることができる。(3 MP)", "You can wail to terrify your enemies (cost 3).");
301             }
302             break;
303         case RACE_SPRITE:
304             if (plev > 11) {
305                 info[i++] = _("あなたは敵を眠らせる魔法の粉を投げることができる。(12 MP)", "You can throw magical dust which induces sleep (cost 12).");
306             }
307             break;
308         case RACE_BALROG:
309             sprintf(Dummy, _("あなたは %d ダメージの地獄か火炎のブレスを吐くことができる。(%d MP)", "You can breathe nether, dam. %d (cost %d)."), 3 * plev,
310                 10 + plev / 3);
311
312             info[i++] = Dummy;
313             break;
314         case RACE_KUTAR:
315             if (plev > 19)
316                 info[i++] = _("あなたは d20+30 ターンの間横に伸びることができる。(15 MP)", "You can expand horizontally, dur d20+30 (cost 15).");
317             break;
318         case RACE_ANDROID:
319             if (plev < 10)
320                 sprintf(
321                     Dummy, _("あなたは %d ダメージのレイガンを撃つことができる。(7 MP)", "You can fire a ray gun with damage %d (cost 7)."), (plev + 1) / 2);
322             else if (plev < 25)
323                 sprintf(Dummy, _("あなたは %d ダメージのブラスターを撃つことができる。(13 MP)", "You can fire a blaster with damage %d (cost 13)."), plev);
324             else if (plev < 35)
325                 sprintf(Dummy, _("あなたは %d ダメージのバズーカを撃つことができる。(26 MP)", "You can fire a bazooka with damage %d (cost 26)."), plev * 2);
326             else if (plev < 45)
327                 sprintf(Dummy, _("あなたは %d ダメージのビームキャノンを撃つことができる。(40 MP)", "You can fire a beam cannon with damage %d (cost 40)."),
328                     plev * 2);
329             else
330                 sprintf(Dummy, _("あなたは %d ダメージのロケットを撃つことができる。(60 MP)", "You can fire a rocket with damage %d (cost 60)."), plev * 5);
331
332             info[i++] = Dummy;
333             break;
334         default:
335             break;
336         }
337     }
338
339     switch (creature_ptr->pclass) {
340     case CLASS_WARRIOR:
341         if (plev > 39) {
342             info[i++] = _("あなたはランダムな方向に対して数回攻撃することができる。(75 MP)", "You can attack some random directions simultaneously (cost 75).");
343         }
344         break;
345     case CLASS_HIGH_MAGE:
346         if (creature_ptr->realm1 == REALM_HEX)
347             break;
348         /* Fall through */
349     case CLASS_MAGE:
350     case CLASS_SORCERER:
351         if (plev > 24) {
352             info[i++] = _("あなたはアイテムの魔力を吸収することができる。(1 MP)", "You can absorb charges from an item (cost 1).");
353         }
354         break;
355     case CLASS_PRIEST:
356         if (is_good_realm(creature_ptr->realm1)) {
357             if (plev > 34) {
358                 info[i++] = _("あなたは武器を祝福することができる。(70 MP)", "You can bless a weapon (cost 70).");
359             }
360         } else {
361             if (plev > 41) {
362                 info[i++] = _("あなたは周りのすべてのモンスターを攻撃することができる。(40 MP)", "You can damage all monsters in sight (cost 40).");
363             }
364         }
365         break;
366     case CLASS_ROGUE:
367         if (plev > 7) {
368             info[i++] = _("あなたは攻撃して即座に逃げることができる。(12 MP)", "You can hit a monster and teleport away simultaneously (cost 12).");
369         }
370         break;
371     case CLASS_RANGER:
372         if (plev > 14) {
373             info[i++] = _("あなたは怪物を調査することができる。(20 MP)", "You can probe monsters (cost 20).");
374         }
375         break;
376     case CLASS_PALADIN:
377         if (is_good_realm(creature_ptr->realm1)) {
378             if (plev > 29) {
379                 info[i++] = _("あなたは聖なる槍を放つことができる。(30 MP)", "You can fire a holy spear (cost 30).");
380             }
381         } else {
382             if (plev > 29) {
383                 info[i++] = _("あなたは生命力を減少させる槍を放つことができる。(30 MP)", "You can fire a spear which drains vitality (cost 30).");
384             }
385         }
386         break;
387     case CLASS_WARRIOR_MAGE:
388         if (plev > 24) {
389             info[i++] = _("あなたはHPをMPに変換することができる。(0 MP)", "You can convert HP to SP (cost 0).");
390             info[i++] = _("あなたはMPをHPに変換することができる。(0 MP)", "You can convert SP to HP (cost 0).");
391         }
392         break;
393     case CLASS_CHAOS_WARRIOR:
394         if (plev > 39) {
395             info[i++] = _("あなたは周囲に怪物を惑わす光を発生させることができる。(50 MP)", "You can radiate light which confuses nearby monsters (cost 50).");
396         }
397         break;
398     case CLASS_MONK:
399         if (plev > 24) {
400             info[i++] = _("あなたは構えることができる。(0 MP)", "You can assume a special stance (cost 0).");
401         }
402         if (plev > 29) {
403             info[i++] = _("あなたは通常の2倍の攻撃を行うことができる。(30 MP)", "You can perform two attacks at the same time (cost 30).");
404         }
405         break;
406     case CLASS_MINDCRAFTER:
407     case CLASS_FORCETRAINER:
408         if (plev > 14) {
409             info[i++] = _("あなたは精神を集中してMPを回復させることができる。(0 MP)", "You can concentrate to regenerate your mana (cost 0).");
410         }
411         break;
412     case CLASS_TOURIST:
413         info[i++] = _("あなたは写真を撮影することができる。(0 MP)", "You can take a photograph (cost 0).");
414         if (plev > 24) {
415             info[i++] = _("あなたはアイテムを完全に鑑定することができる。(20 MP)", "You can *identify* items (cost 20).");
416         }
417         break;
418     case CLASS_IMITATOR:
419         if (plev > 29) {
420             info[i++] = _("あなたは怪物の特殊攻撃をダメージ2倍でまねることができる。(100 MP)",
421                 "You can imitate monster's special attacks with double damage (cost 100).");
422         }
423         break;
424     case CLASS_BEASTMASTER:
425         info[i++] = _("あなたは1体の生命のあるモンスターを支配することができる。(レベル/4 MP)", "You can dominate a monster (cost level/4).");
426         if (plev > 29) {
427             info[i++] = _("あなたは視界内の生命のあるモンスターを支配することができる。((レベル+20)/2 MP)",
428                 "You can dominate living monsters in sight (cost (level+20)/4).");
429         }
430         break;
431     case CLASS_MAGIC_EATER:
432         info[i++] = _("あなたは杖/魔法棒/ロッドの魔力を自分のものにすることができる。", "You can absorb a staff, wand or rod itself.");
433         break;
434     case CLASS_RED_MAGE:
435         if (plev > 47) {
436             info[i++] = _("あなたは1ターンに2回魔法を唱えることができる。(20 MP)", "You can cast two spells simultaneously (cost 20).");
437         }
438         break;
439     case CLASS_SAMURAI: {
440         info[i++] = _("あなたは精神を集中して気合いを溜めることができる。", "You can concentrate to regenerate your mana.");
441     }
442         if (plev > 24) {
443             info[i++] = _("あなたは特殊な型で構えることができる。", "You can assume a special stance.");
444         }
445         break;
446     case CLASS_BLUE_MAGE:
447         info[i++] = _("あなたは相手に使われた魔法を学ぶことができる。", "You can study spells which your enemy casts on you.");
448         break;
449     case CLASS_CAVALRY:
450         if (plev > 9) {
451             info[i++] = _("あなたはモンスターに乗って無理矢理ペットにすることができる。", "You can ride on a hostile monster to forcibly turn it into a pet.");
452         }
453         break;
454     case CLASS_BERSERKER:
455         if (plev > 9) {
456             info[i++] = _("あなたは街とダンジョンの間を行き来することができる。", "You can travel between town and the depths.");
457         }
458         break;
459     case CLASS_MIRROR_MASTER:
460         info[i++] = _("あなたは鏡を作り出すことができる。(2 MP)", "You can create a Mirror (cost 2).");
461         info[i++] = _("あなたは鏡を割ることができる。(0 MP)", "You can break distant Mirrors (cost 0).");
462         break;
463     case CLASS_NINJA:
464         if (plev > 19) {
465             info[i++] = _("あなたは素早く移動することができる。", "You can walk extremely fast.");
466         }
467         break;
468     }
469
470     if (creature_ptr->muta1) {
471         if (creature_ptr->muta1 & MUT1_SPIT_ACID) {
472             info[i++] = _("あなたは酸を吹きかけることができる。(ダメージ レベルX1)", "You can spit acid (dam lvl).");
473         }
474         if (creature_ptr->muta1 & MUT1_BR_FIRE) {
475             info[i++] = _("あなたは炎のブレスを吐くことができる。(ダメージ レベルX2)", "You can breathe fire (dam lvl * 2).");
476         }
477         if (creature_ptr->muta1 & MUT1_HYPN_GAZE) {
478             info[i++] = _("あなたの睨みは催眠効果をもつ。", "Your gaze is hypnotic.");
479         }
480         if (creature_ptr->muta1 & MUT1_TELEKINES) {
481             info[i++] = _("あなたは念動力をもっている。", "You are telekinetic.");
482         }
483         if (creature_ptr->muta1 & MUT1_VTELEPORT) {
484             info[i++] = _("あなたは自分の意思でテレポートできる。", "You can teleport at will.");
485         }
486         if (creature_ptr->muta1 & MUT1_MIND_BLST) {
487             info[i++] = _("あなたは精神攻撃を行える。(ダメージ 3~12d3)", "You can Mind Blast your enemies (3 to 12d3 dam).");
488         }
489         if (creature_ptr->muta1 & MUT1_RADIATION) {
490             info[i++] = _("あなたは自分の意思で強い放射線を発生することができる。(ダメージ レベルX2)", "You can emit hard radiation at will (dam lvl * 2).");
491         }
492         if (creature_ptr->muta1 & MUT1_VAMPIRISM) {
493             info[i++] = _("あなたは吸血鬼のように敵から生命力を吸収することができる。(ダメージ レベルX2)",
494                 "Like a vampire, you can drain life from a foe (dam lvl * 2).");
495         }
496         if (creature_ptr->muta1 & MUT1_SMELL_MET) {
497             info[i++] = _("あなたは近くにある貴金属をかぎ分けることができる。", "You can smell nearby precious metal.");
498         }
499         if (creature_ptr->muta1 & MUT1_SMELL_MON) {
500             info[i++] = _("あなたは近くのモンスターの存在をかぎ分けることができる。", "You can smell nearby monsters.");
501         }
502         if (creature_ptr->muta1 & MUT1_BLINK) {
503             info[i++] = _("あなたは短い距離をテレポートできる。", "You can teleport yourself short distances.");
504         }
505         if (creature_ptr->muta1 & MUT1_EAT_ROCK) {
506             info[i++] = _("あなたは硬い岩を食べることができる。", "You can consume solid rock.");
507         }
508         if (creature_ptr->muta1 & MUT1_SWAP_POS) {
509             info[i++] = _("あなたは他の者と場所を入れ替わることができる。", "You can switch locations with another being.");
510         }
511         if (creature_ptr->muta1 & MUT1_SHRIEK) {
512             info[i++] = _("あなたは身の毛もよだつ叫び声を発することができる。(ダメージ レベルX2)", "You can emit a horrible shriek (dam 2 * lvl).");
513         }
514         if (creature_ptr->muta1 & MUT1_ILLUMINE) {
515             info[i++] = _("あなたは明るい光を放つことができる。", "You can emit bright light.");
516         }
517         if (creature_ptr->muta1 & MUT1_DET_CURSE) {
518             info[i++] = _("あなたは邪悪な魔法の危険を感じとることができる。", "You can feel the danger of evil magic.");
519         }
520         if (creature_ptr->muta1 & MUT1_BERSERK) {
521             info[i++] = _("あなたは自分の意思で狂乱戦闘状態になることができる。", "You can drive yourself into a berserk frenzy.");
522         }
523         if (creature_ptr->muta1 & MUT1_POLYMORPH) {
524             info[i++] = _("あなたは自分の意志で変化できる。", "You can polymorph yourself at will.");
525         }
526         if (creature_ptr->muta1 & MUT1_MIDAS_TCH) {
527             info[i++] = _("あなたは通常アイテムを金に変えることができる。", "You can turn ordinary items to gold.");
528         }
529         if (creature_ptr->muta1 & MUT1_GROW_MOLD) {
530             info[i++] = _("あなたは周囲にキノコを生やすことができる。", "You can cause mold to grow near you.");
531         }
532         if (creature_ptr->muta1 & MUT1_RESIST) {
533             info[i++] = _("あなたは元素の攻撃に対して身を硬くすることができる。", "You can harden yourself to the ravages of the elements.");
534         }
535         if (creature_ptr->muta1 & MUT1_EARTHQUAKE) {
536             info[i++] = _("あなたは周囲のダンジョンを崩壊させることができる。", "You can bring down the dungeon around your ears.");
537         }
538         if (creature_ptr->muta1 & MUT1_EAT_MAGIC) {
539             info[i++] = _("あなたは魔法のエネルギーを自分の物として使用できる。", "You can consume magic energy for your own use.");
540         }
541         if (creature_ptr->muta1 & MUT1_WEIGH_MAG) {
542             info[i++] = _("あなたは自分に影響を与える魔法の力を感じることができる。", "You can feel the strength of the magics affecting you.");
543         }
544         if (creature_ptr->muta1 & MUT1_STERILITY) {
545             info[i++] = _("あなたは集団的生殖不能を起こすことができる。", "You can cause mass impotence.");
546         }
547         if (creature_ptr->muta1 & MUT1_HIT_AND_AWAY) {
548             info[i++] = _("あなたは攻撃した後身を守るため逃げることができる。", "You can run for your life after hitting something.");
549         }
550         if (creature_ptr->muta1 & MUT1_DAZZLE) {
551             info[i++] = _("あなたは混乱と盲目を引き起こす放射能を発生することができる。 ", "You can emit confusing, blinding radiation.");
552         }
553         if (creature_ptr->muta1 & MUT1_LASER_EYE) {
554             info[i++] = _("あなたは目からレーザー光線を発することができる。(ダメージ レベルX2)", "Your eyes can fire laser beams (dam 2 * lvl).");
555         }
556         if (creature_ptr->muta1 & MUT1_RECALL) {
557             info[i++] = _("あなたは街とダンジョンの間を行き来することができる。", "You can travel between town and the depths.");
558         }
559         if (creature_ptr->muta1 & MUT1_BANISH) {
560             info[i++] = _("あなたは邪悪なモンスターを地獄に落とすことができる。", "You can send evil creatures directly to Hell.");
561         }
562         if (creature_ptr->muta1 & MUT1_COLD_TOUCH) {
563             info[i++] = _("あなたは敵を触って凍らせることができる。(ダメージ レベルX3)", "You can freeze things with a touch (dam 3 * lvl).");
564         }
565         if (creature_ptr->muta1 & MUT1_LAUNCHER) {
566             info[i++] = _("あなたはアイテムを力強く投げることができる。", "You can hurl objects with great force.");
567         }
568     }
569
570     if (creature_ptr->muta2) {
571         if (creature_ptr->muta2 & MUT2_BERS_RAGE) {
572             info[i++] = _("あなたは狂戦士化の発作を起こす。", "You are subject to berserker fits.");
573         }
574         if (creature_ptr->muta2 & MUT2_COWARDICE) {
575             info[i++] = _("あなたは時々臆病になる。", "You are subject to cowardice.");
576         }
577         if (creature_ptr->muta2 & MUT2_RTELEPORT) {
578             info[i++] = _("あなたはランダムにテレポートする。", "You may randomly teleport.");
579         }
580         if (creature_ptr->muta2 & MUT2_ALCOHOL) {
581             info[i++] = _("あなたの体はアルコールを分泌する。", "Your body produces alcohol.");
582         }
583         if (creature_ptr->muta2 & MUT2_HALLU) {
584             info[i++] = _("あなたは幻覚を引き起こす精神錯乱に侵されている。", "You have a hallucinatory insanity.");
585         }
586         if (creature_ptr->muta2 & MUT2_FLATULENT) {
587             info[i++] = _("あなたは制御できない強烈な屁をこく。", "You are subject to uncontrollable flatulence.");
588         }
589         if (creature_ptr->muta2 & MUT2_PROD_MANA) {
590             info[i++] = _("あなたは制御不能な魔法のエネルギーを発している。", "You produce magical energy uncontrollably.");
591         }
592         if (creature_ptr->muta2 & MUT2_ATT_DEMON) {
593             info[i++] = _("あなたはデーモンを引きつける。", "You attract demons.");
594         }
595         if (creature_ptr->muta2 & MUT2_SCOR_TAIL) {
596             info[i++] = _("あなたはサソリの尻尾が生えている。(毒、ダメージ 3d7)", "You have a scorpion tail (poison, 3d7).");
597         }
598         if (creature_ptr->muta2 & MUT2_HORNS) {
599             info[i++] = _("あなたは角が生えている。(ダメージ 2d6)", "You have horns (dam. 2d6).");
600         }
601         if (creature_ptr->muta2 & MUT2_BEAK) {
602             info[i++] = _("あなたはクチバシが生えている。(ダメージ 2d4)", "You have a beak (dam. 2d4).");
603         }
604         if (creature_ptr->muta2 & MUT2_SPEED_FLUX) {
605             info[i++] = _("あなたはランダムに早く動いたり遅く動いたりする。", "You move faster or slower randomly.");
606         }
607         if (creature_ptr->muta2 & MUT2_BANISH_ALL) {
608             info[i++] = _("あなたは時々近くのモンスターを消滅させる。", "You sometimes cause nearby creatures to vanish.");
609         }
610         if (creature_ptr->muta2 & MUT2_EAT_LIGHT) {
611             info[i++] = _("あなたは時々周囲の光を吸収して栄養にする。", "You sometimes feed off of the light around you.");
612         }
613         if (creature_ptr->muta2 & MUT2_TRUNK) {
614             info[i++] = _("あなたは象のような鼻を持っている。(ダメージ 1d4)", "You have an elephantine trunk (dam 1d4).");
615         }
616         if (creature_ptr->muta2 & MUT2_ATT_ANIMAL) {
617             info[i++] = _("あなたは動物を引きつける。", "You attract animals.");
618         }
619         if (creature_ptr->muta2 & MUT2_TENTACLES) {
620             info[i++] = _("あなたは邪悪な触手を持っている。(ダメージ 2d5)", "You have evil looking tentacles (dam 2d5).");
621         }
622         if (creature_ptr->muta2 & MUT2_RAW_CHAOS) {
623             info[i++] = _("あなたはしばしば純カオスに包まれる。", "You occasionally are surrounded with raw chaos.");
624         }
625         if (creature_ptr->muta2 & MUT2_NORMALITY) {
626             info[i++] = _("あなたは変異していたが、回復してきている。", "You may be mutated, but you're recovering.");
627         }
628         if (creature_ptr->muta2 & MUT2_WRAITH) {
629             info[i++] = _("あなたの肉体は幽体化したり実体化したりする。", "You fade in and out of physical reality.");
630         }
631         if (creature_ptr->muta2 & MUT2_POLY_WOUND) {
632             info[i++] = _("あなたの健康はカオスの力に影響を受ける。", "Your health is subject to chaotic forces.");
633         }
634         if (creature_ptr->muta2 & MUT2_WASTING) {
635             info[i++] = _("あなたは衰弱する恐ろしい病気にかかっている。", "You have a horrible wasting disease.");
636         }
637         if (creature_ptr->muta2 & MUT2_ATT_DRAGON) {
638             info[i++] = _("あなたはドラゴンを引きつける。", "You attract dragons.");
639         }
640         if (creature_ptr->muta2 & MUT2_WEIRD_MIND) {
641             info[i++] = _("あなたの精神はランダムに拡大したり縮小したりしている。", "Your mind randomly expands and contracts.");
642         }
643         if (creature_ptr->muta2 & MUT2_NAUSEA) {
644             info[i++] = _("あなたの胃は非常に落ち着きがない。", "You have a seriously upset stomach.");
645         }
646         if (creature_ptr->muta2 & MUT2_CHAOS_GIFT) {
647             info[i++] = _("あなたはカオスの守護悪魔から褒美をうけとる。", "Chaos deities give you gifts.");
648         }
649         if (creature_ptr->muta2 & MUT2_WALK_SHAD) {
650             info[i++] = _("あなたはしばしば他の「影」に迷い込む。", "You occasionally stumble into other shadows.");
651         }
652         if (creature_ptr->muta2 & MUT2_WARNING) {
653             info[i++] = _("あなたは敵に関する警告を感じる。", "You receive warnings about your foes.");
654         }
655         if (creature_ptr->muta2 & MUT2_INVULN) {
656             info[i++] = _("あなたは時々負け知らずな気分になる。", "You occasionally feel invincible.");
657         }
658         if (creature_ptr->muta2 & MUT2_SP_TO_HP) {
659             info[i++] = _("あなたは時々血が筋肉にどっと流れる。", "Your blood sometimes rushes to your muscles.");
660         }
661         if (creature_ptr->muta2 & MUT2_HP_TO_SP) {
662             info[i++] = _("あなたは時々頭に血がどっと流れる。", "Your blood sometimes rushes to your head.");
663         }
664         if (creature_ptr->muta2 & MUT2_DISARM) {
665             info[i++] = _("あなたはよくつまづいて物を落とす。", "You occasionally stumble and drop things.");
666         }
667     }
668
669     if (creature_ptr->muta3) {
670         if (creature_ptr->muta3 & MUT3_HYPER_STR) {
671             info[i++] = _("あなたは超人的に強い。(腕力+4)", "You are superhumanly strong (+4 STR).");
672         }
673         if (creature_ptr->muta3 & MUT3_PUNY) {
674             info[i++] = _("あなたは虚弱だ。(腕力-4)", "You are puny (-4 STR).");
675         }
676         if (creature_ptr->muta3 & MUT3_HYPER_INT) {
677             info[i++] = _("あなたの脳は生体コンピュータだ。(知能&賢さ+4)", "Your brain is a living computer (+4 INT/WIS).");
678         }
679         if (creature_ptr->muta3 & MUT3_MORONIC) {
680             info[i++] = _("あなたは精神薄弱だ。(知能&賢さ-4)", "You are moronic (-4 INT/WIS).");
681         }
682         if (creature_ptr->muta3 & MUT3_RESILIENT) {
683             info[i++] = _("あなたは非常にタフだ。(耐久+4)", "You are very resilient (+4 CON).");
684         }
685         if (creature_ptr->muta3 & MUT3_XTRA_FAT) {
686             info[i++] = _("あなたは極端に太っている。(耐久+2,スピード-2)", "You are extremely fat (+2 CON, -2 speed).");
687         }
688         if (creature_ptr->muta3 & MUT3_ALBINO) {
689             info[i++] = _("あなたはアルビノだ。(耐久-4)", "You are an albino (-4 CON).");
690         }
691         if (creature_ptr->muta3 & MUT3_FLESH_ROT) {
692             info[i++] = _("あなたの肉体は腐敗している。(耐久-2,魅力-1)", "Your flesh is rotting (-2 CON, -1 CHR).");
693         }
694         if (creature_ptr->muta3 & MUT3_SILLY_VOI) {
695             info[i++] = _("あなたの声は間抜けなキーキー声だ。(魅力-4)", "Your voice is a silly squeak (-4 CHR).");
696         }
697         if (creature_ptr->muta3 & MUT3_BLANK_FAC) {
698             info[i++] = _("あなたはのっぺらぼうだ。(魅力-1)", "Your face is featureless (-1 CHR).");
699         }
700         if (creature_ptr->muta3 & MUT3_ILL_NORM) {
701             info[i++] = _("あなたは幻影に覆われている。", "Your appearance is masked with illusion.");
702         }
703         if (creature_ptr->muta3 & MUT3_XTRA_EYES) {
704             info[i++] = _("あなたは余分に二つの目を持っている。(探索+15)", "You have an extra pair of eyes (+15 search).");
705         }
706         if (creature_ptr->muta3 & MUT3_MAGIC_RES) {
707             info[i++] = _("あなたは魔法への耐性をもっている。", "You are resistant to magic.");
708         }
709         if (creature_ptr->muta3 & MUT3_XTRA_NOIS) {
710             info[i++] = _("あなたは変な音を発している。(隠密-3)", "You make a lot of strange noise (-3 stealth).");
711         }
712         if (creature_ptr->muta3 & MUT3_INFRAVIS) {
713             info[i++] = _("あなたは素晴らしい赤外線視力を持っている。(+3)", "You have remarkable infravision (+3).");
714         }
715         if (creature_ptr->muta3 & MUT3_XTRA_LEGS) {
716             info[i++] = _("あなたは余分に二本の足が生えている。(加速+3)", "You have an extra pair of legs (+3 speed).");
717         }
718         if (creature_ptr->muta3 & MUT3_SHORT_LEG) {
719             info[i++] = _("あなたの足は短い突起だ。(加速-3)", "Your legs are short stubs (-3 speed).");
720         }
721         if (creature_ptr->muta3 & MUT3_ELEC_TOUC) {
722             info[i++] = _("あなたの血管には電流が流れている。", "Electricity is running through your veins.");
723         }
724         if (creature_ptr->muta3 & MUT3_FIRE_BODY) {
725             info[i++] = _("あなたの体は炎につつまれている。", "Your body is enveloped in flames.");
726         }
727         if (creature_ptr->muta3 & MUT3_WART_SKIN) {
728             info[i++] = _("あなたの肌はイボに被われている。(魅力-2, AC+5)", "Your skin is covered with warts (-2 CHR, +5 AC).");
729         }
730         if (creature_ptr->muta3 & MUT3_SCALES) {
731             info[i++] = _("あなたの肌は鱗になっている。(魅力-1, AC+10)", "Your skin has turned into scales (-1 CHR, +10 AC).");
732         }
733         if (creature_ptr->muta3 & MUT3_IRON_SKIN) {
734             info[i++] = _("あなたの肌は鉄でできている。(器用-1, AC+25)", "Your skin is made of steel (-1 DEX, +25 AC).");
735         }
736         if (creature_ptr->muta3 & MUT3_WINGS) {
737             info[i++] = _("あなたは羽を持っている。", "You have wings.");
738         }
739         if (creature_ptr->muta3 & MUT3_FEARLESS) {
740             /* Unnecessary */
741         }
742         if (creature_ptr->muta3 & MUT3_REGEN) {
743             /* Unnecessary */
744         }
745         if (creature_ptr->muta3 & MUT3_ESP) {
746             /* Unnecessary */
747         }
748         if (creature_ptr->muta3 & MUT3_LIMBER) {
749             info[i++] = _("あなたの体は非常にしなやかだ。(器用+3)", "Your body is very limber (+3 DEX).");
750         }
751         if (creature_ptr->muta3 & MUT3_ARTHRITIS) {
752             info[i++] = _("あなたはいつも関節に痛みを感じている。(器用-3)", "Your joints ache constantly (-3 DEX).");
753         }
754         if (creature_ptr->muta3 & MUT3_VULN_ELEM) {
755             info[i++] = _("あなたは元素の攻撃に弱い。", "You are susceptible to damage from the elements.");
756         }
757         if (creature_ptr->muta3 & MUT3_MOTION) {
758             info[i++] = _("あなたの動作は正確で力強い。(隠密+1)", "Your movements are precise and forceful (+1 STL).");
759         }
760         if (have_good_luck(creature_ptr)) {
761             info[i++] = _("あなたは白いオーラにつつまれている。", "There is a white aura surrounding you.");
762         }
763         if (creature_ptr->muta3 & MUT3_BAD_LUCK) {
764             info[i++] = _("あなたは黒いオーラにつつまれている。", "There is a black aura surrounding you.");
765         }
766     }
767
768     if (creature_ptr->blind) {
769         info[i++] = _("あなたは目が見えない。", "You cannot see.");
770     }
771     if (creature_ptr->confused) {
772         info[i++] = _("あなたは混乱している。", "You are confused.");
773     }
774     if (creature_ptr->afraid) {
775         info[i++] = _("あなたは恐怖に侵されている。", "You are terrified.");
776     }
777     if (creature_ptr->cut) {
778         info[i++] = _("あなたは出血している。", "You are bleeding.");
779     }
780     if (creature_ptr->stun) {
781         info[i++] = _("あなたはもうろうとしている。", "You are stunned.");
782     }
783     if (creature_ptr->poisoned) {
784         info[i++] = _("あなたは毒に侵されている。", "You are poisoned.");
785     }
786     if (creature_ptr->image) {
787         info[i++] = _("あなたは幻覚を見ている。", "You are hallucinating.");
788     }
789     if (creature_ptr->cursed & TRC_TY_CURSE) {
790         info[i++] = _("あなたは邪悪な怨念に包まれている。", "You carry an ancient foul curse.");
791     }
792     if (creature_ptr->cursed & TRC_AGGRAVATE) {
793         info[i++] = _("あなたはモンスターを怒らせている。", "You aggravate monsters.");
794     }
795     if (creature_ptr->cursed & TRC_DRAIN_EXP) {
796         info[i++] = _("あなたは経験値を吸われている。", "You occasionally lose experience for no reason.");
797     }
798     if (creature_ptr->cursed & TRC_SLOW_REGEN) {
799         info[i++] = _("あなたの回復力は非常に遅い。", "You regenerate slowly.");
800     }
801     if (creature_ptr->cursed & TRC_ADD_L_CURSE) {
802         info[i++] = _("あなたの弱い呪いは増える。", "Your weak curses multiply."); /* 暫定的 -- henkma */
803     }
804     if (creature_ptr->cursed & TRC_ADD_H_CURSE) {
805         info[i++] = _("あなたの強い呪いは増える。", "Your heavy curses multiply."); /* 暫定的 -- henkma */
806     }
807     if (creature_ptr->cursed & TRC_CALL_ANIMAL) {
808         info[i++] = _("あなたは動物に狙われている。", "You attract animals.");
809     }
810     if (creature_ptr->cursed & TRC_CALL_DEMON) {
811         info[i++] = _("あなたは悪魔に狙われている。", "You attract demons.");
812     }
813     if (creature_ptr->cursed & TRC_CALL_DRAGON) {
814         info[i++] = _("あなたはドラゴンに狙われている。", "You attract dragons.");
815     }
816     if (creature_ptr->cursed & TRC_COWARDICE) {
817         info[i++] = _("あなたは時々臆病になる。", "You are subject to cowardice.");
818     }
819     if (creature_ptr->cursed & TRC_TELEPORT) {
820         info[i++] = _("あなたの位置はひじょうに不安定だ。", "Your position is very uncertain.");
821     }
822     if (creature_ptr->cursed & TRC_LOW_MELEE) {
823         info[i++] = _("あなたの武器は攻撃を外しやすい。", "Your weapon causes you to miss blows.");
824     }
825     if (creature_ptr->cursed & TRC_LOW_AC) {
826         info[i++] = _("あなたは攻撃を受けやすい。", "You are subject to be hit.");
827     }
828     if (creature_ptr->cursed & TRC_LOW_MAGIC) {
829         info[i++] = _("あなたは魔法を失敗しやすい。", "Your spells fail more frequently.");
830     }
831     if (creature_ptr->cursed & TRC_FAST_DIGEST) {
832         info[i++] = _("あなたはすぐお腹がへる。", "You have a good appetite.");
833     }
834     if (creature_ptr->cursed & TRC_DRAIN_HP) {
835         info[i++] = _("あなたは体力を吸われている。", "You occasionally lose hit points for no reason.");
836     }
837     if (creature_ptr->cursed & TRC_DRAIN_MANA) {
838         info[i++] = _("あなたは魔力を吸われている。", "You occasionally lose spell points for no reason.");
839     }
840     if (is_blessed(creature_ptr)) {
841         info[i++] = _("あなたは高潔さを感じている。", "You feel rightous.");
842     }
843     if (is_hero(creature_ptr)) {
844         info[i++] = _("あなたはヒーロー気分だ。", "You feel heroic.");
845     }
846     if (creature_ptr->shero) {
847         info[i++] = _("あなたは戦闘狂だ。", "You are in a battle rage.");
848     }
849     if (creature_ptr->protevil) {
850         info[i++] = _("あなたは邪悪なる存在から守られている。", "You are protected from evil.");
851     }
852     if (creature_ptr->shield) {
853         info[i++] = _("あなたは神秘のシールドで守られている。", "You are protected by a mystic shield.");
854     }
855     if (is_invuln(creature_ptr)) {
856         info[i++] = _("あなたは現在傷つかない。", "You are temporarily invulnerable.");
857     }
858     if (creature_ptr->wraith_form) {
859         info[i++] = _("あなたは一時的に幽体化している。", "You are temporarily incorporeal.");
860     }
861     if (creature_ptr->special_attack & ATTACK_CONFUSE) {
862         info[i++] = _("あなたの手は赤く輝いている。", "Your hands are glowing dull red.");
863     }
864     if (creature_ptr->special_attack & ATTACK_FIRE) {
865         info[i++] = _("あなたの手は火炎に覆われている。", "You can strike the enemy with flame.");
866     }
867     if (creature_ptr->special_attack & ATTACK_COLD) {
868         info[i++] = _("あなたの手は冷気に覆われている。", "You can strike the enemy with cold.");
869     }
870     if (creature_ptr->special_attack & ATTACK_ACID) {
871         info[i++] = _("あなたの手は酸に覆われている。", "You can strike the enemy with acid.");
872     }
873     if (creature_ptr->special_attack & ATTACK_ELEC) {
874         info[i++] = _("あなたの手は電撃に覆われている。", "You can strike the enemy with electoric shock.");
875     }
876     if (creature_ptr->special_attack & ATTACK_POIS) {
877         info[i++] = _("あなたの手は毒に覆われている。", "You can strike the enemy with poison.");
878     }
879     switch (creature_ptr->action) {
880     case ACTION_SEARCH:
881         info[i++] = _("あなたはひじょうに注意深く周囲を見渡している。", "You are looking around very carefully.");
882         break;
883     }
884     if (creature_ptr->new_spells) {
885         info[i++] = _("あなたは呪文や祈りを学ぶことができる。", "You can learn some spells/prayers.");
886     }
887     if (creature_ptr->word_recall) {
888         info[i++] = _("あなたはすぐに帰還するだろう。", "You will soon be recalled.");
889     }
890     if (creature_ptr->alter_reality) {
891         info[i++] = _("あなたはすぐにこの世界を離れるだろう。", "You will soon be altered.");
892     }
893     if (creature_ptr->see_infra) {
894         info[i++] = _("あなたの瞳は赤外線に敏感である。", "Your eyes are sensitive to infrared light.");
895     }
896     if (creature_ptr->see_inv) {
897         info[i++] = _("あなたは透明なモンスターを見ることができる。", "You can see invisible creatures.");
898     }
899     if (creature_ptr->levitation) {
900         info[i++] = _("あなたは飛ぶことができる。", "You can fly.");
901     }
902     if (creature_ptr->free_act) {
903         info[i++] = _("あなたは麻痺知らずの効果を持っている。", "You have free action.");
904     }
905     if (creature_ptr->regenerate) {
906         info[i++] = _("あなたは素早く体力を回復する。", "You regenerate quickly.");
907     }
908     if (creature_ptr->slow_digest) {
909         info[i++] = _("あなたは食欲が少ない。", "Your appetite is small.");
910     }
911     if (creature_ptr->telepathy) {
912         info[i++] = _("あなたはテレパシー能力を持っている。", "You have ESP.");
913     }
914     if (creature_ptr->esp_animal) {
915         info[i++] = _("あなたは自然界の生物の存在を感じる能力を持っている。", "You sense natural creatures.");
916     }
917     if (creature_ptr->esp_undead) {
918         info[i++] = _("あなたはアンデッドの存在を感じる能力を持っている。", "You sense undead.");
919     }
920     if (creature_ptr->esp_demon) {
921         info[i++] = _("あなたは悪魔の存在を感じる能力を持っている。", "You sense demons.");
922     }
923     if (creature_ptr->esp_orc) {
924         info[i++] = _("あなたはオークの存在を感じる能力を持っている。", "You sense orcs.");
925     }
926     if (creature_ptr->esp_troll) {
927         info[i++] = _("あなたはトロルの存在を感じる能力を持っている。", "You sense trolls.");
928     }
929     if (creature_ptr->esp_giant) {
930         info[i++] = _("あなたは巨人の存在を感じる能力を持っている。", "You sense giants.");
931     }
932     if (creature_ptr->esp_dragon) {
933         info[i++] = _("あなたはドラゴンの存在を感じる能力を持っている。", "You sense dragons.");
934     }
935     if (creature_ptr->esp_human) {
936         info[i++] = _("あなたは人間の存在を感じる能力を持っている。", "You sense humans.");
937     }
938     if (creature_ptr->esp_evil) {
939         info[i++] = _("あなたは邪悪な生き物の存在を感じる能力を持っている。", "You sense evil creatures.");
940     }
941     if (creature_ptr->esp_good) {
942         info[i++] = _("あなたは善良な生き物の存在を感じる能力を持っている。", "You sense good creatures.");
943     }
944     if (creature_ptr->esp_nonliving) {
945         info[i++] = _("あなたは活動する無生物体の存在を感じる能力を持っている。", "You sense non-living creatures.");
946     }
947     if (creature_ptr->esp_unique) {
948         info[i++] = _("あなたは特別な強敵の存在を感じる能力を持っている。", "You sense unique monsters.");
949     }
950     if (creature_ptr->hold_exp) {
951         info[i++] = _("あなたは自己の経験値をしっかりと維持する。", "You have a firm hold on your experience.");
952     }
953     if (creature_ptr->reflect) {
954         info[i++] = _("あなたは矢の呪文を反射する。", "You reflect bolt spells.");
955     }
956     if (creature_ptr->sh_fire) {
957         info[i++] = _("あなたは炎のオーラに包まれている。", "You are surrounded with a fiery aura.");
958     }
959     if (creature_ptr->sh_elec) {
960         info[i++] = _("あなたは電気に包まれている。", "You are surrounded with electricity.");
961     }
962     if (creature_ptr->sh_cold) {
963         info[i++] = _("あなたは冷気のオーラに包まれている。", "You are surrounded with an aura of coldness.");
964     }
965     if (creature_ptr->tim_sh_holy) {
966         info[i++] = _("あなたは聖なるオーラに包まれている。", "You are surrounded with a holy aura.");
967     }
968     if (creature_ptr->tim_sh_touki) {
969         info[i++] = _("あなたは闘気のオーラに包まれている。", "You are surrounded with an energy aura.");
970     }
971     if (creature_ptr->anti_magic) {
972         info[i++] = _("あなたは反魔法シールドに包まれている。", "You are surrounded by an anti-magic shell.");
973     }
974     if (creature_ptr->anti_tele) {
975         info[i++] = _("あなたはテレポートできない。", "You cannot teleport.");
976     }
977     if (creature_ptr->lite) {
978         info[i++] = _("あなたの身体は光っている。", "You are carrying a permanent light.");
979     }
980     if (creature_ptr->warning) {
981         info[i++] = _("あなたは行動の前に危険を察知することができる。", "You will be warned before dangerous actions.");
982     }
983     if (creature_ptr->dec_mana) {
984         info[i++] = _("あなたは少ない消費魔力で魔法を唱えることができる。", "You can cast spells with fewer mana points.");
985     }
986     if (creature_ptr->easy_spell) {
987         info[i++] = _("あなたは低い失敗率で魔法を唱えることができる。", "Fail rate of your magic is decreased.");
988     }
989     if (creature_ptr->heavy_spell) {
990         info[i++] = _("あなたは高い失敗率で魔法を唱えなければいけない。", "Fail rate of your magic is increased.");
991     }
992     if (creature_ptr->mighty_throw) {
993         info[i++] = _("あなたは強く物を投げる。", "You can throw objects powerfully.");
994     }
995
996     if (creature_ptr->immune_acid) {
997         info[i++] = _("あなたは酸に対する完全なる免疫を持っている。", "You are completely immune to acid.");
998     } else if (creature_ptr->resist_acid && is_oppose_acid(creature_ptr)) {
999         info[i++] = _("あなたは酸への強力な耐性を持っている。", "You resist acid exceptionally well.");
1000     } else if (creature_ptr->resist_acid || is_oppose_acid(creature_ptr)) {
1001         info[i++] = _("あなたは酸への耐性を持っている。", "You are resistant to acid.");
1002     }
1003
1004     if (creature_ptr->immune_elec) {
1005         info[i++] = _("あなたは電撃に対する完全なる免疫を持っている。", "You are completely immune to lightning.");
1006     } else if (creature_ptr->resist_elec && is_oppose_elec(creature_ptr)) {
1007         info[i++] = _("あなたは電撃への強力な耐性を持っている。", "You resist lightning exceptionally well.");
1008     } else if (creature_ptr->resist_elec || is_oppose_elec(creature_ptr)) {
1009         info[i++] = _("あなたは電撃への耐性を持っている。", "You are resistant to lightning.");
1010     }
1011
1012     if (is_specific_player_race(creature_ptr, RACE_ANDROID) && !creature_ptr->immune_elec) {
1013         info[i++] = _("あなたは電撃に弱い。", "You are susceptible to damage from lightning.");
1014     }
1015
1016     if (creature_ptr->immune_fire) {
1017         info[i++] = _("あなたは火に対する完全なる免疫を持っている。", "You are completely immune to fire.");
1018     } else if (creature_ptr->resist_fire && is_oppose_fire(creature_ptr)) {
1019         info[i++] = _("あなたは火への強力な耐性を持っている。", "You resist fire exceptionally well.");
1020     } else if (creature_ptr->resist_fire || is_oppose_fire(creature_ptr)) {
1021         info[i++] = _("あなたは火への耐性を持っている。", "You are resistant to fire.");
1022     }
1023
1024     if (is_specific_player_race(creature_ptr, RACE_ENT) && !creature_ptr->immune_fire) {
1025         info[i++] = _("あなたは火に弱い。", "You are susceptible to damage from fire.");
1026     }
1027
1028     if (creature_ptr->immune_cold) {
1029         info[i++] = _("あなたは冷気に対する完全なる免疫を持っている。", "You are completely immune to cold.");
1030     } else if (creature_ptr->resist_cold && is_oppose_cold(creature_ptr)) {
1031         info[i++] = _("あなたは冷気への強力な耐性を持っている。", "You resist cold exceptionally well.");
1032     } else if (creature_ptr->resist_cold || is_oppose_cold(creature_ptr)) {
1033         info[i++] = _("あなたは冷気への耐性を持っている。", "You are resistant to cold.");
1034     }
1035
1036     if (creature_ptr->resist_pois && is_oppose_pois(creature_ptr)) {
1037         info[i++] = _("あなたは毒への強力な耐性を持っている。", "You resist poison exceptionally well.");
1038     } else if (creature_ptr->resist_pois || is_oppose_pois(creature_ptr)) {
1039         info[i++] = _("あなたは毒への耐性を持っている。", "You are resistant to poison.");
1040     }
1041
1042     if (creature_ptr->resist_lite) {
1043         info[i++] = _("あなたは閃光への耐性を持っている。", "You are resistant to bright light.");
1044     }
1045
1046     if (is_specific_player_race(creature_ptr, RACE_VAMPIRE) || is_specific_player_race(creature_ptr, RACE_S_FAIRY)
1047         || (creature_ptr->mimic_form == MIMIC_VAMPIRE)) {
1048         info[i++] = _("あなたは閃光に弱い。", "You are susceptible to damage from bright light.");
1049     }
1050
1051     if (is_specific_player_race(creature_ptr, RACE_VAMPIRE) || (creature_ptr->mimic_form == MIMIC_VAMPIRE) || creature_ptr->wraith_form) {
1052         info[i++] = _("あなたは暗黒に対する完全なる免疫を持っている。", "You are completely immune to darkness.");
1053     }
1054
1055     else if (creature_ptr->resist_dark) {
1056         info[i++] = _("あなたは暗黒への耐性を持っている。", "You are resistant to darkness.");
1057     }
1058     if (creature_ptr->resist_conf) {
1059         info[i++] = _("あなたは混乱への耐性を持っている。", "You are resistant to confusion.");
1060     }
1061     if (creature_ptr->resist_sound) {
1062         info[i++] = _("あなたは音波の衝撃への耐性を持っている。", "You are resistant to sonic attacks.");
1063     }
1064     if (creature_ptr->resist_disen) {
1065         info[i++] = _("あなたは劣化への耐性を持っている。", "You are resistant to disenchantment.");
1066     }
1067     if (creature_ptr->resist_chaos) {
1068         info[i++] = _("あなたはカオスの力への耐性を持っている。", "You are resistant to chaos.");
1069     }
1070     if (creature_ptr->resist_shard) {
1071         info[i++] = _("あなたは破片の攻撃への耐性を持っている。", "You are resistant to blasts of shards.");
1072     }
1073     if (creature_ptr->resist_nexus) {
1074         info[i++] = _("あなたは因果混乱の攻撃への耐性を持っている。", "You are resistant to nexus attacks.");
1075     }
1076
1077     if (is_specific_player_race(creature_ptr, RACE_SPECTRE)) {
1078         info[i++] = _("あなたは地獄の力を吸収できる。", "You can drain nether forces.");
1079     } else if (creature_ptr->resist_neth) {
1080         info[i++] = _("あなたは地獄の力への耐性を持っている。", "You are resistant to nether forces.");
1081     }
1082     if (creature_ptr->resist_fear) {
1083         info[i++] = _("あなたは全く恐怖を感じない。", "You are completely fearless.");
1084     }
1085     if (creature_ptr->resist_blind) {
1086         info[i++] = _("あなたの目は盲目への耐性を持っている。", "Your eyes are resistant to blindness.");
1087     }
1088     if (creature_ptr->resist_time) {
1089         info[i++] = _("あなたは時間逆転への耐性を持っている。", "You are resistant to time.");
1090     }
1091
1092     if (creature_ptr->sustain_str) {
1093         info[i++] = _("あなたの腕力は維持されている。", "Your strength is sustained.");
1094     }
1095     if (creature_ptr->sustain_int) {
1096         info[i++] = _("あなたの知能は維持されている。", "Your intelligence is sustained.");
1097     }
1098     if (creature_ptr->sustain_wis) {
1099         info[i++] = _("あなたの賢さは維持されている。", "Your wisdom is sustained.");
1100     }
1101     if (creature_ptr->sustain_con) {
1102         info[i++] = _("あなたの耐久力は維持されている。", "Your constitution is sustained.");
1103     }
1104     if (creature_ptr->sustain_dex) {
1105         info[i++] = _("あなたの器用さは維持されている。", "Your dexterity is sustained.");
1106     }
1107     if (creature_ptr->sustain_chr) {
1108         info[i++] = _("あなたの魅力は維持されている。", "Your charisma is sustained.");
1109     }
1110
1111     if (have_flag(flgs, TR_STR)) {
1112         info[i++] = _("あなたの腕力は装備によって影響を受けている。", "Your strength is affected by your equipment.");
1113     }
1114     if (have_flag(flgs, TR_INT)) {
1115         info[i++] = _("あなたの知能は装備によって影響を受けている。", "Your intelligence is affected by your equipment.");
1116     }
1117     if (have_flag(flgs, TR_WIS)) {
1118         info[i++] = _("あなたの賢さは装備によって影響を受けている。", "Your wisdom is affected by your equipment.");
1119     }
1120     if (have_flag(flgs, TR_DEX)) {
1121         info[i++] = _("あなたの器用さは装備によって影響を受けている。", "Your dexterity is affected by your equipment.");
1122     }
1123     if (have_flag(flgs, TR_CON)) {
1124         info[i++] = _("あなたの耐久力は装備によって影響を受けている。", "Your constitution is affected by your equipment.");
1125     }
1126     if (have_flag(flgs, TR_CHR)) {
1127         info[i++] = _("あなたの魅力は装備によって影響を受けている。", "Your charisma is affected by your equipment.");
1128     }
1129
1130     if (have_flag(flgs, TR_STEALTH)) {
1131         info[i++] = _("あなたの隠密行動能力は装備によって影響を受けている。", "Your stealth is affected by your equipment.");
1132     }
1133     if (have_flag(flgs, TR_SEARCH)) {
1134         info[i++] = _("あなたの探索能力は装備によって影響を受けている。", "Your searching ability is affected by your equipment.");
1135     }
1136     if (have_flag(flgs, TR_INFRA)) {
1137         info[i++] = _("あなたの赤外線視力は装備によって影響を受けている。", "Your infravision is affected by your equipment.");
1138     }
1139     if (have_flag(flgs, TR_TUNNEL)) {
1140         info[i++] = _("あなたの採掘能力は装備によって影響を受けている。", "Your digging ability is affected by your equipment.");
1141     }
1142     if (have_flag(flgs, TR_SPEED)) {
1143         info[i++] = _("あなたのスピードは装備によって影響を受けている。", "Your speed is affected by your equipment.");
1144     }
1145     if (have_flag(flgs, TR_BLOWS)) {
1146         info[i++] = _("あなたの攻撃速度は装備によって影響を受けている。", "Your attack speed is affected by your equipment.");
1147     }
1148
1149     /* Access the current weapon */
1150     o_ptr = &creature_ptr->inventory_list[INVEN_RARM];
1151
1152     /* Analyze the weapon */
1153     if (o_ptr->k_idx) {
1154         /* Indicate Blessing */
1155         if (have_flag(flgs, TR_BLESSED)) {
1156             info[i++] = _("あなたの武器は神の祝福を受けている。", "Your weapon has been blessed by the gods.");
1157         }
1158
1159         if (have_flag(flgs, TR_CHAOTIC)) {
1160             info[i++] = _("あなたの武器はログルスの徴の属性をもつ。", "Your weapon is branded with the Sign of Logrus.");
1161         }
1162
1163         if (have_flag(flgs, TR_IMPACT)) {
1164             info[i++] = _("あなたの武器は打撃で地震を発生することができる。", "The impact of your weapon can cause earthquakes.");
1165         }
1166
1167         if (have_flag(flgs, TR_VORPAL)) {
1168             info[i++] = _("あなたの武器は非常に鋭い。", "Your weapon is very sharp.");
1169         }
1170
1171         if (have_flag(flgs, TR_VAMPIRIC)) {
1172             info[i++] = _("あなたの武器は敵から生命力を吸収する。", "Your weapon drains life from your foes.");
1173         }
1174
1175         /* Special "Attack Bonuses" */
1176         if (have_flag(flgs, TR_BRAND_ACID)) {
1177             info[i++] = _("あなたの武器は敵を溶かす。", "Your weapon melts your foes.");
1178         }
1179         if (have_flag(flgs, TR_BRAND_ELEC)) {
1180             info[i++] = _("あなたの武器は敵を感電させる。", "Your weapon shocks your foes.");
1181         }
1182         if (have_flag(flgs, TR_BRAND_FIRE)) {
1183             info[i++] = _("あなたの武器は敵を燃やす。", "Your weapon burns your foes.");
1184         }
1185         if (have_flag(flgs, TR_BRAND_COLD)) {
1186             info[i++] = _("あなたの武器は敵を凍らせる。", "Your weapon freezes your foes.");
1187         }
1188         if (have_flag(flgs, TR_BRAND_POIS)) {
1189             info[i++] = _("あなたの武器は敵を毒で侵す。", "Your weapon poisons your foes.");
1190         }
1191
1192         /* Special "slay" flags */
1193         if (have_flag(flgs, TR_KILL_ANIMAL)) {
1194             info[i++] = _("あなたの武器は動物の天敵である。", "Your weapon is a great bane of animals.");
1195         } else if (have_flag(flgs, TR_SLAY_ANIMAL)) {
1196             info[i++] = _("あなたの武器は動物に対して強い力を発揮する。", "Your weapon strikes at animals with extra force.");
1197         }
1198         if (have_flag(flgs, TR_KILL_EVIL)) {
1199             info[i++] = _("あなたの武器は邪悪なる存在の天敵である。", "Your weapon is a great bane of evil.");
1200         } else if (have_flag(flgs, TR_SLAY_EVIL)) {
1201             info[i++] = _("あなたの武器は邪悪なる存在に対して強い力を発揮する。", "Your weapon strikes at evil with extra force.");
1202         }
1203         if (have_flag(flgs, TR_KILL_HUMAN)) {
1204             info[i++] = _("あなたの武器は人間の天敵である。", "Your weapon is a great bane of humans.");
1205         } else if (have_flag(flgs, TR_SLAY_HUMAN)) {
1206             info[i++] = _("あなたの武器は人間に対して特に強い力を発揮する。", "Your weapon is especially deadly against humans.");
1207         }
1208         if (have_flag(flgs, TR_KILL_UNDEAD)) {
1209             info[i++] = _("あなたの武器はアンデッドの天敵である。", "Your weapon is a great bane of undead.");
1210         } else if (have_flag(flgs, TR_SLAY_UNDEAD)) {
1211             info[i++] = _("あなたの武器はアンデッドに対して神聖なる力を発揮する。", "Your weapon strikes at undead with holy wrath.");
1212         }
1213         if (have_flag(flgs, TR_KILL_DEMON)) {
1214             info[i++] = _("あなたの武器はデーモンの天敵である。", "Your weapon is a great bane of demons.");
1215         } else if (have_flag(flgs, TR_SLAY_DEMON)) {
1216             info[i++] = _("あなたの武器はデーモンに対して神聖なる力を発揮する。", "Your weapon strikes at demons with holy wrath.");
1217         }
1218         if (have_flag(flgs, TR_KILL_ORC)) {
1219             info[i++] = _("あなたの武器はオークの天敵である。", "Your weapon is a great bane of orcs.");
1220         } else if (have_flag(flgs, TR_SLAY_ORC)) {
1221             info[i++] = _("あなたの武器はオークに対して特に強い力を発揮する。", "Your weapon is especially deadly against orcs.");
1222         }
1223         if (have_flag(flgs, TR_KILL_TROLL)) {
1224             info[i++] = _("あなたの武器はトロルの天敵である。", "Your weapon is a great bane of trolls.");
1225         } else if (have_flag(flgs, TR_SLAY_TROLL)) {
1226             info[i++] = _("あなたの武器はトロルに対して特に強い力を発揮する。", "Your weapon is especially deadly against trolls.");
1227         }
1228         if (have_flag(flgs, TR_KILL_GIANT)) {
1229             info[i++] = _("あなたの武器は巨人の天敵である。", "Your weapon is a great bane of giants.");
1230         } else if (have_flag(flgs, TR_SLAY_GIANT)) {
1231             info[i++] = _("あなたの武器は巨人に対して特に強い力を発揮する。", "Your weapon is especially deadly against giants.");
1232         }
1233         /* Special "kill" flags */
1234         if (have_flag(flgs, TR_KILL_DRAGON)) {
1235             info[i++] = _("あなたの武器はドラゴンの天敵である。", "Your weapon is a great bane of dragons.");
1236         } else if (have_flag(flgs, TR_SLAY_DRAGON)) {
1237             info[i++] = _("あなたの武器はドラゴンに対して特に強い力を発揮する。", "Your weapon is especially deadly against dragons.");
1238         }
1239
1240         if (have_flag(flgs, TR_FORCE_WEAPON)) {
1241             info[i++] = _("あなたの武器はMPを使って攻撃する。", "Your weapon causes greate damages using your MP.");
1242         }
1243         if (have_flag(flgs, TR_THROW)) {
1244             info[i++] = _("あなたの武器は投げやすい。", "Your weapon can be thrown well.");
1245         }
1246     }
1247
1248     screen_save();
1249
1250     /* Erase the screen */
1251     for (k = 1; k < 24; k++)
1252         prt("", k, 13);
1253
1254     /* Label the information */
1255     prt(_("        あなたの状態:", "     Your Attributes:"), 1, 15);
1256
1257     /* We will print on top of the map (column 13) */
1258     for (k = 2, j = 0; j < i; j++) {
1259         /* Show the info */
1260         prt(info[j], k++, 15);
1261
1262         /* Every 20 entries (lines 2 to 21), start over */
1263         if ((k == 22) && (j + 1 < i)) {
1264             prt(_("-- 続く --", "-- more --"), k, 15);
1265             inkey();
1266             for (; k > 2; k--)
1267                 prt("", k, 15);
1268         }
1269     }
1270
1271     /* Pause */
1272     prt(_("[何かキーを押すとゲームに戻ります]", "[Press any key to continue]"), k, 13);
1273     inkey();
1274     screen_load();
1275 }
1276
1277 /*!
1278  * @brief 魔法効果時間のターン数に基づいて表現IDを返す。
1279  * @param dur 効果ターン数
1280  * @return 効果時間の表現ID
1281  */
1282 static int report_magics_aux(int dur)
1283 {
1284     if (dur <= 5) {
1285         return 0;
1286     } else if (dur <= 10) {
1287         return 1;
1288     } else if (dur <= 20) {
1289         return 2;
1290     } else if (dur <= 50) {
1291         return 3;
1292     } else if (dur <= 100) {
1293         return 4;
1294     } else if (dur <= 200) {
1295         return 5;
1296     } else {
1297         return 6;
1298     }
1299 }
1300
1301 static concptr report_magic_durations[] = {
1302 #ifdef JP
1303     "ごく短い間", "少しの間", "しばらくの間", "多少長い間", "長い間", "非常に長い間", "信じ難いほど長い間", "モンスターを攻撃するまで"
1304 #else
1305     "for a short time", "for a little while", "for a while", "for a long while", "for a long time", "for a very long time", "for an incredibly long time",
1306     "until you hit a monster"
1307 #endif
1308
1309 };
1310
1311 /*!
1312  * @brief 現在の一時的効果一覧を返す / Report all currently active magical effects.
1313  * @return なし
1314  */
1315 void report_magics(player_type *creature_ptr)
1316 {
1317     int i = 0, j, k;
1318     char Dummy[80];
1319     concptr info[128];
1320     int info2[128];
1321
1322     if (creature_ptr->blind) {
1323         info2[i] = report_magics_aux(creature_ptr->blind);
1324         info[i++] = _("あなたは目が見えない", "You cannot see");
1325     }
1326     if (creature_ptr->confused) {
1327         info2[i] = report_magics_aux(creature_ptr->confused);
1328         info[i++] = _("あなたは混乱している", "You are confused");
1329     }
1330     if (creature_ptr->afraid) {
1331         info2[i] = report_magics_aux(creature_ptr->afraid);
1332         info[i++] = _("あなたは恐怖に侵されている", "You are terrified");
1333     }
1334     if (creature_ptr->poisoned) {
1335         info2[i] = report_magics_aux(creature_ptr->poisoned);
1336         info[i++] = _("あなたは毒に侵されている", "You are poisoned");
1337     }
1338     if (creature_ptr->image) {
1339         info2[i] = report_magics_aux(creature_ptr->image);
1340         info[i++] = _("あなたは幻覚を見ている", "You are hallucinating");
1341     }
1342     if (creature_ptr->blessed) {
1343         info2[i] = report_magics_aux(creature_ptr->blessed);
1344         info[i++] = _("あなたは高潔さを感じている", "You feel rightous");
1345     }
1346     if (creature_ptr->hero) {
1347         info2[i] = report_magics_aux(creature_ptr->hero);
1348         info[i++] = _("あなたはヒーロー気分だ", "You feel heroic");
1349     }
1350     if (creature_ptr->shero) {
1351         info2[i] = report_magics_aux(creature_ptr->shero);
1352         info[i++] = _("あなたは戦闘狂だ", "You are in a battle rage");
1353     }
1354     if (creature_ptr->protevil) {
1355         info2[i] = report_magics_aux(creature_ptr->protevil);
1356         info[i++] = _("あなたは邪悪なる存在から守られている", "You are protected from evil");
1357     }
1358     if (creature_ptr->shield) {
1359         info2[i] = report_magics_aux(creature_ptr->shield);
1360         info[i++] = _("あなたは神秘のシールドで守られている", "You are protected by a mystic shield");
1361     }
1362     if (creature_ptr->invuln) {
1363         info2[i] = report_magics_aux(creature_ptr->invuln);
1364         info[i++] = _("あなたは無敵だ", "You are invulnerable");
1365     }
1366     if (creature_ptr->wraith_form) {
1367         info2[i] = report_magics_aux(creature_ptr->wraith_form);
1368         info[i++] = _("あなたは幽体化している", "You are incorporeal");
1369     }
1370     if (creature_ptr->special_attack & ATTACK_CONFUSE) {
1371         info2[i] = 7;
1372         info[i++] = _("あなたの手は赤く輝いている", "Your hands are glowing dull red.");
1373     }
1374     if (creature_ptr->word_recall) {
1375         info2[i] = report_magics_aux(creature_ptr->word_recall);
1376         info[i++] = _("この後帰還の詔が発動する", "You are waiting to be recalled");
1377     }
1378     if (creature_ptr->alter_reality) {
1379         info2[i] = report_magics_aux(creature_ptr->alter_reality);
1380         info[i++] = _("この後現実変容が発動する", "You waiting to be altered");
1381     }
1382     if (creature_ptr->oppose_acid) {
1383         info2[i] = report_magics_aux(creature_ptr->oppose_acid);
1384         info[i++] = _("あなたは酸への耐性を持っている", "You are resistant to acid");
1385     }
1386     if (creature_ptr->oppose_elec) {
1387         info2[i] = report_magics_aux(creature_ptr->oppose_elec);
1388         info[i++] = _("あなたは電撃への耐性を持っている", "You are resistant to lightning");
1389     }
1390     if (creature_ptr->oppose_fire) {
1391         info2[i] = report_magics_aux(creature_ptr->oppose_fire);
1392         info[i++] = _("あなたは火への耐性を持っている", "You are resistant to fire");
1393     }
1394     if (creature_ptr->oppose_cold) {
1395         info2[i] = report_magics_aux(creature_ptr->oppose_cold);
1396         info[i++] = _("あなたは冷気への耐性を持っている", "You are resistant to cold");
1397     }
1398     if (creature_ptr->oppose_pois) {
1399         info2[i] = report_magics_aux(creature_ptr->oppose_pois);
1400         info[i++] = _("あなたは毒への耐性を持っている", "You are resistant to poison");
1401     }
1402     screen_save();
1403
1404     /* Erase the screen */
1405     for (k = 1; k < 24; k++)
1406         prt("", k, 13);
1407
1408     /* Label the information */
1409     prt(_("    現在かかっている魔法     :", "     Your Current Magic:"), 1, 15);
1410
1411     /* We will print on top of the map (column 13) */
1412     for (k = 2, j = 0; j < i; j++) {
1413         /* Show the info */
1414         sprintf(Dummy, _("%-28s : 期間 - %s ", "%s %s."), info[j], report_magic_durations[info2[j]]);
1415         prt(Dummy, k++, 15);
1416
1417         /* Every 20 entries (lines 2 to 21), start over */
1418         if ((k == 22) && (j + 1 < i)) {
1419             prt(_("-- 続く --", "-- more --"), k, 15);
1420             inkey();
1421             for (; k > 2; k--)
1422                 prt("", k, 15);
1423         }
1424     }
1425
1426     /* Pause */
1427     prt(_("[何かキーを押すとゲームに戻ります]", "[Press any key to continue]"), k, 13);
1428     inkey();
1429     screen_load();
1430 }