summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/spl-damage.cc
diff options
context:
space:
mode:
authorSteve Melenchuk <smelenchuk@gmail.com>2014-03-01 22:42:32 -0700
committerSteve Melenchuk <smelenchuk@gmail.com>2014-03-01 22:42:32 -0700
commitefee55e9b585cae7e42c80e5fe54b1bbc4ed9cb4 (patch)
tree960379d50e4447be0b719704108cb9cc817fd43b /crawl-ref/source/spl-damage.cc
parent8965cfaeaf5031f6bf24bdef5d686d4090f7f50c (diff)
downloadcrawl-ref-efee55e9b585cae7e42c80e5fe54b1bbc4ed9cb4.tar.gz
crawl-ref-efee55e9b585cae7e42c80e5fe54b1bbc4ed9cb4.zip
Make Glaciate damage fall off linearly, not with square of distance.
With wider playtesting, damage at range has been suggested to be underwhelming; this should help address that.
Diffstat (limited to 'crawl-ref/source/spl-damage.cc')
-rw-r--r--crawl-ref/source/spl-damage.cc12
1 files changed, 6 insertions, 6 deletions
diff --git a/crawl-ref/source/spl-damage.cc b/crawl-ref/source/spl-damage.cc
index 068c87c398..f572e85bec 100644
--- a/crawl-ref/source/spl-damage.cc
+++ b/crawl-ref/source/spl-damage.cc
@@ -2959,7 +2959,6 @@ spret_type cast_glaciate(actor *caster, int pow, coord_def aim, bool fail)
const int range = spell_range(SPELL_GLACIATE, pow);
targetter_cone hitfunc(caster, range);
hitfunc.set_aim(aim);
- int range2 = 0;
if (caster->is_player())
{
@@ -3019,10 +3018,11 @@ spret_type cast_glaciate(actor *caster, int pow, coord_def aim, bool fail)
if (p->second <= 0)
continue;
- range2 = max(9, (p->first - caster->pos()).abs());
- // At or within range 3 (range2 9), this is equivalent to the
- // old Ice Storm damage.
- beam.damage = calc_dice(7, (198 + 9 * pow) / range2);
+ const int eff_range = max(3, i);
+
+ // At or within range 3, this is equivalent to the old Ice Storm
+ // damage.
+ beam.damage = calc_dice(7, (66 + 3 * pow) / eff_range);
if (actor_at(p->first))
{
@@ -3032,7 +3032,7 @@ spret_type cast_glaciate(actor *caster, int pow, coord_def aim, bool fail)
beam.fire();
}
place_cloud(CLOUD_COLD, p->first,
- (18 + random2avg(45,2)) / range2, caster);
+ (18 + random2avg(45,2)) / eff_range, caster);
}
}