From 2e1a0765e5fbdb41324bca70ece54bfdc63a9204 Mon Sep 17 00:00:00 2001 From: j-p-e-g Date: Sat, 18 Apr 2009 21:36:32 +0000 Subject: Mention monsters regenerating (e.g. trolls) or not regenerating (e.g. zombies) in their descriptions. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@9643 c06c8d41-db1a-0410-9941-cceddc491573 --- crawl-ref/source/delay.cc | 18 +++++++++--------- crawl-ref/source/describe.cc | 15 +++++++++++---- 2 files changed, 20 insertions(+), 13 deletions(-) (limited to 'crawl-ref') diff --git a/crawl-ref/source/delay.cc b/crawl-ref/source/delay.cc index d8a1c7ff85..67ccf979aa 100644 --- a/crawl-ref/source/delay.cc +++ b/crawl-ref/source/delay.cc @@ -1562,22 +1562,22 @@ void armour_wear_effects(const int item_slot) mpr("Oops, that feels deathly cold."); learned_something_new(TUT_YOU_CURSED); - int amusement = 32; - - // Cursed cloaks prevent you from removing body armour. - if (get_armour_slot(arm) == EQ_CLOAK) - amusement *= 2; - if (!known_cursed) { - amusement *= 2; + int amusement = 64; + + // Cursed cloaks prevent you from removing body armour. + // Cursed gloves prevent switching of rings. + if (get_armour_slot(arm) == EQ_CLOAK + || get_armour_slot(arm) == EQ_GLOVES) + { + amusement *= 2; + } god_type god; if (origin_is_god_gift(arm, &god) && god == GOD_XOM) amusement *= 2; } - - xom_is_stimulated(amusement); } if (eq_slot == EQ_SHIELD) diff --git a/crawl-ref/source/describe.cc b/crawl-ref/source/describe.cc index 38062331d1..b04ca94afe 100644 --- a/crawl-ref/source/describe.cc +++ b/crawl-ref/source/describe.cc @@ -1820,7 +1820,7 @@ std::string get_item_description( const item_def &item, bool verbose, // either the wand "no charges left" or the meat chunk // "unpleasant" description can follow on the same line. // Same for missiles' descriptions. - description.seekp(description.tellp() - (std::streamoff)1); + description.seekp(description.tellp() - (std::streamoff)2); description << " "; } } @@ -1952,7 +1952,8 @@ std::string get_item_description( const item_def &item, bool verbose, break; } - if (is_good_god(you.religion) && is_player_same_species(item.plus) + if (god_hates_cannibalism(you.religion) + && is_player_same_species(item.plus) || you.religion == GOD_ZIN && mons_class_intel(item.plus) >= I_NORMAL) { @@ -2720,6 +2721,12 @@ static std::string _monster_stat_description(const monsters& mon) << (fly == FL_FLY ? "fly" : "levitate") << ".$"; } + // Unusual regeneration rates. + if (!mons_can_regenerate(&mon)) + result << pronoun << " cannot regenerate.$"; + else if (monster_descriptor(mon.type, MDSC_REGENERATES)) + result << pronoun << " regenerates quickly.$"; + return (result.str()); } @@ -2859,8 +2866,8 @@ void get_monster_db_desc(const monsters& mons, describe_info &inf, break; } - // Don't leak or duplicate resistance information for ghosts/demons. - if (mons.type != MONS_PANDEMONIUM_DEMON && mons.type != MONS_PLAYER_GHOST) + // Don't leak or duplicate resistance information for demons. + if (mons.type != MONS_PANDEMONIUM_DEMON) { std::string result = _monster_stat_description(mons); if (!result.empty()) -- cgit v1.2.3-54-g00ecf