OSDN Git Service

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