From 6a8cc750190313fc4bdca7c1f257708f3298d20f Mon Sep 17 00:00:00 2001 From: David Lawrence Ramsey Date: Mon, 28 Sep 2009 21:46:04 -0500 Subject: Simplify checks for whether players/monsters can hit monsters, and make sure that the latter can properly hit monsters submerged in shallow water if they have tentacles. --- crawl-ref/source/monstuff.cc | 12 +++++------- crawl-ref/source/player.cc | 10 ++++------ 2 files changed, 9 insertions(+), 13 deletions(-) (limited to 'crawl-ref/source') diff --git a/crawl-ref/source/monstuff.cc b/crawl-ref/source/monstuff.cc index f528547519..af62b59e37 100644 --- a/crawl-ref/source/monstuff.cc +++ b/crawl-ref/source/monstuff.cc @@ -2794,16 +2794,14 @@ bool swap_check(monsters *monster, coord_def &loc, bool quiet) // monster has tentacles). bool monster_can_hit_monster(monsters *monster, const monsters *targ) { - if (!mons_is_submerged(targ)) + if (!mons_is_submerged(targ) || monster->has_damage_type(DVORP_TENTACLE)) return (true); - if (grd(targ->pos()) == DNGN_SHALLOW_WATER) - { - item_def *weapon = monster->weapon(); - return (weapon && weapon_skill(*weapon) == SK_POLEARMS); - } + if (grd(targ->pos()) != DNGN_SHALLOW_WATER) + return (false); - return (monster->has_damage_type(DVORP_TENTACLE)); + const item_def *weapon = monster->weapon(); + return (weapon && weapon_skill(*weapon) == SK_POLEARMS); } void mons_get_damage_level(const monsters* monster, std::string& desc, diff --git a/crawl-ref/source/player.cc b/crawl-ref/source/player.cc index a362419d2a..13161c94c7 100644 --- a/crawl-ref/source/player.cc +++ b/crawl-ref/source/player.cc @@ -1093,13 +1093,11 @@ bool player_can_hit_monster(const monsters *mon) if (!mons_is_submerged(mon)) return (true); - if (grd(mon->pos()) == DNGN_SHALLOW_WATER) - { - const item_def *weapon = you.weapon(); - return (weapon && weapon_skill(*weapon) == SK_POLEARMS); - } + if (grd(mon->pos()) != DNGN_SHALLOW_WATER) + return (false); - return (false); + const item_def *weapon = you.weapon(); + return (weapon && weapon_skill(*weapon) == SK_POLEARMS); } int player_teleport(bool calc_unid) -- cgit v1.2.3-54-g00ecf