summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/beam.cc
diff options
context:
space:
mode:
authorzelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573>2008-12-26 07:03:51 +0000
committerzelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573>2008-12-26 07:03:51 +0000
commitd00bca7cd698603066d58489556cce6c98122b89 (patch)
treee3f3b6b0a81f55e067874857c4bc26f2c3ea1532 /crawl-ref/source/beam.cc
parentdb4441f34f048c26426a835731d4fac7fa90a02a (diff)
downloadcrawl-ref-d00bca7cd698603066d58489556cce6c98122b89.tar.gz
crawl-ref-d00bca7cd698603066d58489556cce6c98122b89.zip
Tracers shouldn't affect walls.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7979 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/beam.cc')
-rw-r--r--crawl-ref/source/beam.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/crawl-ref/source/beam.cc b/crawl-ref/source/beam.cc
index db53a28b74..fc17b837b9 100644
--- a/crawl-ref/source/beam.cc
+++ b/crawl-ref/source/beam.cc
@@ -1722,6 +1722,9 @@ void bolt::finish_beam()
void bolt::affect_wall()
{
+ if (is_tracer)
+ return;
+
if (flavour == BEAM_DIGGING)
digging_wall_effect();
else if (is_fiery())
@@ -1765,7 +1768,7 @@ void bolt::hit_wall()
ray.regress();
} while (ray.pos() != source && grid_is_solid(ray.pos()));
// target is where the explosion is centered, so update it.
- if (is_explosion)
+ if (is_explosion && !is_tracer)
target = ray.pos();
}
finish_beam();
@@ -1904,7 +1907,8 @@ void bolt::do_fire()
if (stop_at_target() && pos() == target)
break;
- ASSERT(!grid_is_solid(grd(pos())));
+ ASSERT(!grid_is_solid(grd(pos()))
+ || (is_tracer && affects_wall(grd(pos()))));
const bool was_seen = seen;
if (!was_seen && range > 0 && !invisible() && see_grid(pos()))