Mercurial > hg > early-roguelike
view urogue/monsdata.c @ 296:000b1c5b8d63
UltraRogue: fix inventory collision after save and restore.
Inventory letters are based on "identifiers" stored in objects' o_ident
field. Identifiers are allocated by get_ident(), which keeps a list of
objects that have them, to avoid giving the same identifier to multiple
objects.
The list is not stored in the savefile, so after restore, get_ident()
was not aware of existing identifiers. This resulted in picked-up
objects having the same inventory letters as objects restored from the
file.
The restore code now adds all objects with identifiers to the list.
author | John "Elwin" Edwards |
---|---|
date | Mon, 15 Jan 2018 20:20:35 -0500 |
parents | c495a4f288c6 |
children |
line wrap: on
line source
/* monsdata.c - monster data initializer UltraRogue: The Ultimate Adventure in the Dungeons of Doom Copyright (C) 1985, 1986, 1992, 1993, 1995 Herb Chong All rights reserved. Based on "Advanced Rogue" Copyright (C) 1984, 1985 Michael Morgan, Ken Dalka All rights reserved. Based on "Rogue: Exploring the Dungeons of Doom" Copyright (C) 1980, 1981 Michael Toy, Ken Arnold and Glenn Wichman All rights reserved. See the file LICENSE.TXT for full copyright and licensing information. */ #include "rogue.h" #define HPT(x) x /* {"Name", CARRY_PROB, NORMAL, WANDER, SYMBOL, INTELLIGENCE, {ATTRIBUTE_FLAGS}, CREATURE_SUMMONED, NUMBER_SUMMONED, ADDED_EXPERIENCE_PER_HIT_POINT, {str, exp_pts, exp_level, armor_class, hit_points, "damage"} }, */ struct monster monsters[] = { {"the player", 0, FALSE, FALSE, '\0', "", {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0, 0, 0, {10, 0, 0, 0, HPT(""), ""} }, {"bat", 0, TRUE, FALSE, 'B', "2-4", {ISMEAN, CANFLY, ISHUH, CANDISEASE, ISFLOCK, ISSMALL}, 0, 0, 0, {10, 5, 2, 1, HPT("1d4"), "1d2"} }, {"xvart", 0, TRUE, TRUE, 'x', "8-12", {ISMEAN, ISSWARM, ISSMALL, CANWIELD}, 0, 0, 1, {8, 5, 1, 7, HPT("1d4"), "1d4+1"} }, {"giant rat", 0, TRUE, TRUE, 'R', "2-4", {ISMEAN, CANDISEASE, ISFLOCK, ISSMALL}, 0, 0, 1, {10, 7, 1, 7, HPT("1d4"), "1d3"} }, {"jackal", 0, TRUE, TRUE, 'J', "2-5", {ISMEAN, ISSMALL}, 0, 0, 1, {8, 5, 1, 7, HPT("1d4"), "1d2"} }, {"snake", 0, TRUE, FALSE, 'S', "2-5", {ISMEAN, ISSMALL}, 0, 0, 1, {8, 5, 1, 5, HPT("1d4"), "1d3"} }, {"kobold", 0, TRUE, TRUE, 'K', "8-8", {ISMEAN, CANSHOOT, CANWIELD, ISSWARM, ISSMALL}, 0, 0, 1, {9, 5, 1, 7, HPT("1d4"), "1d4"} }, {"vilstrak", 5, TRUE, FALSE, 'V', "5-8", {ISMEAN, CANINWALL}, 0, 0, 1, {10, 7, 1, 2, HPT("1d6"), "1d4+1/1d4+1"} }, {"gnome", 10, TRUE, TRUE, 'G', "11-12", {CANSHOOT, CANWIELD, ISSWARM, ISSMALL, MEDFRIENDLY}, 0, 0, 1, {10, 8, 1, 5, HPT("1d6"), "1d6"} }, {"halfling", 10, TRUE, TRUE, 'H', "11-12", {CANSHOOT, CANWIELD, ISSWARM, ISSMALL, HIGHFRIENDLY}, 0, 0, 1, {8, 9, 1, 4, HPT("1d6"), "1d6"} }, {"dwarf", 15, TRUE, TRUE, 'D', "11-12", {CANSHOOT, CANWIELD, ISSMALL, ISSWARM, MEDFRIENDLY}, 0, 0, 1, {14, 10, 1, 4, HPT("1d8"), "1d8"} }, {"orc", 15, TRUE, TRUE, 'O', "8-8", {ISMEAN, CANSHOOT, CANWIELD, ISSWARM}, 0, 0, 1, {12, 10, 1, 6, HPT("1d8"), "1d8"} }, {"larva", 0, TRUE, TRUE, 'l', "5-8", {ISMEAN, ISFLOCK}, 0, 0, 1, {6, 10, 1, 7, HPT("1d8"), "1d4+1"} }, {"skeleton", 0, TRUE, TRUE, 's', "0-0", {ISMEAN, ISSWARM, ISUNDEAD}, 0, 0, 1, {6, 14, 1, 7, HPT("1d8"), "1d6"} }, {"carrion crawler", 0, TRUE, TRUE, 'c', "2-4", {ISMEAN, CANPARALYZE, ISLARGE}, 0, 0, 1, {8, 20, 1, 7, HPT("1d8+1"), "1d2"} }, {"manes", 0, TRUE, TRUE, 'M', "2-4", {ISMEAN, MAGICHIT, ISUNDEAD, ISSMALL}, 0, 0, 1, {10, 18, 1, 7, HPT("1d8"), "1d2/1d2/1d4"} }, {"elf", 50, TRUE, TRUE, 'E', "13-20", {CANSHOOT, CANWIELD, CANBARGAIN, ISSWARM, HIGHFRIENDLY}, 0, 0, 2, {12, 20, 1, 5, HPT("1d8+1"), "1d10"} }, {"hobgoblin", 0, TRUE, TRUE, 'H', "8-10", {ISMEAN, CANSHOOT, CANWIELD, ISSWARM}, 0, 0, 2, {14, 20, 1, 5, HPT("1d8+1"), "1d8"} }, {"wild dog", 0, TRUE, TRUE, 'w', "2-5", {ISMEAN, ISFAST, ISSMALL, ISFLOCK}, 0, 0, 2, {10, 20, 1, 7, HPT("1d8+1"), "1d4"} }, {"baboon", 0, TRUE, TRUE, 'b', "4-7", {ISMEAN, ISSMALL, ISSWARM}, 0, 0, 2, {10, 20, 1, 7, HPT("1d8+1"), "1d4"} }, {"fire beetle", 0, TRUE, TRUE, 'B', "0-0", {ISMEAN, HASFIRE, ISFLOCK, ISSMALL}, 0, 0, 2, {10, 20, 1, 4, HPT("1d8+2"), "2d4"} }, {"badger", 0, TRUE, TRUE, 'k', "4-6", {CANSURPRISE, ISSMALL}, 0, 0, 3, {10, 30, 2, 4, HPT("1d8+2"), "2d2/1d3"} }, {"giant ant", 0, TRUE, TRUE, 'A', "1-1", {ISMEAN, CANPOISON, ISSMALL, ISSWARM}, 0, 0, 3, {10, 40, 2, 3, HPT("2d8"), "1d6"} }, {"war dog", 0, TRUE, TRUE, 'D', "3-5", {ISMEAN, ISFAST}, 0, 0, 3, {10, 35, 2, 6, HPT("2d8+2"), "2d4"} }, {"zombie", 0, TRUE, TRUE, 'Z', "0-0", {ISMEAN, ISUNDEAD, ISFLOCK}, 0, 0, 2, {10, 20, 2, 8, HPT("2d8"), "1d8"} }, {"wuccubi", 0, TRUE, TRUE, 'w', "0-0", {ISMEAN}, 0, 0, 2, {10, 20, 2, 8, HPT("2d8"), "1d4/1d10"} }, {"aarakocra", 5, TRUE, TRUE, 'a', "8-12", {CANFLY, CANWIELD, ISFLOCK, LOWFRIENDLY}, 0, 0, 2, {11, 28, 2, 7, "1d8+2", "1d3/1d3"} }, {"gnoll", 0, TRUE, TRUE, 'g', "7-11", {ISMEAN, CANWIELD, CANSHOOT, ISLARGE, ISSWARM}, 0, 0, 2, {10, 28, 2, 5, HPT("2d8"), "2d4"} }, {"warthog", 0, TRUE, TRUE, 'w', "3-5", {ISMEAN}, 0, 0, 3, {14, 35, 2, 7, HPT("3d8"), "2d8/2d8"} }, {"black bear", 0, TRUE, FALSE, 'U', "5-8", {CANHUG}, 0, 0, 3, {10, 30, 3, 7, HPT("2d8+3"), "2d3"} }, {"ear seeker", 0, TRUE, TRUE, 'e', "0-0", {ISMEAN, CANINFEST, ISSMALL}, 0, 0, 0, {10, 0, 1, 9, HPT("1d1"), "0d0"} }, {"floating eye", 0, TRUE, TRUE, 'E', "0-0", {CANHUH, ISSMALL}, 0, 0, 1, {7, 30, 1, 9, HPT("1d4"), "0d0"} }, {"brownie", 0, TRUE, TRUE, 'B', "12-15", {LOWCAST, CANSHOOT, CANWIELD, CANSURPRISE, STEALGOLD, CANBARGAIN, ISSMALL, ISFLOCK, HIGHFRIENDLY}, 0, 0, 0, {6, 31, 10, 3, HPT("1d4"), "1d3"} }, {"shrieker", 0, TRUE, FALSE, 'S', "0-0", {CANSHRIEK, NOMOVE, ISFLOCK}, 0, 0, 1, {10, 5, 3, 7, HPT("3d8"), "0d0"} }, {"gas spore", 0, TRUE, FALSE, 'g', "0-0", {CANSPORE, NOMOVE, ISLARGE}, 0, 0, 0, {8, 33, 2, 9, HPT("1d1"), "0d0"} }, {"hyena", 0, TRUE, TRUE, 'h', "3-5", {ISMEAN}, 0, 0, 3, {10, 35, 2, 7, HPT("3d8"), "2d4"} }, {"mind maggot", 0, TRUE, TRUE, 'm', "1-1", {ISMEAN, NOMOVE, DRAINBRAIN, ISFLOCK, CANSURPRISE, ISSMALL}, 0, 0, 3, {10, 40, 4, 8, HPT("1d8+1"), "1d3"} }, {"giant beetle", 0, TRUE, FALSE, 'b', "0-0", {ISFLOCK}, 0, 0, 4, {10, 40, 3, 4, HPT("2d8"), "4d4"} }, {"bombadier beetle", 0, TRUE, FALSE, 'B', "0-0", {CANBACID, ISFLOCK}, 0, 0, 4, {10, 40, 2, 4, HPT("2d8+2"), "2d6"} }, {"stirge", 0, TRUE, TRUE, 's', "1-1", {ISMEAN, CANFLY, CANDRAW, ISSMALL}, 0, 0, 2, {10, 36, 4, 8, HPT("1d8+1"), "1d3"} }, {"wild camel", 0, TRUE, TRUE, 'w', "3-7", {ISMEAN, CANTRAMPLE, ISLARGE, ISFLOCK}, 0, 0, 3, {12, 35, 2, 7, HPT("3d8"), "1d4"} }, {"wolf", 0, TRUE, TRUE, 'W', "3-7", {ISMEAN, ISLARGE, ISSWARM, ISFAST}, 0, 0, 3, {12, 35, 2, 7, HPT("2d8+2"), "1d4+1"} }, {"troglodyte", 5, TRUE, TRUE, 'T', "5-7", {ISMEAN, CANSMELL, CANSHOOT, CANWIELD, ISSWARM}, 0, 0, 2, {10, 36, 2, 5, HPT("2d8"), "1d3/1d3/2d5"} }, {"killer frog", 0, TRUE, FALSE, 'f', "2-4", {ISMEAN}, 0, 0, 4, {10, 40, 3, 6, HPT("3d8"), "2d3/1d4"} }, {"axe beak", 0, TRUE, FALSE, 'a', "2-4", {ISMEAN, ISLARGE}, 0, 0, 4, {10, 40, 3, 6, HPT("3d8"), "2d3/2d4"} }, {"spinning tick", 0, TRUE, TRUE, 't', "2-6", {ISMEAN, CANFRIGHTEN, ISSMALL, ISFAST, ISFLOCK}, 0, 0, 5, {10, 50, 2, 3, HPT("2d8+2"), "1d2/1d2/1d4"} }, {"giant centipede", 0, TRUE, TRUE, 'c', "1-2", {ISMEAN, CANPOISON, ISLARGE, ISFLOCK}, 0, 0, 1, {6, 40, 2, 9, HPT("2d2"), "2d3"} }, {"pegasus", 0, TRUE, TRUE, 'p', "9-12", {CANFLY, ISFAST, ISLARGE, LOWFRIENDLY}, 0, 0, 4, {15, 50, 3, 6, HPT("4d8"), "1d3/1d8/1d8"} }, {"lemure", 0, TRUE, FALSE, 'L', "2-4", {ISMEAN, ISREGEN, MAGICHIT, ISUNDEAD, ISFLOCK}, 0, 0, 3, {10, 65, 3, 7, HPT("3d8"), "1d3"} }, {"zemure", 0, TRUE, FALSE, 'z', "2-4", {ISMEAN, ISREGEN, MAGICHIT, ISUNDEAD, ISFLOCK}, 0, 0, 3, {10, 65, 4, 7, HPT("3d8"), "1d4"} }, {"giant beaver", 0, TRUE, TRUE, 'B', "6-9", {ISMEAN, CANSWIM, ISSWARM}, 0, 0, 4, {10, 60, 1, 6, HPT("4d8"), "4d4"} }, {"crocodile", 0, TRUE, TRUE, 'c', "2-5", {ISMEAN, CANSWIM, CANSURPRISE, ISFLOCK, ISLARGE}, 0, 0, 4, {15, 60, 3, 5, HPT("3d8"), "1d3/2d4"} }, {"hipogriff", 0, TRUE, TRUE, 'h', "3-6", {CANFLY, ISMEAN}, 0, 0, 4, {12, 60, 3, 5, HPT("3d8+3"), "1d6/1d6/1d10"} }, {"giant goat", 0, TRUE, TRUE, 'G', "3-5", {ISMEAN, ISFAST, ISLARGE}, 0, 0, 4, {10, 85, 3, 7, HPT("3d8+1"), "2d8"} }, {"wererat", 20, TRUE, TRUE, 'r', "11-12", {ISMEAN, CANSUMMON, MAGICHIT, ISFLOCK}, "giant rat", 4, 4, {10, 90, 3, 6, HPT("3d8+1"), "1d8"} }, {"ulodyte", 0, TRUE, TRUE, 'u', "5-8", {ISLARGE}, 0, 0, 3, {10, 80, 3, 6, HPT("3d8"), "1d3/1d3"} }, {"brown bear", 0, TRUE, TRUE, 'U', "5-8", {CANHUG, ISLARGE}, 0, 0, 3, {10, 80, 3, 6, HPT("4d8+5"), "2d6/1d8"} }, {"ghoul", 0, TRUE, TRUE, 'g', "5-7", {ISMEAN, CANPARALYZE, ISUNDEAD, ISFLOCK}, 0, 0, 2, {10, 65, 2, 6, HPT("2d8"), "1d3/1d3/1d6"} }, {"giant hyena", 0, TRUE, TRUE, 'H', "3-5", {ISMEAN, ISLARGE}, 0, 0, 5, {10, 90, 2, 7, HPT("3d8"), "3d4"} }, {"huorn", 0, TRUE, TRUE, 'h', "6-10", {CANBBURN, ISSHADOW, CANHUG}, 0, 0, 3, {18, 60, 3, 7, HPT("5d6"), "3d3"} }, {"piercer", 0, TRUE, FALSE, 'P', "0-0", {NOMOVE, CANSURPRISE, ISSWARM}, 0, 0, 4, {10, 60, 3, 3, HPT("4d8"), "4d6"} }, {"ape", 0, TRUE, FALSE, 'A', "4-6", {CANHUG}, 0, 0, 1, {10, 50, 3, 6, HPT("4d8+1"), "2d3"} }, {"homonculous", 0, TRUE, TRUE, 'H', "9-15", {CANFLY, ISSMALL, LOWFRIENDLY}, 0, 0, 2, {10, 81, 3, 6, HPT("2d8"), "1d3"} }, {"leprechaun", 0, TRUE, FALSE, 'L', "15-16", {ISMEAN, CARRYGOLD, STEALGOLD, CANBARGAIN, MEDFRIENDLY}, 0, 0, 1, {10, 80, 8, -6, HPT("4d8+1"), "1d1"} }, {"ogre", 50, TRUE, TRUE, 'o', "5-7", {ISMEAN, ISGREED, ISLARGE, ISFLOCK}, 0, 0, 5, {18, 90, 4, 5, HPT("4d8+1"), "2d6"} }, {"bull", 0, TRUE, TRUE, 'B', "3-5", {ISMEAN, CANTRAMPLE, ISFLOCK, ISLARGE}, 0, 0, 4, {14, 85, 2, 7, HPT("4d8"), "1d6"} }, {"wild boar", 0, TRUE, TRUE, 'w', "3-5", {ISMEAN, ISFLOCK}, 0, 0, 4, {15, 85, 3, 7, HPT("3d8+3"), "3d4"} }, {"centaur", 15, TRUE, TRUE, 'C', "5-10", {CANSHOOT, CANWIELD, ISFLOCK, ISLARGE, LOWFRIENDLY}, 0, 0, 4, {10, 85, 4, 4, HPT("4d8"), "1d6/1d6"} }, {"pseudo dragon", 10, TRUE, FALSE, 'p', "15-16", {ISMEAN, ISGREED}, 0, 0, 9, {10, 100, 3, -1, HPT("3d9"), "2d3/1d6"} }, {"very young dragon", 10, TRUE, FALSE, 'd', "15-16", {ISMEAN, CANBRANDOM, ISGREED}, 0, 0, 9, {10, 100, 3, -1, HPT("3d9"), "1d8/1d8/3d10"} }, {"batarang", 20, TRUE, TRUE, 'B', "4-6", {ISMEAN, CANFRIGHTEN, CANFLY, CANSUMMON, ISFLOCK, ISSMALL}, "bat", 4, 5, {10, 100, 3, 1, HPT("3d8"), "1d4/1d4"} }, {"carnivorous ape", 5, TRUE, FALSE, 'A', "7-10", {CANHUG, ISMEAN, ISLARGE}, 0, 0, 4, {12, 120, 4, 6, HPT("5d8"), "2d4"} }, {"pixie", 0, TRUE, TRUE, 'p', "12-15", {LOWCAST, CANSHOOT, CANWIELD, ISINVIS, ISSMALL, ISFLOCK, LOWFRIENDLY}, 0, 0, 1, {6, 105, 3, 3, HPT("1d4"), "1d2"} }, {"mountain lion", 0, TRUE, TRUE, 'L', "3-5", {ISMEAN, ISFAST}, 0, 0, 6, {12, 110, 3, 6, HPT("3d8+1"), "1d3/1d3/1d6"} }, {"bugbear", 5, TRUE, TRUE, 'U', "5-8", {ISMEAN, CANSHOOT, CANWIELD, CANSURPRISE, ISFLOCK, ISLARGE}, "black bear", 2, 6, {16, 135, 3, 5, HPT("3d8+1"), "2d4"} }, {"giant lizard", 0, TRUE, TRUE, 'G', "2-4", {ISFAST, ISLARGE}, 0, 0, 4, {13, 125, 4, 5, HPT("3d8+1"), "1d8"} }, {"harpy", 0, TRUE, TRUE, 'H', "6-9", {CANFLY, CANWIELD}, 0, 0, 3, {10, 145, 4, 7, HPT("3d8"), "1d3/1d3/1d6"} }, {"iguanadon", 0, TRUE, TRUE, 'i', "0-0", {ISMEAN, ISLARGE, ISFLOCK}, 0, 0, 6, {12, 150, 4, 4, HPT("6d8"), "1d3/1d3/2d4"} }, {"leopard", 0, TRUE, TRUE, 'L', "3-5", {ISMEAN, ISFAST, CANSURPRISE}, 0, 0, 4, {10, 150, 4, 6, HPT("3d8+2"), "1d3/1d3/1d6"} }, {"nymph", 100, TRUE, FALSE, 'N', "15-16", {STEALMAGIC, MEDCAST, LOWFRIENDLY}, 0, 0, 3, {10, 350, 8, -5, HPT("3d8"), "0d0"} }, {"giant ram", 0, TRUE, TRUE, 'R', "3-5", {ISFLOCK, CANSUMMON, ISFAST}, "giant goat", 1, 4, {10, 285, 3, 6, HPT("4d8"), "2d6"} }, {"rot grub", 0, TRUE, TRUE, 'r', "0-0", {ISMEAN, CANINFEST, ISSWARM, ISSMALL, ISSLOW}, 0, 0, 0, {10, 0, 1, 9, HPT("1d1"), "0d0"} }, {"triffid", 0, TRUE, FALSE, 'T', "12-18", {ISMEAN, CANHOLD, ISSLOW, CANBBURN, CANPOISON}, "huorn", 1, 4, {10, 135, 10, 7, HPT("2d8"), "1d6"} }, {"violet fungi", 0, TRUE, FALSE, 'F', "0-0", {ISMEAN, CANHOLD, NOMOVE, CANROT, CANINFEST, CANPOISON}, 0, 0, 4, {10, 135, 3, 7, HPT("3d8"), "5d1"} }, {"giant tick", 0, TRUE, TRUE, 't', "0-0", {ISMEAN, CANDRAW, CANDISEASE, ISSMALL}, 0, 0, 2, {10, 105, 3, 3, HPT("3d8"), "1d4"} }, {"giant eagle", 0, TRUE, TRUE, 'e', "0-0", {ISMEAN, CANFLY, CANSPEAK, ISFLOCK, MEDFRIENDLY}, 0, 0, 4, {10, 150, 3, 7, HPT("4d8"), "1d6/1d6/2d6"} }, {"peryton", 0, TRUE, TRUE, 'P', "0-0", {ISMEAN, CANFLY, CANSPEAK, ISFLOCK}, 0, 0, 4, {10, 150, 3, 7, HPT("4d8"), "4d4"} }, {"gelatinous cube", 90, TRUE, TRUE, 'c', "0-0", {ISSLOW, ISMEAN, ISSCAVENGE, CANPARALYZE, ISLARGE}, 0, 0, 4, {10, 150, 4, 8, HPT("4d8"), "2d4"} }, {"giant owl", 0, TRUE, TRUE, 'O', "0-0", {ISMEAN, CANFLY}, 0, 0, 4, {10, 150, 4, 6, HPT("4d8"), "2d4/2d4/1d4+1"} }, {"giant skunk", 0, TRUE, TRUE, 's', "3-5", {CANSTINK, ISFLEE}, 0, 0, 5, {10, 165, 4, 7, HPT("5d8"), "1d6"} }, {"blink dog", 0, TRUE, TRUE, 'B', "8-10", {ISMEAN, CANBLINK, ISFLOCK, HIGHFRIENDLY}, 0, 0, 5, {10, 170, 4, 5, HPT("4d8"), "1d6"} }, {"rust monster", 0, TRUE, TRUE, 'R', "1-1", {ISMEAN, CANRUST}, 0, 0, 4, {10, 185, 5, 2, HPT("3d8"), "0d0/0d0"} }, {"ghast", 0, TRUE, TRUE, 'G', "11-12", {CANPARALYZE, CANSTINK, ISMEAN, ISUNDEAD}, 0, 0, 4, {10, 190, 4, 4, HPT("4d8"), "1d4/1d4/1d8"} }, {"blindheim", 0, TRUE, FALSE, 'b', "1", {ISMEAN, CANBLIND}, 0, 0, 4, {8, 200, 2, 1, HPT("4d8+2"), "1d8"} }, {"jaguar", 0, TRUE, TRUE, 'j', "3-5", {ISMEAN, CANSURPRISE, ISLARGE}, 0, 0, 5, {12, 205, 2, 7, HPT("4d8+1"), "2d3/2d5"} }, {"dryad", 100, TRUE, FALSE, 'D', "15-16", {STEALMAGIC, LOWFRIENDLY}, 0, 0, 3, {8, 325, 8, -2, HPT("2d8"), "1d1"} }, {"anhkheg", 5, TRUE, FALSE, 'a', "2-4", {ISMEAN,CANSURPRISE, ISLARGE}, 0, 0, 2, {10, 300, 3, 2, HPT("1d6+2"), "3d6"} }, {"shadow", 0, TRUE, TRUE, 's', "5-7", {ISSHADOW, ISMEAN, CANCHILL, ISUNDEAD, ISFLOCK}, 0, 0, 4, {10, 255, 3, 7, HPT("3d8+3"), "1d6"} }, {"gargoyle", 5, TRUE, TRUE, 'g', "5-7", {ISMEAN, MAGICHIT, ISFLOCK}, 0, 0, 5, {10, 165, 4, 5, HPT("4d8+4"), "1d3/1d3/1d6/1d4"} }, {"su-monster", 10, TRUE, TRUE, 's', "8-10", {ISMEAN}, 0, 0, 6, {10, 225, 5, 6, HPT("5d8+5"), "4d4/2d4"} }, {"gray ooze", 50, TRUE, FALSE, 'o', "1-1", {ISMEAN, NOMOVE, CANRUST, ISSCAVENGE, BOLTDIVIDE, BLOWDIVIDE, NOFIRE, NOCOLD}, 0, 0, 5, {10, 200, 3, 8, HPT("3d8+3"), "2d8"} }, {"psuedo-dragon", 0, TRUE, TRUE, 'P', "8-12", {CANSURPRISE, CANSEE, CANFLY, CANPOISON, LOWFRIENDLY}, 0, 0, 2, {10, 200, 3, 2, HPT("2d8"), "1d3"} }, {"lava child", 0, TRUE, TRUE, 'l', "8-12", {NOMETAL, NOFIRE, LOWFRIENDLY}, 0, 0, 5, {11, 205, 4, 4, HPT("5d8"), "1d6/1d6/2d6"} }, {"hell hound", 0, TRUE, TRUE, 'h', "5-8", {ISMEAN, NOFIRE, CANBFIRE, CANSURPRISE, CANSEE}, 0, 0, 8, {10, 250, 4, 4, HPT("5d8+4"), "1d10"} }, {"pech", 60, TRUE, FALSE, 'p', "8-14", {CANINWALL, LOWFRIENDLY}, 0, 0, 4, {10, 240, 4, 3, HPT("4d8"), "1d6"} }, {"winter wolf", 0, TRUE, TRUE, 'w', "8-12", {ISMEAN, ISFAST, CANBICE, NOCOLD, ISFLOCK}, "wolf", 6, 5, {10, 245, 4, 5, HPT("6d8"), "2d4"} }, {"sylph", 100, TRUE, FALSE, 's', "15-16", {STEALMAGIC, LOWFRIENDLY}, 0, 0, 3, {8, 325, 8, -2, HPT("2d8"), "1d1"} }, {"lion", 0, TRUE, TRUE, 'L', "3-5", {ISMEAN, ISLARGE}, 0, 0, 6, {12, 300, 4, 6, HPT("5d8+2"), "1d4/1d4/1d10"} }, {"undine", 30, TRUE, TRUE, 'u', "12-18", {ISMEAN, MAGICHIT, NOBOLT, NOCOLD, CANSUMMON, CANSEE, CANSWIM, ISFAST}, "crocodile", 3, 10, {10, 200, 9, 7, HPT("7d8+3"), "1d6/1d6/1d6/1d4"} }, {"ochre jelly", 0, TRUE, FALSE, 'O', "1-1", {ISMEAN, ISSLOW, BOLTDIVIDE, CANROT}, "gelatinous cube", 2, 10, {10, 250, 4, 8, HPT("6d8"), "3d4"} }, {"phoenix", 5, TRUE, FALSE, 'X', "5-7", {NOFIRE, NOBOLT, CANSPEAK, CANBFIRE, ISLARGE, MEDFRIENDLY}, 0, 0, 8, {10, 200, 4, 2, HPT("4d8"), "1d4/1d8"} }, {"owlbear", 5, TRUE, TRUE, 'U', "5-7", {ISMEAN, CANHUG, CANSUMMON, ISLARGE}, "giant owl", 2, 12, {10, 225, 5, 5, HPT("5d8+2"), "1d6/1d6/2d6"} }, {"phycomid",