From 3593fbb549ba5b991b92994c94b529ac99045d46 Mon Sep 17 00:00:00 2001 From: David Lawrence Ramsey Date: Wed, 18 Nov 2009 13:57:05 -0600 Subject: 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. --- crawl-ref/source/describe.cc | 2 +- crawl-ref/source/mutation.cc | 2 +- crawl-ref/source/output.cc | 3 ++- crawl-ref/source/player.cc | 21 +++++++++++++++++++++ 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 _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; -- cgit v1.2.3-54-g00ecf