Files
ProgressQuest-cli/pqcli/data/monsters.json
T
Dash c0c6c8aeba mechanic: move word lists to data files
The word lists (monsters, spells, equipment, races, classes, titles and
so on) now live in pqcli/data/*.json instead of pqcli/config.py. A
GameData object loaded at startup is passed to the simulation and UIs.

Users can replace any list by putting NAME.json in
$XDG_CONFIG_HOME/pqcli/data/ or a directory given with --data-dir.
--dump-data DIR copies the built-in files out for editing. Malformed
files are reported and pqcli exits before starting the UI.

Combat task descriptions come from the new combat_verbs list, with
{target} standing for the enemy. The built-in list holds only "Executing
{target}", and a single verb consumes no random roll, so stock gameplay
is unchanged. Recorded traces in tests/fixtures pin this down.

Monster, Race and Class stay in pqcli.config so existing saves still
load.

Resolves #3
2026-10-17 15:55:41 +02:00

235 lines
12 KiB
JSON

[
{"name": "Anhkheg", "level": 6, "item": "chitin"},
{"name": "Ant", "level": 0, "item": "antenna"},
{"name": "Ape", "level": 4, "item": "ass"},
{"name": "Baluchitherium", "level": 14, "item": "ear"},
{"name": "Beholder", "level": 10, "item": "eyestalk"},
{"name": "Black Pudding", "level": 10, "item": "saliva"},
{"name": "Blink Dog", "level": 4, "item": "eyelid"},
{"name": "Cub Scout", "level": 1, "item": "neckerchief"},
{"name": "Girl Scout", "level": 2, "item": "cookie"},
{"name": "Boy Scout", "level": 3, "item": "merit badge"},
{"name": "Eagle Scout", "level": 4, "item": "merit badge"},
{"name": "Bugbear", "level": 3, "item": "skin"},
{"name": "Bugboar", "level": 3, "item": "tusk"},
{"name": "Boogie", "level": 3, "item": "slime"},
{"name": "Camel", "level": 2, "item": "hump"},
{"name": "Carrion Crawler", "level": 3, "item": "egg"},
{"name": "Catoblepas", "level": 6, "item": "neck"},
{"name": "Centaur", "level": 4, "item": "rib"},
{"name": "Centipede", "level": 0, "item": "leg"},
{"name": "Cockatrice", "level": 5, "item": "wattle"},
{"name": "Couatl", "level": 9, "item": "wing"},
{"name": "Crayfish", "level": 0, "item": "antenna"},
{"name": "Demogorgon", "level": 53, "item": "tentacle"},
{"name": "Jubilex", "level": 17, "item": "gel"},
{"name": "Manes", "level": 1, "item": "tooth"},
{"name": "Orcus", "level": 27, "item": "wand"},
{"name": "Succubus", "level": 6, "item": "bra"},
{"name": "Vrock", "level": 8, "item": "neck"},
{"name": "Hezrou", "level": 9, "item": "leg"},
{"name": "Glabrezu", "level": 10, "item": "collar"},
{"name": "Nalfeshnee", "level": 11, "item": "tusk"},
{"name": "Marilith", "level": 7, "item": "arm"},
{"name": "Balor", "level": 8, "item": "whip"},
{"name": "Yeenoghu", "level": 25, "item": "flail"},
{"name": "Asmodeus", "level": 52, "item": "leathers"},
{"name": "Baalzebul", "level": 43, "item": "pants"},
{"name": "Barbed Devil", "level": 8, "item": "flame"},
{"name": "Bone Devil", "level": 9, "item": "hook"},
{"name": "Dispater", "level": 30, "item": "matches"},
{"name": "Erinyes", "level": 6, "item": "thong"},
{"name": "Geryon", "level": 30, "item": "cornucopia"},
{"name": "Malebranche", "level": 5, "item": "fork"},
{"name": "Ice Devil", "level": 11, "item": "snow"},
{"name": "Lemure", "level": 3, "item": "blob"},
{"name": "Pit Fiend", "level": 13, "item": "seed"},
{"name": "Ankylosaurus", "level": 9, "item": "tail"},
{"name": "Brontosaurus", "level": 30, "item": "brain"},
{"name": "Diplodocus", "level": 24, "item": "fin"},
{"name": "Elasmosaurus", "level": 15, "item": "neck"},
{"name": "Gorgosaurus", "level": 13, "item": "arm"},
{"name": "Iguanadon", "level": 6, "item": "thumb"},
{"name": "Megalosaurus", "level": 12, "item": "jaw"},
{"name": "Monoclonius", "level": 8, "item": "horn"},
{"name": "Pentasaurus", "level": 12, "item": "head"},
{"name": "Stegosaurus", "level": 18, "item": "plate"},
{"name": "Triceratops", "level": 16, "item": "horn"},
{"name": "Tyrannosaurus Rex", "level": 18, "item": "forearm"},
{"name": "Djinn", "level": 7, "item": "lamp"},
{"name": "Doppelganger", "level": 4, "item": "face"},
{"name": "Black Dragon", "level": 7, "item": null},
{"name": "Plaid Dragon", "level": 7, "item": "sporrin"},
{"name": "Blue Dragon", "level": 9, "item": null},
{"name": "Beige Dragon", "level": 9, "item": null},
{"name": "Brass Dragon", "level": 7, "item": "pole"},
{"name": "Tin Dragon", "level": 8, "item": null},
{"name": "Bronze Dragon", "level": 9, "item": "medal"},
{"name": "Chromatic Dragon", "level": 16, "item": "scale"},
{"name": "Copper Dragon", "level": 8, "item": "loafer"},
{"name": "Gold Dragon", "level": 8, "item": "filling"},
{"name": "Green Dragon", "level": 8, "item": null},
{"name": "Platinum Dragon", "level": 21, "item": null},
{"name": "Red Dragon", "level": 10, "item": "cocktail"},
{"name": "Silver Dragon", "level": 10, "item": null},
{"name": "White Dragon", "level": 6, "item": "tooth"},
{"name": "Dragon Turtle", "level": 13, "item": "shell"},
{"name": "Dryad", "level": 2, "item": "acorn"},
{"name": "Dwarf", "level": 1, "item": "drawers"},
{"name": "Eel", "level": 2, "item": "sashimi"},
{"name": "Efreet", "level": 10, "item": "cinder"},
{"name": "Sand Elemental", "level": 8, "item": "glass"},
{"name": "Bacon Elemental", "level": 10, "item": "bit"},
{"name": "Porn Elemental", "level": 12, "item": "lube"},
{"name": "Cheese Elemental", "level": 14, "item": "curd"},
{"name": "Hair Elemental", "level": 16, "item": "follicle"},
{"name": "Swamp Elf", "level": 1, "item": "lilypad"},
{"name": "Brown Elf", "level": 1, "item": "tusk"},
{"name": "Sea Elf", "level": 1, "item": "jerkin"},
{"name": "Ettin", "level": 10, "item": "fur"},
{"name": "Frog", "level": 0, "item": "leg"},
{"name": "Violet Fungi", "level": 3, "item": "spore"},
{"name": "Gargoyle", "level": 4, "item": "gravel"},
{"name": "Gelatinous Cube", "level": 4, "item": "jam"},
{"name": "Ghast", "level": 4, "item": "vomit"},
{"name": "Ghost", "level": 10, "item": null},
{"name": "Ghoul", "level": 2, "item": "muscle"},
{"name": "Humidity Giant", "level": 12, "item": "drops"},
{"name": "Beef Giant", "level": 11, "item": "steak"},
{"name": "Quartz Giant", "level": 10, "item": "crystal"},
{"name": "Porcelain Giant", "level": 9, "item": "fixture"},
{"name": "Rice Giant", "level": 8, "item": "grain"},
{"name": "Cloud Giant", "level": 12, "item": "condensation"},
{"name": "Fire Giant", "level": 11, "item": "cigarettes"},
{"name": "Frost Giant", "level": 10, "item": "snowman"},
{"name": "Hill Giant", "level": 8, "item": "corpse"},
{"name": "Stone Giant", "level": 9, "item": "hatchling"},
{"name": "Storm Giant", "level": 15, "item": "barometer"},
{"name": "Mini Giant", "level": 4, "item": "pompadour"},
{"name": "Gnoll", "level": 2, "item": "collar"},
{"name": "Gnome", "level": 1, "item": "hat"},
{"name": "Goblin", "level": 1, "item": "ear"},
{"name": "Grid Bug", "level": 1, "item": "carapace"},
{"name": "Jellyrock", "level": 9, "item": "seedling"},
{"name": "Beer Golem", "level": 15, "item": "foam"},
{"name": "Oxygen Golem", "level": 17, "item": "platelet"},
{"name": "Cardboard Golem", "level": 14, "item": "recycling"},
{"name": "Rubber Golem", "level": 16, "item": "ball"},
{"name": "Leather Golem", "level": 15, "item": "fob"},
{"name": "Gorgon", "level": 8, "item": "testicle"},
{"name": "Gray Ooze", "level": 3, "item": "gravy"},
{"name": "Green Slime", "level": 2, "item": "sample"},
{"name": "Griffon", "level": 7, "item": "nest"},
{"name": "Banshee", "level": 7, "item": "larynx"},
{"name": "Harpy", "level": 3, "item": "mascara"},
{"name": "Hell Hound", "level": 5, "item": "tongue"},
{"name": "Hippocampus", "level": 4, "item": "mane"},
{"name": "Hippogriff", "level": 3, "item": "egg"},
{"name": "Hobgoblin", "level": 1, "item": "patella"},
{"name": "Homunculus", "level": 2, "item": "fluid"},
{"name": "Hydra", "level": 8, "item": "gyrum"},
{"name": "Imp", "level": 2, "item": "tail"},
{"name": "Invisible Stalker", "level": 8, "item": null},
{"name": "Iron Peasant", "level": 3, "item": "chaff"},
{"name": "Jumpskin", "level": 3, "item": "shin"},
{"name": "Kobold", "level": 1, "item": "penis"},
{"name": "Leprechaun", "level": 1, "item": "wallet"},
{"name": "Leucrotta", "level": 6, "item": "hoof"},
{"name": "Lich", "level": 11, "item": "crown"},
{"name": "Lizard Man", "level": 2, "item": "tail"},
{"name": "Lurker", "level": 10, "item": "sac"},
{"name": "Manticore", "level": 6, "item": "spike"},
{"name": "Mastodon", "level": 12, "item": "tusk"},
{"name": "Medusa", "level": 6, "item": "eye"},
{"name": "Multicell", "level": 2, "item": "dendrite"},
{"name": "Pirate", "level": 1, "item": "booty"},
{"name": "Berserker", "level": 1, "item": "shirt"},
{"name": "Caveman", "level": 2, "item": "club"},
{"name": "Dervish", "level": 1, "item": "robe"},
{"name": "Merman", "level": 1, "item": "trident"},
{"name": "Mermaid", "level": 1, "item": "gills"},
{"name": "Mimic", "level": 9, "item": "hinge"},
{"name": "Mind Flayer", "level": 8, "item": "tentacle"},
{"name": "Minotaur", "level": 6, "item": "map"},
{"name": "Yellow Mold", "level": 1, "item": "spore"},
{"name": "Morkoth", "level": 7, "item": "teeth"},
{"name": "Mummy", "level": 6, "item": "gauze"},
{"name": "Naga", "level": 9, "item": "rattle"},
{"name": "Nebbish", "level": 1, "item": "belly"},
{"name": "Neo-Otyugh", "level": 11, "item": "organ "},
{"name": "Nixie", "level": 1, "item": "webbing"},
{"name": "Nymph", "level": 3, "item": "hanky"},
{"name": "Ochre Jelly", "level": 6, "item": "nucleus"},
{"name": "Octopus", "level": 2, "item": "beak"},
{"name": "Ogre", "level": 4, "item": "talon"},
{"name": "Ogre Mage", "level": 5, "item": "apparel"},
{"name": "Orc", "level": 1, "item": "snout"},
{"name": "Otyugh", "level": 7, "item": "organ"},
{"name": "Owlbear", "level": 5, "item": "feather"},
{"name": "Pegasus", "level": 4, "item": "aileron"},
{"name": "Peryton", "level": 4, "item": "antler"},
{"name": "Piercer", "level": 3, "item": "tip"},
{"name": "Pixie", "level": 1, "item": "dust"},
{"name": "Man-o-war", "level": 3, "item": "tentacle"},
{"name": "Purple Worm", "level": 15, "item": "dung"},
{"name": "Quasit", "level": 3, "item": "tail"},
{"name": "Rakshasa", "level": 7, "item": "pajamas"},
{"name": "Rat", "level": 0, "item": "tail"},
{"name": "Remorhaz", "level": 11, "item": "protrusion"},
{"name": "Roc", "level": 18, "item": "wing"},
{"name": "Roper", "level": 11, "item": "twine"},
{"name": "Rot Grub", "level": 1, "item": "eggsac"},
{"name": "Rust Monster", "level": 5, "item": "shavings"},
{"name": "Satyr", "level": 5, "item": "hoof"},
{"name": "Sea Hag", "level": 3, "item": "wart"},
{"name": "Silkie", "level": 3, "item": "fur"},
{"name": "Shadow", "level": 3, "item": "silhouette"},
{"name": "Shambling Mound", "level": 10, "item": "mulch"},
{"name": "Shedu", "level": 9, "item": "hoof"},
{"name": "Shrieker", "level": 3, "item": "stalk"},
{"name": "Skeleton", "level": 1, "item": "clavicle"},
{"name": "Spectre", "level": 7, "item": "vestige"},
{"name": "Sphinx", "level": 10, "item": "paw"},
{"name": "Spider", "level": 0, "item": "web"},
{"name": "Sprite", "level": 1, "item": "can"},
{"name": "Stirge", "level": 1, "item": "proboscis"},
{"name": "Stun Bear", "level": 5, "item": "tooth"},
{"name": "Stun Worm", "level": 2, "item": "trode"},
{"name": "Su-monster", "level": 5, "item": "tail"},
{"name": "Sylph", "level": 3, "item": "thigh"},
{"name": "Titan", "level": 20, "item": "sandal"},
{"name": "Trapper", "level": 12, "item": "shag"},
{"name": "Treant", "level": 10, "item": "acorn"},
{"name": "Triton", "level": 3, "item": "scale"},
{"name": "Troglodyte", "level": 2, "item": "tail"},
{"name": "Troll", "level": 6, "item": "hide"},
{"name": "Umber Hulk", "level": 8, "item": "claw"},
{"name": "Unicorn", "level": 4, "item": "blood"},
{"name": "Vampire", "level": 8, "item": "pancreas"},
{"name": "Wight", "level": 4, "item": "lung"},
{"name": "Will-o'-the-Wisp", "level": 9, "item": "wisp"},
{"name": "Wraith", "level": 5, "item": "finger"},
{"name": "Wyvern", "level": 7, "item": "wing"},
{"name": "Xorn", "level": 7, "item": "jaw"},
{"name": "Yeti", "level": 4, "item": "fur"},
{"name": "Zombie", "level": 2, "item": "forehead"},
{"name": "Wasp", "level": 0, "item": "stinger"},
{"name": "Rat", "level": 1, "item": "tail"},
{"name": "Bunny", "level": 0, "item": "ear"},
{"name": "Moth", "level": 0, "item": "dust"},
{"name": "Beagle", "level": 0, "item": "collar"},
{"name": "Midge", "level": 0, "item": "corpse"},
{"name": "Ostrich", "level": 1, "item": "beak"},
{"name": "Billy Goat", "level": 1, "item": "beard"},
{"name": "Bat", "level": 1, "item": "wing"},
{"name": "Koala", "level": 2, "item": "heart"},
{"name": "Wolf", "level": 2, "item": "paw"},
{"name": "Whippet", "level": 2, "item": "collar"},
{"name": "Uruk", "level": 2, "item": "boot"},
{"name": "Poroid", "level": 4, "item": "node"},
{"name": "Moakum", "level": 8, "item": "frenum"},
{"name": "Fly", "level": 0, "item": null},
{"name": "Hogbird", "level": 3, "item": "curl"},
{"name": "Wolog", "level": 4, "item": "lemma"}
]