diff options
author | Raphael Langella <raphael.langella@gmail.com> | 2011-09-15 15:45:47 +0000 |
---|---|---|
committer | Raphael Langella <raphael.langella@gmail.com> | 2011-09-15 23:50:30 +0200 |
commit | da42bcd28637cab0f11e92559ad58b47a98b75fd (patch) | |
tree | a12cf51db4c1ae724118697fa5507b181104c93b /crawl-ref/source/spl-tornado.cc | |
parent | 64d129586ba2ece899d68110867b8b7be714d87a (diff) | |
download | crawl-ref-da42bcd28637cab0f11e92559ad58b47a98b75fd.tar.gz crawl-ref-da42bcd28637cab0f11e92559ad58b47a98b75fd.zip |
Tornado adjustments.
* Duration fixed at 60 aut (what you had at power 120).
* Damage boosted by 28.5%
* Noise reduced to r * 3
Diffstat (limited to 'crawl-ref/source/spl-tornado.cc')
-rw-r--r-- | crawl-ref/source/spl-tornado.cc | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/crawl-ref/source/spl-tornado.cc b/crawl-ref/source/spl-tornado.cc index 223525bf4c..bfac49f12d 100644 --- a/crawl-ref/source/spl-tornado.cc +++ b/crawl-ref/source/spl-tornado.cc @@ -98,7 +98,7 @@ bool WindSystem::has_wind(coord_def c) static void _set_tornado_durations(int powc) { - int dur = 40 + powc / 6; + int dur = 60; you.duration[DUR_TORNADO] = dur; you.duration[DUR_LEVITATION] = std::max(dur, you.duration[DUR_LEVITATION]); @@ -226,7 +226,7 @@ void tornado_damage(actor *caster, int dur) pow = caster->as_monster()->hit_dice * 4; dprf("Doing tornado, dur %d, effective power %d", dur, pow); const coord_def org = caster->pos(); - noisy(25, org, caster->mindex()); + int max_noise = 0; WindSystem winds(org); int age = _tornado_age(caster); @@ -269,6 +269,10 @@ void tornado_damage(actor *caster, int dur) if (!rpow) break; + int noise = div_rand_round(r * rdur * 3, 100); + if (noise > max_noise) + max_noise = noise; + std::vector<coord_def> clouds; for (; dam_i && dam_i.radius() == r; ++dam_i) { @@ -338,7 +342,7 @@ void tornado_damage(actor *caster, int dur) float_player(false); } int dmg = apply_chunked_AC( - div_rand_round(roll_dice(7, rpow), 15), + div_rand_round(roll_dice(9, rpow), 15), victim->armour_class()); if (dur < 0) dmg = 0; @@ -367,6 +371,8 @@ void tornado_damage(actor *caster, int dur) } } + noisy(max_noise, org, caster->mindex()); + if (dur <= 0) return; |