C3TZ3MSKH4LCCIOAI6IZNLHQT46X635ZE2OCNPEAM7VNL7QRRCKAC
NRQCYKOHMOFQDS5C57WRMZNGNDFH62F4TNMLAPVBGRZKP463JYHQC
L3AZ25JHBR3UGYOWQIYSAIMUSTCCI6LLAWQCL7QRMHVXR4NGV7RAC
GGAYOBBKHIDQNAYPKTMEIRVMJ77LL7Z6NBPYCBBKJZOVI7RS2XQQC
DZDDTR4YAERV7MXLDXM656DRCNZXJFJQGLD23BPCQ2IF6XDKHVXAC
DCZMEKDHQWSQCQYQD6ZXB3XOMWLVLPSPVSBVVMPXMSZF7GO3BVCAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
OSRZEPPGBIMSZBWIVBTZTTIMV6TEUGVZRZ5AI2ZJW7CVZZQBUIMQC
I5N4EIR6SCLLRGKRBUKW5FKUVYK62EA5DOWIAS5XFIHZQKMCXWBAC
R22TTMI6WXWULC7ODKFF3QCB7MOTETQQ6IR4BUCUPOCQKQNCTT5AC
4UXFU3FZOCBSLDQ4S7MJKAE2H7VUHCNRDQMIY6NJ3PHYXWNGISDQC
KAOE5HB3THUKVGFZRO5EZESHEB3Q34WUO5DFMLWIKOBF47LZTIYAC
OP6CTAKWCAU64JXQ3USQYR5E5IFHQHNCACII5UMVRXUTZXJQOAZAC
AVCMVFA3MKCXHO6H44UK5KJNIHTGQV7UA7GYXM26VI6TXXU5ZN6QC
QDTVLBRGHDTRUVT7I3O72K6TMOYAUSAJBZUHGOEFU2RKJNUPWZSQC
NVSFIV2ZKP44XHCSCXG6OZVGL67OIFINC34J2EMKTA4KULCERUEAC
RWF7XNUEOS7QIYRHYSJDPBKVUFBYL42PWYVJZX3AV5SR7EQSNBOAC
3AZMOIK3TRC2S3KDUJHBT5W4DQPO7RU6CQ4MK4H2FUTW63EQ2FVAC
QS3ZRS3E6KL3YJHPKYEWCWJYRBJSXD5OOYF6Y25HZVECGPJRDB5QC
ASLW3Z5PAVZSWJEMMMVZT226P44EKSAD47QS72JIFJESAI3RPN3AC
NF5ISJJGD3UIZYQHYM6LC726BBBMZBCFQ2HWDDXWY2NQQKH6JN4AC
}
// Given an adjacent monster, returns true if the player can hit it (the
// monster should either not be submerged or submerged in shallow water,
// if the player has a polearm).
bool player_can_hit_monster(const monsters *mon)
{
if (!mons_is_submerged(mon))
return (true);
if (grd(mon->pos()) != DNGN_SHALLOW_WATER)
return (false);
const item_def *weapon = you.weapon();
return (weapon && weapon_skill(*weapon) == SK_POLEARMS);
const mon_attack_def atk = mons_attack_spec(this, which_attack);
return ((atk.type == AT_CLAW) ? DVORP_CLAWING :
(atk.type == AT_TENTACLE_SLAP) ? DVORP_TENTACLE
: DVORP_CRUSHING);
if (mons_is_ghost_demon(type))
return (ghost->brand);
return (SPWPN_NORMAL);
if (mons_is_ghost_demon(type))
return (ghost->brand);
return (SPWPN_NORMAL);
const mon_attack_def atk = mons_attack_spec(this, which_attack);
return ((atk.type == AT_CLAW) ? DVORP_CLAWING :
(atk.type == AT_TENTACLE_SLAP) ? DVORP_TENTACLE
: DVORP_CRUSHING);