2 * @brief モンスターの思い出表示に必要なフラグ類の処理
7 #include "lore/monster-lore.h"
8 #include "locale/english.h"
9 #include "locale/japanese.h"
10 #include "lore/lore-util.h"
11 #include "monster-race/race-flags-ability1.h"
12 #include "monster-race/race-flags-ability2.h"
13 #include "monster-race/race-flags-resistance.h"
14 #include "monster-race/race-flags1.h"
15 #include "monster-race/race-flags2.h"
16 #include "monster-race/race-flags3.h"
17 #include "monster-race/race-flags4.h"
18 #include "monster-race/race-flags7.h"
19 #include "monster-race/race-indice-types.h"
20 #include "mspell/monster-spell.h"
21 #include "mspell/mspell-damage-calculator.h"
22 #include "mspell/mspell-type.h"
23 #include "term/term-color-types.h"
24 #include "util/util.h"
25 #include "view/display-lore.h"
28 * 英語の複数系記述用マクロ / Pluralizer. Args(count, singular, plural)
30 #define plural(c, s, p) (((c) == 1) ? (s) : (p))
33 * @brief ダイス目を文字列に変換する
34 * @param base_damage 固定値
35 * @param dice_num ダイス数
36 * @param dice_side ダイス面
37 * @param dice_mult ダイス倍率
38 * @param dice_div ダイス除数
39 * @param msg 文字列を格納するポインタ
42 void dice_to_string(int base_damage, int dice_num, int dice_side, int dice_mult, int dice_div, char *msg)
44 char base[80] = "", dice[80] = "", mult[80] = "";
47 sprintf(msg, "%d", base_damage);
52 sprintf(base, "%d+", base_damage);
55 sprintf(dice, "d%d", dice_side);
57 sprintf(dice, "%dd%d", dice_num, dice_side);
59 if (dice_mult != 1 || dice_div != 1) {
61 sprintf(mult, "*%d", dice_mult);
63 sprintf(mult, "*(%d/%d)", dice_mult, dice_div);
66 sprintf(msg, "%s%s%s", base, dice, mult);
70 * @brief モンスターのAC情報を得ることができるかを返す / Determine if the "armor" is known
71 * @param r_idx モンスターの種族ID
72 * @return 敵のACを知る条件が満たされているならTRUEを返す
74 * The higher the level, the fewer kills needed.
76 static bool know_armour(MONRACE_IDX r_idx)
78 monster_race *r_ptr = &r_info[r_idx];
79 DEPTH level = r_ptr->level;
80 MONSTER_NUMBER kills = r_ptr->r_tkills;
82 bool known = (r_ptr->r_cast_spell == MAX_UCHAR) ? TRUE : FALSE;
84 if (cheat_know || known)
86 if (kills > 304 / (4 + level))
88 if (!(r_ptr->flags1 & RF1_UNIQUE))
90 if (kills > 304 / (38 + (5 * level) / 4))
96 * @brief モンスターの打撃威力を知ることができるかどうかを返す
97 * Determine if the "damage" of the given attack is known
98 * @param r_idx モンスターの種族ID
100 * @return 敵のダメージダイスを知る条件が満たされているならTRUEを返す
103 * the higher the level of the monster, the fewer the attacks you need,
104 * the more damage an attack does, the more attacks you need
107 static bool know_damage(MONRACE_IDX r_idx, int i)
109 monster_race *r_ptr = &r_info[r_idx];
110 DEPTH level = r_ptr->level;
111 s32b a = r_ptr->r_blows[i];
113 s32b d1 = r_ptr->blow[i].d_dice;
114 s32b d2 = r_ptr->blow[i].d_side;
117 if (d >= ((4 + level) * MAX_UCHAR) / 80)
118 d = ((4 + level) * MAX_UCHAR - 1) / 80;
119 if ((4 + level) * a > 80 * d)
121 if (!(r_ptr->flags1 & RF1_UNIQUE))
123 if ((4 + level) * (2 * a) > 80 * d)
130 * @brief 文字列にモンスターの攻撃力を加える
131 * @param r_idx モンスターの種族ID
132 * @param SPELL_NUM 呪文番号
134 * @param tmp 返すメッセージを格納する配列
137 static void set_damage(player_type *player_ptr, MONRACE_IDX r_idx, monster_spell_type ms_type, char *msg, char *tmp)
139 int base_damage = monspell_race_damage(player_ptr, ms_type, r_idx, BASE_DAM);
140 int dice_num = monspell_race_damage(player_ptr, ms_type, r_idx, DICE_NUM);
141 int dice_side = monspell_race_damage(player_ptr, ms_type, r_idx, DICE_SIDE);
142 int dice_mult = monspell_race_damage(player_ptr, ms_type, r_idx, DICE_MULT);
143 int dice_div = monspell_race_damage(player_ptr, ms_type, r_idx, DICE_DIV);
144 char dmg_str[80], dice_str[80];
145 dice_to_string(base_damage, dice_num, dice_side, dice_mult, dice_div, dmg_str);
146 sprintf(dice_str, "(%s)", dmg_str);
148 if (know_armour(r_idx))
149 sprintf(tmp, msg, dice_str);
151 sprintf(tmp, msg, "");
154 static void set_drop_flags(lore_type *lore_ptr)
156 if (!lore_ptr->know_everything)
159 lore_ptr->drop_gold = lore_ptr->drop_item = (((lore_ptr->r_ptr->flags1 & RF1_DROP_4D2) ? 8 : 0) + ((lore_ptr->r_ptr->flags1 & RF1_DROP_3D2) ? 6 : 0)
160 + ((lore_ptr->r_ptr->flags1 & RF1_DROP_2D2) ? 4 : 0) + ((lore_ptr->r_ptr->flags1 & RF1_DROP_1D2) ? 2 : 0)
161 + ((lore_ptr->r_ptr->flags1 & RF1_DROP_90) ? 1 : 0) + ((lore_ptr->r_ptr->flags1 & RF1_DROP_60) ? 1 : 0));
163 if (lore_ptr->r_ptr->flags1 & RF1_ONLY_GOLD)
164 lore_ptr->drop_item = 0;
166 if (lore_ptr->r_ptr->flags1 & RF1_ONLY_ITEM)
167 lore_ptr->drop_gold = 0;
169 lore_ptr->flags1 = lore_ptr->r_ptr->flags1;
170 lore_ptr->flags2 = lore_ptr->r_ptr->flags2;
171 lore_ptr->flags3 = lore_ptr->r_ptr->flags3;
172 lore_ptr->flags4 = lore_ptr->r_ptr->flags4;
173 lore_ptr->a_ability_flags1 = lore_ptr->r_ptr->a_ability_flags1;
174 lore_ptr->a_ability_flags2 = lore_ptr->r_ptr->a_ability_flags2;
175 lore_ptr->flagsr = lore_ptr->r_ptr->flagsr;
178 static void set_msex_flags(lore_type *lore_ptr)
180 lore_ptr->msex = MSEX_NONE;
181 if (lore_ptr->r_ptr->flags1 & RF1_FEMALE) {
182 lore_ptr->msex = MSEX_FEMALE;
186 if (lore_ptr->r_ptr->flags1 & RF1_MALE)
187 lore_ptr->msex = MSEX_MALE;
190 static void set_flags1(lore_type *lore_ptr)
192 if (lore_ptr->r_ptr->flags1 & RF1_UNIQUE)
193 lore_ptr->flags1 |= (RF1_UNIQUE);
195 if (lore_ptr->r_ptr->flags1 & RF1_QUESTOR)
196 lore_ptr->flags1 |= (RF1_QUESTOR);
198 if (lore_ptr->r_ptr->flags1 & RF1_MALE)
199 lore_ptr->flags1 |= (RF1_MALE);
201 if (lore_ptr->r_ptr->flags1 & RF1_FEMALE)
202 lore_ptr->flags1 |= (RF1_FEMALE);
204 if (lore_ptr->r_ptr->flags1 & RF1_FRIENDS)
205 lore_ptr->flags1 |= (RF1_FRIENDS);
207 if (lore_ptr->r_ptr->flags1 & RF1_ESCORT)
208 lore_ptr->flags1 |= (RF1_ESCORT);
210 if (lore_ptr->r_ptr->flags1 & RF1_ESCORTS)
211 lore_ptr->flags1 |= (RF1_ESCORTS);
214 static void set_race_flags(lore_type *lore_ptr)
216 if (!lore_ptr->r_ptr->r_tkills && !lore_ptr->know_everything)
219 if (lore_ptr->r_ptr->flags3 & RF3_ORC)
220 lore_ptr->flags3 |= (RF3_ORC);
222 if (lore_ptr->r_ptr->flags3 & RF3_TROLL)
223 lore_ptr->flags3 |= (RF3_TROLL);
225 if (lore_ptr->r_ptr->flags3 & RF3_GIANT)
226 lore_ptr->flags3 |= (RF3_GIANT);
228 if (lore_ptr->r_ptr->flags3 & RF3_DRAGON)
229 lore_ptr->flags3 |= (RF3_DRAGON);
231 if (lore_ptr->r_ptr->flags3 & RF3_DEMON)
232 lore_ptr->flags3 |= (RF3_DEMON);
234 if (lore_ptr->r_ptr->flags3 & RF3_UNDEAD)
235 lore_ptr->flags3 |= (RF3_UNDEAD);
237 if (lore_ptr->r_ptr->flags3 & RF3_EVIL)
238 lore_ptr->flags3 |= (RF3_EVIL);
240 if (lore_ptr->r_ptr->flags3 & RF3_GOOD)
241 lore_ptr->flags3 |= (RF3_GOOD);
243 if (lore_ptr->r_ptr->flags3 & RF3_ANIMAL)
244 lore_ptr->flags3 |= (RF3_ANIMAL);
246 if (lore_ptr->r_ptr->flags3 & RF3_AMBERITE)
247 lore_ptr->flags3 |= (RF3_AMBERITE);
249 if (lore_ptr->r_ptr->flags2 & RF2_HUMAN)
250 lore_ptr->flags2 |= (RF2_HUMAN);
252 if (lore_ptr->r_ptr->flags2 & RF2_QUANTUM)
253 lore_ptr->flags2 |= (RF2_QUANTUM);
255 if (lore_ptr->r_ptr->flags1 & RF1_FORCE_DEPTH)
256 lore_ptr->flags1 |= (RF1_FORCE_DEPTH);
258 if (lore_ptr->r_ptr->flags1 & RF1_FORCE_MAXHP)
259 lore_ptr->flags1 |= (RF1_FORCE_MAXHP);
263 * @brief モンスターの思い出情報を表示するメインルーチン
264 * Hack -- display monster information using "hooked_roff()"
265 * @param r_idx モンスターの種族ID
266 * @param mode 表示オプション
269 * This function should only be called with the cursor placed at the
270 * left edge of the screen, on a cleared line, in which the recall is
271 * to take place. One extra blank line is left after the recall.
273 void process_monster_lore(player_type *player_ptr, MONRACE_IDX r_idx, BIT_FLAGS mode)
276 lore_type *lore_ptr = initialize_lore_type(&tmp_lore, r_idx, mode);
277 for (int n = 0; n < A_MAX; n++) {
278 if (lore_ptr->r_ptr->reinforce_id[n] > 0)
279 lore_ptr->reinforce = TRUE;
282 if (cheat_know || (mode & 0x01))
283 lore_ptr->know_everything = TRUE;
285 set_drop_flags(lore_ptr);
286 set_msex_flags(lore_ptr);
287 set_flags1(lore_ptr);
288 set_race_flags(lore_ptr);
289 display_kill_numbers(lore_ptr);
290 concptr tmp = r_text + lore_ptr->r_ptr->text;
296 if (r_idx == MON_KAGE) {
301 if (!display_where_to_appear(lore_ptr))
304 display_monster_move(lore_ptr);
305 display_monster_never_move(lore_ptr);
307 hooked_roff(_("。", ". "));
308 lore_ptr->old = FALSE;
311 display_lore_this(player_ptr, lore_ptr);
312 display_monster_aura(lore_ptr);
313 if (lore_ptr->flags2 & RF2_REFLECTING)
314 hooked_roff(format(_("%^sは矢の呪文を跳ね返す。", "%^s reflects bolt spells. "), wd_he[lore_ptr->msex]));
316 display_monster_collective(lore_ptr);
318 if (lore_ptr->flags4 & RF4_SHRIEK) {
319 lore_ptr->vp[lore_ptr->vn] = _("悲鳴で助けを求める", "shriek for help");
320 lore_ptr->color[lore_ptr->vn++] = TERM_L_WHITE;
323 if (lore_ptr->flags4 & RF4_ROCKET) {
324 set_damage(player_ptr, r_idx, (MS_ROCKET), _("ロケット%sを発射する", "shoot a rocket%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
325 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
326 lore_ptr->color[lore_ptr->vn++] = TERM_UMBER;
329 if (lore_ptr->flags4 & RF4_SHOOT) {
330 for (int m = 0; m < 4; m++) {
331 if (lore_ptr->r_ptr->blow[m].method != RBM_SHOOT)
334 if (know_armour(r_idx))
336 lore_ptr->tmp_msg[lore_ptr->vn], _("威力 %dd%d の射撃をする", "fire an arrow (Power:%dd%d)"), lore_ptr->r_ptr->blow[m].d_side, lore_ptr->r_ptr->blow[m].d_dice);
338 sprintf(lore_ptr->tmp_msg[lore_ptr->vn], _("射撃をする", "fire an arrow"));
339 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
340 lore_ptr->color[lore_ptr->vn++] = TERM_UMBER;
345 if (lore_ptr->a_ability_flags2 & (RF6_SPECIAL)) {
346 lore_ptr->vp[lore_ptr->vn] = _("特別な行動をする", "do something");
347 lore_ptr->color[lore_ptr->vn++] = TERM_VIOLET;
350 if (lore_ptr->vn > 0) {
351 hooked_roff(format(_("%^sは", "%^s"), wd_he[lore_ptr->msex]));
352 for (int n = 0; n < lore_ptr->vn; n++) {
354 if (n != lore_ptr->vn - 1) {
355 jverb(lore_ptr->vp[n], lore_ptr->jverb_buf, JVERB_OR);
356 hook_c_roff(lore_ptr->color[n], lore_ptr->jverb_buf);
357 hook_c_roff(lore_ptr->color[n], "り");
360 hook_c_roff(lore_ptr->color[n], lore_ptr->vp[n]);
363 hooked_roff(" may ");
364 else if (n < lore_ptr->vn - 1)
369 hook_c_roff(lore_ptr->color[n], lore_ptr->vp[n]);
373 hooked_roff(_("ことがある。", ". "));
377 if (lore_ptr->flags4 & (RF4_BR_ACID)) {
378 set_damage(player_ptr, r_idx, (MS_BR_ACID), _("酸%s", "acid%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
379 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
380 lore_ptr->color[lore_ptr->vn++] = TERM_GREEN;
383 if (lore_ptr->flags4 & (RF4_BR_ELEC)) {
384 set_damage(player_ptr, r_idx, (MS_BR_ELEC), _("稲妻%s", "lightning%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
385 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
386 lore_ptr->color[lore_ptr->vn++] = TERM_BLUE;
389 if (lore_ptr->flags4 & (RF4_BR_FIRE)) {
390 set_damage(player_ptr, r_idx, (MS_BR_FIRE), _("火炎%s", "fire%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
391 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
392 lore_ptr->color[lore_ptr->vn++] = TERM_RED;
395 if (lore_ptr->flags4 & (RF4_BR_COLD)) {
396 set_damage(player_ptr, r_idx, (MS_BR_COLD), _("冷気%s", "frost%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
397 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
398 lore_ptr->color[lore_ptr->vn++] = TERM_L_WHITE;
401 if (lore_ptr->flags4 & (RF4_BR_POIS)) {
402 set_damage(player_ptr, r_idx, (MS_BR_POIS), _("毒%s", "poison%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
403 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
404 lore_ptr->color[lore_ptr->vn++] = TERM_L_GREEN;
407 if (lore_ptr->flags4 & (RF4_BR_NETH)) {
408 set_damage(player_ptr, r_idx, (MS_BR_NETHER), _("地獄%s", "nether%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
409 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
410 lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
413 if (lore_ptr->flags4 & (RF4_BR_LITE)) {
414 set_damage(player_ptr, r_idx, (MS_BR_LITE), _("閃光%s", "light%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
415 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
416 lore_ptr->color[lore_ptr->vn++] = TERM_YELLOW;
419 if (lore_ptr->flags4 & (RF4_BR_DARK)) {
420 set_damage(player_ptr, r_idx, (MS_BR_DARK), _("暗黒%s", "darkness%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
421 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
422 lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
425 if (lore_ptr->flags4 & (RF4_BR_CONF)) {
426 set_damage(player_ptr, r_idx, (MS_BR_CONF), _("混乱%s", "confusion%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
427 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
428 lore_ptr->color[lore_ptr->vn++] = TERM_L_UMBER;
431 if (lore_ptr->flags4 & (RF4_BR_SOUN)) {
432 set_damage(player_ptr, r_idx, (MS_BR_SOUND), _("轟音%s", "sound%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
433 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
434 lore_ptr->color[lore_ptr->vn++] = TERM_ORANGE;
437 if (lore_ptr->flags4 & (RF4_BR_CHAO)) {
438 set_damage(player_ptr, r_idx, (MS_BR_CHAOS), _("カオス%s", "chaos%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
439 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
440 lore_ptr->color[lore_ptr->vn++] = TERM_VIOLET;
443 if (lore_ptr->flags4 & (RF4_BR_DISE)) {
444 set_damage(player_ptr, r_idx, (MS_BR_DISEN), _("劣化%s", "disenchantment%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
445 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
446 lore_ptr->color[lore_ptr->vn++] = TERM_VIOLET;
449 if (lore_ptr->flags4 & (RF4_BR_NEXU)) {
450 set_damage(player_ptr, r_idx, (MS_BR_NEXUS), _("因果混乱%s", "nexus%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
451 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
452 lore_ptr->color[lore_ptr->vn++] = TERM_VIOLET;
455 if (lore_ptr->flags4 & (RF4_BR_TIME)) {
456 set_damage(player_ptr, r_idx, (MS_BR_TIME), _("時間逆転%s", "time%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
457 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
458 lore_ptr->color[lore_ptr->vn++] = TERM_L_BLUE;
461 if (lore_ptr->flags4 & (RF4_BR_INER)) {
462 set_damage(player_ptr, r_idx, (MS_BR_INERTIA), _("遅鈍%s", "inertia%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
463 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
464 lore_ptr->color[lore_ptr->vn++] = TERM_SLATE;
467 if (lore_ptr->flags4 & (RF4_BR_GRAV)) {
468 set_damage(player_ptr, r_idx, (MS_BR_GRAVITY), _("重力%s", "gravity%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
469 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
470 lore_ptr->color[lore_ptr->vn++] = TERM_SLATE;
473 if (lore_ptr->flags4 & (RF4_BR_SHAR)) {
474 set_damage(player_ptr, r_idx, (MS_BR_SHARDS), _("破片%s", "shards%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
475 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
476 lore_ptr->color[lore_ptr->vn++] = TERM_L_UMBER;
479 if (lore_ptr->flags4 & (RF4_BR_PLAS)) {
480 set_damage(player_ptr, r_idx, (MS_BR_PLASMA), _("プラズマ%s", "plasma%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
481 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
482 lore_ptr->color[lore_ptr->vn++] = TERM_L_RED;
485 if (lore_ptr->flags4 & (RF4_BR_WALL)) {
486 set_damage(player_ptr, r_idx, (MS_BR_FORCE), _("フォース%s", "force%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
487 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
488 lore_ptr->color[lore_ptr->vn++] = TERM_UMBER;
491 if (lore_ptr->flags4 & (RF4_BR_MANA)) {
492 set_damage(player_ptr, r_idx, (MS_BR_MANA), _("魔力%s", "mana%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
493 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
494 lore_ptr->color[lore_ptr->vn++] = TERM_L_BLUE;
497 if (lore_ptr->flags4 & (RF4_BR_NUKE)) {
498 set_damage(player_ptr, r_idx, (MS_BR_NUKE), _("放射性廃棄物%s", "toxic waste%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
499 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
500 lore_ptr->color[lore_ptr->vn++] = TERM_L_GREEN;
503 if (lore_ptr->flags4 & (RF4_BR_DISI)) {
504 set_damage(player_ptr, r_idx, (MS_BR_DISI), _("分解%s", "disintegration%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
505 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
506 lore_ptr->color[lore_ptr->vn++] = TERM_SLATE;
510 if (lore_ptr->vn > 0) {
512 hooked_roff(format(_("%^sは", "%^s"), wd_he[lore_ptr->msex]));
513 for (int n = 0; n < lore_ptr->vn; n++) {
519 hooked_roff(" may breathe ");
520 else if (n < lore_ptr->vn - 1)
525 hook_c_roff(lore_ptr->color[n], lore_ptr->vp[n]);
529 hooked_roff("のブレスを吐くことがある");
534 if (lore_ptr->a_ability_flags1 & (RF5_BA_ACID)) {
535 set_damage(player_ptr, r_idx, (MS_BALL_ACID), _("アシッド・ボール%s", "produce acid balls%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
536 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
537 lore_ptr->color[lore_ptr->vn++] = TERM_GREEN;
540 if (lore_ptr->a_ability_flags1 & (RF5_BA_ELEC)) {
541 set_damage(player_ptr, r_idx, (MS_BALL_ELEC), _("サンダー・ボール%s", "produce lightning balls%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
542 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
543 lore_ptr->color[lore_ptr->vn++] = TERM_BLUE;
546 if (lore_ptr->a_ability_flags1 & (RF5_BA_FIRE)) {
547 set_damage(player_ptr, r_idx, (MS_BALL_FIRE), _("ファイア・ボール%s", "produce fire balls%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
548 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
549 lore_ptr->color[lore_ptr->vn++] = TERM_RED;
552 if (lore_ptr->a_ability_flags1 & (RF5_BA_COLD)) {
553 set_damage(player_ptr, r_idx, (MS_BALL_COLD), _("アイス・ボール%s", "produce frost balls%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
554 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
555 lore_ptr->color[lore_ptr->vn++] = TERM_L_WHITE;
558 if (lore_ptr->a_ability_flags1 & (RF5_BA_POIS)) {
559 set_damage(player_ptr, r_idx, (MS_BALL_POIS), _("悪臭雲%s", "produce poison balls%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
560 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
561 lore_ptr->color[lore_ptr->vn++] = TERM_L_GREEN;
564 if (lore_ptr->a_ability_flags1 & (RF5_BA_NETH)) {
565 set_damage(player_ptr, r_idx, (MS_BALL_NETHER), _("地獄球%s", "produce nether balls%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
566 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
567 lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
570 if (lore_ptr->a_ability_flags1 & (RF5_BA_WATE)) {
571 set_damage(player_ptr, r_idx, (MS_BALL_WATER), _("ウォーター・ボール%s", "produce water balls%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
572 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
573 lore_ptr->color[lore_ptr->vn++] = TERM_BLUE;
576 if (lore_ptr->flags4 & (RF4_BA_NUKE)) {
577 set_damage(player_ptr, r_idx, (MS_BALL_NUKE), _("放射能球%s", "produce balls of radiation%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
578 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
579 lore_ptr->color[lore_ptr->vn++] = TERM_L_GREEN;
582 if (lore_ptr->a_ability_flags1 & (RF5_BA_MANA)) {
583 set_damage(player_ptr, r_idx, (MS_BALL_MANA), _("魔力の嵐%s", "invoke mana storms%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
584 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
585 lore_ptr->color[lore_ptr->vn++] = TERM_L_BLUE;
588 if (lore_ptr->a_ability_flags1 & (RF5_BA_DARK)) {
589 set_damage(player_ptr, r_idx, (MS_BALL_DARK), _("暗黒の嵐%s", "invoke darkness storms%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
590 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
591 lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
594 if (lore_ptr->a_ability_flags1 & (RF5_BA_LITE)) {
595 set_damage(player_ptr, r_idx, (MS_STARBURST), _("スターバースト%s", "invoke starburst%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
596 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
597 lore_ptr->color[lore_ptr->vn++] = TERM_YELLOW;
600 if (lore_ptr->flags4 & (RF4_BA_CHAO)) {
601 set_damage(player_ptr, r_idx, (MS_BALL_CHAOS), _("純ログルス%s", "invoke raw Logrus%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
602 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
603 lore_ptr->color[lore_ptr->vn++] = TERM_VIOLET;
606 if (lore_ptr->a_ability_flags2 & (RF6_HAND_DOOM)) {
607 lore_ptr->vp[lore_ptr->vn] = _("破滅の手(40%-60%)", "invoke the Hand of Doom(40%-60%)");
608 lore_ptr->color[lore_ptr->vn++] = TERM_VIOLET;
611 if (lore_ptr->a_ability_flags2 & (RF6_PSY_SPEAR)) {
612 set_damage(player_ptr, r_idx, (MS_PSY_SPEAR), _("光の剣%s", "psycho-spear%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
613 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
614 lore_ptr->color[lore_ptr->vn++] = TERM_YELLOW;
617 if (lore_ptr->a_ability_flags1 & (RF5_DRAIN_MANA)) {
618 set_damage(player_ptr, r_idx, (MS_DRAIN_MANA), _("魔力吸収%s", "drain mana%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
619 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
620 lore_ptr->color[lore_ptr->vn++] = TERM_SLATE;
623 if (lore_ptr->a_ability_flags1 & (RF5_MIND_BLAST)) {
624 set_damage(player_ptr, r_idx, (MS_MIND_BLAST), _("精神攻撃%s", "cause mind blasting%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
625 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
626 lore_ptr->color[lore_ptr->vn++] = TERM_L_RED;
629 if (lore_ptr->a_ability_flags1 & (RF5_BRAIN_SMASH)) {
630 set_damage(player_ptr, r_idx, (MS_BRAIN_SMASH), _("脳攻撃%s", "cause brain smashing%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
631 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
632 lore_ptr->color[lore_ptr->vn++] = TERM_RED;
635 if (lore_ptr->a_ability_flags1 & (RF5_CAUSE_1)) {
636 set_damage(player_ptr, r_idx, (MS_CAUSE_1), _("軽傷+呪い%s", "cause light wounds and cursing%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
637 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
638 lore_ptr->color[lore_ptr->vn++] = TERM_L_WHITE;
641 if (lore_ptr->a_ability_flags1 & (RF5_CAUSE_2)) {
642 set_damage(player_ptr, r_idx, (MS_CAUSE_2), _("重傷+呪い%s", "cause serious wounds and cursing%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
643 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
644 lore_ptr->color[lore_ptr->vn++] = TERM_L_WHITE;
647 if (lore_ptr->a_ability_flags1 & (RF5_CAUSE_3)) {
648 set_damage(player_ptr, r_idx, (MS_CAUSE_3), _("致命傷+呪い%s", "cause critical wounds and cursing%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
649 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
650 lore_ptr->color[lore_ptr->vn++] = TERM_L_WHITE;
653 if (lore_ptr->a_ability_flags1 & (RF5_CAUSE_4)) {
654 set_damage(player_ptr, r_idx, (MS_CAUSE_4), _("秘孔を突く%s", "cause mortal wounds%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
655 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
656 lore_ptr->color[lore_ptr->vn++] = TERM_L_WHITE;
659 if (lore_ptr->a_ability_flags1 & (RF5_BO_ACID)) {
660 set_damage(player_ptr, r_idx, (MS_BOLT_ACID), _("アシッド・ボルト%s", "produce acid bolts%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
661 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
662 lore_ptr->color[lore_ptr->vn++] = TERM_GREEN;
665 if (lore_ptr->a_ability_flags1 & (RF5_BO_ELEC)) {
666 set_damage(player_ptr, r_idx, (MS_BOLT_ELEC), _("サンダー・ボルト%s", "produce lightning bolts%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
667 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
668 lore_ptr->color[lore_ptr->vn++] = TERM_BLUE;
671 if (lore_ptr->a_ability_flags1 & (RF5_BO_FIRE)) {
672 set_damage(player_ptr, r_idx, (MS_BOLT_FIRE), _("ファイア・ボルト%s", "produce fire bolts%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
673 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
674 lore_ptr->color[lore_ptr->vn++] = TERM_RED;
677 if (lore_ptr->a_ability_flags1 & (RF5_BO_COLD)) {
678 set_damage(player_ptr, r_idx, (MS_BOLT_COLD), _("アイス・ボルト%s", "produce frost bolts%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
679 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
680 lore_ptr->color[lore_ptr->vn++] = TERM_L_WHITE;
683 if (lore_ptr->a_ability_flags1 & (RF5_BO_NETH)) {
684 set_damage(player_ptr, r_idx, (MS_BOLT_NETHER), _("地獄の矢%s", "produce nether bolts%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
685 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
686 lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
689 if (lore_ptr->a_ability_flags1 & (RF5_BO_WATE)) {
690 set_damage(player_ptr, r_idx, (MS_BOLT_WATER), _("ウォーター・ボルト%s", "produce water bolts%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
691 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
692 lore_ptr->color[lore_ptr->vn++] = TERM_BLUE;
695 if (lore_ptr->a_ability_flags1 & (RF5_BO_MANA)) {
696 set_damage(player_ptr, r_idx, (MS_BOLT_MANA), _("魔力の矢%s", "produce mana bolts%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
697 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
698 lore_ptr->color[lore_ptr->vn++] = TERM_L_BLUE;
701 if (lore_ptr->a_ability_flags1 & (RF5_BO_PLAS)) {
702 set_damage(player_ptr, r_idx, (MS_BOLT_PLASMA), _("プラズマ・ボルト%s", "produce plasma bolts%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
703 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
704 lore_ptr->color[lore_ptr->vn++] = TERM_L_RED;
707 if (lore_ptr->a_ability_flags1 & (RF5_BO_ICEE)) {
708 set_damage(player_ptr, r_idx, (MS_BOLT_ICE), _("極寒の矢%s", "produce ice bolts%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
709 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
710 lore_ptr->color[lore_ptr->vn++] = TERM_WHITE;
713 if (lore_ptr->a_ability_flags1 & (RF5_MISSILE)) {
714 set_damage(player_ptr, r_idx, (MS_MAGIC_MISSILE), _("マジックミサイル%s", "produce magic missiles%s"), lore_ptr->tmp_msg[lore_ptr->vn]);
715 lore_ptr->vp[lore_ptr->vn] = lore_ptr->tmp_msg[lore_ptr->vn];
716 lore_ptr->color[lore_ptr->vn++] = TERM_SLATE;
719 if (lore_ptr->a_ability_flags1 & (RF5_SCARE)) {
720 lore_ptr->vp[lore_ptr->vn] = _("恐怖", "terrify");
721 lore_ptr->color[lore_ptr->vn++] = TERM_SLATE;
723 if (lore_ptr->a_ability_flags1 & (RF5_BLIND)) {
724 lore_ptr->vp[lore_ptr->vn] = _("目くらまし", "blind");
725 lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
727 if (lore_ptr->a_ability_flags1 & (RF5_CONF)) {
728 lore_ptr->vp[lore_ptr->vn] = _("混乱", "confuse");
729 lore_ptr->color[lore_ptr->vn++] = TERM_L_UMBER;
731 if (lore_ptr->a_ability_flags1 & (RF5_SLOW)) {
732 lore_ptr->vp[lore_ptr->vn] = _("減速", "slow");
733 lore_ptr->color[lore_ptr->vn++] = TERM_UMBER;
735 if (lore_ptr->a_ability_flags1 & (RF5_HOLD)) {
736 lore_ptr->vp[lore_ptr->vn] = _("麻痺", "paralyze");
737 lore_ptr->color[lore_ptr->vn++] = TERM_RED;
739 if (lore_ptr->a_ability_flags2 & (RF6_HASTE)) {
740 lore_ptr->vp[lore_ptr->vn] = _("加速", "haste-self");
741 lore_ptr->color[lore_ptr->vn++] = TERM_L_GREEN;
743 if (lore_ptr->a_ability_flags2 & (RF6_HEAL)) {
744 lore_ptr->vp[lore_ptr->vn] = _("治癒", "heal-self");
745 lore_ptr->color[lore_ptr->vn++] = TERM_WHITE;
747 if (lore_ptr->a_ability_flags2 & (RF6_INVULNER)) {
748 lore_ptr->vp[lore_ptr->vn] = _("無敵化", "make invulnerable");
749 lore_ptr->color[lore_ptr->vn++] = TERM_WHITE;
751 if (lore_ptr->flags4 & RF4_DISPEL) {
752 lore_ptr->vp[lore_ptr->vn] = _("魔力消去", "dispel-magic");
753 lore_ptr->color[lore_ptr->vn++] = TERM_L_WHITE;
755 if (lore_ptr->a_ability_flags2 & (RF6_BLINK)) {
756 lore_ptr->vp[lore_ptr->vn] = _("ショートテレポート", "blink-self");
757 lore_ptr->color[lore_ptr->vn++] = TERM_UMBER;
759 if (lore_ptr->a_ability_flags2 & (RF6_TPORT)) {
760 lore_ptr->vp[lore_ptr->vn] = _("テレポート", "teleport-self");
761 lore_ptr->color[lore_ptr->vn++] = TERM_ORANGE;
763 if (lore_ptr->a_ability_flags2 & (RF6_WORLD)) {
764 lore_ptr->vp[lore_ptr->vn] = _("時を止める", "stop the time");
765 lore_ptr->color[lore_ptr->vn++] = TERM_L_BLUE;
767 if (lore_ptr->a_ability_flags2 & (RF6_TELE_TO)) {
768 lore_ptr->vp[lore_ptr->vn] = _("テレポートバック", "teleport to");
769 lore_ptr->color[lore_ptr->vn++] = TERM_L_UMBER;
771 if (lore_ptr->a_ability_flags2 & (RF6_TELE_AWAY)) {
772 lore_ptr->vp[lore_ptr->vn] = _("テレポートアウェイ", "teleport away");
773 lore_ptr->color[lore_ptr->vn++] = TERM_UMBER;
775 if (lore_ptr->a_ability_flags2 & (RF6_TELE_LEVEL)) {
776 lore_ptr->vp[lore_ptr->vn] = _("テレポート・レベル", "teleport level");
777 lore_ptr->color[lore_ptr->vn++] = TERM_ORANGE;
780 if (lore_ptr->a_ability_flags2 & (RF6_DARKNESS)) {
781 if ((player_ptr->pclass != CLASS_NINJA) || (lore_ptr->r_ptr->flags3 & (RF3_UNDEAD | RF3_HURT_LITE)) || (lore_ptr->r_ptr->flags7 & RF7_DARK_MASK)) {
782 lore_ptr->vp[lore_ptr->vn] = _("暗闇", "create darkness");
783 lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
785 lore_ptr->vp[lore_ptr->vn] = _("閃光", "create light");
786 lore_ptr->color[lore_ptr->vn++] = TERM_YELLOW;
790 if (lore_ptr->a_ability_flags2 & (RF6_TRAPS)) {
791 lore_ptr->vp[lore_ptr->vn] = _("トラップ", "create traps");
792 lore_ptr->color[lore_ptr->vn++] = TERM_BLUE;
794 if (lore_ptr->a_ability_flags2 & (RF6_FORGET)) {
795 lore_ptr->vp[lore_ptr->vn] = _("記憶消去", "cause amnesia");
796 lore_ptr->color[lore_ptr->vn++] = TERM_BLUE;
798 if (lore_ptr->a_ability_flags2 & (RF6_RAISE_DEAD)) {
799 lore_ptr->vp[lore_ptr->vn] = _("死者復活", "raise dead");
800 lore_ptr->color[lore_ptr->vn++] = TERM_RED;
802 if (lore_ptr->a_ability_flags2 & (RF6_S_MONSTER)) {
803 lore_ptr->vp[lore_ptr->vn] = _("モンスター一体召喚", "summon a monster");
804 lore_ptr->color[lore_ptr->vn++] = TERM_SLATE;
806 if (lore_ptr->a_ability_flags2 & (RF6_S_MONSTERS)) {
807 lore_ptr->vp[lore_ptr->vn] = _("モンスター複数召喚", "summon monsters");
808 lore_ptr->color[lore_ptr->vn++] = TERM_L_WHITE;
810 if (lore_ptr->a_ability_flags2 & (RF6_S_KIN)) {
811 lore_ptr->vp[lore_ptr->vn] = _("救援召喚", "summon aid");
812 lore_ptr->color[lore_ptr->vn++] = TERM_ORANGE;
814 if (lore_ptr->a_ability_flags2 & (RF6_S_ANT)) {
815 lore_ptr->vp[lore_ptr->vn] = _("アリ召喚", "summon ants");
816 lore_ptr->color[lore_ptr->vn++] = TERM_RED;
818 if (lore_ptr->a_ability_flags2 & (RF6_S_SPIDER)) {
819 lore_ptr->vp[lore_ptr->vn] = _("クモ召喚", "summon spiders");
820 lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
822 if (lore_ptr->a_ability_flags2 & (RF6_S_HOUND)) {
823 lore_ptr->vp[lore_ptr->vn] = _("ハウンド召喚", "summon hounds");
824 lore_ptr->color[lore_ptr->vn++] = TERM_L_UMBER;
826 if (lore_ptr->a_ability_flags2 & (RF6_S_HYDRA)) {
827 lore_ptr->vp[lore_ptr->vn] = _("ヒドラ召喚", "summon hydras");
828 lore_ptr->color[lore_ptr->vn++] = TERM_L_GREEN;
830 if (lore_ptr->a_ability_flags2 & (RF6_S_ANGEL)) {
831 lore_ptr->vp[lore_ptr->vn] = _("天使一体召喚", "summon an angel");
832 lore_ptr->color[lore_ptr->vn++] = TERM_YELLOW;
834 if (lore_ptr->a_ability_flags2 & (RF6_S_DEMON)) {
835 lore_ptr->vp[lore_ptr->vn] = _("デーモン一体召喚", "summon a demon");
836 lore_ptr->color[lore_ptr->vn++] = TERM_L_RED;
838 if (lore_ptr->a_ability_flags2 & (RF6_S_UNDEAD)) {
839 lore_ptr->vp[lore_ptr->vn] = _("アンデッド一体召喚", "summon an undead");
840 lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
842 if (lore_ptr->a_ability_flags2 & (RF6_S_DRAGON)) {
843 lore_ptr->vp[lore_ptr->vn] = _("ドラゴン一体召喚", "summon a dragon");
844 lore_ptr->color[lore_ptr->vn++] = TERM_ORANGE;
846 if (lore_ptr->a_ability_flags2 & (RF6_S_HI_UNDEAD)) {
847 lore_ptr->vp[lore_ptr->vn] = _("強力なアンデッド召喚", "summon Greater Undead");
848 lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
850 if (lore_ptr->a_ability_flags2 & (RF6_S_HI_DRAGON)) {
851 lore_ptr->vp[lore_ptr->vn] = _("古代ドラゴン召喚", "summon Ancient Dragons");
852 lore_ptr->color[lore_ptr->vn++] = TERM_ORANGE;
854 if (lore_ptr->a_ability_flags2 & (RF6_S_CYBER)) {
855 lore_ptr->vp[lore_ptr->vn] = _("サイバーデーモン召喚", "summon Cyberdemons");
856 lore_ptr->color[lore_ptr->vn++] = TERM_UMBER;
858 if (lore_ptr->a_ability_flags2 & (RF6_S_AMBERITES)) {
859 lore_ptr->vp[lore_ptr->vn] = _("アンバーの王族召喚", "summon Lords of Amber");
860 lore_ptr->color[lore_ptr->vn++] = TERM_VIOLET;
862 if (lore_ptr->a_ability_flags2 & (RF6_S_UNIQUE)) {
863 lore_ptr->vp[lore_ptr->vn] = _("ユニーク・モンスター召喚", "summon Unique Monsters");
864 lore_ptr->color[lore_ptr->vn++] = TERM_VIOLET;
871 hooked_roff(_("、なおかつ", ", and is also"));
873 hooked_roff(format(_("%^sは", "%^s is"), wd_he[lore_ptr->msex]));
877 if (lore_ptr->flags2 & (RF2_SMART))
878 hook_c_roff(TERM_YELLOW, "的確に");
879 hooked_roff("魔法を使うことができ、");
881 hooked_roff(" magical, casting spells");
882 if (lore_ptr->flags2 & RF2_SMART)
883 hook_c_roff(TERM_YELLOW, " intelligently");
886 for (int n = 0; n < lore_ptr->vn; n++) {
892 hooked_roff(" which ");
893 else if (n < lore_ptr->vn - 1)
898 hook_c_roff(lore_ptr->color[n], lore_ptr->vp[n]);
902 hooked_roff("の呪文を唱えることがある");
906 if (breath || magic) {
907 int m = lore_ptr->r_ptr->r_cast_spell;
908 int n = lore_ptr->r_ptr->freq_spell;
909 if (m > 100 || lore_ptr->know_everything) {
910 hooked_roff(format(_("(確率:1/%d)", "; 1 time in %d"), 100 / n));
912 n = ((n + 9) / 10) * 10;
913 hooked_roff(format(_("(確率:約1/%d)", "; about 1 time in %d"), 100 / n));
916 hooked_roff(_("。", ". "));
919 if (lore_ptr->know_everything || know_armour(r_idx)) {
920 hooked_roff(format(_("%^sは AC%d の防御力と", "%^s has an armor rating of %d"), wd_he[lore_ptr->msex], lore_ptr->r_ptr->ac));
922 if ((lore_ptr->flags1 & RF1_FORCE_MAXHP) || (lore_ptr->r_ptr->hside == 1)) {
923 u32b hp = lore_ptr->r_ptr->hdice * (lore_ptr->nightmare ? 2 : 1) * lore_ptr->r_ptr->hside;
924 hooked_roff(format(_(" %d の体力がある。", " and a life rating of %d. "), (s16b)MIN(30000, hp)));
927 _(" %dd%d の体力がある。", " and a life rating of %dd%d. "), lore_ptr->r_ptr->hdice * (lore_ptr->nightmare ? 2 : 1), lore_ptr->r_ptr->hside));
932 if (lore_ptr->flags7 & (RF7_HAS_LITE_1 | RF7_HAS_LITE_2)) {
933 lore_ptr->vp[lore_ptr->vn] = _("ダンジョンを照らす", "illuminate the dungeon");
934 lore_ptr->color[lore_ptr->vn++] = TERM_WHITE;
936 if (lore_ptr->flags7 & (RF7_HAS_DARK_1 | RF7_HAS_DARK_2)) {
937 lore_ptr->vp[lore_ptr->vn] = _("ダンジョンを暗くする", "darken the dungeon");
938 lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
940 if (lore_ptr->flags2 & RF2_OPEN_DOOR) {
941 lore_ptr->vp[lore_ptr->vn] = _("ドアを開ける", "open doors");
942 lore_ptr->color[lore_ptr->vn++] = TERM_WHITE;
944 if (lore_ptr->flags2 & RF2_BASH_DOOR) {
945 lore_ptr->vp[lore_ptr->vn] = _("ドアを打ち破る", "bash down doors");
946 lore_ptr->color[lore_ptr->vn++] = TERM_WHITE;
948 if (lore_ptr->flags7 & RF7_CAN_FLY) {
949 lore_ptr->vp[lore_ptr->vn] = _("空を飛ぶ", "fly");
950 lore_ptr->color[lore_ptr->vn++] = TERM_WHITE;
952 if (lore_ptr->flags7 & RF7_CAN_SWIM) {
953 lore_ptr->vp[lore_ptr->vn] = _("水を渡る", "swim");
954 lore_ptr->color[lore_ptr->vn++] = TERM_WHITE;
956 if (lore_ptr->flags2 & RF2_PASS_WALL) {
957 lore_ptr->vp[lore_ptr->vn] = _("壁をすり抜ける", "pass through walls");
958 lore_ptr->color[lore_ptr->vn++] = TERM_WHITE;
960 if (lore_ptr->flags2 & RF2_KILL_WALL) {
961 lore_ptr->vp[lore_ptr->vn] = _("壁を掘り進む", "bore through walls");
962 lore_ptr->color[lore_ptr->vn++] = TERM_WHITE;
964 if (lore_ptr->flags2 & RF2_MOVE_BODY) {
965 lore_ptr->vp[lore_ptr->vn] = _("弱いモンスターを押しのける", "push past weaker monsters");
966 lore_ptr->color[lore_ptr->vn++] = TERM_WHITE;
968 if (lore_ptr->flags2 & RF2_KILL_BODY) {
969 lore_ptr->vp[lore_ptr->vn] = _("弱いモンスターを倒す", "destroy weaker monsters");
970 lore_ptr->color[lore_ptr->vn++] = TERM_WHITE;
972 if (lore_ptr->flags2 & RF2_TAKE_ITEM) {
973 lore_ptr->vp[lore_ptr->vn] = _("アイテムを拾う", "pick up objects");
974 lore_ptr->color[lore_ptr->vn++] = TERM_WHITE;
976 if (lore_ptr->flags2 & RF2_KILL_ITEM) {
977 lore_ptr->vp[lore_ptr->vn] = _("アイテムを壊す", "destroy objects");
978 lore_ptr->color[lore_ptr->vn++] = TERM_WHITE;
981 if (lore_ptr->vn > 0) {
982 hooked_roff(format(_("%^sは", "%^s"), wd_he[lore_ptr->msex]));
983 for (int n = 0; n < lore_ptr->vn; n++) {
985 if (n != lore_ptr->vn - 1) {
986 jverb(lore_ptr->vp[n], lore_ptr->jverb_buf, JVERB_AND);
987 hook_c_roff(lore_ptr->color[n], lore_ptr->jverb_buf);
990 hook_c_roff(lore_ptr->color[n], lore_ptr->vp[n]);
994 hooked_roff(" can ");
995 else if (n < lore_ptr->vn - 1)
998 hooked_roff(" and ");
1000 hook_c_roff(lore_ptr->color[n], lore_ptr->vp[n]);
1004 hooked_roff(_("ことができる。", ". "));
1007 if (lore_ptr->flags7 & RF7_AQUATIC) {
1008 hooked_roff(format(_("%^sは水中に棲んでいる。", "%^s lives in water. "), wd_he[lore_ptr->msex]));
1011 if (lore_ptr->flags7 & (RF7_SELF_LITE_1 | RF7_SELF_LITE_2)) {
1012 hooked_roff(format(_("%^sは光っている。", "%^s is shining. "), wd_he[lore_ptr->msex]));
1015 if (lore_ptr->flags7 & (RF7_SELF_DARK_1 | RF7_SELF_DARK_2)) {
1016 hook_c_roff(TERM_L_DARK, format(_("%^sは暗黒に包まれている。", "%^s is surrounded by darkness. "), wd_he[lore_ptr->msex]));
1019 if (lore_ptr->flags2 & RF2_INVISIBLE) {
1020 hooked_roff(format(_("%^sは透明で目に見えない。", "%^s is invisible. "), wd_he[lore_ptr->msex]));
1023 if (lore_ptr->flags2 & RF2_COLD_BLOOD) {
1024 hooked_roff(format(_("%^sは冷血動物である。", "%^s is cold blooded. "), wd_he[lore_ptr->msex]));
1027 if (lore_ptr->flags2 & RF2_EMPTY_MIND) {
1028 hooked_roff(format(_("%^sはテレパシーでは感知できない。", "%^s is not detected by telepathy. "), wd_he[lore_ptr->msex]));
1029 } else if (lore_ptr->flags2 & RF2_WEIRD_MIND) {
1030 hooked_roff(format(_("%^sはまれにテレパシーで感知できる。", "%^s is rarely detected by telepathy. "), wd_he[lore_ptr->msex]));
1033 if (lore_ptr->flags2 & RF2_MULTIPLY) {
1034 hook_c_roff(TERM_L_UMBER, format(_("%^sは爆発的に増殖する。", "%^s breeds explosively. "), wd_he[lore_ptr->msex]));
1037 if (lore_ptr->flags2 & RF2_REGENERATE) {
1038 hook_c_roff(TERM_L_WHITE, format(_("%^sは素早く体力を回復する。", "%^s regenerates quickly. "), wd_he[lore_ptr->msex]));
1041 if (lore_ptr->flags7 & RF7_RIDING) {
1042 hook_c_roff(TERM_SLATE, format(_("%^sに乗ることができる。", "%^s is suitable for riding. "), wd_he[lore_ptr->msex]));
1046 if (lore_ptr->flags3 & RF3_HURT_ROCK) {
1047 lore_ptr->vp[lore_ptr->vn] = _("岩を除去するもの", "rock remover");
1048 lore_ptr->color[lore_ptr->vn++] = TERM_UMBER;
1050 if (lore_ptr->flags3 & RF3_HURT_LITE) {
1051 lore_ptr->vp[lore_ptr->vn] = _("明るい光", "bright light");
1052 lore_ptr->color[lore_ptr->vn++] = TERM_YELLOW;
1054 if (lore_ptr->flags3 & RF3_HURT_FIRE) {
1055 lore_ptr->vp[lore_ptr->vn] = _("炎", "fire");
1056 lore_ptr->color[lore_ptr->vn++] = TERM_RED;
1058 if (lore_ptr->flags3 & RF3_HURT_COLD) {
1059 lore_ptr->vp[lore_ptr->vn] = _("冷気", "cold");
1060 lore_ptr->color[lore_ptr->vn++] = TERM_L_WHITE;
1063 if (lore_ptr->vn > 0) {
1064 hooked_roff(format(_("%^sには", "%^s"), wd_he[lore_ptr->msex]));
1066 for (int n = 0; n < lore_ptr->vn; n++) {
1072 hooked_roff(" is hurt by ");
1073 else if (n < lore_ptr->vn - 1)
1076 hooked_roff(" and ");
1078 hook_c_roff(lore_ptr->color[n], lore_ptr->vp[n]);
1081 hooked_roff(_("でダメージを与えられる。", ". "));
1085 if (lore_ptr->flagsr & RFR_IM_ACID) {
1086 lore_ptr->vp[lore_ptr->vn] = _("酸", "acid");
1087 lore_ptr->color[lore_ptr->vn++] = TERM_GREEN;
1089 if (lore_ptr->flagsr & RFR_IM_ELEC) {
1090 lore_ptr->vp[lore_ptr->vn] = _("稲妻", "lightning");
1091 lore_ptr->color[lore_ptr->vn++] = TERM_BLUE;
1093 if (lore_ptr->flagsr & RFR_IM_FIRE) {
1094 lore_ptr->vp[lore_ptr->vn] = _("炎", "fire");
1095 lore_ptr->color[lore_ptr->vn++] = TERM_RED;
1097 if (lore_ptr->flagsr & RFR_IM_COLD) {
1098 lore_ptr->vp[lore_ptr->vn] = _("冷気", "cold");
1099 lore_ptr->color[lore_ptr->vn++] = TERM_L_WHITE;
1101 if (lore_ptr->flagsr & RFR_IM_POIS) {
1102 lore_ptr->vp[lore_ptr->vn] = _("毒", "poison");
1103 lore_ptr->color[lore_ptr->vn++] = TERM_L_GREEN;
1106 if (lore_ptr->flagsr & RFR_RES_LITE) {
1107 lore_ptr->vp[lore_ptr->vn] = _("閃光", "light");
1108 lore_ptr->color[lore_ptr->vn++] = TERM_YELLOW;
1110 if (lore_ptr->flagsr & RFR_RES_DARK) {
1111 lore_ptr->vp[lore_ptr->vn] = _("暗黒", "dark");
1112 lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
1114 if (lore_ptr->flagsr & RFR_RES_NETH) {
1115 lore_ptr->vp[lore_ptr->vn] = _("地獄", "nether");
1116 lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
1118 if (lore_ptr->flagsr & RFR_RES_WATE) {
1119 lore_ptr->vp[lore_ptr->vn] = _("水", "water");
1120 lore_ptr->color[lore_ptr->vn++] = TERM_BLUE;
1122 if (lore_ptr->flagsr & RFR_RES_PLAS) {
1123 lore_ptr->vp[lore_ptr->vn] = _("プラズマ", "plasma");
1124 lore_ptr->color[lore_ptr->vn++] = TERM_L_RED;
1126 if (lore_ptr->flagsr & RFR_RES_SHAR) {
1127 lore_ptr->vp[lore_ptr->vn] = _("破片", "shards");
1128 lore_ptr->color[lore_ptr->vn++] = TERM_L_UMBER;
1130 if (lore_ptr->flagsr & RFR_RES_SOUN) {
1131 lore_ptr->vp[lore_ptr->vn] = _("轟音", "sound");
1132 lore_ptr->color[lore_ptr->vn++] = TERM_ORANGE;
1134 if (lore_ptr->flagsr & RFR_RES_CHAO) {
1135 lore_ptr->vp[lore_ptr->vn] = _("カオス", "chaos");
1136 lore_ptr->color[lore_ptr->vn++] = TERM_VIOLET;
1138 if (lore_ptr->flagsr & RFR_RES_NEXU) {
1139 lore_ptr->vp[lore_ptr->vn] = _("因果混乱", "nexus");
1140 lore_ptr->color[lore_ptr->vn++] = TERM_VIOLET;
1142 if (lore_ptr->flagsr & RFR_RES_DISE) {
1143 lore_ptr->vp[lore_ptr->vn] = _("劣化", "disenchantment");
1144 lore_ptr->color[lore_ptr->vn++] = TERM_VIOLET;
1146 if (lore_ptr->flagsr & RFR_RES_WALL) {
1147 lore_ptr->vp[lore_ptr->vn] = _("フォース", "force");
1148 lore_ptr->color[lore_ptr->vn++] = TERM_UMBER;
1150 if (lore_ptr->flagsr & RFR_RES_INER) {
1151 lore_ptr->vp[lore_ptr->vn] = _("遅鈍", "inertia");
1152 lore_ptr->color[lore_ptr->vn++] = TERM_SLATE;
1154 if (lore_ptr->flagsr & RFR_RES_TIME) {
1155 lore_ptr->vp[lore_ptr->vn] = _("時間逆転", "time");
1156 lore_ptr->color[lore_ptr->vn++] = TERM_L_BLUE;
1158 if (lore_ptr->flagsr & RFR_RES_GRAV) {
1159 lore_ptr->vp[lore_ptr->vn] = _("重力", "gravity");
1160 lore_ptr->color[lore_ptr->vn++] = TERM_SLATE;
1162 if (lore_ptr->flagsr & RFR_RES_ALL) {
1163 lore_ptr->vp[lore_ptr->vn] = _("あらゆる攻撃", "all");
1164 lore_ptr->color[lore_ptr->vn++] = TERM_YELLOW;
1166 if ((lore_ptr->flagsr & RFR_RES_TELE) && !(lore_ptr->r_ptr->flags1 & RF1_UNIQUE)) {
1167 lore_ptr->vp[lore_ptr->vn] = _("テレポート", "teleportation");
1168 lore_ptr->color[lore_ptr->vn++] = TERM_ORANGE;
1171 if (lore_ptr->vn > 0) {
1172 hooked_roff(format(_("%^sは", "%^s"), wd_he[lore_ptr->msex]));
1173 for (int n = 0; n < lore_ptr->vn; n++) {
1179 hooked_roff(" resists ");
1180 else if (n < lore_ptr->vn - 1)
1183 hooked_roff(" and ");
1185 hook_c_roff(lore_ptr->color[n], lore_ptr->vp[n]);
1188 hooked_roff(_("の耐性を持っている。", ". "));
1191 if ((lore_ptr->r_ptr->r_xtra1 & MR1_SINKA) || lore_ptr->know_everything) {
1192 if (lore_ptr->r_ptr->next_r_idx) {
1193 hooked_roff(format(_("%^sは経験を積むと、", "%^s will evolve into "), wd_he[lore_ptr->msex]));
1194 hook_c_roff(TERM_YELLOW, format("%s", r_name + r_info[lore_ptr->r_ptr->next_r_idx].name));
1196 hooked_roff(_(format("に進化する。"), format(" when %s gets enough experience. ", wd_he[lore_ptr->msex])));
1197 } else if (!(lore_ptr->r_ptr->flags1 & RF1_UNIQUE)) {
1198 hooked_roff(format(_("%sは進化しない。", "%s won't evolve. "), wd_he[lore_ptr->msex]));
1203 if (lore_ptr->flags3 & RF3_NO_STUN) {
1204 lore_ptr->vp[lore_ptr->vn] = _("朦朧としない", "stunned");
1205 lore_ptr->color[lore_ptr->vn++] = TERM_ORANGE;
1207 if (lore_ptr->flags3 & RF3_NO_FEAR) {
1208 lore_ptr->vp[lore_ptr->vn] = _("恐怖を感じない", "frightened");
1209 lore_ptr->color[lore_ptr->vn++] = TERM_SLATE;
1211 if (lore_ptr->flags3 & RF3_NO_CONF) {
1212 lore_ptr->vp[lore_ptr->vn] = _("混乱しない", "confused");
1213 lore_ptr->color[lore_ptr->vn++] = TERM_L_UMBER;
1215 if (lore_ptr->flags3 & RF3_NO_SLEEP) {
1216 lore_ptr->vp[lore_ptr->vn] = _("眠らされない", "slept");
1217 lore_ptr->color[lore_ptr->vn++] = TERM_BLUE;
1219 if ((lore_ptr->flagsr & RFR_RES_TELE) && (lore_ptr->r_ptr->flags1 & RF1_UNIQUE)) {
1220 lore_ptr->vp[lore_ptr->vn] = _("テレポートされない", "teleported");
1221 lore_ptr->color[lore_ptr->vn++] = TERM_ORANGE;
1224 if (lore_ptr->vn > 0) {
1225 hooked_roff(format(_("%^sは", "%^s"), wd_he[lore_ptr->msex]));
1226 for (int n = 0; n < lore_ptr->vn; n++) {
1232 hooked_roff(" cannot be ");
1233 else if (n < lore_ptr->vn - 1)
1236 hooked_roff(" or ");
1238 hook_c_roff(lore_ptr->color[n], lore_ptr->vp[n]);
1241 hooked_roff(_("。", ". "));
1244 if ((((int)lore_ptr->r_ptr->r_wake * (int)lore_ptr->r_ptr->r_wake) > lore_ptr->r_ptr->sleep) || (lore_ptr->r_ptr->r_ignore == MAX_UCHAR)
1245 || (lore_ptr->r_ptr->sleep == 0 && lore_ptr->r_ptr->r_tkills >= 10) || lore_ptr->know_everything) {
1247 if (lore_ptr->r_ptr->sleep > 200) {
1248 act = _("を無視しがちであるが", "prefers to ignore");
1249 } else if (lore_ptr->r_ptr->sleep > 95) {
1250 act = _("に対してほとんど注意を払わないが", "pays very little attention to");
1251 } else if (lore_ptr->r_ptr->sleep > 75) {
1252 act = _("に対してあまり注意を払わないが", "pays little attention to");
1253 } else if (lore_ptr->r_ptr->sleep > 45) {
1254 act = _("を見過ごしがちであるが", "tends to overlook");
1255 } else if (lore_ptr->r_ptr->sleep > 25) {
1256 act = _("をほんの少しは見ており", "takes quite a while to see");
1257 } else if (lore_ptr->r_ptr->sleep > 10) {
1258 act = _("をしばらくは見ており", "takes a while to see");
1259 } else if (lore_ptr->r_ptr->sleep > 5) {
1260 act = _("を幾分注意深く見ており", "is fairly observant of");
1261 } else if (lore_ptr->r_ptr->sleep > 3) {
1262 act = _("を注意深く見ており", "is observant of");
1263 } else if (lore_ptr->r_ptr->sleep > 1) {
1264 act = _("をかなり注意深く見ており", "is very observant of");
1265 } else if (lore_ptr->r_ptr->sleep > 0) {
1266 act = _("を警戒しており", "is vigilant for");
1268 act = _("をかなり警戒しており", "is ever vigilant for");
1271 hooked_roff(_(format("%^sは侵入者%s、 %d フィート先から侵入者に気付くことがある。", wd_he[lore_ptr->msex], act, 10 * lore_ptr->r_ptr->aaf),
1272 format("%^s %s intruders, which %s may notice from %d feet. ", wd_he[lore_ptr->msex], act, wd_he[lore_ptr->msex], 10 * lore_ptr->r_ptr->aaf)));
1275 if (lore_ptr->drop_gold || lore_ptr->drop_item) {
1276 hooked_roff(format(_("%^sは", "%^s may carry"), wd_he[lore_ptr->msex]));
1279 lore_ptr->sin = FALSE;
1282 int n = MAX(lore_ptr->drop_gold, lore_ptr->drop_item);
1284 hooked_roff(_("一つの", " a"));
1287 lore_ptr->sin = TRUE;
1289 } else if (n == 2) {
1290 hooked_roff(_("一つか二つの", " one or two"));
1292 hooked_roff(format(_(" %d 個までの", " up to %d"), n));
1296 if (lore_ptr->flags1 & RF1_DROP_GREAT) {
1297 p = _("特別な", " exceptional");
1298 } else if (lore_ptr->flags1 & RF1_DROP_GOOD) {
1299 p = _("上質な", " good");
1302 lore_ptr->sin = FALSE;
1308 if (lore_ptr->drop_item) {
1314 lore_ptr->sin = FALSE;
1318 hooked_roff(_("アイテム", " object"));
1327 if (lore_ptr->drop_gold) {
1331 lore_ptr->sin = FALSE;
1336 lore_ptr->sin = FALSE;
1340 hooked_roff(_("財宝", " treasure"));
1348 hooked_roff(_("を持っていることがある。", ". "));
1351 const int max_attack_numbers = 4;
1353 for (int m = 0; m < max_attack_numbers; m++) {
1354 if (!lore_ptr->r_ptr->blow[m].method)
1356 if (lore_ptr->r_ptr->blow[m].method == RBM_SHOOT)
1359 if (lore_ptr->r_ptr->r_blows[m] || lore_ptr->know_everything)
1363 int attack_numbers = 0;
1364 for (int m = 0; m < max_attack_numbers; m++) {
1365 if (!lore_ptr->r_ptr->blow[m].method)
1367 if (lore_ptr->r_ptr->blow[m].method == RBM_SHOOT)
1369 if (!lore_ptr->r_ptr->r_blows[m] && !lore_ptr->know_everything)
1372 rbm_type method = lore_ptr->r_ptr->blow[m].method;
1373 int effect = lore_ptr->r_ptr->blow[m].effect;
1374 int d1 = lore_ptr->r_ptr->blow[m].d_dice;
1375 int d2 = lore_ptr->r_ptr->blow[m].d_side;
1383 p = _("触る", "touch");
1386 p = _("パンチする", "punch");
1389 p = _("蹴る", "kick");
1392 p = _("ひっかく", "claw");
1395 p = _("噛む", "bite");
1398 p = _("刺す", "sting");
1401 p = _("斬る", "slash");
1404 p = _("角で突く", "butt");
1407 p = _("体当たりする", "crush");
1410 p = _("飲み込む", "engulf");
1413 p = _("請求書をよこす", "charge");
1416 p = _("体の上を這い回る", "crawl on you");
1419 p = _("よだれをたらす", "drool on you");
1422 p = _("つばを吐く", "spit");
1425 p = _("爆発する", "explode");
1428 p = _("にらむ", "gaze");
1431 p = _("泣き叫ぶ", "wail");
1434 p = _("胞子を飛ばす", "release spores");
1439 p = _("金をせがむ", "beg");
1442 p = _("侮辱する", "insult");
1445 p = _("うめく", "moan");
1448 p = _("歌う", "sing");
1455 q = _("強力に攻撃する", "slaughter");
1458 q = _("攻撃する", "attack");
1461 q = _("毒をくらわす", "poison");
1464 q = _("劣化させる", "disenchant");
1467 q = _("充填魔力を吸収する", "drain charges");
1470 q = _("金を盗む", "steal gold");
1473 q = _("アイテムを盗む", "steal items");
1476 q = _("あなたの食料を食べる", "eat your food");
1479 q = _("明かりを吸収する", "absorb light");
1482 q = _("酸を飛ばす", "shoot acid");
1485 q = _("感電させる", "electrocute");
1488 q = _("燃やす", "burn");
1491 q = _("凍らせる", "freeze");
1494 q = _("盲目にする", "blind");
1497 q = _("混乱させる", "confuse");
1500 q = _("恐怖させる", "terrify");
1503 q = _("麻痺させる", "paralyze");
1506 q = _("腕力を減少させる", "reduce strength");
1509 q = _("知能を減少させる", "reduce intelligence");
1512 q = _("賢さを減少させる", "reduce wisdom");
1515 q = _("器用さを減少させる", "reduce dexterity");
1518 q = _("耐久力を減少させる", "reduce constitution");
1521 q = _("魅力を減少させる", "reduce charisma");
1524 q = _("全ステータスを減少させる", "reduce all stats");
1527 q = _("粉砕する", "shatter");
1530 q = _("経験値を減少(10d6+)させる", "lower experience (by 10d6+)");
1533 q = _("経験値を減少(20d6+)させる", "lower experience (by 20d6+)");
1536 q = _("経験値を減少(40d6+)させる", "lower experience (by 40d6+)");
1539 q = _("経験値を減少(80d6+)させる", "lower experience (by 80d6+)");
1542 q = _("病気にする", "disease");
1545 q = _("時間を逆戻りさせる", "time");
1548 q = _("生命力を吸収する", "drain life");
1551 q = _("魔力を奪う", "drain mana force");
1554 q = _("減速させる", "slow");
1557 q = _("朦朧とさせる", "stun");
1562 if (attack_numbers == 0) {
1563 hooked_roff(format("%^sは", wd_he[lore_ptr->msex]));
1566 if (d1 && d2 && (lore_ptr->know_everything || know_damage(r_idx, m))) {
1567 hooked_roff(format(" %dd%d ", d1, d2));
1568 hooked_roff("のダメージで");
1574 /* XXしてYYし/XXしてYYする/XXし/XXする */
1576 jverb(p, lore_ptr->jverb_buf, JVERB_TO);
1577 else if (attack_numbers != count - 1)
1578 jverb(p, lore_ptr->jverb_buf, JVERB_AND);
1580 strcpy(lore_ptr->jverb_buf, p);
1582 hooked_roff(lore_ptr->jverb_buf);
1584 if (attack_numbers != count - 1)
1585 jverb(q, lore_ptr->jverb_buf, JVERB_AND);
1587 strcpy(lore_ptr->jverb_buf, q);
1588 hooked_roff(lore_ptr->jverb_buf);
1591 if (attack_numbers != count - 1)
1594 if (attack_numbers == 0) {
1595 hooked_roff(format("%^s can ", wd_he[lore_ptr->msex]));
1596 } else if (attack_numbers < count - 1) {
1599 hooked_roff(", and ");
1603 p = "do something weird";
1606 hooked_roff(" to ");
1608 if (d1 && d2 && (lore_ptr->know_everything || know_damage(r_idx, m))) {
1609 hooked_roff(" with damage");
1610 hooked_roff(format(" %dd%d", d1, d2));
1618 if (attack_numbers > 0) {
1619 hooked_roff(_("。", ". "));
1620 } else if (lore_ptr->flags1 & RF1_NEVER_BLOW) {
1621 hooked_roff(format(_("%^sは物理的な攻撃方法を持たない。", "%^s has no physical attacks. "), wd_he[lore_ptr->msex]));
1623 hooked_roff(format(_("%s攻撃については何も知らない。", "Nothing is known about %s attack. "), wd_his[lore_ptr->msex]));
1626 bool is_kingpin = (lore_ptr->flags1 & RF1_QUESTOR) != 0;
1627 is_kingpin &= lore_ptr->r_ptr->r_sights > 0;
1628 is_kingpin &= lore_ptr->r_ptr->max_num > 0;
1629 is_kingpin &= (r_idx == MON_OBERON) || (r_idx == MON_SERPENT);
1631 hook_c_roff(TERM_VIOLET, _("あなたはこのモンスターを殺したいという強い欲望を感じている...", "You feel an intense desire to kill this monster... "));
1632 } else if (lore_ptr->flags7 & RF7_GUARDIAN) {
1633 hook_c_roff(TERM_L_RED, _("このモンスターはダンジョンの主である。", "This monster is the master of a dungeon."));