quest leader|guardians seeing hero attack peaceful
If the quest leader observes the hero attacking a peaceful monster, only become angry if that peaceful monster is a quest guardian. And when becoming angry, stop waiting for the hero to approach. If a quest guardian observes the hero attacking any peaceful monster, don't run away.
This commit is contained in:
@@ -1983,6 +1983,9 @@ fix regression of a post-3.6 fix: if 2 Wizards of Yendor were in play and 1
|
||||
sometimes a repeat count from the preceding command carried over to most
|
||||
recent one when using do-again (^A); if the most recent one was an
|
||||
extended command, the spurious repeat was for '#'
|
||||
if peaceful monsters react when seeing hero attack a peaceful monster, don't
|
||||
have quest guardians run away; also, quest leader only becomes angry
|
||||
if the monster being attacked is a quest guardian
|
||||
|
||||
|
||||
Fixes to 3.7.0-x Platform and/or Interface Problems Exposed Via git Repository
|
||||
|
||||
13
src/mon.c
13
src/mon.c
@@ -4050,14 +4050,20 @@ peacefuls_respond(struct monst *mtmp)
|
||||
}
|
||||
}
|
||||
/* shopkeepers and temple priests might gasp in
|
||||
surprise, but they won't become angry here */
|
||||
if (mon->isshk || mon->ispriest) {
|
||||
surprise, but they won't become angry here;
|
||||
quest leader will only get angry if hero attacks
|
||||
own quest guardians */
|
||||
if (mon->isshk || mon->ispriest
|
||||
|| (mon->data == &mons[quest_info(MS_LEADER)]
|
||||
&& mtmp->data != &mons[gu.urole.guardnum])) {
|
||||
if (exclaimed)
|
||||
pline_mon(mon, "%s%s", buf, " then shrugs.");
|
||||
continue;
|
||||
}
|
||||
|
||||
if (mon->data->mlevel < rn2(10)) {
|
||||
if (mon->data->mlevel < rn2(10)
|
||||
/* don't have quest guardians turn to flee */
|
||||
&& (mon->data != &mons[gu.urole.guardnum])) {
|
||||
alreadyfleeing = (mon->mflee || mon->mfleetim);
|
||||
monflee(mon, rn2(50) + 25, TRUE, !exclaimed);
|
||||
if (exclaimed) {
|
||||
@@ -4075,6 +4081,7 @@ peacefuls_respond(struct monst *mtmp)
|
||||
* perhaps reduce tameness? */
|
||||
} else {
|
||||
mon->mpeaceful = 0;
|
||||
mon->mstrategy &= ~STRAT_WAITMASK;
|
||||
adjalign(-1);
|
||||
if (!exclaimed)
|
||||
pline_mon(mon, "%s gets angry!", Monnam(mon));
|
||||
|
||||
Reference in New Issue
Block a user