diff options
author | Steve Melenchuk <smelenchuk@gmail.com> | 2013-12-31 21:33:59 -0700 |
---|---|---|
committer | Steve Melenchuk <smelenchuk@gmail.com> | 2014-01-03 19:49:47 -0700 |
commit | dbd231b156b7b3131be76684074056af0e34c317 (patch) | |
tree | 471d13f2445c7341a6ceaa93e232f00c8c3e6abd /crawl-ref/source/mon-behv.cc | |
parent | de08443c12c1d1fe5de9143c97a0d269ced3f290 (diff) | |
download | crawl-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.cc | 16 |
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. |