diff options
author | j-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-06-30 14:32:21 +0000 |
---|---|---|
committer | j-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-06-30 14:32:21 +0000 |
commit | 0e65534b50e40a32611842551af39a089eff48af (patch) | |
tree | bd03973481f7ac07748fc1d15a119d680982f0ac /crawl-ref/source/acr.cc | |
parent | f69da63b88187593335b68ac29356b561662997c (diff) | |
download | crawl-ref-0e65534b50e40a32611842551af39a089eff48af.tar.gz crawl-ref-0e65534b50e40a32611842551af39a089eff48af.zip |
Enable Chaos Knights of Lugonu starting out in the Abyss.
I've marked these characters with GDT_GAME_START, so that
* the player starts out on an altar to Lugonu
* there's an exit back to the Dungeon near-by
* returning into the Dungeon always places them into the entry vault on
level 1
* no abyssal runes are ever generated
* item generation matches that of level 1
* monster spawn rates are that of the orb run to enforce a quick return
into the Dungeon
Once the player returns to the Dungeon (via an exit or with Lugonu's
first power) char_direction is properly set to GDT_DESCENDING and from
then on the game continues as if they had started in the Dungeon.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6245 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/acr.cc')
-rw-r--r-- | crawl-ref/source/acr.cc | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/crawl-ref/source/acr.cc b/crawl-ref/source/acr.cc index 8bf0afedfb..539350f581 100644 --- a/crawl-ref/source/acr.cc +++ b/crawl-ref/source/acr.cc @@ -4023,6 +4023,12 @@ static bool _initialise(void) run_map_preludes(); + if (newc && you.char_direction == GDT_GAME_START) + { + // Chaos Knights of Lugonu start out in the Abyss. + you.level_type = LEVEL_ABYSS; + you.entry_cause = EC_UNKNOWN; + } load( you.entering_level? you.transit_stair : DNGN_STONE_STAIRS_DOWN_I, you.entering_level? LOAD_ENTER_LEVEL : newc ? LOAD_START_GAME : LOAD_RESTART_GAME, @@ -4321,8 +4327,8 @@ static void _move_player(int move_x, int move_y) you.running = RMODE_CONTINUE; if (you.level_type == LEVEL_ABYSS - && (you.x_pos <= 15 || you.x_pos >= (GXM - 16) - || you.y_pos <= 15 || you.y_pos >= (GYM - 16))) + && (you.x_pos <= 15 || you.x_pos >= (GXM - 16) + || you.y_pos <= 15 || you.y_pos >= (GYM - 16))) { area_shift(); if (you.pet_target != MHITYOU) |