/* Copyright (c) Izchak Miller, Mike Stephenson, Steve Linhart, 1989. */
/* 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"
#define is_bigfoot(x) ((x) == &mons[PM_SASQUATCH])
STATIC_DCL void FDECL(otransit_msg, (struct obj *, BOOLEAN_P, long));
STATIC_DCL void FDECL(drop_to, (coord *, SCHAR_P));
+/*JP
static const char kick_passes_thru[] = "kick passes harmlessly through";
+*/
+static const char kick_passes_thru[] = "\8fR\82è\82Í\83_\83\81\81[\83W\82ð\97^\82¦\82¸\82É\82·\82è\94²\82¯\82½";
STATIC_OVL void
kickdmg(mon, clumsy)
blessed_foot_damage = 1;
if (mon->data == &mons[PM_SHADE] && !blessed_foot_damage) {
+/*JP
pline_The("%s.", kick_passes_thru);
+*/
+ pline_The("%s\81D", kick_passes_thru);
/* doesn't exercise skill or abuse alignment or frighten pet,
and shades have no passive counterattack */
return;
mdx = mon->mx + u.dx;
mdy = mon->my + u.dy;
if (goodpos(mdx, mdy, mon, 0)) {
+/*JP
pline("%s reels from the blow.", Monnam(mon));
+*/
+ pline("%s\82Í\8b\91Å\82³\82ê\82æ\82ë\82ß\82¢\82½\81D", Monnam(mon));
if (m_in_out_region(mon, mdx, mdy)) {
remove_monster(mon->mx, mon->my);
newsym(mon->mx, mon->my);
if (Levitation && !rn2(3) && verysmall(mon->data)
&& !is_flyer(mon->data)) {
+/*JP
pline("Floating in the air, you miss wildly!");
+*/
+ pline("\8bó\92\86\82É\95\82\82¢\82Ä\82¢\82é\82Ì\82Å\81C\91å\82«\82\8aO\82µ\82½\81I");
exercise(A_DEX, FALSE);
(void) passive(mon, FALSE, 1, AT_KICK, FALSE);
return;
if (mon->data == &mons[PM_SHADE] && (!uarmf || !uarmf->blessed)) {
/* doesn't matter whether it would have hit or missed,
and shades have no passive counterattack */
+/*JP
Your("%s %s.", kick_passes_thru, mon_nam(mon));
+*/
+ You("%s\82ð\8fR\82Á\82½\82ª\81C%s\81D", mon_nam(mon), kick_passes_thru);
break; /* skip any additional kicks */
} else if (tmp > (kickdieroll = rnd(20))) {
+/*JP
You("kick %s.", mon_nam(mon));
+*/
+ You("%s\82ð\8fR\82Á\82½\81D", mon_nam(mon));
sum = damageum(mon, uattk);
(void) passive(mon, (boolean) (sum > 0), (sum != 2), AT_KICK,
FALSE);
if (!rn2((i < j / 10) ? 2 : (i < j / 5) ? 3 : 4)) {
if (martial() && !rn2(2))
goto doit;
+/*JP
Your("clumsy kick does no damage.");
+*/
+ Your("\95s\8aí\97p\82È\8fR\82è\82Å\83_\83\81\81[\83W\82ð\97^\82¦\82ç\82ê\82È\82©\82Á\82½\81D");
(void) passive(mon, FALSE, 1, AT_KICK, FALSE);
return;
}
else if (uarm && objects[uarm->otyp].oc_bulky && ACURR(A_DEX) < rnd(25))
clumsy = TRUE;
doit:
+/*JP
You("kick %s.", mon_nam(mon));
+*/
+ You("%s\82ð\8fR\82Á\82½\81D", mon_nam(mon));
if (!rn2(clumsy ? 3 : 4) && (clumsy || !bigmonst(mon->data))
&& mon->mcansee && !mon->mtrapped && !thick_skinned(mon->data)
&& mon->data->mlet != S_EEL && haseyes(mon->data) && mon->mcanmove
&& !mon->mstun && !mon->mconf && !mon->msleeping
&& mon->data->mmove >= 12) {
if (!nohands(mon->data) && !rn2(martial() ? 5 : 3)) {
+#if 0 /*JP:T*/
pline("%s blocks your %skick.", Monnam(mon),
clumsy ? "clumsy " : "");
+#else
+ pline("%s\82Í\82 \82È\82½\82Ì%s\8fR\82è\82ð\96h\82¢\82¾\81D", Monnam(mon),
+ clumsy ? "\95s\8aí\97p\82È" : "");
+#endif
(void) passive(mon, FALSE, 1, AT_KICK, FALSE);
return;
} else {
unmap_object(x, y);
newsym(x, y);
}
+#if 0 /*JP*/
pline("%s %s, %s evading your %skick.", Monnam(mon),
(!level.flags.noteleport && can_teleport(mon->data))
? "teleports"
? "slides"
: "jumps",
clumsy ? "easily" : "nimbly", clumsy ? "clumsy " : "");
+#else
+ pline("%s\82Í%s\81C%s\82 \82È\82½\82Ì%s\8fR\82è\82ð\82½\82\82Ý\82É\94ð\82¯\82½\81D", Monnam(mon),
+ (!level.flags.noteleport && can_teleport(mon->data))
+ ? "\8fu\8aÔ\88Ú\93®\82µ"
+ : is_floater(mon->data) ? "\95\82\82«"
+ : is_flyer(mon->data) ? "\82Í\82Î\82½\82«"
+ : (nolimbs(mon->data)
+ || slithy(mon->data))
+ ? "\89¡\82É\8a\8a\82è"
+ : "\92µ\82Ë",
+ clumsy ? "\8ay\81X\82Æ" : "\91f\91\81\82", clumsy ? "\95s\8aí\97p\82È" : "");
+#endif
(void) passive(mon, FALSE, 1, AT_KICK, FALSE);
return;
}
} else if (!mtmp->mcanmove) {
/* too light to do real damage */
if (canseemon(mtmp)) {
+#if 0 /*JP:T*/
pline_The("%s harmlessly %s %s.", xname(gold),
otense(gold, "hit"), mon_nam(mtmp));
+#else
+ pline("%s\82Í%s\82É\96½\92\86\82µ\82½\81D", xname(gold),
+ mon_nam(mtmp));
+#endif
msg_given = TRUE;
}
} else {
setmangry(mtmp);
/* greedy monsters catch gold */
if (cansee(mtmp->mx, mtmp->my))
+/*JP
pline("%s catches the gold.", Monnam(mtmp));
+*/
+ pline("%s\82Í\8bà\89Ý\82ð\83L\83\83\83b\83`\82µ\82½\81D", Monnam(mtmp));
(void) mpickobj(mtmp, gold);
gold = (struct obj *) 0; /* obj has been freed */
if (mtmp->isshk) {
robbed -= value;
if (robbed < 0L)
robbed = 0L;
+#if 0 /*JP*/
pline_The("amount %scovers %s recent losses.",
!robbed ? "" : "partially ", mhis(mtmp));
+#else
+ pline("%s%s\91¹\8e¸\82ð\95â\93U\82·\82é\82Ì\82É\8eg\82í\82ê\82½\81D",
+ !robbed ? "" : "\8bà\82Ì\88ê\95\94\82Í", mhis(mtmp));
+#endif
ESHK(mtmp)->robbed = robbed;
if (!robbed)
make_happy_shk(mtmp, FALSE);
} else {
if (mtmp->mpeaceful) {
ESHK(mtmp)->credit += value;
+#if 0 /*JP*/
You("have %ld %s in credit.", ESHK(mtmp)->credit,
currency(ESHK(mtmp)->credit));
+#else
+ You("%ld%s\82ð\91Ý\82µ\82É\82µ\82½\81D", ESHK(mtmp)->credit,
+ currency(ESHK(mtmp)->credit));
+#endif
} else
+/*JP
verbalize("Thanks, scum!");
+*/
+ verbalize("\82 \82è\82ª\82Æ\82æ\81I\82\82»\82Á\82½\82ê\81I");
}
} else if (mtmp->ispriest) {
if (mtmp->mpeaceful)
+/*JP
verbalize("Thank you for your contribution.");
+*/
+ verbalize("\8añ\95t\82É\8a´\8eÓ\82µ\82Ü\82·\81D");
else
+/*JP
verbalize("Thanks, scum!");
+*/
+ verbalize("\82 \82è\82ª\82Æ\82æ\81I\82\82»\82Á\82½\82ê\81I");
} else if (mtmp->isgd) {
umoney = money_cnt(invent);
/* Some of these are iffy, because a hostile guard
}
}
if (mtmp->mpeaceful)
+/*JP
verbalize("That should do. Now beat it!");
+*/
+ verbalize("\82È\82ñ\82¾\82¢\81H\82±\82ê\82Í\81H");
else
+/*JP
verbalize("That's not enough, coward!");
+*/
+ verbalize("\82»\82ñ\82È\82à\82Ì\82Å\8dÏ\82Þ\82©\81C\94Ú\8b¯\8eÒ\81I");
}
return TRUE;
}
otmp2 = otmp->nobj;
if (objects[otmp->otyp].oc_material == GLASS
&& otmp->oclass != GEM_CLASS && !obj_resists(otmp, 33, 100)) {
+/*JP
result = "shatter";
+*/
+ result = "\83K\83`\83\83\83\93";
} else if (otmp->otyp == EGG && !rn2(3)) {
+/*JP
result = "cracking";
+*/
+ result = "\83O\83V\83\83\83b";
}
if (result) {
if (otmp->otyp == MIRROR)
* but it's always exactly 1 that breaks */
if (otmp->otyp == EGG && otmp->spe && otmp->corpsenm >= LOW_PM)
change_luck(-1);
+/*JP
You_hear("a muffled %s.", result);
+*/
+ You_hear("\82±\82à\82Á\82½%s\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D", result);
if (costly) {
if (frominv && !otmp->unpaid)
otmp->no_charge = 1;
}
if (costly && loss) {
if (!insider) {
+/*JP
You("caused %ld %s worth of damage!", loss, currency(loss));
+*/
+ You("%ld%s\95ª\82Ì\91¹\8aQ\82ð\82Ð\82«\82¨\82±\82µ\82½\81I", loss, currency(loss));
make_angry_shk(shkp, x, y);
} else {
+#if 0 /*JP*/
You("owe %s %ld %s for objects destroyed.", mon_nam(shkp), loss,
currency(loss));
+#else
+ You("\8aí\95¨\94j\91¹\82Å%s\82É%ld%s\82Ì\8eØ\82è\82ð\82Â\82\82Á\82½\81D", mon_nam(shkp), loss,
+ currency(loss));
+#endif
}
}
}
|| trap->ttyp == WEB)) {
if (!trap->tseen)
find_trap(trap);
+#if 0 /*JP*/
You_cant("kick %s that's in a %s!", something,
Hallucination ? "tizzy" : (trap->ttyp == WEB) ? "web"
: "pit");
+#else
+ You("%s\82Å\82Í%s\82ð\8fR\82é\82±\82Æ\82ª\82Å\82«\82È\82¢\81I",
+ Hallucination ? "\8d¬\97\90\82µ\82½\8fó\91Ô"
+ : trap->ttyp == WEB
+ ? "\82\82à\82Ì\91\83\82Ì\92\86" : "\97\8e\82µ\8c\8a\82Ì\92\86",
+ something);
+#endif
return 1;
}
if (Fumbling && !rn2(3)) {
+/*JP
Your("clumsy kick missed.");
+*/
+ Your("\95s\8aí\97p\82È\8fR\82è\82Í\8aO\82ê\82½\81D");
return 1;
}
if (!uarmf && kickedobj->otyp == CORPSE
&& touch_petrifies(&mons[kickedobj->corpsenm]) && !Stone_resistance) {
+#if 0 /*JP*/
You("kick %s with your bare %s.",
corpse_xname(kickedobj, (const char *) 0, CXN_PFX_THE),
makeplural(body_part(FOOT)));
+#else
+ You("\91f%s\82Å%s\82ð\8fR\82Á\82½\81D",
+ body_part(FOOT),
+ corpse_xname(kickedobj, (const char *) 0, CXN_PFX_THE));
+#endif
if (poly_when_stoned(youmonst.data) && polymon(PM_STONE_GOLEM)) {
; /* hero has been transformed but kick continues */
} else {
/* normalize body shape here; foot, not body_part(FOOT) */
+/*JP
Sprintf(killer.name, "kicking %s barefoot",
+*/
+ Sprintf(killer.name, "\8cC\96³\82µ\82Å%s\82ð\8fR\82Á\82Ä",
killer_xname(kickedobj));
instapetrify(killer.name);
}
if ((!martial() && rn2(20) > ACURR(A_DEX))
|| IS_ROCK(levl[u.ux][u.uy].typ) || closed_door(u.ux, u.uy)) {
if (Blind)
+/*JP
pline("It doesn't come loose.");
+*/
+ pline("\82Ñ\82\82Æ\82à\82µ\82È\82¢\81D");
else
+#if 0 /*JP*/
pline("%s %sn't come loose.",
The(distant_name(kickedobj, xname)),
otense(kickedobj, "do"));
+#else
+ pline("%s\82Í\82Ñ\82\82Æ\82à\82µ\82È\82¢\81D",
+ distant_name(kickedobj, xname));
+#endif
return (!rn2(3) || martial());
}
if (Blind)
+/*JP
pline("It comes loose.");
+*/
+ pline("\89½\82©\82ª\8aÉ\82ñ\82Å\82Æ\82ê\82½\81D");
else
+#if 0 /*JP*/
pline("%s %s loose.", The(distant_name(kickedobj, xname)),
otense(kickedobj, "come"));
+#else
+ pline("%s\82Í\8aÉ\82ñ\82Å\82Æ\82ê\82½\81D", distant_name(kickedobj, xname));
+#endif
obj_extract_self(kickedobj);
newsym(x, y);
if (costly && (!costly_spot(u.ux, u.uy)
|| !index(u.urooms, *in_rooms(x, y, SHOPBASE))))
addtobill(kickedobj, FALSE, FALSE, FALSE);
+/*JP
if (!flooreffects(kickedobj, u.ux, u.uy, "fall")) {
+*/
+ if (!flooreffects(kickedobj, u.ux, u.uy, "\97\8e\82¿\82é")) {
place_object(kickedobj, u.ux, u.uy);
stackobj(kickedobj);
newsym(u.ux, u.uy);
boolean otrp = kickedobj->otrapped;
if (range < 2)
+/*JP
pline("THUD!");
+*/
+ pline("\83K\83\93\81I");
container_impact_dmg(kickedobj, x, y);
if (kickedobj->olocked) {
if (!rn2(5) || (martial() && !rn2(2))) {
+/*JP
You("break open the lock!");
+*/
+ You("\8c®\82ð\89ó\82µ\8aJ\82¯\82½\81I");
breakchestlock(kickedobj, FALSE);
if (otrp)
(void) chest_trap(kickedobj, LEG, FALSE);
}
} else {
if (!rn2(3) || (martial() && !rn2(2))) {
+/*JP
pline_The("lid slams open, then falls shut.");
+*/
+ pline("\8aW\82ª\82Î\82½\82ñ\82Æ\8aJ\82«\81C\95Â\82¶\82½\81D");
kickedobj->lknown = 1;
if (otrp)
(void) chest_trap(kickedobj, LEG, FALSE);
*/
if (range < 2) {
if (!Is_box(kickedobj))
+/*JP
pline("Thump!");
+*/
+ pline("\83S\83c\83\93\81I");
return (!rn2(3) || martial());
}
}
if (slide && !Blind)
+#if 0 /*JP*/
pline("Whee! %s %s across the %s.", Doname2(kickedobj),
otense(kickedobj, "slide"), surface(x, y));
+#else
+ pline("\83Y\83\8b\83b\81I%s\82Í%s\82Ì\8fã\82ð\8a\8a\82Á\82½\81D", Doname2(kickedobj),
+ surface(x,y));
+#endif
if (costly && !isgold)
addtobill(kickedobj, FALSE, FALSE, TRUE);
FALSE);
}
+/*JP
if (flooreffects(kickedobj, bhitpos.x, bhitpos.y, "fall"))
+*/
+ if(flooreffects(kickedobj, bhitpos.x, bhitpos.y, "\97\8e\82¿\82é"))
return 1;
if (kickedobj->unpaid)
subfrombill(kickedobj, shkp);
if (kickedobj)
what = killer_xname(kickedobj);
else if (maploc == &nowhere)
+/*JP
what = "nothing";
+*/
+ what = "\89½\82à\82È\82¢\82Æ\82±\82ë";
else if (IS_DOOR(maploc->typ))
+/*JP
what = "a door";
+*/
+ what = "\94à";
else if (IS_TREE(maploc->typ))
+/*JP
what = "a tree";
+*/
+ what = "\96Ø";
else if (IS_STWALL(maploc->typ))
+/*JP
what = "a wall";
+*/
+ what = "\95Ç";
else if (IS_ROCK(maploc->typ))
+/*JP
what = "a rock";
+*/
+ what = "\8aâ";
else if (IS_THRONE(maploc->typ))
+/*JP
what = "a throne";
+*/
+ what = "\8bÊ\8dÀ";
else if (IS_FOUNTAIN(maploc->typ))
+/*JP
what = "a fountain";
+*/
+ what = "\90ò";
else if (IS_GRAVE(maploc->typ))
+/*JP
what = "a headstone";
+*/
+ what = "\95æ\90Î";
else if (IS_SINK(maploc->typ))
+/*JP
what = "a sink";
+*/
+ what = "\97¬\82µ\91ä";
else if (IS_ALTAR(maploc->typ))
+/*JP
what = "an altar";
+*/
+ what = "\8dÕ\92d";
else if (IS_DRAWBRIDGE(maploc->typ))
+/*JP
what = "a drawbridge";
+*/
+ what = "\92µ\82Ë\8b´";
else if (maploc->typ == STAIRS)
+/*JP
what = "the stairs";
+*/
+ what = "\8aK\92i";
else if (maploc->typ == LADDER)
+/*JP
what = "a ladder";
+*/
+ what = "\82Í\82µ\82²";
else if (maploc->typ == IRONBARS)
+/*JP
what = "an iron bar";
+*/
+ what = "\93S\96_";
else
+/*JP
what = "something weird";
+*/
+ what = "\89½\82©\96\82È\82à\82Ì";
+#if 0 /*JP*/
return strcat(strcpy(buf, "kicking "), what);
+#else
+ Sprintf(buf, "%s\82ð\8fR\82Á\82Ä", what);
+ return buf;
+#endif
}
int
char buf[BUFSZ];
if (nolimbs(youmonst.data) || slithy(youmonst.data)) {
+/*JP
You("have no legs to kick with.");
+*/
+ You("\89½\82©\82ð\8fR\82ë\82¤\82É\82à\91«\82ª\82È\82¢\81D");
no_kick = TRUE;
} else if (verysmall(youmonst.data)) {
+/*JP
You("are too small to do any kicking.");
+*/
+ You("\89½\82©\82ð\8fR\82é\82É\82Í\8f¬\82³\82·\82¬\82é\81D");
no_kick = TRUE;
} else if (u.usteed) {
+/*JP
if (yn_function("Kick your steed?", ynchars, 'y') == 'y') {
+*/
+ if (yn_function("\94n\82ð\8fR\82é\81H", ynchars, 'y') == 'y') {
+/*JP
You("kick %s.", mon_nam(u.usteed));
+*/
+ You("%s\82ð\8fR\82Á\82½\81D", mon_nam(u.usteed));
kick_steed();
return 1;
} else {
bp, (wl == BOTH_SIDES) ? "are" : "is");
no_kick = TRUE;
} else if (near_capacity() > SLT_ENCUMBER) {
+/*JP
Your("load is too heavy to balance yourself for a kick.");
+*/
+ You("\82½\82\82³\82ñ\82à\82Ì\82ð\8e\9d\82¿\82·\82¬\82Ä\8fR\82è\82Ì\82½\82ß\82Ì\83o\83\89\83\93\83X\82ª\82Æ\82ê\82È\82¢\81D");
no_kick = TRUE;
} else if (youmonst.data->mlet == S_LIZARD) {
+/*JP
Your("legs cannot kick effectively.");
+*/
+ Your("\91«\82Å\82Í\82¤\82Ü\82\8fR\82ê\82È\82¢\81D");
no_kick = TRUE;
} else if (u.uinwater && !rn2(2)) {
+/*JP
Your("slow motion kick doesn't hit anything.");
+*/
+ Your("\92x\82¢\93®\82«\82Ì\8fR\82è\82Å\82Í\96½\92\86\82µ\82æ\82¤\82ª\82È\82¢\81D");
no_kick = TRUE;
} else if (u.utrap) {
no_kick = TRUE;
switch (u.utraptype) {
case TT_PIT:
if (!Passes_walls)
+/*JP
pline("There's not enough room to kick down here.");
+*/
+ pline("\97\8e\82µ\8c\8a\82É\82Í\82Ü\82Á\82Ä\82¢\82é\82Ì\82Å\81C\8fR\82ê\82È\82¢\81D");
else
no_kick = FALSE;
break;
case TT_WEB:
case TT_BEARTRAP:
+/*JP
You_cant("move your %s!", body_part(LEG));
+*/
+ You("%s\82ð\93®\82©\82·\82±\82Æ\82ª\82Å\82«\82È\82¢\81I", body_part(LEG));
break;
default:
break;
if (u.uswallow) {
switch (rn2(3)) {
case 0:
+/*JP
You_cant("move your %s!", body_part(LEG));
+*/
+ You("%s\82ð\93®\82©\82·\82±\82Æ\82ª\82Å\82«\82È\82¢\81I", body_part(LEG));
break;
case 1:
if (is_animal(u.ustuck->data)) {
+/*JP
pline("%s burps loudly.", Monnam(u.ustuck));
+*/
+ pline("%s\82Í\91å\82«\82È\83Q\83b\83v\82ð\82µ\82½\81D", Monnam(u.ustuck));
break;
}
default:
+/*JP
Your("feeble kick has no effect.");
+*/
+ Your("\8eã\81X\82µ\82¢\8fR\82è\82Í\8cø\89Ê\82ª\82È\82¢\81D"); break;
break;
}
return 1;
} else if (u.utrap && u.utraptype == TT_PIT) {
/* must be Passes_walls */
+/*JP
You("kick at the side of the pit.");
+*/
+ You("\97\8e\82µ\8c\8a\82Ì\95Ç\82ð\8fR\82Á\82½\81D");
return 1;
}
if (Levitation) {
if (isok(xx, yy) && !IS_ROCK(levl[xx][yy].typ)
&& !IS_DOOR(levl[xx][yy].typ)
&& (!Is_airlevel(&u.uz) || !OBJ_AT(xx, yy))) {
+/*JP
You("have nothing to brace yourself against.");
+*/
+ pline("\8ex\82¦\82É\82Å\82«\82é\82æ\82¤\82È\82à\82Ì\82ª\96³\82¢\81D");
return 0;
}
}
}
if (is_pool(x, y) ^ !!u.uinwater) {
/* objects normally can't be removed from water by kicking */
+/*JP
You("splash some water around.");
+*/
+ You("\90\85\82ð\89ñ\82è\82É\82Ü\82«\82¿\82ç\82µ\82½\81D");
return 1;
}
if (maploc->typ == SDOOR) {
if (!Levitation && rn2(30) < avrg_attrib) {
cvt_sdoor_to_door(maploc); /* ->typ = DOOR */
+#if 0 /*JP*/
pline("Crash! %s a secret door!",
/* don't "kick open" when it's locked
unless it also happens to be trapped */
(maploc->doormask & (D_LOCKED | D_TRAPPED)) == D_LOCKED
? "Your kick uncovers"
: "You kick open");
+#else
+ pline("\83K\83V\83\83\83\93\81I\82 \82È\82½\82Í\94é\96§\82Ì\94à\82ð%s\82½\81I",
+ (maploc->doormask & (D_LOCKED|D_TRAPPED)) == D_LOCKED
+ ? "\94\8c©\82µ"
+ : "\8fR\82è\8aJ\82¯");
+#endif
exercise(A_DEX, TRUE);
if (maploc->doormask & D_TRAPPED) {
maploc->doormask = D_NODOOR;
+/*JP
b_trapped("door", FOOT);
+*/
+ b_trapped("\94à", FOOT);
} else if (maploc->doormask != D_NODOOR
&& !(maploc->doormask & D_LOCKED))
maploc->doormask = D_ISOPEN;
}
if (maploc->typ == SCORR) {
if (!Levitation && rn2(30) < avrg_attrib) {
+/*JP
pline("Crash! You kick open a secret passage!");
+*/
+ pline("\83K\83V\83\83\83\93\81I\82 \82È\82½\82Í\94é\96§\82Ì\92Ê\98H\82ð\8fR\82è\82â\82Ô\82Á\82½\81I");
exercise(A_DEX, TRUE);
maploc->typ = CORR;
feel_newsym(x, y); /* we know it's gone */
maploc->doormask = 0; /* don't leave loose ends.. */
(void) mkgold((long) rnd(200), x, y);
if (Blind)
+/*JP
pline("CRASH! You destroy it.");
+*/
+ pline("\83K\83V\83\83\83\93\81I\82 \82È\82½\82Í\89½\82©\82ð\94j\89ó\82µ\82½\81D");
else {
+/*JP
pline("CRASH! You destroy the throne.");
+*/
+ pline("\83K\83V\83\83\83\93\81I\82 \82È\82½\82Í\8bÊ\8dÀ\82ð\94j\89ó\82µ\82½\81D");
newsym(x, y);
}
exercise(A_DEX, TRUE);
rnd_class(DILITHIUM_CRYSTAL, LUCKSTONE - 1), x, y,
FALSE, TRUE);
if (Blind)
+/*JP
You("kick %s loose!", something);
+*/
+ You("\82È\82É\82©\82ð\8fR\82è\8eU\82ç\82µ\82½\81I");
else {
+/*JP
You("kick loose some ornamental coins and gems!");
+*/
+ You("\91\95\8fü\97p\82Ì\8bà\89Ý\82â\95ó\90Î\82ð\8fR\82è\8eU\82ç\82µ\82½\81I");
newsym(x, y);
}
/* prevent endless milking */
if (IS_ALTAR(maploc->typ)) {
if (Levitation)
goto dumb;
+/*JP
You("kick %s.", (Blind ? something : "the altar"));
+*/
+ You("%s\82ð\8fR\82Á\82½\81D", (Blind ? "\89½\82©" : "\8dÕ\92d"));
if (!rn2(3))
goto ouch;
altar_wrath(x, y);
if (IS_FOUNTAIN(maploc->typ)) {
if (Levitation)
goto dumb;
+/*JP
You("kick %s.", (Blind ? something : "the fountain"));
+*/
+ You("%s\82ð\8fR\82Á\82½\81D",(Blind ? "\89½\82©" : "\90ò"));
if (!rn2(3))
goto ouch;
/* make metal boots rust */
if (uarmf && rn2(3))
+/*JP
if (water_damage(uarmf, "metal boots", TRUE) == ER_NOTHING) {
+*/
+ if (water_damage(uarmf, "\8bà\91®\82Ì\8cC", TRUE) == ER_NOTHING) {
+/*JP
Your("boots get wet.");
+*/
+ Your("\8cC\82Í\94G\82ê\82½\81D");
/* could cause short-lived fumbling here */
}
exercise(A_DEX, TRUE);
/* nothing, fruit or trouble? 75:23.5:1.5% */
if (rn2(3)) {
if (!rn2(6) && !(mvitals[PM_KILLER_BEE].mvflags & G_GONE))
+#if 0 /*JP*/
You_hear("a low buzzing."); /* a warning */
+#else
+ You_hear("\82Ô\81[\82ñ\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D"); /* a warning */
+#endif
goto ouch;
}
if (rn2(15) && !(maploc->looted & TREE_LOOTED)
short frtype = treefruit->otyp;
treefruit->quan = nfruit;
if (is_plural(treefruit))
+/*JP
pline("Some %s fall from the tree!", xname(treefruit));
+*/
+ pline("%s\82ª\89½\8cÂ\82©\96Ø\82©\82ç\97\8e\82¿\82Ä\82«\82½\81I", xname(treefruit));
else
+/*JP
pline("%s falls from the tree!", An(xname(treefruit)));
+*/
+ pline("%s\82ª\96Ø\82©\82ç\97\8e\82¿\82Ä\82«\82½\81I", xname(treefruit));
nfall = scatter(x, y, 2, MAY_HIT, treefruit);
if (nfall != nfruit) {
/* scatter left some in the tree, but treefruit
* may not refer to the correct object */
treefruit = mksobj(frtype, TRUE, FALSE);
treefruit->quan = nfruit - nfall;
+#if 0 /*JP*/
pline("%ld %s got caught in the branches.",
nfruit - nfall, xname(treefruit));
+#else
+ pline("%ld\8cÂ\82Ì%s\82ª\8e}\82É\82Ð\82Á\82©\82©\82Á\82½\81D",
+ nfruit - nfall, xname(treefruit));
+#endif
dealloc_obj(treefruit);
}
exercise(A_DEX, TRUE);
made++;
}
if (made)
+/*JP
pline("You've attracted the tree's former occupants!");
+*/
+ pline("\96Ø\82Ì\90æ\8fZ\96¯\82ð\8bN\82±\82µ\82Ä\82µ\82Ü\82Á\82½\81I");
else
+/*JP
You("smell stale honey.");
+*/
+ pline("\8cÃ\82¢\82Í\82¿\82Ý\82Â\82Ì\82É\82¨\82¢\82ª\82µ\82½\81D");
maploc->looted |= TREE_SWARM;
return 1;
}
goto dumb;
if (rn2(5)) {
if (!Deaf)
+/*JP
pline("Klunk! The pipes vibrate noisily.");
+*/
+ pline("\83K\83\89\83\93\81I\83p\83C\83v\82Í\82¤\82é\82³\82\90U\93®\82µ\82½\81D");
else
+/*JP
pline("Klunk!");
+*/
+ pline("\83K\83\89\83\93\81I");
exercise(A_DEX, TRUE);
return 1;
} else if (!(maploc->looted & S_LPUDDING) && !rn2(3)
&& !(mvitals[PM_BLACK_PUDDING].mvflags & G_GONE)) {
if (Blind)
+/*JP
You_hear("a gushing sound.");
+*/
+ You_hear("\82È\82É\82©\82ª\95¬\8fo\82·\82é\89¹\82ð\95·\82¢\82½\81D");
else
+/*JP
pline("A %s ooze gushes up from the drain!",
+*/
+ pline("%s\89t\91Ì\82ª\94r\90\85\8cû\82©\82ç\82É\82¶\82Ý\8fo\82½\81I",
hcolor(NH_BLACK));
(void) makemon(&mons[PM_BLACK_PUDDING], x, y, NO_MM_FLAGS);
exercise(A_DEX, TRUE);
} else if (!(maploc->looted & S_LDWASHER) && !rn2(3)
&& !(mvitals[washerndx].mvflags & G_GONE)) {
/* can't resist... */
+/*JP
pline("%s returns!", (Blind ? Something : "The dish washer"));
+*/
+ pline("%s\82ª\96ß\82Á\82Ä\82«\82½\81I", (Blind ? "\89½\82©" : "\8eM\90ô\82¢"));
if (makemon(&mons[washerndx], x, y, NO_MM_FLAGS))
newsym(x, y);
maploc->looted |= S_LDWASHER;
exercise(A_DEX, TRUE);
return 1;
} else if (!rn2(3)) {
+#if 0 /*JP*/
pline("Flupp! %s.",
(Blind ? "You hear a sloshing sound"
: "Muddy waste pops up from the drain"));
+#else
+ pline("\82¤\82í\81I%s\81D",
+ (Blind ? "\82 \82È\82½\82Í\81C\83o\83`\83\83\83o\83`\83\83\82·\82é\89¹\82ð\95·\82¢\82½"
+ : "\94r\90\85\8cû\82©\82ç\82Ç\82ë\82Ç\82ë\82Ì\94p\8aü\95¨\82ª\8fo\82Ä\82\82é"));
+#endif
if (!(maploc->looted & S_LRING)) { /* once per sink */
if (!Blind)
+/*JP
You_see("a ring shining in its midst.");
+*/
+ You("\82»\82Ì\92\86\82É\8cõ\82é\8ew\97Ö\82ð\8c©\82Â\82¯\82½\81D");
(void) mkobj_at(RING_CLASS, x, y, TRUE);
newsym(x, y);
exercise(A_DEX, TRUE);
if (!IS_STWALL(maploc->typ) && maploc->ladder == LA_DOWN)
goto dumb;
ouch:
+/*JP
pline("Ouch! That hurts!");
+*/
+ pline("\82¢\82Ä\82Á\81I\89ö\89ä\82µ\82½\81I");
exercise(A_DEX, FALSE);
exercise(A_STR, FALSE);
if (isok(x, y)) {
if (Blind)
feel_location(x, y); /* we know we hit it */
if (is_drawbridge_wall(x, y) >= 0) {
+/*JP
pline_The("drawbridge is unaffected.");
+*/
+ pline("\92µ\82Ë\8b´\82Í\82Ñ\82\82Æ\82à\82µ\82È\82¢\81D");
/* update maploc to refer to the drawbridge */
(void) find_drawbridge(&x, &y);
maploc = &levl[x][y];
dumb:
exercise(A_DEX, FALSE);
if (martial() || ACURR(A_DEX) >= 16 || rn2(3)) {
+/*JP
You("kick at empty space.");
+*/
+ You("\89½\82à\82È\82¢\8bó\8aÔ\82ð\8fR\82Á\82½\81D");
if (Blind)
feel_location(x, y);
} else {
+/*JP
pline("Dumb move! You strain a muscle.");
+*/
+ pline("\82Î\82©\82°\82½\93®\82«\82¾\81I\8bØ\93÷\82ð\92É\82ß\82½\81D");
exercise(A_STR, FALSE);
set_wounded_legs(RIGHT_SIDE, 5 + rnd(5));
}
/* break the door */
if (maploc->doormask & D_TRAPPED) {
if (flags.verbose)
+/*JP
You("kick the door.");
+*/
+ You("\94à\82ð\8fR\82Á\82½\81D");
exercise(A_STR, FALSE);
maploc->doormask = D_NODOOR;
+/*JP
b_trapped("door", FOOT);
+*/
+ b_trapped("\94à", FOOT);
} else if (ACURR(A_STR) > 18 && !rn2(5) && !shopdoor) {
+/*JP
pline("As you kick the door, it shatters to pieces!");
+*/
+ pline("\94à\82ð\8fR\82é\82Æ\81C\82±\82È\82²\82È\82É\82\82¾\82¯\82½\81I");
exercise(A_STR, TRUE);
maploc->doormask = D_NODOOR;
} else {
+/*JP
pline("As you kick the door, it crashes open!");
+*/
+ pline("\94à\82ð\8fR\82é\82Æ\81C\89ó\82ê\82Ä\8aJ\82¢\82½\81I");
exercise(A_STR, TRUE);
maploc->doormask = D_BROKEN;
}
unblock_point(x, y); /* vision */
if (shopdoor) {
add_damage(x, y, 400L);
+/*JP
pay_for_damage("break", FALSE);
+*/
+ pay_for_damage("\94j\89ó\82·\82é", FALSE);
}
if (in_town(x, y))
for (mtmp = fmon; mtmp; mtmp = mtmp->nmon) {
continue;
if (is_watch(mtmp->data) && couldsee(mtmp->mx, mtmp->my)
&& mtmp->mpeaceful) {
+/*JP
mon_yells(mtmp, "Halt, thief! You're under arrest!");
+*/
+ mon_yells(mtmp, "\8e~\82Ü\82ê\93D\96_\81I\82¨\82Ü\82¦\82ð\91ß\95ß\82·\82é\81I");
(void) angry_guards(FALSE);
break;
}
if (Blind)
feel_location(x, y); /* we know we hit it */
exercise(A_STR, TRUE);
+/*JP
pline("WHAMMM!!!");
+*/
+ pline("\82®\82\9f\82\9f\82\9f\82ñ\81I");
if (in_town(x, y))
for (mtmp = fmon; mtmp; mtmp = mtmp->nmon) {
if (DEADMONSTER(mtmp))
&& couldsee(mtmp->mx, mtmp->my)) {
if (levl[x][y].looted & D_WARNED) {
mon_yells(mtmp,
+/*JP
"Halt, vandal! You're under arrest!");
+*/
+ "\8e~\82Ü\82ê\96ì\94Ø\90l\81I\82¨\82Ü\82¦\82ð\91ß\95ß\82·\82é\81I");
(void) angry_guards(FALSE);
} else {
+/*JP
mon_yells(mtmp, "Hey, stop damaging that door!");
+*/
+ mon_yells(mtmp, "\82¨\82¢\81C\94à\82ð\94j\89ó\82·\82é\82Ì\82ð\82â\82ß\82ë\81I");
levl[x][y].looted |= D_WARNED;
}
break;
}
if (dct && cansee(x, y)) { /* at least one object fell */
+/*JP
const char *what = (dct == 1L ? "object falls" : "objects fall");
+*/
+ const char *what = "\95¨";
if (missile)
+#if 0 /*JP:T*/
pline("From the impact, %sother %s.",
dct == oct ? "the " : dct == 1L ? "an" : "", what);
+#else
+ pline("\8fÕ\8c\82\82Å\81C\91¼\82Ì%s\82ª\97\8e\82¿\82½\81D",what);
+#endif
else if (oct == dct)
+#if 0 /*JP:T*/
pline("%s adjacent %s %s.", dct == 1L ? "The" : "All the", what,
gate_str);
+#else
+ pline("\8bß\82\82É\82 \82Á\82½%s\82ª%s\97\8e\82¿\82½\81D", what, gate_str);
+#endif
else
+#if 0 /*JP*/
pline("%s adjacent %s %s.",
dct == 1L ? "One of the" : "Some of the",
dct == 1L ? "objects falls" : what, gate_str);
+#else
+ pline("\8bß\82\82É\82 \82Á\82½%s%s%s\97\8e\82¿\82½\81D",
+ what,
+ dct == 1L ? "\82ª" : "\82Ì\82¢\82\82Â\82©\82ª",
+ gate_str);
+#endif
}
if (costly && shkp && price) {
if (ESHK(shkp)->robbed > robbed) {
+/*JP
You("removed %ld %s worth of goods!", price, currency(price));
+*/
+ You("%ld%s\95ª\82Ì\95i\95¨\82ð\8eæ\82è\82³\82Á\82½\81I", price, currency(price));
if (cansee(shkp->mx, shkp->my)) {
if (ESHK(shkp)->customer[0] == 0)
(void) strncpy(ESHK(shkp)->customer, plname, PL_NSIZ);
if (angry)
+/*JP
pline("%s is infuriated!", Monnam(shkp));
+*/
+ pline("%s\82Í\8c\83\93{\82µ\82½\81I", Monnam(shkp));
else
+/*JP
pline("\"%s, you are a thief!\"", plname);
+*/
+ pline("\81u%s\82ß\81C\82¨\82Ü\82¦\82Í\93D\96_\82¾\82È\81I\81v", plname);
} else
+/*JP
You_hear("a scream, \"Thief!\"");
+*/
+ You_hear("\8bà\90Ø\82è\90º\82ð\95·\82¢\82½\81u\93D\96_\81I\81v");
hot_pursuit(shkp);
(void) angry_guards(FALSE);
return;
}
if (ESHK(shkp)->debit > debit) {
long amt = (ESHK(shkp)->debit - debit);
+#if 0 /*JP*/
You("owe %s %ld %s for goods lost.", Monnam(shkp), amt,
currency(amt));
+#else
+ You("\95i\95¨\8fÁ\8e¸\82Ì\82½\82ß%s\82É%ld%s\82Ì\8eØ\82è\82ð\82Â\82\82Á\82½\81D", Monnam(shkp), amt,
+ currency(amt));
+#endif
}
}
}
|| otmp->otyp == EXPENSIVE_CAMERA) {
if (otmp->otyp == MIRROR)
change_luck(-2);
+/*JP
result = "crash";
+*/
+ result = "\83O\83V\83\83\83b";
} else {
/* penalty for breaking eggs laid by you */
if (otmp->otyp == EGG && otmp->spe && otmp->corpsenm >= LOW_PM)
change_luck((schar) -min(otmp->quan, 5L));
+/*JP
result = "splat";
+*/
+ result = "\83x\83`\83\83\83b";
}
+/*JP
You_hear("a muffled %s.", result);
+*/
+ You_hear("\82±\82à\82Á\82½%s\82Æ\82¢\82¤\89¹\82ð\95·\82¢\82½\81D", result);
obj_extract_self(otmp);
obfree(otmp, (struct obj *) 0);
return TRUE;
{
char obuf[BUFSZ];
+#if 0 /*JP*/
Sprintf(obuf, "%s%s",
(otmp->otyp == CORPSE && type_is_pname(&mons[otmp->corpsenm]))
? ""
: "The ",
cxname(otmp));
+#else
+ Sprintf(obuf, "%s\82Í", xname(otmp));
+#endif
if (num) { /* means: other objects are impacted */
+#if 0 /*JP*/
Sprintf(eos(obuf), " %s %s object%s", otense(otmp, "hit"),
num == 1L ? "another" : "other", num > 1L ? "s" : "");
if (nodrop)
Sprintf(eos(obuf), ".");
else
Sprintf(eos(obuf), " and %s %s.", otense(otmp, "fall"), gate_str);
+#else
+ Sprintf(eos(obuf), "\91¼\82Ì\95¨\91Ì\82É\96½\92\86\82µ\82Ä");
+ if(nodrop)
+ Sprintf(eos(obuf), "\8e~\82Ü\82Á\82½\81D");
+ else
+ Sprintf(eos(obuf), "%s\97\8e\82¿\82½\81D", gate_str);
+#endif
pline1(obuf);
} else if (!nodrop)
+/*JP
pline("%s %s %s.", obuf, otense(otmp, "fall"), gate_str);
+*/
+ pline("%s%s\97\8e\82¿\82½\81D", obuf, gate_str);
}
/* migration destination for objects which fall down to next level */
if ((xdnstair == x && ydnstair == y)
|| (sstairs.sx == x && sstairs.sy == y && !sstairs.up)) {
+/*JP
gate_str = "down the stairs";
+*/
+ gate_str = "\8aK\92i\82©\82ç";
return (xdnstair == x && ydnstair == y) ? MIGR_STAIRS_UP
: MIGR_SSTAIRS;
}
if (xdnladder == x && ydnladder == y) {
+/*JP
gate_str = "down the ladder";
+*/
+ gate_str = "\82Í\82µ\82²\82©\82ç";
return MIGR_LADDER_UP;
}
if (((ttmp = t_at(x, y)) != 0 && ttmp->tseen)
&& (ttmp->ttyp == TRAPDOOR || ttmp->ttyp == HOLE)) {
+#if 0 /*JP*/
gate_str = (ttmp->ttyp == TRAPDOOR) ? "through the trap door"
: "through the hole";
+#else
+ gate_str = (ttmp->ttyp == TRAPDOOR) ? "\97\8e\82µ\94à\82É"
+ : "\8c\8a\82É";
+#endif
return MIGR_RANDOM;
}
return MIGR_NOWHERE;