summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/mon-behv.cc
diff options
context:
space:
mode:
authorSteve Melenchuk <smelenchuk@gmail.com>2013-12-31 21:33:59 -0700
committerSteve Melenchuk <smelenchuk@gmail.com>2014-01-03 19:49:47 -0700
commitdbd231b156b7b3131be76684074056af0e34c317 (patch)
tree471d13f2445c7341a6ceaa93e232f00c8c3e6abd /crawl-ref/source/mon-behv.cc
parentde08443c12c1d1fe5de9143c97a0d269ced3f290 (diff)
downloadcrawl-ref-dbd231b156b7b3131be76684074056af0e34c317.tar.gz
crawl-ref-dbd231b156b7b3131be76684074056af0e34c317.zip
Tune CBL, mainly through ball lightning behaviour changes.
They behave like giant spores now - they can't be controlled directly, instead seeking out the nearest target and exploding when sufficiently near. (Yes, this means they aren't permanently confused any longer.) I've also made the distribution of how many ball lightnings are summoned a little bit smoother, and put a cap on how many monsters can summon at once. In my testing, CBL is a little less suicidal to use now, but I think further tweaks that I've previously toyed with such as reducing the explosion radius might still be warranted. Also, try fighting Lom Lobon now; CBL is much more effective in his hands, too!
Diffstat (limited to 'crawl-ref/source/mon-behv.cc')
-rw-r--r--crawl-ref/source/mon-behv.cc16
1 files changed, 12 insertions, 4 deletions
diff --git a/crawl-ref/source/mon-behv.cc b/crawl-ref/source/mon-behv.cc
index a784a69069..70e43addc3 100644
--- a/crawl-ref/source/mon-behv.cc
+++ b/crawl-ref/source/mon-behv.cc
@@ -453,6 +453,7 @@ void handle_behaviour(monster* mon)
&& !mon->berserk_or_insane()
&& mon->behaviour != BEH_WITHDRAW
&& mon->type != MONS_GIANT_SPORE
+ && mon->type != MONS_BALL_LIGHTNING
&& mon->type != MONS_BATTLESPHERE
&& mon->type != MONS_SPECTRAL_WEAPON)
{
@@ -482,7 +483,9 @@ void handle_behaviour(monster* mon)
// Instead, berserkers attack nearest monsters.
if (mon->behaviour != BEH_SLEEP
&& (mon->has_ench(ENCH_INSANE)
- || ((mon->berserk() || mon->type == MONS_GIANT_SPORE)
+ || ((mon->berserk()
+ || mon->type == MONS_GIANT_SPORE
+ || mon->type == MONS_BALL_LIGHTNING)
&& (mon->foe == MHITNOT
|| isFriendly && mon->foe == MHITYOU))))
{
@@ -620,7 +623,8 @@ void handle_behaviour(monster* mon)
|| !proxPlayer && !isFriendly
|| isNeutral && !mon->has_ench(ENCH_INSANE)
|| patrolling
- || mon->type == MONS_GIANT_SPORE)
+ || mon->type == MONS_GIANT_SPORE
+ || mon->type == MONS_BALL_LIGHTNING)
{
if (mon->behaviour != BEH_LURK)
new_beh = BEH_WANDER;
@@ -1338,9 +1342,13 @@ void behaviour_event(monster* mon, mon_event_type event, const actor *src,
if (mon->behaviour == BEH_WITHDRAW)
break;
- // Avoid moving friendly giant spores out of BEH_WANDER.
- if (mon->friendly() && mon->type == MONS_GIANT_SPORE)
+ // Avoid moving friendly explodey things out of BEH_WANDER.
+ if (mon->friendly()
+ && (mon->type == MONS_GIANT_SPORE
+ || mon->type == MONS_BALL_LIGHTNING))
+ {
break;
+ }
// [ds] Neutral monsters don't react to your presence.
// XXX: Neutral monsters are a tangled mess of arbitrary logic.