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
|
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
|
recent one when using do-again (^A); if the most recent one was an
|
||||||
extended command, the spurious repeat was for '#'
|
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
|
Fixes to 3.7.0-x Platform and/or Interface Problems Exposed Via git Repository
|
||||||
|
|||||||
@@ -4050,14 +4050,20 @@ peacefuls_respond(struct monst *mtmp)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* shopkeepers and temple priests might gasp in
|
/* shopkeepers and temple priests might gasp in
|
||||||
surprise, but they won't become angry here */
|
surprise, but they won't become angry here;
|
||||||
if (mon->isshk || mon->ispriest) {
|
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)
|
if (exclaimed)
|
||||||
pline_mon(mon, "%s%s", buf, " then shrugs.");
|
pline_mon(mon, "%s%s", buf, " then shrugs.");
|
||||||
continue;
|
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);
|
alreadyfleeing = (mon->mflee || mon->mfleetim);
|
||||||
monflee(mon, rn2(50) + 25, TRUE, !exclaimed);
|
monflee(mon, rn2(50) + 25, TRUE, !exclaimed);
|
||||||
if (exclaimed) {
|
if (exclaimed) {
|
||||||
@@ -4075,6 +4081,7 @@ peacefuls_respond(struct monst *mtmp)
|
|||||||
* perhaps reduce tameness? */
|
* perhaps reduce tameness? */
|
||||||
} else {
|
} else {
|
||||||
mon->mpeaceful = 0;
|
mon->mpeaceful = 0;
|
||||||
|
mon->mstrategy &= ~STRAT_WAITMASK;
|
||||||
adjalign(-1);
|
adjalign(-1);
|
||||||
if (!exclaimed)
|
if (!exclaimed)
|
||||||
pline_mon(mon, "%s gets angry!", Monnam(mon));
|
pline_mon(mon, "%s gets angry!", Monnam(mon));
|
||||||
|
|||||||
Reference in New Issue
Block a user