import random as r DRAGON_TYPES = ["Cat", "Fairy", "Sedan", "Brass", "Space", "Wolf", "Iron", "Spellcaster", "Green", "Red"] prob = [ { 'id': 0, #integer 'name': f"Baby {r.choice(DRAGON_TYPES)} Dragon", # formatted string 'shortname': "dragon", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "It's very naive about its power level.", # formatted string 'stats': [2,3,3,3], # four-integer list }, { 'id': 1, #integer 'name': f"Cat Dragon", # formatted string 'shortname': "dragon", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "It's covered in fur; its Hairball Breath may deal Brains damage instead of Body.", # formatted string 'stats': [1,4,3,4], # four-integer list }, { 'id': 2, #integer 'name': f"Fairy Dragon", # formatted string 'shortname': "dragon", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "Its Glitter Breath makes targets super visible. It loves sweets.", # formatted string 'stats': [2,4,3,4], # four-integer list }, { 'id': 3, #integer 'name': f"Sedan Dragon", # formatted string 'shortname': "dragon", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "It has four wings and Carbon Monoxide Breath. It may carry and use Gear.", # formatted string 'stats': [2,4,3,5], # four-integer list }, { 'id': 4, #integer 'name': f"Brass Dragon", # formatted string 'shortname': "dragon", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "A being of Order, it mimics a steampunk theme.", # formatted string 'stats': [4,3,4,4], # four-integer list }, { 'id': 5, #integer 'name': f"Space Dragon", # formatted string 'shortname': "dragon", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "It has Solar Wind Breath that pushes targets back.", # formatted string 'stats': [3,4,4,5], # four-integer list }, { 'id': 6, #integer 'name': f"Wolf Dragons", # formatted string 'shortname': "dragons", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': False, # boolean 'note': "They are covered in fur and attack in packs (the stats are for the pack).", # formatted string 'stats': [4,5,3,5], # four-integer list }, { 'id': 7, #integer 'name': f"Iron Dragon", # formatted string 'shortname': "dragon", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "It's covered in actual iron and has Coal Dust Breath. It enjoys conquest and destruction for their own sake.", # formatted string 'stats': [3,5,5,5], # four-integer list }, { 'id': 8, #integer 'name': f"{r.choice(DRAGON_TYPES)} Dragon Spellcaster", # formatted string 'shortname': "dragon", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "It prefers to use spells rather than its physical attacks.", # formatted string 'stats': [4,5,6,4], # four-integer list }, { 'id': 9, #integer 'name': f"Old Green, the Dragon", # formatted string 'shortname': "dragon", # formatted string 'hasMinion': True, # boolean 'potentialMinions': [x for x in list(range(121)) if x != 9 and x != 10] # None or list of IDs 'needsName': False, # boolean 'note': "It will send its minion to attack first, and exhales a toxic, opaque gas to cover its escape if needed.", # formatted string 'stats': [5,3,6,6], # four-integer list }, { 'id': 10, #integer 'name': f"Old Red, the Dragon", # formatted string 'shortname': "dragon", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': False, # boolean 'note': "It's bigger than you expect, even when you're expecting it. It melts things with its Fire Breath for fun.", # formatted string 'stats': [3,5,6,6], # four-integer list }, { 'id': 11, #integer 'name': f"Toxic Air", # formatted string 'shortname': "air", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': False, # boolean 'note': "It might eat through protective layers, and is immune to Brains damage and automatically fails Brains rolls.", # formatted string 'stats': [0,6,0,6], # four-integer list }, { 'id': 12, #integer 'name': f"Friendly Living Asteroid", # formatted string 'shortname': "asteroid", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "It wants to follow the kobolds home like the biggest possible puppy.", # formatted string 'stats': [2,3,1,6], # four-integer list }, { 'id': 13, #integer 'name': f"Aggressive Living Asteroid", # formatted string 'shortname': "asteroid", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "It's an ambush hunter that sees ships as a crunchy outside with chewy centers.", # formatted string 'stats': [2,4,1,6], # four-integer list }, { 'id': 14, #integer 'name': f"Impending Nova", # formatted string 'shortname': "nova", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': False, # boolean 'note': "Tick, tick, tick... Set a timer and start marking off Body. The nova goes off when its Body hits 0. It's immune to Brains damage and automatically fails Brains rolls.", # formatted string 'stats': [2,6,0,6], # four-integer list }, { 'id': 15, #integer 'name': f"Volcanic Eruption", # formatted string 'shortname': f"eruption", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': False, # boolean 'note': "Its molten flow threatens to destroy something important. It is immune to Brains damage and automatically fails Brains rolls.", # formatted string 'stats': [4,5,0,6], # four-integer list }, { 'id': 16, #integer 'name': f"Tremors", # formatted string 'shortname': f"tremors", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': False, # boolean 'note': "The earth shakes at the least opportune moments. They are immune to Brains damage and automatically fails Brains rolls.", # formatted string 'stats': [4,6,0,6], # four-integer list }, { 'id': 17, #integer 'name': f"Fire!", # formatted string 'shortname': f"fire", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': False, # boolean 'note': "It may consume things not normally considered flammable. It is immune to Brains damage and automatically fails Brains rolls.", # formatted string 'stats': [5,6,0,6], # four-integer list }, { 'id': 18, #integer 'name': f"Volcano 'God'", # formatted string 'shortname': f"god", # formatted string 'hasMinion': True, # boolean 'potentialMinions': [x for x in list(range(121)) if x not in [9,10,18]] # None or list of IDs 'needsName': True, # boolean 'note': "It's not actually a god; it just likes destroying things with fire. Its minion may be a worshiper.", # formatted string 'stats': [4,5,3,6], # four-integer list }, { 'id': 19, #integer 'name': f"Tiny, Hungry Black Hole", # formatted string 'shortname': f"black hole", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': False, # boolean 'note': "It's semi-intelligent and mobile. It might stalk ship-sized objects.", # formatted string 'stats': [4,6,3,6], # four-integer list }, { 'id': 20, #integer 'name': f"Cranky Nebula", # formatted string 'shortname': f"nebula", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "It's a baby and wants attention. Its Brains reflects resilience against damage more than actual mental ability.", # formatted string 'stats': [4,5,6,6], # four-integer list }, { 'id': 21, #integer 'name': f"Sentient Angry Star", # formatted string 'shortname': f"star", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "It demands tribute, and attacks with solar flares... but it can't move out of its orbit.", # formatted string 'stats': [5,4,5,6], # four-integer list }, { 'id': 22, #integer 'name': f"Elf Red Shirt Away Team", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': False, # boolean 'note': "They don't have access to their own ship, but do have their own mission that may or may not conflict with the kobolds'.", # formatted string 'stats': [3,2,3,3], # four-integer list }, { 'id': 23, #integer 'name': f"Elf Scout Ship", # formatted string 'shortname': f"ship", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "A short-range ship that looks like a streamlined butterfly. Its crew is a pilot and a gunner.", # formatted string 'stats': [2,3,3,4], # four-integer list }, { 'id': 24, #integer 'name': f"Elf Guard Ship", # formatted string 'shortname': f"ship", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "A short-range ship that looks like a stinging insect. Its crew is a pilot and a gunner.", # formatted string 'stats': [2,4,3,4], # four-integer list }, { 'id': 25, #integer 'name': f"Elf Cargo Ship", # formatted string 'shortname': f"ship", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "A long-range ship that resembles a beetle. Its cargo might be anything, and its crew always assume hostile intentions.", # formatted string 'stats': [3,3,3,5], # four-integer list }, { 'id': 26, #integer 'name': f"Elf Long Range Scout", # formatted string 'shortname': f"ship", # formatted string 'hasMinion': False, # boolean 'potentialMinions': [22,23,24,25,27,29,30,31,32] # None or list of IDs 'needsName': True, # boolean 'note': "A long-range ship that resembles a waterfowl. It prefers to run rather than engage; if it flees, its minion is what's sent to investigate.", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 27, #integer 'name': f"Detachment from the Elf Armada", # formatted string 'shortname': f"detachment", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': False, # boolean 'note': "A small group of ships focused more on science than war, they're usually on a research, escort, or retrieval mission.", # formatted string 'stats': [4,3,5,4], # four-integer list }, { 'id': 28, #integer 'name': f"Elf Armada Shipyard", # formatted string 'shortname': f"shipyard", # formatted string 'hasMinion': False, # boolean 'potentialMinions': [22,23,24,25,26,27,29,30,31,32] # None or list of IDs 'needsName': True, # boolean 'note': "It resembles a giant tree.", # formatted string 'stats': [6,2,3,6], # four-integer list }, { 'id': 29, #integer 'name': f"Elf Stealth Special Ops Team", # formatted string 'shortname': f"team", # formatted string 'hasMinion': True, # boolean 'potentialMinions': [x for x in list(range(121)) if x not in [11,12,13,14,15,16,17,18,19,20,28]] # None or list of IDs 'needsName': False, # boolean 'note': "The team is almost certainly opposed to the kobolds' mission. Its first action will be done by surprise, and it will use its minion as a feint.", # formatted string 'stats': [4,6,4,4], # four-integer list }, { 'id': 30, #integer 'name': f"Elf Armada Carrier", # formatted string 'shortname': f"carrier", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "It comes with a swarm of wasp fighters, each with 1 Body. The carrier resembles an enormous chrysalis.", # formatted string 'stats': [5,5,3,6], # four-integer list }, { 'id': 31, #integer 'name': f"Elf Armada Warship", # formatted string 'shortname': f"ship", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "It looks like a bird of prey. It's heavily armed but not maneuverable, and attempts to use shielding to make up for its inability to dodge.", # formatted string 'stats': [6,6,2,6], # four-integer list }, { 'id': 32, #integer 'name': f"Elf Armada Flagship", # formatted string 'shortname': f"flagship", # formatted string 'hasMinion': True, # boolean 'potentialMinions': [22,23,24,25,26,27,29,30,31] # None or list of IDs 'needsName': True, # boolean 'note': "It looks like a flying forest. Its captain assumes that all their orders will be followed - even orders given to non-elves.", # formatted string 'stats': [5,4,5,6], # four-integer list }, { 'id': 33, #integer 'name': f"Floating, Flaming Skull", # formatted string 'shortname': f"skull", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "It likes a good joke. And a bad joke. And slapstick. And shooting fireballs out of its mouth. It's willing to bargain if the kobolds have something it wants.", # formatted string 'stats': [1,6,3,1], # four-integer list }, { 'id': 34, #integer 'name': f"Newly-Raised Vampire", # formatted string 'shortname': f"vampire", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "They're power-mad and vastly overestimate their own abilities. The GM may interpret 'vampire powers' however they please.", # formatted string 'stats': [2,4,2,4], # four-integer list }, { 'id': 35, #integer 'name': f"Undead Sample Pack", # formatted string 'shortname': f"undead", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': False, # boolean 'note': "A swarm of zombies and skeletons; each Body damage kills one. What they were before they died is the GM's choice.", # formatted string 'stats': [0,5,2,6], # four-integer list }, { 'id': 36, #integer 'name': f"Ranged Skeletons", # formatted string 'shortname': f"skeletons", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': False, # boolean 'note': "They may have bows, ray guns, ray bows, or something else. Each Body damage kills one. They're bad at melee combat.", # formatted string 'stats': [2,5,2,5], # four-integer list }, { 'id': 37, #integer 'name': f"Old Lich who Wants Everyone to Stay Off Their Lawn", # formatted string 'shortname': f"lich", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "They're grumpy, but secretly like having company. They claim to own whatever property they're on - whether or not it's true.", # formatted string 'stats': [4,2,6,3], # four-integer list }, { 'id': 38, #integer 'name': f"Zombie Brute Squad", # formatted string 'shortname': f"zombies", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': False, # boolean 'note': "Each Body damage kills one. They can either be ordered to attack or to block; they won't change targets unless they're told to.", # formatted string 'stats': [3,5,2,6], # four-integer list }, { 'id': 39, #integer 'name': f"Vampire Royalty", # formatted string 'shortname': f"vampire", # formatted string 'hasMinion': True, # boolean 'potentialMinions': [33,34,35,36,37,38,40,41,42,43,44] # None or list of IDs 'needsName': True, # boolean 'note': "They have lived this long by being patient and cautious. Despite that, their minion may not be 100% loyal.", # formatted string 'stats': [4,2,5,6], # four-integer list }, { 'id': 40, #integer 'name': f"Possessing Spirit", # formatted string 'shortname': f"spirit", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "It enjoys the parody of life, and hates any reminder that it's dead. It inhabits a host body until its Body is reduced to 0, but it's not dead until its Brains is reduced to 0.", # formatted string 'stats': [4,4,5,5], # four-integer list }, { 'id': 41, #integer 'name': f"Vengeful Spirit", # formatted string 'shortname': f"spirit", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "It wants revenge on whatever killed it, and it's willing to play the long game to get that revenge.", # formatted string 'stats': [6,6,6,2], # four-integer list }, { 'id': 42, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 43, #integer 'name': f"Necromantic Cult", # formatted string 'shortname': f"cult", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': False, # boolean 'note': "Each Body damage kills one member, but the full cult may be much larger than what's encountered. Its membership may not be fully undead, but its leaders certainly are.", # formatted string 'stats': [5,5,5,5], # four-integer list }, { 'id': 44, #integer 'name': f"Mummified Protector", # formatted string 'shortname': f"mummy", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "It wakes up when the place or object it protects is disturbed. All it wants is to go back to sleep - but if what it's protecting is destroyed, it will not rest until it has its revenge, and then goes dormant permanently.", # formatted string 'stats': [5,5,4,6], # four-integer list }, { 'id': 45, #integer 'name': f"Helperbot 1000", # formatted string 'shortname': f"robot", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': False, # boolean 'note': "It's half as good as Helperbot 2000. It's more incompetent than malicious, but it will defend itself.", # formatted string 'stats': [4,2,2,3], # four-integer list }, { 'id': 46, #integer 'name': f"Robot Spiders!", # formatted string 'shortname': f"spiders", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': False, # boolean 'note': "Each Body damage kills one spider, but there may be more lurking in the walls...", # formatted string 'stats': [3,3,2,4], # four-integer list }, { 'id': 47, #integer 'name': f"Spy Drones", # formatted string 'shortname': f"drones", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': False, # boolean 'note': "Each Body damage kills one drone; each drone can also be taken down by dealing its full Brain damage to that drone. The drones are not armed, but can ram kobolds and attack with rotors.", # formatted string 'stats': [4,4,3,2], # four-integer list }, { 'id': 48, #integer 'name': f"Supercomputer Bent on Multi-World Domination", # formatted string 'shortname': f"computer", # formatted string 'hasMinion': True, # boolean 'potentialMinions': [x for x in list(range(121)) if x not in [11,12,13,14,15,16,17,18,19,20,28,48, 53]] # None or list of IDs 'needsName': True, # boolean 'note': "It uses its minion to deal with interlopers; it's weak by itself and will try to hide its location.", # formatted string 'stats': [4,1,6,3], # four-integer list }, { 'id': 49, #integer 'name': f"Weaponized Robotic Interpreter", # formatted string 'shortname': f"robot", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "It's fluent in over six million forms of making suffering be your lot in life. You will feel their pain, but they're sorry about that. It's just a living.", # formatted string 'stats': [5,5,3,2], # four-integer list }, { 'id': 50, #integer 'name': f"Robot Soldiers", # formatted string 'shortname': f"robots", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': False, # boolean 'note': "Each Body damage will destroy one soldier; each soldier can also be taken down by dealing its full Brain damage to that soldier. They are usually humanoid, and attack in formation.", # formatted string 'stats': [3,4,3,6], # four-integer list }, { 'id': 51, #integer 'name': f"Robotic General", # formatted string 'shortname': f"general", # formatted string 'hasMinion': True, # boolean 'potentialMinions': [x for x in list(range(121)) if x not in [11,12,13,14,15,16,17,18,19,20,28,48]] # None or list of IDs 'needsName': True, # boolean 'note': "It will give orders to anyone and everyone, and will inflift Brains damage if not obeyed.", # formatted string 'stats': [3,3,6,5], # four-integer list }, { 'id': 52, #integer 'name': f"Rogue AI-controlled Ship", # formatted string 'shortname': f"ship", # formatted string 'hasMinion': True, # boolean 'potentialMinions': [x for x in list(range(121)) if x not in [11,12,13,14,15,16,17,18,19,20,28,48]] # None or list of IDs 'needsName': True, # boolean 'note': "It's not capable of entering a gravity well.", # formatted string 'stats': [3,3,6,6], # four-integer list }, { 'id': 53, #integer 'name': f"Supercomputer that Has Achieved Multi-World Domination", # formatted string 'shortname': f"computer", # formatted string 'hasMinion': True, # boolean 'potentialMinions': [x for x in list(range(121)) if x not in [11,12,13,14,15,16,17,18,19,20,28,48,53]] # None or list of IDs 'needsName': True, # boolean 'note': "Its home system may be a Dyson sphere across which it's evenly distributed.", # formatted string 'stats': [4,3,6,6], # four-integer list }, { 'id': 54, #integer 'name': f"Gray Goo", # formatted string 'shortname': f"goo", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': False, # boolean 'note': "World-eating nanites; they may not have actually eaten a world yet, but will if left uncontrolled. They are widely-distributed and must be fully destroyed or they will regenerate.", # formatted string 'stats': [4,6,6,4], # four-integer list }, { 'id': 55, #integer 'name': f"Giant Mech", # formatted string 'shortname': f"mech", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "If it had a crew, it doesn't anymore. Its end goal is unclear, but it doesn't care what it smashes on its way.", # formatted string 'stats': [4,6,4,6], # four-integer list }, { 'id': 56, #integer 'name': f"Kobold Workers", # formatted string 'shortname': f"kobolds", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': False, # boolean 'note': "They dig, build, and move things. Each Body damage will kill one kobold; each kobold can also be taken down by dealing their full Brain damage to that kobold. But they'd rather run than fight.", # formatted string 'stats': [3,2,3,3], # four-integer list }, { 'id': 57, #integer 'name': f"Kobold Supervisor", # formatted string 'shortname': f"kobold", # formatted string 'hasMinion': True, # boolean 'potentialMinions': [56] # None or list of IDs 'needsName': True, # boolean 'note': "They lead from a safe distance.", # formatted string 'stats': [3,2,4,3], # four-integer list }, { 'id': 58, #integer 'name': f"Kobold Inventor", # formatted string 'shortname': f"kobold", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "They invent things by taping two things together. Sometimes, they don't know what their invention is for until they've used it once.", # formatted string 'stats': [2,3,5,3], # four-integer list }, { 'id': 59, #integer 'name': f"Kobold Babysitter", # formatted string 'shortname': f"kobold", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "Oh god, they've got babies with them. The babies will swarm the party. Dealing 1 Body damage kills a baby, you monster. Once the babies are dead, the Babysitter has no reason to be around anymore. Order comes from the Babysitter, Chaos comes from the Babies.", # formatted string 'stats': [4,4,3,3], # four-integer list }, { 'id': 60, #integer 'name': f"Kobold Trap Designer", # formatted string 'shortname': f"kobold", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': f"They have {r.randint(1,6) + 1} traps set up and waiting, and they're surprisingly good at their job. They're a mix of low-tech and high-tech, and range from sharpened sticks to rigged thermal detonators. Each trap takes an Event to disarm.", # formatted string 'stats': [3,5,4,3], # four-integer list }, { 'id': 61, #integer 'name': f"Average Kobold", # formatted string 'shortname': f"kobold", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "They tried so hard, but fell so far, and in the end, does it even really matter? They resent the party for actually excelling in their fields, and are intent on proving themselves.", # formatted string 'stats': [4,4,4,4], # four-integer list }, { 'id': 62, #integer 'name': f"Kobold Sorcerer", # formatted string 'shortname': f"kobold", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "Anything not on fire is just going to have to wait its turn. They may have slightly overestimated their current power level.", # formatted string 'stats': [3,5,4,5], # four-integer list }, { 'id': 63, #integer 'name': f"Swolbold", # formatted string 'shortname': f"kobold", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "Do you even lift, bro? This kobold does. And they didn't skip leg day. They're not unintelligent, but they did skip classes to go to the gym.", # formatted string 'stats': [3,6,3,6], # four-integer list }, { 'id': 64, #integer 'name': f"Retired Kobold Adventurer", # formatted string 'shortname': f"kobold", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "They've seen the sights. They've done the things. They've earned the rewards. They just want to retire... and you won't let them. They're not as spry as they used to be, but they can still teach hatchlings a thing or two.", # formatted string 'stats': [5,5,5,4], # four-integer list }, { 'id': 65, #integer 'name': f"Kobold Adventurers", # formatted string 'shortname': f"kobolds", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': False, # boolean 'note': f"There are {r.randint(1,3) + 1} adventurers in the group, and each takes the full Body or Mind damage to be killed. They're the best at what they do, and what they do is be another group of kobolds in space.", # formatted string 'stats': [5,5,5,4], # four-integer list }, { 'id': 66, #integer 'name': f"Kobold Leader", # formatted string 'shortname': f"kobold", # formatted string 'hasMinion': True, # boolean 'potentialMinions': [56,57,58,59,60,61,62,63,64,65] # None or list of IDs 'needsName': True, # boolean 'note': "This kobold prefers to delegate. It's easier to avoid blame that way. They may attempt to command the PCs. Their instructions may inflict Brains damage.", # formatted string 'stats': [5,5,6,4], # four-integer list }, { 'id': 67, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 68, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 69, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 70, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 71, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 72, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 73, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 74, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 75, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 76, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 77, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 78, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 79, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 80, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 81, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 82, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 83, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 84, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 85, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 86, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 87, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 88, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 89, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 90, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 91, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 92, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 93, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 94, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 95, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 96, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 97, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 98, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 99, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 100, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 101, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 102, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 103, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 104, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 105, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 106, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 107, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 108, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 109, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 110, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 111, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 112, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 113, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 114, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 115, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 116, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 117, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 118, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 119, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, { 'id': 120, #integer 'name': f"", # formatted string 'shortname': f"", # formatted string 'hasMinion': False, # boolean 'potentialMinions': None # None or list of IDs 'needsName': True, # boolean 'note': "", # formatted string 'stats': [,,,], # four-integer list }, ]