summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crawl-ref/source/beam.cc19
1 files changed, 16 insertions, 3 deletions
diff --git a/crawl-ref/source/beam.cc b/crawl-ref/source/beam.cc
index fc042aa19f..d61e4cd1f8 100644
--- a/crawl-ref/source/beam.cc
+++ b/crawl-ref/source/beam.cc
@@ -5732,9 +5732,22 @@ bool bolt::nasty_to(const monsters *mon) const
// actively positive.
bool bolt::nice_to(const monsters *mon) const
{
- return (flavour == BEAM_HASTE
- || flavour == BEAM_HEALING
- || flavour == BEAM_INVISIBILITY);
+ if (flavour == BEAM_HASTE
+ || flavour == BEAM_HEALING
+ || flavour == BEAM_INVISIBILITY)
+ {
+ return (true);
+ }
+
+ // Polymorphing a (very) ugly thing will mutate it into a different
+ // (very) ugly thing.
+ if (flavour == BEAM_POLYMORPH)
+ {
+ return (mon->type == MONS_UGLY_THING
+ || mon->type == MONS_VERY_UGLY_THING);
+ }
+
+ return (false);
}
////////////////////////////////////////////////////////////////////////////