1
0
Fork 0
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:
Chris-plus-alphanumericgibberish 2017-11-11 19:17:34 -05:00
commit 7c89c36b83
4 changed files with 20 additions and 16 deletions

View file

@ -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;
}

View file

@ -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)) &&

View file

@ -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))

View file

@ -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;
}