summaryrefslogtreecommitdiffstats
path: root/stone_soup/crawl-ref/source/mon-pick.cc
diff options
context:
space:
mode:
Diffstat (limited to 'stone_soup/crawl-ref/source/mon-pick.cc')
-rw-r--r--stone_soup/crawl-ref/source/mon-pick.cc2827
1 files changed, 0 insertions, 2827 deletions
diff --git a/stone_soup/crawl-ref/source/mon-pick.cc b/stone_soup/crawl-ref/source/mon-pick.cc
deleted file mode 100644
index 79fc29f1fc..0000000000
--- a/stone_soup/crawl-ref/source/mon-pick.cc
+++ /dev/null
@@ -1,2827 +0,0 @@
-/*
- * File: mon-pick.cc
- * Summary: Functions used to help determine which monsters should appear.
- * Written by: Linley Henzell
- *
- * Change History (most recent first):
- *
- * <2> 08-Mar-2000 DLB enumeration & clean-up
- * <1> -/--/-- LRH Created
- */
-
-#include "AppHdr.h"
-#include "mon-pick.h"
-
-#include "externs.h"
-
-static int mons_cocytus_level(int mcls);
-static int mons_cocytus_rare(int mcls);
-static int mons_crypt_level(int mcls);
-static int mons_crypt_rare(int mcls);
-static int mons_dis_level(int mcls);
-static int mons_dis_rare(int mcls);
-static int mons_gehenna_level(int mcls);
-static int mons_gehenna_rare(int mcls);
-static int mons_hallblade_level(int mcls);
-static int mons_hallblade_rare(int mcls);
-static int mons_hallelf_level(int mcls);
-static int mons_hallelf_rare(int mcls);
-static int mons_hallzot_level(int mcls);
-static int mons_hallzot_rare(int mcls);
-static int mons_hive_level(int mcls);
-static int mons_hive_rare(int mcls);
-static int mons_lair_level(int mcls);
-static int mons_lair_rare(int mcls);
-static int mons_mineorc_level(int mcls);
-static int mons_mineorc_rare(int mcls);
-static int mons_pitslime_level(int mcls);
-static int mons_pitslime_rare(int mcls);
-static int mons_pitsnake_level(int mcls);
-static int mons_pitsnake_rare(int mcls);
-static int mons_standard_level(int mcls);
-static int mons_standard_rare(int mcls);
-static int mons_swamp_level(int mcls);
-static int mons_swamp_rare(int mcls);
-static int mons_tartarus_level(int mcls);
-static int mons_tartarus_rare(int mcls);
-static int mons_tomb_level(int mcls);
-static int mons_tomb_rare(int mcls);
-static int mons_caverns_level(int mcls);
-static int mons_caverns_rare(int mcls);
-
-/* ******************* BEGIN EXTERNAL FUNCTIONS ******************* */
-int branch_depth(int branch)
-{
- switch (branch)
- {
- case STAIRS_LAIR:
- return 10;
-
- case STAIRS_VAULTS:
- return 8;
-
- case STAIRS_ELVEN_HALLS:
- return 7;
-
- case STAIRS_SLIME_PITS:
- return 6;
-
- case STAIRS_CRYPT:
- case STAIRS_HALL_OF_ZOT:
- case STAIRS_SNAKE_PIT:
- case STAIRS_SWAMP:
- return 5;
-
- case STAIRS_HIVE:
- case STAIRS_ORCISH_MINES:
- return 4;
-
- case STAIRS_TOMB:
- return 3;
-
- case STAIRS_ECUMENICAL_TEMPLE:
- case STAIRS_HALL_OF_BLADES:
- return 1;
-
- default:
- return 0;
- }
-} // end branch_depth()
-
-// NB - When adding new branches or levels above 50, you must
-// change pre-game deletion routine in new_game in newgame.cc
-
-int mons_level(int mcls)
-{
- int monster_level = 0;
- int (*fnc_level) (int) = 0;
-
- if (you.level_type == LEVEL_ABYSS)
- monster_level = ((mons_abyss(mcls)) ? 51 : 0);
- else if (you.level_type == LEVEL_PANDEMONIUM)
- monster_level = ((mons_pan(mcls)) ? 52 : 0);
- else
- {
- fnc_level =
- ((you.where_are_you == BRANCH_DIS) ? mons_dis_level :
- (you.where_are_you == BRANCH_GEHENNA) ? mons_gehenna_level :
- (you.where_are_you == BRANCH_COCYTUS) ? mons_cocytus_level :
- (you.where_are_you == BRANCH_TARTARUS) ? mons_tartarus_level :
- (you.where_are_you == BRANCH_ORCISH_MINES) ? mons_mineorc_level :
- (you.where_are_you == BRANCH_HIVE) ? mons_hive_level :
- (you.where_are_you == BRANCH_LAIR) ? mons_lair_level :
- (you.where_are_you == BRANCH_SLIME_PITS) ? mons_pitslime_level :
- (you.where_are_you == BRANCH_CRYPT) ? mons_crypt_level :
- (you.where_are_you == BRANCH_HALL_OF_BLADES)?mons_hallblade_level :
- (you.where_are_you == BRANCH_HALL_OF_ZOT) ? mons_hallzot_level :
- (you.where_are_you == BRANCH_SNAKE_PIT) ? mons_pitsnake_level :
- (you.where_are_you == BRANCH_ELVEN_HALLS) ? mons_hallelf_level :
- (you.where_are_you == BRANCH_TOMB) ? mons_tomb_level :
- (you.where_are_you == BRANCH_SWAMP) ? mons_swamp_level :
- (you.where_are_you == BRANCH_VAULTS) ? mons_standard_level :
- (you.where_are_you == BRANCH_CAVERNS) ? mons_caverns_level
- : mons_standard_level);
-
- monster_level = fnc_level(mcls);
- }
-
- return (monster_level);
-} // end mons_level()
-
-// higher values returned means the monster is "more common"
-// a return value of zero means the monster will never appear {dlb}
-int mons_rarity(int mcls)
-{
- int monster_rarity = 0;
- int (*fnc_rarity) (int) = 0;
-
- // now, what about pandemonium ??? {dlb}
- if (you.level_type == LEVEL_ABYSS)
- return mons_rare_abyss(mcls);
- else
- {
- fnc_rarity =
- ((you.where_are_you == BRANCH_DIS) ? mons_dis_rare :
- (you.where_are_you == BRANCH_GEHENNA) ? mons_gehenna_rare :
- (you.where_are_you == BRANCH_COCYTUS) ? mons_cocytus_rare :
- (you.where_are_you == BRANCH_TARTARUS) ? mons_tartarus_rare :
- (you.where_are_you == BRANCH_ORCISH_MINES) ? mons_mineorc_rare :
- (you.where_are_you == BRANCH_HIVE) ? mons_hive_rare :
- (you.where_are_you == BRANCH_LAIR) ? mons_lair_rare :
- (you.where_are_you == BRANCH_SLIME_PITS) ? mons_pitslime_rare :
- (you.where_are_you == BRANCH_CRYPT) ? mons_crypt_rare :
- (you.where_are_you == BRANCH_HALL_OF_BLADES)?mons_hallblade_rare :
- (you.where_are_you == BRANCH_HALL_OF_ZOT) ? mons_hallzot_rare :
- (you.where_are_you == BRANCH_SNAKE_PIT) ? mons_pitsnake_rare :
- (you.where_are_you == BRANCH_ELVEN_HALLS) ? mons_hallelf_rare :
- (you.where_are_you == BRANCH_TOMB) ? mons_tomb_rare :
- (you.where_are_you == BRANCH_SWAMP) ? mons_swamp_rare :
- (you.where_are_you == BRANCH_VAULTS) ? mons_standard_rare :
- (you.where_are_you == BRANCH_CAVERNS) ? mons_caverns_rare
- : mons_standard_rare);
-
- monster_rarity = fnc_rarity(mcls);
- }
-
- return (monster_rarity);
-} // end mons_rarity()
-
-bool mons_abyss(int mcls)
-{
- switch (mcls)
- {
- case MONS_ABOMINATION_LARGE:
- case MONS_ABOMINATION_SMALL:
- case MONS_AIR_ELEMENTAL:
- case MONS_ANCIENT_LICH:
- case MONS_BALRUG:
- case MONS_BLUE_DEATH:
- case MONS_BLUE_DEVIL:
- case MONS_BRAIN_WORM:
- case MONS_CACODEMON:
- case MONS_CLAY_GOLEM:
- case MONS_CRYSTAL_GOLEM:
- case MONS_DANCING_WEAPON:
- case MONS_DEMONIC_CRAWLER:
- case MONS_EARTH_ELEMENTAL:
- case MONS_EFREET:
- case MONS_EXECUTIONER:
- case MONS_EYE_OF_DEVASTATION:
- case MONS_EYE_OF_DRAINING:
- case MONS_FIRE_ELEMENTAL:
- case MONS_FLAYED_GHOST:
- case MONS_FLYING_SKULL:
- case MONS_FREEZING_WRAITH:
- case MONS_DEATH_DRAKE:
- case MONS_FUNGUS:
- case MONS_GIANT_EYEBALL:
- case MONS_GIANT_ORANGE_BRAIN:
- case MONS_GIANT_SPORE:
- case MONS_GREAT_ORB_OF_EYES:
- case MONS_GREEN_DEATH:
- case MONS_GUARDIAN_NAGA:
- case MONS_HAIRY_DEVIL:
- case MONS_HELLION:
- case MONS_HELLWING:
- case MONS_HELL_HOUND:
- case MONS_HELL_KNIGHT:
- case MONS_HUNGRY_GHOST:
- case MONS_ICE_BEAST:
- case MONS_ICE_DEVIL:
- case MONS_IMP:
- case MONS_INSUBSTANTIAL_WISP:
- case MONS_IRON_DEVIL:
- case MONS_IRON_GOLEM:
- case MONS_JELLY:
- case MONS_SKELETON_LARGE:
- case MONS_LEMURE:
- case MONS_LICH:
- case MONS_LOROCYPROCA:
- case MONS_MANES:
- case MONS_MIDGE:
- case MONS_MUMMY:
- case MONS_NAGA_MAGE:
- case MONS_NAGA_WARRIOR:
- case MONS_NECROMANCER:
- case MONS_NECROPHAGE:
- case MONS_NEQOXEC:
- case MONS_ORANGE_DEMON:
- case MONS_PHANTOM:
- case MONS_PIT_FIEND:
- case MONS_RAKSHASA:
- case MONS_REAPER:
- case MONS_RED_DEVIL:
- case MONS_ROTTING_DEVIL:
- case MONS_SHADOW:
- case MONS_SHADOW_DEMON:
- case MONS_SHADOW_IMP:
- case MONS_SHINING_EYE:
- case MONS_SKELETAL_DRAGON:
- case MONS_SKELETAL_WARRIOR:
- case MONS_SKELETON_SMALL:
- case MONS_SMOKE_DEMON:
- case MONS_SOUL_EATER:
- case MONS_SPECTRAL_WARRIOR:
- case MONS_SPINY_WORM:
- case MONS_STONE_GOLEM:
- case MONS_SUN_DEMON:
- case MONS_TENTACLED_MONSTROSITY:
- case MONS_TOENAIL_GOLEM:
- case MONS_TORMENTOR:
- case MONS_UFETUBUS:
- case MONS_UGLY_THING:
- case MONS_UNSEEN_HORROR:
- case MONS_VAMPIRE:
- case MONS_VAPOUR:
- case MONS_VERY_UGLY_THING:
- case MONS_WHITE_IMP:
- case MONS_WIGHT:
- case MONS_WIZARD:
- case MONS_WOOD_GOLEM:
- case MONS_WRAITH:
- case MONS_YNOXINUL:
- case MONS_ZOMBIE_LARGE:
- case MONS_ZOMBIE_SMALL:
- case MONS_SIMULACRUM_LARGE:
- case MONS_SIMULACRUM_SMALL:
- return true;
- default:
- return false;
- }
-} // end mons_abyss()
-
-int mons_rare_abyss(int mcls)
-{
- switch (mcls)
- {
- case MONS_ABOMINATION_LARGE:
- case MONS_ABOMINATION_SMALL:
- return 99;
-
- case MONS_LEMURE:
- case MONS_MANES:
- case MONS_MIDGE:
- case MONS_UFETUBUS:
- case MONS_WHITE_IMP:
- return 80;
-
- case MONS_HELLWING:
- case MONS_NEQOXEC:
- case MONS_ORANGE_DEMON:
- case MONS_SMOKE_DEMON:
- case MONS_YNOXINUL:
- return 50;
-
- case MONS_SKELETON_LARGE:
- case MONS_SKELETAL_WARRIOR:
- case MONS_SKELETON_SMALL:
- return 40;
-
- case MONS_ZOMBIE_LARGE:
- case MONS_ZOMBIE_SMALL:
- return 35;
-
- case MONS_SKELETAL_DRAGON:
- return 20;
-
- case MONS_EFREET:
- return 18;
-
- case MONS_RAKSHASA:
- return 17;
-
- case MONS_BRAIN_WORM:
- return 16;
-
- case MONS_FLYING_SKULL:
- case MONS_FREEZING_WRAITH:
- case MONS_GIANT_ORANGE_BRAIN:
- case MONS_VERY_UGLY_THING:
- case MONS_WRAITH:
- return 15;
-
- case MONS_EYE_OF_DRAINING:
- case MONS_LICH:
- return 14;
-
- case MONS_INSUBSTANTIAL_WISP:
- case MONS_UNSEEN_HORROR:
- return 12;
-
- case MONS_HELL_HOUND:
- case MONS_HUNGRY_GHOST:
- case MONS_SHADOW:
- return 11;
-
- case MONS_BALRUG:
- case MONS_BLUE_DEATH:
- case MONS_BLUE_DEVIL:
- case MONS_CACODEMON:
- case MONS_DEMONIC_CRAWLER:
- case MONS_EXECUTIONER:
- case MONS_GREEN_DEATH:
- case MONS_GUARDIAN_NAGA:
- case MONS_HAIRY_DEVIL:
- case MONS_HELLION:
- case MONS_ICE_DEVIL:
- case MONS_IMP:
- case MONS_LOROCYPROCA:
- case MONS_MUMMY:
- case MONS_NECROPHAGE:
- case MONS_ROTTING_DEVIL:
- case MONS_SHADOW_DEMON:
- case MONS_SHADOW_IMP:
- case MONS_SUN_DEMON:
- case MONS_WIGHT:
- return 10;
-
- case MONS_ICE_BEAST:
- case MONS_JELLY:
- case MONS_TORMENTOR:
- case MONS_VAMPIRE:
- case MONS_VAPOUR:
- case MONS_SIMULACRUM_LARGE:
- case MONS_SIMULACRUM_SMALL:
- return 9;
-
- case MONS_FUNGUS:
- case MONS_GIANT_EYEBALL:
- case MONS_PHANTOM:
- case MONS_REAPER:
- return 8;
-
- case MONS_SOUL_EATER:
- return 7;
-
- case MONS_IRON_DEVIL:
- return 6;
-
- case MONS_ANCIENT_LICH:
- case MONS_CLAY_GOLEM:
- case MONS_GREAT_ORB_OF_EYES:
- case MONS_IRON_GOLEM:
- case MONS_NAGA_MAGE:
- case MONS_NAGA_WARRIOR:
- case MONS_PIT_FIEND:
- case MONS_RED_DEVIL:
- case MONS_SHINING_EYE:
- case MONS_SPECTRAL_WARRIOR:
- case MONS_SPINY_WORM:
- case MONS_STONE_GOLEM:
- case MONS_TENTACLED_MONSTROSITY:
- case MONS_WIZARD:
- case MONS_WOOD_GOLEM:
- return 5;
-
- case MONS_AIR_ELEMENTAL:
- case MONS_EARTH_ELEMENTAL:
- case MONS_FIRE_ELEMENTAL:
- case MONS_FLAYED_GHOST:
- return 4;
-
- case MONS_CRYSTAL_GOLEM:
- case MONS_EYE_OF_DEVASTATION:
- case MONS_HELL_KNIGHT:
- case MONS_NECROMANCER:
- case MONS_UGLY_THING:
- return 3;
-
- case MONS_DANCING_WEAPON:
- case MONS_GIANT_SPORE:
- return 2;
-
- case MONS_TOENAIL_GOLEM:
- return 1;
-
- default:
- return 0;
- }
-} // end mons_rare_abyss()
-
-bool mons_pan(int mcls)
-{
- switch (mcls)
- {
- // icky monsters
- case MONS_BRAIN_WORM:
- case MONS_FUNGUS:
- case MONS_GIANT_ORANGE_BRAIN:
- case MONS_JELLY:
- case MONS_SLIME_CREATURE:
- // undead
- case MONS_FLAYED_GHOST:
- case MONS_FLYING_SKULL:
- case MONS_FREEZING_WRAITH:
- case MONS_HUNGRY_GHOST:
- case MONS_SKELETON_LARGE:
- case MONS_LICH:
- case MONS_MUMMY:
- case MONS_NECROPHAGE:
- case MONS_PHANTOM:
- case MONS_SHADOW:
- case MONS_SKELETON_SMALL:
- case MONS_SPECTRAL_WARRIOR:
- case MONS_VAMPIRE:
- case MONS_WIGHT:
- case MONS_WRAITH:
- case MONS_ZOMBIE_LARGE:
- case MONS_ZOMBIE_SMALL:
- case MONS_SIMULACRUM_LARGE:
- case MONS_SIMULACRUM_SMALL:
- // "things"
- case MONS_ABOMINATION_LARGE:
- case MONS_ABOMINATION_SMALL:
- case MONS_INSUBSTANTIAL_WISP:
- case MONS_PULSATING_LUMP:
- case MONS_UNSEEN_HORROR:
- // eyes
- case MONS_EYE_OF_DRAINING:
- case MONS_GIANT_EYEBALL:
- case MONS_GREAT_ORB_OF_EYES:
- // malign beings
- case MONS_EFREET:
- case MONS_RAKSHASA:
- //case MONS_RAKSHASA_FAKE: //jmf: FIXME: really create these?
- // I'm guessing not -- bwr
- // golems
- case MONS_CLAY_GOLEM:
- case MONS_CRYSTAL_GOLEM:
- case MONS_IRON_GOLEM:
- case MONS_STONE_GOLEM:
- case MONS_TOENAIL_GOLEM:
- case MONS_WOOD_GOLEM:
- // dragon(s)
- case MONS_MOTTLED_DRAGON:
- // elementals
- case MONS_AIR_ELEMENTAL:
- case MONS_EARTH_ELEMENTAL:
- case MONS_FIRE_ELEMENTAL:
- // humanoids
- case MONS_NECROMANCER:
- case MONS_STONE_GIANT:
- case MONS_WIZARD:
- // demons
- case MONS_BALRUG:
- case MONS_BLUE_DEATH:
- case MONS_CACODEMON:
- case MONS_EXECUTIONER:
- case MONS_GREEN_DEATH:
- case MONS_HELLWING:
- case MONS_LEMURE:
- case MONS_MANES:
- case MONS_MIDGE:
- case MONS_NEQOXEC:
- case MONS_ORANGE_DEMON:
- case MONS_SMOKE_DEMON:
- case MONS_UFETUBUS:
- case MONS_WHITE_IMP:
- case MONS_YNOXINUL:
- return true;
- default:
- return false;
- }
-} // end mons_pan()
-
-/* ******************** END EXTERNAL FUNCTIONS ******************** */
-
-static int mons_dis_level(int mcls)
-{
- int mlev = 26;
-
- switch (mcls)
- {
- case MONS_CLAY_GOLEM:
- case MONS_IMP:
- case MONS_NECROPHAGE:
- case MONS_RED_DEVIL:
- case MONS_SKELETAL_WARRIOR:
- case MONS_ZOMBIE_LARGE:
- mlev++;
- break;
-
- case MONS_HELL_HOUND:
- case MONS_HELL_KNIGHT:
- case MONS_SKELETON_LARGE:
- case MONS_PHANTOM:
- case MONS_ROTTING_DEVIL:
- case MONS_SHADOW:
- case MONS_SKELETON_SMALL:
- case MONS_STONE_GOLEM:
- case MONS_TORMENTOR:
- case MONS_WIGHT:
- case MONS_ZOMBIE_SMALL:
- mlev += 2;
- break;
-
- case MONS_EFREET:
- case MONS_FLYING_SKULL:
- case MONS_HELLION:
- case MONS_HELL_HOG:
- case MONS_IRON_GOLEM:
- case MONS_MUMMY:
- mlev += 3;
- break;
-
- case MONS_FLAYED_GHOST:
- case MONS_FREEZING_WRAITH:
- case MONS_DEATH_DRAKE:
- case MONS_HAIRY_DEVIL:
- case MONS_IRON_DEVIL:
- case MONS_VAMPIRE:
- case MONS_WRAITH:
- mlev += 3;
- break;
-
- case MONS_BLUE_DEVIL:
- case MONS_DANCING_WEAPON:
- case MONS_ICE_DEVIL:
- case MONS_ICE_DRAGON:
- case MONS_LICH:
- case MONS_REAPER:
- case MONS_SOUL_EATER:
- case MONS_SPECTRAL_WARRIOR:
- mlev += 5;
- break;
-
- case MONS_ANCIENT_LICH:
- case MONS_FIEND:
- case MONS_IRON_DRAGON:
- case MONS_SKELETAL_DRAGON:
- mlev += 6;
- break;
-
- default:
- return 0;
- }
-
- return (mlev);
-} // end mons_dis_level()
-
-static int mons_dis_rare(int mcls)
-{
- switch (mcls)
- {
- case MONS_IMP:
- case MONS_IRON_DEVIL:
- case MONS_ZOMBIE_LARGE:
- case MONS_ZOMBIE_SMALL:
- return 99;
-
- case MONS_REAPER:
- return 77;
-
- case MONS_TORMENTOR:
- return 66;
-
- case MONS_RED_DEVIL:
- case MONS_SKELETAL_WARRIOR:
- return 50;
-
- case MONS_WRAITH:
- return 48;
-
- case MONS_SHADOW:
- return 56;
-
- case MONS_HELL_HOUND:
- return 46;
-
- case MONS_MUMMY:
- case MONS_WIGHT:
- return 45;
-
- case MONS_HELLION:
- case MONS_BLUE_DEVIL:
- return 40;
-
- case MONS_FLYING_SKULL:
- return 35;
-
- case MONS_FREEZING_WRAITH:
- case MONS_ICE_DEVIL:
- return 30;
-
- case MONS_FLAYED_GHOST:
- case MONS_SKELETON_LARGE:
- case MONS_NECROPHAGE:
- case MONS_SKELETON_SMALL:
- return 25;
-
- case MONS_HELL_HOG:
- case MONS_SKELETAL_DRAGON:
- return 20;
-
- case MONS_VAMPIRE:
- return 19;
-
- case MONS_PHANTOM:
- return 17;
-
- case MONS_HAIRY_DEVIL:
- return 15;
-
- case MONS_CLAY_GOLEM:
- case MONS_DANCING_WEAPON:
- case MONS_EFREET:
- case MONS_HELL_KNIGHT:
- case MONS_IRON_GOLEM:
- case MONS_LICH:
- case MONS_ROTTING_DEVIL:
- case MONS_SOUL_EATER:
- case MONS_SPECTRAL_WARRIOR:
- case MONS_STONE_GOLEM:
- return 10;
-
- case MONS_IRON_DRAGON:
- return 5;
-
- case MONS_ANCIENT_LICH:
- case MONS_FIEND:
- return 3;
-
- default:
- return 0;
- }
-} // end mons_dis_rare()
-
-static int mons_gehenna_level(int mcls)
-{
- int mlev = 26;
-
- switch (mcls)
- {
- case MONS_CLAY_GOLEM:
- case MONS_SKELETON_LARGE:
- case MONS_RED_DEVIL:
- case MONS_SKELETON_SMALL:
- case MONS_ZOMBIE_LARGE:
- case MONS_ZOMBIE_SMALL:
- mlev++;
- break;
-
- case MONS_HELL_HOG:
- case MONS_HELL_HOUND:
- case MONS_IMP:
- case MONS_NECROPHAGE:
- case MONS_STONE_GOLEM:
- mlev += 2;
- break;
-
- case MONS_FLYING_SKULL:
- case MONS_IRON_GOLEM:
- case MONS_MUMMY:
- case MONS_PHANTOM:
- case MONS_ROTTING_DEVIL:
- case MONS_SHADOW:
- case MONS_WIGHT:
- mlev += 3;
- break;
-
- case MONS_HAIRY_DEVIL:
- case MONS_HELL_KNIGHT:
- case MONS_VAMPIRE:
- case MONS_WRAITH:
- mlev += 4;
- break;
-
- case MONS_EFREET:
- case MONS_FLAYED_GHOST:
- case MONS_HELLION:
- case MONS_TORMENTOR:
- mlev += 5;
- break;
-
- case MONS_ANCIENT_LICH:
- case MONS_FIEND:
- case MONS_LICH:
- case MONS_PIT_FIEND:
- case MONS_REAPER:
- case MONS_SERPENT_OF_HELL:
- case MONS_SKELETAL_DRAGON:
- case MONS_SOUL_EATER:
- case MONS_SPECTRAL_WARRIOR:
- mlev += 6;
- break;
-
- default:
- return 0;
- }
-
- return (mlev);
-} // end mons_gehenna_level()
-
-static int mons_gehenna_rare(int mcls)
-{
- switch (mcls)
- {
- case MONS_SKELETON_LARGE:
- case MONS_SKELETON_SMALL:
- case MONS_ZOMBIE_LARGE:
- case MONS_ZOMBIE_SMALL:
- return 99;
-
- case MONS_MUMMY:
- return 70;
-
- case MONS_SHADOW:
- return 61;
-
- case MONS_RED_DEVIL:
- case MONS_WIGHT:
- return 60;
-
- case MONS_HELLION:
- return 54;
-
- case MONS_WRAITH:
- return 53;
-
- case MONS_NECROPHAGE:
- case MONS_ROTTING_DEVIL:
- return 50;
-
- case MONS_VAMPIRE:
- return 44;
-
- case MONS_FLYING_SKULL:
- case MONS_REAPER:
- return 43;
-
- case MONS_TORMENTOR:
- return 42;
-
- case MONS_HELL_HOUND:
- return 41;
-
- case MONS_FLAYED_GHOST:
- case MONS_PHANTOM:
- return 32;
-
- case MONS_HELL_HOG:
- case MONS_IMP:
- case MONS_IRON_DEVIL:
- return 30;
-
- case MONS_LICH:
- return 25;
-
- case MONS_HELL_KNIGHT:
- return 21;
-
- case MONS_HAIRY_DEVIL:
- case MONS_SPECTRAL_WARRIOR:
- return 20;
-
- case MONS_CLAY_GOLEM:
- case MONS_SKELETAL_DRAGON:
- return 10;
-
- case MONS_STONE_GOLEM:
- return 8;
-
- case MONS_PIT_FIEND:
- return 7;
-
- case MONS_EFREET:
- case MONS_FIEND:
- case MONS_IRON_GOLEM:
- case MONS_SOUL_EATER:
- return 5;
-
- case MONS_ANCIENT_LICH:
- case MONS_SERPENT_OF_HELL:
- return 4;
-
- default:
- return 0;
- }
-} // end mons_gehenna_rare()
-
-static int mons_cocytus_level(int mcls)
-{
- int mlev = 26;
-
- switch (mcls)
- {
- case MONS_SKELETON_LARGE:
- case MONS_NECROPHAGE:
- case MONS_SKELETAL_WARRIOR:
- case MONS_SKELETON_SMALL:
- case MONS_ZOMBIE_LARGE:
- case MONS_ZOMBIE_SMALL:
- case MONS_SIMULACRUM_LARGE:
- case MONS_SIMULACRUM_SMALL:
- mlev++;
- break;
-
- case MONS_BLUE_DEVIL:
- case MONS_ICE_BEAST:
- case MONS_PHANTOM:
- case MONS_SHADOW:
- mlev += 2;
- break;
-
- case MONS_FLYING_SKULL:
- case MONS_ROTTING_DEVIL:
- case MONS_VAMPIRE:
- case MONS_WIGHT:
- mlev += 3;
- break;
-
- case MONS_FREEZING_WRAITH:
- case MONS_HAIRY_DEVIL:
- case MONS_HUNGRY_GHOST:
- case MONS_MUMMY:
- case MONS_SPECTRAL_WARRIOR:
- case MONS_WRAITH:
- mlev += 4;
- break;
-
- case MONS_ICE_DEVIL:
- case MONS_ICE_DRAGON:
- case MONS_TORMENTOR:
- mlev += 5;
- break;
-
- case MONS_ANCIENT_LICH:
- case MONS_LICH:
- case MONS_REAPER:
- case MONS_SKELETAL_DRAGON:
- case MONS_SOUL_EATER:
- mlev += 6;
- break;
-
- default:
- return 0;
- }
-
- return (mlev);
-} // end mons_cocytus_level()
-
-static int mons_cocytus_rare(int mcls)
-{
- switch (mcls)
- {
- case MONS_FREEZING_WRAITH:
- return 87;
-
- case MONS_ICE_BEAST:
- case MONS_SKELETON_LARGE:
- case MONS_SKELETON_SMALL:
- case MONS_ZOMBIE_LARGE:
- case MONS_ZOMBIE_SMALL:
- return 85;
-
- case MONS_BLUE_DEVIL:
- case MONS_ICE_DEVIL:
- return 76;
-
- case MONS_FLYING_SKULL:
- return 57;
-
- case MONS_SHADOW:
- return 56;
-
- case MONS_SKELETAL_WARRIOR:
- return 50;
-
- case MONS_REAPER:
- return 47;
-
- case MONS_WIGHT:
- case MONS_WRAITH:
- return 45;
-
- case MONS_ICE_DRAGON:
- return 38;
-
- case MONS_ROTTING_DEVIL:
- case MONS_TORMENTOR:
- return 37;
-
- case MONS_MUMMY:
- return 35;
-
- case MONS_VAMPIRE:
- return 34;
-
- case MONS_HAIRY_DEVIL:
- case MONS_HUNGRY_GHOST:
- return 26;
-
- case MONS_NECROPHAGE:
- case MONS_PHANTOM:
- return 25;
-
- case MONS_SPECTRAL_WARRIOR:
- return 20;
-
- case MONS_SOUL_EATER:
- return 19;
-
- case MONS_LICH:
- case MONS_SKELETAL_DRAGON:
- case MONS_SIMULACRUM_LARGE:
- case MONS_SIMULACRUM_SMALL:
- return 12;
-
- case MONS_ANCIENT_LICH:
- return 5;
-
- default:
- return 0;
- }
-} // end mons_cocytus_rare()
-
-static int mons_tartarus_level(int mcls)
-{
- int mlev = 26;
-
- switch (mcls)
- {
- case MONS_IMP:
- case MONS_SKELETON_LARGE:
- case MONS_RED_DEVIL:
- case MONS_SHADOW_IMP:
- case MONS_SKELETAL_WARRIOR:
- case MONS_SKELETON_SMALL:
- mlev++;
- break;
-
- case MONS_HELL_KNIGHT:
- case MONS_NECROPHAGE:
- case MONS_PHANTOM:
- case MONS_WIGHT:
- case MONS_ZOMBIE_LARGE:
- case MONS_ZOMBIE_SMALL:
- mlev += 2;
- break;
-
- case MONS_FREEZING_WRAITH:
- case MONS_HELL_HOUND:
- case MONS_NECROMANCER:
- case MONS_SHADOW:
- case MONS_SHADOW_DEMON:
- case MONS_WRAITH:
- mlev += 3;
- break;
-
- case MONS_BLUE_DEVIL:
- case MONS_FLAYED_GHOST:
- case MONS_HUNGRY_GHOST:
- case MONS_ICE_DEVIL:
- case MONS_MUMMY:
- case MONS_SKELETAL_DRAGON:
- case MONS_SPECTRAL_WARRIOR:
- case MONS_TORMENTOR:
- case MONS_SIMULACRUM_LARGE:
- case MONS_SIMULACRUM_SMALL:
- mlev += 4;
- break;
-
- case MONS_FLYING_SKULL:
- case MONS_HELLION:
- case MONS_REAPER:
- case MONS_ROTTING_DEVIL:
- case MONS_SHADOW_DRAGON:
- case MONS_VAMPIRE:
- mlev += 5;
- break;
-
- case MONS_ANCIENT_LICH:
- case MONS_HAIRY_DEVIL:
- case MONS_LICH:
- case MONS_SOUL_EATER:
- mlev += 6;
- break;
-
- default:
- return 0;
- }
-
- return (mlev);
-} // end mons_tartarus_level()
-
-static int mons_tartarus_rare(int mcls)
-{
- switch (mcls)
- {
- case MONS_SKELETON_LARGE:
- case MONS_SHADOW_IMP:
- case MONS_SKELETAL_WARRIOR:
- case MONS_SKELETON_SMALL:
- case MONS_ZOMBIE_LARGE:
- case MONS_ZOMBIE_SMALL:
- return 99;
-
- case MONS_SHADOW:
- return 92;
-
- case MONS_REAPER:
- return 73;
-
- case MONS_NECROPHAGE:
- return 72;
-
- case MONS_WIGHT:
- return 71;
-
- case MONS_ROTTING_DEVIL:
- return 62;
-
- case MONS_FREEZING_WRAITH:
- return 60;
-
- case MONS_FLYING_SKULL:
- return 53;
-
- case MONS_HELL_HOUND:
- case MONS_PHANTOM:
- case MONS_WRAITH:
- return 52;
-
- case MONS_SHADOW_DEMON:
- return 50;
-
- case MONS_SPECTRAL_WARRIOR:
- return 45;
-
- case MONS_VAMPIRE:
- return 44;
-
- case MONS_HELLION:
- case MONS_TORMENTOR:
- return 42;
-
- case MONS_SKELETAL_DRAGON:
- return 40;
-
- case MONS_SOUL_EATER:
- return 35;
-
- case MONS_ICE_DEVIL: // not really appropriate for a fiery hell
- return 34;
-
- case MONS_MUMMY:
- return 33;
-
- case MONS_BLUE_DEVIL:
- case MONS_HUNGRY_GHOST:
- return 32;
-
- case MONS_FLAYED_GHOST:
- case MONS_HAIRY_DEVIL:
- return 30;
-
- case MONS_LICH:
- return 24;
-
- case MONS_IMP:
- case MONS_SHADOW_DRAGON:
- case MONS_DEATH_DRAKE:
- return 20;
-
- case MONS_RED_DEVIL:
- return 13;
-
- case MONS_HELL_KNIGHT:
- return 14;
-
- case MONS_NECROMANCER:
- case MONS_SIMULACRUM_LARGE:
- case MONS_SIMULACRUM_SMALL:
- return 12;
-
- case MONS_ANCIENT_LICH:
- return 6;
-
- default:
- return 0;
- }
-}
-
-static int mons_mineorc_level(int mcls)
-{
- int mlev = you.branch_stairs[STAIRS_ORCISH_MINES] + 1;
-
- switch (mcls)
- {
- case MONS_HOBGOBLIN:
- case MONS_ORC_PRIEST:
- case MONS_ORC_WARRIOR:
- mlev++;
- break;
-
- case MONS_GNOLL:
- case MONS_OGRE:
- case MONS_WARG:
- case MONS_ORC_KNIGHT:
- case MONS_ORC_WIZARD:
- mlev += 2;
- break;
-
- case MONS_CYCLOPS:
- case MONS_IRON_TROLL:
- case MONS_OGRE_MAGE:
- case MONS_ORC_HIGH_PRIEST:
- case MONS_ORC_SORCERER:
- case MONS_ORC_WARLORD:
- case MONS_ROCK_TROLL:
- case MONS_STONE_GIANT:
- case MONS_TROLL:
- case MONS_TWO_HEADED_OGRE:
- case MONS_ETTIN:
- mlev += 3;
- break;
-
- case MONS_FUNGUS:
- case MONS_GOBLIN:
- case MONS_ORC:
- default:
- mlev += 0;
- }
-
- return (mlev);
-} // end mons_mineorc_level()
-
-static int mons_mineorc_rare(int mcls)
-{
- switch (mcls)
- {
- case MONS_ORC:
- return 300;
-
- case MONS_GOBLIN:
- case MONS_ORC_WARRIOR:
- return 30;
-
- case MONS_HOBGOBLIN:
- case MONS_OGRE:
- return 20;
-
- case MONS_TROLL:
- case MONS_WARG:
- return 13;
-
- case MONS_FUNGUS:
- case MONS_ORC_KNIGHT:
- case MONS_ORC_PRIEST:
- case MONS_ORC_SORCERER:
- case MONS_ORC_WIZARD:
- return 10;
-
- case MONS_ORC_WARLORD:
- case MONS_ORC_HIGH_PRIEST:
- case MONS_CYCLOPS:
- case MONS_TWO_HEADED_OGRE:
- return 5;
-
- case MONS_ETTIN:
- case MONS_IRON_TROLL:
- case MONS_ROCK_TROLL:
- case MONS_STONE_GIANT:
- return 3;
-
- case MONS_GNOLL:
- return 2;
-
- case MONS_OGRE_MAGE:
- return 1;
-
- default:
- return 0;
- }
-} // end mons_mineorc_rare()
-
-static int mons_hive_level(int mcls)
-{
- int mlev = you.branch_stairs[STAIRS_HIVE] + 1;
-
- switch (mcls)
- {
- case MONS_PLANT:
- case MONS_KILLER_BEE:
- mlev += 0;
- break;
-
- case MONS_KILLER_BEE_LARVA:
- mlev += 2;
- break;
-
- default:
- return 99;
- }
-
- return (mlev);
-} // end mons_hive_level()
-
-static int mons_hive_rare(int mcls)
-{
- switch (mcls)
- {
- case MONS_KILLER_BEE:
- return 300;
-
- case MONS_PLANT:
- return 100;
-
- case MONS_KILLER_BEE_LARVA:
- return 50;
-
- default:
- return 0;
- }
-} // end mons_hive_rare()
-
-static int mons_lair_level(int mcls)
-{
- int mlev = you.branch_stairs[STAIRS_LAIR] + 1;
-
- switch (mcls)
- {
- case MONS_GIANT_GECKO:
- case MONS_GIANT_BAT:
- case MONS_JACKAL:
- case MONS_GIANT_NEWT:
- case MONS_RAT:
- case MONS_QUOKKA:
- mlev += 0;
- break;
-
- case MONS_GIANT_CENTIPEDE:
- case MONS_GIANT_IGUANA:
- mlev++;
- break;
-
- case MONS_GIANT_FROG:
- case MONS_GILA_MONSTER:
- case MONS_GREY_RAT:
- case MONS_HOUND:
- case MONS_BLACK_BEAR:
- mlev += 2;
- break;
-
- case MONS_WORM:
- case MONS_WOLF:
- mlev += 3;
- break;
-
- case MONS_FUNGUS:
- case MONS_GIANT_BROWN_FROG:
- case MONS_GIANT_LIZARD:
- case MONS_GIANT_MITE:
- case MONS_GREEN_RAT:
- case MONS_SCORPION:
- case MONS_SNAKE:
- mlev += 4;
- break;
-
- case MONS_BROWN_SNAKE:
- case MONS_BUTTERFLY:
- case MONS_GIANT_BEETLE:
- case MONS_GIANT_SLUG:
- case MONS_HIPPOGRIFF:
- case MONS_PLANT:
- case MONS_SPINY_FROG:
- case MONS_WAR_DOG:
- case MONS_YELLOW_WASP:
- case MONS_BEAR:
- mlev += 5;
- break;
-
- case MONS_BLINK_FROG:
- case MONS_GIANT_SNAIL:
- case MONS_GIANT_SPORE:
- case MONS_KOMODO_DRAGON:
- case MONS_ORANGE_RAT:
- case MONS_SHEEP:
- case MONS_STEAM_DRAGON:
- case MONS_WOLF_SPIDER:
- case MONS_YAK:
- case MONS_GRIZZLY_BEAR:
- mlev += 6;
- break;
-
- case MONS_BLACK_SNAKE:
- case MONS_BRAIN_WORM:
- case MONS_BUMBLEBEE:
- case MONS_FIREDRAKE:
- case MONS_HYDRA:
- case MONS_OKLOB_PLANT:
- case MONS_WYVERN:
- mlev += 7;
- break;
-
- case MONS_ELEPHANT_SLUG:
- case MONS_POLAR_BEAR:
- case MONS_GRIFFON:
- case MONS_LINDWURM:
- case MONS_REDBACK:
- case MONS_WANDERING_MUSHROOM:
- mlev += 8;
- break;
-
- case MONS_BORING_BEETLE:
- case MONS_BOULDER_BEETLE:
- case MONS_DEATH_YAK:
- case MONS_SPINY_WORM:
- mlev += 9;
- break;
-
- default:
- return 99;
- }
-
- return (mlev);
-} // end mons_lair_level()
-
-static int mons_lair_rare(int mcls)
-{
- switch (mcls)
- {
- case MONS_RAT:
- return 200;
-
- case MONS_GIANT_BAT:
- case MONS_GIANT_BROWN_FROG:
- case MONS_GIANT_FROG:
- case MONS_GREY_RAT:
- case MONS_QUOKKA:
- return 99;
-
- case MONS_BROWN_SNAKE:
- case MONS_GIANT_LIZARD:
- return 90;
-
- case MONS_PLANT:
- case MONS_SNAKE:
- return 80;
-
- case MONS_SPINY_FROG:
- return 75;
-
- case MONS_JACKAL:
- case MONS_GIANT_IGUANA:
- case MONS_GILA_MONSTER:
- return 70;
-
- case MONS_GREEN_RAT:
- return 64;
-
- case MONS_HOUND:
- return 60;
-
- case MONS_GIANT_SNAIL:
- return 56;
-
- case MONS_GIANT_SLUG:
- return 55;
-
- case MONS_FUNGUS:
- case MONS_GIANT_GECKO:
- case MONS_GIANT_CENTIPEDE:
- case MONS_HIPPOGRIFF:
- case MONS_HYDRA:
- case MONS_KOMODO_DRAGON:
- case MONS_YAK:
- return 50;
-
- case MONS_BLACK_SNAKE:
- return 47;
-
- case MONS_BLINK_FROG:
- return 45;
-
- case MONS_SHEEP:
- case MONS_FIREDRAKE:
- return 36;
-
- case MONS_WAR_DOG:
- return 35;
-
- case MONS_WORM:
- case MONS_GIANT_MITE:
- case MONS_GRIFFON:
- case MONS_DEATH_YAK:
- case MONS_ELEPHANT_SLUG:
- return 30;
-
- case MONS_BORING_BEETLE:
- return 29;
-
- case MONS_BOULDER_BEETLE:
- case MONS_GIANT_NEWT:
- case MONS_WOLF:
- case MONS_WYVERN:
- return 20;
-
- case MONS_BLACK_BEAR:
- case MONS_BEAR:
- case MONS_GRIZZLY_BEAR:
- case MONS_POLAR_BEAR:
- return 15;
-
- case MONS_GIANT_BEETLE:
- case MONS_SCORPION:
- case MONS_OKLOB_PLANT:
- case MONS_STEAM_DRAGON:
- case MONS_LINDWURM:
- case MONS_ORANGE_RAT:
- return 10;
-
- case MONS_SPINY_WORM:
- return 9;
-
- case MONS_WANDERING_MUSHROOM:
- case MONS_REDBACK:
- return 8;
-
- case MONS_BRAIN_WORM:
- case MONS_BUMBLEBEE:
- return 7;
-
- case MONS_WOLF_SPIDER:
- return 6;
-
- case MONS_YELLOW_WASP:
- case MONS_BUTTERFLY:
- return 5;
-
- case MONS_GIANT_SPORE:
- return 2;
-
- default:
- return 0;
- }
-} // end mons_lair_rare()
-
-static int mons_pitslime_level(int mcls)
-{
- int mlev = you.branch_stairs[STAIRS_SLIME_PITS] + 1;
-
-
- switch (mcls)
- {
- case MONS_JELLY:
- case MONS_OOZE:
- case MONS_ACID_BLOB:
- case MONS_GIANT_SPORE:
- case MONS_GIANT_EYEBALL:
- mlev++;
- break;
-
- case MONS_BROWN_OOZE:
- case MONS_SLIME_CREATURE:
- case MONS_EYE_OF_DRAINING:
- mlev += 2;
- break;
-
- case MONS_GIANT_AMOEBA:
- case MONS_AZURE_JELLY:
- case MONS_SHINING_EYE:
- mlev += 3;
- break;
-
- case MONS_PULSATING_LUMP:
- case MONS_GREAT_ORB_OF_EYES:
- case MONS_EYE_OF_DEVASTATION:
- mlev += 4;
- break;
-
- case MONS_DEATH_OOZE:
- case MONS_TENTACLED_MONSTROSITY:
- case MONS_GIANT_ORANGE_BRAIN:
- mlev += 5;
- break;
-
- default:
- mlev += 0;
- break;
- }
-
- return (mlev);
-} // end mons_pitslime_level()
-
-static int mons_pitslime_rare(int mcls)
-{
- switch (mcls)
- {
- case MONS_JELLY:
- return 300;
-
- case MONS_SLIME_CREATURE:
- return 200;
-
- case MONS_BROWN_OOZE:
- return 150;
-
- case MONS_GIANT_AMOEBA:
- case MONS_ACID_BLOB:
- return 100;
-
- case MONS_OOZE:
- case MONS_AZURE_JELLY:
- case MONS_GIANT_SPORE:
- case MONS_GIANT_EYEBALL:
- case MONS_EYE_OF_DRAINING:
- case MONS_SHINING_EYE:
- return 50;
-
- case MONS_DEATH_OOZE:
- case MONS_GREAT_ORB_OF_EYES:
- case MONS_EYE_OF_DEVASTATION:
- return 30;
-
- case MONS_PULSATING_LUMP:
- case MONS_GIANT_ORANGE_BRAIN:
- return 20;
-
- case MONS_TENTACLED_MONSTROSITY:
- return 2;
-
- default:
- return 0;
- }
-} // end mons_pitslime_rare()
-
-static int mons_crypt_level(int mcls)
-{
- int mlev = you.branch_stairs[STAIRS_CRYPT] + 1;
-
- switch (mcls)
- {
- case MONS_ZOMBIE_SMALL:
- mlev += 0;
- break;
-
- case MONS_PHANTOM:
- case MONS_SKELETON_SMALL:
- case MONS_SKELETON_LARGE:
- case MONS_ZOMBIE_LARGE:
- case MONS_WIGHT:
- mlev++;
- break;
-
- case MONS_SHADOW:
- case MONS_HUNGRY_GHOST:
- case MONS_NECROPHAGE:
- case MONS_SKELETAL_WARRIOR:
- case MONS_SIMULACRUM_SMALL:
- case MONS_SIMULACRUM_LARGE:
- mlev += 2;
- break;
-
- case MONS_NECROMANCER:
- case MONS_PULSATING_LUMP:
- case MONS_FLAYED_GHOST:
- case MONS_GHOUL:
- case MONS_ROTTING_HULK:
- case MONS_WRAITH:
- case MONS_FLYING_SKULL:
- mlev += 3;
- break;
-
- case MONS_SPECTRAL_WARRIOR:
- case MONS_SHADOW_WRAITH:
- case MONS_VAMPIRE_KNIGHT:
- case MONS_VAMPIRE_MAGE:
- case MONS_SKELETAL_DRAGON:
- case MONS_ABOMINATION_SMALL:
- case MONS_MUMMY:
- case MONS_VAMPIRE:
- case MONS_ABOMINATION_LARGE:
- mlev += 4;
- break;
-
- case MONS_REAPER:
- case MONS_ANCIENT_LICH:
- case MONS_LICH:
- mlev += 5;
- break;
-
- default:
- mlev += 99;
- }
-
- return (mlev);
-} // end mons_crypt_level()
-
-static int mons_crypt_rare(int mcls)
-{
- switch (mcls)
- {
- case MONS_ZOMBIE_SMALL:
- case MONS_SKELETON_SMALL:
- case MONS_SKELETON_LARGE:
- return 410;
-
- case MONS_ZOMBIE_LARGE:
- return 300;
-
- case MONS_SKELETAL_WARRIOR:
- return 75;
-
- case MONS_NECROPHAGE:
- return 50;
-
- case MONS_WIGHT:
- return 35;
-
- case MONS_WRAITH:
- return 33;
-
- case MONS_SHADOW:
- return 30;
-
- case MONS_NECROMANCER:
- case MONS_GHOUL:
- return 25;
-
- case MONS_MUMMY:
- case MONS_SKELETAL_DRAGON:
- return 24;
-
- case MONS_VAMPIRE:
- case MONS_PHANTOM:
- return 21;
-
- case MONS_VAMPIRE_KNIGHT:
- case MONS_VAMPIRE_MAGE:
- return 20;
-
- case MONS_ROTTING_HULK:
- return 17;
-
- case MONS_SPECTRAL_WARRIOR:
- return 14;
-
- case MONS_FLYING_SKULL:
- case MONS_FLAYED_GHOST:
- return 13;
-
- case MONS_HUNGRY_GHOST:
- return 12;
-
- case MONS_SHADOW_WRAITH:
- case MONS_SIMULACRUM_SMALL:
- case MONS_SIMULACRUM_LARGE:
- return 10;
-
- case MONS_ANCIENT_LICH:
- return 8;
-
- case MONS_ABOMINATION_SMALL:
- case MONS_LICH:
- case MONS_REAPER:
- return 5;
-
- case MONS_ABOMINATION_LARGE:
- return 4;
-
- case MONS_PULSATING_LUMP:
- return 3;
-
- default:
- return 0;
- }
-} // end mons_crypt_rare()
-
-static int mons_pitsnake_level(int mcls)
-{
- int mlev = you.branch_stairs[STAIRS_SNAKE_PIT] + 1;
-
- switch (mcls)
- {
- case MONS_SMALL_SNAKE:
- case MONS_SNAKE:
- mlev++;
- break;
-
- case MONS_BROWN_SNAKE:
- case MONS_BLACK_SNAKE:
- case MONS_YELLOW_SNAKE:
- case MONS_GREY_SNAKE:
- case MONS_NAGA:
- mlev += 2;
- break;
-
- case MONS_NAGA_WARRIOR:
- case MONS_NAGA_MAGE:
- mlev += 3;
- break;
-
- case MONS_GUARDIAN_NAGA:
- mlev += 4;
- break;
-
- case MONS_GREATER_NAGA:
- mlev += 5;
- break;
-
- default:
- mlev += 99;
- }
-
- return (mlev);
-} // end mons_pitsnake_level()
-
-static int mons_pitsnake_rare(int mcls)
-{
- switch (mcls)
- {
- case MONS_SNAKE:
- case MONS_BROWN_SNAKE:
- return 99;
-
- case MONS_BLACK_SNAKE:
- return 72;
-
- case MONS_NAGA:
- return 53;
-
- case MONS_NAGA_WARRIOR:
- case MONS_NAGA_MAGE:
- return 34;
-
- case MONS_YELLOW_SNAKE:
- case MONS_GREY_SNAKE:
- return 32;
-
- case MONS_GREATER_NAGA:
- case MONS_GUARDIAN_NAGA:
- case MONS_SMALL_SNAKE:
- return 15;
-
- default:
- return 0;
- }
-} // end mons_pitsnake_rare()
-
-static int mons_hallelf_level(int mcls)
-{
- int mlev = you.branch_stairs[STAIRS_ELVEN_HALLS] + 1;
-
- switch (mcls)
- {
- case MONS_DEEP_ELF_SOLDIER:
- case MONS_DEEP_ELF_FIGHTER:
- case MONS_ORC:
- case MONS_ORC_WARRIOR:
- mlev++;
- break;
-
- case MONS_ORC_WIZARD:
- case MONS_DEEP_ELF_MAGE:
- case MONS_DEEP_ELF_SUMMONER:
- mlev += 2;
- break;
-
- case MONS_FUNGUS:
- case MONS_DEEP_ELF_CONJURER:
- case MONS_SHAPESHIFTER:
- case MONS_ORC_KNIGHT:
- mlev += 3;
- break;
-
- case MONS_ORC_SORCERER:
- case MONS_DEEP_ELF_PRIEST:
- case MONS_GLOWING_SHAPESHIFTER:
- case MONS_DEEP_ELF_KNIGHT:
- mlev += 4;
- break;
-
- case MONS_ORC_PRIEST:
- case MONS_ORC_HIGH_PRIEST:
- mlev += 5;
- break;
-
- case MONS_DEEP_ELF_HIGH_PRIEST:
- case MONS_DEEP_ELF_DEMONOLOGIST:
- case MONS_DEEP_ELF_ANNIHILATOR:
- case MONS_DEEP_ELF_SORCERER:
- case MONS_DEEP_ELF_DEATH_MAGE:
- mlev += 7;
- break;
-
- default:
- mlev += 99;
- break;
- }
-
- return (mlev);
-} // end mons_hallelf_level()
-
-static int mons_hallelf_rare(int mcls)
-{
- switch (mcls)
- {
- case MONS_FUNGUS:
- return 300;
-
- case MONS_DEEP_ELF_SOLDIER:
- case MONS_DEEP_ELF_FIGHTER:
- case MONS_DEEP_ELF_MAGE:
- return 100;
-
- case MONS_DEEP_ELF_KNIGHT:
- return 80;
-
- case MONS_DEEP_ELF_SUMMONER:
- return 72;
-
- case MONS_DEEP_ELF_CONJURER:
- return 63;
-
- case MONS_DEEP_ELF_PRIEST:
- return 44;
-
- case MONS_SHAPESHIFTER:
- return 25;
-
- case MONS_ORC:
- return 20;
-
- case MONS_DEEP_ELF_DEMONOLOGIST:
- case MONS_DEEP_ELF_SORCERER:
- return 17;
-
- case MONS_DEEP_ELF_ANNIHILATOR:
- case MONS_DEEP_ELF_DEATH_MAGE:
- case MONS_ORC_WIZARD:
- return 13;
-
- case MONS_ORC_WARRIOR:
- return 11;
-
- case MONS_DEEP_ELF_HIGH_PRIEST:
- case MONS_ORC_SORCERER:
- case MONS_GLOWING_SHAPESHIFTER:
- return 10;
-
- case MONS_ORC_KNIGHT:
- case MONS_ORC_PRIEST:
- case MONS_ORC_HIGH_PRIEST:
- return 5;
-
- default:
- return 0;
- }
-} // end mons_hallelf_rare()
-
-static int mons_tomb_level(int mcls)
-{
- int mlev = you.branch_stairs[STAIRS_CRYPT] + 1;
-
- switch (mcls)
- {
- case MONS_ZOMBIE_SMALL:
- mlev += 0;
- break;
-
- case MONS_MUMMY:
- case MONS_ZOMBIE_LARGE:
- case MONS_SKELETON_SMALL:
- case MONS_SKELETON_LARGE:
- mlev++;
- break;
-
- case MONS_GUARDIAN_MUMMY:
- case MONS_FLYING_SKULL:
- case MONS_SIMULACRUM_SMALL:
- case MONS_SIMULACRUM_LARGE:
- mlev += 2;
- break;
-
- case MONS_LICH:
- case MONS_ANCIENT_LICH:
- case MONS_MUMMY_PRIEST:
- mlev += 3;
- break;
-
- default:
- mlev += 99;
- }
-
- return (mlev);
-} // end mons_tomb_level()
-
-static int mons_tomb_rare(int mcls)
-{
- switch (mcls)
- {
- case MONS_MUMMY:
- return 300;
-
- case MONS_GUARDIAN_MUMMY:
- return 202;
-
- case MONS_MUMMY_PRIEST:
- return 40;
-
- case MONS_FLYING_SKULL:
- return 33;
-
- case MONS_ZOMBIE_LARGE:
- case MONS_SKELETON_SMALL:
- case MONS_SKELETON_LARGE:
- return 21;
-
- case MONS_ZOMBIE_SMALL:
- return 20;
-
- case MONS_SIMULACRUM_SMALL:
- case MONS_SIMULACRUM_LARGE:
- return 10;
-
- case MONS_LICH:
- return 4;
-
- case MONS_ANCIENT_LICH:
- return 2;
-
- default:
- return 0;
- }
-} // end mons_tomb_rare()
-
-static int mons_swamp_level(int mcls)
-{
- int mlev = you.branch_stairs[STAIRS_SWAMP] + 1;
-
- switch (mcls)
- {
- case MONS_GIANT_BAT:
- case MONS_GIANT_BLOWFLY:
- case MONS_GIANT_FROG:
- case MONS_GIANT_AMOEBA:
- case MONS_GIANT_SLUG:
- case MONS_GIANT_NEWT:
- case MONS_GIANT_GECKO:
- case MONS_RAT:
- case MONS_SWAMP_DRAKE:
- case MONS_WORM:
- mlev++;
- break;
-
- case MONS_GIANT_BROWN_FROG:
- case MONS_FUNGUS:
- case MONS_NECROPHAGE:
- case MONS_PLANT:
- case MONS_SNAKE:
- case MONS_BUTTERFLY:
- case MONS_GIANT_LIZARD:
- case MONS_GIANT_MOSQUITO:
- case MONS_GIANT_SNAIL:
- case MONS_HYDRA:
- mlev += 2;
- break;
-
- case MONS_BROWN_SNAKE:
- case MONS_HUNGRY_GHOST:
- case MONS_INSUBSTANTIAL_WISP:
- case MONS_JELLY:
- case MONS_KOMODO_DRAGON:
- case MONS_PHANTOM:
- case MONS_RED_WASP:
- case MONS_SPINY_FROG:
- case MONS_SWAMP_DRAGON:
- case MONS_UGLY_THING:
- mlev += 3;
- break;
-
- case MONS_BLINK_FROG:
- case MONS_SLIME_CREATURE:
- case MONS_VERY_UGLY_THING:
- case MONS_VAPOUR:
- case MONS_TENTACLED_MONSTROSITY:
- mlev += 4;
- break;
-
- default:
- mlev += 99;
- }
-
- return (mlev);
-} // end mons_swamp_level()
-
-static int mons_swamp_rare(int mcls)
-{
- switch (mcls)
- {
- case MONS_GIANT_MOSQUITO:
- return 250;
-
- case MONS_PLANT:
- return 200;
-
- case MONS_GIANT_FROG:
- return 150;
-
- case MONS_GIANT_BLOWFLY:
- return 100;
-
- case MONS_GIANT_BAT:
- case MONS_FUNGUS:
- return 99;
-
- case MONS_GIANT_BROWN_FROG:
- return 90;
-
- case MONS_SWAMP_DRAKE:
- return 80;
-
- case MONS_HYDRA:
- return 70;
-
- case MONS_RAT:
- return 61;
-
- case MONS_SLIME_CREATURE:
- return 54;
-
- case MONS_SNAKE:
- return 52;
-
- case MONS_INSUBSTANTIAL_WISP:
- return 43;
-
- case MONS_BROWN_SNAKE:
- return 33;
-
- case MONS_RED_WASP:
- case MONS_SWAMP_DRAGON:
- case MONS_SPINY_FROG:
- return 30;
-
- case MONS_JELLY:
- case MONS_BUTTERFLY:
- case MONS_GIANT_LIZARD:
- return 25;
-
- case MONS_WORM:
- return 20;
-
- case MONS_KOMODO_DRAGON:
- case MONS_VERY_UGLY_THING:
- case MONS_VAPOUR:
- return 15;
-
- case MONS_PHANTOM:
- case MONS_UGLY_THING:
- case MONS_HUNGRY_GHOST:
- return 13;
-
- case MONS_NECROPHAGE:
- return 12;
-
- case MONS_BLINK_FROG:
- case MONS_GIANT_AMOEBA:
- case MONS_GIANT_GECKO:
- case MONS_GIANT_NEWT:
- case MONS_GIANT_SLUG:
- case MONS_GIANT_SNAIL:
- return 10;
-
- case MONS_TENTACLED_MONSTROSITY:
- return 5;
-
- default:
- return 0;
- }
-} // end mons_swamp_rare()
-
-static int mons_hallblade_level(int mcls)
-{
- if (mcls == MONS_DANCING_WEAPON)
- return (you.branch_stairs[STAIRS_HALL_OF_BLADES] + 1);
- else
- return 0;
-} // end mons_hallblade_level
-
-static int mons_hallblade_rare(int mcls)
-{
- return ((mcls == MONS_DANCING_WEAPON) ? 1000 : 0);
-} // end mons_hallblade_rare()
-
-// New branch must be added in:
-// - new_game stair location
-// - down/up stairs (to and back) misc.cc
-// - new_level (2 places) (misc.cc)
-// - item_check items.cc
-// - look_around (direct.cc)
-// - ouch ouch.cc (death message)
-// - and here...
-
-static int mons_hallzot_level(int mcls)
-{
- int mlev = you.branch_stairs[STAIRS_HALL_OF_ZOT];
-
- switch (mcls)
- {
- case MONS_GOLDEN_DRAGON:
- case MONS_GUARDIAN_MUMMY:
- mlev += 6;
- break;
- case MONS_KILLER_KLOWN:
- case MONS_SHADOW_DRAGON:
- case MONS_SKELETAL_DRAGON:
- case MONS_STORM_DRAGON:
- mlev += 5;
- break;
- case MONS_DEATH_COB:
- case MONS_DRAGON:
- case MONS_ICE_DRAGON:
- mlev += 4;
- break;
- case MONS_DEEP_ELF_ANNIHILATOR:
- case MONS_DEEP_ELF_DEATH_MAGE:
- case MONS_DEEP_ELF_DEMONOLOGIST:
- case MONS_DEEP_ELF_HIGH_PRIEST:
- case MONS_DEEP_ELF_SORCERER:
- case MONS_TENTACLED_MONSTROSITY:
- mlev += 3;
- break;
- case MONS_MOTH_OF_WRATH:
- mlev += 2;
- break;
- case MONS_ORB_OF_FIRE:
- case MONS_ELECTRIC_GOLEM:
- mlev += 1;
- break;
- default:
- mlev += 99; // I think this won't be a problem {dlb}
- break;
- }
-
- return (mlev);
-} // end mons_hallzot_level()
-
-static int mons_hallzot_rare(int mcls)
-{
- switch (mcls)
- {
- case MONS_MOTH_OF_WRATH:
- return 88;
- case MONS_STORM_DRAGON:
- case MONS_TENTACLED_MONSTROSITY:
- return 50;
- case MONS_GOLDEN_DRAGON:
- return 42;
- case MONS_DEATH_COB:
- case MONS_DRAGON:
- case MONS_ICE_DRAGON:
- case MONS_SKELETAL_DRAGON:
- return 40;
- case MONS_SHADOW_DRAGON:
- case MONS_DEATH_DRAKE:
- return 30;
- case MONS_DEEP_ELF_ANNIHILATOR:
- case MONS_DEEP_ELF_DEATH_MAGE:
- case MONS_DEEP_ELF_DEMONOLOGIST:
- case MONS_DEEP_ELF_HIGH_PRIEST:
- case MONS_DEEP_ELF_SORCERER:
- return 29;
- case MONS_GUARDIAN_MUMMY:
- case MONS_ELECTRIC_GOLEM:
- return 20;
- case MONS_KILLER_KLOWN:
- case MONS_ORB_OF_FIRE:
- return 15;
- default:
- return 0;
- }
-} // end mons_hallzot_rare()
-
-static int mons_caverns_level( int mcls )
-{
-
- int mlev = you.branch_stairs[STAIRS_CAVERNS] + 1;
-
- switch (mcls)
- {
- case MONS_YELLOW_DRACONIAN:
- case MONS_BLACK_DRACONIAN:
- case MONS_WHITE_DRACONIAN:
- case MONS_RED_DRACONIAN:
- case MONS_PURPLE_DRACONIAN:
- case MONS_PALE_DRACONIAN:
- case MONS_GREEN_DRACONIAN:
- case MONS_MOTTLED_DRACONIAN:
- mlev++;
- break;
-
- case MONS_DRACONIAN_CALLER:
- case MONS_DRACONIAN_MONK:
- case MONS_DRACONIAN_SCORCHER:
- case MONS_DRACONIAN_KNIGHT:
- case MONS_DRACONIAN_ANNIHILATOR:
- case MONS_DRACONIAN_ZEALOT:
- case MONS_DRACONIAN_SHIFTER:
- mlev += 3;
- break;
-
- default:
- mlev += 99;
- break;
- }
-
- return (mlev);
-}
-
-static int mons_caverns_rare( int mcls )
-{
- switch (mcls)
- {
- case MONS_YELLOW_DRACONIAN:
- case MONS_BLACK_DRACONIAN:
- case MONS_WHITE_DRACONIAN:
- case MONS_RED_DRACONIAN:
- case MONS_PURPLE_DRACONIAN:
- case MONS_PALE_DRACONIAN:
- case MONS_GREEN_DRACONIAN:
- case MONS_MOTTLED_DRACONIAN:
- case MONS_DRACONIAN_CALLER:
- case MONS_DRACONIAN_MONK:
- case MONS_DRACONIAN_SCORCHER:
- case MONS_DRACONIAN_KNIGHT:
- case MONS_DRACONIAN_ANNIHILATOR:
- case MONS_DRACONIAN_ZEALOT:
- case MONS_DRACONIAN_SHIFTER:
- return (500);
-
- default:
- return (0);
- }
-}
-
-static int mons_standard_level(int mcls)
-{
- switch (mcls)
- {
- case MONS_GOBLIN:
- case MONS_GIANT_NEWT:
- return 1;
-
- case MONS_GIANT_COCKROACH:
- case MONS_OOZE:
- case MONS_SMALL_SNAKE:
- return 2;
-
- case MONS_GIANT_BAT:
- case MONS_KOBOLD:
- case MONS_RAT:
- return 4;
-
- case MONS_GIANT_GECKO:
- case MONS_GIANT_MITE:
- case MONS_GNOLL:
- case MONS_HOBGOBLIN:
- case MONS_JACKAL:
- case MONS_KILLER_BEE_LARVA:
- return 5;
-
- case MONS_WORM:
- case MONS_SNAKE:
- case MONS_QUOKKA:
- return 6;
-
- case MONS_ORC:
- return 7;
-
- case MONS_FUNGUS:
- case MONS_GIANT_ANT:
- case MONS_GIANT_EYEBALL:
- case MONS_HOUND:
- case MONS_GIANT_IGUANA:
- case MONS_OGRE:
- case MONS_ORC_WIZARD:
- case MONS_PHANTOM:
- case MONS_SCORPION:
- return 8;
-
- case MONS_BROWN_SNAKE:
- case MONS_CENTAUR:
- case MONS_ICE_BEAST:
- case MONS_IMP:
- case MONS_JELLY:
- case MONS_NECROPHAGE:
- case MONS_QUASIT:
- case MONS_ZOMBIE_SMALL:
- return 9;
-
- case MONS_DEEP_ELF_SOLDIER:
- case MONS_GIANT_BEETLE:
- case MONS_GIANT_FROG:
- case MONS_GIANT_SPORE:
- case MONS_MUMMY:
- case MONS_ORC_WARRIOR:
- case MONS_STEAM_DRAGON:
- case MONS_WIGHT:
- return 10;
-
- case MONS_GIANT_LIZARD:
- case MONS_HIPPOGRIFF:
- case MONS_HUNGRY_GHOST:
- case MONS_KILLER_BEE:
- case MONS_SHADOW:
- case MONS_YELLOW_WASP:
- return 11;
-
- case MONS_EYE_OF_DRAINING:
- case MONS_GILA_MONSTER:
- case MONS_MANTICORE:
- case MONS_PLANT:
- case MONS_UNSEEN_HORROR:
- case MONS_WYVERN:
- return 12;
-
- case MONS_BIG_KOBOLD:
- case MONS_GIANT_BROWN_FROG:
- case MONS_GIANT_CENTIPEDE:
- case MONS_OKLOB_PLANT:
- case MONS_TROLL:
- case MONS_TWO_HEADED_OGRE:
- case MONS_WOOD_GOLEM:
- case MONS_YAK:
- return 13;
-
- case MONS_HILL_GIANT:
- case MONS_KOMODO_DRAGON:
- case MONS_SOLDIER_ANT:
- case MONS_WOLF_SPIDER:
- case MONS_WRAITH:
- return 14;
-
- case MONS_ARMOUR_MIMIC:
- case MONS_BRAIN_WORM:
- case MONS_CYCLOPS:
- case MONS_EFREET:
- case MONS_ETTIN:
- case MONS_EYE_OF_DEVASTATION:
- case MONS_GOLD_MIMIC:
- case MONS_HYDRA:
- case MONS_MOTTLED_DRAGON:
- case MONS_ORC_PRIEST:
- case MONS_POTION_MIMIC:
- case MONS_SCROLL_MIMIC:
- case MONS_SKELETAL_WARRIOR:
- case MONS_WEAPON_MIMIC:
- return 15;
-
- case MONS_BLINK_FROG:
- case MONS_BUTTERFLY:
- case MONS_GIANT_BLOWFLY:
- case MONS_GUARDIAN_NAGA:
- case MONS_RAKSHASA:
- case MONS_SLIME_CREATURE:
- case MONS_STONE_GOLEM:
- case MONS_VAMPIRE:
- case MONS_WANDERING_MUSHROOM:
- case MONS_ZOMBIE_LARGE:
- return 16;
-
- case MONS_BOGGART:
- case MONS_CENTAUR_WARRIOR:
- case MONS_CLAY_GOLEM:
- case MONS_GRIFFON:
- case MONS_SHAPESHIFTER:
- case MONS_UGLY_THING:
- case MONS_WIZARD:
- case MONS_SIMULACRUM_SMALL:
- case MONS_SIMULACRUM_LARGE:
- return 17;
-
- case MONS_DRAGON:
- case MONS_GARGOYLE:
- case MONS_GIANT_AMOEBA:
- case MONS_KOBOLD_DEMONOLOGIST:
- case MONS_YELLOW_DRACONIAN:
- case MONS_BLACK_DRACONIAN:
- case MONS_WHITE_DRACONIAN:
- case MONS_RED_DRACONIAN:
- case MONS_PURPLE_DRACONIAN:
- case MONS_PALE_DRACONIAN:
- case MONS_GREEN_DRACONIAN:
- case MONS_MOTTLED_DRACONIAN:
- return 18;
-
- case MONS_GIANT_SLUG:
- case MONS_IRON_GOLEM:
- case MONS_OGRE_MAGE:
- case MONS_ROCK_TROLL:
- case MONS_TOENAIL_GOLEM:
- case MONS_YAKTAUR:
- return 19;
-
- case MONS_AIR_ELEMENTAL:
- case MONS_DEEP_ELF_FIGHTER:
- case MONS_DEEP_ELF_KNIGHT:
- case MONS_DEEP_ELF_MAGE:
- case MONS_DEEP_ELF_SUMMONER:
- case MONS_EARTH_ELEMENTAL:
- case MONS_FIRE_ELEMENTAL:
- case MONS_GIANT_ORANGE_BRAIN:
- case MONS_GIANT_SNAIL:
- case MONS_GREAT_ORB_OF_EYES:
- case MONS_ICE_DRAGON:
- case MONS_SKELETON_LARGE:
- case MONS_NAGA_MAGE:
- case MONS_NAGA_WARRIOR:
- case MONS_NECROMANCER:
- case MONS_ORC_KNIGHT:
- case MONS_QUEEN_BEE:
- case MONS_RED_WASP:
- case MONS_SHADOW_WRAITH:
- case MONS_SKELETON_SMALL:
- case MONS_SPINY_WORM:
- case MONS_VERY_UGLY_THING:
- return 20;
-
- case MONS_BOULDER_BEETLE:
- case MONS_ORC_HIGH_PRIEST:
- case MONS_PULSATING_LUMP:
- return 21;
-
- case MONS_BORING_BEETLE:
- case MONS_CRYSTAL_GOLEM:
- case MONS_FLAYED_GHOST:
- case MONS_FREEZING_WRAITH:
- case MONS_REDBACK:
- case MONS_SPHINX:
- case MONS_VAPOUR:
- case MONS_DRACONIAN_CALLER:
- case MONS_DRACONIAN_MONK:
- case MONS_DRACONIAN_SCORCHER:
- case MONS_DRACONIAN_KNIGHT:
- case MONS_DRACONIAN_ANNIHILATOR:
- case MONS_DRACONIAN_ZEALOT:
- case MONS_DRACONIAN_SHIFTER:
- return 22;
-
- case MONS_ORC_SORCERER:
- case MONS_SHINING_EYE:
- return 23;
-
- case MONS_BUMBLEBEE:
- case MONS_ORC_WARLORD:
- case MONS_IRON_TROLL:
- case MONS_YAKTAUR_CAPTAIN:
- return 24;
-
- case MONS_DANCING_WEAPON:
- case MONS_DEEP_TROLL:
- case MONS_FIRE_GIANT:
- case MONS_FROST_GIANT:
- case MONS_HELL_KNIGHT:
- case MONS_INSUBSTANTIAL_WISP:
- case MONS_LICH:
- case MONS_STONE_GIANT:
- return 25;
-
- case MONS_DEEP_ELF_CONJURER:
- case MONS_SPECTRAL_WARRIOR:
- case MONS_STORM_DRAGON:
- return 26;
-
- case MONS_DEEP_ELF_PRIEST:
- case MONS_GLOWING_SHAPESHIFTER:
- case MONS_TENTACLED_MONSTROSITY:
- return 27;
-
- case MONS_ANCIENT_LICH:
- case MONS_DEEP_ELF_ANNIHILATOR:
- case MONS_DEEP_ELF_DEATH_MAGE:
- case MONS_DEEP_ELF_DEMONOLOGIST:
- case MONS_DEEP_ELF_HIGH_PRIEST:
- case MONS_DEEP_ELF_SORCERER:
- case MONS_GOLDEN_DRAGON:
- case MONS_IRON_DRAGON:
- case MONS_QUICKSILVER_DRAGON:
- case MONS_SHADOW_DRAGON:
- case MONS_SKELETAL_DRAGON:
- case MONS_TITAN:
- return 30;
-
- case MONS_BIG_FISH:
- case MONS_ELECTRICAL_EEL:
- case MONS_GIANT_GOLDFISH:
- case MONS_JELLYFISH:
- case MONS_LAVA_FISH:
- case MONS_LAVA_SNAKE:
- case MONS_LAVA_WORM:
- case MONS_SWAMP_WORM:
- case MONS_WATER_ELEMENTAL:
- return 500;
-
- default:
- return 99;
- }
-} // end mons_standard_level()
-
-static int mons_standard_rare(int mcls)
-{
- switch (mcls)
- {
-// "another lava thing" has no stats! (GDL)
-// case MONS_ANOTHER_LAVA_THING:
- case MONS_BIG_FISH:
- case MONS_ELECTRICAL_EEL:
- case MONS_GIANT_GOLDFISH:
- case MONS_JELLYFISH:
- case MONS_LAVA_FISH:
- case MONS_LAVA_SNAKE:
- case MONS_LAVA_WORM:
- case MONS_SWAMP_WORM:
- case MONS_WATER_ELEMENTAL:
- case MONS_SALAMANDER:
- return 500;
-
- case MONS_GIANT_BAT:
- case MONS_GIANT_FROG:
- case MONS_GOBLIN:
- case MONS_HILL_GIANT:
- case MONS_HOBGOBLIN:
- case MONS_IMP:
- case MONS_KOBOLD:
- case MONS_SKELETON_LARGE:
- case MONS_ORC:
- case MONS_RAT:
- case MONS_RED_DEVIL:
- case MONS_SKELETON_SMALL:
- case MONS_UGLY_THING:
- case MONS_ZOMBIE_LARGE:
- case MONS_ZOMBIE_SMALL:
- return 99;
-
- case MONS_CENTAUR_WARRIOR:
- case MONS_GIANT_ANT:
- case MONS_SNAKE:
- return 80;
-
- case MONS_FLYING_SKULL:
- case MONS_SLIME_CREATURE:
- return 75;
-
- case MONS_HELL_HOUND:
- return 71;
-
- case MONS_CENTAUR:
- case MONS_CYCLOPS:
- case MONS_GIANT_BROWN_FROG:
- case MONS_HELLION:
- case MONS_HOUND:
- case MONS_OGRE:
- case MONS_ORC_WARRIOR:
- case MONS_TROLL:
- case MONS_YAK:
- case MONS_YAKTAUR_CAPTAIN:
- return 70;
-
- case MONS_JELLY:
- case MONS_ORC_KNIGHT:
- case MONS_ROTTING_DEVIL:
- return 60;
-
- case MONS_SHAPESHIFTER:
- return 59;
-
- case MONS_STONE_GIANT:
- return 53;
-
- case MONS_BIG_KOBOLD:
- case MONS_GIANT_BEETLE:
- case MONS_GIANT_BLOWFLY:
- case MONS_GIANT_COCKROACH:
- case MONS_GIANT_GECKO:
- case MONS_GIANT_IGUANA:
- case MONS_GIANT_NEWT:
- case MONS_HIPPOGRIFF:
- case MONS_HYDRA:
- case MONS_ICE_BEAST:
- case MONS_KILLER_BEE:
- case MONS_ORC_WIZARD:
- case MONS_QUOKKA:
- case MONS_SCORPION:
- case MONS_TORMENTOR:
- case MONS_UNSEEN_HORROR:
- case MONS_WORM:
- return 50;
-
- case MONS_ROCK_TROLL:
- return 48;
-
- case MONS_MANTICORE:
- case MONS_OGRE_MAGE:
- return 45;
-
- case MONS_HUNGRY_GHOST:
- case MONS_SHADOW:
- return 41;
-
- case MONS_GIANT_CENTIPEDE:
- case MONS_GIANT_EYEBALL:
- case MONS_GIANT_SPORE:
- case MONS_GRIFFON:
- case MONS_HAIRY_DEVIL:
- case MONS_JACKAL:
- case MONS_MOTTLED_DRAGON:
- case MONS_PHANTOM:
- case MONS_REAPER:
- case MONS_TWO_HEADED_OGRE:
- case MONS_WIGHT:
- case MONS_WRAITH:
- case MONS_WYVERN:
- case MONS_YAKTAUR:
- return 40;
-
- case MONS_WOLF_SPIDER:
- return 36;
-
- case MONS_FREEZING_WRAITH:
- case MONS_GIANT_AMOEBA:
- case MONS_GILA_MONSTER:
- case MONS_GLOWING_SHAPESHIFTER:
- case MONS_SOLDIER_ANT:
- return 35;
-
- case MONS_BOULDER_BEETLE:
- return 34;
-
- case MONS_EYE_OF_DRAINING:
- return 33;
-
- case MONS_GIANT_SLUG:
- return 32;
-
- case MONS_ARMOUR_MIMIC:
- case MONS_BROWN_SNAKE:
- case MONS_DRAGON:
- case MONS_ETTIN:
- case MONS_FIRE_VORTEX:
- case MONS_GIANT_LIZARD:
- case MONS_GIANT_MITE:
- case MONS_GNOLL:
- case MONS_GOLD_MIMIC:
- case MONS_KOMODO_DRAGON:
- case MONS_MUMMY:
- case MONS_NECROPHAGE:
- case MONS_POTION_MIMIC:
- case MONS_SCROLL_MIMIC:
- case MONS_SKELETAL_WARRIOR:
- case MONS_SMALL_SNAKE:
- case MONS_SOUL_EATER:
- case MONS_SPINY_WORM:
- case MONS_VAMPIRE:
- case MONS_WEAPON_MIMIC:
- case MONS_YELLOW_WASP:
- return 30;
-
- case MONS_FLAYED_GHOST:
- return 29;
-
- case MONS_BRAIN_WORM:
- return 26;
-
- case MONS_BOGGART:
- case MONS_DEEP_ELF_FIGHTER:
- case MONS_DEEP_ELF_KNIGHT:
- case MONS_DEEP_TROLL:
- case MONS_FIRE_GIANT:
- case MONS_FROST_GIANT:
- case MONS_GREAT_ORB_OF_EYES:
- case MONS_IRON_TROLL:
- case MONS_OOZE:
- case MONS_ORC_PRIEST:
- case MONS_PLANT:
- case MONS_RED_WASP:
- case MONS_SIMULACRUM_SMALL:
- case MONS_SIMULACRUM_LARGE:
- case MONS_YELLOW_DRACONIAN:
- case MONS_BLACK_DRACONIAN:
- case MONS_WHITE_DRACONIAN:
- case MONS_RED_DRACONIAN:
- case MONS_PURPLE_DRACONIAN:
- case MONS_PALE_DRACONIAN:
- case MONS_GREEN_DRACONIAN:
- return 25;
-
- case MONS_BUTTERFLY:
- case MONS_FUNGUS:
- case MONS_GIANT_SNAIL:
- case MONS_ICE_DRAGON:
- case MONS_INSUBSTANTIAL_WISP:
- case MONS_RAKSHASA:
- case MONS_REDBACK:
- case MONS_SHADOW_DRAGON:
- case MONS_SPECTRAL_WARRIOR:
- case MONS_SPHINX:
- case MONS_STEAM_DRAGON:
- case MONS_STORM_DRAGON:
- case MONS_VERY_UGLY_THING:
- case MONS_WIZARD:
- case MONS_DRACONIAN_CALLER:
- case MONS_DRACONIAN_MONK:
- case MONS_DRACONIAN_SCORCHER:
- case MONS_DRACONIAN_KNIGHT:
- case MONS_DRACONIAN_ANNIHILATOR:
- case MONS_DRACONIAN_ZEALOT:
- case MONS_DRACONIAN_SHIFTER:
- case MONS_MOTTLED_DRACONIAN:
- return 20;
-
- case MONS_BORING_BEETLE:
- case MONS_LICH:
- case MONS_TENTACLED_MONSTROSITY:
- return 17;
-
- case MONS_BLINK_FROG:
- case MONS_CLAY_GOLEM:
- case MONS_EFREET:
- case MONS_EYE_OF_DEVASTATION:
- case MONS_NECROMANCER:
- case MONS_WOOD_GOLEM:
- return 15;
-
- case MONS_KOBOLD_DEMONOLOGIST:
- return 13;
-
- case MONS_BUMBLEBEE:
- case MONS_ORC_HIGH_PRIEST:
- return 12;
-
- case MONS_DEEP_ELF_SOLDIER:
- case MONS_GIANT_ORANGE_BRAIN:
- case MONS_HELL_KNIGHT:
- case MONS_IRON_GOLEM:
- case MONS_OKLOB_PLANT:
- case MONS_ORC_SORCERER:
- case MONS_SHADOW_WRAITH:
- case MONS_STONE_GOLEM:
- case MONS_TITAN:
- case MONS_WANDERING_MUSHROOM:
- return 10;
-
- case MONS_GOLDEN_DRAGON:
- case MONS_ORC_WARLORD:
- return 7;
-
- case MONS_GARGOYLE:
- return 6;
-
- case MONS_CRYSTAL_GOLEM:
- case MONS_DANCING_WEAPON:
- case MONS_DEEP_ELF_HIGH_PRIEST:
- case MONS_DEEP_ELF_MAGE:
- case MONS_DEEP_ELF_SUMMONER:
- case MONS_IRON_DRAGON:
- case MONS_NAGA_MAGE:
- case MONS_NAGA_WARRIOR:
- case MONS_SKELETAL_DRAGON:
- case MONS_QUICKSILVER_DRAGON:
- case MONS_VAPOUR:
- return 5;
-
- case MONS_AIR_ELEMENTAL:
- case MONS_DEEP_ELF_CONJURER:
- case MONS_EARTH_ELEMENTAL:
- case MONS_FIRE_ELEMENTAL:
- return 4;
-
- case MONS_ANCIENT_LICH:
- case MONS_DEEP_ELF_ANNIHILATOR:
- case MONS_DEEP_ELF_DEATH_MAGE:
- case MONS_DEEP_ELF_DEMONOLOGIST:
- case MONS_DEEP_ELF_PRIEST:
- case MONS_DEEP_ELF_SORCERER:
- case MONS_GUARDIAN_NAGA:
- return 3;
-
- case MONS_PULSATING_LUMP:
- case MONS_SHINING_EYE:
- case MONS_TOENAIL_GOLEM:
- return 2;
-
- default:
- return 0;
- }
-} // end mons_standard_rare()