summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/mon-util.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/mon-util.cc')
-rw-r--r--crawl-ref/source/mon-util.cc12
1 files changed, 10 insertions, 2 deletions
diff --git a/crawl-ref/source/mon-util.cc b/crawl-ref/source/mon-util.cc
index 82dce8d5a0..008ce07a2c 100644
--- a/crawl-ref/source/mon-util.cc
+++ b/crawl-ref/source/mon-util.cc
@@ -1057,6 +1057,14 @@ mon_attack_def downscale_zombie_attack(const monsters *mons,
mon_attack_def mons_attack_spec(const monsters *mon, int attk_number)
{
int mc = mon->type;
+
+ if (mc == MONS_KRAKEN_TENTACLE
+ && !invalid_monster_index(mon->number))
+ {
+ // Use the zombie, etc info from the kraken
+ mon = &menv[mon->number];
+ }
+
const bool zombified = mons_is_zombified(mon);
if (attk_number < 0 || attk_number > 3 || mon->has_hydra_multi_attack())
@@ -1074,7 +1082,7 @@ mon_attack_def mons_attack_spec(const monsters *mon, int attk_number)
return (mon_attack_def::attk(0, AT_NONE));
}
- if (zombified)
+ if (zombified && mc != MONS_KRAKEN_TENTACLE)
mc = mons_zombie_base(mon);
ASSERT(smc);
@@ -2582,7 +2590,7 @@ static bool _ms_los_spell(spell_type monspell)
// True, the tentacles _are_ summoned, but they are restricted to
// water just like the kraken is, so it makes more sense not to
// count them here.
- if (SPELL_KRAKEN_TENTACLES)
+ if (monspell == SPELL_KRAKEN_TENTACLES)
return (false);
if (monspell == SPELL_SMITING