diff options
author | zelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-12-26 07:03:51 +0000 |
---|---|---|
committer | zelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-12-26 07:03:51 +0000 |
commit | d00bca7cd698603066d58489556cce6c98122b89 (patch) | |
tree | e3f3b6b0a81f55e067874857c4bc26f2c3ea1532 /crawl-ref/source/beam.cc | |
parent | db4441f34f048c26426a835731d4fac7fa90a02a (diff) | |
download | crawl-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.cc | 8 |
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())) |