OSDN Git Service

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