summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/religion.cc
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-06-22 18:47:22 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-06-22 18:47:22 +0000
commit1b88ae75470d9067b240b5c6f7114228118e4ca7 (patch)
tree51acbf4798c81e346e859ef31497e069c88c0100 /crawl-ref/source/religion.cc
parentb55ce56cc053eb98b9f187c3d9111ffb4db81edb (diff)
downloadcrawl-ref-1b88ae75470d9067b240b5c6f7114228118e4ca7.tar.gz
crawl-ref-1b88ae75470d9067b240b5c6f7114228118e4ca7.zip
Abolish item sacrifices for all gods except Nemelex, Zin and TSO. The
descriptions will have to be updated. If special cases are seen as invaluable part of that god's design, they should be reworked to not to ressemble grinding anymore and/or gain flavour. (Compare with Ely's weapon destruction or Trog's book burning.) Disallow merfolk monsters in the Swamp and reduce their "rare" probability in the main dungeon to that of flying skulls. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6046 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/religion.cc')
-rw-r--r--crawl-ref/source/religion.cc32
1 files changed, 11 insertions, 21 deletions
diff --git a/crawl-ref/source/religion.cc b/crawl-ref/source/religion.cc
index fc33282b75..01dbc8d09d 100644
--- a/crawl-ref/source/religion.cc
+++ b/crawl-ref/source/religion.cc
@@ -3009,8 +3009,7 @@ bool god_dislikes_item_handling(const item_def &item)
{
return (item.base_type == OBJ_BOOKS
&& item.sub_type != BOOK_MANUAL
- && (!item_type_known(item)
- || item.sub_type != BOOK_DESTRUCTION));
+ && item.sub_type != BOOK_DESTRUCTION);
}
return (is_good_god(you.religion) && is_evil_item(item)
@@ -5040,32 +5039,23 @@ bool god_likes_items(god_type god)
{
switch (god)
{
- case GOD_ZIN: case GOD_SHINING_ONE: case GOD_KIKUBAAQUDGHA:
- case GOD_OKAWARU: case GOD_MAKHLEB: case GOD_SIF_MUNA:
- case GOD_TROG: case GOD_NEMELEX_XOBEH:
+ case GOD_ZIN: case GOD_SHINING_ONE: case GOD_NEMELEX_XOBEH:
return (true);
- case GOD_YREDELEMNUL: case GOD_XOM: case GOD_VEHUMET:
- case GOD_LUGONU: case GOD_BEOGH: case GOD_ELYVILON:
- return (false);
-
case GOD_NO_GOD: case NUM_GODS: case GOD_RANDOM:
mprf(MSGCH_ERROR, "Bad god, no biscuit! %d", static_cast<int>(god) );
+ default:
return (false);
}
- return (false);
}
static bool _god_likes_item(god_type god, const item_def& item)
{
if (!god_likes_items(god))
- return false;
+ return (false);
switch (god)
{
- case GOD_KIKUBAAQUDGHA: case GOD_TROG:
- return (item.base_type == OBJ_CORPSES || is_blood_potion(item));
-
case GOD_NEMELEX_XOBEH:
return !is_deck(item);
@@ -5076,7 +5066,7 @@ static bool _god_likes_item(god_type god, const item_def& item)
return item.base_type == OBJ_GOLD;
default:
- return true;
+ return (false);
}
}
@@ -5336,10 +5326,10 @@ void offer_items()
num_sacced++;
}
- if ( num_sacced > 0 && you.religion == GOD_NEMELEX_XOBEH )
+ if (num_sacced > 0 && you.religion == GOD_NEMELEX_XOBEH)
{
const int new_leading = _leading_sacrifice_group();
- if ( old_leading != new_leading || one_chance_in(50) )
+ if (old_leading != new_leading || one_chance_in(50))
_give_sac_group_feedback(new_leading);
#if DEBUG_GIFTS || DEBUG_CARDS || DEBUG_SACRIFICE
@@ -5348,13 +5338,13 @@ void offer_items()
}
else if (num_sacced == 0) // explanatory messages if nothing sacrificed
{
- if (you.religion == GOD_KIKUBAAQUDGHA || you.religion == GOD_TROG)
- simple_god_message(" only cares about primal sacrifices!", you.religion);
- else if (you.religion == GOD_NEMELEX_XOBEH)
+ // Zin was handled above, and the other gods don't care about
+ // sacrifices.
+
+ if (you.religion == GOD_NEMELEX_XOBEH)
simple_god_message(" expects you to use your decks, not offer them!", you.religion);
else if (you.religion == GOD_SHINING_ONE)
simple_god_message(" only cares about evil items!", you.religion);
- // everyone else was handled above (Zin!) or likes everything
}
}