Cap Oka piety gain from vault-placed corpses.
authorAdam Borowski <kilobyte@angband.pl>
Tue, 14 Aug 2012 10:36:16 +0000 (12:36 +0200)
committerAdam Borowski <kilobyte@angband.pl>
Tue, 14 Aug 2012 11:03:23 +0000 (13:03 +0200)
This should never trigger in typical games, but it's better to be safe than
sorry.

crawl-ref/source/dungeon.cc
crawl-ref/source/godprayer.cc

index 0c8b469..de4156c 100644 (file)
@@ -3991,6 +3991,8 @@ static int _dgn_item_corpse(const item_spec &ispec, const coord_def where)
     }
 
     item_def &corpse(mitm[corpse_index]);
+    corpse.props["cap_sacrifice"].get_bool() = true;
+
     if (ispec.props.exists(CORPSE_NEVER_DECAYS))
     {
         corpse.props[CORPSE_NEVER_DECAYS].get_bool() =
index 90091fd..6fc3abd 100644 (file)
@@ -598,6 +598,11 @@ static piety_gain_t _sac_corpse(const item_def& item)
         int gain = get_fuzzied_monster_difficulty(&dummy);
         dprf("fuzzied corpse difficulty: %4.2f", gain*0.01);
 
+        // Shouldn't be needed, but just in case an XL:1 spriggan diver walks
+        // into a minotaur corpses vault on D:10 ...
+        if (item.props.exists("cap_sacrifice"))
+            gain = std::min(gain, 700 * 3);
+
         gain_piety(gain, 700);
         gain = div_rand_round(gain, 700);
         return (gain <= 0) ? PIETY_NONE : (gain < 4) ? PIETY_SOME : PIETY_LOTS;