From 598f36ee1bca9a725456665c8d0f999851fb96de Mon Sep 17 00:00:00 2001 From: Johanna Ploog Date: Wed, 13 Jan 2010 13:40:41 +0100 Subject: Don't allow spellcasters to throw items at you. I had two orc priests throw their spears at me instead of smiting me. Monsters with a ranged attack were prevented from picking up missiles but not from throwing their melee weapons. If we want e.g. mermaids to be able to throw stuff at the player, we will have to tweak the check to ignore some los abilities. --- crawl-ref/source/mon-act.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'crawl-ref/source/mon-act.cc') diff --git a/crawl-ref/source/mon-act.cc b/crawl-ref/source/mon-act.cc index bc15130cc4..da7b274724 100644 --- a/crawl-ref/source/mon-act.cc +++ b/crawl-ref/source/mon-act.cc @@ -1461,7 +1461,7 @@ static bool _handle_throw(monsters *monster, bolt & beem) return (false); const bool archer = mons_class_flag(monster->type, M_ARCHER); - // Highly-specialised archers are more likely to shoot than talk. + // Highly-specialised archers are more likely to shoot than talk. (?) if (one_chance_in(archer? 9 : 5)) return (false); @@ -1474,6 +1474,10 @@ static bool _handle_throw(monsters *monster, bolt & beem) if (!archer && adjacent(beem.target, monster->pos())) return (false); + // If the monster is a spellcaster, don't bother throwing stuff. + if (mons_has_ranged_spell(monster, true, false)) + return (false); + // Greatly lowered chances if the monster is fleeing or pacified and // leaving the level. if ((mons_is_fleeing(monster) || monster->pacified()) -- cgit v1.2.3-54-g00ecf