summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/dactions.cc
diff options
context:
space:
mode:
authorSteve Melenchuk <smelenchuk@gmail.com>2014-04-13 11:15:23 -0600
committerSteve Melenchuk <smelenchuk@gmail.com>2014-05-07 18:23:22 -0600
commit6841e2560bc81adc6ddfebd0fb8f28bbce540d54 (patch)
tree79909f8cc96a2795007358401bff0cdac2099708 /crawl-ref/source/dactions.cc
parent3f3bee6cc598206a866c0e59a476e32d78794418 (diff)
downloadcrawl-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.cc16
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);