A character/one-shot generator for KOBOLDS IN SPACE!
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

adversaries.py 46KB

4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
4 lat temu
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217
  1. import random as r
  2. DRAGON_TYPES = ["Cat", "Fairy", "Sedan", "Brass", "Space", "Wolf", "Iron", "Spellcaster", "Green", "Red"]
  3. prob = [
  4. {
  5. 'id': 0, #integer
  6. 'name': f"Baby {r.choice(DRAGON_TYPES)} Dragon", # formatted string
  7. 'shortname': "dragon", # formatted string
  8. 'hasMinion': False, # boolean
  9. 'potentialMinions': None # None or list of IDs
  10. 'needsName': True, # boolean
  11. 'note': "It's very naive about its power level.", # formatted string
  12. 'stats': [2,3,3,3], # four-integer list
  13. },
  14. {
  15. 'id': 1, #integer
  16. 'name': f"Cat Dragon", # formatted string
  17. 'shortname': "dragon", # formatted string
  18. 'hasMinion': False, # boolean
  19. 'potentialMinions': None # None or list of IDs
  20. 'needsName': True, # boolean
  21. 'note': "It's covered in fur; its Hairball Breath may deal Brains damage instead of Body.", # formatted string
  22. 'stats': [1,4,3,4], # four-integer list
  23. },
  24. {
  25. 'id': 2, #integer
  26. 'name': f"Fairy Dragon", # formatted string
  27. 'shortname': "dragon", # formatted string
  28. 'hasMinion': False, # boolean
  29. 'potentialMinions': None # None or list of IDs
  30. 'needsName': True, # boolean
  31. 'note': "Its Glitter Breath makes targets super visible. It loves sweets.", # formatted string
  32. 'stats': [2,4,3,4], # four-integer list
  33. },
  34. {
  35. 'id': 3, #integer
  36. 'name': f"Sedan Dragon", # formatted string
  37. 'shortname': "dragon", # formatted string
  38. 'hasMinion': False, # boolean
  39. 'potentialMinions': None # None or list of IDs
  40. 'needsName': True, # boolean
  41. 'note': "It has four wings and Carbon Monoxide Breath. It may carry and use Gear.", # formatted string
  42. 'stats': [2,4,3,5], # four-integer list
  43. },
  44. {
  45. 'id': 4, #integer
  46. 'name': f"Brass Dragon", # formatted string
  47. 'shortname': "dragon", # formatted string
  48. 'hasMinion': False, # boolean
  49. 'potentialMinions': None # None or list of IDs
  50. 'needsName': True, # boolean
  51. 'note': "A being of Order, it mimics a steampunk theme.", # formatted string
  52. 'stats': [4,3,4,4], # four-integer list
  53. },
  54. {
  55. 'id': 5, #integer
  56. 'name': f"Space Dragon", # formatted string
  57. 'shortname': "dragon", # formatted string
  58. 'hasMinion': False, # boolean
  59. 'potentialMinions': None # None or list of IDs
  60. 'needsName': True, # boolean
  61. 'note': "It has Solar Wind Breath that pushes targets back.", # formatted string
  62. 'stats': [3,4,4,5], # four-integer list
  63. },
  64. {
  65. 'id': 6, #integer
  66. 'name': f"Wolf Dragons", # formatted string
  67. 'shortname': "dragons", # formatted string
  68. 'hasMinion': False, # boolean
  69. 'potentialMinions': None # None or list of IDs
  70. 'needsName': False, # boolean
  71. 'note': "They are covered in fur and attack in packs (the stats are for the pack).", # formatted string
  72. 'stats': [4,5,3,5], # four-integer list
  73. },
  74. {
  75. 'id': 7, #integer
  76. 'name': f"Iron Dragon", # formatted string
  77. 'shortname': "dragon", # formatted string
  78. 'hasMinion': False, # boolean
  79. 'potentialMinions': None # None or list of IDs
  80. 'needsName': True, # boolean
  81. 'note': "It's covered in actual iron and has Coal Dust Breath. It enjoys conquest and destruction for their own sake.", # formatted string
  82. 'stats': [3,5,5,5], # four-integer list
  83. },
  84. {
  85. 'id': 8, #integer
  86. 'name': f"{r.choice(DRAGON_TYPES)} Dragon Spellcaster", # formatted string
  87. 'shortname': "dragon", # formatted string
  88. 'hasMinion': False, # boolean
  89. 'potentialMinions': None # None or list of IDs
  90. 'needsName': True, # boolean
  91. 'note': "It prefers to use spells rather than its physical attacks.", # formatted string
  92. 'stats': [4,5,6,4], # four-integer list
  93. },
  94. {
  95. 'id': 9, #integer
  96. 'name': f"Old Green, the Dragon", # formatted string
  97. 'shortname': "dragon", # formatted string
  98. 'hasMinion': True, # boolean
  99. 'potentialMinions': [x for x in list(range(121)) if x != 9 and x != 10] # None or list of IDs
  100. 'needsName': False, # boolean
  101. 'note': "It will send its minion to attack first, and exhales a toxic, opaque gas to cover its escape if needed.", # formatted string
  102. 'stats': [5,3,6,6], # four-integer list
  103. },
  104. {
  105. 'id': 10, #integer
  106. 'name': f"Old Red, the Dragon", # formatted string
  107. 'shortname': "dragon", # formatted string
  108. 'hasMinion': False, # boolean
  109. 'potentialMinions': None # None or list of IDs
  110. 'needsName': False, # boolean
  111. 'note': "It's bigger than you expect, even when you're expecting it. It melts things with its Fire Breath for fun.", # formatted string
  112. 'stats': [3,5,6,6], # four-integer list
  113. },
  114. {
  115. 'id': 11, #integer
  116. 'name': f"Toxic Air", # formatted string
  117. 'shortname': "air", # formatted string
  118. 'hasMinion': False, # boolean
  119. 'potentialMinions': None # None or list of IDs
  120. 'needsName': False, # boolean
  121. 'note': "It might eat through protective layers, and is immune to Brains damage and automatically fails Brains rolls.", # formatted string
  122. 'stats': [0,6,0,6], # four-integer list
  123. },
  124. {
  125. 'id': 12, #integer
  126. 'name': f"Friendly Living Asteroid", # formatted string
  127. 'shortname': "asteroid", # formatted string
  128. 'hasMinion': False, # boolean
  129. 'potentialMinions': None # None or list of IDs
  130. 'needsName': True, # boolean
  131. 'note': "It wants to follow the kobolds home like the biggest possible puppy.", # formatted string
  132. 'stats': [2,3,1,6], # four-integer list
  133. },
  134. {
  135. 'id': 13, #integer
  136. 'name': f"Aggressive Living Asteroid", # formatted string
  137. 'shortname': "asteroid", # formatted string
  138. 'hasMinion': False, # boolean
  139. 'potentialMinions': None # None or list of IDs
  140. 'needsName': True, # boolean
  141. 'note': "It's an ambush hunter that sees ships as a crunchy outside with chewy centers.", # formatted string
  142. 'stats': [2,4,1,6], # four-integer list
  143. },
  144. {
  145. 'id': 14, #integer
  146. 'name': f"Impending Nova", # formatted string
  147. 'shortname': "nova", # formatted string
  148. 'hasMinion': False, # boolean
  149. 'potentialMinions': None # None or list of IDs
  150. 'needsName': False, # boolean
  151. '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
  152. 'stats': [2,6,0,6], # four-integer list
  153. },
  154. {
  155. 'id': 15, #integer
  156. 'name': f"Volcanic Eruption", # formatted string
  157. 'shortname': f"eruption", # formatted string
  158. 'hasMinion': False, # boolean
  159. 'potentialMinions': None # None or list of IDs
  160. 'needsName': False, # boolean
  161. 'note': "Its molten flow threatens to destroy something important. It is immune to Brains damage and automatically fails Brains rolls.", # formatted string
  162. 'stats': [4,5,0,6], # four-integer list
  163. },
  164. {
  165. 'id': 16, #integer
  166. 'name': f"Tremors", # formatted string
  167. 'shortname': f"tremors", # formatted string
  168. 'hasMinion': False, # boolean
  169. 'potentialMinions': None # None or list of IDs
  170. 'needsName': False, # boolean
  171. 'note': "The earth shakes at the least opportune moments. They are immune to Brains damage and automatically fails Brains rolls.", # formatted string
  172. 'stats': [4,6,0,6], # four-integer list
  173. },
  174. {
  175. 'id': 17, #integer
  176. 'name': f"Fire!", # formatted string
  177. 'shortname': f"fire", # formatted string
  178. 'hasMinion': False, # boolean
  179. 'potentialMinions': None # None or list of IDs
  180. 'needsName': False, # boolean
  181. 'note': "It may consume things not normally considered flammable. It is immune to Brains damage and automatically fails Brains rolls.", # formatted string
  182. 'stats': [5,6,0,6], # four-integer list
  183. },
  184. {
  185. 'id': 18, #integer
  186. 'name': f"Volcano 'God'", # formatted string
  187. 'shortname': f"god", # formatted string
  188. 'hasMinion': True, # boolean
  189. 'potentialMinions': [x for x in list(range(121)) if x not in [9,10,18]] # None or list of IDs
  190. 'needsName': True, # boolean
  191. 'note': "It's not actually a god; it just likes destroying things with fire. Its minion may be a worshiper.", # formatted string
  192. 'stats': [4,5,3,6], # four-integer list
  193. },
  194. {
  195. 'id': 19, #integer
  196. 'name': f"Tiny, Hungry Black Hole", # formatted string
  197. 'shortname': f"black hole", # formatted string
  198. 'hasMinion': False, # boolean
  199. 'potentialMinions': None # None or list of IDs
  200. 'needsName': False, # boolean
  201. 'note': "It's semi-intelligent and mobile. It might stalk ship-sized objects.", # formatted string
  202. 'stats': [4,6,3,6], # four-integer list
  203. },
  204. {
  205. 'id': 20, #integer
  206. 'name': f"Cranky Nebula", # formatted string
  207. 'shortname': f"nebula", # formatted string
  208. 'hasMinion': False, # boolean
  209. 'potentialMinions': None # None or list of IDs
  210. 'needsName': True, # boolean
  211. 'note': "It's a baby and wants attention. Its Brains reflects resilience against damage more than actual mental ability.", # formatted string
  212. 'stats': [4,5,6,6], # four-integer list
  213. },
  214. {
  215. 'id': 21, #integer
  216. 'name': f"Sentient Angry Star", # formatted string
  217. 'shortname': f"star", # formatted string
  218. 'hasMinion': False, # boolean
  219. 'potentialMinions': None # None or list of IDs
  220. 'needsName': True, # boolean
  221. 'note': "It demands tribute, and attacks with solar flares... but it can't move out of its orbit.", # formatted string
  222. 'stats': [5,4,5,6], # four-integer list
  223. },
  224. {
  225. 'id': 22, #integer
  226. 'name': f"Elf Red Shirt Away Team", # formatted string
  227. 'shortname': f"", # formatted string
  228. 'hasMinion': False, # boolean
  229. 'potentialMinions': None # None or list of IDs
  230. 'needsName': False, # boolean
  231. '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
  232. 'stats': [3,2,3,3], # four-integer list
  233. },
  234. {
  235. 'id': 23, #integer
  236. 'name': f"Elf Scout Ship", # formatted string
  237. 'shortname': f"ship", # formatted string
  238. 'hasMinion': False, # boolean
  239. 'potentialMinions': None # None or list of IDs
  240. 'needsName': True, # boolean
  241. 'note': "A short-range ship that looks like a streamlined butterfly. Its crew is a pilot and a gunner.", # formatted string
  242. 'stats': [2,3,3,4], # four-integer list
  243. },
  244. {
  245. 'id': 24, #integer
  246. 'name': f"Elf Guard Ship", # formatted string
  247. 'shortname': f"ship", # formatted string
  248. 'hasMinion': False, # boolean
  249. 'potentialMinions': None # None or list of IDs
  250. 'needsName': True, # boolean
  251. 'note': "A short-range ship that looks like a stinging insect. Its crew is a pilot and a gunner.", # formatted string
  252. 'stats': [2,4,3,4], # four-integer list
  253. },
  254. {
  255. 'id': 25, #integer
  256. 'name': f"Elf Cargo Ship", # formatted string
  257. 'shortname': f"ship", # formatted string
  258. 'hasMinion': False, # boolean
  259. 'potentialMinions': None # None or list of IDs
  260. 'needsName': True, # boolean
  261. 'note': "A long-range ship that resembles a beetle. Its cargo might be anything, and its crew always assume hostile intentions.", # formatted string
  262. 'stats': [3,3,3,5], # four-integer list
  263. },
  264. {
  265. 'id': 26, #integer
  266. 'name': f"Elf Long Range Scout", # formatted string
  267. 'shortname': f"ship", # formatted string
  268. 'hasMinion': False, # boolean
  269. 'potentialMinions': [22,23,24,25,27,29,30,31,32] # None or list of IDs
  270. 'needsName': True, # boolean
  271. '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
  272. 'stats': [,,,], # four-integer list
  273. },
  274. {
  275. 'id': 27, #integer
  276. 'name': f"Detachment from the Elf Armada", # formatted string
  277. 'shortname': f"detachment", # formatted string
  278. 'hasMinion': False, # boolean
  279. 'potentialMinions': None # None or list of IDs
  280. 'needsName': False, # boolean
  281. 'note': "A small group of ships focused more on science than war, they're usually on a research, escort, or retrieval mission.", # formatted string
  282. 'stats': [4,3,5,4], # four-integer list
  283. },
  284. {
  285. 'id': 28, #integer
  286. 'name': f"Elf Armada Shipyard", # formatted string
  287. 'shortname': f"shipyard", # formatted string
  288. 'hasMinion': False, # boolean
  289. 'potentialMinions': [22,23,24,25,26,27,29,30,31,32] # None or list of IDs
  290. 'needsName': True, # boolean
  291. 'note': "It resembles a giant tree.", # formatted string
  292. 'stats': [6,2,3,6], # four-integer list
  293. },
  294. {
  295. 'id': 29, #integer
  296. 'name': f"Elf Stealth Special Ops Team", # formatted string
  297. 'shortname': f"team", # formatted string
  298. 'hasMinion': True, # boolean
  299. '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
  300. 'needsName': False, # boolean
  301. '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
  302. 'stats': [4,6,4,4], # four-integer list
  303. },
  304. {
  305. 'id': 30, #integer
  306. 'name': f"Elf Armada Carrier", # formatted string
  307. 'shortname': f"carrier", # formatted string
  308. 'hasMinion': False, # boolean
  309. 'potentialMinions': None # None or list of IDs
  310. 'needsName': True, # boolean
  311. 'note': "It comes with a swarm of wasp fighters, each with 1 Body. The carrier resembles an enormous chrysalis.", # formatted string
  312. 'stats': [5,5,3,6], # four-integer list
  313. },
  314. {
  315. 'id': 31, #integer
  316. 'name': f"Elf Armada Warship", # formatted string
  317. 'shortname': f"ship", # formatted string
  318. 'hasMinion': False, # boolean
  319. 'potentialMinions': None # None or list of IDs
  320. 'needsName': True, # boolean
  321. '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
  322. 'stats': [6,6,2,6], # four-integer list
  323. },
  324. {
  325. 'id': 32, #integer
  326. 'name': f"Elf Armada Flagship", # formatted string
  327. 'shortname': f"flagship", # formatted string
  328. 'hasMinion': True, # boolean
  329. 'potentialMinions': [22,23,24,25,26,27,29,30,31] # None or list of IDs
  330. 'needsName': True, # boolean
  331. '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
  332. 'stats': [5,4,5,6], # four-integer list
  333. },
  334. {
  335. 'id': 33, #integer
  336. 'name': f"Floating, Flaming Skull", # formatted string
  337. 'shortname': f"skull", # formatted string
  338. 'hasMinion': False, # boolean
  339. 'potentialMinions': None # None or list of IDs
  340. 'needsName': True, # boolean
  341. '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
  342. 'stats': [1,6,3,1], # four-integer list
  343. },
  344. {
  345. 'id': 34, #integer
  346. 'name': f"Newly-Raised Vampire", # formatted string
  347. 'shortname': f"vampire", # formatted string
  348. 'hasMinion': False, # boolean
  349. 'potentialMinions': None # None or list of IDs
  350. 'needsName': True, # boolean
  351. 'note': "They're power-mad and vastly overestimate their own abilities. The GM may interpret 'vampire powers' however they please.", # formatted string
  352. 'stats': [2,4,2,4], # four-integer list
  353. },
  354. {
  355. 'id': 35, #integer
  356. 'name': f"Undead Sample Pack", # formatted string
  357. 'shortname': f"undead", # formatted string
  358. 'hasMinion': False, # boolean
  359. 'potentialMinions': None # None or list of IDs
  360. 'needsName': False, # boolean
  361. '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
  362. 'stats': [0,5,2,6], # four-integer list
  363. },
  364. {
  365. 'id': 36, #integer
  366. 'name': f"Ranged Skeletons", # formatted string
  367. 'shortname': f"skeletons", # formatted string
  368. 'hasMinion': False, # boolean
  369. 'potentialMinions': None # None or list of IDs
  370. 'needsName': False, # boolean
  371. '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
  372. 'stats': [2,5,2,5], # four-integer list
  373. },
  374. {
  375. 'id': 37, #integer
  376. 'name': f"Old Lich who Wants Everyone to Stay Off Their Lawn", # formatted string
  377. 'shortname': f"lich", # formatted string
  378. 'hasMinion': False, # boolean
  379. 'potentialMinions': None # None or list of IDs
  380. 'needsName': True, # boolean
  381. '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
  382. 'stats': [4,2,6,3], # four-integer list
  383. },
  384. {
  385. 'id': 38, #integer
  386. 'name': f"Zombie Brute Squad", # formatted string
  387. 'shortname': f"zombies", # formatted string
  388. 'hasMinion': False, # boolean
  389. 'potentialMinions': None # None or list of IDs
  390. 'needsName': False, # boolean
  391. '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
  392. 'stats': [3,5,2,6], # four-integer list
  393. },
  394. {
  395. 'id': 39, #integer
  396. 'name': f"Vampire Royalty", # formatted string
  397. 'shortname': f"vampire", # formatted string
  398. 'hasMinion': True, # boolean
  399. 'potentialMinions': [33,34,35,36,37,38,40,41,42,43,44] # None or list of IDs
  400. 'needsName': True, # boolean
  401. 'note': "They have lived this long by being patient and cautious. Despite that, their minion may not be 100% loyal.", # formatted string
  402. 'stats': [4,2,5,6], # four-integer list
  403. },
  404. {
  405. 'id': 40, #integer
  406. 'name': f"Possessing Spirit", # formatted string
  407. 'shortname': f"spirit", # formatted string
  408. 'hasMinion': False, # boolean
  409. 'potentialMinions': None # None or list of IDs
  410. 'needsName': True, # boolean
  411. '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
  412. 'stats': [4,4,5,5], # four-integer list
  413. },
  414. {
  415. 'id': 41, #integer
  416. 'name': f"Vengeful Spirit", # formatted string
  417. 'shortname': f"spirit", # formatted string
  418. 'hasMinion': False, # boolean
  419. 'potentialMinions': None # None or list of IDs
  420. 'needsName': True, # boolean
  421. 'note': "It wants revenge on whatever killed it, and it's willing to play the long game to get that revenge.", # formatted string
  422. 'stats': [6,6,6,2], # four-integer list
  423. },
  424. {
  425. 'id': 42, #integer
  426. 'name': f"", # formatted string
  427. 'shortname': f"", # formatted string
  428. 'hasMinion': False, # boolean
  429. 'potentialMinions': None # None or list of IDs
  430. 'needsName': True, # boolean
  431. 'note': "", # formatted string
  432. 'stats': [,,,], # four-integer list
  433. },
  434. {
  435. 'id': 43, #integer
  436. 'name': f"Necromantic Cult", # formatted string
  437. 'shortname': f"cult", # formatted string
  438. 'hasMinion': False, # boolean
  439. 'potentialMinions': None # None or list of IDs
  440. 'needsName': False, # boolean
  441. '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
  442. 'stats': [5,5,5,5], # four-integer list
  443. },
  444. {
  445. 'id': 44, #integer
  446. 'name': f"Mummified Protector", # formatted string
  447. 'shortname': f"mummy", # formatted string
  448. 'hasMinion': False, # boolean
  449. 'potentialMinions': None # None or list of IDs
  450. 'needsName': True, # boolean
  451. '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
  452. 'stats': [5,5,4,6], # four-integer list
  453. },
  454. {
  455. 'id': 45, #integer
  456. 'name': f"Helperbot 1000", # formatted string
  457. 'shortname': f"robot", # formatted string
  458. 'hasMinion': False, # boolean
  459. 'potentialMinions': None # None or list of IDs
  460. 'needsName': False, # boolean
  461. 'note': "It's half as good as Helperbot 2000. It's more incompetent than malicious, but it will defend itself.", # formatted string
  462. 'stats': [4,2,2,3], # four-integer list
  463. },
  464. {
  465. 'id': 46, #integer
  466. 'name': f"Robot Spiders!", # formatted string
  467. 'shortname': f"spiders", # formatted string
  468. 'hasMinion': False, # boolean
  469. 'potentialMinions': None # None or list of IDs
  470. 'needsName': False, # boolean
  471. 'note': "Each Body damage kills one spider, but there may be more lurking in the walls...", # formatted string
  472. 'stats': [3,3,2,4], # four-integer list
  473. },
  474. {
  475. 'id': 47, #integer
  476. 'name': f"Spy Drones", # formatted string
  477. 'shortname': f"drones", # formatted string
  478. 'hasMinion': False, # boolean
  479. 'potentialMinions': None # None or list of IDs
  480. 'needsName': False, # boolean
  481. '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
  482. 'stats': [4,4,3,2], # four-integer list
  483. },
  484. {
  485. 'id': 48, #integer
  486. 'name': f"Supercomputer Bent on Multi-World Domination", # formatted string
  487. 'shortname': f"computer", # formatted string
  488. 'hasMinion': True, # boolean
  489. '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
  490. 'needsName': True, # boolean
  491. 'note': "It uses its minion to deal with interlopers; it's weak by itself and will try to hide its location.", # formatted string
  492. 'stats': [4,1,6,3], # four-integer list
  493. },
  494. {
  495. 'id': 49, #integer
  496. 'name': f"Weaponized Robotic Interpreter", # formatted string
  497. 'shortname': f"robot", # formatted string
  498. 'hasMinion': False, # boolean
  499. 'potentialMinions': None # None or list of IDs
  500. 'needsName': True, # boolean
  501. '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
  502. 'stats': [5,5,3,2], # four-integer list
  503. },
  504. {
  505. 'id': 50, #integer
  506. 'name': f"Robot Soldiers", # formatted string
  507. 'shortname': f"robots", # formatted string
  508. 'hasMinion': False, # boolean
  509. 'potentialMinions': None # None or list of IDs
  510. 'needsName': False, # boolean
  511. '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
  512. 'stats': [3,4,3,6], # four-integer list
  513. },
  514. {
  515. 'id': 51, #integer
  516. 'name': f"Robotic General", # formatted string
  517. 'shortname': f"general", # formatted string
  518. 'hasMinion': True, # boolean
  519. '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
  520. 'needsName': True, # boolean
  521. 'note': "It will give orders to anyone and everyone, and will inflift Brains damage if not obeyed.", # formatted string
  522. 'stats': [3,3,6,5], # four-integer list
  523. },
  524. {
  525. 'id': 52, #integer
  526. 'name': f"Rogue AI-controlled Ship", # formatted string
  527. 'shortname': f"ship", # formatted string
  528. 'hasMinion': True, # boolean
  529. '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
  530. 'needsName': True, # boolean
  531. 'note': "It's not capable of entering a gravity well.", # formatted string
  532. 'stats': [3,3,6,6], # four-integer list
  533. },
  534. {
  535. 'id': 53, #integer
  536. 'name': f"Supercomputer that Has Achieved Multi-World Domination", # formatted string
  537. 'shortname': f"computer", # formatted string
  538. 'hasMinion': True, # boolean
  539. '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
  540. 'needsName': True, # boolean
  541. 'note': "Its home system may be a Dyson sphere across which it's evenly distributed.", # formatted string
  542. 'stats': [4,3,6,6], # four-integer list
  543. },
  544. {
  545. 'id': 54, #integer
  546. 'name': f"Gray Goo", # formatted string
  547. 'shortname': f"goo", # formatted string
  548. 'hasMinion': False, # boolean
  549. 'potentialMinions': None # None or list of IDs
  550. 'needsName': False, # boolean
  551. '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
  552. 'stats': [4,6,6,4], # four-integer list
  553. },
  554. {
  555. 'id': 55, #integer
  556. 'name': f"Giant Mech", # formatted string
  557. 'shortname': f"mech", # formatted string
  558. 'hasMinion': False, # boolean
  559. 'potentialMinions': None # None or list of IDs
  560. 'needsName': True, # boolean
  561. '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
  562. 'stats': [4,6,4,6], # four-integer list
  563. },
  564. {
  565. 'id': 56, #integer
  566. 'name': f"", # formatted string
  567. 'shortname': f"", # formatted string
  568. 'hasMinion': False, # boolean
  569. 'potentialMinions': None # None or list of IDs
  570. 'needsName': True, # boolean
  571. 'note': "", # formatted string
  572. 'stats': [,,,], # four-integer list
  573. },
  574. {
  575. 'id': 57, #integer
  576. 'name': f"", # formatted string
  577. 'shortname': f"", # formatted string
  578. 'hasMinion': False, # boolean
  579. 'potentialMinions': None # None or list of IDs
  580. 'needsName': True, # boolean
  581. 'note': "", # formatted string
  582. 'stats': [,,,], # four-integer list
  583. },
  584. {
  585. 'id': 58, #integer
  586. 'name': f"", # formatted string
  587. 'shortname': f"", # formatted string
  588. 'hasMinion': False, # boolean
  589. 'potentialMinions': None # None or list of IDs
  590. 'needsName': True, # boolean
  591. 'note': "", # formatted string
  592. 'stats': [,,,], # four-integer list
  593. },
  594. {
  595. 'id': 59, #integer
  596. 'name': f"", # formatted string
  597. 'shortname': f"", # formatted string
  598. 'hasMinion': False, # boolean
  599. 'potentialMinions': None # None or list of IDs
  600. 'needsName': True, # boolean
  601. 'note': "", # formatted string
  602. 'stats': [,,,], # four-integer list
  603. },
  604. {
  605. 'id': 60, #integer
  606. 'name': f"", # formatted string
  607. 'shortname': f"", # formatted string
  608. 'hasMinion': False, # boolean
  609. 'potentialMinions': None # None or list of IDs
  610. 'needsName': True, # boolean
  611. 'note': "", # formatted string
  612. 'stats': [,,,], # four-integer list
  613. },
  614. {
  615. 'id': 61, #integer
  616. 'name': f"", # formatted string
  617. 'shortname': f"", # formatted string
  618. 'hasMinion': False, # boolean
  619. 'potentialMinions': None # None or list of IDs
  620. 'needsName': True, # boolean
  621. 'note': "", # formatted string
  622. 'stats': [,,,], # four-integer list
  623. },
  624. {
  625. 'id': 62, #integer
  626. 'name': f"", # formatted string
  627. 'shortname': f"", # formatted string
  628. 'hasMinion': False, # boolean
  629. 'potentialMinions': None # None or list of IDs
  630. 'needsName': True, # boolean
  631. 'note': "", # formatted string
  632. 'stats': [,,,], # four-integer list
  633. },
  634. {
  635. 'id': 63, #integer
  636. 'name': f"", # formatted string
  637. 'shortname': f"", # formatted string
  638. 'hasMinion': False, # boolean
  639. 'potentialMinions': None # None or list of IDs
  640. 'needsName': True, # boolean
  641. 'note': "", # formatted string
  642. 'stats': [,,,], # four-integer list
  643. },
  644. {
  645. 'id': 64, #integer
  646. 'name': f"", # formatted string
  647. 'shortname': f"", # formatted string
  648. 'hasMinion': False, # boolean
  649. 'potentialMinions': None # None or list of IDs
  650. 'needsName': True, # boolean
  651. 'note': "", # formatted string
  652. 'stats': [,,,], # four-integer list
  653. },
  654. {
  655. 'id': 65, #integer
  656. 'name': f"", # formatted string
  657. 'shortname': f"", # formatted string
  658. 'hasMinion': False, # boolean
  659. 'potentialMinions': None # None or list of IDs
  660. 'needsName': True, # boolean
  661. 'note': "", # formatted string
  662. 'stats': [,,,], # four-integer list
  663. },
  664. {
  665. 'id': 66, #integer
  666. 'name': f"", # formatted string
  667. 'shortname': f"", # formatted string
  668. 'hasMinion': False, # boolean
  669. 'potentialMinions': None # None or list of IDs
  670. 'needsName': True, # boolean
  671. 'note': "", # formatted string
  672. 'stats': [,,,], # four-integer list
  673. },
  674. {
  675. 'id': 67, #integer
  676. 'name': f"", # formatted string
  677. 'shortname': f"", # formatted string
  678. 'hasMinion': False, # boolean
  679. 'potentialMinions': None # None or list of IDs
  680. 'needsName': True, # boolean
  681. 'note': "", # formatted string
  682. 'stats': [,,,], # four-integer list
  683. },
  684. {
  685. 'id': 68, #integer
  686. 'name': f"", # formatted string
  687. 'shortname': f"", # formatted string
  688. 'hasMinion': False, # boolean
  689. 'potentialMinions': None # None or list of IDs
  690. 'needsName': True, # boolean
  691. 'note': "", # formatted string
  692. 'stats': [,,,], # four-integer list
  693. },
  694. {
  695. 'id': 69, #integer
  696. 'name': f"", # formatted string
  697. 'shortname': f"", # formatted string
  698. 'hasMinion': False, # boolean
  699. 'potentialMinions': None # None or list of IDs
  700. 'needsName': True, # boolean
  701. 'note': "", # formatted string
  702. 'stats': [,,,], # four-integer list
  703. },
  704. {
  705. 'id': 70, #integer
  706. 'name': f"", # formatted string
  707. 'shortname': f"", # formatted string
  708. 'hasMinion': False, # boolean
  709. 'potentialMinions': None # None or list of IDs
  710. 'needsName': True, # boolean
  711. 'note': "", # formatted string
  712. 'stats': [,,,], # four-integer list
  713. },
  714. {
  715. 'id': 71, #integer
  716. 'name': f"", # formatted string
  717. 'shortname': f"", # formatted string
  718. 'hasMinion': False, # boolean
  719. 'potentialMinions': None # None or list of IDs
  720. 'needsName': True, # boolean
  721. 'note': "", # formatted string
  722. 'stats': [,,,], # four-integer list
  723. },
  724. {
  725. 'id': 72, #integer
  726. 'name': f"", # formatted string
  727. 'shortname': f"", # formatted string
  728. 'hasMinion': False, # boolean
  729. 'potentialMinions': None # None or list of IDs
  730. 'needsName': True, # boolean
  731. 'note': "", # formatted string
  732. 'stats': [,,,], # four-integer list
  733. },
  734. {
  735. 'id': 73, #integer
  736. 'name': f"", # formatted string
  737. 'shortname': f"", # formatted string
  738. 'hasMinion': False, # boolean
  739. 'potentialMinions': None # None or list of IDs
  740. 'needsName': True, # boolean
  741. 'note': "", # formatted string
  742. 'stats': [,,,], # four-integer list
  743. },
  744. {
  745. 'id': 74, #integer
  746. 'name': f"", # formatted string
  747. 'shortname': f"", # formatted string
  748. 'hasMinion': False, # boolean
  749. 'potentialMinions': None # None or list of IDs
  750. 'needsName': True, # boolean
  751. 'note': "", # formatted string
  752. 'stats': [,,,], # four-integer list
  753. },
  754. {
  755. 'id': 75, #integer
  756. 'name': f"", # formatted string
  757. 'shortname': f"", # formatted string
  758. 'hasMinion': False, # boolean
  759. 'potentialMinions': None # None or list of IDs
  760. 'needsName': True, # boolean
  761. 'note': "", # formatted string
  762. 'stats': [,,,], # four-integer list
  763. },
  764. {
  765. 'id': 76, #integer
  766. 'name': f"", # formatted string
  767. 'shortname': f"", # formatted string
  768. 'hasMinion': False, # boolean
  769. 'potentialMinions': None # None or list of IDs
  770. 'needsName': True, # boolean
  771. 'note': "", # formatted string
  772. 'stats': [,,,], # four-integer list
  773. },
  774. {
  775. 'id': 77, #integer
  776. 'name': f"", # formatted string
  777. 'shortname': f"", # formatted string
  778. 'hasMinion': False, # boolean
  779. 'potentialMinions': None # None or list of IDs
  780. 'needsName': True, # boolean
  781. 'note': "", # formatted string
  782. 'stats': [,,,], # four-integer list
  783. },
  784. {
  785. 'id': 78, #integer
  786. 'name': f"", # formatted string
  787. 'shortname': f"", # formatted string
  788. 'hasMinion': False, # boolean
  789. 'potentialMinions': None # None or list of IDs
  790. 'needsName': True, # boolean
  791. 'note': "", # formatted string
  792. 'stats': [,,,], # four-integer list
  793. },
  794. {
  795. 'id': 79, #integer
  796. 'name': f"", # formatted string
  797. 'shortname': f"", # formatted string
  798. 'hasMinion': False, # boolean
  799. 'potentialMinions': None # None or list of IDs
  800. 'needsName': True, # boolean
  801. 'note': "", # formatted string
  802. 'stats': [,,,], # four-integer list
  803. },
  804. {
  805. 'id': 80, #integer
  806. 'name': f"", # formatted string
  807. 'shortname': f"", # formatted string
  808. 'hasMinion': False, # boolean
  809. 'potentialMinions': None # None or list of IDs
  810. 'needsName': True, # boolean
  811. 'note': "", # formatted string
  812. 'stats': [,,,], # four-integer list
  813. },
  814. {
  815. 'id': 81, #integer
  816. 'name': f"", # formatted string
  817. 'shortname': f"", # formatted string
  818. 'hasMinion': False, # boolean
  819. 'potentialMinions': None # None or list of IDs
  820. 'needsName': True, # boolean
  821. 'note': "", # formatted string
  822. 'stats': [,,,], # four-integer list
  823. },
  824. {
  825. 'id': 82, #integer
  826. 'name': f"", # formatted string
  827. 'shortname': f"", # formatted string
  828. 'hasMinion': False, # boolean
  829. 'potentialMinions': None # None or list of IDs
  830. 'needsName': True, # boolean
  831. 'note': "", # formatted string
  832. 'stats': [,,,], # four-integer list
  833. },
  834. {
  835. 'id': 83, #integer
  836. 'name': f"", # formatted string
  837. 'shortname': f"", # formatted string
  838. 'hasMinion': False, # boolean
  839. 'potentialMinions': None # None or list of IDs
  840. 'needsName': True, # boolean
  841. 'note': "", # formatted string
  842. 'stats': [,,,], # four-integer list
  843. },
  844. {
  845. 'id': 84, #integer
  846. 'name': f"", # formatted string
  847. 'shortname': f"", # formatted string
  848. 'hasMinion': False, # boolean
  849. 'potentialMinions': None # None or list of IDs
  850. 'needsName': True, # boolean
  851. 'note': "", # formatted string
  852. 'stats': [,,,], # four-integer list
  853. },
  854. {
  855. 'id': 85, #integer
  856. 'name': f"", # formatted string
  857. 'shortname': f"", # formatted string
  858. 'hasMinion': False, # boolean
  859. 'potentialMinions': None # None or list of IDs
  860. 'needsName': True, # boolean
  861. 'note': "", # formatted string
  862. 'stats': [,,,], # four-integer list
  863. },
  864. {
  865. 'id': 86, #integer
  866. 'name': f"", # formatted string
  867. 'shortname': f"", # formatted string
  868. 'hasMinion': False, # boolean
  869. 'potentialMinions': None # None or list of IDs
  870. 'needsName': True, # boolean
  871. 'note': "", # formatted string
  872. 'stats': [,,,], # four-integer list
  873. },
  874. {
  875. 'id': 87, #integer
  876. 'name': f"", # formatted string
  877. 'shortname': f"", # formatted string
  878. 'hasMinion': False, # boolean
  879. 'potentialMinions': None # None or list of IDs
  880. 'needsName': True, # boolean
  881. 'note': "", # formatted string
  882. 'stats': [,,,], # four-integer list
  883. },
  884. {
  885. 'id': 88, #integer
  886. 'name': f"", # formatted string
  887. 'shortname': f"", # formatted string
  888. 'hasMinion': False, # boolean
  889. 'potentialMinions': None # None or list of IDs
  890. 'needsName': True, # boolean
  891. 'note': "", # formatted string
  892. 'stats': [,,,], # four-integer list
  893. },
  894. {
  895. 'id': 89, #integer
  896. 'name': f"", # formatted string
  897. 'shortname': f"", # formatted string
  898. 'hasMinion': False, # boolean
  899. 'potentialMinions': None # None or list of IDs
  900. 'needsName': True, # boolean
  901. 'note': "", # formatted string
  902. 'stats': [,,,], # four-integer list
  903. },
  904. {
  905. 'id': 90, #integer
  906. 'name': f"", # formatted string
  907. 'shortname': f"", # formatted string
  908. 'hasMinion': False, # boolean
  909. 'potentialMinions': None # None or list of IDs
  910. 'needsName': True, # boolean
  911. 'note': "", # formatted string
  912. 'stats': [,,,], # four-integer list
  913. },
  914. {
  915. 'id': 91, #integer
  916. 'name': f"", # formatted string
  917. 'shortname': f"", # formatted string
  918. 'hasMinion': False, # boolean
  919. 'potentialMinions': None # None or list of IDs
  920. 'needsName': True, # boolean
  921. 'note': "", # formatted string
  922. 'stats': [,,,], # four-integer list
  923. },
  924. {
  925. 'id': 92, #integer
  926. 'name': f"", # formatted string
  927. 'shortname': f"", # formatted string
  928. 'hasMinion': False, # boolean
  929. 'potentialMinions': None # None or list of IDs
  930. 'needsName': True, # boolean
  931. 'note': "", # formatted string
  932. 'stats': [,,,], # four-integer list
  933. },
  934. {
  935. 'id': 93, #integer
  936. 'name': f"", # formatted string
  937. 'shortname': f"", # formatted string
  938. 'hasMinion': False, # boolean
  939. 'potentialMinions': None # None or list of IDs
  940. 'needsName': True, # boolean
  941. 'note': "", # formatted string
  942. 'stats': [,,,], # four-integer list
  943. },
  944. {
  945. 'id': 94, #integer
  946. 'name': f"", # formatted string
  947. 'shortname': f"", # formatted string
  948. 'hasMinion': False, # boolean
  949. 'potentialMinions': None # None or list of IDs
  950. 'needsName': True, # boolean
  951. 'note': "", # formatted string
  952. 'stats': [,,,], # four-integer list
  953. },
  954. {
  955. 'id': 95, #integer
  956. 'name': f"", # formatted string
  957. 'shortname': f"", # formatted string
  958. 'hasMinion': False, # boolean
  959. 'potentialMinions': None # None or list of IDs
  960. 'needsName': True, # boolean
  961. 'note': "", # formatted string
  962. 'stats': [,,,], # four-integer list
  963. },
  964. {
  965. 'id': 96, #integer
  966. 'name': f"", # formatted string
  967. 'shortname': f"", # formatted string
  968. 'hasMinion': False, # boolean
  969. 'potentialMinions': None # None or list of IDs
  970. 'needsName': True, # boolean
  971. 'note': "", # formatted string
  972. 'stats': [,,,], # four-integer list
  973. },
  974. {
  975. 'id': 97, #integer
  976. 'name': f"", # formatted string
  977. 'shortname': f"", # formatted string
  978. 'hasMinion': False, # boolean
  979. 'potentialMinions': None # None or list of IDs
  980. 'needsName': True, # boolean
  981. 'note': "", # formatted string
  982. 'stats': [,,,], # four-integer list
  983. },
  984. {
  985. 'id': 98, #integer
  986. 'name': f"", # formatted string
  987. 'shortname': f"", # formatted string
  988. 'hasMinion': False, # boolean
  989. 'potentialMinions': None # None or list of IDs
  990. 'needsName': True, # boolean
  991. 'note': "", # formatted string
  992. 'stats': [,,,], # four-integer list
  993. },
  994. {
  995. 'id': 99, #integer
  996. 'name': f"", # formatted string
  997. 'shortname': f"", # formatted string
  998. 'hasMinion': False, # boolean
  999. 'potentialMinions': None # None or list of IDs
  1000. 'needsName': True, # boolean
  1001. 'note': "", # formatted string
  1002. 'stats': [,,,], # four-integer list
  1003. },
  1004. {
  1005. 'id': 100, #integer
  1006. 'name': f"", # formatted string
  1007. 'shortname': f"", # formatted string
  1008. 'hasMinion': False, # boolean
  1009. 'potentialMinions': None # None or list of IDs
  1010. 'needsName': True, # boolean
  1011. 'note': "", # formatted string
  1012. 'stats': [,,,], # four-integer list
  1013. },
  1014. {
  1015. 'id': 101, #integer
  1016. 'name': f"", # formatted string
  1017. 'shortname': f"", # formatted string
  1018. 'hasMinion': False, # boolean
  1019. 'potentialMinions': None # None or list of IDs
  1020. 'needsName': True, # boolean
  1021. 'note': "", # formatted string
  1022. 'stats': [,,,], # four-integer list
  1023. },
  1024. {
  1025. 'id': 102, #integer
  1026. 'name': f"", # formatted string
  1027. 'shortname': f"", # formatted string
  1028. 'hasMinion': False, # boolean
  1029. 'potentialMinions': None # None or list of IDs
  1030. 'needsName': True, # boolean
  1031. 'note': "", # formatted string
  1032. 'stats': [,,,], # four-integer list
  1033. },
  1034. {
  1035. 'id': 103, #integer
  1036. 'name': f"", # formatted string
  1037. 'shortname': f"", # formatted string
  1038. 'hasMinion': False, # boolean
  1039. 'potentialMinions': None # None or list of IDs
  1040. 'needsName': True, # boolean
  1041. 'note': "", # formatted string
  1042. 'stats': [,,,], # four-integer list
  1043. },
  1044. {
  1045. 'id': 104, #integer
  1046. 'name': f"", # formatted string
  1047. 'shortname': f"", # formatted string
  1048. 'hasMinion': False, # boolean
  1049. 'potentialMinions': None # None or list of IDs
  1050. 'needsName': True, # boolean
  1051. 'note': "", # formatted string
  1052. 'stats': [,,,], # four-integer list
  1053. },
  1054. {
  1055. 'id': 105, #integer
  1056. 'name': f"", # formatted string
  1057. 'shortname': f"", # formatted string
  1058. 'hasMinion': False, # boolean
  1059. 'potentialMinions': None # None or list of IDs
  1060. 'needsName': True, # boolean
  1061. 'note': "", # formatted string
  1062. 'stats': [,,,], # four-integer list
  1063. },
  1064. {
  1065. 'id': 106, #integer
  1066. 'name': f"", # formatted string
  1067. 'shortname': f"", # formatted string
  1068. 'hasMinion': False, # boolean
  1069. 'potentialMinions': None # None or list of IDs
  1070. 'needsName': True, # boolean
  1071. 'note': "", # formatted string
  1072. 'stats': [,,,], # four-integer list
  1073. },
  1074. {
  1075. 'id': 107, #integer
  1076. 'name': f"", # formatted string
  1077. 'shortname': f"", # formatted string
  1078. 'hasMinion': False, # boolean
  1079. 'potentialMinions': None # None or list of IDs
  1080. 'needsName': True, # boolean
  1081. 'note': "", # formatted string
  1082. 'stats': [,,,], # four-integer list
  1083. },
  1084. {
  1085. 'id': 108, #integer
  1086. 'name': f"", # formatted string
  1087. 'shortname': f"", # formatted string
  1088. 'hasMinion': False, # boolean
  1089. 'potentialMinions': None # None or list of IDs
  1090. 'needsName': True, # boolean
  1091. 'note': "", # formatted string
  1092. 'stats': [,,,], # four-integer list
  1093. },
  1094. {
  1095. 'id': 109, #integer
  1096. 'name': f"", # formatted string
  1097. 'shortname': f"", # formatted string
  1098. 'hasMinion': False, # boolean
  1099. 'potentialMinions': None # None or list of IDs
  1100. 'needsName': True, # boolean
  1101. 'note': "", # formatted string
  1102. 'stats': [,,,], # four-integer list
  1103. },
  1104. {
  1105. 'id': 110, #integer
  1106. 'name': f"", # formatted string
  1107. 'shortname': f"", # formatted string
  1108. 'hasMinion': False, # boolean
  1109. 'potentialMinions': None # None or list of IDs
  1110. 'needsName': True, # boolean
  1111. 'note': "", # formatted string
  1112. 'stats': [,,,], # four-integer list
  1113. },
  1114. {
  1115. 'id': 111, #integer
  1116. 'name': f"", # formatted string
  1117. 'shortname': f"", # formatted string
  1118. 'hasMinion': False, # boolean
  1119. 'potentialMinions': None # None or list of IDs
  1120. 'needsName': True, # boolean
  1121. 'note': "", # formatted string
  1122. 'stats': [,,,], # four-integer list
  1123. },
  1124. {
  1125. 'id': 112, #integer
  1126. 'name': f"", # formatted string
  1127. 'shortname': f"", # formatted string
  1128. 'hasMinion': False, # boolean
  1129. 'potentialMinions': None # None or list of IDs
  1130. 'needsName': True, # boolean
  1131. 'note': "", # formatted string
  1132. 'stats': [,,,], # four-integer list
  1133. },
  1134. {
  1135. 'id': 113, #integer
  1136. 'name': f"", # formatted string
  1137. 'shortname': f"", # formatted string
  1138. 'hasMinion': False, # boolean
  1139. 'potentialMinions': None # None or list of IDs
  1140. 'needsName': True, # boolean
  1141. 'note': "", # formatted string
  1142. 'stats': [,,,], # four-integer list
  1143. },
  1144. {
  1145. 'id': 114, #integer
  1146. 'name': f"", # formatted string
  1147. 'shortname': f"", # formatted string
  1148. 'hasMinion': False, # boolean
  1149. 'potentialMinions': None # None or list of IDs
  1150. 'needsName': True, # boolean
  1151. 'note': "", # formatted string
  1152. 'stats': [,,,], # four-integer list
  1153. },
  1154. {
  1155. 'id': 115, #integer
  1156. 'name': f"", # formatted string
  1157. 'shortname': f"", # formatted string
  1158. 'hasMinion': False, # boolean
  1159. 'potentialMinions': None # None or list of IDs
  1160. 'needsName': True, # boolean
  1161. 'note': "", # formatted string
  1162. 'stats': [,,,], # four-integer list
  1163. },
  1164. {
  1165. 'id': 116, #integer
  1166. 'name': f"", # formatted string
  1167. 'shortname': f"", # formatted string
  1168. 'hasMinion': False, # boolean
  1169. 'potentialMinions': None # None or list of IDs
  1170. 'needsName': True, # boolean
  1171. 'note': "", # formatted string
  1172. 'stats': [,,,], # four-integer list
  1173. },
  1174. {
  1175. 'id': 117, #integer
  1176. 'name': f"", # formatted string
  1177. 'shortname': f"", # formatted string
  1178. 'hasMinion': False, # boolean
  1179. 'potentialMinions': None # None or list of IDs
  1180. 'needsName': True, # boolean
  1181. 'note': "", # formatted string
  1182. 'stats': [,,,], # four-integer list
  1183. },
  1184. {
  1185. 'id': 118, #integer
  1186. 'name': f"", # formatted string
  1187. 'shortname': f"", # formatted string
  1188. 'hasMinion': False, # boolean
  1189. 'potentialMinions': None # None or list of IDs
  1190. 'needsName': True, # boolean
  1191. 'note': "", # formatted string
  1192. 'stats': [,,,], # four-integer list
  1193. },
  1194. {
  1195. 'id': 119, #integer
  1196. 'name': f"", # formatted string
  1197. 'shortname': f"", # formatted string
  1198. 'hasMinion': False, # boolean
  1199. 'potentialMinions': None # None or list of IDs
  1200. 'needsName': True, # boolean
  1201. 'note': "", # formatted string
  1202. 'stats': [,,,], # four-integer list
  1203. },
  1204. {
  1205. 'id': 120, #integer
  1206. 'name': f"", # formatted string
  1207. 'shortname': f"", # formatted string
  1208. 'hasMinion': False, # boolean
  1209. 'potentialMinions': None # None or list of IDs
  1210. 'needsName': True, # boolean
  1211. 'note': "", # formatted string
  1212. 'stats': [,,,], # four-integer list
  1213. },
  1214. ]