allow vengeance against nymphs except for specific case

From: "Ken Arromdee" :
> My point is that you should be allowed to take vengeance on thieving
> nymphs too.  The reasoning "a real knight wouldn't kill a nymph for stealing"
> doesn't make sense because the things a real knight would do instead (like
> arresting) aren't part of the game.

This is a compromise.  This doesn't allow vengeance when you were
told "you gladly hand over ...", but does for most other cases, and for
leprechauns.
This commit is contained in:
nethack.allison
2002-04-07 13:42:18 +00:00
parent 817bdf58e7
commit 7c386ab823
3 changed files with 9 additions and 5 deletions

View File

@@ -62,6 +62,7 @@ assorted monsters can pass through iron bars; ditto for polymorphed character
attempting to dig iron bars will wake nearby monsters instead of yielding
"you swing your pick-axe through thin air"
autodig won't accept iron bars as candidate location
allow knight to retaliate for all thefts except those "you gladly hand over..."
Platform- and/or Interface-Specific Fixes

View File

@@ -1236,11 +1236,6 @@ do_stone:
if (!is_animal(mtmp->data) && !tele_restrict(mtmp))
rloc(mtmp);
if (is_animal(mtmp->data) && *buf) {
/* set mavenge bit for animals so knights won't
suffer an alignment penalty during retaliation;
note that only happens when the thief succeeds
in getting something (*buf != 0) */
mtmp->mavenge = 1;
if (canseemon(mtmp))
pline("%s tries to %s away with %s.",
Monnam(mtmp),

View File

@@ -51,6 +51,7 @@ register struct monst *mtmp;
Monnam(mtmp), makeplural(body_part(FOOT)));
if(!u.ugold || !rn2(5)) {
if (!tele_restrict(mtmp)) rloc(mtmp);
/* do not set mtmp->mavenge here; gold on the floor is fair game */
monflee(mtmp, 0, FALSE, FALSE);
}
} else if(u.ugold) {
@@ -58,6 +59,7 @@ register struct monst *mtmp;
Your("purse feels lighter.");
mtmp->mgold += tmp;
if (!tele_restrict(mtmp)) rloc(mtmp);
mtmp->mavenge = 1;
monflee(mtmp, 0, FALSE, FALSE);
flags.botl = 1;
}
@@ -157,6 +159,8 @@ stealarm()
freeinv(otmp);
pline("%s steals %s!", Monnam(mtmp), doname(otmp));
(void) mpickobj(mtmp,otmp); /* may free otmp */
/* Implies seduction, "you gladly hand over ..."
so we don't set mavenge bit here. */
monflee(mtmp, 0, FALSE, FALSE);
if (!tele_restrict(mtmp)) rloc(mtmp);
break;
@@ -398,6 +402,10 @@ gotobj:
/* do this before removing it from inventory */
if (objnambuf) Strcpy(objnambuf, yname(otmp));
/* set mavenge bit so knights won't suffer an
* alignment penalty during retaliation;
*/
mtmp->mavenge = 1;
freeinv(otmp);
pline("%s stole %s.", named ? "She" : Monnam(mtmp), doname(otmp));