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:
@@ -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
|
attempting to dig iron bars will wake nearby monsters instead of yielding
|
||||||
"you swing your pick-axe through thin air"
|
"you swing your pick-axe through thin air"
|
||||||
autodig won't accept iron bars as candidate location
|
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
|
Platform- and/or Interface-Specific Fixes
|
||||||
|
|||||||
@@ -1236,11 +1236,6 @@ do_stone:
|
|||||||
if (!is_animal(mtmp->data) && !tele_restrict(mtmp))
|
if (!is_animal(mtmp->data) && !tele_restrict(mtmp))
|
||||||
rloc(mtmp);
|
rloc(mtmp);
|
||||||
if (is_animal(mtmp->data) && *buf) {
|
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))
|
if (canseemon(mtmp))
|
||||||
pline("%s tries to %s away with %s.",
|
pline("%s tries to %s away with %s.",
|
||||||
Monnam(mtmp),
|
Monnam(mtmp),
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ register struct monst *mtmp;
|
|||||||
Monnam(mtmp), makeplural(body_part(FOOT)));
|
Monnam(mtmp), makeplural(body_part(FOOT)));
|
||||||
if(!u.ugold || !rn2(5)) {
|
if(!u.ugold || !rn2(5)) {
|
||||||
if (!tele_restrict(mtmp)) rloc(mtmp);
|
if (!tele_restrict(mtmp)) rloc(mtmp);
|
||||||
|
/* do not set mtmp->mavenge here; gold on the floor is fair game */
|
||||||
monflee(mtmp, 0, FALSE, FALSE);
|
monflee(mtmp, 0, FALSE, FALSE);
|
||||||
}
|
}
|
||||||
} else if(u.ugold) {
|
} else if(u.ugold) {
|
||||||
@@ -58,6 +59,7 @@ register struct monst *mtmp;
|
|||||||
Your("purse feels lighter.");
|
Your("purse feels lighter.");
|
||||||
mtmp->mgold += tmp;
|
mtmp->mgold += tmp;
|
||||||
if (!tele_restrict(mtmp)) rloc(mtmp);
|
if (!tele_restrict(mtmp)) rloc(mtmp);
|
||||||
|
mtmp->mavenge = 1;
|
||||||
monflee(mtmp, 0, FALSE, FALSE);
|
monflee(mtmp, 0, FALSE, FALSE);
|
||||||
flags.botl = 1;
|
flags.botl = 1;
|
||||||
}
|
}
|
||||||
@@ -157,6 +159,8 @@ stealarm()
|
|||||||
freeinv(otmp);
|
freeinv(otmp);
|
||||||
pline("%s steals %s!", Monnam(mtmp), doname(otmp));
|
pline("%s steals %s!", Monnam(mtmp), doname(otmp));
|
||||||
(void) mpickobj(mtmp,otmp); /* may free 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);
|
monflee(mtmp, 0, FALSE, FALSE);
|
||||||
if (!tele_restrict(mtmp)) rloc(mtmp);
|
if (!tele_restrict(mtmp)) rloc(mtmp);
|
||||||
break;
|
break;
|
||||||
@@ -398,6 +402,10 @@ gotobj:
|
|||||||
|
|
||||||
/* do this before removing it from inventory */
|
/* do this before removing it from inventory */
|
||||||
if (objnambuf) Strcpy(objnambuf, yname(otmp));
|
if (objnambuf) Strcpy(objnambuf, yname(otmp));
|
||||||
|
/* set mavenge bit so knights won't suffer an
|
||||||
|
* alignment penalty during retaliation;
|
||||||
|
*/
|
||||||
|
mtmp->mavenge = 1;
|
||||||
|
|
||||||
freeinv(otmp);
|
freeinv(otmp);
|
||||||
pline("%s stole %s.", named ? "She" : Monnam(mtmp), doname(otmp));
|
pline("%s stole %s.", named ? "She" : Monnam(mtmp), doname(otmp));
|
||||||
|
|||||||
Reference in New Issue
Block a user