Skip to content

Commit 42dbcf4

Browse files
Fix: Peaceful demon lords won't follow you across levels
This amends commit b550ba0 so that peaceful demon lords will remain on their level. Before, demon lords would follow you across levels and be angry if they did so---I assumed that peaceful demon lords would only be those who could be bribed, and figured people would mostly only get demon lords following them if they intentionally tried to skip them, so I thought it made sense from a flavor and gameplay standpoint. However: 1) infidels can get peaceful demon lords as one of their perks, and shouldn't be forced to engage them 2) bribeable demons (read: Asmodeus) don't seem to actually generate as peaceful in their lairs 3) a surprising number of people have triggered the dlord-following behavior without intentionally trying to find an exploit, so angering bribeable demon lords seems a bit vindictive This commit has no specific provision for bribeable demon lords; if it turns out that Asmodeus is bribeable at some times, this could be revisited. On the other hand, in such a case, skipping the demon lord via bribery is still possible, so perhaps it is unnecessary to prevent skipping them via levelport.
1 parent 931c48e commit 42dbcf4

File tree

3 files changed

+4
-3
lines changed

3 files changed

+4
-3
lines changed

doc/evilhack-changelog.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -3349,4 +3349,4 @@ The following changes to date are:
33493349
- New player role: Druid (initial commit)
33503350
- Minor tweaks to Druid role
33513351
- Set default Druid pet name if one isn't set in the player config
3352-
3352+
- Fix: Peaceful demon lords won't follow you across levels

src/do.c

+3-1
Original file line numberDiff line numberDiff line change
@@ -1427,7 +1427,9 @@ dlords_stalk()
14271427
for (mtmp = fmon; mtmp; mtmp = mtmp2) {
14281428
/* save in case mtmp gets migrated */
14291429
mtmp2 = mtmp->nmon;
1430-
if (is_dlord(mtmp->data) || is_dprince(mtmp->data)) {
1430+
if ((is_dlord(mtmp->data) || is_dprince(mtmp->data))
1431+
/* infidels can get peaceful dlords who won't hound them */
1432+
&& !mtmp->mpeaceful) {
14311433
migrate_to_level(mtmp, ledger_no(&u.uz), MIGR_STALK, (coord *) 0);
14321434
mtmp->mstate |= MON_MIGRATING;
14331435
}

src/dog.c

-1
Original file line numberDiff line numberDiff line change
@@ -539,7 +539,6 @@ boolean with_you;
539539
xlocale = u.ux;
540540
ylocale = u.uy;
541541
mtmp->mstrategy &= ~STRAT_WAITMASK;
542-
mtmp->mpeaceful = 0;
543542
}
544543
break;
545544
case MIGR_PORTAL:

0 commit comments

Comments
 (0)