diff options
author | haranp <haranp@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-12-25 17:04:20 +0000 |
---|---|---|
committer | haranp <haranp@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-12-25 17:04:20 +0000 |
commit | b1c2d6e096eebdbae0c2f5a8dd48a5f67a1eb678 (patch) | |
tree | 9d9ef2508041df23a59c5bc447cc4ee8633944c5 /crawl-ref/source/spells1.cc | |
parent | 287e5f0820620b81b518ab1f554107afd8a62ebe (diff) | |
download | crawl-ref-b1c2d6e096eebdbae0c2f5a8dd48a5f67a1eb678.tar.gz crawl-ref-b1c2d6e096eebdbae0c2f5a8dd48a5f67a1eb678.zip |
Complete rewrite of the beam code, making it considerably saner.
However, there might be quite a few bugs lurking in this rewrite. Sorry.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7975 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/spells1.cc')
-rw-r--r-- | crawl-ref/source/spells1.cc | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/crawl-ref/source/spells1.cc b/crawl-ref/source/spells1.cc index 7353430c9a..c5a7ca9478 100644 --- a/crawl-ref/source/spells1.cc +++ b/crawl-ref/source/spells1.cc @@ -268,13 +268,14 @@ void setup_fire_storm(const actor *source, int pow, bolt &beam) beam.ench_power = pow; // used for radius beam.hit = 20 + pow / 10; beam.damage = calc_dice(8, 5 + pow); + beam.affects_items = false; } void cast_fire_storm(int pow, bolt &beam) { setup_fire_storm(&you, pow, beam); - if (explosion(beam, false, false, true, true, false) > 0) + if (beam.explode(false)) mpr("A raging storm of fire appears!"); viewwindow(true, false); @@ -416,7 +417,7 @@ void cast_chain_lightning(int pow) if ((beam.damage.size /= 2) < 3) beam.damage.size = 3; } - fire_beam( beam ); + beam.fire(); } more(); @@ -585,7 +586,7 @@ bool stinking_cloud( int pow, bolt &beem ) beem.fr_count = 0; beem.flavour = BEAM_POTION_STINKING_CLOUD; beem.is_tracer = true; - fire_beam(beem); + beem.fire(); if (beem.beam_cancelled) { @@ -598,7 +599,7 @@ bool stinking_cloud( int pow, bolt &beem ) // Really fire. beem.flavour = BEAM_MMISSILE; beem.is_tracer = false; - fire_beam(beem); + beem.fire(); return (true); } |