- if (lore_ptr->flags3 & RF3_NO_STUN) {
- lore_ptr->vp[lore_ptr->vn] = _("朦朧としない", "stunned");
- lore_ptr->color[lore_ptr->vn++] = TERM_ORANGE;
- }
- if (lore_ptr->flags3 & RF3_NO_FEAR) {
- lore_ptr->vp[lore_ptr->vn] = _("恐怖を感じない", "frightened");
- lore_ptr->color[lore_ptr->vn++] = TERM_SLATE;
- }
- if (lore_ptr->flags3 & RF3_NO_CONF) {
- lore_ptr->vp[lore_ptr->vn] = _("混乱しない", "confused");
- lore_ptr->color[lore_ptr->vn++] = TERM_L_UMBER;
- }
- if (lore_ptr->flags3 & RF3_NO_SLEEP) {
- lore_ptr->vp[lore_ptr->vn] = _("眠らされない", "slept");
- lore_ptr->color[lore_ptr->vn++] = TERM_BLUE;
- }
- if ((lore_ptr->flagsr & RFR_RES_TELE) && (lore_ptr->r_ptr->flags1 & RF1_UNIQUE)) {
- lore_ptr->vp[lore_ptr->vn] = _("テレポートされない", "teleported");
- lore_ptr->color[lore_ptr->vn++] = TERM_ORANGE;
- }
-
- if (lore_ptr->vn > 0) {
- hooked_roff(format(_("%^sは", "%^s"), wd_he[lore_ptr->msex]));
- for (int n = 0; n < lore_ptr->vn; n++) {
-#ifdef JP
- if (n != 0)
- hooked_roff("し、");
-#else
- if (n == 0)
- hooked_roff(" cannot be ");
- else if (n < lore_ptr->vn - 1)
- hooked_roff(", ");
- else
- hooked_roff(" or ");
-#endif
- hook_c_roff(lore_ptr->color[n], lore_ptr->vp[n]);
- }
-
- hooked_roff(_("。", ". "));
- }
-
- 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)
- || (lore_ptr->r_ptr->sleep == 0 && lore_ptr->r_ptr->r_tkills >= 10) || lore_ptr->know_everything) {
- concptr act;
- if (lore_ptr->r_ptr->sleep > 200) {
- act = _("を無視しがちであるが", "prefers to ignore");
- } else if (lore_ptr->r_ptr->sleep > 95) {
- act = _("に対してほとんど注意を払わないが", "pays very little attention to");
- } else if (lore_ptr->r_ptr->sleep > 75) {
- act = _("に対してあまり注意を払わないが", "pays little attention to");
- } else if (lore_ptr->r_ptr->sleep > 45) {
- act = _("を見過ごしがちであるが", "tends to overlook");
- } else if (lore_ptr->r_ptr->sleep > 25) {
- act = _("をほんの少しは見ており", "takes quite a while to see");
- } else if (lore_ptr->r_ptr->sleep > 10) {
- act = _("をしばらくは見ており", "takes a while to see");
- } else if (lore_ptr->r_ptr->sleep > 5) {
- act = _("を幾分注意深く見ており", "is fairly observant of");
- } else if (lore_ptr->r_ptr->sleep > 3) {
- act = _("を注意深く見ており", "is observant of");
- } else if (lore_ptr->r_ptr->sleep > 1) {
- act = _("をかなり注意深く見ており", "is very observant of");
- } else if (lore_ptr->r_ptr->sleep > 0) {
- act = _("を警戒しており", "is vigilant for");
- } else {
- act = _("をかなり警戒しており", "is ever vigilant for");
- }
-
- hooked_roff(_(format("%^sは侵入者%s、 %d フィート先から侵入者に気付くことがある。", wd_he[lore_ptr->msex], act, 10 * lore_ptr->r_ptr->aaf),
- 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)));
- }
-
- if (lore_ptr->drop_gold || lore_ptr->drop_item) {
- hooked_roff(format(_("%^sは", "%^s may carry"), wd_he[lore_ptr->msex]));
-#ifdef JP
-#else
- lore_ptr->sin = FALSE;
-#endif
-
- int n = MAX(lore_ptr->drop_gold, lore_ptr->drop_item);
- if (n == 1) {
- hooked_roff(_("一つの", " a"));
-#ifdef JP
-#else
- lore_ptr->sin = TRUE;
-#endif
- } else if (n == 2) {
- hooked_roff(_("一つか二つの", " one or two"));
- } else {
- hooked_roff(format(_(" %d 個までの", " up to %d"), n));
- }
-
- concptr p;
- if (lore_ptr->flags1 & RF1_DROP_GREAT) {
- p = _("特別な", " exceptional");
- } else if (lore_ptr->flags1 & RF1_DROP_GOOD) {
- p = _("上質な", " good");
-#ifdef JP
-#else
- lore_ptr->sin = FALSE;
-#endif
- } else {
- p = NULL;
- }
-
- if (lore_ptr->drop_item) {
-#ifdef JP
-#else
- if (lore_ptr->sin)
- hooked_roff("n");
-
- lore_ptr->sin = FALSE;
-#endif
- if (p)
- hooked_roff(p);
- hooked_roff(_("アイテム", " object"));
-#ifdef JP
-#else
- if (n != 1)
- hooked_roff("s");
-#endif
- p = _("や", " or");
- }
-
- if (lore_ptr->drop_gold) {
-#ifdef JP
-#else
- if (!p)
- lore_ptr->sin = FALSE;
-
- if (lore_ptr->sin)
- hooked_roff("n");
-
- lore_ptr->sin = FALSE;
-#endif
- if (p)
- hooked_roff(p);
- hooked_roff(_("財宝", " treasure"));
-#ifdef JP
-#else
- if (n != 1)
- hooked_roff("s");
-#endif
- }
-
- hooked_roff(_("を持っていることがある。", ". "));
- }
-
- const int max_attack_numbers = 4;
- int count = 0;
- for (int m = 0; m < max_attack_numbers; m++) {
- if (!lore_ptr->r_ptr->blow[m].method)
- continue;
- if (lore_ptr->r_ptr->blow[m].method == RBM_SHOOT)
- continue;
-
- if (lore_ptr->r_ptr->r_blows[m] || lore_ptr->know_everything)
- count++;
- }
-
- int attack_numbers = 0;
- for (int m = 0; m < max_attack_numbers; m++) {
- if (!lore_ptr->r_ptr->blow[m].method)
- continue;
- if (lore_ptr->r_ptr->blow[m].method == RBM_SHOOT)
- continue;
- if (!lore_ptr->r_ptr->r_blows[m] && !lore_ptr->know_everything)
- continue;
-
- rbm_type method = lore_ptr->r_ptr->blow[m].method;
- int effect = lore_ptr->r_ptr->blow[m].effect;
- int d1 = lore_ptr->r_ptr->blow[m].d_dice;
- int d2 = lore_ptr->r_ptr->blow[m].d_side;
-
- concptr p = NULL;
- switch (method) {
- case RBM_HIT:
- p = _("殴る", "hit");
- break;
- case RBM_TOUCH:
- p = _("触る", "touch");
- break;
- case RBM_PUNCH:
- p = _("パンチする", "punch");
- break;
- case RBM_KICK:
- p = _("蹴る", "kick");
- break;
- case RBM_CLAW:
- p = _("ひっかく", "claw");
- break;
- case RBM_BITE:
- p = _("噛む", "bite");
- break;
- case RBM_STING:
- p = _("刺す", "sting");
- break;
- case RBM_SLASH:
- p = _("斬る", "slash");
- break;
- case RBM_BUTT:
- p = _("角で突く", "butt");
- break;
- case RBM_CRUSH:
- p = _("体当たりする", "crush");
- break;
- case RBM_ENGULF:
- p = _("飲み込む", "engulf");
- break;
- case RBM_CHARGE:
- p = _("請求書をよこす", "charge");
- break;
- case RBM_CRAWL:
- p = _("体の上を這い回る", "crawl on you");
- break;
- case RBM_DROOL:
- p = _("よだれをたらす", "drool on you");
- break;
- case RBM_SPIT:
- p = _("つばを吐く", "spit");
- break;
- case RBM_EXPLODE:
- p = _("爆発する", "explode");
- break;
- case RBM_GAZE:
- p = _("にらむ", "gaze");
- break;
- case RBM_WAIL:
- p = _("泣き叫ぶ", "wail");
- break;
- case RBM_SPORE:
- p = _("胞子を飛ばす", "release spores");
- break;
- case RBM_XXX4:
- break;
- case RBM_BEG:
- p = _("金をせがむ", "beg");
- break;
- case RBM_INSULT:
- p = _("侮辱する", "insult");
- break;
- case RBM_MOAN:
- p = _("うめく", "moan");
- break;
- case RBM_SHOW:
- p = _("歌う", "sing");
- break;
- }
-
- concptr q = NULL;
- switch (effect) {
- case RBE_SUPERHURT:
- q = _("強力に攻撃する", "slaughter");
- break;
- case RBE_HURT:
- q = _("攻撃する", "attack");
- break;
- case RBE_POISON:
- q = _("毒をくらわす", "poison");
- break;
- case RBE_UN_BONUS:
- q = _("劣化させる", "disenchant");
- break;
- case RBE_UN_POWER:
- q = _("充填魔力を吸収する", "drain charges");
- break;
- case RBE_EAT_GOLD:
- q = _("金を盗む", "steal gold");
- break;
- case RBE_EAT_ITEM:
- q = _("アイテムを盗む", "steal items");
- break;
- case RBE_EAT_FOOD:
- q = _("あなたの食料を食べる", "eat your food");
- break;
- case RBE_EAT_LITE:
- q = _("明かりを吸収する", "absorb light");
- break;
- case RBE_ACID:
- q = _("酸を飛ばす", "shoot acid");
- break;
- case RBE_ELEC:
- q = _("感電させる", "electrocute");
- break;
- case RBE_FIRE:
- q = _("燃やす", "burn");
- break;
- case RBE_COLD:
- q = _("凍らせる", "freeze");
- break;
- case RBE_BLIND:
- q = _("盲目にする", "blind");
- break;
- case RBE_CONFUSE:
- q = _("混乱させる", "confuse");
- break;
- case RBE_TERRIFY:
- q = _("恐怖させる", "terrify");
- break;
- case RBE_PARALYZE:
- q = _("麻痺させる", "paralyze");
- break;
- case RBE_LOSE_STR:
- q = _("腕力を減少させる", "reduce strength");
- break;
- case RBE_LOSE_INT:
- q = _("知能を減少させる", "reduce intelligence");
- break;
- case RBE_LOSE_WIS:
- q = _("賢さを減少させる", "reduce wisdom");
- break;
- case RBE_LOSE_DEX:
- q = _("器用さを減少させる", "reduce dexterity");
- break;
- case RBE_LOSE_CON:
- q = _("耐久力を減少させる", "reduce constitution");
- break;
- case RBE_LOSE_CHR:
- q = _("魅力を減少させる", "reduce charisma");
- break;
- case RBE_LOSE_ALL:
- q = _("全ステータスを減少させる", "reduce all stats");
- break;
- case RBE_SHATTER:
- q = _("粉砕する", "shatter");
- break;
- case RBE_EXP_10:
- q = _("経験値を減少(10d6+)させる", "lower experience (by 10d6+)");
- break;
- case RBE_EXP_20:
- q = _("経験値を減少(20d6+)させる", "lower experience (by 20d6+)");
- break;
- case RBE_EXP_40:
- q = _("経験値を減少(40d6+)させる", "lower experience (by 40d6+)");
- break;
- case RBE_EXP_80:
- q = _("経験値を減少(80d6+)させる", "lower experience (by 80d6+)");
- break;
- case RBE_DISEASE:
- q = _("病気にする", "disease");
- break;
- case RBE_TIME:
- q = _("時間を逆戻りさせる", "time");
- break;
- case RBE_DR_LIFE:
- q = _("生命力を吸収する", "drain life");
- break;
- case RBE_DR_MANA:
- q = _("魔力を奪う", "drain mana force");
- break;
- case RBE_INERTIA:
- q = _("減速させる", "slow");
- break;
- case RBE_STUN:
- q = _("朦朧とさせる", "stun");
- break;
- }
-
-#ifdef JP
- if (attack_numbers == 0) {
- hooked_roff(format("%^sは", wd_he[lore_ptr->msex]));
- }
-
- if (d1 && d2 && (lore_ptr->know_everything || know_damage(r_idx, m))) {
- hooked_roff(format(" %dd%d ", d1, d2));
- hooked_roff("のダメージで");
- }
-
- if (!p)
- p = "何か奇妙なことをする";
-
- /* XXしてYYし/XXしてYYする/XXし/XXする */
- if (q != NULL)
- jverb(p, lore_ptr->jverb_buf, JVERB_TO);
- else if (attack_numbers != count - 1)
- jverb(p, lore_ptr->jverb_buf, JVERB_AND);
- else
- strcpy(lore_ptr->jverb_buf, p);
-
- hooked_roff(lore_ptr->jverb_buf);
- if (q) {
- if (attack_numbers != count - 1)
- jverb(q, lore_ptr->jverb_buf, JVERB_AND);
- else
- strcpy(lore_ptr->jverb_buf, q);
- hooked_roff(lore_ptr->jverb_buf);
- }
-
- if (attack_numbers != count - 1)
- hooked_roff("、");
-#else
- if (attack_numbers == 0) {
- hooked_roff(format("%^s can ", wd_he[lore_ptr->msex]));
- } else if (attack_numbers < count - 1) {
- hooked_roff(", ");
- } else {
- hooked_roff(", and ");
- }
-
- if (!p)
- p = "do something weird";
- hooked_roff(p);
- if (q) {
- hooked_roff(" to ");
- hooked_roff(q);
- if (d1 && d2 && (lore_ptr->know_everything || know_damage(r_idx, m))) {
- hooked_roff(" with damage");
- hooked_roff(format(" %dd%d", d1, d2));
- }
- }
-#endif
-
- attack_numbers++;
- }
-
- if (attack_numbers > 0) {
- hooked_roff(_("。", ". "));
- } else if (lore_ptr->flags1 & RF1_NEVER_BLOW) {
- hooked_roff(format(_("%^sは物理的な攻撃方法を持たない。", "%^s has no physical attacks. "), wd_he[lore_ptr->msex]));
- } else {
- hooked_roff(format(_("%s攻撃については何も知らない。", "Nothing is known about %s attack. "), wd_his[lore_ptr->msex]));
- }
-
- bool is_kingpin = (lore_ptr->flags1 & RF1_QUESTOR) != 0;
- is_kingpin &= lore_ptr->r_ptr->r_sights > 0;
- is_kingpin &= lore_ptr->r_ptr->max_num > 0;
- is_kingpin &= (r_idx == MON_OBERON) || (r_idx == MON_SERPENT);
- if (is_kingpin) {
- hook_c_roff(TERM_VIOLET, _("あなたはこのモンスターを殺したいという強い欲望を感じている...", "You feel an intense desire to kill this monster... "));
- } else if (lore_ptr->flags7 & RF7_GUARDIAN) {
- hook_c_roff(TERM_L_RED, _("このモンスターはダンジョンの主である。", "This monster is the master of a dungeon."));
- }
-
- hooked_roff("\n");