summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/beam.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/beam.cc')
-rw-r--r--crawl-ref/source/beam.cc15
1 files changed, 9 insertions, 6 deletions
diff --git a/crawl-ref/source/beam.cc b/crawl-ref/source/beam.cc
index 6e7eb9c717..8a7df4e6e6 100644
--- a/crawl-ref/source/beam.cc
+++ b/crawl-ref/source/beam.cc
@@ -191,7 +191,7 @@ bool zapping(zap_type ztype, int power, bolt &pbolt,
bool needs_tracer, const char* msg)
{
#if DEBUG_DIAGNOSTICS
- mprf(MSGCH_DIAGNOSTICS, "zapping: power=%d", power );
+ mprf(MSGCH_DIAGNOSTICS, "zapping: power=%d", power);
#endif
pbolt.thrower = KILL_YOU_MISSILE;
@@ -2030,7 +2030,7 @@ void bolt::do_fire()
}
ASSERT(!grid_is_solid(grd(pos()))
- || (is_tracer && affects_wall(grd(pos()))));
+ || is_tracer && affects_wall(grd(pos())));
const bool was_seen = seen;
if (!was_seen && range > 0 && !invisible() && see_grid(pos()))
@@ -3531,7 +3531,7 @@ bool bolt::misses_player()
void bolt::affect_player_enchantment()
{
- if (has_saving_throw() && flavour != BEAM_POLYMORPH
+ if (flavour != BEAM_POLYMORPH && has_saving_throw()
&& you_resist_magic(ench_power))
{
// You resisted it.
@@ -4140,8 +4140,7 @@ void bolt::handle_stop_attack_prompt(monsters* mon)
if (friend_info.count == 1 && !friend_info.dont_stop
|| foe_info.count == 1 && !foe_info.dont_stop)
{
- const bool on_target = (target == mon->pos());
- if (stop_attack_prompt(mon, true, on_target))
+ if (stop_attack_prompt(mon, true, target))
{
beam_cancelled = true;
finish_beam();
@@ -4192,7 +4191,7 @@ void bolt::tracer_nonenchantment_affect_monster(monsters* mon)
return;
// Check only if actual damage.
- if (final > 0)
+ if (!is_tracer && final > 0)
{
for (unsigned int i = 0; i < messages.size(); ++i)
mpr(messages[i].c_str(), MSGCH_MONSTER_DAMAGE);
@@ -5067,6 +5066,10 @@ int bolt::range_used_on_hit(const actor* victim) const
else
used = 1;
+ // Assume we didn't hit, after all.
+ if (is_tracer && used == BEAM_STOP)
+ return 1;
+
if (in_explosion_phase)
return (used);