diff options
author | Steve Melenchuk <smelenchuk@gmail.com> | 2014-04-13 11:15:23 -0600 |
---|---|---|
committer | Steve Melenchuk <smelenchuk@gmail.com> | 2014-05-07 18:23:22 -0600 |
commit | 6841e2560bc81adc6ddfebd0fb8f28bbce540d54 (patch) | |
tree | 79909f8cc96a2795007358401bff0cdac2099708 /crawl-ref/source/dactions.cc | |
parent | 3f3bee6cc598206a866c0e59a476e32d78794418 (diff) | |
download | crawl-ref-6841e2560bc81adc6ddfebd0fb8f28bbce540d54.tar.gz crawl-ref-6841e2560bc81adc6ddfebd0fb8f28bbce540d54.zip |
Gozag: Gold sense.
You passively detect gold on entering a level.
Diffstat (limited to 'crawl-ref/source/dactions.cc')
-rw-r--r-- | crawl-ref/source/dactions.cc | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/crawl-ref/source/dactions.cc b/crawl-ref/source/dactions.cc index 8c16aeb6ac..0d9bc2fad4 100644 --- a/crawl-ref/source/dactions.cc +++ b/crawl-ref/source/dactions.cc @@ -22,6 +22,7 @@ #include "mon-util.h" #include "player.h" #include "religion.h" +#include "show.h" #include "state.h" #include "travel.h" #include "view.h" @@ -306,21 +307,36 @@ static void _apply_daction(daction_type act) unset_level_flags(LFLAG_NO_TELE_CONTROL, you.depth != 3); break; case DACT_GOLD_ON_TOP: + { + int count = 0; for (rectangle_iterator ri(0); ri; ++ri) { for (stack_iterator j(*ri); j; ++j) { if (j->base_type == OBJ_GOLD) { + bool detected = false; int dummy = j->link; j->special = 0; unlink_item(dummy); move_item_to_grid(&dummy, *ri, true); + if (!env.map_knowledge(*ri).item() + || env.map_knowledge(*ri).item()->base_type != OBJ_GOLD) + { + count++; + detected = true; + } + update_item_at(*ri, true); + if (detected) + env.map_knowledge(*ri).flags |= MAP_DETECTED_ITEM; break; } } } + if (count) + mprf(MSGCH_GOD, "You feel very greedy and sense gold!"); break; + } case DACT_REMOVE_GOZAG_SHOPS: { vector<map_marker *> markers = env.markers.get_all(MAT_FEATURE); |