diff --git a/doc/fixes36.2 b/doc/fixes36.2 index a9c798f69..7ab677032 100644 --- a/doc/fixes36.2 +++ b/doc/fixes36.2 @@ -158,6 +158,9 @@ being trapped (bear trap, web, molten or solidified lava, chained to buried iron ball) blocks both levitation and flight (note: being stuck in a pit ends when either of those starts so doesn't apply) change default value for the 'autodescribe' option to 'on' +Elbereth hypocrisy penalty doesn't apply if attacking a monster which isn't + frightened by Elbereth; normal scuffing of engravings still applies +Elbereth hypocrisy penalty reduced when alignment is already low Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository diff --git a/src/mon.c b/src/mon.c index 49ab5ac6a..079321f41 100644 --- a/src/mon.c +++ b/src/mon.c @@ -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.");