Change the rules for Elbereth erosion

If you attack a monster under Elbereth protection, and it wasn't
scuffed by the attack itself, then it'll be automatically removed
with an alignment penalty. It no longer fades from scaring monsters;
only from being abused to attack monsters while protected.
This commit is contained in:
Alex Smith
2016-10-17 18:26:44 +01:00
parent ee5b488514
commit 348e54aa32
2 changed files with 15 additions and 7 deletions

View File

@@ -2593,7 +2593,21 @@ setmangry(mtmp, via_attack)
struct monst *mtmp;
boolean via_attack;
{
(void) via_attack; /* AIS: not used yet */
if (via_attack && sengr_at("Elbereth", u.ux, u.uy, TRUE)) {
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"
penalties; it should be fairly large, as attacking while standing on
an Elbereth means that you're requesting peace and then 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);
if (!Blind)
pline("The engraving beneath you fades.");
del_engr_at(u.ux, u.uy);
}
/* AIS: Should this be in both places, or just in wakeup()? */
mtmp->mstrategy &= ~STRAT_WAITMASK;
if (!mtmp->mpeaceful)