1
0
Fork 0
mirror of https://codeberg.org/noisytoot/notnotdnethack.git synced 2025-07-30 17:32:24 +01:00

Merge branch 'compat-3.20.0' of https://github.com/Chris-plus-alphanumericgibberish/dNAO.git into compat-3.20.0

This commit is contained in:
ChrisANG 2021-01-08 11:11:47 -05:00
commit c652cdcbe3
3 changed files with 28 additions and 6 deletions

View file

@ -7829,6 +7829,11 @@ arti_invoke(obj)
doliving_ringed_armor(&youmonst, obj, TRUE);
break;
case BLOODLETTER:
if (!uwep || uwep != obj){
You_feel("that you should be wielding %s.", the(xname(obj)));;
obj->age = monstermoves;
return(0);
}
if (artinstance[obj->oartifact].BLactive < monstermoves){
if (has_blood_mon(&youmonst)){
You("plunge Bloodletter into your chest, making an offering of your tainted blood.");

View file

@ -2200,12 +2200,23 @@ movemon()
for(mtmp = fmon; mtmp; mtmp = nmtmp) {
/* check that mtmp wasn't migrated by previous mtmp's actions */
if (!(mtmp->mx || mtmp->my)) {
/* uh oh -- restart loop at fmon. This will let already-handled very fast
* monsters expend movement points to act out of turn, but will not result in anyone gaining
* or losing turns, or worse, this loop affecting anyone in the migrating_mons chain */
mtmp = fmon;
if (!mtmp)
break; /* exit current movement loop, there is no one left at all */
/* uh oh -- it looks like mtmp is marked as on migrating_mons. Confirm. */
struct monst * m2;
for (m2 = migrating_mons; m2 && m2 != mtmp; m2 = m2->nmon);
if (m2 == mtmp) {
/* extra check -- is mtmp also on the fmon chain? If it is, we've got serious trouble */
for (m2 = fmon; m2 && m2 != mtmp; m2 = m2->nmon);
if (m2 == mtmp)
panic("monster on both fmon and migrating_mons");
else {
/* restart loop at fmon. This will let already-handled very fast
* monsters expend movement points to act out of turn, but will not result in anyone gaining
* or losing turns, or worse, this loop affecting anyone in the migrating_mons chain */
mtmp = fmon;
if (!mtmp)
break; /* exit current movement loop, there is no one left at all */
}
}
}
nmtmp = mtmp->nmon;
/* Find a monster that we have not treated yet. */

View file

@ -3128,6 +3128,9 @@ int wep_type;
case P_MASTER: maxweight = 50; break;
case P_GRAND_MASTER: maxweight = 60; break;
}
if (youracedata->msize > MZ_MEDIUM)
maxweight *= 1+(youracedata->msize - MZ_MEDIUM);
if (wep_type == P_BARE_HANDED_COMBAT) {
bonus -= abs(bonus * 2 / 3);
}
@ -3424,6 +3427,9 @@ int wep_type;
case P_MASTER: maxweight = 50; break; /* war hammer */
case P_GRAND_MASTER: maxweight = 60; break; /* axe */
}
if (youracedata->msize > MZ_MEDIUM)
maxweight *= 1+(youracedata->msize - MZ_MEDIUM);
if (wep_type == P_BARE_HANDED_COMBAT) {
bonus -= (skill * 2 / 3);
}