is_lminion should only match lawful minions
When Angels were introduced, they were always lawful. Somewhere along the line, non-lawful angels were added, but is_lminion and uses of it was never updated to address this change. Among other things, this resulted in non-lawful angels delivering messages via #chat that are only appropriate for lawful angels. That is addressed simply by changing the definition of is_lminion, which must take a struct monst, not a permonst, to return valid results. Also, non-lawful angels should summon appropriate monsters, not lawful minions.
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
#include "hack.h"
|
||||
#include "mfndpos.h"
|
||||
#include "artifact.h"
|
||||
#include "epri.h"
|
||||
|
||||
extern boolean notonhead;
|
||||
|
||||
@@ -130,9 +131,9 @@ int x, y;
|
||||
struct monst *mtmp;
|
||||
{
|
||||
if (mtmp->isshk || mtmp->isgd || mtmp->iswiz || !mtmp->mcansee ||
|
||||
mtmp->mpeaceful || mtmp->data->mlet == S_HUMAN ||
|
||||
is_lminion(mtmp->data) || is_rider(mtmp->data) ||
|
||||
mtmp->data == &mons[PM_MINOTAUR])
|
||||
mtmp->mpeaceful || mtmp->data->mlet == S_HUMAN ||
|
||||
is_lminion(mtmp) || mtmp->data == &mons[PM_ANGEL] ||
|
||||
is_rider(mtmp->data) || mtmp->data == &mons[PM_MINOTAUR])
|
||||
return(FALSE);
|
||||
|
||||
return (boolean)(sobj_at(SCR_SCARE_MONSTER, x, y)
|
||||
|
||||
Reference in New Issue
Block a user