summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crawl-ref/source/describe.cc11
-rw-r--r--crawl-ref/source/goditem.cc16
2 files changed, 21 insertions, 6 deletions
diff --git a/crawl-ref/source/describe.cc b/crawl-ref/source/describe.cc
index 933bd6886d..4a536275f7 100644
--- a/crawl-ref/source/describe.cc
+++ b/crawl-ref/source/describe.cc
@@ -1992,10 +1992,17 @@ std::string get_item_description( const item_def &item, bool verbose,
}
}
- if (good_god_hates_item_handling(item))
+ if (conduct_type ct = good_god_hates_item_handling(item))
{
description << "$$" << god_name(you.religion) << " opposes the use of "
- << "such an evil item.";
+ << "such an ";
+
+ if (ct == DID_NECROMANCY)
+ description << "evil";
+ else
+ description << "unholy";
+
+ description << " item.";
}
else if (god_hates_item_handling(item))
{
diff --git a/crawl-ref/source/goditem.cc b/crawl-ref/source/goditem.cc
index f5c6e8976b..3a1341accb 100644
--- a/crawl-ref/source/goditem.cc
+++ b/crawl-ref/source/goditem.cc
@@ -429,15 +429,23 @@ bool god_hates_rod(const item_def& item)
conduct_type good_god_hates_item_handling(const item_def &item)
{
- if (!is_good_god(you.religion) || !is_evil_item(item))
+ if (!is_good_god(you.religion)
+ || (!is_unholy_item(item) && !is_evil_item(item)))
+ {
return (DID_NOTHING);
+ }
+
+ if (item_type_known(item))
+ {
+ if (is_evil_item(item))
+ return (DID_NECROMANCY);
+ else
+ return (DID_UNHOLY);
+ }
if (is_demonic(item))
return (DID_UNHOLY);
- if (item_type_known(item))
- return (DID_NECROMANCY);
-
return (DID_NOTHING);
}