diff options
author | gammafunk <gammafunk@gmail.com> | 2014-05-23 23:59:41 -0500 |
---|---|---|
committer | gammafunk <gammafunk@gmail.com> | 2014-05-26 23:17:43 -0500 |
commit | 2371adb45923b9b02faa5c4fff65df3c535f7de4 (patch) | |
tree | b5c251c2ab13655b90ac81848f00d68d871fd0d1 /crawl-ref/source/spl-transloc.cc | |
parent | 113be5ec1658845d372a7702d3ccbbfa890dc012 (diff) | |
download | crawl-ref-2371adb45923b9b02faa5c4fff65df3c535f7de4.tar.gz crawl-ref-2371adb45923b9b02faa5c4fff65df3c535f7de4.zip |
Make corpses and skeletons stationary items (minmay)
Moving corpses and skeletons to other levels or to other locations
within a level is tedious but may be optimal for corpse rot and god
abilities like Kiku's corpse prayer. This commit prevents the player
from picking up or apporting carrion. It generalizes the code used for
nets being stationary, and cleans up and documents various bits of
related item pickup code.
Diffstat (limited to 'crawl-ref/source/spl-transloc.cc')
-rw-r--r-- | crawl-ref/source/spl-transloc.cc | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/crawl-ref/source/spl-transloc.cc b/crawl-ref/source/spl-transloc.cc index 2b6e5c4124..50536a1b91 100644 --- a/crawl-ref/source/spl-transloc.cc +++ b/crawl-ref/source/spl-transloc.cc @@ -809,6 +809,13 @@ spret_type cast_apportation(int pow, bolt& beam, bool fail) item_def& item = mitm[item_idx]; + // Nets can be apported when they have a victim trapped. + if (item_is_stationary(item) && !item_is_stationary_net(item)) + { + mpr("You cannot apport that!"); + return SPRET_ABORT; + } + // Can't apport the Orb in zotdef or sprint if (item_is_orb(item) && (crawl_state.game_is_zotdef() @@ -845,9 +852,7 @@ spret_type cast_apportation(int pow, bolt& beam, bool fail) } // If we apport a net, free the monster under it. - if (item.base_type == OBJ_MISSILES - && item.sub_type == MI_THROWING_NET - && item_is_stationary(item)) + if (item_is_stationary_net(item)) { free_stationary_net(item_idx); if (monster* mons = monster_at(where)) |