summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/beam.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/beam.cc')
-rw-r--r--crawl-ref/source/beam.cc20
1 files changed, 11 insertions, 9 deletions
diff --git a/crawl-ref/source/beam.cc b/crawl-ref/source/beam.cc
index 46bbed75a8..d24e07551f 100644
--- a/crawl-ref/source/beam.cc
+++ b/crawl-ref/source/beam.cc
@@ -1813,7 +1813,8 @@ bool mass_enchantment( int wh_enchant, int pow, int origin )
if (check_mons_resist_magic( monster, pow ))
{
- simple_monster_message(monster, " resists.");
+ simple_monster_message(monster, mons_immune_magic(monster) ?
+ " is unaffected." : " resists.");
continue;
}
}
@@ -1821,7 +1822,8 @@ bool mass_enchantment( int wh_enchant, int pow, int origin )
{
if (check_mons_resist_magic( monster, pow ))
{
- simple_monster_message(monster, " resists.");
+ simple_monster_message(monster, mons_immune_magic(monster) ?
+ " is unaffected." : " resists.");
continue;
}
}
@@ -3666,7 +3668,7 @@ static int affect_monster_enchantment(struct bolt &beam, struct monsters *mon)
if (check_mons_resist_magic( mon, beam.ench_power )
&& !beam.aimed_at_feet)
{
- return (MON_RESIST);
+ return mons_immune_magic(mon) ? MON_UNAFFECTED : MON_RESIST;
}
if (simple_monster_message(mon, " looks slightly unstable."))
@@ -3682,7 +3684,7 @@ static int affect_monster_enchantment(struct bolt &beam, struct monsters *mon)
if (!beam.aimed_at_feet
&& check_mons_resist_magic( mon, beam.ench_power ))
{
- return (MON_RESIST);
+ return mons_immune_magic(mon) ? MON_UNAFFECTED : MON_RESIST;
}
if (mons_near( mon ) && player_monster_visible( mon ))
@@ -3698,7 +3700,7 @@ static int affect_monster_enchantment(struct bolt &beam, struct monsters *mon)
return (MON_UNAFFECTED);
if (check_mons_resist_magic( mon, beam.ench_power ))
- return (MON_RESIST);
+ return mons_immune_magic(mon) ? MON_UNAFFECTED : MON_RESIST;
if (monster_polymorph(mon, RANDOM_MONSTER, 100))
beam.obvious_effect = true;
@@ -3709,7 +3711,7 @@ static int affect_monster_enchantment(struct bolt &beam, struct monsters *mon)
if (beam.flavour == BEAM_BANISH)
{
if (check_mons_resist_magic( mon, beam.ench_power ))
- return (MON_RESIST);
+ return mons_immune_magic(mon) ? MON_UNAFFECTED : MON_RESIST;
if (you.level_type == LEVEL_ABYSS)
{
@@ -3731,7 +3733,7 @@ static int affect_monster_enchantment(struct bolt &beam, struct monsters *mon)
}
if (check_mons_resist_magic( mon, beam.ench_power ))
- return (MON_RESIST);
+ return mons_immune_magic(mon) ? MON_UNAFFECTED : MON_RESIST;
if (monster_polymorph(mon, MONS_PULSATING_LUMP, 100))
beam.obvious_effect = true;
@@ -3763,7 +3765,7 @@ static int affect_monster_enchantment(struct bolt &beam, struct monsters *mon)
#endif
if (check_mons_resist_magic( mon, beam.ench_power ))
- return (MON_RESIST);
+ return mons_immune_magic(mon) ? MON_UNAFFECTED : MON_RESIST;
simple_monster_message(mon, " is enslaved.");
beam.obvious_effect = true;
@@ -3807,7 +3809,7 @@ static int affect_monster_enchantment(struct bolt &beam, struct monsters *mon)
&& beam.flavour != BEAM_HEALING
&& beam.flavour != BEAM_INVISIBILITY)
{
- return (MON_RESIST);
+ return mons_immune_magic(mon) ? MON_UNAFFECTED : MON_RESIST;
}
if (beam.flavour == BEAM_PAIN) /* pain/agony */