summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/religion.cc
diff options
context:
space:
mode:
authordshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2007-03-29 10:52:16 +0000
committerdshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2007-03-29 10:52:16 +0000
commit775b9001bdbf57534c231191f194ab76b0c5e81c (patch)
treedb6f435eadc0d6d853108243a44cdc4853560431 /crawl-ref/source/religion.cc
parent253496da889864afbddbaea897571342f6b38d21 (diff)
downloadcrawl-ref-775b9001bdbf57534c231191f194ab76b0c5e81c.tar.gz
crawl-ref-775b9001bdbf57534c231191f194ab76b0c5e81c.zip
Updated changes list.
Give Lugonu's retribution more of the Abyss/distortion theme. Added extra check for Sif Muna gifts. Reduced spatial vortex base damage, but give them a distortion attack. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1118 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/religion.cc')
-rw-r--r--crawl-ref/source/religion.cc99
1 files changed, 64 insertions, 35 deletions
diff --git a/crawl-ref/source/religion.cc b/crawl-ref/source/religion.cc
index 97eb0b3d41..0556b26ad1 100644
--- a/crawl-ref/source/religion.cc
+++ b/crawl-ref/source/religion.cc
@@ -1670,7 +1670,10 @@ void gain_piety(char pgn)
// naturally slower as the player gains in spell skills.
if ((you.piety > 199) ||
(you.piety > 150 && one_chance_in(5)))
+ {
+ do_god_gift();
return;
+ }
}
int old_piety = you.piety;
@@ -1749,6 +1752,63 @@ void lose_piety(char pgn)
}
}
+static void lugonu_retribution(int god)
+{
+ if (coinflip())
+ {
+ simple_god_message("'s wrath finds you!", god);
+ miscast_effect( SPTYP_TRANSLOCATION, 9, 90, 100, "Lugonu's touch" );
+
+ // No return - Lugonu's touch is independent of other effects.
+ }
+ else if (coinflip())
+ {
+ // Give extra opportunities for embarrassing teleports.
+ simple_god_message("'s wrath finds you!", god);
+ mpr("Space warps around you!");
+ if (!one_chance_in(3))
+ you_teleport2(false);
+ else
+ random_blink(false);
+
+ // No return.
+ }
+
+ // abyssal servant theme
+ if (random2(you.experience_level) > 7 && !one_chance_in(5))
+ {
+ if (create_monster(MONS_GREEN_DEATH + random2(3), 0,
+ BEH_HOSTILE, you.x_pos, you.y_pos,
+ MHITYOU, 250) != -1)
+ {
+ simple_god_message(" sends a demon after you!", god);
+ }
+ else
+ {
+ simple_god_message("'s demon is unavoidably detained.", god);
+ }
+ }
+ else
+ {
+ bool success = false;
+ int how_many = 1 + (you.experience_level / 7);
+
+ for (int loopy = 0; loopy < how_many; loopy++)
+ {
+ if (create_monster(MONS_NEQOXEC + random2(5), 0, BEH_HOSTILE,
+ you.x_pos, you.y_pos, MHITYOU, 250) != -1)
+ {
+ success = true;
+ }
+ }
+
+ if (success)
+ simple_god_message(" sends minions to punish you.", god);
+ else
+ simple_god_message("'s minions fail to arrive.", god);
+ }
+}
+
void divine_retribution( int god )
{
ASSERT(god != GOD_NO_GOD);
@@ -2210,39 +2270,7 @@ void divine_retribution( int god )
break;
case GOD_LUGONU:
- // abyssal servant theme
- if (random2(you.experience_level) > 7 && !one_chance_in(5))
- {
- if (create_monster(MONS_GREEN_DEATH + random2(3), 0,
- BEH_HOSTILE, you.x_pos, you.y_pos,
- MHITYOU, 250) != -1)
- {
- simple_god_message(" sends a demon after you!", god);
- }
- else
- {
- simple_god_message("'s demon is unavoidably detained.", god);
- }
- }
- else
- {
- success = false;
- how_many = 1 + (you.experience_level / 7);
-
- for (loopy = 0; loopy < how_many; loopy++)
- {
- if (create_monster(MONS_NEQOXEC + random2(5), 0, BEH_HOSTILE,
- you.x_pos, you.y_pos, MHITYOU, 250) != -1)
- {
- success = true;
- }
- }
-
- if (success)
- simple_god_message(" sends minions to punish you.", god);
- else
- simple_god_message("'s minions fail to arrive.", god);
- }
+ lugonu_retribution(god);
break;
case GOD_ELYVILON: // Elyvilon doesn't seek revenge
@@ -2253,7 +2281,8 @@ void divine_retribution( int god )
// Sometimes divine experiences are overwhelming...
if (one_chance_in(5) && you.experience_level < random2(37))
{
- if (coinflip()) {
+ if (coinflip())
+ {
mpr( "The divine experience confuses you!", MSGCH_WARN);
confuse_player( 3 + random2(10) );
}
@@ -2342,7 +2371,7 @@ void excommunication(void)
if ( you.level_type == LEVEL_DUNGEON )
{
simple_god_message(" casts you back into the Abyss!", old_god);
- banished(DNGN_ENTER_ABYSS);
+ banished(DNGN_ENTER_ABYSS, "Lugonu's wrath");
}
inc_penance(old_god, 50);
break;