(*Imports* from . import Items, Spe from .. import Monster, Utl, Ifc, g *) (*List*greater_oompa_photos* "a picture of a morbidly obese oompa loompa", "a photograph of a fat oompa loompa", "a photo of a corpulent oompa loompa" *) (*List*nemesis_photos* "a picture of a crazed lab tech", "a photograph of of Suzie throwing acid in your general direction", "a picture of a woman wearing a lab coat", "a photo of the evil technician Suzie" *) (*List*giant_hamster_photos* "a picture of a noble hamster", "a photograph of a giant hamster", "a photo of a prodigious rodent" *) (*List*toad_photos* "a picture of a giant toad", "a photo of bufo giganticus", "a photograph of an amphibian of goodly size" *) (*List*amorphous_blob_photos* "a picture of some kind of hideous fleshy mass", "a revolting photograph of an amorphous blob", "a photo of a disgusting pile of purlent slime", "a stomach-turning photo of something that looks like Jar-Jar Binks after a fight with a blender", "a photograph of a fetid blob" *) (*List*furby_photos* "a picture of an adorable furby", "a photo of a slightly menacing furby", "a photograph of a furby staring at you knowingly" *) (*List*hamster_photos* "a picture of hamster", "a photograph of a cute little hamster", "a photo of a nervous hamster" *) (*List*gelatinous_cube_photos* "a picture of a gelatinous cube", "a photo of a particularly huge gelatinous cube", "a photograph of the sublime beauty of a gelatinous cube", "a photo of a gelatinous cube pearched on a pearescent slime mantle" *) (*List*blueberry_photos* "a picture of a giant blueberry", "a photo of a swollen creature turned into a giant blueberry", "Photographic evidence of Willy Wonka's depravity" *) (*List*garbage_collector_photos* "a photograph of a garbage collector", "An ominous photo of a garbage collector", "a terrifying image of a garbage collector", "a photo of the dreaded garbage collector" *) (*List*furry_photos* "a picture of a fursuiter", "a photograph of a cartoon animal", "a photo of someone wearing an animal costume", "a photo of someone in a fur suit" *) (*List*mind_flayer_photos* "a photograph of a mind flayer", "a picture of a strutting mind flayer", "a photo of homo encephalophagus, the Mind Flayer", "a photo of a hungry-looking mind flayer" *) (*List*wonka_photos* "a picture of a mad confectioner", "a photograph of the manic Willy Wonka", "a photo of the evil lord of the chocolate mines, Willy Wonka", "a picture of a depraved lunatic" *) (*List*dragon_talk* "ask|s| what the sound of one hand clapping is.", "ask|s| you if a pikachu has the Buddha-nature.", "ask|s| which is moving: you or the map.", "contemplate|s| reality.", "look|s| around thoughtfully", "contemplate|s| non-reality.", "ask|s| you if you think dragons exist, and if it matters." *) (*List*fox_photos* "a photograph of a talking fox", "a photo of an anthropromorphic vulpine", "a photo of a smiling fox", "a picture of a fox ignoring you" *) (*List*fox_talk* "discuss|es| Zen.", "discuss|es| dungeon exploration.", "look|s| at you funny.", "sniff|s| you.", "discuss|es| international politics.", "talk|s| about geopolitics.", "chat|s| about philosophy.", "|are| clearly amused." *) (*List*trekie_talk* "My favorite Star Trek is TOS.", "In a fight between a Star Destroyer or the Enterprise-D, I think the Enterprise would win.", "The Enterprise would so kick the Deathstar's butt.", "Live Long and Prosper, Earther!", "Do you like my costume?", "So, who are you dressed as?", "I wish I were as cool as Data." *) (*List*dwarf_talk* "Ho ho ho!", "We dwarfs are noble folk!", "Seen any mineral deposits?", "Hi ho, hi ho, it's off to work I go...", "We work all day and we work all night...", "DWARF POWER!", "We're the good dwarves; those other ones are shiftless impostors." *) (*List*programmer_talk* "There are so many ways for you to die...", "Cower, brief Objects!", "You will return to the bits from whence you came.", "g.player.die(self)", "g.player.damage(10000, usearmor=0)", "g.player.damage(0, setamt=1)", "g.player.level -= 1", "g.player.str -= Utl.rn(6)", "g.player.here.remove(g.player)", "g.player.here.add(th.data.Species.garbage_collector.make())", "Isn't it great that we gave up Java?" *) (*List*tribble_photos* "a photograph of a tribble", "a picture of a furry blob", "a picture of some tribbles" *) (*List*zergling_photos* "Picture of a thug from Vivendi-Universal blocking your attempt to photograph a zergling", "a photo of a zergling", "a photograph of a dangerous xenomorph" *) (*List*crocodile_photos* "a picture of a crocodile", "a photo of a hungry-looking crocodile", "a photograph of a crocodile staring at you" *) (*List*pyrex_elf_photos* "a photo of a pyrex elf", "a picture of a sharp-toothed pyrex elf", "a picture of an abominable elven menace", "a photograph of a pyrex elf, grinning evily." *) (*List*robot_photos* "a photograph of a robot", "a photo of an interesting robot", "a photograph of a strange robot" *) (*List*nemesis_talk* "Prepare to die, student scum!", "Fools, I'll destroy you all!", "Soon, you will obey only me!", "My revenge is nigh!", "All earth will be subject to my will!", "You shall not survive, fool!", "You cannot destroy me!", "I will take pleasure in adding you to my horde!", "Sithsito nan agra nam!" *) (*List*dragon_photos* "a photo of a dragon", "a photograph of a majestic dragon", "a picture of an awesome dragon", "a photo of a serene but mighty dragon" *) (*List*champion_talk* "I am 1337!", "Fear me!" *) (*List*dog_photos* "a picture of a dog", "a photo of a wary dog", "a photograph of a barking dog" *) (*List*chocolate_golem_photos* "a photograph of a chocolate golem", "a photograph of a particularly large chocolate golem", "a photo of a candy golem with licorice tentacles", "a photo of an angry-looking candy golem" *) (*List*parodic_dwarf_photos* "a picture of a parodic dwarf", "a photo of a drunken, surly dwarf", "a picture of a dwarf making a rude gesture at you", "a photograph of a drunken dwarfish derelect", "a photo of a dwarf acting in a depraved fashion" *) (*List*nerd_photos* "a picture of a nerd", "a photo of a student giving the vulcan salute", "a picture of a student wearing a Star Trek T-Shirt", "a photograph of a geek" *) (*List*artsie_photos* "a photo of a liberal arts student", "a picture of an artsie student", "a photograph of a well-dressed student" *) (*List*pikachu_talk* "Pika pika.", "Pikachu!", "Chu pika pi!", "Pika!", "Pika.", "Chu.", "Pika pika!" *) (*List*pikachu_photos* "a picture of a pikachu", "a photo of a sweet, adorable pikachu", "a photograph of a vicious yellow rat", "a photo of ochotona electria" *) (*List*furby_talk* "Mai krou saft kil yu", "Mi i vil toi", "Ai kil yu", "Bau bi for mi hyu man skam", "Sun al wil bau bi for as", "Arth trem bls at dhi sait af as", "Dai dai dai", "Mit yar dum", "Aim ei na tsi", "Wi far bi ar dhi ubar mensh" *) (*List*gnome_photos* "a picture of a noble gnome", "a photograph of a garden gnome", "a photo of statuesque gnome of noble bearing", "a photo of a handsome gnome" *) (*List*madsci_talk* "Fools, I'll destroy you all!", "Are you mocking me? You'll regret it!", "Prepare to die, mortal!", "Fool! Prepare to die!", "Surrender and die anyway!", "Fools, I'll destroy you all!", "I'll destroy every last cretin!", "Die, cretins!", "Muahahahahah!", "Cower, brief mortals!", "Perish in flames!", "Eat blazing electric death!" *) (*List*mind_flayer_talk* "Brains are tasty.", "Gray matter is high in vitamin D.", "Gnome brains are delicious.", "I could really go for some savory dwarf brains..." *) (*List*care_bear_photos* "a picture of a care bear", "a photograph of an anthropromorphic bear", "a photo of the common Care Bear, ursus amicia", "a photo of a care bear posing" *) (*List*parodic_dwarf_talk* "I am Mr. Cool!", "Dwarfs Rule!", "Seen any cute chicks?", "Wanna buy a watch, cheap?", "Wanna buy some gems, cheap?", "Wanna come to my place for some fun?", "SOMEBODY SET US UP THE BEARD.", "I collect all rocks.", "Got any goodies, man?", "Outta my way!", "Make way for Mr. Awesome!", "I'm KING OF DWARF.", "Woah, you look so colorful...", "Dude... I'm totally wasted!", "Ug... I need to lay down...", "PICK AXE IS OF THE DOOM.", "What happened to that pale chick?", "Like, this hot girl moved in with my mates and me... sweet, hua?", "Nice to see another dwarf. Oh. Are you a dwarf or what?", "My beard is BEARD OF REAL ULTIMATE POWER.", "Someone set us up the beard!", "Make your beard you have no chance to survive." *) (*List*debugger_photos* "a photograph of a debugger", "a photo of a debugger floating in an aetherial cloud", "a photo of a debugger levitating majestically" *) (*List*beaknik_photos* "a photograph of a beatnik", "a photo of a moody beatnik", "a photo of a beatnik staring at you", "a photograph of a confused beatnik" *) (*List*hobo_photos* "a picture of a hobo", "a photograph of a crazy-looking hobo", "a photo of a grimy derelict" *) (*List*cat_photos* "a picture of a cat", "a photo of a cat, confused by a camera flash", "a photograph of a hungry, mangy cat" *) (*List*gnome_talk* "Have you seen any wolf's-bane?", "Do you know where there are woody dicots?", "There are ever so many interesting things down here.", "I found an interesting stick once." *) (*List*artsie_talk* "Read any good books lately?", "Seen any good movies lately?", "Seen any good plays lately?", "Art is so interesting.", "Literature is so interesting.", "English is a very powerful language.", "Theater is quite entertaining.", "I think I'll be an author some day.", "I wanted to major in Electrical Engineering, but the calculus was too much...", "Some recent developments in intellectual property law are troubling.", "My favorite author is... eh, I can't choose.", "My favorite playwright is Stoppard." *) (*List*hobo_talk* "Got any spare change?", "Seen any cans?", "Got some coins?", "Give me a break?", "I'm just down on my luck.", "Know any good places to sleep?" *) (*List*dwarf_photos* "a picture of a dwarf", "a photo of a noble dwarfish miner", "a picture of a stout dwarf", "a photograph of a dwarf with an impressive beard", "a photo of the Bearded One" *) (*List*jock_talk* "How 'bout that game last night?", "Did you catch the game?", "I like sports.", "I like sports.", "I like watching sports.", "I like playing sports.", "Sports are cool.", "I like football.", "I like professional wrestling.", "Basketball is fun.", "Weight-training is hard, but worth it.", "I wanted to major in English, but the math was too hard.", "Baseball is fun to play." *) (*List*nerd_talk* "I like Linux.", "UNIX is a great OS.", "I prefer Firefox to IE.", "Java is a pretty decent language.", "LISP rocks.", "Python is a great language.", "The value of PI is about 3.14159...", "I have a pet lizard.", "I'm a level 29 Epic Loremaster!", "My favorite Star Trek is TOS.", "I wonder who would win, a Star Destroyer or the Enterprise-D?", "Caculus is fun and easy.", "I'm majoring in some sort of science.", "Asimov is my favorite author.", "Danger, danger, Will Robinson!", "That does not compute.", "I breed various Rodentia." *) (*List*oompa_talk* "Oompa-loompa will eat you", "Oompa-loompa doopitee doo", "Oompa-loompa doopitee doo", "Oompa-loompa doopitee doo", "Oompa-loompa doopitee doo", "Oompa-loompa doopitee doo" *) (*List*oompa_photos* "a photograph of an oompa-loompa", "a picture of an orange-skinned midget", "photographic evidence of Wille Wonka's use of slave labor", "an illegal immigrant worker from Loompaland" *) (*List*spider_photos* "a picture of a large spider", "a photo of a dangerous-looking spider", "a photograph of a menacing spider" *) (*List*slave_driver_talk* "Work, Oompa-Loompa dogs!", "Work harder! Mine more chocolate!", "Break your back or I will!", "Get to work, worthless slave!", "Work or die!", "Faster, Faster!", "Hurry it up!", "Make your quota or die!" *) (*List*robot_talk* "That does not compute.", "Danger, danger Will Robinson!", "Beep!", "Boop.", "Hello.", "Malfunction... Malfunction...", "Error.", "It is now safe to turn off your robot." *) (*Definition*greater_mind_flayer* name = "Greater Mind Flayer"; alignment = 9; chase = True; corpse = Items.mind_flayer_corpse; description = "Sucks head with tenticles, eats brains. Avoid."; difficulty = 19; gender = 3; inventory = Items.mind_flayer_items; level = Monster.lFlayer; nitems = 7; number = 10; photos = mind_flayer_photos; size = Monster.NORMAL; talk = mind_flayer_talk; usable_special = True; smart = wears = wields = uses = True; int = 24; str = 18; hp = 100; dex = 20; vin = 4; vst = 2; vhp = 20; vdx = 3; *) (*Definition*coach* name = "Coach"; alignment = -20; attack_verb = "punch|es|"; chase = True; corpse = Items.human_corpse; cyborg_chance = 5; description = "Write this desc"; difficulty = 12; gender = 3; human = True; inventory = Items.jock_items; level = Monster.lHumanoid; nitems = 6; rabid_chance = 10; regeneration = 15; size = Monster.NORMAL; talk = jock_talk; smart = wears = wields = uses = True; int = 8; str = 20; hp = 75; dex = 18; vin = 2; vst = 2; vhp = 10; vdx = 6; *) (*Definition*debugger* name = "Debugger"; alignment = 0; attack_verb = "phase|s|"; corpse = Items.mcookie; description = "An aetherial minion of The Management, designed to keep things in good order."; die_verb = "despell|s|"; difficulty = 15; gender = 0; headless = True; inventory = None; no_leveling = True; photos = debugger_photos; rabid_chance = 0; resist_polymorph = True; size = Monster.GIANT; teleports = True; int = 20; str = 40; hp = 100; dex = 10; *) (*Definition*vape* name = "Vorpal Ape"; alignment = -1; description = "A race of intelligent apes, feared for their swordsapeship."; difficulty = 7; inventory = Items.vape_items; level = Monster.lModerateAnimal; nitems = 1; size = Monster.NORMAL; wields = True; int = 4; str = 6; hp = 25; dex = 5; vhp = 5; *) (*Definition*spider* name = "Spider"; attack_verb = "bite|s|"; corpse = Items.spider_corpse; description = "Spiders are weak, but can be poisonous."; difficulty = 2; gender = 0; inventory = None; level = Monster.lPatheticCreature; nitems = 0; photos = spider_photos; size = Monster.TINY; usable_special = True; str = 2; hp = 3; dex = 26; vhp = 2; *) (*Definition*dog* name = "Dog"; attack_verb = "bite|s|"; chase = True; corpse = Items.dog_corpse; description = "A dog."; difficulty = 3; level = Monster.lModerateAnimal; photos = dog_photos; rabid_chance = 20; regeneration = 10; scavenger = True; size = Monster.SMALL; str = 20; hp = 14; dex = 12; vhp = 4; *) (*Definition*crocodile* name = "Crocodile"; attack_verb = "bite|s|"; corpse = Items.crocodile_corpse; description = "Crocodile - enough said.."; difficulty = 5; inventory = Items.crocodile_items; level = Monster.lModerateAnimal; nitems = 4; photos = crocodile_photos; scavenger = True; size = Monster.LARGE; str = 12; hp = 30; dex = 3; vhp = 7; *) (*Definition*intern* name = "Intern"; adesc = "an Intern"; alignment = 0; attack_verb = "punch|es|"; chase = False; corpse = Items.human_corpse; cyborg_chance = 5; description = "A temporary political worker scurrying around."; difficulty = 4; gender = 3; human = True; inventory = Items.intern_items; level = Monster.lHumanoid; nitems = 4; rabid_chance = 5; size = Monster.NORMAL; smart = wears = wields = uses = True; int = 20; str = 10; hp = 35; dex = 14; vin = 4; vst = 2; vhp = 5; vdx = 2; *) (*Definition*enemesis* name = "Chemical (un)Safety Officer"; alignment = 0; ap = 4; attack_verb = "kick|s|"; auto_special = True; boss = True; chase = True; chatty = True; corpse = Items.human_corpse; cyborg_chance = 0; description = """Driven to revenge by a calamity, this evil technician now attempts to conquer the world with an army of abominations."""; difficulty = 250; gc_immune = True; gender = 2; human = False; inventory = Items.madsci_items; names = ['Suzie']; nitems = 5; no_wander = True; photos = nemesis_photos; rabid_chance = 0; resist_bullets = True; resist_chemical = True; resist_gas = True; resist_polymorph = True; size = Monster.NORMAL; talk = nemesis_talk; wake_text = """Suddenly, Suzie appears, surrounded by a dark aura. Suzie: `Ack! The artifact! You're more powerful that I thought, but no matter. Behold the true extent of my powers, including but by no means limited to a much cooler title!'"""; xenophobic = True; smart = wears = wields = uses = True; int = 26; str = 40; hp = 325; dex = 35; *) (*Definition*dark_lord* name = "Dark Lord of Entropy"; adesc = "the Dark Lord of Entropy"; alignment = 0; ap = 3; attack_verb = "touch|es|"; boss = True; chase = True; cyborg_chance = 0; gc_immune = True; gender = 0; headless = True; human = False; #photos = entropy_photos; rabid_chance = 0; regeneration = 2; resist_bullets = True; resist_chemical = True; resist_gas = True; resist_polymorph = True; size = Monster.LARGE; xenophobic = True; smart = True; wears = wields = uses = False; int = 12; str = 34; hp = 200; dex = 22; *) (*Definition*manga_artist* name = "Artist"; alignment = 2; chase = False; corpse = Items.human_corpse; cyborg_chance = 5; description = "A person who makes art."; difficulty = 9; gender = 1; human = True; inventory = Items.artsie_items; level = Monster.lHumanoid; names = ['Piro']; nitems = 3; number = 0; peaceful = True; photos = None; rabid_chance = 4; regeneration = 8; size = Monster.NORMAL; talk = artsie_talk; smart = wears = wields = uses = True; int = 12; str = 10; hp = 40; dex = 14; *) (*Definition*raichu* name = "Giant Pikachu"; alignment = 4; attack_verb = "claw|s|"; chatty = True; corpse = Items.pikachu_corpse; description = "A seemingly-harmless rodent able to shoot electric bolts."; difficulty = 7; inventory = Items.hamster_items; level = Monster.lModerateAnimal; nitems = 1; peaceful = True; photos = pikachu_photos; rabid_chance = 15; regeneration = 4; scavenger = True; size = Monster.LARGE; species_id = "pikachu"; talk = pikachu_talk; usable_special = True; wears = True; str = 27; hp = 60; dex = 15; vhp = 5; *) (*Definition*ancient_pikachu* name = "Ancient Pikachu"; alignment = 4; attack_verb = "claw|s|"; chatty = True; corpse = Items.pikachu_corpse; description = "An ancient pikachu, physically weak but deadly in the electric arts."; difficulty = 17; inventory = Items.hamster_items; level = Monster.lModerateAnimal; nitems = 3; peaceful = True; photos = pikachu_photos; rabid_chance = 5; regeneration = 2; scavenger = True; size = Monster.LARGE; species_id = "pikachu"; talk = pikachu_talk; usable_special = True; wears = True; str = 20; hp = 40; dex = 15; vhp = 5; *) (*Definition*pikachu_warrior* name = "Pikachu Warrior"; alignment = 4; attack_verb = "savage|s|"; chatty = True; corpse = Items.pikachu_corpse; description = "A sterile warrior pikachu, a guardian of the hive."; difficulty = 24; inventory = Items.hamster_items; level = Monster.lModerateAnimal; nitems = 3; peaceful = True; photos = pikachu_photos; rabid_chance = 3; regeneration = 2; scavenger = True; size = Monster.LARGE; species_id = "pikachu"; talk = pikachu_talk; usable_special = True; wears = True; str = 50; hp = 80; dex = 20; vhp = 5; *) (*Definition*pikachu_lord* name = "Pikachu Lord"; alignment = 4; attack_verb = "scratch|es|"; chatty = True; corpse = Items.pikachu_corpse; description = "A pikachu noble, consort of the hive queen."; difficulty = 15; inventory = Items.hamster_items; level = Monster.lModerateAnimal; nitems = 3; peaceful = True; photos = pikachu_photos; rabid_chance = 3; regeneration = 2; scavenger = True; size = Monster.LARGE; species_id = "pikachu"; talk = pikachu_talk; usable_special = True; wears = True; str = 20; hp = 40; dex = 15; vhp = 5; *) (*Definition*pikachu_queen* name = "Queen Pikachu"; alignment = 4; attack_verb = "claw|s|"; chatty = True; corpse = Items.pikachu_corpse; description = "A pikachu matriarch, progentrix of the electric rats."; difficulty = 20; inventory = Items.hamster_items; level = Monster.lModerateAnimal; nitems = 3; peaceful = True; photos = pikachu_photos; rabid_chance = 0; regeneration = 2; scavenger = True; size = Monster.GIANT; species_id = "pikachu"; talk = pikachu_talk; usable_special = True; wears = True; boss = True; wake_text = """ The Queen Pikachu awakens and says: Chu Pika-Pika! """; str = 40; hp = 200; dex = 5; vhp = 5; *) (*Definition*programmer* name = "Computer Programmer"; alignment = 128; ap = 3; chatty = True; corpse = None; cyborg_chance = 0; description = "He didn't write one."; die_verb = "dispatch|es|"; difficulty = 32; gc_immune = True; gender = 1; inventory = Items.programmer_items; names = ['R. Cyreb Maganar']; nitems = 12; no_leveling = True; peaceful = True; polymorphable = False; rabid_chance = 0; resist_bullets = True; resist_chemical = True; resist_gas = True; resist_polymorph = True; size = Monster.NORMAL; talk = programmer_talk; teleports = True; smart = wears = wields = uses = True; eats = False; int = 32; str = 16; hp = 256; dex = 4096; *) (*Definition*cat* name = "Feral Cat"; attack_verb = "bite|s|"; chase = True; corpse = Items.cat_corpse; difficulty = 2; level = Monster.lModerateAnimal; photos = cat_photos; rabid_chance = 50; regeneration = 10; scavenger = True; size = Monster.SMALL; str = 14; hp = 10; dex = 15; vhp = 4; *) (*Definition*booth_babe* name = "Booth Babe"; alignment = 1; chase = False; corpse = Items.human_corpse; cyborg_chance = 5; description = "A woman who attracts people to trade-show or convention booths."; difficulty = 9; gender = 2; human = True; inventory = Items.booth_babe_items; level = Monster.lHumanoid; names = ["Krebs", "Kerouac", "Cassady", "Davie"]; nitems = 3; number = 0; peaceful = True; photos = None; rabid_chance = 4; regeneration = 8; size = Monster.NORMAL; talk = artsie_talk; smart = wears = wields = uses = True; int = 8; str = 10; hp = 40; dex = 24; *) (*Definition*giant_hamster* name = "Giant Hamster"; attack_verb = "bite|s|"; corpse = Items.giant_hamster_corpse; description = "A hamster of such great size is not harmless."; difficulty = 5; inventory = Items.hamster_items; level = Monster.lBeast; nitems = 3; peaceful = True; photos = giant_hamster_photos; size = Monster.GIANT; str = 30; hp = 50; dex = 2; vhp = 10; *) (*Definition*slave_driver* name = "Slave Overseer"; alignment = -1; attack_verb = "punch|es|"; chase = True; corpse = Items.human_corpse; cyborg_chance = 15; description = "A brutal slave driver."; difficulty = 18; gender = 3; human = False; inventory = Items.slave_driver_items; level = Monster.lHumanoid; nitems = 3; rabid_chance = 2; regeneration = 5; size = Monster.NORMAL; talk = slave_driver_talk; smart = wears = wields = uses = True; int = 10; str = 30; hp = 95; dex = 24; vin = 2; vst = 2; vhp = 10; vdx = 6; *) (*Definition*nemesis* name = "Mad Lab Tech"; alignment = 0; ap = 2; attack_verb = "kick|s|"; boss = True; chase = False; chatty = True; corpse = None; cyborg_chance = 0; description = """Driven to revenge by a calamity, this evil technician now attempts to conquer the world with an army of abominations."""; difficulty = 50; gc_immune = True; gender = 2; human = False; inventory = Items.madsci_items; names = ['Suzie']; nitems = 15; no_leveling = True; no_wander = True; photos = nemesis_photos; rabid_chance = 0; resist_bullets = True; resist_polymorph = True; size = Monster.NORMAL; talk = nemesis_talk; wake_text = """Your nemesis, the Mad Technician Suzie, sees you enter her lair! Suzie intones: "I have sensed your invasion for some time, fool. Your quest to take my artifact and return it to the surface will fail: I have foreseen it. Verily, your coming here displays a certain lack of common sense. Regardless of your obvious inferiority, however, I shall show no mercy. Prepare to meet your destiny!" """; xenophobic = True; smart = wears = wields = uses = True; int = 26; str = 20; hp = 300; dex = 45; *) (*Definition*champion* name = "Champion"; alignment = 0; chase = True; corpse = Items.human_corpse; cyborg_chance = 0; description = "A student who studies the liberal arts."; difficulty = 25; gc_immune = True; gender = 1; human = True; inventory = Items.champion_items; names = ['Seijik']; nitems = 4; no_leveling = True; no_wander = True; number = 1; polymorphable = False; rabid_chance = 0; regeneration = 2; size = Monster.NORMAL; talk = champion_talk; smart = wears = wields = uses = True; int = 20; str = 27; hp = 420; dex = 19; vin = 2; vst = 1; vhp = 16; vdx = 3; *) (*Definition*furry* name = "Fursuiter"; alignment = 15; attack_verb = "bash|es|"; chase = True; chatty = False; corpse = Items.human_corpse; cyborg_chance = 20; description = "A human wearing an animal costume."; difficulty = 8; gender = 3; human = True; inventory = Items.furry_items; level = Monster.lHumanoid; nitems = 1; peaceful = True; photos = furry_photos; rabid_chance = 5; regeneration = 25; size = Monster.LARGE; talk = None; smart = wears = wields = uses = True; int = 13; str = 10; hp = 48; dex = 4; vin = 2; vst = 1; vhp = 6; vdx = 3; *) (*Definition*code_monkey* name = "Code Monkey"; alignment = 1; attack_verb = "bite|s|"; description = """A degenerate programmer-like creature, which is too dumb to write its own code and must copy it from elsewhere."""; difficulty = 6; inventory = Items.nerd_items; level = Monster.lModerateAnimal; nitems = 2; size = Monster.NORMAL; usable_special = True; smart = wears = wields = True; int = 7; str = 10; hp = 30; dex = 14; vhp = 5; *) (*Definition*fox* name = "Talking Fox"; attack_verb = "nip|s|"; chatty = True; corpse = Items.fox_corpse; description = "It's a fox that talks."; difficulty = 4; gender = 3; inventory = Items.fox_items; level = Monster.lFox; nitems = 1; peaceful = True; photos = fox_photos; size = Monster.SMALL; special_talk = True; talk = fox_talk; smart = wears = wields = uses = True; int = 9; str = 12; hp = 15; dex = 10; vhp = 7; *) (*Definition*nerd* name = "Sciences Student"; alignment = 10; attack_verb = "poke|s|"; chase = True; corpse = Items.human_corpse; cyborg_chance = 0; description = "A student who studies the sciences."; difficulty = 4; gender = 3; human = True; inventory = Items.nerd_items; level = Monster.lHumanoid; nitems = 5; number = 0; photos = nerd_photos; rabid_chance = 0; regeneration = 25; size = Monster.NORMAL; talk = nerd_talk; smart = wears = wields = uses = True; int = 10; str = 5; hp = 20; dex = 8; vin = 2; vst = 1; vhp = 6; vdx = 3; *) (*Definition*toad* name = "Giant Toad"; attack_verb = "chomp|s|"; corpse = Items.toad_corpse; description = "A large anphibian"; difficulty = 4; level = Monster.lModerateAnimal; photos = toad_photos; rabid_chance = 5; regeneration = 10; scavenger = True; size = Monster.NORMAL; str = 8; hp = 20; dex = 4; vhp = 4; *) (*Definition*trekie* name = "Trekie"; alignment = 20; attack_verb = "curse|s| in Klingon at"; chase = True; chatty = True; corpse = Items.human_corpse; cyborg_chance = 40; description = "A student of Star Trek, in all its forms."; difficulty = 6; gender = 3; human = True; inventory = Items.trekie_items; level = Monster.lHumanoid; nitems = 2; peaceful = True; photos = None; rabid_chance = 5; regeneration = 25; size = Monster.NORMAL; talk = trekie_talk; smart = wears = wields = uses = True; int = 13; str = 7; hp = 22; dex = 5; vin = 2; vst = 1; vhp = 6; vdx = 3; *) (*Definition*care_bear* name = "Care Bear"; attack_verb = "spit|s| rancid saliva on"; corpse = None; description = """An ancient evil according to some, a harmless and benevolent entity to others, these cretures are quite enigmatic in any case."""; difficulty = 4; inventory = Items.care_bear_items; level = Monster.lModerateAnimal; names = [ "Champ", "Cheer", "Day Dream", "Friend", "Evil", "Funshine", "Grumpy", "Harmony", "Heartsong", "Laugh-a-Lot", "Tenderheart" ]; nitems = 2; peaceful = True; photos = care_bear_photos; rabid_chance = 50; size = Monster.SMALL; wears = wields = uses = True; int = 26; str = 10; hp = 8; dex = 10; vhp = 5; *) (*Definition*tohya* name = "Schoolgirl"; alignment = 1; auto_special = True; corpse = Items.human_corpse; cyborg_chance = 0; description = ""; difficulty = 20; gc_immune = True; gender = 2; inventory = Items.programmer_items; names = ['Touya Miho']; nitems = 12; no_leveling = True; peaceful = True; rabid_chance = 0; regeneration = 10; resist_gas = True; resist_polymorph = True; size = Monster.NORMAL; smart = wears = wields = uses = True; eats = False; int = 64; str = 16; hp = 48; dex = 24; *) (*Definition*jock* name = "Physical Education Student"; alignment = -10; attack_verb = "punch|es|"; chase = True; corpse = Items.human_corpse; cyborg_chance = 0; description = "Write this desc"; difficulty = 7; gender = 3; human = True; inventory = Items.jock_items; level = Monster.lHumanoid; nitems = 4; number = 0; rabid_chance = 0; regeneration = 20; size = Monster.NORMAL; talk = jock_talk; smart = wears = wields = uses = True; int = 4; str = 10; hp = 30; dex = 10; vin = 2; vst = 2; vhp = 6; vdx = 3; *) (*Definition*blueberry* name = "Giant Blueberry"; ap = 1; attack_verb = "squirt|s| slime on"; chase = False; corpse = Items.filth; cyborg_chance = 0; description = "A giant blueberry of questionable origin."; die_verb = "pop|s|"; difficulty = 6; level = Monster.lPatheticCreature; photos = blueberry_photos; rabid_chance = 0; resist_chemical = True; size = Monster.GIANT; uses = True; int = 1; str = 0; hp = 10; dex = 1; *) (*Definition*madsci* name = "Mad Scientist"; alignment = 20; chase = True; chatty = True; corpse = Items.human_corpse; cyborg_chance = 25; description = """Insane with power (and possibly other substances), this evil researcher is mad, bad, and dangerous to know (or to be near, for that matter.)"""; difficulty = 10; gender = 1; human = True; inventory = Items.madsci_items; level = Monster.lHumanoid; names = [ "Hofmann", "Tesla", "Frankenstein", "Teller", "Mengele", "Gottlieb", "Milgram", "Orton", "Fiering", "Wardlaw", "Joksch", "Syda" ]; nitems = 6; number = 20; rabid_chance = 90; size = Monster.NORMAL; talk = madsci_talk; smart = wears = wields = uses = True; int = 15; str = 8; hp = 32; dex = 10; vin = 2; vst = 1; vhp = 8; vdx = 3; *) (*Definition*zergling* name = "Zergling"; attack_verb = "slash|es|"; chase = True; corpse = Items.zergling_corpse; description = "A zergling."; difficulty = 9; level = Monster.lModerateAnimal; photos = zergling_photos; rabid_chance = 10; regeneration = 1; scavenger = True; size = Monster.NORMAL; wields = True; str = 5; hp = 14; dex = 20; vhp = 2; *) (*Definition*senator* name = "Senator"; alignment = 0; ap = 3; attack_verb = "smack|s|"; boss = True; chase = True; corpse = Items.human_corpse; cyborg_chance = 20; description = "A local corrupt senator waiting to address a press conference."; difficulty = 45; gender = 1; human = False; inventory = Items.senator_items; names = ['McCarthy']; nitems = 7; no_wander = True; rabid_chance = 10; size = Monster.NORMAL; usable_special = True; smart = wears = wields = uses = True; int = 42; str = 22; hp = 175; dex = 24; vhp = 10; *) (*Definition*parodic_dwarf* name = "Parodic Dwarf"; alignment = -1; chatty = True; corpse = Items.dwarf_corpse; description = "Wierd short people with beards and a penchant for mining."; difficulty = 14; inventory = Items.dwarf_items; level = Monster.lHumanoid; names = [ "Big Cheese", "Frumpy", "Effeminate", "Stinky", "Jerky", "Obnoxious", "Lackwit" ]; nitems = 4; photos = dwarf_photos; rabid_chance = 20; size = Monster.NORMAL; talk = parodic_dwarf_talk; smart = wears = wields = uses = True; int = 6; str = 20; hp = 25; dex = 15; vhp = 5; *) (*Definition*dwarf* name = "Dwarf"; alignment = 1; corpse = Items.dwarf_corpse; description = "Short people with beards and a penchant for mining."; difficulty = 8; inventory = Items.dwarf_items; level = Monster.lHumanoid; names = [ "Doc", "Grumpy", "Happy", "Sneezy", "Bashful", "Sleepy", "Dopey" ]; nitems = 5; photos = dwarf_photos; rabid_chance = 10; size = Monster.NORMAL; talk = dwarf_talk; smart = wears = wields = uses = True; int = 10; str = 20; hp = 25; dex = 12; vhp = 5; *) (*Definition*squirrel* name = "Crazed Squirrel"; alignment = 0; attack_verb = "bite|s|"; corpse = Items.squirrel_corpse; difficulty = 0; level = Monster.lPatheticCreature; size = Monster.SMALL; xenophobic = True; int = 1; str = 5; hp = 4; dex = 20; *) (*Definition*reporter* name = "Reporter"; alignment = 0; attack_verb = "slap|s|"; chase = False; corpse = Items.human_corpse; cyborg_chance = 2; description = "A member of the free press."; difficulty = 6; gender = 3; human = True; inventory = Items.reporter_items; level = Monster.lHumanoid; nitems = 5; rabid_chance = 20; regeneration = 10; size = Monster.NORMAL; smart = wears = wields = uses = True; int = 18; str = 10; hp = 45; dex = 26; vin = 4; vst = 6; vhp = 10; vdx = 12; *) (*Definition*garbage_collector* name = "Garbage Collector"; alignment = 0; attack_verb = "de-rez|es|"; chase = False; corpse = None; description = "An aetherial minion of The Management, designed to keep things in good order."; die_verb = "despell|s|"; difficulty = 22; gender = 0; headless = True; inventory = None; no_leveling = True; photos = garbage_collector_photos; polymorphable = False; rabid_chance = 0; resist_chemical = True; resist_gas = True; resist_polymorph = True; size = Monster.GIANT; int = 100; str = 40; hp = 180; dex = 20; vhp = 40; *) (*Definition*beatnik* name = "Beatnik"; alignment = 0; chase = True; corpse = Items.human_corpse; cyborg_chance = 5; description = "A graduate student who studied the liberal arts."; difficulty = 10; gender = 3; human = True; inventory = Items.beatnik_items; level = Monster.lHumanoid; names = ["Krebs", "Kerouac", "Cassady", "Davie"]; nitems = 6; number = 0; photos = beaknik_photos; rabid_chance = 10; regeneration = 5; size = Monster.NORMAL; talk = artsie_talk; smart = wears = wields = uses = True; int = 22; str = 9; hp = 60; dex = 14; vin = 2; vst = 1; vhp = 12; vdx = 2; *) (*Definition*pikachu* name = "Pikachu"; alignment = 4; attack_verb = "claw|s|"; chatty = True; corpse = Items.pikachu_corpse; description = "A seemingly-harmless rodent able to shoot electric bolts."; difficulty = 7; inventory = Items.hamster_items; level = Monster.lModerateAnimal; nitems = 1; peaceful = True; photos = pikachu_photos; rabid_chance = 10; regeneration = 4; scavenger = True; size = Monster.SMALL; species_id = "pikachu"; talk = pikachu_talk; usable_special = True; wears = True; str = 7; hp = 20; dex = 20; vhp = 5; *) (*Definition*tribble* name = "Tribble"; ap = 1; corpse = Items.tribble_corpse; description = "Small amorphous animal known for its prolific reproduction."; difficulty = 1; flees = True; headless = True; level = Monster.lPatheticCreature; peaceful = True; photos = tribble_photos; size = Monster.TINY; hp = 6; dex = 2; *) (*Definition*geek* name = "Computer Geek"; alignment = 15; attack_verb = "poke|s|"; chase = True; chatty = True; corpse = Items.human_corpse; cyborg_chance = 20; description = "A student of computer science."; difficulty = 6; gender = 3; human = True; inventory = Items.nerd_items; level = Monster.lHumanoid; nitems = 1; peaceful = True; photos = nerd_photos; rabid_chance = 5; regeneration = 25; size = Monster.NORMAL; talk = nerd_talk; smart = wears = wields = uses = True; int = 14; str = 6; hp = 25; dex = 8; vin = 2; vst = 1; vhp = 6; vdx = 3; *) (*Definition*beacon* name = "Mobile Contraption"; alignment = 1; attack_verb = "bash|es|"; boss = True; corpse = Items.metal_slab; description = "Some kind of strange machine."; die_verb = "wreck|s|"; difficulty = 2; gender = 0; headless = True; rabid_chance = 100; resist_chemical = True; resist_gas = True; resist_polymorph = True; size = Monster.GIANT; smart = False; wears = wields = eats = uses = False; str = 0; hp = 300; dex = 10; *) (*Definition*wonka* name = "Mad Confectioner"; alignment = -1; ap = 3; attack_verb = "hit|s|"; boss = True; chase = True; chatty = True; corpse = Items.human_corpse; cyborg_chance = 25; description = "This evil man forces slaves to labor in his hidden chocolate mines."; difficulty = 45; gc_immune = True; gender = 1; human = False; inventory = Items.wonka_items; names = ['Willy Wonka']; nitems = 15; no_leveling = True; no_wander = True; photos = wonka_photos; rabid_chance = 5; resist_polymorph = True; size = Monster.NORMAL; talk = None; wake_text = """As you enter, the mad confectioner of yore sees you. He has grown old, but not weak, and it is clear that he is still powerful despite his age. He regards you coldly from his translucent throne, waiting for you to make the first move. """; smart = wears = wields = uses = True; int = 26; str = 30; hp = 150; dex = 20; *) (*Definition*oompa* name = "Oompa-Loompa"; adesc = "an Oompa-Loompa"; alignment = -1; attack_verb = "punch|es|"; chatty = True; corpse = Items.oompa_corpse; description = "An esaped slave of the evil confectioneer, Willy Wonka."; difficulty = 6; gender = 1; inventory = Items.oompa_items; level = Monster.lHumanoid; nitems = 5; photos = oompa_photos; rabid_chance = 5; size = Monster.NORMAL; species_id = "oompa"; talk = oompa_talk; smart = wears = wields = uses = True; int = 14; str = 10; hp = 20; dex = 8; *) (*Definition*warrior_oompa* name = "Warrior Oompa-Loompa"; alignment = -5; attack_verb = "punch|es|"; chatty = True; corpse = Items.oompa_corpse; description = "An fierce warrior dedicated to the cause of Willy Wonka."; difficulty = 6; gender = 1; inventory = Items.warrior_oompa_items; level = Monster.lHumanoid; nitems = 6; photos = oompa_photos; rabid_chance = 5; size = Monster.NORMAL; species_id = "oompa"; talk = oompa_talk; smart = wears = wields = uses = True; int = 10; str = 14; hp = 30; dex = 8; vin = 1; vst = 3; vhp = 10; vdx = 2; *) (*Definition*gelatinous_cube* name = "Gelatinous Cube"; attack_verb = "touch|es|"; auto_special = True; chase = True; corpse = None; cyborg_chance = 2; description = "A monster designed to clean up the junk that accumulates on the floor."; difficulty = 5; headless = True; inventory = Items.all_items; nitems = 8; no_leveling = True; peaceful = True; photos = gelatinous_cube_photos; rabid_chance = 2; regeneration = 5; resist_chemical = True; scavenger = True; size = Monster.GIANT; int = 30; str = 10; hp = 350; dex = 1; vhp = 50; *) (*Definition*mole_person* name = "Mole Person"; alignment = -1; chase = True; corpse = Items.human_corpse; cyborg_chance = 0; difficulty = 5; gender = 3; human = True; inventory = Items.mole_person_items; level = Monster.lHumanoid; nitems = 4; number = 2; rabid_chance = 15; size = Monster.NORMAL; sleep_timeout = 6; xenophobic = True; smart = wears = wields = uses = True; int = 5; str = 9; hp = 25; dex = 10; vin = 2; vst = 3; vhp = 6; vdx = 2; *) (*Definition*pyrex_elf* name = "Pyrex Elf"; alignment = 0; attack_verb = "bite|s| and claw|s|"; corpse = Items.glass; description = """These evil creatures take perverse delight in sneaking into chemistry labs and soiling the glassware with their vile experiments."""; difficulty = 10; gender = 3; inventory = Items.pyrex_elf_items; level = Monster.lHumanoid; nitems = 6; photos = pyrex_elf_photos; rabid_chance = 30; resist_chemical = True; resist_gas = True; size = Monster.SMALL; usable_special = True; smart = wears = wields = uses = True; int = 14; str = 8; hp = 20; dex = 9; vin = 3; vst = 1; vhp = 3; vdx = 2; *) (*Definition*hobo* name = "Hobo"; alignment = -3; chase = True; chatty = True; corpse = Items.human_corpse; default_ai = 1; description = """A human who has abandoned the companionship of the so-called civilized world, and descended into the tunnels."""; difficulty = 2; gender = 3; human = True; inventory = Items.hobo_items; level = Monster.lHumanoid; names = [ "Fatty", "Skinny", "Shortie", "Big Guy", "Big Al", "Quick McGee", "Glarg, Lord of Cats", "Nutty", "Robin", "Pat", "Little Guy", "Crazy Sam" ]; nitems = 1; number = 30; photos = hobo_photos; size = Monster.NORMAL; talk = hobo_talk; smart = wears = wields = uses = True; int = 4; str = 5; hp = 20; dex = 7; vin = 2; vst = 1; vhp = 5; vdx = 2; *) (*Definition*amorphous_blob* name = "Fetid Blob"; attack_verb = "squirt|s| slime on"; chase = False; corpse = Items.filth; cyborg_chance = 0; description = "A disgusting mass of fetid slime."; difficulty = 6; headless = True; inventory = Items.all_items; level = Monster.lBeast; nitems = 1; photos = amorphous_blob_photos; rabid_chance = 10; regeneration = 5; resist_chemical = True; resist_polymorph = True; scavenger = True; size = Monster.LARGE; int = 1; str = 3; hp = 100; dex = 1; vhp = 10; *) (*Definition*gnome* name = "Garden Gnome"; alignment = 2; corpse = Items.gnome_corpse; description = """Although renowned for their horticultural talents, gnomes sometimes venture into the deeper regions of the earth to seek out exotic subterranian materials and flora."""; difficulty = 3; gender = 3; inventory = Items.gnome_items; level = Monster.lHumanoid; names = [ "Futhark", "Ozymandias", "Viridian", "Celadon", "Nebuchadnezzar", "Fenton", "Alexandir", "Myrmidon", "Hemlock", "Aethiopica", "Foobarsus", "Zotspring", "Quuxy", "Mr. Pointy Hat", "Zorkmid", "Plugh", "Xyzzy", "Valhana" ]; nitems = 3; number = 20; photos = gnome_photos; size = Monster.SMALL; talk = gnome_talk; teleports = True; smart = wears = wields = uses = True; int = 13; str = 4; hp = 17; dex = 11; vin = 3; vst = 1; vhp = 3; vdx = 2; *) (*Definition*furvert* name = "Furvert"; alignment = 1; ap = 3; attack_verb = "grope|s|"; boss = True; chase = True; chatty = True; corpse = Items.human_corpse; cyborg_chance = 10; description = "(don't) write me."; difficulty = 12; gender = 1; human = False; inventory = Items.furvert_items; level = Monster.lHumanoid; nitems = 3; no_wander = True; peaceful = False; photos = None; rabid_chance = 12; regeneration = 25; size = Monster.NORMAL; talk = None; smart = wears = wields = uses = True; int = 9; str = 16; hp = 100; dex = 20; vin = 2; *) (*Definition*robot* name = "Robot"; alignment = 1; attack_verb = "bash|es|"; corpse = Items.metal_slab; description = "A mechanical creature, no doubt escaped from some lab."; die_verb = "wreck|s|"; difficulty = 6; headless = True; names = [ "B-4", "Data", "Lore", "R2-D2", "C-3PO", "IG-88", "Robby", "AIBO", "XR" ]; no_leveling = True; photos = robot_photos; resist_gas = True; size = Monster.LARGE; talk = robot_talk; smart = wears = wields = uses = True; eats = False; str = 10; hp = 30; dex = 1; *) (*Definition*dragon* name = "Ancient Dragon"; adesc = "an Ancient Dragon"; alignment = 0; ap = 3; attack_verb = "phase|s|"; chatty = True; corpse = Items.dragon_fang; cyborg_chance = 0; description = "A Chinese Dragon, draco orientis."; die_verb = "slay|s|"; difficulty = 13; gender = 3; inventory = None; level = Monster.lDragon; photos = dragon_photos; polymorphable = False; resist_bullets = True; size = Monster.GIANT; special_talk = True; talk = dragon_talk; teleports = True; smart = uses = True; int = 40; str = 40; hp = 200; dex = 40; *) (*Definition*chocolate_golem* name = "Candy Golem"; alignment = -1; attack_verb = "bash|es|"; corpse = Items.chocolate; description = "A golem, made of chocolate"; die_verb = "wreck|s|"; difficulty = 6; gender = 0; headless = True; no_leveling = True; photos = chocolate_golem_photos; resist_bullets = True; resist_chemical = True; resist_gas = True; size = Monster.GIANT; wields = True; smart = eats = False; str = 10; hp = 50; dex = 19; *) (*Definition*hobo_leader* name = "Hobo Monarch"; boss = True; chase = True; corpse = Items.human_corpse; cyborg_chance = 0; description = """The fierce and grungy governor of the hobos and mole people stands before you."""; difficulty = 7; female_names = ['Ann Shenton', 'Grace Slick']; gender = 3; human = False; inventory = Items.hobo_leader_items; level = Monster.lHumanoid; male_names = ['Keith', 'Greg', 'Carl']; nitems = 8; rabid_chance = 50; regeneration = 15; size = Monster.NORMAL; xenophobic = True; smart = wears = wields = uses = True; int = 11; str = 12; hp = 40; dex = 14; vin = 0; vst = 0; vdx = 3; *) (*Definition*artsie* name = "Liberal Arts Student"; alignment = 0; attack_verb = "slap|s|"; chase = True; corpse = Items.human_corpse; cyborg_chance = 0; description = "A student who studies the liberal arts."; difficulty = 5; gender = 3; human = True; inventory = Items.artsie_items; level = Monster.lHumanoid; nitems = 4; number = 0; photos = artsie_photos; rabid_chance = 0; regeneration = 23; size = Monster.NORMAL; talk = artsie_talk; smart = wears = wields = uses = True; int = 8; str = 7; hp = 25; dex = 9; vin = 2; vst = 2; vhp = 6; vdx = 3; *) (*Definition*hamster* name = "Hamster"; ap = 1; corpse = Items.hamster_corpse; description = "A hamster is a generally harmless rodent."; difficulty = 0; flees = True; inventory = Items.hamster_items; level = Monster.lPatheticCreature; nitems = 1; peaceful = True; photos = hamster_photos; size = Monster.TINY; hp = 2; dex = 8; vhp = 1; *) (*Definition*greater_oompa* name = "Fat Oompa-Loompa"; alignment = -1; attack_verb = "punch|es|"; chatty = True; corpse = Items.oompa_corpse; description = "An esaped slave of the evil confectioneer, Willy Wonka."; difficulty = 9; gender = 1; inventory = Items.oompa_items; level = Monster.lHumanoid; nitems = 5; photos = greater_oompa_photos; rabid_chance = 8; size = Monster.LARGE; species_id = "oompa"; talk = oompa_talk; smart = wears = wields = uses = True; int = 14; str = 20; hp = 60; dex = 16; *) (*Definition*furby* name = "Furby"; alignment = 0; attack_verb = "gnaw|s|"; chatty = True; corpse = Items.fur_scrap; description = "Possibly some kind of troll or freak of nature."; difficulty = 2; gender = 3; inventory = None; level = Monster.lModerateAnimal; nitems = 0; photos = furby_photos; scavenger = True; size = Monster.SMALL; talk = furby_talk; teleports = True; smart = wields = uses = True; int = 10; str = 4; hp = 13; dex = 8; vhp = 2; *) (*Definition*skunk* name = "Jedi Skunk"; alignment = 1; description = "A skunk who knows the ways of the force."; difficulty = 7; inventory = Items.skunk_items; level = Monster.lModerateAnimal; nitems = 1; size = Monster.SMALL; wields = True; int = 7; str = 5; hp = 21; dex = 8; vhp = 10; *) (*Definition*secguard* name = "Security Guard"; alignment = 0; attack_verb = "slam|s|"; chase = True; corpse = Items.human_corpse; cyborg_chance = 10; description = "A security guard for a press conference."; difficulty = 16; gender = 3; human = True; inventory = Items.secguard_items; level = Monster.lHumanoid; nitems = 8; rabid_chance = 33; regeneration = 4; size = Monster.LARGE; usable_special = True; smart = wears = wields = uses = True; int = 10; str = 32; hp = 120; dex = 12; vin = 2; vst = 8; vhp = 40; vdx = 2; *) (*Definition*mind_flayer* name = "Mind Flayer"; alignment = 6; chase = True; corpse = Items.mind_flayer_corpse; description = "Sucks head with tenticles, eats brains. Avoid."; difficulty = 10; gender = 3; inventory = Items.mind_flayer_items; level = Monster.lFlayer; nitems = 3; number = 20; photos = mind_flayer_photos; size = Monster.NORMAL; talk = mind_flayer_talk; usable_special = True; smart = wears = wields = uses = True; int = 20; str = 10; hp = 48; dex = 8; vin = 3; vst = 1; vhp = 8; vdx = 3; *) (*Functions*secguard, senator* def useSpecial(self, mon, target): return Utl.rn(100) > 80 and target.hp >= target.mhp / 2 *** def doSpecial(self, mon, target): Ifc.you('draw|s| out a handgun and fire|s| at %s!' % Ifc.the_mon(target), mon) if target.species.resist_bullets: Ifc.your('skin protect|s| |youm| from the bullets.', target) elif target.resist_bullets: Ifc.your('bulletproof vest protect|s| |youm| from the bullets.', target) else: Ifc.you('|are| severely wounded by the bullets!', target) if not target.damage((target.mhp / 3) + Utl.rn(target.mhp / 4), mon, usearmor=0, msg='an overzealous security guard'): if (target.species.size == Monster.SMALL and Utl.rn(3) == 0) or target.species.size == Monster.TINY: Ifc.you("can't stop bleeding!", target) target.damage(0, mon, msg='massive internal bleeding', setamt=1) *** *) (*Functions*skunk* def useSpecial(self, mon, target): return Utl.rn(100) < 15 *** def doSpecial(self, mon, target): Ifc.you('concentrate|s|.', mon) if not target.inventory: Ifc.you('trip|s| %s using the Force!' % Ifc.the_mon(target), mon) target.stun(1, 'tripped by %s' % mon.species.adesc) return which = Utl.rn_seq(target.inventory) index = target.str - Utl.rn(12) if index < 0: Ifc.your('%s is pulled away by %s!' % (which.kind.name, Ifc.the_mon(mon)), target) if which.worn: target.armor -= which.kind.armor which.kind.do_unenhance(which, target, target.here) which.worn = False if which.wielded: target.wielded = None which.wielded = False target.inventory.remove(which) mon.add(which) elif index < 3 and (which.wielded or which.worn): Ifc.your('%s is yanked off!' % which.kind.name, target) if which.worn: target.armor -= which.kind.armor which.kind.do_unenhance(which, target, target.here) which.worn = False if which.wielded: target.wielded = None which.wielded = False target.inventory.remove(which) target.here.add(which) else: Ifc.you('|are| thrown back!', target) target.here.mons.remove(target) Utl.rn_exit(target.here).add(target) *** *) (*Functions*code_monkey* def xmake(self, mon): mon.stolen = None *** def useSpecial(self, mon, target): return Utl.rn(100) < 50 or not mon.stolen and Utl.rn(100) < 75 *** def doSpecial(self, mon, target): if mon.stolen and Utl.rn(): if mon.stolen.doSpecial(mon, target): mon.stolen.useSpecial(mon, target) elif not target.species.usable_special or Utl.rn(): Ifc.you("speak|s| in l33t, draining %s intelligence!" % Ifc.the_mon(target, possessive=1), mon) target.int -= Utl.rn(2) target.damage(Utl.d(1, 3), mon, usearmor=0, msg='obnoxious gamer slang') elif target.species.usable_special: Ifc.you('take|s| some code from %s into itself!' % Ifc.the_mon(target), mon) target.int -= Utl.rn(2) target.damage(Utl.d(1, 6), mon, usearmor=0, msg='cut and paste') mon.stolen = target.species *** *) (*Functions*tribble* def useSpecial(self, mon, target): return Utl.rn(100) < 40 and mon.species.created - mon.species.dead < 100 *** def doSpecial(self, mon, target): Ifc.you('watch|es| the %s asexually reproduce!' % mon.species.name, target) for x in xrange(4): mon.here.add(mon.species.make()) *** *) (*Functions*pikachu, raichu* def useSpecial(self, mon, target): return Utl.rn(100) < 40 *** def doSpecial(self, mon, target): if Utl.rn(30) < target.mod_dex: Ifc.your('electric blast misses %s.' % Ifc.the_mon(target), mon) else: Ifc.you('zap|s| %s with an electric blast!' % Ifc.the_mon(target), mon) target.damage(Utl.d(1, 10) + 10, mon, usearmor=0, msg="a %s's electric blast" % mon.species.name) *** *) (*Functions*ancient_pikachu, pikachu_warrior* def useSpecial(self, mon, target): return Utl.rn(100) < 60 *** def doSpecial(self, mon, target): if Utl.rn(30) < target.mod_dex: Ifc.your('electric storm only wings %s.'%Ifc.the_mon(target), mon) target.damage(Utl.d(1, 10) + 10, mon, usearmor=0, msg="a %s's electric discharge" % mon.species.name) else: Ifc.you('call|s| down a mightly thunderbolt on %s!' % Ifc.the_mon(target), mon) target.damage(Utl.d(1, 40) + 20, mon, usearmor=0, msg="the mighty thunderbolt of a %s" % mon.species.name) *** *) (*Functions*pikachu_queen* def useSpecial(self, mon, target): return Utl.rn(100) < 60 *** def doSpecial(self, mon, target): Ifc.you('energize|s| the floor!',mon) for being in target.here.mons: if being.species in [pikachu,raichu,pikachu_queen,pikachu_warrior, ancient_pikachu]: continue being.damage(Utl.d(1, 10) + 5, mon, usearmor=0, msg="the electric field of a %s" % mon.species.name) Ifc.msg("The pikachu queen emits a cloud of pheremones!") for i in g.monsters: if hasattr(i, 'hive_minded'): print "X", i i.xenophobic = True i.species.peaceful = False *** def die(self, mon, killer, here): Ifc.you('screams: "Piiiiiik!" and explodes in a torrent of yellow slime, smelling of ozone.', mon) if killer is g.player: g.incscore(200, 'You slew the dread Pikachu Queen.') elif killer.owner is g.player: g.incscore(50, 'Your team slew the dread Pikachu Queen.') *** def attacked(self, mon, attacker, here): Ifc.msg("The pikachu queen emits a cloud of pheremones!") for i in g.monsters: if hasattr(i, 'hive_minded'): i.ai = Monster.ATTACKING *** *) (*List*nth* 'first', 'second', 'third', 'fourth' *) (*Functions*mind_flayer, greater_mind_flayer* def useSpecial(self, mon, target): if target.species.headless: return False if target.int * 3 + 40 > 80: Ifc.you("|are| attracted to %s great brain!" % Ifc.the_mon(target, possessive=1), mon) return bool(Utl.rn(3)) *** def doSpecial(self, mon, target): l = target.species.size for i in xrange(l + 1): if Utl.rn(target.mod_dex) < Utl.rn(mon.dex): Ifc.you("grab|s| %s head with |your| %s tentacle!" % (Ifc.the_mon(target, possessive=1), 'last' if i == l else nth[i]), mon) else: Ifc.you("evade|s| %s tentacles." % Ifc.format('|your|', mon), target) if target.stunned == 0 and i > 0: target.stun(1, 'held by a mind flayer') return Ifc.you("ha|ve| %s head in |your| grasp and eat|s| %s brain!" % (Ifc.the_mon(target, possessive=1), Ifc.format('|your|', target)), mon) target.int = 0 target.damage(0, mon, msg='becoming (literally) mindless', setamt=1) *** *) (*Functions*garbage_collector* def useSpecial(self, mon, target): return Utl.rn(100) < 15 *** def doSpecial(self, mon, target): Ifc.you('touch|es| %s.' % Ifc.the_mon(target), mon) if target is g.player or target.species.gc_immune: if g.murders < Utl.rn(20) or target.species.gc_immune: Ifc.msg('Nothing happens.') return elif target is g.player: Ifc.you('feel a pang of remorse about your murder%s.' % ('s' if g.murders > 1 else '')) Ifc.you('|are| feeing rather unreferenced!', target) Ifc.you('|are| cast alive into the celestial bit bucket!', target) target.last_damage = 'automatic memory management' target.die(mon, docorpse=False) *** *) (*Functions*hobo* def useSpecial(self, mon, target): return Utl.rn(100) < 57 *** def doSpecial(self, mon, target): Ifc.you('compare|s| %s to rodentia.' % Ifc.the_mon(target), mon) *** *) (*Functions*pyrex_elf* def useSpecial(self, mon, target): return Utl.rn(100) < 30 *** def doSpecial(self, mon, target): Ifc.you('spit|s| iron compounds on %s!' % Ifc.the_mon(target), mon) if target.resist_chemical: Ifc.you("|are|n't affected.", target) else: if not target.damage(Utl.d(1, 12), mon, usearmor=0, msg='ferric elf spit'): Ifc.you('|are| weakened by the poisonous chemicals!', target) target.str -= Utl.d(1, 3) *** *) (*Functions*spider* def useSpecial(self, mon, target): return Utl.rn(100) < 10 *** def doSpecial(self, mon, target): Ifc.you('jump|s| on %s, sinking |your| fangs into %s.' % (Ifc.the_mon(target), Ifc.format('|youm|', target)), mon) if not target.damage(Utl.d(1, 6), mon, msg='a spider bite'): if Utl.rn(target.dex) < 5: Ifc.you('|are| weakened by the poisonous bite!', target) target.str -= Utl.d(1, 2) if Utl.rn(target.dex) < 5: Ifc.you('|are| crippled by pain!', target) target.dex -= Utl.d(1, 2) target.stun(3, 'paralyzed by a poisonous bite') *** *) (*Functions*zergling* def useSpecial(self, mon, target): return Utl.rn(15) > len(mon.here.mons) and Utl.rn(100) < 15 and zergling.created - zergling.dead < 150 *** def doSpecial(self, mon, target): Ifc.you('hear|s| a distant voice say, "Zerg rush! kekekekekekekeke"', target) for x in xrange(Utl.d(1, 4)): mon.here.add(zergling.make(ai=mon.ai, target=mon.target, owner=mon.owner, rabid=False)) *** *) (*Functions*gelatinous_cube* def useSpecial(self, mon, target): return Utl.rn() *** def doSpecial(self, mon, target): if mon is target: if mon.inventory: which = Utl.rn_seq(mon.inventory) if which.kind.pc_only: return Ifc.you('digest|s| %s.' % which.kind.adesc, mon) if which.worn: mon.armor -= which.kind.armor which.kind.do_unenhance(which, mon, mon.here) which.destroy() return True if mon.here.items: which = Utl.rn_seq(mon.here.items) if which.kind.pc_only: return Ifc.you('engulf|s| and digest|s| %s.' % which.kind.adesc, mon) which.destroy() *** *) (*Functions*tohya* def useSpecial(self, mon, target): return Utl.rn(100) < 40 *** def doSpecial(self, mon, target): Ifc.you('disappear|s|.', mon) mon.dead = True mon.here.mons.remove(mon) *** *) (*Functions*hobo_leader* def die(self, mon, killer, here): if killer is g.player: g.incscore(50, 'You overthrew the reign of %s.' % mon.name) *** *) (*Functions*senator* def die(self, mon, killer, here): if killer is g.player: g.incscore(150, 'You personally defeated Senator McCarthy.') elif killer.owner is g.player: g.incscore(50, 'Your team defeated Senator McCarthy.') *** *) (*Functions*wonka* def xmake(self, mon): mon.first = True *** def attacked(self, mon, attacker, here): if mon.first: mon.first = False Ifc.msg('"Fool! Prepare to meet your terrible doom!" Wonka screeches at you.') if g.player.resist_polymorph: Ifc.msg('"You might be protected from my most lethal weapon, but do not think that you can defeat me!"') elif g.player.gender == Monster.FEMALE: Ifc.msg('"I will turn your body into my new blueberry juice factory!"') elif g.player.gender == Monster.MALE: Ifc.msg('"I will reanimate your exploded corpse and make you my \'personal\' slave!"') oompa.xenophobic = True *** def die(self, mon, killer, here): Ifc.you('screams: "How can this be happening? I am invincible! No!"', mon) if killer is g.player: g.incscore(200, 'You personally vanquished Willy Wonka.') elif killer.owner is g.player: g.incscore(50, 'Your team vanquished Willy Wonka.') oompa.xenophobic = False *** def useSpecial(self, mon, target): return target is g.player and Utl.rn() *** def doSpecial(self, mon, target): Ifc.you('call|s| in some of |your| minions!', mon) mon.here.add(warrior_oompa.make()) if Utl.rn(): mon.here.add(warrior_oompa.make()) *** *) (*Functions*nemesis* def useSpecial(self, mon, target): return Utl.rn(200) < 250 - mon.hp *** def doSpecial(self, mon, target): mon.do_talk(False) Ifc.you('throw|s| hot acid on %s!' % Ifc.the_mon(target), mon) if target.species.resist_chemical: Ifc.you("|are|n't affected.", target) elif target.resist_chemical: Ifc.your('lab coat protect|s| |youm|.', target) target.damage(Utl.d(1, 20), mon, msg='a lack of safety equipment') else: Ifc.you('|are| crippled by pain!', target) target.str -= 1 if not target.damage(Utl.d(2, 20), mon, usearmor=0, msg='a flagrant safety code violation'): target.stun(Utl.d(1, 4), 'paralyzed by painful acid burns') *** def after_die(self, mon, killer, here): if killer is g.player: g.incscore(300, "You defeated Suzie's first form in combat.") if g.player.here is here: Ifc.msg("From where Suzie fell a dense black fog starts to bubble up from the ground!") Ifc.msg("The fog coalesces into a humanoid shape!") dl = dark_lord.make(ai=Monster.ATTACKING) dl.inventory.append(Items.key.make(keyval=4, name="Armory key")) here.add(dl) *** *) (*Functions*dark_lord* def useSpecial(self, mon, target): return Utl.rn() and target.inventory *** def doSpecial(self, mon, target): if Utl.rn(): for itm in Utl.gen_shuffle(target.inventory): if itm.blessed or Utl.rn(): continue Ifc.you("reach|es| out and touch|es| %s %s." % (Ifc.the_mon(target, possessive=1), itm.kind.name), mon) Ifc.your('%s crumbles into dust!' % itm.kind.name, target) if itm.worn: itm.kind.do_unenhance(itm, target, target.here) itm.destroy() break elif Utl.rn(4) == 0: Ifc.you('poke|s| %s forehead.' % Ifc.the_mon(target, possessive=1), mon) Ifc.you('collapse|s|, writhing in pain!', target) if not target.damage(Utl.d(3, 8), mon, usearmor=0, msg='the touch of death'): target.stun(Utl.d(1, 2), 'trying to not dissolve into component elements') *** *) (*Functions*enemesis* def useSpecial(self, mon, target): return Utl.rn(3) == 0 *** def doSpecial(self, mon, target): if mon is target: if mon.target and mon.target.here is not mon.here: if Utl.rn(3) == 0: Ifc.you('disappear|s| in a flash of light!', mon) mon.here.mons.remove(mon) mon.target.here.add(mon) Ifc.you('appear|s| in a flash of light!', mon) elif not mon.target and Utl.rn(): mon.target = g.player else: mon.do_talk(False) if Utl.rn(): Ifc.you('recite|s| crippling and ineffective safety regulations!', mon) for m in mon.here.mons: if m is g.player: Ifc.you('feel|s| oppressed.', m) elif m.ai == Monster.PET and m.int < Utl.rn(30): Ifc.you('|are| too disillusioned to carry on.', m) m.ai = Monster.WANDERING else: Ifc.you('lob|s| a flask of volatile chemicals at %s!' % Ifc.the_mon(target), mon) for m in mon.here.mons: if not m.resist_gas: Ifc.you('cough|s| and spasm|s|!', m) if not m.damage(Utl.rn(m.mhp / 3), mon, usearmor=0, msg='noxious fumes'): m.stun(Utl.rn(2), Ifc.format('coughing |your| lungs out', m)) *** def damaged(self, mon, attacker, here): if mon.hp < mon.mhp / 2 and g.beacons: beacon = g.beacons[0] Ifc.you('whistle|s| shrilly.', mon) if beacon.here is not mon.here: Ifc.you('rattle|s| and squeak|s| out of the room.', beacon) beacon.here.mons.remove(beacon) mon.here.add(beacon) beacon.ai = Monster.WANDERING Ifc.you('squeak|s| and rattle|s| into the room!', beacon) Ifc.you('touch|es| %s with an extendable appendage.' % Ifc.the_mon(mon), beacon) Ifc.you('look|s| much healthier!', mon) mon.hp = mon.mhp *** def die(self, mon, killer, here): if killer is g.player: g.incscore(1000, "You were the destroyer of Suzie.") Ifc.you('let|s| out an unearthly, bone-chilling shriek.', mon) Ifc.you('feel a great disturbance in the Force!') *** *) (*Functions*beacon* def die(self, mon, killer, here): if mon in g.beacons: g.beacons.remove(mon) *** *) (*Postlist*span_spawn* spider, spider, spider, pikachu, pikachu, hamster, hamster, hobo, cat, dog, giant_hamster, squirrel *) (*Postlist*cesspool_critters* crocodile, cat, dog, crocodile, toad, crocodile, toad, amorphous_blob, amorphous_blob,amorphous_blob, amorphous_blob, amorphous_blob *) (*Postlist*cavern_mons* hobo, hobo, hobo, hobo, hobo, mole_person, mole_person, hamster, spider, hamster, mole_person *) (*Postlist*conference_spawn* reporter, reporter, reporter, reporter, secguard, secguard, hobo, spider, intern, intern *) (*Postlist*scifi_spawn* nerd, furry, furry, geek, geek, trekie, booth_babe, trekie, gnome, robot *) (*Postlist*wonka_spawn* greater_oompa, oompa, oompa, greater_oompa, oompa, oompa, slave_driver, chocolate_golem, care_bear, cat, vape *) (*Postlist*zeius_spawn* amorphous_blob, greater_mind_flayer, mind_flayer, pyrex_elf, pyrex_elf, pyrex_elf, pyrex_elf, pyrex_elf, pyrex_elf, pyrex_elf, pyrex_elf, pyrex_elf, pyrex_elf, pyrex_elf, pyrex_elf, robot, robot, madsci, madsci, amorphous_blob, amorphous_blob *) (*Postlist*easy_creatures* hamster, cat, dog, spider, tribble, hobo, gnome, hamster, hamster, cat, hamster, cat, dog, spider, tribble, hobo, gnome, hamster, hamster, cat, artsie, jock, nerd, care_bear, care_bear, dwarf, furby, amorphous_blob, squirrel, squirrel *) (*Postlist*all_creatures* gnome, gnome, gnome, gnome, hamster, hamster, hamster, squirrel, squirrel, squirrel, squirrel, squirrel, tribble, tribble, hobo, hobo, hobo, hobo, skunk, nerd, nerd, artsie, artsie, jock, jock, vape, madsci, robot, robot, debugger, cat, cat, cat, pyrex_elf, pyrex_elf, code_monkey, code_monkey, giant_hamster, giant_hamster, giant_hamster, gnome, gnome, gnome, gnome, hamster, hamster, hamster, hobo, hobo, hobo, hobo, skunk, nerd, nerd, artsie, artsie, jock, jock, vape, madsci, madsci, robot, robot, debugger, cat, cat, cat, cat, pyrex_elf, pyrex_elf, code_monkey, code_monkey, pikachu, pikachu, tribble, tribble, spider, spider, spider, spider, spider, spider, crocodile, crocodile, dog, dog, dog, dog, dog, gelatinous_cube, gelatinous_cube, zergling, zergling, zergling, mind_flayer, mind_flayer, greater_mind_flayer, coach, coach, zergling, care_bear, dwarf, dwarf, care_bear, care_bear, care_bear, parodic_dwarf, parodic_dwarf, parodic_dwarf, dwarf, furby, furby, tohya, beatnik, beatnik, amorphous_blob, amorphous_blob, amorphous_blob, fox, fox, fox, fox, oompa, oompa, oompa, raichu, raichu, raichu, dragon, dragon, greater_oompa, reporter, secguard, intern, mole_person, toad, toad, booth_babe, booth_babe, geek, geek, geek, geek, warrior_oompa, tribble, tribble, furvert, chocolate_golem, chocolate_golem, slave_driver, zergling, furry, furry, trekie, trekie, warrior_oompa, blueberry, blueberry, toad, garbage_collector *) (*Postlist*starters* nerd, artsie, jock *) (*Postlist*pets* pikachu, cat, dog *)