OSDN Git Service

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