mirror of
https://codeberg.org/noisytoot/notnotdnethack.git
synced 2025-07-29 00:42:28 +01:00
Merge branch 'compat-3.15.1' into devel-3.15.2
This commit is contained in:
commit
7c89c36b83
4 changed files with 20 additions and 16 deletions
|
@ -122,7 +122,7 @@ hack_artifacts()
|
|||
int alignmnt = flags.stag ? u.ualign.type : aligns[flags.initalign].value;
|
||||
|
||||
if(Role_if(PM_EXILE)) alignmnt = A_VOID; //hack_artifacts may be called before this is propperly set
|
||||
if(Race_if(PM_DROW) || Race_if(PM_MYRKALFR) && !Role_if(PM_EXILE) && !Role_if(PM_CONVICT) && !flags.female){
|
||||
if((Race_if(PM_DROW) || Race_if(PM_MYRKALFR)) && !Role_if(PM_EXILE) && !Role_if(PM_CONVICT) && !flags.initgend){
|
||||
alignmnt = A_NEUTRAL; /* Males are neutral */
|
||||
}
|
||||
|
||||
|
@ -181,21 +181,21 @@ hack_artifacts()
|
|||
urole.questarti = ART_VESTMENT_OF_HELL;
|
||||
artilist[ART_HELM_OF_THE_DARK_LORD].alignment = alignmnt;
|
||||
} else if(Race_if(PM_ELF)){
|
||||
artilist[ART_ROD_OF_LORDLY_MIGHT].spfx |= SPFX_NOGEN|SPFX_INTEL;
|
||||
artilist[ART_ROD_OF_LORDLY_MIGHT].spfx |= SPFX_NOGEN;
|
||||
artilist[ART_ROD_OF_LORDLY_MIGHT].role = NON_PM;
|
||||
artilist[ART_ROD_OF_THE_ELVISH_LORDS].spfx &= ~(SPFX_NOGEN|SPFX_INTEL);
|
||||
artilist[ART_ROD_OF_THE_ELVISH_LORDS].spfx &= ~(SPFX_NOGEN);
|
||||
} else if(Race_if(PM_DROW)){
|
||||
if(flags.initgend){ /* TRUE == female */
|
||||
artilist[ART_ROD_OF_LORDLY_MIGHT].spfx |= SPFX_NOGEN|SPFX_INTEL;
|
||||
artilist[ART_ROD_OF_LORDLY_MIGHT].spfx |= SPFX_NOGEN;
|
||||
artilist[ART_ROD_OF_LORDLY_MIGHT].role = NON_PM;
|
||||
artilist[ART_SCEPTRE_OF_LOLTH].spfx &= ~(SPFX_NOGEN|SPFX_INTEL);
|
||||
artilist[ART_SCEPTRE_OF_LOLTH].spfx &= ~(SPFX_NOGEN);
|
||||
} else {
|
||||
artilist[ART_ROD_OF_LORDLY_MIGHT].alignment = A_NEUTRAL;
|
||||
}
|
||||
} else if(Race_if(PM_DWARF) && urole.ldrnum == PM_DAIN_II_IRONFOOT){
|
||||
artilist[ART_ROD_OF_LORDLY_MIGHT].spfx |= SPFX_NOGEN|SPFX_INTEL;
|
||||
artilist[ART_ROD_OF_LORDLY_MIGHT].spfx |= SPFX_NOGEN;
|
||||
artilist[ART_ROD_OF_LORDLY_MIGHT].role = NON_PM;
|
||||
artilist[ART_ARMOR_OF_KHAZAD_DUM].spfx &= ~(SPFX_NOGEN|SPFX_INTEL);
|
||||
artilist[ART_ARMOR_OF_KHAZAD_DUM].spfx &= ~(SPFX_NOGEN);
|
||||
} else if(alignmnt == A_NEUTRAL) {
|
||||
artilist[ART_CROWN_OF_THE_SAINT_KING].alignment = alignmnt;
|
||||
}
|
||||
|
|
|
@ -824,7 +824,7 @@ boolean ranged;
|
|||
(( mtmp2->data == &mons[urole.guardnum]
|
||||
|| mtmp2->data == &mons[urole.ldrnum]
|
||||
|| (Role_if(PM_NOBLEMAN) && (mtmp->data == &mons[PM_KNIGHT] || mtmp->data == &mons[PM_MAID] || mtmp->data == &mons[PM_PEASANT]) && mtmp->mpeaceful)
|
||||
|| (Race_if(PM_DROW) && (mtmp->data == &mons[PM_GROMPH] || mtmp->data == &mons[PM_DANTRAG]) && mtmp->mpeaceful)
|
||||
|| (Race_if(PM_DROW) && is_drow(mtmp->data) && mtmp->mpeaceful)
|
||||
|| (Role_if(PM_KNIGHT) && (mtmp->data == &mons[PM_KNIGHT]) && mtmp->mpeaceful)
|
||||
|| (Race_if(PM_GNOME) && (is_gnome(mtmp->data) && !is_undead_mon(mtmp)) && mtmp->mpeaceful)
|
||||
|| always_peaceful(mtmp2->data)) &&
|
||||
|
|
15
src/mon.c
15
src/mon.c
|
@ -2799,9 +2799,10 @@ struct monst *magr, /* monster that is currently deciding where to move */
|
|||
)
|
||||
&& !(Race_if(PM_DROW) && !(flags.stag || Role_if(PM_NOBLEMAN) || !is_drow(md)))
|
||||
&& !(Role_if(PM_EXILE))
|
||||
&& magr->mpeaceful==TRUE
|
||||
&& mdef->mpeaceful==FALSE
|
||||
) return ALLOW_M|ALLOW_TM;
|
||||
) {
|
||||
if(magr->mpeaceful==TRUE && mdef->mpeaceful==FALSE) return ALLOW_M|ALLOW_TM;
|
||||
if(magr->mpeaceful==TRUE && mdef->mtame==TRUE) return FALSE;
|
||||
}
|
||||
/* and vice versa */
|
||||
if( (md->msound == MS_GUARDIAN
|
||||
|| (Role_if(PM_NOBLEMAN) && (md == &mons[PM_KNIGHT] || md == &mons[PM_MAID] || md == &mons[PM_PEASANT]) && mdef->mpeaceful && In_quest(&u.uz))
|
||||
|
@ -2811,10 +2812,10 @@ struct monst *magr, /* monster that is currently deciding where to move */
|
|||
)
|
||||
&& !(Race_if(PM_DROW) && !(flags.stag || Role_if(PM_NOBLEMAN) || !is_drow(ma)))
|
||||
&& !(Role_if(PM_EXILE))
|
||||
&& mdef->mpeaceful==TRUE
|
||||
&& magr->mpeaceful==FALSE
|
||||
&& rn2(2)
|
||||
) return ALLOW_M|ALLOW_TM;
|
||||
){
|
||||
if(mdef->mpeaceful==TRUE && magr->mpeaceful==FALSE && rn2(2)) return ALLOW_M|ALLOW_TM;
|
||||
if(mdef->mpeaceful==TRUE && magr->mtame==TRUE) return FALSE;
|
||||
}
|
||||
|
||||
/* elves vs. orcs */
|
||||
if(is_elf(ma) && (is_orc(md) || is_ogre(md) || is_undead_mon(mdef)) && !is_undead_mon(magr))
|
||||
|
|
|
@ -1248,7 +1248,7 @@ struct monst *mtmp;
|
|||
))
|
||||
)
|
||||
){
|
||||
if(!(mtmp->data == &mons[PM_OONA] && resists_oona(mtmp2))) return mtmp2;
|
||||
if(!(mtmp->data == &mons[PM_OONA] && resists_oona(mtmp2)) && mm_aggression(mtmp, mtmp2)) return mtmp2;
|
||||
}
|
||||
|
||||
#if 0
|
||||
|
@ -1379,6 +1379,7 @@ struct monst *mtmp;
|
|||
(monstr[monsndx(mat->data)] >
|
||||
monstr[monsndx(oldmret->data)])
|
||||
) && !(mtmp->data == &mons[PM_OONA] && resists_oona(mat))
|
||||
&& mm_aggression(mtmp, mat)
|
||||
) mret = mat;
|
||||
}
|
||||
else if ((mm_aggression(mtmp, mat) & ALLOW_M)
|
||||
|
@ -1398,6 +1399,7 @@ struct monst *mtmp;
|
|||
(monstr[monsndx(mat->data)] >
|
||||
monstr[monsndx(oldmret->data)])
|
||||
) && !(mtmp->data == &mons[PM_OONA] && resists_oona(mat))
|
||||
&& mm_aggression(mtmp, mat)
|
||||
)
|
||||
mret = mat;
|
||||
}
|
||||
|
@ -1431,6 +1433,7 @@ struct monst *mtmp;
|
|||
(monstr[monsndx(mtmp2->data)] >
|
||||
monstr[monsndx(mret->data)])
|
||||
) && !(mtmp->data == &mons[PM_OONA] && resists_oona(mtmp2))
|
||||
&& mm_aggression(mtmp, mtmp2)
|
||||
){
|
||||
mret = mtmp2;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue