diff options
author | Steve Melenchuk <smelenchuk@gmail.com> | 2014-04-11 21:38:55 -0600 |
---|---|---|
committer | Steve Melenchuk <smelenchuk@gmail.com> | 2014-04-11 21:42:03 -0600 |
commit | 43baa798a097801a07679619b9d380e2054f32cb (patch) | |
tree | a1e7f395ea35cceee25df88b4b9cffe1166bc866 /crawl-ref/source/spl-damage.cc | |
parent | 49da4dfdf67fbb3f789e802a800de63b3e4ecdc6 (diff) | |
download | crawl-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.cc | 6 |
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; } |