summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crawl-ref/source/describe.cc83
-rw-r--r--crawl-ref/source/religion.cc18
2 files changed, 93 insertions, 8 deletions
diff --git a/crawl-ref/source/describe.cc b/crawl-ref/source/describe.cc
index 97dca6d3b5..49b53f767b 100644
--- a/crawl-ref/source/describe.cc
+++ b/crawl-ref/source/describe.cc
@@ -2689,11 +2689,86 @@ static void _detailed_god_description(god_type which_god)
std::string broken = print_god_likes(which_god, true);
linebreak_string2(broken, width);
formatted_string::parse_block(broken, false).display();
- cprintf(EOL);
- cprintf(EOL);
+
broken = print_god_dislikes(which_god, true);
- linebreak_string2(broken, width);
- formatted_string::parse_block(broken, false).display();
+ if (!broken.empty())
+ {
+ cprintf(EOL);
+ cprintf(EOL);
+ linebreak_string2(broken, width);
+ formatted_string::parse_block(broken, false).display();
+ }
+ // Some special handling.
+ broken = "";
+ switch (which_god)
+ {
+ case GOD_TROG:
+ broken = "Note that Trog does not demand training of the "
+ "Invocations skill. All abilities are purely based on "
+ "piety.";
+ break;
+
+ case GOD_ELYVILON:
+ broken = "Under prayer, there is a chance, depending on your "
+ "piety, that Elyvilon will protect you from deadly "
+ "damage. On the other hand, Elyvilon will put you "
+ "under penance should you be praying and attack a "
+ "being which is neither evil nor undead. "
+ EOL EOL
+ "You can use your divine healing abilities on "
+ "monsters. This may turn hostile ones neutral, "
+ "temporarily or permanently. Neutralising works "
+ "better on natural beasts and worse on demons and "
+ "undead. If the neutralisation does not succeed, the "
+ "Magic will be spent, but the monster will not be "
+ "healed. If you manage to neutralise the monster, you "
+ "gain piety and the monster is healed. Should a "
+ "monster become permanently neutral, then you gain "
+ "half of its experience value and the monster tries "
+ "to leave the level as quickly as possible (and "
+ "vanishes thereafter).";
+ break;
+
+ case GOD_NEMELEX_XOBEH:
+ if (which_god == you.religion)
+ {
+ broken = "The piety increase when sacrificing mostly depends "
+ "on the value of the item. To prevent items from "
+ "being accidentally sacrificed, you can "
+ "<w>i</w>nscribe them with <w>!p</w> (protects the "
+ "whole stack), with <w>=p</w> (protects only the "
+ "item), or with <w>!D</w> (causes item to be ignored "
+ "in sacrifices)."
+ EOL EOL
+ "Nemelex Xobeh gifts various types of decks of cards. "
+ "Each deck type comes in three power levels: common, "
+ "ornate, legendary. The latter contain very powerful "
+ "card effects, potentially hazardous. High piety and "
+ "Evocations skill help here, as the power of Nemelex' "
+ "abilities is governed by Evocations instead of "
+ "Invocations."
+ EOL
+ "The type of the deck gifts strongly depends on the "
+ "dominating item class sacrificed:" EOL
+ " decks of Escape -- armour" EOL
+ " decks of Destruction -- weapons and ammunition" EOL
+ " decks of Dungeons -- jewellery, books, "
+ "miscellaneous items" EOL
+ " decks of Summoning -- corpses" EOL
+ " decks of Wonders -- consumables: potions, "
+ "scrolls, wands" EOL;
+ }
+ default:
+ break;
+ }
+
+ if (!broken.empty())
+ {
+ cprintf(EOL);
+ cprintf(EOL);
+ linebreak_string2(broken, width);
+ formatted_string::parse_block(broken, false).display();
+ }
}
const int bottom_line = std::min(30, get_number_of_lines());
diff --git a/crawl-ref/source/religion.cc b/crawl-ref/source/religion.cc
index 1952300d78..ee7cfc048e 100644
--- a/crawl-ref/source/religion.cc
+++ b/crawl-ref/source/religion.cc
@@ -490,12 +490,18 @@ std::string print_god_likes(god_type which_god, bool verbose)
break;
case GOD_NEMELEX_XOBEH:
- likes.push_back("draw unmarked cards and use up decks");
+ snprintf(info, INFO_SIZE, "draw unmarked cards and use up decks%s",
+ verbose ? " (by <w>w</w>ielding and e<w>v</w>oking them)"
+ : "");
+
+ likes.push_back(info);
break;
case GOD_ELYVILON:
snprintf(info, INFO_SIZE, "destroy weapons (especially evil ones)%s",
- verbose ? "via the <w>a</w> command" : "");
+ verbose ? " via the <w>a</w> command (inscribe items with "
+ "<w>!D</w> to prevent their accidental destruction)"
+ : "");
likes.push_back(info);
break;
@@ -517,7 +523,6 @@ std::string print_god_likes(god_type which_god, bool verbose)
case GOD_NEMELEX_XOBEH:
snprintf(info, INFO_SIZE, "sacrifice items%s",
verbose ? " (by standing over them and praying)" : "");
-
likes.push_back(info);
break;
@@ -533,7 +538,12 @@ std::string print_god_likes(god_type which_god, bool verbose)
}
if (god_likes_butchery(which_god))
- likes.push_back("butcher corpses while praying");
+ {
+ snprintf(info, INFO_SIZE, "butcher corpses while praying%s",
+ verbose ? " (press <w>pc</w> to do so)" : "");
+
+ likes.push_back(info);
+ }
switch (which_god)
{