hydras attack adjacent hostiles if they kill their target and have attacks left over.
OTDJPZFQMC4ZVFHCGZWAI2QRFB3PCUAD5DKGGRJKQL5IUHW4XCTAC
GGAYOBBKHIDQNAYPKTMEIRVMJ77LL7Z6NBPYCBBKJZOVI7RS2XQQC
OSRZEPPGBIMSZBWIVBTZTTIMV6TEUGVZRZ5AI2ZJW7CVZZQBUIMQC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
SOCJXX6MMOXLBEWBID4QN5FW2YNYULNNN7K3IRL7RSWK5EUNAZLQC
SBTVKHKZRMVDBYLGQNMZMJXPAYJG43UWBBD7HQJWIPN3BMMHUBJAC
2Z6IWKMEWE4OIFVWFSZBA2SIXMBJNV6H6LNEPOXTJZW433ABU4EQC
QDTVLBRGHDTRUVT7I3O72K6TMOYAUSAJBZUHGOEFU2RKJNUPWZSQC
JYEEOUYQ7ZPKOGWUV7VCORBVSOLF2UCBFBH3TR75RGOSS6PNKYUAC
ODQ7LIJ2UROGGENIORRXZFWII3ZM2N45YD53FKWDQB7LLRXR4PHAC
break;
{
if (attacker == defender
|| !attacker_as_monster()->has_hydra_multi_attack())
{
break;
}
// Hydras can try and pick up a new monster to attack to
// finish out their round. -cao
bool end = true;
for (adjacent_iterator i(attacker->pos()); i; ++i)
{
if (*i == you.pos() && !mons_friendly(attacker_as_monster()))
{
attacker_as_monster()->foe = MHITYOU;
attacker_as_monster()->target = you.pos();
defender = &you;
end = false;
break;
}