Previous hero rising as undead in bones retains intrinsics

This commit is contained in:
Pasi Kallinen
2023-12-15 16:03:26 +02:00
parent b368d4fbe9
commit 3c421da746
4 changed files with 16 additions and 0 deletions

View File

@@ -486,6 +486,7 @@ savebones(int how, time_t when, struct obj *corpse)
u.ugrave_arise = NON_PM; /* in case caller cares */
return;
}
give_u_to_m_resistances(mtmp);
mtmp = christen_monst(mtmp, gp.plname);
newsym(u.ux, u.uy);
/* ["Your body rises from the dead as an <mname>..." used

View File

@@ -1480,6 +1480,19 @@ monstunseesu(unsigned long seenres)
m_clearseenres(mtmp, seenres);
}
/* give monster mtmp the same intrinsics hero has */
void
give_u_to_m_resistances(struct monst *mtmp)
{
const int u_intrins[] = { FIRE_RES, COLD_RES, SLEEP_RES, DISINT_RES, SHOCK_RES, POISON_RES, ACID_RES, STONE_RES };
const int m_intrins[] = { MR_FIRE, MR_COLD, MR_SLEEP, MR_DISINT, MR_ELEC, MR_POISON, MR_ACID, MR_STONE };
int i;
for (i = 0; i < SIZE(u_intrins); i++)
if (u.uprops[u_intrins[i]].intrinsic & INTRINSIC)
mtmp->mintrinsics |= m_intrins[i];
}
/* Can monster resist conflict caused by hero?
High-CHA heroes will be able to 'convince' monsters