summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/mon-util.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/mon-util.cc')
-rw-r--r--crawl-ref/source/mon-util.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/crawl-ref/source/mon-util.cc b/crawl-ref/source/mon-util.cc
index 76718e6c67..69105af2e7 100644
--- a/crawl-ref/source/mon-util.cc
+++ b/crawl-ref/source/mon-util.cc
@@ -3350,6 +3350,13 @@ bool monsters::pickup_missile(item_def &item, int near, bool force)
if (mons_has_ranged_spell(this))
return (false);
+ // Monsters in a fight will only pick up missiles if doing so is worthwhile.
+ if (behaviour != BEH_WANDER
+ && (item.quantity < 5 || miss && miss->quantity >= 3))
+ {
+ return (false);
+ }
+
if (miss && items_stack(*miss, item))
return (pickup(item, MSLOT_MISSILE, near));