summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/spells1.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/spells1.cc')
-rw-r--r--crawl-ref/source/spells1.cc45
1 files changed, 28 insertions, 17 deletions
diff --git a/crawl-ref/source/spells1.cc b/crawl-ref/source/spells1.cc
index 389f165ad0..ba3aeedf7f 100644
--- a/crawl-ref/source/spells1.cc
+++ b/crawl-ref/source/spells1.cc
@@ -822,12 +822,13 @@ int cast_revitalisation(int pow)
// Remove negative afflictions.
switch (step)
{
- // Remove confusion.
+ // Remove confusion and poisoning.
case 0:
- if (you.duration[DUR_CONF])
+ if (you.duration[DUR_CONF] || you.duration[DUR_POISONING])
{
success = true;
you.duration[DUR_CONF] = 0;
+ you.duration[DUR_POISONING] = 0;
break;
}
@@ -837,12 +838,13 @@ int cast_revitalisation(int pow)
if (step == step_max)
break;
- // Remove poisoning.
+ // Remove sickness and rotting.
case 1:
- if (you.duration[DUR_POISONING])
+ if (you.disease || you.rotting)
{
success = true;
- you.duration[DUR_POISONING] = 0;
+ you.disease = 0;
+ you.rotting = 0;
break;
}
@@ -852,12 +854,12 @@ int cast_revitalisation(int pow)
if (step == step_max)
break;
- // Remove sickness.
+ // Restore rotted HP.
case 2:
- if (you.disease)
+ if (player_rotted())
{
success = true;
- you.disease = 0;
+ unrot_hp(3 + random2(9));
break;
}
@@ -867,12 +869,15 @@ int cast_revitalisation(int pow)
if (step == step_max)
break;
- // Remove rotting.
+ // Divine robustness, level 1.
case 3:
- if (you.rotting)
+ if (you.attribute[ATTR_DIVINE_ROBUSTNESS] < 1)
{
success = true;
- you.rotting = 0;
+ mpr("Zin grants you divine robustness.", MSGCH_DURATION);
+ you.attribute[ATTR_DIVINE_ROBUSTNESS] = 1;
+ you.duration[DUR_DIVINE_ROBUSTNESS] += 19 + random2(19);
+ calc_hp();
break;
}
@@ -882,12 +887,15 @@ int cast_revitalisation(int pow)
if (step == step_max)
break;
- // Restore rotted HP.
+ // Divine robustness, level 2.
case 4:
- if (player_rotted())
+ if (you.attribute[ATTR_DIVINE_ROBUSTNESS] < 2)
{
success = true;
- unrot_hp(1 + random2(3));
+ mpr("Zin strengthens your divine robustness.", MSGCH_DURATION);
+ you.attribute[ATTR_DIVINE_ROBUSTNESS] = 2;
+ you.duration[DUR_DIVINE_ROBUSTNESS] += 13 + random2(13);
+ calc_hp();
break;
}
@@ -897,12 +905,15 @@ int cast_revitalisation(int pow)
if (step == step_max)
break;
- // Restore more rotted HP.
+ // Divine robustness, level 3.
case 5:
- if (player_rotted())
+ if (you.attribute[ATTR_DIVINE_ROBUSTNESS] < 3)
{
success = true;
- unrot_hp(2 + random2(6));
+ mpr("Zin maximises your divine robustness.", MSGCH_DURATION);
+ you.attribute[ATTR_DIVINE_ROBUSTNESS] = 3;
+ you.duration[DUR_DIVINE_ROBUSTNESS] += 7 + random2(7);
+ calc_hp();
break;
}