-/* NetHack 3.6 mhitm.c $NHDT-Date: 1446854229 2015/11/06 23:57:09 $ $NHDT-Branch: master $:$NHDT-Revision: 1.83 $ */
+/* NetHack 3.6 mhitm.c $NHDT-Date: 1513297346 2017/12/15 00:22:26 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.99 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
+/*-Copyright (c) Robert Patrick Rankin, 2011. */
/* NetHack may be freely redistributed. See license for details. */
+/* JNetHack Copyright */
+/* (c) Issei Numata, Naoki Hamada, Shigehiro Miyashita, 1994-2000 */
+/* For 3.4-, Copyright (c) SHIRAKATA Kentaro, 2002-2016 */
+/* JNetHack may be freely redistributed. See license for details. */
+
#include "hack.h"
#include "artifact.h"
static NEARDATA struct obj *otmp;
static const char brief_feeling[] =
+/*JP
"have a %s feeling for a moment, then it passes.";
+*/
+ "%s\8bC\8e\9d\82É\82¨\82»\82í\82ê\82½\82ª\81C\82·\82®\82É\89ß\82¬\82³\82Á\82½\81D";
STATIC_DCL char *FDECL(mon_nam_too, (char *, struct monst *, struct monst *));
STATIC_DCL int FDECL(hitmm, (struct monst *, struct monst *,
{
Strcpy(outbuf, mon_nam(mon));
if (mon == other_mon)
+#if 0 /*JP*/
switch (pronoun_gender(mon)) {
case 0:
Strcpy(outbuf, "himself");
Strcpy(outbuf, "itself");
break;
}
+#else
+ Strcpy(outbuf, "\8e©\95ª\8e©\90g");
+#endif
return outbuf;
}
if (!Deaf && (farq != far_noise || moves - noisetime > 10)) {
far_noise = farq;
noisetime = moves;
+#if 0 /*JP*/
You_hear("%s%s.",
(mattk->aatyp == AT_EXPL) ? "an explosion" : "some noises",
farq ? " in the distance" : "");
+#else
+ You_hear("%s%s\82ð\95·\82¢\82½\81D",
+ farq ? "\89\93\82\82Å" : "",
+ (mattk->aatyp == AT_EXPL) ? "\94\9a\94\89¹" : "\89½\82©\82ª\90í\82¤\89¹"
+ );
+#endif
}
}
seemimic(mdef);
if (magr->m_ap_type)
seemimic(magr);
+#if 0 /*JP*/
fmt = (could_seduce(magr, mdef, mattk) && !magr->mcan)
? "%s pretends to be friendly to"
: "%s misses";
+#else /*JP:\89p\8cê\82Æ\95Ï\90\94\93W\8aJ\82Ì\83^\83C\83~\83\93\83O\82ª\88Ù\82È\82é\82Ì\82Å\92\8d\88Ó*/
+ fmt = (could_seduce(magr,mdef,mattk) && !magr->mcan)
+ ? "%s\82Í%%s\82É\97F\8dD\93I\82È\82Ó\82è\82ð\82µ\82½\81D"
+ : "%s\82Ì%%s\82Ö\82Ì\8dU\8c\82\82Í\8aO\82ê\82½\81D";
+#endif
Sprintf(buf, fmt, Monnam(magr));
+#if 0 /*JP*/
pline("%s %s.", buf, mon_nam_too(mdef_name, mdef, magr));
+#else
+ pline(buf, mon_nam_too(mdef_name, mdef, magr));
+#endif
} else
noises(magr, mattk);
}
if (monnear(mtmp, mon->mx, mon->my)) {
if (!u.uswallow && (mtmp == u.ustuck)) {
if (!rn2(4)) {
+/*JP
pline("%s releases you!", Monnam(mtmp));
+*/
+ pline("%s\82Í\82 \82È\82½\82ð\89ð\95ú\82µ\82½\81I", Monnam(mtmp));
u.ustuck = 0;
} else
break;
return MM_HIT; /* no damage during the polymorph */
}
if (!quietly && canspotmon(magr))
+/*JP
pline("%s turns to stone!", Monnam(magr));
+*/
+ pline("%s\82Í\90Î\82É\82È\82Á\82½\81I", Monnam(magr));
monstone(magr);
if (magr->mhp > 0)
return MM_HIT; /* lifesaved */
else if (magr->mtame && !vis)
+/*JP
You(brief_feeling, "peculiarly sad");
+*/
+ You(brief_feeling, "\82à\82Ì\94ß\82µ\82¢");
return MM_AGR_DIED;
}
}
place_monster(magr, tx, ty); /* put down at target spot */
place_monster(mdef, fx, fy);
if (vis && !quietly)
+#if 0 /*JP*/
pline("%s moves %s out of %s way!", Monnam(magr), mon_nam(mdef),
is_rider(pa) ? "the" : mhis(magr));
+#else
+ pline("%s\82Í%s\82ð\89\9f\82µ\82Ì\82¯\82½\81I", Monnam(magr), mon_nam(mdef));
+#endif
newsym(fx, fy); /* see it */
newsym(tx, ty); /* all happen */
flush_screen(0); /* make sure it shows up */
{
int i, /* loop counter */
tmp, /* amour class difference */
- strike, /* hit this attack */
+ strike = 0, /* hit this attack */
attk, /* attack attempted this time */
struck = 0, /* hit at least once */
res[NATTK]; /* results of all attacks */
mdef->mundetected = 0;
newsym(mdef->mx, mdef->my);
if (canseemon(mdef) && !sensemon(mdef)) {
- if (Unaware)
- You("dream of %s.", (mdef->data->geno & G_UNIQ)
- ? a_monnam(mdef)
- : makeplural(m_monnam(mdef)));
- else
+ if (Unaware) {
+#if 0 /*JP*/
+ boolean justone = (mdef->data->geno & G_UNIQ) != 0L;
+ const char *montype;
+
+ montype = noname_monnam(mdef, justone ? ARTICLE_THE
+ : ARTICLE_NONE);
+ if (!justone)
+ montype = makeplural(montype);
+ You("dream of %s.", montype);
+#else
+ You("%s\82Ì\96²\82ð\8c©\82½\81D", a_monnam(mdef));
+#endif
+ } else
+/*JP
pline("Suddenly, you notice %s.", a_monnam(mdef));
+*/
+ pline("\93Ë\91R\81C\82 \82È\82½\82Í%s\82É\8bC\82ª\82Â\82¢\82½\81D", a_monnam(mdef));
}
}
/* Now perform all attacks for the monster. */
for (i = 0; i < NATTK; i++) {
res[i] = MM_MISS;
- mattk = getmattk(pa, i, res, &alt_attk);
+ mattk = getmattk(magr, mdef, i, res, &alt_attk);
otmp = (struct obj *) 0;
attk = 1;
switch (mattk->aatyp) {
case AT_WEAP: /* "hand to hand" attacks */
+ if (distmin(magr->mx, magr->my, mdef->mx, mdef->my) > 1) {
+ /* D: Do a ranged attack here! */
+ strike = thrwmm(magr, mdef);
+ if (DEADMONSTER(mdef))
+ res[i] = MM_DEF_DIED;
+ if (DEADMONSTER(magr))
+ res[i] |= MM_AGR_DIED;
+ break;
+ }
if (magr->weapon_check == NEED_WEAPON || !MON_WEP(magr)) {
magr->weapon_check = NEED_HTH_WEAPON;
if (mon_wield_item(magr) != 0)
case AT_TENT:
/* Nymph that teleported away on first attack? */
if (distmin(magr->mx, magr->my, mdef->mx, mdef->my) > 1)
- return MM_MISS;
+ /* Continue because the monster may have a ranged attack. */
+ continue;
/* Monsters won't attack cockatrices physically if they
* have a weapon instead. This instinct doesn't work for
* players, or under conflict or confusion.
if (strike) {
res[i] = hitmm(magr, mdef, mattk);
if ((mdef->data == &mons[PM_BLACK_PUDDING]
- || mdef->data == &mons[PM_BROWN_PUDDING]) && otmp
- && objects[otmp->otyp].oc_material == IRON
+ || mdef->data == &mons[PM_BROWN_PUDDING])
+ && (otmp && (objects[otmp->otyp].oc_material == IRON
+ || objects[otmp->otyp].oc_material == METAL))
&& mdef->mhp > 1
&& !mdef->mcan) {
if (clone_mon(mdef, 0, 0)) {
- if (vis) {
+ if (vis && canspotmon(mdef)) {
char buf[BUFSZ];
Strcpy(buf, Monnam(mdef));
+#if 0 /*JP*/
pline("%s divides as %s hits it!", buf,
mon_nam(magr));
+#else
+ pline("%s\82Ì\8dU\8c\82\82Å%s\82ª\95ª\97ô\82µ\82½\81I",
+ mon_nam(magr), buf);
+#endif
}
}
}
break;
case AT_EXPL:
+ /* D: Prevent explosions from a distance */
+ if (distmin(magr->mx,magr->my,mdef->mx,mdef->my) > 1)
+ continue;
+
res[i] = explmm(magr, mdef, mattk);
if (res[i] == MM_MISS) { /* cancelled--no attack */
strike = 0;
break;
case AT_ENGL:
- if (u.usteed && (mdef == u.usteed)) {
+ if (u.usteed && mdef == u.usteed) {
strike = 0;
break;
}
- /* Engulfing attacks are directed at the hero if
- * possible. -dlc
- */
+ /* D: Prevent engulf from a distance */
+ if (distmin(magr->mx, magr->my, mdef->mx, mdef->my) > 1)
+ continue;
+ /* Engulfing attacks are directed at the hero if possible. -dlc */
if (u.uswallow && magr == u.ustuck)
strike = 0;
- else {
- if ((strike = (tmp > rnd(20 + i))))
- res[i] = gulpmm(magr, mdef, mattk);
- else
- missmm(magr, mdef, mattk);
+ else if ((strike = (tmp > rnd(20 + i))) != 0)
+ res[i] = gulpmm(magr, mdef, mattk);
+ else
+ missmm(magr, mdef, mattk);
+ break;
+
+ case AT_BREA:
+ if (!monnear(magr, mdef->mx, mdef->my)) {
+ strike = breamm(magr, mattk, mdef);
+
+ /* We don't really know if we hit or not; pretend we did. */
+ if (strike)
+ res[i] |= MM_HIT;
+ if (DEADMONSTER(mdef))
+ res[i] = MM_DEF_DIED;
+ if (DEADMONSTER(magr))
+ res[i] |= MM_AGR_DIED;
+ }
+ else
+ strike = 0;
+ break;
+
+ case AT_SPIT:
+ if (!monnear(magr, mdef->mx, mdef->my)) {
+ strike = spitmm(magr, mattk, mdef);
+
+ /* We don't really know if we hit or not; pretend we did. */
+ if (strike)
+ res[i] |= MM_HIT;
+ if (DEADMONSTER(mdef))
+ res[i] = MM_DEF_DIED;
+ if (DEADMONSTER(magr))
+ res[i] |= MM_AGR_DIED;
}
break;
break;
}
- if (attk && !(res[i] & MM_AGR_DIED))
+ if (attk && !(res[i] & MM_AGR_DIED)
+ && distmin(magr->mx, magr->my, mdef->mx, mdef->my) <= 1)
res[i] = passivemm(magr, mdef, strike, res[i] & MM_DEF_DIED);
if (res[i] & MM_DEF_DIED)
return res[i];
-
if (res[i] & MM_AGR_DIED)
return res[i];
/* return if aggressor can no longer attack */
if (magr->m_ap_type)
seemimic(magr);
if ((compat = could_seduce(magr, mdef, mattk)) && !magr->mcan) {
+#if 0 /*JP*/
Sprintf(buf, "%s %s", Monnam(magr),
mdef->mcansee ? "smiles at" : "talks to");
pline("%s %s %s.", buf, mon_nam(mdef),
compat == 2 ? "engagingly" : "seductively");
+#else
+ Sprintf(buf, "%s\82Í%%s\82É%%s%s\81D", Monnam(magr),
+ mdef->mcansee ? "\94÷\8fÎ\82Ý\82©\82¯\82½" : "\98b\82µ\82©\82¯\82½");
+ pline(buf, mon_nam(mdef),
+ compat == 2 ? "\96£\97Í\93I\82É" : "\97U\98f\93I\82É");
+#endif
} else {
char magr_name[BUFSZ];
Strcpy(magr_name, Monnam(magr));
switch (mattk->aatyp) {
case AT_BITE:
+/*JP
Sprintf(buf, "%s bites", magr_name);
+*/
+ Sprintf(buf,"%s\82Í%%s\82É\8a\9a\82Ý\82Â\82¢\82½\81D", magr_name);
break;
case AT_STNG:
+/*JP
Sprintf(buf, "%s stings", magr_name);
+*/
+ Sprintf(buf,"%s\82Í%%s\82ð\93Ë\82«\82³\82µ\82½\81D", magr_name);
break;
case AT_BUTT:
+/*JP
Sprintf(buf, "%s butts", magr_name);
+*/
+ Sprintf(buf,"%s\82Í%%s\82É\93ª\93Ë\82«\82ð\82\82ç\82í\82µ\82½\81D", magr_name);
break;
case AT_TUCH:
+/*JP
Sprintf(buf, "%s touches", magr_name);
+*/
+ Sprintf(buf,"%s\82Í%%s\82É\90G\82ê\82½\81D", magr_name);
break;
case AT_TENT:
+/*JP
Sprintf(buf, "%s tentacles suck", s_suffix(magr_name));
+*/
+ Sprintf(buf, "%s\82Ì\90G\8eè\82ª%%s\82Ì\91Ì\89t\82ð\8bz\82¢\82Æ\82Á\82½\81D", magr_name);
break;
case AT_HUGS:
if (magr != u.ustuck) {
+/*JP
Sprintf(buf, "%s squeezes", magr_name);
+*/
+ Sprintf(buf,"%s\82Í%%s\82ð\8di\82ß\82½\81D", magr_name);
break;
}
+ /*FALLTHRU*/
default:
+/*JP
Sprintf(buf, "%s hits", magr_name);
+*/
+ Sprintf(buf,"%s\82Ì%%s\82Ö\82Ì\8dU\8c\82\82Í\96½\92\86\82µ\82½\81D", magr_name);
}
+#if 0 /*JP*/
pline("%s %s.", buf, mon_nam_too(mdef_name, mdef, magr));
+#else
+ pline(buf, mon_nam_too(mdef_name, mdef, magr));
+#endif
}
} else
noises(magr, mattk);
char buf[BUFSZ];
if (vis) {
+ if (mdef->data->mlet == S_MIMIC
+ && mdef->m_ap_type != M_AP_NOTHING)
+ seemimic(mdef);
+#if 0 /*JP*/
Sprintf(buf, "%s gazes at", Monnam(magr));
- pline("%s %s...", buf, mon_nam(mdef));
+ pline("%s %s...", buf,
+ canspotmon(mdef) ? mon_nam(mdef) : "something");
+#else
+ Sprintf(buf, "%s\82Í%%s\82ð\82É\82ç\82Ý\82Â\82¯\82½\81D\81D\81D", Monnam(magr));
+ pline(buf, canspotmon(mdef) ? mon_nam(mdef) : "\89½\82©");
+#endif
}
- if (magr->mcan || !magr->mcansee
- || (magr->minvis && !perceives(mdef->data)) || !mdef->mcansee
- || mdef->msleeping) {
- if (vis)
+ if (magr->mcan || !magr->mcansee || !mdef->mcansee
+ || (magr->minvis && !perceives(mdef->data)) || mdef->msleeping) {
+ if (vis && canspotmon(mdef))
+/*JP
pline("but nothing happens.");
+*/
+ pline("\82µ\82©\82µ\89½\82à\82¨\82±\82ç\82È\82©\82Á\82½\81D");
return MM_MISS;
}
/* call mon_reflects 2x, first test, then, if visible, print message */
if (magr->data == &mons[PM_MEDUSA] && mon_reflects(mdef, (char *) 0)) {
if (canseemon(mdef))
+/*JP
(void) mon_reflects(mdef, "The gaze is reflected away by %s %s.");
+*/
+ (void) mon_reflects(mdef, "\82É\82ç\82Ý\82Í%s\82Ì%s\82Å\94½\8eË\82µ\82½\81D");
if (mdef->mcansee) {
if (mon_reflects(magr, (char *) 0)) {
if (canseemon(magr))
- (void) mon_reflects(
- magr, "The gaze is reflected away by %s %s.");
+#if 0 /*JP*/
+ (void) mon_reflects(magr,
+ "The gaze is reflected away by %s %s.");
+#else
+ (void) mon_reflects(magr,
+ "\82É\82ç\82Ý\82Í%s\82Ì%s\82Å\94½\8eË\82µ\82½\81D");
+#endif
return MM_MISS;
}
if (mdef->minvis && !perceives(magr->data)) {
if (canseemon(magr)) {
+#if 0 /*JP*/
pline(
"%s doesn't seem to notice that %s gaze was reflected.",
Monnam(magr), mhis(magr));
+#else
+ pline("\82É\82ç\82Ý\82ª\94½\8eË\82µ\82Ä\82¢\82é\82±\82Æ\82É%s\82Í\8bC\95t\82¢\82Ä\82¢\82È\82¢\82æ\82¤\82¾\81D",
+ Monnam(magr));
+#endif
}
return MM_MISS;
}
if (canseemon(magr))
+/*JP
pline("%s is turned to stone!", Monnam(magr));
+*/
+ pline("%s\82Í\90Î\82É\82È\82Á\82½\81I", Monnam(magr));
monstone(magr);
if (magr->mhp > 0)
return MM_MISS;
return MM_MISS;
if (vis) {
+ /* [this two-part formatting dates back to when only one x_monnam
+ result could be included in an expression because the next one
+ would overwrite first's result -- that's no longer the case] */
+#if 0 /*JP*/
Sprintf(buf, "%s swallows", Monnam(magr));
pline("%s %s.", buf, mon_nam(mdef));
+#else
+ Sprintf(buf, "%s\82Í%%s\82ð\82®\82Á\82Æ\88ù\82Ý\82±\82ñ\82¾\81D", Monnam(magr));
+ pline(buf, mon_nam(mdef));
+#endif
}
for (obj = mdef->minvent; obj; obj = obj->nobj)
(void) snuff_lit(obj);
+ if (is_vampshifter(mdef)
+ && newcham(mdef, &mons[mdef->cham], FALSE, FALSE)) {
+ if (vis) {
+ /* 'it' -- previous form is no longer available and
+ using that would be excessively verbose */
+ pline("%s expels %s.", Monnam(magr),
+ canspotmon(mdef) ? "it" : something);
+ if (canspotmon(mdef))
+ pline("It turns into %s.", a_monnam(mdef));
+ }
+ return MM_HIT; /* bypass mdamagem() */
+ }
+
/*
* All of this manipulation is needed to keep the display correct.
* There is a flush at the next pline().
} else if (status & MM_AGR_DIED) { /* aggressor died */
place_monster(mdef, dx, dy);
newsym(dx, dy);
- } else { /* both alive, put them back */
+ } else { /* both alive, put them back */
if (cansee(dx, dy))
+/*JP
pline("%s is regurgitated!", Monnam(mdef));
+*/
+ pline("%s\82Í\93f\82«\96ß\82³\82ê\82½\81I", Monnam(mdef));
+ remove_monster(dx,dy);
place_monster(magr, ax, ay);
place_monster(mdef, dx, dy);
newsym(ax, ay);
return MM_MISS;
if (cansee(magr->mx, magr->my))
+/*JP
pline("%s explodes!", Monnam(magr));
+*/
+ pline("%s\82Í\94\9a\94\82µ\82½\81I", Monnam(magr));
else
noises(magr, mattk);
result |= MM_AGR_DIED;
}
if (magr->mtame) /* give this one even if it was visible */
+/*JP
You(brief_feeling, "melancholy");
+*/
+ You(brief_feeling, "\97J\82¤\82Â\82È");
return result;
}
mon_to_stone(magr);
return MM_HIT; /* no damage during the polymorph */
}
- if (vis)
+ if (vis && canspotmon(magr))
+/*JP
pline("%s turns to stone!", Monnam(magr));
+*/
+ pline("%s\82Í\90Î\82É\82È\82Á\82½\81I", Monnam(magr));
monstone(magr);
if (magr->mhp > 0)
return MM_HIT; /* lifesaved */
else if (magr->mtame && !vis)
+/*JP
You(brief_feeling, "peculiarly sad");
+*/
+ You(brief_feeling, "\82à\82Ì\94ß\82µ\82¢");
return MM_AGR_DIED;
}
}
case AD_DGST:
/* eating a Rider or its corpse is fatal */
if (is_rider(pd)) {
- if (vis)
+ if (vis && canseemon(magr))
+#if 0 /*JP:T*/
pline("%s %s!", Monnam(magr),
(pd == &mons[PM_FAMINE])
? "belches feebly, shrivels up and dies"
: (pd == &mons[PM_PESTILENCE])
? "coughs spasmodically and collapses"
: "vomits violently and drops dead");
+#else
+ pline("%s%s\81I", Monnam(magr),
+ (pd == &mons[PM_FAMINE])
+ ? "\8eã\81X\82µ\82\93f\82«\82à\82Ç\82µ\82½\82©\82Æ\8ev\82¤\82Æ\81C\91Ì\82ª\82µ\82Ú\82Ý\8e\80\82ñ\82Å\82µ\82Ü\82Á\82½"
+ : (pd == &mons[PM_PESTILENCE])
+ ? "áz\9d¹\82µ\82½\82æ\82¤\82É\82¹\82«\82±\82Ý\93|\82ê\82½"
+ : "\8c\83\82µ\82\9aq\93f\82µ\8e\80\82ñ\82¾");
+#endif
mondied(magr);
if (magr->mhp > 0)
return 0; /* lifesaved */
else if (magr->mtame && !vis)
+/*JP
You(brief_feeling, "queasy");
+*/
+ You(brief_feeling, "\95s\88À\82È");
return MM_AGR_DIED;
}
if (flags.verbose && !Deaf)
+/*JP
verbalize("Burrrrp!");
+*/
+ verbalize("\82°\82Á\82Õ\81I");
tmp = mdef->mhp;
/* Use up amulet of life saving */
if (!!(obj = mlifesaver(mdef)))
if (magr->mcan)
break;
if (canseemon(mdef))
+#if 0 /*JP*/
pline("%s %s for a moment.", Monnam(mdef),
makeplural(stagger(pd, "stagger")));
+#else
+ pline("%s\82Í\82·\82±\82µ%s\81D", Monnam(mdef),
+ jpast(stagger(pd, "\82æ\82ë\82ß\82")));
+#endif
mdef->mstun = 1;
goto physical;
case AD_LEGS:
tmp = 0;
} else if (mattk->aatyp == AT_WEAP) {
if (otmp) {
+ struct obj *marmg;
+
if (otmp->otyp == CORPSE
&& touch_petrifies(&mons[otmp->corpsenm]))
goto do_stone;
tmp += dmgval(otmp, mdef);
+ if ((marmg = which_armor(magr, W_ARMG)) != 0
+ && marmg->otyp == GAUNTLETS_OF_POWER)
+ tmp += rn1(4, 3); /* 3..6 */
+ if (tmp < 1) /* is this necessary? mhitu.c has it... */
+ tmp = 1;
if (otmp->oartifact) {
(void) artifact_hit(magr, mdef, otmp, &tmp, dieroll);
if (mdef->mhp <= 0)
tmp = 0;
break;
}
- if (vis)
+ if (vis && canseemon(mdef))
+/*JP
pline("%s is %s!", Monnam(mdef), on_fire(pd, mattk));
- if (pd == &mons[PM_STRAW_GOLEM] || pd == &mons[PM_PAPER_GOLEM]) {
- if (vis)
+*/
+ pline("%s\82Í%s\81I", Monnam(mdef), on_fire(pd, mattk));
+ if (completelyburns(pd)) { /* paper golem or straw golem */
+ if (vis && canseemon(mdef))
+/*JP
pline("%s burns completely!", Monnam(mdef));
- mondied(mdef);
+*/
+ pline("%s\82Í\8aD\82É\82È\82Á\82½\81I", Monnam(mdef));
+ mondead(mdef); /* was mondied() but that dropped paper scrolls */
if (mdef->mhp > 0)
return 0;
else if (mdef->mtame && !vis)
+/*JP
pline("May %s roast in peace.", mon_nam(mdef));
+*/
+ pline("%s\82æ\81C\88À\82ç\82©\82É\94R\82¦\82ñ\8e\96\82ð\81D", mon_nam(mdef));
return (MM_DEF_DIED | (grow_up(magr, mdef) ? 0 : MM_AGR_DIED));
}
tmp += destroy_mitem(mdef, SCROLL_CLASS, AD_FIRE);
tmp += destroy_mitem(mdef, SPBOOK_CLASS, AD_FIRE);
if (resists_fire(mdef)) {
- if (vis)
+ if (vis && canseemon(mdef))
+/*JP
pline_The("fire doesn't seem to burn %s!", mon_nam(mdef));
+*/
+ pline("%s\82Í\89\8a\82Å\94R\82¦\82È\82¢\82æ\82¤\82¾\81I", mon_nam(mdef));
shieldeff(mdef->mx, mdef->my);
golemeffects(mdef, AD_FIRE, tmp);
tmp = 0;
tmp = 0;
break;
}
- if (vis)
+ if (vis && canseemon(mdef))
+/*JP
pline("%s is covered in frost!", Monnam(mdef));
+*/
+ pline("%s\82Í\95X\82Å\95¢\82í\82ê\82½\81I", Monnam(mdef));
if (resists_cold(mdef)) {
- if (vis)
+ if (vis && canseemon(mdef))
+/*JP
pline_The("frost doesn't seem to chill %s!", mon_nam(mdef));
+*/
+ pline("\95X\82Í%s\82ð\93\80\82ç\82¹\82é\82±\82Æ\82ª\82Å\82«\82È\82¢\82æ\82¤\82¾\81I", mon_nam(mdef));
shieldeff(mdef->mx, mdef->my);
golemeffects(mdef, AD_COLD, tmp);
tmp = 0;
tmp = 0;
break;
}
- if (vis)
+ if (vis && canseemon(mdef))
+/*JP
pline("%s gets zapped!", Monnam(mdef));
+*/
+ pline("%s\82Í\8fÕ\8c\82\82ð\82\82ç\82Á\82½\81I", Monnam(mdef));
tmp += destroy_mitem(mdef, WAND_CLASS, AD_ELEC);
if (resists_elec(mdef)) {
- if (vis)
+ if (vis && canseemon(mdef))
+/*JP
pline_The("zap doesn't shock %s!", mon_nam(mdef));
+*/
+ pline("\8fÕ\8c\82\82Í%s\82É\89e\8b¿\82ð\97^\82¦\82È\82¢\81I", mon_nam(mdef));
shieldeff(mdef->mx, mdef->my);
golemeffects(mdef, AD_ELEC, tmp);
tmp = 0;
break;
}
if (resists_acid(mdef)) {
- if (vis)
- pline("%s is covered in acid, but it seems harmless.",
- Monnam(mdef));
+ if (vis && canseemon(mdef))
+#if 0 /*JP*/
+ pline("%s is covered in %s, but it seems harmless.",
+ Monnam(mdef), hliquid("acid"));
+#else
+ pline("%s\82Í%s\82É\82Â\82Â\82Ü\82ê\82½\81D\82µ\82©\82µ\82È\82ñ\82Æ\82à\82È\82¢\82æ\82¤\82¾\81D",
+ Monnam(mdef), hliquid("\8e_"));
+#endif
tmp = 0;
- } else if (vis) {
- pline("%s is covered in acid!", Monnam(mdef));
+ } else if (vis && canseemon(mdef)) {
+/*JP
+ pline("%s is covered in %s!", Monnam(mdef), hliquid("acid"));
+*/
+ pline("%s\82Í%s\82É\82Â\82Â\82Ü\82ê\82½\81I", Monnam(mdef), hliquid("\8e_"));
+/*JP
pline("It burns %s!", mon_nam(mdef));
+*/
+ pline("%s\82Í\8fÄ\82©\82ê\82½\81I", mon_nam(mdef));
}
if (!rn2(30))
erode_armor(mdef, ERODE_CORRODE);
if (magr->mcan)
break;
if (pd == &mons[PM_IRON_GOLEM]) {
- if (vis)
+ if (vis && canseemon(mdef))
+/*JP
pline("%s falls to pieces!", Monnam(mdef));
+*/
+ pline("%s\82Í\83o\83\89\83o\83\89\82É\82È\82Á\82½\81I", Monnam(mdef));
mondied(mdef);
if (mdef->mhp > 0)
return 0;
else if (mdef->mtame && !vis)
+/*JP
pline("May %s rust in peace.", mon_nam(mdef));
+*/
+ pline("%s\82æ\81C\88À\82ç\82©\82É\8eK\82Ñ\82ñ\8e\96\82ð\81D", mon_nam(mdef));
return (MM_DEF_DIED | (grow_up(magr, mdef) ? 0 : MM_AGR_DIED));
}
erode_armor(mdef, ERODE_RUST);
if (magr->mcan)
break;
if (pd == &mons[PM_WOOD_GOLEM] || pd == &mons[PM_LEATHER_GOLEM]) {
- if (vis)
+ if (vis && canseemon(mdef))
+/*JP
pline("%s falls to pieces!", Monnam(mdef));
+*/
+ pline("%s\82Í\83o\83\89\83o\83\89\82É\82È\82Á\82½\81I", Monnam(mdef));
mondied(mdef);
if (mdef->mhp > 0)
return 0;
else if (mdef->mtame && !vis)
+/*JP
pline("May %s rot in peace.", mon_nam(mdef));
+*/
+ pline("%s\82æ\81C\88À\82ç\82©\82É\95\85\82ç\82ñ\8e\96\82ð\81D", mon_nam(mdef));
return (MM_DEF_DIED | (grow_up(magr, mdef) ? 0 : MM_AGR_DIED));
}
erode_armor(mdef, ERODE_CORRODE);
break;
}
if (!resists_ston(mdef)) {
- if (vis)
+ if (vis && canseemon(mdef))
+/*JP
pline("%s turns to stone!", Monnam(mdef));
+*/
+ pline("%s\82Í\90Î\82É\82È\82Á\82½\81I", Monnam(mdef));
monstone(mdef);
post_stone:
if (mdef->mhp > 0)
return 0;
else if (mdef->mtame && !vis)
+/*JP
You(brief_feeling, "peculiarly sad");
+*/
+ You(brief_feeling, "\82à\82Ì\94ß\82µ\82¢");
return (MM_DEF_DIED | (grow_up(magr, mdef) ? 0 : MM_AGR_DIED));
}
tmp = (mattk->adtyp == AD_STON ? 0 : 1);
case AD_TLPT:
if (!cancelled && tmp < mdef->mhp && !tele_restrict(mdef)) {
char mdef_Monnam[BUFSZ];
+ boolean wasseen = canspotmon(mdef);
/* save the name before monster teleports, otherwise
we'll get "it" in the suddenly disappears message */
- if (vis)
+ if (vis && wasseen)
Strcpy(mdef_Monnam, Monnam(mdef));
mdef->mstrategy &= ~STRAT_WAITFORU;
(void) rloc(mdef, TRUE);
- if (vis && !canspotmon(mdef) && mdef != u.usteed)
+ if (vis && wasseen && !canspotmon(mdef) && mdef != u.usteed)
+/*JP
pline("%s suddenly disappears!", mdef_Monnam);
+*/
+ pline("%s\82Í\93Ë\91R\8fÁ\82¦\82½\81I", mdef_Monnam);
}
break;
case AD_SLEE:
if (!cancelled && !mdef->msleeping
&& sleep_monst(mdef, rnd(10), -1)) {
- if (vis) {
+ if (vis && canspotmon(mdef)) {
Strcpy(buf, Monnam(mdef));
+/*JP
pline("%s is put to sleep by %s.", buf, mon_nam(magr));
+*/
+ pline("%s\82Í%s\82É\82æ\82Á\82Ä\96°\82ç\82³\82ê\82½\81D", buf, mon_nam(magr));
}
mdef->mstrategy &= ~STRAT_WAITFORU;
slept_monst(mdef);
break;
case AD_PLYS:
if (!cancelled && mdef->mcanmove) {
- if (vis) {
+ if (vis && canspotmon(mdef)) {
Strcpy(buf, Monnam(mdef));
+/*JP
pline("%s is frozen by %s.", buf, mon_nam(magr));
+*/
+ pline("%s\82Í%s\82É\82æ\82Á\82Ä\93®\82¯\82È\82\82È\82Á\82½\81D", buf, mon_nam(magr));
}
paralyze_monst(mdef, rnd(10));
}
mon_adjust_speed(mdef, -1, (struct obj *) 0);
mdef->mstrategy &= ~STRAT_WAITFORU;
- if (mdef->mspeed != oldspeed && vis)
+ if (mdef->mspeed != oldspeed && vis && canspotmon(mdef))
+/*JP
pline("%s slows down.", Monnam(mdef));
+*/
+ pline("%s\82Í\93®\8dì\82ª\82Ì\82ë\82\82È\82Á\82½\81D", Monnam(mdef));
}
break;
case AD_CONF:
* we still should check for it).
*/
if (!magr->mcan && !mdef->mconf && !magr->mspec_used) {
- if (vis)
+ if (vis && canseemon(mdef))
+/*JP
pline("%s looks confused.", Monnam(mdef));
+*/
+ pline("%s\82Í\8d¬\97\90\82µ\82Ä\82¢\82é\82æ\82¤\82É\8c©\82¦\82é\81D", Monnam(mdef));
mdef->mconf = 1;
mdef->mstrategy &= ~STRAT_WAITFORU;
}
if (can_blnd(magr, mdef, mattk->aatyp, (struct obj *) 0)) {
register unsigned rnd_tmp;
- if (vis && mdef->mcansee)
+ if (vis && mdef->mcansee && canspotmon(mdef))
+/*JP
pline("%s is blinded.", Monnam(mdef));
+*/
+ pline("%s\82Í\96Ú\82ª\8c©\82¦\82È\82\82È\82Á\82½\81D", Monnam(mdef));
rnd_tmp = d((int) mattk->damn, (int) mattk->damd);
if ((rnd_tmp += mdef->mblinded) > 127)
rnd_tmp = 127;
break;
case AD_HALU:
if (!magr->mcan && haseyes(pd) && mdef->mcansee) {
- if (vis)
+ if (vis && canseemon(mdef))
+#if 0 /*JP:T*/
pline("%s looks %sconfused.", Monnam(mdef),
mdef->mconf ? "more " : "");
+#else
+ pline("%s\82Í%s\8d¬\97\90\82µ\82Ä\82¢\82é\82æ\82¤\82É\8c©\82¦\82é\81D", Monnam(mdef),
+ mdef->mconf ? "\82Ü\82·\82Ü\82·" : "");
+#endif
mdef->mconf = 1;
mdef->mstrategy &= ~STRAT_WAITFORU;
}
if (is_were(pd) && pd->mlet != S_HUMAN)
were_change(mdef);
if (pd == &mons[PM_CLAY_GOLEM]) {
- if (vis) {
+ if (vis && canseemon(mdef)) {
+#if 0 /*JP*/
pline("Some writing vanishes from %s head!",
s_suffix(mon_nam(mdef)));
+#else
+ pline("\82¢\82\82Â\82©\82Ì\95¶\8e\9a\82ª%s\82Ì\93ª\82©\82ç\8fÁ\82¦\82½\81I",
+ mon_nam(mdef));
+#endif
+/*JP
pline("%s is destroyed!", Monnam(mdef));
+*/
+ pline("%s\82Í\94j\89ó\82³\82ê\82½\81I", Monnam(mdef));
}
mondied(mdef);
if (mdef->mhp > 0)
return 0;
else if (mdef->mtame && !vis)
+/*JP
You(brief_feeling, "strangely sad");
+*/
+ You(brief_feeling, "\96\82É\94ß\82µ\82¢");
return (MM_DEF_DIED
| (grow_up(magr, mdef) ? 0 : MM_AGR_DIED));
}
if (!Deaf) {
if (!vis)
+/*JP
You_hear("laughter.");
- else
+*/
+ You_hear("\8fÎ\82¢\90º\82ð\95·\82¢\82½\81D");
+ else if (canseemon(magr))
+/*JP
pline("%s chuckles.", Monnam(magr));
+*/
+ pline("%s\82Í\82\82·\82\82·\8fÎ\82Á\82½\81D", Monnam(magr));
}
}
break;
*/
{
struct obj *gold = findgold(mdef->minvent);
+
if (!gold)
break;
obj_extract_self(gold);
add_to_minv(magr, gold);
}
mdef->mstrategy &= ~STRAT_WAITFORU;
- if (vis) {
+ if (vis && canseemon(mdef)) {
Strcpy(buf, Monnam(magr));
+/*JP
pline("%s steals some gold from %s.", buf, mon_nam(mdef));
+*/
+ pline("%s\82Í%s\82©\82ç\8bà\82ð\93\90\82ñ\82¾\81D", buf, mon_nam(mdef));
}
if (!tele_restrict(magr)) {
+ boolean couldspot = canspotmon(magr);
(void) rloc(magr, TRUE);
- if (vis && !canspotmon(magr))
+ if (vis && couldspot && !canspotmon(magr))
+/*JP
pline("%s suddenly disappears!", buf);
+*/
+ pline("%s\82Í\93Ë\91R\8fÁ\82¦\82½\81I", buf);
}
break;
case AD_DRLI:
if (!cancelled && !rn2(3) && !resists_drli(mdef)) {
tmp = d(2, 6);
- if (vis)
+ if (vis && canspotmon(mdef))
+/*JP
pline("%s suddenly seems weaker!", Monnam(mdef));
+*/
+ pline("%s\82Í\93Ë\91R\8eã\82\82È\82Á\82½\82æ\82¤\82É\8c©\82¦\82½\81I", Monnam(mdef));
mdef->mhpmax -= tmp;
if (mdef->m_lev == 0)
tmp = mdef->mhp;
if (vis)
Strcpy(onambuf, doname(otmp));
(void) add_to_minv(magr, otmp);
- if (vis) {
+ if (vis && canseemon(mdef)) {
Strcpy(buf, Monnam(magr));
+/*JP
pline("%s steals %s from %s!", buf, onambuf, mdefnambuf);
+*/
+ pline("%s\82Í%s\82©\82ç%s\82ð\93\90\82ñ\82¾\81I", buf, mdefnambuf, onambuf);
}
possibly_unwield(mdef, FALSE);
mdef->mstrategy &= ~STRAT_WAITFORU;
return (MM_DEF_DIED
| (grow_up(magr, mdef) ? 0 : MM_AGR_DIED));
if (pa->mlet == S_NYMPH && !tele_restrict(magr)) {
+ boolean couldspot = canspotmon(magr);
+
(void) rloc(magr, TRUE);
- if (vis && !canspotmon(magr))
+ if (vis && couldspot && !canspotmon(magr))
+/*JP
pline("%s suddenly disappears!", buf);
+*/
+ pline("%s\82Í\93Ë\91R\8fÁ\82¦\82½\81I", buf);
}
}
tmp = 0;
break;
case AD_DREN:
if (!cancelled && !rn2(4))
- xdrainenergym(mdef, vis && mattk->aatyp != AT_ENGL);
+ xdrainenergym(mdef, (boolean) (vis && canspotmon(mdef)
+ && mattk->aatyp != AT_ENGL));
tmp = 0;
break;
case AD_DRST:
case AD_DRDX:
case AD_DRCO:
if (!cancelled && !rn2(8)) {
- if (vis)
+ if (vis && canspotmon(magr))
+#if 0 /*JP:T*/
pline("%s %s was poisoned!", s_suffix(Monnam(magr)),
mpoisons_subj(magr, mattk));
+#else
+ pline("%s\82Ì%s\82Í\93Å\82³\82ê\82Ä\82¢\82é\81I", Monnam(magr),
+ mpoisons_subj(magr, mattk));
+#endif
if (resists_poison(mdef)) {
- if (vis)
+ if (vis && canspotmon(mdef) && canspotmon(magr))
+/*JP
pline_The("poison doesn't seem to affect %s.",
+*/
+ pline("%s\82Í\93Å\82Ì\89e\8b¿\82ð\8eó\82¯\82È\82¢\81D",
mon_nam(mdef));
} else {
if (rn2(10))
tmp += rn1(10, 6);
else {
- if (vis)
+ if (vis && canspotmon(mdef))
+/*JP
pline_The("poison was deadly...");
+*/
+ pline("\93Å\82Í\92v\8e\80\97Ê\82¾\82Á\82½\81D\81D\81D");
tmp = mdef->mhp;
}
}
break;
case AD_DRIN:
if (notonhead || !has_head(pd)) {
- if (vis)
+ if (vis && canspotmon(mdef))
+/*JP
pline("%s doesn't seem harmed.", Monnam(mdef));
+*/
+ pline("%s\82Í\8f\9d\82Â\82¢\82½\82æ\82¤\82É\82Í\8c©\82¦\82È\82¢\81D", Monnam(mdef));
/* Not clear what to do for green slimes */
tmp = 0;
break;
}
if ((mdef->misc_worn_check & W_ARMH) && rn2(8)) {
- if (vis) {
+ if (vis && canspotmon(magr) && canseemon(mdef)) {
Strcpy(buf, s_suffix(Monnam(mdef)));
+#if 0 /*JP*/
pline("%s helmet blocks %s attack to %s head.", buf,
s_suffix(mon_nam(magr)), mhis(mdef));
+#else
+ pline("%s\82Ì\8a\95\82Í%s\82Ì\93ª\82Ö\82Ì\8dU\8c\82\82ð\96h\82¢\82¾\81D", buf,
+ mon_nam(magr));
+#endif
}
break;
}
break; /* physical damage only */
if (!rn2(4) && !slimeproof(pd)) {
if (!munslime(mdef, FALSE) && mdef->mhp > 0) {
- if (newcham(mdef, &mons[PM_GREEN_SLIME], FALSE, vis))
+ if (newcham(mdef, &mons[PM_GREEN_SLIME], FALSE, vis && canseemon(mdef)))
pd = mdef->data;
mdef->mstrategy &= ~STRAT_WAITFORU;
res = MM_HIT;
{
if ((mon->msleeping || !mon->mcanmove) && mon == u.ustuck
&& !sticks(youmonst.data) && !u.uswallow) {
+/*JP
pline("%s grip relaxes.", s_suffix(Monnam(mon)));
+*/
+ pline("%s\82Ì\88¬\82é\97Í\82ª\8eã\82\82È\82Á\82½\81D", Monnam(mon));
unstuck(mon);
}
}
struct monst *mdef;
struct obj *obj;
{
- int dmgtyp;
+ int dmgtyp = -1, chance = 1;
if (!mdef || !obj)
return; /* just in case */
- /* AD_ACID is handled in passivemm */
- if (dmgtype(mdef->data, AD_CORR))
+ /* AD_ACID and AD_ENCH are handled in passivemm() and passiveum() */
+ if (dmgtype(mdef->data, AD_CORR)) {
dmgtyp = ERODE_CORRODE;
- else if (dmgtype(mdef->data, AD_RUST))
+ } else if (dmgtype(mdef->data, AD_RUST)) {
dmgtyp = ERODE_RUST;
- else if (dmgtype(mdef->data, AD_FIRE))
+ } else if (dmgtype(mdef->data, AD_FIRE)
+ /* steam vortex: fire resist applies, fire damage doesn't */
+ && mdef->data != &mons[PM_STEAM_VORTEX]) {
dmgtyp = ERODE_BURN;
- else
- return;
- (void) erode_obj(obj, NULL, dmgtyp, EF_GREASE | EF_VERBOSE);
+ chance = 6;
+ }
+
+ if (dmgtyp >= 0 && !rn2(chance))
+ (void) erode_obj(obj, (char *) 0, dmgtyp, EF_GREASE | EF_VERBOSE);
}
STATIC_OVL void
struct obj *otemp;
{
if (flags.verbose && !Blind && mon_visible(magr)) {
+#if 0 /*JP*/
pline("%s %s %s%s %s at %s.", Monnam(magr),
(objects[otemp->otyp].oc_dir & PIERCE) ? "thrusts" : "swings",
(otemp->quan > 1L) ? "one of " : "", mhis(magr), xname(otemp),
mon_nam(mdef));
+#else
+ pline((objects[otemp->otyp].oc_dir & PIERCE) ?
+ "%s\82Í%s\82Å%s\82ð\93Ë\82¢\82½\81D" :
+ "%s\82Í%s\82ð\90U\82è\82Ü\82í\82µ%s\82ð\8dU\8c\82\82µ\82½\81D", Monnam(magr),
+ xname(otemp), mon_nam(mdef));
+#endif
}
}
if (mhit && !rn2(2)) {
Strcpy(buf, Monnam(magr));
if (canseemon(magr))
- pline("%s is splashed by %s acid!", buf,
- s_suffix(mon_nam(mdef)));
+#if 0 /*JP:T*/
+ pline("%s is splashed by %s %s!", buf,
+ s_suffix(mon_nam(mdef)), hliquid("acid"));
+#else
+ pline("%s\82Í%s\82Ì%s\82ð\97\81\82Ñ\82½\81I", buf,
+ mon_nam(mdef), hliquid("\8e_"));
+#endif
if (resists_acid(magr)) {
if (canseemon(magr))
+/*JP
pline("%s is not affected.", Monnam(magr));
+*/
+ pline("%s\82Í\89e\8b¿\82ð\8eó\82¯\82È\82¢\81D", Monnam(magr));
tmp = 0;
}
} else
goto assess_dmg;
case AD_ENCH: /* KMH -- remove enchantment (disenchanter) */
if (mhit && !mdef->mcan && otmp) {
- (void) drain_item(otmp);
+ (void) drain_item(otmp, FALSE);
/* No message */
}
break;
tmp = 127;
if (magr->mcansee && haseyes(madat) && mdef->mcansee
&& (perceives(madat) || !mdef->minvis)) {
- Sprintf(buf, "%s gaze is reflected by %%s %%s.",
- s_suffix(Monnam(mdef)));
+ /* construct format string; guard against '%' in Monnam */
+#if 0 /*JP*/
+ Strcpy(buf, s_suffix(Monnam(mdef)));
+#else
+ Strcpy(buf, Monnam(mdef));
+#endif
+ (void) strNsubst(buf, "%", "%%", 0);
+/*JP
+ Strcat(buf, " gaze is reflected by %s %s.");
+*/
+ Strcat(buf, "\82Ì\82É\82ç\82Ý\82Í%s\82É\82æ\82Á\82Ä%s\81D");
if (mon_reflects(magr,
canseemon(magr) ? buf : (char *) 0))
return (mdead | mhit);
Strcpy(buf, Monnam(magr));
if (canseemon(magr))
+#if 0 /*JP*/
pline("%s is frozen by %s gaze!", buf,
s_suffix(mon_nam(mdef)));
+#else
+ pline("%s\82Í%s\82Ì\82É\82ç\82Ý\82Å\93®\82¯\82È\82\82È\82Á\82½\81I", buf,
+ mon_nam(mdef));
+#endif
paralyze_monst(magr, tmp);
return (mdead | mhit);
}
} else { /* gelatinous cube */
Strcpy(buf, Monnam(magr));
if (canseemon(magr))
+/*JP
pline("%s is frozen by %s.", buf, mon_nam(mdef));
+*/
+ pline("%s\82Í%s\82É\82æ\82Á\82Ä\93®\82¯\82È\82\82È\82Á\82½\81D", buf, mon_nam(mdef));
paralyze_monst(magr, tmp);
return (mdead | mhit);
}
case AD_COLD:
if (resists_cold(magr)) {
if (canseemon(magr)) {
+/*JP
pline("%s is mildly chilly.", Monnam(magr));
+*/
+ pline("%s\82Í\97â\82¦\82½\81D", Monnam(magr));
golemeffects(magr, AD_COLD, tmp);
}
tmp = 0;
break;
}
if (canseemon(magr))
+/*JP
pline("%s is suddenly very cold!", Monnam(magr));
+*/
+ pline("%s\82Í\93Ë\91R\93\80\82è\82Ã\82¯\82É\82È\82Á\82½\81I", Monnam(magr));
mdef->mhp += tmp / 2;
if (mdef->mhpmax < mdef->mhp)
mdef->mhpmax = mdef->mhp;
if (!magr->mstun) {
magr->mstun = 1;
if (canseemon(magr))
+#if 0 /*JP*/
pline("%s %s...", Monnam(magr),
makeplural(stagger(magr->data, "stagger")));
+#else
+ pline("%s\82Í%s\81D\81D\81D", Monnam(magr),
+ jpast(stagger(magr->data, "\82æ\82ë\82ß\82")));
+#endif
}
tmp = 0;
break;
case AD_FIRE:
if (resists_fire(magr)) {
if (canseemon(magr)) {
+/*JP
pline("%s is mildly warmed.", Monnam(magr));
+*/
+ pline("%s\82Í\92g\82©\82\82È\82Á\82½\81D", Monnam(magr));
golemeffects(magr, AD_FIRE, tmp);
}
tmp = 0;
break;
}
if (canseemon(magr))
+/*JP
pline("%s is suddenly very hot!", Monnam(magr));
+*/
+ pline("%s\82Í\93Ë\91R\82Æ\82Ä\82à\94M\82\82È\82Á\82½\81I", Monnam(magr));
break;
case AD_ELEC:
if (resists_elec(magr)) {
if (canseemon(magr)) {
+/*JP
pline("%s is mildly tingled.", Monnam(magr));
+*/
+ pline("%s\82Í\83s\83\8a\83s\83\8a\82µ\82Ä\82¢\82é\81D", Monnam(magr));
golemeffects(magr, AD_ELEC, tmp);
}
tmp = 0;
break;
}
if (canseemon(magr))
+/*JP
pline("%s is jolted with electricity!", Monnam(magr));
+*/
+ pline("%s\82Í\93d\8bC\83V\83\87\83b\83N\82ð\82¤\82¯\82½\81I", Monnam(magr));
break;
default:
tmp = 0;
|| attacktype(mon->data, AT_BREA))) {
mon->mspec_used += d(2, 2);
if (givemsg)
+/*JP
pline("%s seems lethargic.", Monnam(mon));
+*/
+ pline("%s\82Í\96³\8bC\97Í\82É\82È\82Á\82½\82æ\82¤\82¾\81D", Monnam(mon));
}
}