diff options
author | dolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573> | 2009-03-08 00:12:21 +0000 |
---|---|---|
committer | dolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573> | 2009-03-08 00:12:21 +0000 |
commit | ff81fe1844a5f0e0ebb7d3f91ffb9d9e92637e29 (patch) | |
tree | 111ba004414c151cfeadf0cd9e74394051801ede /crawl-ref/source/mon-util.cc | |
parent | 43c5095baf88dd12236616009273f6fd787d6ded (diff) | |
download | crawl-ref-ff81fe1844a5f0e0ebb7d3f91ffb9d9e92637e29.tar.gz crawl-ref-ff81fe1844a5f0e0ebb7d3f91ffb9d9e92637e29.zip |
Consolidate routines for picking a random draconian monster species.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@9374 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/mon-util.cc')
-rw-r--r-- | crawl-ref/source/mon-util.cc | 40 |
1 files changed, 23 insertions, 17 deletions
diff --git a/crawl-ref/source/mon-util.cc b/crawl-ref/source/mon-util.cc index 9dfcfe71d9..41f6192500 100644 --- a/crawl-ref/source/mon-util.cc +++ b/crawl-ref/source/mon-util.cc @@ -714,16 +714,16 @@ monster_type draco_subspecies(const monsters *mon) switch (mon->colour) { case RED: - return MONS_RED_DRACONIAN; + return (MONS_RED_DRACONIAN); case WHITE: - return MONS_WHITE_DRACONIAN; + return (MONS_WHITE_DRACONIAN); case BLUE: // black case DARKGREY: - return MONS_BLACK_DRACONIAN; + return (MONS_BLACK_DRACONIAN); case GREEN: - return MONS_GREEN_DRACONIAN; + return (MONS_GREEN_DRACONIAN); case MAGENTA: - return MONS_PURPLE_DRACONIAN; + return (MONS_PURPLE_DRACONIAN); default: break; } @@ -732,7 +732,7 @@ monster_type draco_subspecies(const monsters *mon) monster_type ret = mons_species(mon->type); if (ret == MONS_DRACONIAN && mon->type != MONS_DRACONIAN) - ret = static_cast<monster_type>( mon->base_monster ); + ret = static_cast<monster_type>(mon->base_monster); return (ret); } @@ -1708,6 +1708,12 @@ void mons_load_spells( monsters *mon, mon_spellbook_type book ) mon->load_spells(book); } +static monster_type _random_draconian_monster_species() +{ + const int num_drac = MONS_PALE_DRACONIAN - MONS_BLACK_DRACONIAN + 1; + return static_cast<monster_type>(SP_BLACK_DRACONIAN + random2(num_drac)); +} + void define_monster(int index) { define_monster(menv[index]); @@ -1803,7 +1809,7 @@ void define_monster(monsters &mons) case MONS_DEEP_ELF_CONJURER: spells = - (coinflip()? MST_DEEP_ELF_CONJURER_I : MST_DEEP_ELF_CONJURER_II); + (coinflip() ? MST_DEEP_ELF_CONJURER_I : MST_DEEP_ELF_CONJURER_II); break; case MONS_BUTTERFLY: @@ -1838,11 +1844,11 @@ void define_monster(monsters &mons) // White draconians will never be draconian scorchers, but // apart from that, anything goes. do - monbase = - static_cast<monster_type>(MONS_BLACK_DRACONIAN + random2(8)); + monbase = _random_draconian_monster_species(); while (drac_colour_incompatible(mcls, monbase)); break; } + case MONS_DRACONIAN_KNIGHT: { temp_rand = random2(10); @@ -1857,7 +1863,7 @@ void define_monster(monsters &mons) : MST_DEEP_ELF_CONJURER_II); } - monbase = static_cast<monster_type>(MONS_BLACK_DRACONIAN + random2(8)); + monbase = _random_draconian_monster_species(); break; } @@ -1871,8 +1877,8 @@ void define_monster(monsters &mons) break; default: - if (mons_is_mimic( mcls )) - col = get_mimic_colour( &mons ); + if (mons_is_mimic(mcls)) + col = get_mimic_colour(&mons); break; } @@ -1883,8 +1889,8 @@ void define_monster(monsters &mons) spells = m->sec; // Some calculations. - hp = hit_points(hd, m->hpdice[1], m->hpdice[2]); - hp += m->hpdice[3]; + hp = hit_points(hd, m->hpdice[1], m->hpdice[2]); + hp += m->hpdice[3]; hp_max = hp; // So let it be written, so let it be done. @@ -1902,11 +1908,11 @@ void define_monster(monsters &mons) if (mons.number == 0) mons.number = monnumber; - mons.flags = 0L; + mons.flags = 0L; mons.experience = 0L; - mons.colour = col; + mons.colour = col; - mons_load_spells( &mons, spells ); + mons_load_spells(&mons, spells); // Reset monster enchantments. mons.enchantments.clear(); |