Skip to content

Commit ee0f91e

Browse files
committed
Lolth will be peaceful towards Drow players under the right circumstances.
If the player is Drow, stay true to their alignment (chaotic), and are at least fervently aligned (9 or greater), Lolth will be peaceful towards them. This now makes me think that under the same conditions, if a chaotic Drow player kills Lolth, there should be some sort of harsh penalty, seeing as how she is their deity and all. Hmm.
1 parent fde880a commit ee0f91e

File tree

2 files changed

+19
-12
lines changed

2 files changed

+19
-12
lines changed

doc/evilhack-changelog.md

+2
Original file line numberDiff line numberDiff line change
@@ -3400,4 +3400,6 @@ The following changes to date are:
34003400
- Hippocrates (Healer quest leader) additional gear
34013401
- Fix: certain monster steeds should only be ridden by certain monster
34023402
riders
3403+
- Lolth will be peaceful towards Drow players under the right
3404+
circumstances
34033405

src/makemon.c

+17-12
Original file line numberDiff line numberDiff line change
@@ -3961,15 +3961,21 @@ register struct monst *mtmp;
39613961
return TRUE;
39623962

39633963
/* Major demons will sometimes be peaceful to unaligned Infidels.
3964-
* They must pass this 50% check, then the 50% check for chaotics
3965-
* being non-hostile to unaligned, then the usual check for coaligned.
3966-
* For crowned Infidels, the random check is bypassed */
3964+
They must pass this 50% check, then the 50% check for chaotics
3965+
being non-hostile to unaligned, then the usual check for coaligned.
3966+
For crowned Infidels, the random check is bypassed. Followers of
3967+
Lolth - if they are Drow, stay chaotic, and are at least fervently
3968+
aligned, she will spawn peaceful */
39673969
if (always_hostile(ptr)) {
39683970
if (Role_if(PM_INFIDEL) && is_demon(ptr)
3969-
&& (u.uevent.uhand_of_elbereth || rn2(2)))
3971+
&& (u.uevent.uhand_of_elbereth || rn2(2))) {
39703972
return TRUE;
3971-
else
3973+
} else if (ptr == &mons[PM_LOLTH] && ual == A_CHAOTIC
3974+
&& u.ualign.record >= 9 && Race_if(PM_DROW)) {
3975+
return TRUE;
3976+
} else {
39723977
return FALSE;
3978+
}
39733979
}
39743980

39753981
if (ptr->msound == MS_LEADER || ptr->msound == MS_GUARDIAN)
@@ -3989,26 +3995,25 @@ register struct monst *mtmp;
39893995
return FALSE;
39903996

39913997
/* the monster is hostile if its alignment is different from the
3992-
* player's */
3998+
player's */
39933999
if (sgn(mal) != sgn(ual))
39944000
return FALSE;
39954001

3996-
/* Not all chaotics support Moloch. This goes especially for elves. */
4002+
/* Not all chaotics support Moloch. This goes especially for elves */
39974003
if (ual == A_NONE && (racial_elf(mtmp) || rn2(2)))
39984004
return FALSE;
39994005

4000-
/* Chaotic monsters hostile to players with Amulet, except Infidels. */
4006+
/* Chaotic monsters hostile to players with Amulet, except Infidels */
40014007
if (mal < A_NEUTRAL && u.uhave.amulet && !Role_if(PM_INFIDEL))
40024008
return FALSE;
40034009

40044010
/* minions are hostile to players that have strayed at all */
40054011
if (is_minion(ptr))
40064012
return (boolean) (u.ualign.record >= 0);
40074013

4008-
/* Last case: a chance of a co-aligned monster being
4009-
* hostile. This chance is greater if the player has strayed
4010-
* (u.ualign.record negative) or the monster is not strongly aligned.
4011-
*/
4014+
/* Last case: a chance of a co-aligned monster being
4015+
hostile. This chance is greater if the player has strayed
4016+
(u.ualign.record negative) or the monster is not strongly aligned */
40124017
return (boolean) (!!rn2(16 + (u.ualign.record < -15 ? -15
40134018
: u.ualign.record))
40144019
&& !!rn2(2 + abs(mal)));

0 commit comments

Comments
 (0)