summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/mon-util.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/mon-util.cc')
-rw-r--r--crawl-ref/source/mon-util.cc22
1 files changed, 14 insertions, 8 deletions
diff --git a/crawl-ref/source/mon-util.cc b/crawl-ref/source/mon-util.cc
index 0d74cba572..351ee05880 100644
--- a/crawl-ref/source/mon-util.cc
+++ b/crawl-ref/source/mon-util.cc
@@ -2361,10 +2361,14 @@ bool monsters::fumbles_attack(bool verbose)
{
if (floundering() && one_chance_in(4))
{
- if (verbose && !silenced(you.x_pos, you.y_pos)
- && !silenced(x, y))
+ if (verbose)
{
- mprf(MSGCH_SOUND, "You hear a splashing noise.");
+ const bool can_see =
+ mons_near(this) && player_monster_visible(this);
+ if (can_see)
+ mprf("%s splashes around in the water.");
+ else if (!silenced(you.x_pos, you.y_pos) && !silenced(x, y))
+ mprf(MSGCH_SOUND, "You hear a splashing noise.");
}
return (true);
}
@@ -3384,7 +3388,7 @@ void monsters::apply_enchantment(mon_enchant me, int spd)
if (type == MONS_GLOWING_SHAPESHIFTER
|| random2(1000) < mod_speed( 250, spd ))
{
- monster_polymorph(this, RANDOM_MONSTER, 0);
+ monster_polymorph(this, RANDOM_MONSTER, PPT_SAME);
}
break;
@@ -3392,7 +3396,7 @@ void monsters::apply_enchantment(mon_enchant me, int spd)
if (type == MONS_SHAPESHIFTER
|| random2(1000) < mod_speed( 1000 / ((15 * hit_dice) / 5), spd ))
{
- monster_polymorph(this, RANDOM_MONSTER, 0);
+ monster_polymorph(this, RANDOM_MONSTER, PPT_SAME);
}
break;
@@ -3479,10 +3483,10 @@ kill_category monsters::kill_alignment() const
return (attitude == ATT_FRIENDLY? KC_FRIENDLY : KC_OTHER);
}
-void monsters::sicken(int amount)
+bool monsters::sicken(int amount)
{
if (holiness() != MH_NATURAL || (amount /= 2) < 1)
- return;
+ return (false);
if (!has_ench(ENCH_SICK)
&& mons_near(this) && player_monster_visible(this))
@@ -3492,6 +3496,8 @@ void monsters::sicken(int amount)
}
add_ench(mon_enchant(ENCH_SICK, amount));
+
+ return (true);
}
int monsters::base_speed(int mcls)
@@ -3643,7 +3649,7 @@ void monsters::mutate()
if (holiness() != MH_NATURAL)
return;
- monster_polymorph(this, RANDOM_MONSTER, 100);
+ monster_polymorph(this, RANDOM_MONSTER);
}
bool monsters::is_icy() const