diff options
-rw-r--r-- | crawl-ref/source/mon-death.cc | 5 | ||||
-rw-r--r-- | crawl-ref/source/spl-summoning.cc | 8 |
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); } } |