summaryrefslogtreecommitdiffstats
path: root/crawl-ref
diff options
context:
space:
mode:
authorDavid Lawrence Ramsey <dolorous@users.sourceforge.net>2009-11-18 13:57:05 -0600
committerDavid Lawrence Ramsey <dolorous@users.sourceforge.net>2009-11-18 13:57:05 -0600
commit3593fbb549ba5b991b92994c94b529ac99045d46 (patch)
treeaa32c649f1154e0f16e544f015f86b1fa672b271 /crawl-ref
parentd358ba6df56b55e8e16aa7572458501f8544f1e1 (diff)
downloadcrawl-ref-3593fbb549ba5b991b92994c94b529ac99045d46.tar.gz
crawl-ref-3593fbb549ba5b991b92994c94b529ac99045d46.zip
Expand Zin's protection from just mutation to other chaotic effects.
Specifically, protect from rotting, disease, and miasma, since the first of them is tied to the other two, and all three are chaotic. Since negative energy resistance no longer provides rotting resistance, this fills in the gap left by TSO.
Diffstat (limited to 'crawl-ref')
-rw-r--r--crawl-ref/source/describe.cc2
-rw-r--r--crawl-ref/source/mutation.cc2
-rw-r--r--crawl-ref/source/output.cc3
-rw-r--r--crawl-ref/source/player.cc21
4 files changed, 25 insertions, 3 deletions
diff --git a/crawl-ref/source/describe.cc b/crawl-ref/source/describe.cc
index 05ca6958d1..cae6b21798 100644
--- a/crawl-ref/source/describe.cc
+++ b/crawl-ref/source/describe.cc
@@ -3643,7 +3643,7 @@ void describe_god( god_type which_god, bool give_title )
(you.piety >= 50) ? "sometimes" :
"occasionally";
- cprintf("%s %s shields you from mutagenic effects." EOL,
+ cprintf("%s %s shields you from chaotic effects." EOL,
god_name(which_god).c_str(), how);
}
else if (which_god == GOD_SHINING_ONE)
diff --git a/crawl-ref/source/mutation.cc b/crawl-ref/source/mutation.cc
index 5eaa5f64e5..153dadbb3c 100644
--- a/crawl-ref/source/mutation.cc
+++ b/crawl-ref/source/mutation.cc
@@ -2148,7 +2148,7 @@ bool mutate(mutation_type which_mutation, bool failMsg,
if (you.religion == GOD_ZIN && x_chance_in_y(you.piety, MAX_PIETY)
&& !stat_gain_potion)
{
- simple_god_message(" protects your body from chaos!");
+ simple_god_message(" protects your body from mutation!");
return (false);
}
}
diff --git a/crawl-ref/source/output.cc b/crawl-ref/source/output.cc
index 1744cf8527..f6383d2651 100644
--- a/crawl-ref/source/output.cc
+++ b/crawl-ref/source/output.cc
@@ -1825,7 +1825,8 @@ static std::vector<formatted_string> _get_overview_resistances(
const int rmuta = (wearing_amulet(AMU_RESIST_MUTATION, calc_unid)
|| player_mutation_level(MUT_MUTATION_RESISTANCE) == 3
|| you.religion == GOD_ZIN && you.piety >= 150);
- const int rrott = you.res_rotting();
+ const int rrott = (you.res_rotting()
+ || you.religion == GOD_ZIN && you.piety >= 150);
const int rslow = wearing_amulet(AMU_RESIST_SLOW, calc_unid);
snprintf(buf, sizeof buf,
diff --git a/crawl-ref/source/player.cc b/crawl-ref/source/player.cc
index ce527d5a8d..6948b7b5f6 100644
--- a/crawl-ref/source/player.cc
+++ b/crawl-ref/source/player.cc
@@ -4867,6 +4867,13 @@ bool miasma_player()
if (you.res_rotting())
return (false);
+ // Zin's protection.
+ if (you.religion == GOD_ZIN && x_chance_in_y(you.piety, MAX_PIETY))
+ {
+ simple_god_message(" protects your body from miasma!");
+ return (false);
+ }
+
bool success = poison_player(1);
if (you.hp_max > 4 && coinflip())
@@ -6689,6 +6696,13 @@ bool player::rot(actor *who, int amount, int immediate, bool quiet)
return (false);
}
+ // Zin's protection.
+ if (religion == GOD_ZIN && x_chance_in_y(piety, MAX_PIETY))
+ {
+ simple_god_message(" protects your body from decay!");
+ return (false);
+ }
+
if (immediate > 0)
rot_hp(immediate);
@@ -6805,6 +6819,13 @@ bool player::sicken(int amount)
if (res_rotting() || amount <= 0)
return (false);
+ // Zin's protection.
+ if (religion == GOD_ZIN && x_chance_in_y(piety, MAX_PIETY))
+ {
+ simple_god_message(" protects your body from disease!");
+ return (false);
+ }
+
mpr("You feel ill.");
disease += amount * BASELINE_DELAY;