summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/religion.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/religion.cc')
-rw-r--r--crawl-ref/source/religion.cc22
1 files changed, 20 insertions, 2 deletions
diff --git a/crawl-ref/source/religion.cc b/crawl-ref/source/religion.cc
index 4aa9d6708f..ecec1ddb1a 100644
--- a/crawl-ref/source/religion.cc
+++ b/crawl-ref/source/religion.cc
@@ -195,7 +195,7 @@ const char* god_gain_power_messages[NUM_GODS][MAX_GOD_ABILITIES] =
"call upon Zin to create a Sanctuary" },
// TSO
{ "repel the undead",
- "smite your foes",
+ "call upon The Shining One for a divine shield",
"dispel the undead",
"hurl blasts of cleansing flame",
"summon a divine warrior" },
@@ -280,7 +280,7 @@ const char* god_lose_power_messages[NUM_GODS][MAX_GOD_ABILITIES] =
"call upon Zin to create a Sanctuary" },
// TSO
{ "repel the undead",
- "smite your foes",
+ "call upon The Shining One for a divine shield",
"dispel the undead",
"hurl blasts of cleansing flame",
"summon a divine warrior" },
@@ -426,6 +426,13 @@ void inc_penance(god_type god, int val)
// orcish bonuses don't apply under penance
if (god == GOD_BEOGH)
you.redraw_armour_class = true;
+ else if (god == GOD_SHINING_ONE && you.duration[DUR_DIVINE_SHIELD])
+ { // nor does TSO's divine shield
+ mpr("Your divine shield disappears!");
+ you.duration[DUR_DIVINE_SHIELD] = 0;
+ you.attribute[ATTR_DIVINE_SHIELD] = 0;
+ you.redraw_armour_class = true;
+ }
}
if (you.penance[god] + val > 200)
@@ -2994,6 +3001,17 @@ void excommunication(void)
case GOD_ELYVILON: // never seeks revenge
break;
+
+ case GOD_SHINING_ONE:
+ if (you.duration[DUR_DIVINE_SHIELD])
+ {
+ mpr("Your divine shield disappears!");
+ you.duration[DUR_DIVINE_SHIELD] = 0;
+ you.attribute[ATTR_DIVINE_SHIELD] = 0;
+ you.redraw_armour_class = true;
+ }
+ inc_penance( old_god, 50 );
+ break;
case GOD_ZIN:
if (env.sanctuary_time)