Merge branch 'NetHack-3.6.2-beta01' into NetHack-3.6.2

This commit is contained in:
nhmall
2018-10-14 13:04:56 -04:00
6 changed files with 59 additions and 23 deletions

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 mon.c $NHDT-Date: 1526132509 2018/05/12 13:41:49 $ $NHDT-Branch: master $:$NHDT-Revision: 1.252 $ */
/* NetHack 3.6 mon.c $NHDT-Date: 1539479657 2018/10/14 01:14:17 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.260 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Derek S. Ray, 2015. */
/* NetHack may be freely redistributed. See license for details. */
@@ -2659,7 +2659,10 @@ setmangry(mtmp, via_attack)
struct monst *mtmp;
boolean via_attack;
{
if (via_attack && sengr_at("Elbereth", u.ux, u.uy, TRUE)) {
if (via_attack && sengr_at("Elbereth", u.ux, u.uy, TRUE)
/* only hypocritical if monster is vulnerable to Elbereth (or
peaceful--not vulnerable but attacking it is hypocritical) */
&& (onscary(u.ux, u.uy, mtmp) || mtmp->mpeaceful)) {
You_feel("like a hypocrite.");
/* AIS: Yes, I know alignment penalties and bonuses aren't balanced
at the moment. This is about correct relative to other "small"
@@ -2668,7 +2671,8 @@ boolean via_attack;
violating your own request. I know 5 isn't actually large, but
it's intentionally larger than the 1s and 2s that are normally
given for this sort of thing. */
adjalign(-5);
/* reduce to 3 (average) when alignment is already very low */
adjalign((u.ualign.record > 5) ? -5 : -rnd(5));
if (!Blind)
pline("The engraving beneath you fades.");

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 u_init.c $NHDT-Date: 1526755625 2018/05/19 18:47:05 $ $NHDT-Branch: NetHack-3.6.2 $:$NHDT-Revision: 1.42 $ */
/* NetHack 3.6 u_init.c $NHDT-Date: 1539510426 2018/10/14 09:47:06 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.43 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2017. */
/* NetHack may be freely redistributed. See license for details. */
@@ -1112,10 +1112,13 @@ register struct trobj *trop;
discover_object(POT_OIL, TRUE, FALSE);
if (obj->oclass == ARMOR_CLASS) {
if (is_shield(obj) && !uarms) {
if (is_shield(obj) && !uarms && !(uwep && bimanual(uwep))) {
setworn(obj, W_ARMS);
if (uswapwep)
setuswapwep((struct obj *) 0);
/* 3.6.2: this used to unset uswapwep if it was set, but
wearing a shield doesn't prevent having an alternate
weapon ready to swap with the primary; just make sure we
aren't two-weaponing (academic; no one starts that way) */
u.twoweap = FALSE;
} else if (is_helmet(obj) && !uarmh)
setworn(obj, W_ARMH);
else if (is_gloves(obj) && !uarmg)
@@ -1135,10 +1138,11 @@ register struct trobj *trop;
if (is_ammo(obj) || is_missile(obj)) {
if (!uquiver)
setuqwep(obj);
} else if (!uwep)
} else if (!uwep && (!uarms || !bimanual(obj))) {
setuwep(obj);
else if (!uswapwep)
} else if (!uswapwep) {
setuswapwep(obj);
}
}
if (obj->oclass == SPBOOK_CLASS && obj->otyp != SPE_BLANK_PAPER)
initialspell(obj);