time there. Needs more tuning.
[1773000] Fixed tracer crash, mea culpa.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1995 c06c8d41-db1a-0410-9941-cceddc491573
ID373JATLMWAY526Q6Q5FXHRNFWMEOFXPHGPAUUY5OAMPFDN5SJAC 3C2VE43SHCSBY4LTRTFYFLIPRWFUN6DXU6D34QVWDQTSNRBUFG7AC UZ6N6HOUPGVSPC5NQROEEDWMEGJA5XUWUY2AKH5QG65AZ25PVXDAC GVCGKTH5IJ4VSQEIN4CRC7ZFVZW26JPIYNCPTO7GY66CSZZEW3ZQC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC DTO3EUKWHZ5RJNGNCFYXSOVTIPVXPP637F2W7WFGYKJ7JK7VNKNQC L5CVPV5IUBSO4EE3WK4O6SQGIMIEPSMQONFBWEVGJBR2HATLPZIAC GQL5SIGBHLU3FMCE54XVGLRY5AZHRM6DUEB722REA2DPLGJSN6EQC 6GSPAIEMWJXYSCR5EC2WBOGYDEDR6ESIZC6TKN2FVE2CVPSHUHXAC I7NXCEKCEBDWOGO7EDNRZ36GELP3P5GTOOXQG2YS5TXZTCNN7CDQC Y3JUMLOAM4C4NFHTXM2I6ECUFNDCFJOTNOA2RDE7PZMFVVJYWHPQC TV3ZC6WOZKSQQJQN26JIVKCHK6UK7WMDBYZDUYRWEAZ4JB4YVNAAC }static void hell_spawn_random_monsters(){const int speedup_turn = 1339;// Monster generation in the Vestibule starts ratcheting up quickly// after speedup_turn turns spent in the Vestibule.int genodds = (you.char_direction == GDT_DESCENDING) ? 240 : 8;if (env.turns_on_level > speedup_turn){genodds -= (env.turns_on_level - speedup_turn) / 12;if (genodds < 3)genodds = 3;}if (one_chance_in(genodds)){int distance_odds = 10;if (env.turns_on_level > speedup_turn)distance_odds -= (env.turns_on_level - speedup_turn) / 100;if (distance_odds < 2)distance_odds = 2;proximity_type prox =(one_chance_in(distance_odds) ? PROX_NEAR_STAIRS: PROX_AWAY_FROM_PLAYER);mons_place( WANDERING_MONSTER, BEH_HOSTILE, MHITNOT, false,50, 50, LEVEL_DUNGEON, prox );viewwindow(true, false);}}void spawn_random_monsters(){if (player_in_branch(BRANCH_VESTIBULE_OF_HELL)){hell_spawn_random_monsters();return;}// place normal dungeon monsters, but not in player LOSif (you.level_type == LEVEL_DUNGEON&& !player_in_branch( BRANCH_ECUMENICAL_TEMPLE )&& one_chance_in((you.char_direction == GDT_DESCENDING) ? 240 : 8)){proximity_type prox = (one_chance_in(10) ? PROX_NEAR_STAIRS: PROX_AWAY_FROM_PLAYER);// The rules change once the player has picked up the Orb...if (you.char_direction == GDT_ASCENDING)prox = (one_chance_in(6) ? PROX_CLOSE_TO_PLAYER : PROX_ANYWHERE);mons_place( WANDERING_MONSTER, BEH_HOSTILE, MHITNOT, false,50, 50, LEVEL_DUNGEON, prox );viewwindow(true, false);}// place Abyss monsters.if (you.level_type == LEVEL_ABYSS && one_chance_in(5)){mons_place( WANDERING_MONSTER, BEH_HOSTILE, MHITNOT, false,50, 50, LEVEL_ABYSS, PROX_ANYWHERE );viewwindow(true, false);}// place Pandemonium monstersif (you.level_type == LEVEL_PANDEMONIUM && one_chance_in(50)){pandemonium_mons();viewwindow(true, false);}// No monsters in the Labyrinth, or the Ecumenical Temple, or in Bazaars.
// place normal dungeon monsters, but not in player LOSif (you.level_type == LEVEL_DUNGEON&& !player_in_branch( BRANCH_ECUMENICAL_TEMPLE )&& one_chance_in((you.char_direction == GDT_DESCENDING) ? 240 : 8)){proximity_type prox = (one_chance_in(10) ? PROX_NEAR_STAIRS: PROX_AWAY_FROM_PLAYER);// The rules change once the player has picked up the Orb...if (you.char_direction == GDT_ASCENDING)prox = (one_chance_in(6) ? PROX_CLOSE_TO_PLAYER : PROX_ANYWHERE);
mons_place( WANDERING_MONSTER, BEH_HOSTILE, MHITNOT, false,50, 50, LEVEL_DUNGEON, prox );viewwindow(true, false);}// place Abyss monsters.if (you.level_type == LEVEL_ABYSS && one_chance_in(5)){mons_place( WANDERING_MONSTER, BEH_HOSTILE, MHITNOT, false,50, 50, LEVEL_ABYSS, PROX_ANYWHERE );viewwindow(true, false);}// place Pandemonium monstersif (you.level_type == LEVEL_PANDEMONIUM && one_chance_in(50)){pandemonium_mons();viewwindow(true, false);}// No monsters in the Labyrinth, or the Ecumenical Temple, or in Bazaars.return;
spawn_random_monsters();