diff options
author | Adam Borowski <kilobyte@angband.pl> | 2011-01-18 01:53:02 +0100 |
---|---|---|
committer | Adam Borowski <kilobyte@angband.pl> | 2011-01-18 01:53:02 +0100 |
commit | e907d45e70340ac4dfbffd3040e82110d62cddf0 (patch) | |
tree | ae24cc8711eb69c833d45df8365917dec108cf46 /crawl-ref/source/lev-pand.cc | |
parent | cbfefbcdcd9d39a09813e1ed45b1a39140a38a75 (diff) | |
download | crawl-ref-e907d45e70340ac4dfbffd3040e82110d62cddf0.tar.gz crawl-ref-e907d45e70340ac4dfbffd3040e82110d62cddf0.zip |
Don't rely on enum values for Pan monsters.
Diffstat (limited to 'crawl-ref/source/lev-pand.cc')
-rw-r--r-- | crawl-ref/source/lev-pand.cc | 55 |
1 files changed, 34 insertions, 21 deletions
diff --git a/crawl-ref/source/lev-pand.cc b/crawl-ref/source/lev-pand.cc index 8b742d80cb..71663bcb40 100644 --- a/crawl-ref/source/lev-pand.cc +++ b/crawl-ref/source/lev-pand.cc @@ -18,6 +18,8 @@ #include "mon-pick.h" #include "random.h" +#define random_mons(...) static_cast<monster_type>(random_choose(__VA_ARGS__)) + void init_pandemonium(void) { int pc = 0; @@ -112,8 +114,18 @@ void init_pandemonium(void) if (one_chance_in(10)) { - env.mons_alloc[pc] = - static_cast<monster_type>(MONS_HELLION + random2(10)); + env.mons_alloc[pc] = random_mons( + MONS_HELLION, + MONS_ROTTING_DEVIL, + MONS_TORMENTOR, + MONS_REAPER, + MONS_SOUL_EATER, + MONS_HAIRY_DEVIL, + MONS_ICE_DEVIL, + MONS_BLUE_DEVIL, + MONS_BEAST, + MONS_IRON_DEVIL, + -1); } if (one_chance_in(30)) @@ -127,27 +139,28 @@ void init_pandemonium(void) if (one_chance_in(20)) { - env.mons_alloc[pc] = - static_cast<monster_type>(MONS_DEMONIC_CRAWLER + random2(5)); + env.mons_alloc[pc] = random_mons( + MONS_DEMONIC_CRAWLER, + MONS_SUN_DEMON, + MONS_SHADOW_IMP, + MONS_SHADOW_DEMON, + MONS_LOROCYPROCA, + -1); } - } - - if (one_chance_in(8)) - { - env.mons_alloc[7] = - static_cast<monster_type>(MONS_EXECUTIONER + random2(5)); - } - if (one_chance_in(5)) - { - env.mons_alloc[8] = - static_cast<monster_type>(MONS_EXECUTIONER + random2(5)); - } - - if (one_chance_in(3)) - { - env.mons_alloc[9] = - static_cast<monster_type>(MONS_EXECUTIONER + random2(5)); + // The last three slots have a good chance of big badasses. + if (pc == 7 && one_chance_in(8) + || pc == 8 && one_chance_in(5) + || pc == 9 && one_chance_in(3)) + { + env.mons_alloc[pc] = random_mons( + MONS_EXECUTIONER, + MONS_GREEN_DEATH, + MONS_BLUE_DEATH, + MONS_BALRUG, + MONS_CACODEMON, + -1); + } } if (one_chance_in(10)) |