summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/spl-damage.cc
diff options
context:
space:
mode:
authorSteve Melenchuk <smelenchuk@gmail.com>2014-04-11 21:38:55 -0600
committerSteve Melenchuk <smelenchuk@gmail.com>2014-04-11 21:42:03 -0600
commit43baa798a097801a07679619b9d380e2054f32cb (patch)
treea1e7f395ea35cceee25df88b4b9cffe1166bc866 /crawl-ref/source/spl-damage.cc
parent49da4dfdf67fbb3f789e802a800de63b3e4ecdc6 (diff)
downloadcrawl-ref-43baa798a097801a07679619b9d380e2054f32cb.tar.gz
crawl-ref-43baa798a097801a07679619b9d380e2054f32cb.zip
Give several area(-ish) spells tracers.
So that they can be cast without being in LOS of the player under appropriate circumstances; thus a check for being in LOS of the player for these and a few other spells are gone. The major candidate here is Symbol of Torment, which can now be used against your allies even if you're torment-immune or you're not in LOS; spells which previously didn't have a tracer of some sort that do now are Chain Lightning and Chain of Chaos (for whatever good it does), and spells that can now be cast anywhere are Ozocubu's Refrigeration, Tornado, and Shatter. Related is a fix for getting a more if Chain Lightning is cast anywhere by anyone regardless of if you saw it or not (now you only get the more if you saw the lightning arc at all).
Diffstat (limited to 'crawl-ref/source/spl-damage.cc')
-rw-r--r--crawl-ref/source/spl-damage.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/crawl-ref/source/spl-damage.cc b/crawl-ref/source/spl-damage.cc
index 796473e42d..a01db9c221 100644
--- a/crawl-ref/source/spl-damage.cc
+++ b/crawl-ref/source/spl-damage.cc
@@ -196,6 +196,7 @@ spret_type cast_chain_spell(spell_type spell_cast, int pow,
const actor *caster, bool fail)
{
fail_check();
+ bool do_more = caster->is_player() || you.can_see(caster);
bolt beam;
// initialise beam structure
@@ -311,6 +312,8 @@ spret_type cast_chain_spell(spell_type spell_cast, int pow,
const bool see_source = you.see_cell(source);
const bool see_targ = you.see_cell(target);
+ if (see_source || see_targ)
+ do_more = true;
if (target.x == -1)
{
@@ -379,7 +382,8 @@ spret_type cast_chain_spell(spell_type spell_cast, int pow,
beam.fire();
}
- more();
+ if (do_more)
+ more();
return SPRET_SUCCESS;
}