summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/effects.cc
diff options
context:
space:
mode:
authorMatthew Cline <zelgadis@sourceforge.net>2009-11-17 11:44:35 -0800
committerMatthew Cline <zelgadis@sourceforge.net>2009-11-17 11:44:35 -0800
commit76266acfba0ff1e233907c3e392dbb3329491437 (patch)
tree53542b9e9ece8a2c3686dae168b15b4a5bd576e0 /crawl-ref/source/effects.cc
parent155946e89327f4a852aea98e00de172d021e2ada (diff)
downloadcrawl-ref-76266acfba0ff1e233907c3e392dbb3329491437.tar.gz
crawl-ref-76266acfba0ff1e233907c3e392dbb3329491437.zip
torment(): set attacker from caster
Diffstat (limited to 'crawl-ref/source/effects.cc')
-rw-r--r--crawl-ref/source/effects.cc15
1 files changed, 14 insertions, 1 deletions
diff --git a/crawl-ref/source/effects.cc b/crawl-ref/source/effects.cc
index c161837a6f..b31ed17d89 100644
--- a/crawl-ref/source/effects.cc
+++ b/crawl-ref/source/effects.cc
@@ -336,11 +336,24 @@ int torment_monsters(coord_def where, int pow, int caster, actor *attacker)
int torment(int caster, const coord_def& where)
{
+ actor* attacker = NULL;
+
+ if (!invalid_monster_index(caster))
+ attacker = &menv[caster];
+ else if (caster < 0 && you.turn_is_over && where == you.pos()
+ && !(crawl_state.is_god_acting()
+ &&crawl_state.is_god_retribution()))
+ {
+ // Maybe monsters should still consider it your fault if it's
+ // caused by divine retribution?
+ attacker = &you;
+ }
+
los_def los(where);
los.update();
int r = 0;
for (radius_iterator ri(&los); ri; ++ri)
- r += torment_monsters(*ri, 0, caster);
+ r += torment_monsters(*ri, 0, caster, attacker);
return (r);
}