summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/abyss.cc
diff options
context:
space:
mode:
authordshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2007-10-11 18:09:32 +0000
committerdshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2007-10-11 18:09:32 +0000
commitce71111835c88253978c5c0b0417bff0c2afbd17 (patch)
treeab0fa428595726453b8eb7d6e24144dd62dec88d /crawl-ref/source/abyss.cc
parent095584f742df63b9b575148133c307a0ff23bec1 (diff)
downloadcrawl-ref-ce71111835c88253978c5c0b0417bff0c2afbd17.tar.gz
crawl-ref-ce71111835c88253978c5c0b0417bff0c2afbd17.zip
Fixed Lugonu's Corruption, remaining cases of truncated monster shouts.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2437 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/abyss.cc')
-rw-r--r--crawl-ref/source/abyss.cc21
1 files changed, 18 insertions, 3 deletions
diff --git a/crawl-ref/source/abyss.cc b/crawl-ref/source/abyss.cc
index 5bf3c7d763..17885b967b 100644
--- a/crawl-ref/source/abyss.cc
+++ b/crawl-ref/source/abyss.cc
@@ -565,7 +565,7 @@ static bool spawn_corrupted_servant_near(const coord_def &pos)
one_chance_in(5 + you.skills[SK_INVOCATIONS] / 4)?
BEH_HOSTILE : BEH_NEUTRAL;
const int mid =
- create_monster( mons, 3, beh, p.x, p.y, MHITNOT, 250 );
+ create_monster( mons, 5, beh, p.x, p.y, MHITNOT, 250 );
return (mid != -1);
}
@@ -584,7 +584,7 @@ static void apply_corruption_effect(
for (int i = 0; i < neffects; ++i)
{
- if (random2(7000) < cmark->duration)
+ if (random2(4000) < cmark->duration)
{
if (!spawn_corrupted_servant_near(cmark->pos))
break;
@@ -769,6 +769,20 @@ static bool is_level_incorruptible()
return (false);
}
+static void corrupt_choose_colours()
+{
+ int colour = BLACK;
+ do
+ colour = random_uncommon_colour();
+ while (colour == env.rock_colour || colour == LIGHTGREY || colour == WHITE);
+ env.rock_colour = colour;
+ do
+ colour = random_uncommon_colour();
+ while (colour == env.floor_colour || colour == LIGHTGREY
+ || colour == WHITE);
+ env.floor_colour = colour;
+}
+
bool lugonu_corrupt_level(int power)
{
if (is_level_incorruptible())
@@ -785,7 +799,8 @@ bool lugonu_corrupt_level(int power)
generate_abyss();
generate_area(MAPGEN_BORDER, MAPGEN_BORDER,
GXM - MAPGEN_BORDER, GYM - MAPGEN_BORDER);
- dgn_set_colours_from_monsters();
+
+ corrupt_choose_colours();
std::auto_ptr<crawl_environment> abyssal(new crawl_environment(env));
env = *backup;