diff options
Diffstat (limited to 'crawl-ref/source/mon-util.cc')
-rw-r--r-- | crawl-ref/source/mon-util.cc | 12 |
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 |