summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crawl-ref/source/mon-death.cc5
-rw-r--r--crawl-ref/source/spl-summoning.cc8
2 files changed, 8 insertions, 5 deletions
diff --git a/crawl-ref/source/mon-death.cc b/crawl-ref/source/mon-death.cc
index c31c2659fa..4ed47824b1 100644
--- a/crawl-ref/source/mon-death.cc
+++ b/crawl-ref/source/mon-death.cc
@@ -1719,8 +1719,11 @@ int monster_die(monster* mons, killer_type killer,
}
else if (mons->type == MONS_BATTLESPHERE)
{
- if (!wizard && !mons_reset && !was_banished)
+ if (!wizard && !mons_reset && !was_banished
+ && !cell_is_solid(mons->pos()))
+ {
place_cloud(CLOUD_MAGIC_TRAIL, mons->pos(), 3 + random2(3), mons);
+ }
end_battlesphere(mons, true);
}
else if (mons->type == MONS_BRIAR_PATCH)
diff --git a/crawl-ref/source/spl-summoning.cc b/crawl-ref/source/spl-summoning.cc
index a7974a337c..912612a7b8 100644
--- a/crawl-ref/source/spl-summoning.cc
+++ b/crawl-ref/source/spl-summoning.cc
@@ -2749,8 +2749,8 @@ void end_battlesphere(monster* mons, bool killed)
else if (you.can_see(mons))
simple_monster_message(mons, " dissipates.");
- place_cloud(CLOUD_MAGIC_TRAIL, mons->pos(),
- 3 + random2(3), mons);
+ if (!cell_is_solid(mons->pos()))
+ place_cloud(CLOUD_MAGIC_TRAIL, mons->pos(), 3 + random2(3), mons);
monster_die(mons, KILL_RESET, NON_MONSTER);
}
@@ -3418,8 +3418,8 @@ void end_grand_avatar(monster* mons, bool killed)
if (!killed)
{
- place_cloud(CLOUD_MAGIC_TRAIL, mons->pos(),
- 3 + random2(3), mons);
+ if (!cell_is_solid(mons->pos()))
+ place_cloud(CLOUD_MAGIC_TRAIL, mons->pos(), 3 + random2(3), mons);
monster_die(mons, KILL_RESET, NON_MONSTER);
}
}