git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1586 c06c8d41-db1a-0410-9941-cceddc491573
HFXCFYFH2X3BIZR55ZADL3CV4MQJEEHDSIJZ7YSTHO3HTZP7GWEAC
static bool monster_resists_mass_enchantment(monsters *monster,
enchant_type wh_enchant,
int pow)
{
// assuming that the only mass charm is control undead:
if (wh_enchant == ENCH_CHARM)
{
if (mons_friendly(monster))
return (true);
if (mons_class_holiness(monster->type) != MH_UNDEAD)
return (true);
if (check_mons_resist_magic( monster, pow ))
{
simple_monster_message(monster, mons_immune_magic(monster) ?
" is unaffected." : " resists.");
return (true);
}
}
else if (wh_enchant == ENCH_CONFUSION
|| mons_holiness(monster) == MH_NATURAL)
{
if (check_mons_resist_magic( monster, pow ))
{
simple_monster_message(monster, mons_immune_magic(monster) ?
" is unaffected." : " resists.");
return (true);
}
}
else // trying to enchant an unnatural creature doesn't work
{
simple_monster_message(monster, " is unaffected.");
return (true);
}
if (mons_class_holiness(monster->type) != MH_UNDEAD)
continue;
if (check_mons_resist_magic( monster, pow ))
{
simple_monster_message(monster, mons_immune_magic(monster) ?
" is unaffected." : " resists.");
continue;
}
}
else if (mons_holiness(monster) == MH_NATURAL)
{
if (check_mons_resist_magic( monster, pow ))
{
simple_monster_message(monster, mons_immune_magic(monster) ?
" is unaffected." : " resists.");
continue;
}
}
else // trying to enchant an unnatural creature doesn't work
{
simple_monster_message(monster, " is unaffected.");
if (monster->has_ench(wh_enchant))