diff options
author | Steve Melenchuk <smelenchuk@gmail.com> | 2014-02-24 21:55:17 -0700 |
---|---|---|
committer | Steve Melenchuk <smelenchuk@gmail.com> | 2014-02-26 21:19:58 -0700 |
commit | 75deb85f6e81443628063de806a368df0c3b08a3 (patch) | |
tree | f273b4bd7fa2f970aa3803621bc477befcbf7cc9 /crawl-ref/source/mon-act.cc | |
parent | 677420826d3fc95192aa22869fe859f2093952cc (diff) | |
download | crawl-ref-75deb85f6e81443628063de806a368df0c3b08a3.tar.gz crawl-ref-75deb85f6e81443628063de806a368df0c3b08a3.zip |
Rod of frigid destruction -> Rod of clouds.
Sprays clouds over a cone-shaped area in front of the caster. At low
power it gives rain, mist, or noxious fumes; mid-tier gives flames,
freezing vapour, or poison gas; high-tier gives one of three new cloud
types - acidic fog, negative energy, or storm clouds.
The targeter is from an experimental implementation of a spell called
"Scattershot", hence the name and some of the functionality it provides
which goes unused here.
Diffstat (limited to 'crawl-ref/source/mon-act.cc')
-rw-r--r-- | crawl-ref/source/mon-act.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/crawl-ref/source/mon-act.cc b/crawl-ref/source/mon-act.cc index 78d13b184e..140cd59e83 100644 --- a/crawl-ref/source/mon-act.cc +++ b/crawl-ref/source/mon-act.cc @@ -47,6 +47,7 @@ #include "religion.h" #include "shopping.h" // for item values #include "spl-book.h" +#include "spl-clouds.h" #include "spl-damage.h" #include "spl-summoning.h" #include "spl-util.h" @@ -1266,6 +1267,7 @@ static bool _handle_rod(monster *mons, bolt &beem) case SPELL_POISON_ARROW: case SPELL_THROW_FLAME: case SPELL_THROW_FROST: + case SPELL_CLOUD_CONE: break; case SPELL_FIREBALL: @@ -1325,6 +1327,8 @@ static bool _handle_rod(monster *mons, bolt &beem) } else if (mzap == SPELL_THUNDERBOLT) zap = _thunderbolt_tracer(mons, power, beem.target); + else if (mzap == SPELL_CLOUD_CONE) + zap = mons_should_cloud_cone(mons, power, beem.target); else { fire_tracer(mons, beem); @@ -1346,6 +1350,12 @@ static bool _handle_rod(monster *mons, bolt &beem) cast_thunderbolt(mons, power, beem.target); return _rod_fired_post(mons, rod, weapon, beem, rate, was_visible); } + else if (mzap == SPELL_CLOUD_CONE) + { + _rod_fired_pre(mons); + cast_cloud_cone(mons, power, beem.target); + return _rod_fired_post(mons, rod, weapon, beem, rate, was_visible); + } else if (zap) { _rod_fired_pre(mons); |