Merge branch 'NetHack-3.6.2-beta01' of https://rodney.nethack.org:20040/git/NHsource into NetHack-3.6.2-beta01

This commit is contained in:
nhmall
2018-08-03 06:23:32 -04:00
3 changed files with 67 additions and 55 deletions

View File

@@ -1800,7 +1800,7 @@ a minion of %d. %d commands that you retain
of Yendor.
"Go forth, and let %d guide your steps."
%E [Congraulations, %p. Keep %o; go and recover the Amulet.]
%E [Congratulations, %p. Keep %o; go and recover the Amulet.]
%Cc Pri 00082
%lC reiterates that %o is yours now.

View File

@@ -72,6 +72,10 @@ remembered corpse which isn't there anymore would be described by farlook as
the corpse of a random monster type
when eating a tin of spinach, don't "feel like Popeye" is sustain-abilities
prevents any strength gain
summary text [for message history] of quest message Pri 00081 (Priest quest
success message given when bringing quest artifact to leader)
misspelled "congratulations"
verbal charm/seduce messages were given even when hero was deaf
Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository

View File

@@ -11,7 +11,7 @@ STATIC_VAR NEARDATA struct obj *mon_currwep = (struct obj *) 0;
STATIC_DCL boolean FDECL(u_slip_free, (struct monst *, struct attack *));
STATIC_DCL int FDECL(passiveum, (struct permonst *, struct monst *,
struct attack *));
STATIC_DCL void FDECL(mayberem, (struct obj *, const char *));
STATIC_DCL void FDECL(mayberem, (const char *, struct obj *, const char *));
STATIC_DCL boolean FDECL(diseasemu, (struct permonst *));
STATIC_DCL int FDECL(hitmu, (struct monst *, struct attack *));
STATIC_DCL int FDECL(gulpmu, (struct monst *, struct attack *));
@@ -39,7 +39,7 @@ struct attack *mattk;
if ((compat = could_seduce(mtmp, &youmonst, mattk)) != 0
&& !mtmp->mcan && !mtmp->mspec_used) {
pline("%s %s you %s.", Monst_name,
Blind ? "talks to" : "smiles at",
!Blind ? "smiles at" : !Deaf ? "talks to" : "touches",
(compat == 2) ? "engagingly" : "seductively");
} else {
switch (mattk->aatyp) {
@@ -155,7 +155,7 @@ struct attack *mattk;
/* maybe it's attacking an image around the corner? */
compat = ((mattk->adtyp == AD_SEDU || mattk->adtyp == AD_SSEX)
&& could_seduce(mtmp, &youmonst, (struct attack *) 0));
? could_seduce(mtmp, &youmonst, (struct attack *) 0) : 0);
Monst_name = Monnam(mtmp);
if (!mtmp->mcansee || (Invis && !perceives(mtmp->data))) {
@@ -188,17 +188,16 @@ struct attack *mattk;
}
} else if (Displaced) {
/* give 'displaced' message even if hero is Blind */
if (compat)
pline("%s smiles %s at your %sdisplaced image...", Monst_name,
(compat == 2) ? "engagingly" : "seductively",
Invis ? "invisible " : "");
else
pline("%s strikes at your %sdisplaced image and misses you!",
/* Note: if you're both invisible and displaced,
* only monsters which see invisible will attack your
* displaced image, since the displaced image is also
* invisible.
*/
/* Note: if you're both invisible and displaced, only
* monsters which see invisible will attack your displaced
* image, since the displaced image is also invisible. */
Monst_name, Invis ? "invisible " : "");
} else if (Underwater) {
@@ -1328,7 +1327,8 @@ register struct attack *mattk;
} else if (dmgtype(youmonst.data, AD_SEDU)
|| (SYSOPT_SEDUCE && dmgtype(youmonst.data, AD_SSEX))) {
pline("%s %s.", Monnam(mtmp),
mtmp->minvent
Deaf ? "says something but you can't hear it"
: mtmp->minvent
? "brags about the goods some dungeon explorer provided"
: "makes some remarks about how difficult theft is lately");
if (!tele_restrict(mtmp))
@@ -1883,6 +1883,7 @@ struct attack *mattk;
if (can_blnd(mtmp, &youmonst, mattk->aatyp, (struct obj *) 0)) {
if (!Blind) {
long was_blinded = Blinded;
if (!Blinded)
You_cant("see in here!");
make_blinded((long) tmp, FALSE);
@@ -2355,24 +2356,27 @@ struct monst *mon;
{
struct obj *ring, *nring;
boolean fem = (mon->data == &mons[PM_SUCCUBUS]); /* otherwise incubus */
boolean seewho, naked; /* True iff no armor */
int attr_tot, tried_gloves = 0;
char qbuf[QBUFSZ];
char qbuf[QBUFSZ], Who[QBUFSZ];
if (mon->mcan || mon->mspec_used) {
pline("%s acts as though %s has got a %sheadache.", Monnam(mon),
mhe(mon), mon->mcan ? "severe " : "");
return 0;
}
if (unconscious()) {
pline("%s seems dismayed at your lack of response.", Monnam(mon));
return 0;
}
if (Blind)
pline("It caresses you...");
seewho = canseemon(mon);
if (!seewho)
pline("Someone caresses you...");
else
You_feel("very attracted to %s.", mon_nam(mon));
/* cache the seducer's name in a local buffer */
Strcpy(Who, (!seewho ? (fem ? "She" : "He") : Monnam(mon)));
/* if in the process of putting armor on or taking armor off,
interrupt that activity now */
(void) stop_donning((struct obj *) 0);
@@ -2388,11 +2392,12 @@ struct monst *mon;
if (ring->owornmask && uarmg) {
/* don't take off worn ring if gloves are in the way */
if (!tried_gloves++)
mayberem(uarmg, "gloves");
mayberem(Who, uarmg, "gloves");
if (uarmg)
continue; /* next ring might not be worn */
}
if (rn2(20) < ACURR(A_CHA)) {
/* confirmation prompt when charisma is high bypassed if deaf */
if (!Deaf && rn2(20) < ACURR(A_CHA)) {
(void) safe_qbuf(qbuf, "\"That ",
" looks pretty. May I have it?\"", ring,
xname, simpleonames, "ring");
@@ -2401,16 +2406,11 @@ struct monst *mon;
continue;
} else
pline("%s decides she'd like %s, and takes it.",
Blind ? "She" : Monnam(mon), yname(ring));
Who, yname(ring));
makeknown(RIN_ADORNMENT);
if (ring == uleft || ring == uright)
Ring_gone(ring);
if (ring == uwep)
setuwep((struct obj *) 0);
if (ring == uswapwep)
setuswapwep((struct obj *) 0);
if (ring == uquiver)
setuqwep((struct obj *) 0);
/* might be in left or right ring slot or weapon/alt-wep/quiver */
if (ring->owornmask)
remove_worn_item(ring, FALSE);
freeinv(ring);
(void) mpickobj(mon, ring);
} else {
@@ -2422,41 +2422,40 @@ struct monst *mon;
if (uarmg) {
/* don't put on ring if gloves are in the way */
if (!tried_gloves++)
mayberem(uarmg, "gloves");
mayberem(Who, uarmg, "gloves");
if (uarmg)
break; /* no point trying further rings */
}
if (rn2(20) < ACURR(A_CHA)) {
/* confirmation prompt when charisma is high bypassed if deaf */
if (!Deaf && rn2(20) < ACURR(A_CHA)) {
(void) safe_qbuf(qbuf, "\"That ",
" looks pretty. Would you wear it for me?\"",
" looks pretty. Would you wear it for me?\"",
ring, xname, simpleonames, "ring");
makeknown(RIN_ADORNMENT);
if (yn(qbuf) == 'n')
continue;
} else {
pline("%s decides you'd look prettier wearing %s,",
Blind ? "He" : Monnam(mon), yname(ring));
Who, yname(ring));
pline("and puts it on your finger.");
}
makeknown(RIN_ADORNMENT);
if (!uright) {
pline("%s puts %s on your right %s.",
Blind ? "He" : Monnam(mon), the(xname(ring)),
body_part(HAND));
Who, the(xname(ring)), body_part(HAND));
setworn(ring, RIGHT_RING);
} else if (!uleft) {
pline("%s puts %s on your left %s.",
Blind ? "He" : Monnam(mon), the(xname(ring)),
body_part(HAND));
Who, the(xname(ring)), body_part(HAND));
setworn(ring, LEFT_RING);
} else if (uright && uright->otyp != RIN_ADORNMENT) {
pline("%s replaces %s with %s.", Blind ? "He" : Monnam(mon),
yname(uright), yname(ring));
pline("%s replaces %s with %s.",
Who, yname(uright), yname(ring));
Ring_gone(uright);
setworn(ring, RIGHT_RING);
} else if (uleft && uleft->otyp != RIN_ADORNMENT) {
pline("%s replaces %s with %s.", Blind ? "He" : Monnam(mon),
yname(uleft), yname(ring));
pline("%s replaces %s with %s.",
Who, yname(uleft), yname(ring));
Ring_gone(uleft);
setworn(ring, LEFT_RING);
} else
@@ -2466,26 +2465,31 @@ struct monst *mon;
}
}
if (!uarmc && !uarmf && !uarmg && !uarms && !uarmh && !uarmu)
pline("%s murmurs sweet nothings into your ear.",
Blind ? (fem ? "She" : "He") : Monnam(mon));
else
pline("%s murmurs in your ear, while helping you undress.",
Blind ? (fem ? "She" : "He") : Monnam(mon));
mayberem(uarmc, cloak_simple_name(uarmc));
naked = (!uarmc && !uarmf && !uarmg && !uarms && !uarmh && !uarmu);
pline("%s %s%s.", Who,
Deaf ? "seems to murmur into your ear"
: naked ? "murmurs sweet nothings into your ear"
: "murmurs in your ear",
naked ? "" : ", while helping you undress");
mayberem(Who, uarmc, cloak_simple_name(uarmc));
if (!uarmc)
mayberem(uarm, "suit");
mayberem(uarmf, "boots");
mayberem(Who, uarm, "suit");
mayberem(Who, uarmf, "boots");
if (!tried_gloves)
mayberem(uarmg, "gloves");
mayberem(uarms, "shield");
mayberem(uarmh, helm_simple_name(uarmh));
mayberem(Who, uarmg, "gloves");
mayberem(Who, uarms, "shield");
mayberem(Who, uarmh, helm_simple_name(uarmh));
if (!uarmc && !uarm)
mayberem(uarmu, "shirt");
mayberem(Who, uarmu, "shirt");
if (uarm || uarmc) {
verbalize("You're such a %s; I wish...",
flags.female ? "sweet lady" : "nice guy");
if (!Deaf)
verbalize("You're such a %s; I wish...",
flags.female ? "sweet lady" : "nice guy");
else if (seewho)
pline("%s appears to sigh.", Monnam(mon));
/* else no regret message if can't see or hear seducer */
if (!tele_restrict(mon))
(void) rloc(mon, TRUE);
return 1;
@@ -2623,7 +2627,8 @@ struct monst *mon;
}
STATIC_OVL void
mayberem(obj, str)
mayberem(seducer, obj, str)
const char *seducer; /* only used for alternate message */
struct obj *obj;
const char *str;
{
@@ -2632,7 +2637,10 @@ const char *str;
if (!obj || !obj->owornmask)
return;
if (rn2(20) < ACURR(A_CHA)) {
/* being deaf overrides confirmation prompt for high charisma */
if (Deaf) {
pline("%s takes off your %s.", seducer, str);
} else if (rn2(20) < ACURR(A_CHA)) {
Sprintf(qbuf, "\"Shall I remove your %s, %s?\"", str,
(!rn2(2) ? "lover" : !rn2(2) ? "dear" : "sweetheart"));
if (yn(qbuf) == 'n')