summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-02-01 22:29:28 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-02-01 22:29:28 +0000
commit8190b0f9eafb99e6e8d8d510bcf3264dcc5ff71d (patch)
tree48bfe1f5c648ef2208878eca0ae0c068885b6f91 /crawl-ref/source
parent633cc4c9ff8c079b83fa27f531c320342cf26873 (diff)
downloadcrawl-ref-8190b0f9eafb99e6e8d8d510bcf3264dcc5ff71d.tar.gz
crawl-ref-8190b0f9eafb99e6e8d8d510bcf3264dcc5ff71d.zip
A few tweaks of Zin invocations, thanks to David Ramsey.
Donating money will now also affect penance (along with special messages). I just used gain_piety(1) for this - the downside is that now it also respects the slower piety growth of the actual piety gain only happening in 66% (piety > 100) or 33% (piety > 150) of piety leaking in (and out of the pool!) Zin will provide sustenance even under penance, and Recite trains Invocations now. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3383 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source')
-rw-r--r--crawl-ref/source/abl-show.cc2
-rw-r--r--crawl-ref/source/acr.cc13
-rw-r--r--crawl-ref/source/religion.cc25
3 files changed, 23 insertions, 17 deletions
diff --git a/crawl-ref/source/abl-show.cc b/crawl-ref/source/abl-show.cc
index d381b7a77d..1e3bf2b0c8 100644
--- a/crawl-ref/source/abl-show.cc
+++ b/crawl-ref/source/abl-show.cc
@@ -1319,6 +1319,8 @@ static bool do_ability(const ability_def& abil)
// up to (60 + 33)/3 = 31
const int pow = ( 2*skill_bump(SK_INVOCATIONS) + you.piety / 6 ) / 3;
start_delay(DELAY_RECITE, 3, pow, you.hp);
+
+ exercise( SK_INVOCATIONS, (one_chance_in(3)? 2 : 1) );
break;
}
case ABIL_ZIN_SMITING:
diff --git a/crawl-ref/source/acr.cc b/crawl-ref/source/acr.cc
index f5ad7402b4..77f8ea1035 100644
--- a/crawl-ref/source/acr.cc
+++ b/crawl-ref/source/acr.cc
@@ -2692,17 +2692,10 @@ static void decrement_durations()
if (you.duration[DUR_PIETY_POOL] && one_chance_in(5))
{
you.duration[DUR_PIETY_POOL]--; // decrease even if piety at maximum
- if (you.piety < 200)
- {
-#if DEBUG_DIAGNOSTICS || DEBUG_SACRIFICE || DEBUG_PIETY
- mpr("Piety increases by 1 due to piety pool.", MSGCH_DIAGNOSTICS);
-#endif
- you.piety++;
- }
+ gain_piety(1);
+
#if DEBUG_DIAGNOSTICS || DEBUG_SACRIFICE || DEBUG_PIETY
- else
- mpr("Piety already at maximum and fails to increase "
- "from piety pool.", MSGCH_DIAGNOSTICS);
+ mpr("Piety increases by 1 due to piety pool.", MSGCH_DIAGNOSTICS);
if (!you.duration[DUR_PIETY_POOL])
mpr("Piety pool is now empty.", MSGCH_DIAGNOSTICS);
diff --git a/crawl-ref/source/religion.cc b/crawl-ref/source/religion.cc
index ea25b302fc..6195816558 100644
--- a/crawl-ref/source/religion.cc
+++ b/crawl-ref/source/religion.cc
@@ -744,8 +744,8 @@ static void do_god_gift(bool prayed_for)
// Consider a gift if we don't have a timeout and weren't
// already praying when we prayed.
- if (!player_under_penance()
- && (!you.gift_timeout || you.religion == GOD_ZIN))
+ if (!player_under_penance() && !you.gift_timeout
+ || you.religion == GOD_ZIN)
{
bool success = false;
@@ -3334,7 +3334,22 @@ void offer_items()
}
int estimated_piety = you.piety + donation_value;
- std::string result = god_name(GOD_ZIN) + " will soon be ";
+
+ you.duration[DUR_PIETY_POOL] += donation_value;
+ if (you.duration[DUR_PIETY_POOL] > 500)
+ you.duration[DUR_PIETY_POOL] = 500;
+
+ if (you.penance[GOD_ZIN])
+ {
+ if (estimated_piety >= you.penance[GOD_ZIN])
+ mpr("You feel that soon you will be absolved of all your sins.");
+ else
+ mpr("You feel that soon your burden of sins will be lighter.");
+ return;
+ }
+
+ std::string result = "You feel that " + god_name(GOD_ZIN)
+ + " will soon be ";
result +=
(estimated_piety > 130) ? "exalted by your worship" :
@@ -3351,10 +3366,6 @@ void offer_items()
result += ".";
mpr(result.c_str());
-
- you.duration[DUR_PIETY_POOL] += donation_value;
- if (you.duration[DUR_PIETY_POOL] > 500)
- you.duration[DUR_PIETY_POOL] = 500;
return; // doesn't accept anything else for sacrifice
}