@umang-boss/claudemon 1.7.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (781) hide show
  1. package/README.md +22 -9
  2. package/dist/award-xp.mjs +10360 -943
  3. package/dist/award-xp.mjs.map +2 -2
  4. package/dist/cli.mjs +8650 -429
  5. package/dist/cli.mjs.map +2 -2
  6. package/dist/increment-counter.mjs +8650 -429
  7. package/dist/increment-counter.mjs.map +2 -2
  8. package/dist/server.mjs +10627 -954
  9. package/dist/server.mjs.map +2 -2
  10. package/package.json +1 -1
  11. package/scripts/download-colorscripts.ts +103 -186
  12. package/scripts/generate-pokemon-data.ts +433 -0
  13. package/scripts/transform-pokemon-data.ts +167 -0
  14. package/sprites/colorscripts/small/152-chikorita.txt +11 -0
  15. package/sprites/colorscripts/small/153-bayleef.txt +13 -0
  16. package/sprites/colorscripts/small/154-meganium.txt +15 -0
  17. package/sprites/colorscripts/small/155-cyndaquil.txt +10 -0
  18. package/sprites/colorscripts/small/156-quilava.txt +11 -0
  19. package/sprites/colorscripts/small/157-typhlosion.txt +14 -0
  20. package/sprites/colorscripts/small/158-totodile.txt +10 -0
  21. package/sprites/colorscripts/small/159-croconaw.txt +14 -0
  22. package/sprites/colorscripts/small/160-feraligatr.txt +14 -0
  23. package/sprites/colorscripts/small/161-sentret.txt +14 -0
  24. package/sprites/colorscripts/small/162-furret.txt +12 -0
  25. package/sprites/colorscripts/small/163-hoothoot.txt +11 -0
  26. package/sprites/colorscripts/small/164-noctowl.txt +20 -0
  27. package/sprites/colorscripts/small/165-ledyba.txt +10 -0
  28. package/sprites/colorscripts/small/166-ledian.txt +12 -0
  29. package/sprites/colorscripts/small/167-spinarak.txt +8 -0
  30. package/sprites/colorscripts/small/168-ariados.txt +12 -0
  31. package/sprites/colorscripts/small/169-crobat.txt +16 -0
  32. package/sprites/colorscripts/small/170-chinchou.txt +11 -0
  33. package/sprites/colorscripts/small/171-lanturn.txt +13 -0
  34. package/sprites/colorscripts/small/172-pichu.txt +11 -0
  35. package/sprites/colorscripts/small/173-cleffa.txt +9 -0
  36. package/sprites/colorscripts/small/174-igglybuff.txt +10 -0
  37. package/sprites/colorscripts/small/175-togepi.txt +10 -0
  38. package/sprites/colorscripts/small/176-togetic.txt +12 -0
  39. package/sprites/colorscripts/small/177-natu.txt +10 -0
  40. package/sprites/colorscripts/small/178-xatu.txt +19 -0
  41. package/sprites/colorscripts/small/179-mareep.txt +11 -0
  42. package/sprites/colorscripts/small/180-flaaffy.txt +12 -0
  43. package/sprites/colorscripts/small/181-ampharos.txt +14 -0
  44. package/sprites/colorscripts/small/182-bellossom.txt +15 -0
  45. package/sprites/colorscripts/small/183-marill.txt +10 -0
  46. package/sprites/colorscripts/small/184-azumarill.txt +19 -0
  47. package/sprites/colorscripts/small/185-sudowoodo.txt +18 -0
  48. package/sprites/colorscripts/small/186-politoed.txt +18 -0
  49. package/sprites/colorscripts/small/187-hoppip.txt +11 -0
  50. package/sprites/colorscripts/small/188-skiploom.txt +10 -0
  51. package/sprites/colorscripts/small/189-jumpluff.txt +12 -0
  52. package/sprites/colorscripts/small/190-aipom.txt +11 -0
  53. package/sprites/colorscripts/small/191-sunkern.txt +10 -0
  54. package/sprites/colorscripts/small/192-sunflora.txt +12 -0
  55. package/sprites/colorscripts/small/193-yanma.txt +9 -0
  56. package/sprites/colorscripts/small/194-wooper.txt +10 -0
  57. package/sprites/colorscripts/small/195-quagsire.txt +17 -0
  58. package/sprites/colorscripts/small/196-espeon.txt +16 -0
  59. package/sprites/colorscripts/small/197-umbreon.txt +15 -0
  60. package/sprites/colorscripts/small/198-murkrow.txt +12 -0
  61. package/sprites/colorscripts/small/199-slowking.txt +21 -0
  62. package/sprites/colorscripts/small/200-misdreavus.txt +11 -0
  63. package/sprites/colorscripts/small/201-unown.txt +12 -0
  64. package/sprites/colorscripts/small/202-wobbuffet.txt +18 -0
  65. package/sprites/colorscripts/small/203-girafarig.txt +13 -0
  66. package/sprites/colorscripts/small/204-pineco.txt +11 -0
  67. package/sprites/colorscripts/small/205-forretress.txt +10 -0
  68. package/sprites/colorscripts/small/206-dunsparce.txt +14 -0
  69. package/sprites/colorscripts/small/207-gligar.txt +13 -0
  70. package/sprites/colorscripts/small/208-steelix.txt +21 -0
  71. package/sprites/colorscripts/small/209-snubbull.txt +11 -0
  72. package/sprites/colorscripts/small/210-granbull.txt +13 -0
  73. package/sprites/colorscripts/small/211-qwilfish.txt +12 -0
  74. package/sprites/colorscripts/small/212-scizor.txt +19 -0
  75. package/sprites/colorscripts/small/213-shuckle.txt +15 -0
  76. package/sprites/colorscripts/small/214-heracross.txt +21 -0
  77. package/sprites/colorscripts/small/215-sneasel.txt +12 -0
  78. package/sprites/colorscripts/small/216-teddiursa.txt +11 -0
  79. package/sprites/colorscripts/small/217-ursaring.txt +13 -0
  80. package/sprites/colorscripts/small/218-slugma.txt +12 -0
  81. package/sprites/colorscripts/small/219-magcargo.txt +12 -0
  82. package/sprites/colorscripts/small/220-swinub.txt +8 -0
  83. package/sprites/colorscripts/small/221-piloswine.txt +12 -0
  84. package/sprites/colorscripts/small/222-corsola.txt +11 -0
  85. package/sprites/colorscripts/small/223-remoraid.txt +9 -0
  86. package/sprites/colorscripts/small/224-octillery.txt +15 -0
  87. package/sprites/colorscripts/small/225-delibird.txt +17 -0
  88. package/sprites/colorscripts/small/226-mantine.txt +11 -0
  89. package/sprites/colorscripts/small/227-skarmory.txt +20 -0
  90. package/sprites/colorscripts/small/228-houndour.txt +11 -0
  91. package/sprites/colorscripts/small/229-houndoom.txt +13 -0
  92. package/sprites/colorscripts/small/230-kingdra.txt +18 -0
  93. package/sprites/colorscripts/small/231-phanpy.txt +9 -0
  94. package/sprites/colorscripts/small/232-donphan.txt +12 -0
  95. package/sprites/colorscripts/small/233-porygon2.txt +15 -0
  96. package/sprites/colorscripts/small/234-stantler.txt +14 -0
  97. package/sprites/colorscripts/small/235-smeargle.txt +12 -0
  98. package/sprites/colorscripts/small/236-tyrogue.txt +12 -0
  99. package/sprites/colorscripts/small/237-hitmontop.txt +16 -0
  100. package/sprites/colorscripts/small/238-smoochum.txt +11 -0
  101. package/sprites/colorscripts/small/239-elekid.txt +11 -0
  102. package/sprites/colorscripts/small/240-magby.txt +11 -0
  103. package/sprites/colorscripts/small/241-miltank.txt +18 -0
  104. package/sprites/colorscripts/small/242-blissey.txt +18 -0
  105. package/sprites/colorscripts/small/243-raikou.txt +19 -0
  106. package/sprites/colorscripts/small/244-entei.txt +19 -0
  107. package/sprites/colorscripts/small/245-suicune.txt +20 -0
  108. package/sprites/colorscripts/small/246-larvitar.txt +11 -0
  109. package/sprites/colorscripts/small/247-pupitar.txt +11 -0
  110. package/sprites/colorscripts/small/248-tyranitar.txt +20 -0
  111. package/sprites/colorscripts/small/249-lugia.txt +21 -0
  112. package/sprites/colorscripts/small/250-ho-oh.txt +26 -0
  113. package/sprites/colorscripts/small/251-celebi.txt +10 -0
  114. package/sprites/colorscripts/small/252-treecko.txt +12 -0
  115. package/sprites/colorscripts/small/253-grovyle.txt +12 -0
  116. package/sprites/colorscripts/small/254-sceptile.txt +18 -0
  117. package/sprites/colorscripts/small/255-torchic.txt +11 -0
  118. package/sprites/colorscripts/small/256-combusken.txt +14 -0
  119. package/sprites/colorscripts/small/257-blaziken.txt +18 -0
  120. package/sprites/colorscripts/small/258-mudkip.txt +10 -0
  121. package/sprites/colorscripts/small/259-marshtomp.txt +12 -0
  122. package/sprites/colorscripts/small/260-swampert.txt +18 -0
  123. package/sprites/colorscripts/small/261-poochyena.txt +10 -0
  124. package/sprites/colorscripts/small/262-mightyena.txt +12 -0
  125. package/sprites/colorscripts/small/263-zigzagoon.txt +9 -0
  126. package/sprites/colorscripts/small/264-linoone.txt +11 -0
  127. package/sprites/colorscripts/small/265-wurmple.txt +10 -0
  128. package/sprites/colorscripts/small/266-silcoon.txt +10 -0
  129. package/sprites/colorscripts/small/267-beautifly.txt +13 -0
  130. package/sprites/colorscripts/small/268-cascoon.txt +10 -0
  131. package/sprites/colorscripts/small/269-dustox.txt +11 -0
  132. package/sprites/colorscripts/small/270-lotad.txt +9 -0
  133. package/sprites/colorscripts/small/271-lombre.txt +12 -0
  134. package/sprites/colorscripts/small/272-ludicolo.txt +20 -0
  135. package/sprites/colorscripts/small/273-seedot.txt +10 -0
  136. package/sprites/colorscripts/small/274-nuzleaf.txt +13 -0
  137. package/sprites/colorscripts/small/275-shiftry.txt +18 -0
  138. package/sprites/colorscripts/small/276-taillow.txt +9 -0
  139. package/sprites/colorscripts/small/277-swellow.txt +11 -0
  140. package/sprites/colorscripts/small/278-wingull.txt +8 -0
  141. package/sprites/colorscripts/small/279-pelipper.txt +15 -0
  142. package/sprites/colorscripts/small/280-ralts.txt +10 -0
  143. package/sprites/colorscripts/small/281-kirlia.txt +13 -0
  144. package/sprites/colorscripts/small/282-gardevoir.txt +19 -0
  145. package/sprites/colorscripts/small/283-surskit.txt +11 -0
  146. package/sprites/colorscripts/small/284-masquerain.txt +13 -0
  147. package/sprites/colorscripts/small/285-shroomish.txt +9 -0
  148. package/sprites/colorscripts/small/286-breloom.txt +14 -0
  149. package/sprites/colorscripts/small/287-slakoth.txt +9 -0
  150. package/sprites/colorscripts/small/288-vigoroth.txt +12 -0
  151. package/sprites/colorscripts/small/289-slaking.txt +14 -0
  152. package/sprites/colorscripts/small/290-nincada.txt +8 -0
  153. package/sprites/colorscripts/small/291-ninjask.txt +16 -0
  154. package/sprites/colorscripts/small/292-shedinja.txt +15 -0
  155. package/sprites/colorscripts/small/293-whismur.txt +9 -0
  156. package/sprites/colorscripts/small/294-loudred.txt +13 -0
  157. package/sprites/colorscripts/small/295-exploud.txt +18 -0
  158. package/sprites/colorscripts/small/296-makuhita.txt +11 -0
  159. package/sprites/colorscripts/small/297-hariyama.txt +13 -0
  160. package/sprites/colorscripts/small/298-azurill.txt +11 -0
  161. package/sprites/colorscripts/small/299-nosepass.txt +10 -0
  162. package/sprites/colorscripts/small/300-skitty.txt +11 -0
  163. package/sprites/colorscripts/small/301-delcatty.txt +12 -0
  164. package/sprites/colorscripts/small/302-sableye.txt +16 -0
  165. package/sprites/colorscripts/small/303-mawile.txt +15 -0
  166. package/sprites/colorscripts/small/304-aron.txt +7 -0
  167. package/sprites/colorscripts/small/305-lairon.txt +10 -0
  168. package/sprites/colorscripts/small/306-aggron.txt +18 -0
  169. package/sprites/colorscripts/small/307-meditite.txt +11 -0
  170. package/sprites/colorscripts/small/308-medicham.txt +14 -0
  171. package/sprites/colorscripts/small/309-electrike.txt +9 -0
  172. package/sprites/colorscripts/small/310-manectric.txt +18 -0
  173. package/sprites/colorscripts/small/311-plusle.txt +11 -0
  174. package/sprites/colorscripts/small/312-minun.txt +11 -0
  175. package/sprites/colorscripts/small/313-volbeat.txt +11 -0
  176. package/sprites/colorscripts/small/314-illumise.txt +11 -0
  177. package/sprites/colorscripts/small/315-roselia.txt +12 -0
  178. package/sprites/colorscripts/small/316-gulpin.txt +10 -0
  179. package/sprites/colorscripts/small/317-swalot.txt +10 -0
  180. package/sprites/colorscripts/small/318-carvanha.txt +11 -0
  181. package/sprites/colorscripts/small/319-sharpedo.txt +20 -0
  182. package/sprites/colorscripts/small/320-wailmer.txt +13 -0
  183. package/sprites/colorscripts/small/321-wailord.txt +18 -0
  184. package/sprites/colorscripts/small/322-numel.txt +10 -0
  185. package/sprites/colorscripts/small/323-camerupt.txt +12 -0
  186. package/sprites/colorscripts/small/324-torkoal.txt +15 -0
  187. package/sprites/colorscripts/small/325-spoink.txt +11 -0
  188. package/sprites/colorscripts/small/326-grumpig.txt +11 -0
  189. package/sprites/colorscripts/small/327-spinda.txt +12 -0
  190. package/sprites/colorscripts/small/328-trapinch.txt +11 -0
  191. package/sprites/colorscripts/small/329-vibrava.txt +11 -0
  192. package/sprites/colorscripts/small/330-flygon.txt +18 -0
  193. package/sprites/colorscripts/small/331-cacnea.txt +10 -0
  194. package/sprites/colorscripts/small/332-cacturne.txt +15 -0
  195. package/sprites/colorscripts/small/333-swablu.txt +9 -0
  196. package/sprites/colorscripts/small/334-altaria.txt +16 -0
  197. package/sprites/colorscripts/small/335-zangoose.txt +12 -0
  198. package/sprites/colorscripts/small/336-seviper.txt +11 -0
  199. package/sprites/colorscripts/small/337-lunatone.txt +13 -0
  200. package/sprites/colorscripts/small/338-solrock.txt +17 -0
  201. package/sprites/colorscripts/small/339-barboach.txt +8 -0
  202. package/sprites/colorscripts/small/340-whiscash.txt +13 -0
  203. package/sprites/colorscripts/small/341-corphish.txt +11 -0
  204. package/sprites/colorscripts/small/342-crawdaunt.txt +17 -0
  205. package/sprites/colorscripts/small/343-baltoy.txt +12 -0
  206. package/sprites/colorscripts/small/344-claydol.txt +17 -0
  207. package/sprites/colorscripts/small/345-lileep.txt +11 -0
  208. package/sprites/colorscripts/small/346-cradily.txt +13 -0
  209. package/sprites/colorscripts/small/347-anorith.txt +11 -0
  210. package/sprites/colorscripts/small/348-armaldo.txt +16 -0
  211. package/sprites/colorscripts/small/349-feebas.txt +12 -0
  212. package/sprites/colorscripts/small/350-milotic.txt +18 -0
  213. package/sprites/colorscripts/small/351-castform.txt +11 -0
  214. package/sprites/colorscripts/small/352-kecleon.txt +11 -0
  215. package/sprites/colorscripts/small/353-shuppet.txt +11 -0
  216. package/sprites/colorscripts/small/354-banette.txt +11 -0
  217. package/sprites/colorscripts/small/355-duskull.txt +12 -0
  218. package/sprites/colorscripts/small/356-dusclops.txt +13 -0
  219. package/sprites/colorscripts/small/357-tropius.txt +14 -0
  220. package/sprites/colorscripts/small/358-chimecho.txt +12 -0
  221. package/sprites/colorscripts/small/359-absol.txt +19 -0
  222. package/sprites/colorscripts/small/360-wynaut.txt +12 -0
  223. package/sprites/colorscripts/small/361-snorunt.txt +11 -0
  224. package/sprites/colorscripts/small/362-glalie.txt +15 -0
  225. package/sprites/colorscripts/small/363-spheal.txt +9 -0
  226. package/sprites/colorscripts/small/364-sealeo.txt +10 -0
  227. package/sprites/colorscripts/small/365-walrein.txt +15 -0
  228. package/sprites/colorscripts/small/366-clamperl.txt +11 -0
  229. package/sprites/colorscripts/small/367-huntail.txt +13 -0
  230. package/sprites/colorscripts/small/368-gorebyss.txt +12 -0
  231. package/sprites/colorscripts/small/369-relicanth.txt +14 -0
  232. package/sprites/colorscripts/small/370-luvdisc.txt +10 -0
  233. package/sprites/colorscripts/small/371-bagon.txt +11 -0
  234. package/sprites/colorscripts/small/372-shelgon.txt +12 -0
  235. package/sprites/colorscripts/small/373-salamence.txt +15 -0
  236. package/sprites/colorscripts/small/374-beldum.txt +10 -0
  237. package/sprites/colorscripts/small/375-metang.txt +12 -0
  238. package/sprites/colorscripts/small/376-metagross.txt +14 -0
  239. package/sprites/colorscripts/small/377-regirock.txt +17 -0
  240. package/sprites/colorscripts/small/378-regice.txt +17 -0
  241. package/sprites/colorscripts/small/379-registeel.txt +16 -0
  242. package/sprites/colorscripts/small/380-latias.txt +15 -0
  243. package/sprites/colorscripts/small/381-latios.txt +16 -0
  244. package/sprites/colorscripts/small/382-kyogre.txt +15 -0
  245. package/sprites/colorscripts/small/383-groudon.txt +19 -0
  246. package/sprites/colorscripts/small/384-rayquaza.txt +26 -0
  247. package/sprites/colorscripts/small/385-jirachi.txt +11 -0
  248. package/sprites/colorscripts/small/386-deoxys-normal.txt +12 -0
  249. package/sprites/colorscripts/small/387-turtwig.txt +12 -0
  250. package/sprites/colorscripts/small/388-grotle.txt +12 -0
  251. package/sprites/colorscripts/small/389-torterra.txt +13 -0
  252. package/sprites/colorscripts/small/390-chimchar.txt +12 -0
  253. package/sprites/colorscripts/small/391-monferno.txt +13 -0
  254. package/sprites/colorscripts/small/392-infernape.txt +13 -0
  255. package/sprites/colorscripts/small/393-piplup.txt +11 -0
  256. package/sprites/colorscripts/small/394-prinplup.txt +12 -0
  257. package/sprites/colorscripts/small/395-empoleon.txt +14 -0
  258. package/sprites/colorscripts/small/396-starly.txt +10 -0
  259. package/sprites/colorscripts/small/397-staravia.txt +13 -0
  260. package/sprites/colorscripts/small/398-staraptor.txt +14 -0
  261. package/sprites/colorscripts/small/399-bidoof.txt +9 -0
  262. package/sprites/colorscripts/small/400-bibarel.txt +12 -0
  263. package/sprites/colorscripts/small/401-kricketot.txt +12 -0
  264. package/sprites/colorscripts/small/402-kricketune.txt +13 -0
  265. package/sprites/colorscripts/small/403-shinx.txt +12 -0
  266. package/sprites/colorscripts/small/404-luxio.txt +12 -0
  267. package/sprites/colorscripts/small/405-luxray.txt +16 -0
  268. package/sprites/colorscripts/small/406-budew.txt +10 -0
  269. package/sprites/colorscripts/small/407-roserade.txt +16 -0
  270. package/sprites/colorscripts/small/408-cranidos.txt +11 -0
  271. package/sprites/colorscripts/small/409-rampardos.txt +13 -0
  272. package/sprites/colorscripts/small/410-shieldon.txt +11 -0
  273. package/sprites/colorscripts/small/411-bastiodon.txt +13 -0
  274. package/sprites/colorscripts/small/412-burmy.txt +12 -0
  275. package/sprites/colorscripts/small/413-wormadam-plant.txt +13 -0
  276. package/sprites/colorscripts/small/414-mothim.txt +11 -0
  277. package/sprites/colorscripts/small/415-combee.txt +10 -0
  278. package/sprites/colorscripts/small/416-vespiquen.txt +17 -0
  279. package/sprites/colorscripts/small/417-pachirisu.txt +13 -0
  280. package/sprites/colorscripts/small/418-buizel.txt +11 -0
  281. package/sprites/colorscripts/small/419-floatzel.txt +12 -0
  282. package/sprites/colorscripts/small/420-cherubi.txt +10 -0
  283. package/sprites/colorscripts/small/421-cherrim.txt +15 -0
  284. package/sprites/colorscripts/small/422-shellos.txt +11 -0
  285. package/sprites/colorscripts/small/423-gastrodon.txt +16 -0
  286. package/sprites/colorscripts/small/424-ambipom.txt +14 -0
  287. package/sprites/colorscripts/small/425-drifloon.txt +12 -0
  288. package/sprites/colorscripts/small/426-drifblim.txt +17 -0
  289. package/sprites/colorscripts/small/427-buneary.txt +12 -0
  290. package/sprites/colorscripts/small/428-lopunny.txt +17 -0
  291. package/sprites/colorscripts/small/429-mismagius.txt +15 -0
  292. package/sprites/colorscripts/small/430-honchkrow.txt +12 -0
  293. package/sprites/colorscripts/small/431-glameow.txt +12 -0
  294. package/sprites/colorscripts/small/432-purugly.txt +12 -0
  295. package/sprites/colorscripts/small/433-chingling.txt +11 -0
  296. package/sprites/colorscripts/small/434-stunky.txt +11 -0
  297. package/sprites/colorscripts/small/435-skuntank.txt +14 -0
  298. package/sprites/colorscripts/small/436-bronzor.txt +9 -0
  299. package/sprites/colorscripts/small/437-bronzong.txt +15 -0
  300. package/sprites/colorscripts/small/438-bonsly.txt +11 -0
  301. package/sprites/colorscripts/small/439-mime-jr..txt +12 -0
  302. package/sprites/colorscripts/small/440-happiny.txt +11 -0
  303. package/sprites/colorscripts/small/441-chatot.txt +12 -0
  304. package/sprites/colorscripts/small/442-spiritomb.txt +15 -0
  305. package/sprites/colorscripts/small/443-gible.txt +11 -0
  306. package/sprites/colorscripts/small/444-gabite.txt +12 -0
  307. package/sprites/colorscripts/small/445-garchomp.txt +17 -0
  308. package/sprites/colorscripts/small/446-munchlax.txt +11 -0
  309. package/sprites/colorscripts/small/447-riolu.txt +10 -0
  310. package/sprites/colorscripts/small/448-lucario.txt +19 -0
  311. package/sprites/colorscripts/small/449-hippopotas.txt +10 -0
  312. package/sprites/colorscripts/small/450-hippowdon.txt +13 -0
  313. package/sprites/colorscripts/small/451-skorupi.txt +12 -0
  314. package/sprites/colorscripts/small/452-drapion.txt +15 -0
  315. package/sprites/colorscripts/small/453-croagunk.txt +10 -0
  316. package/sprites/colorscripts/small/454-toxicroak.txt +16 -0
  317. package/sprites/colorscripts/small/455-carnivine.txt +13 -0
  318. package/sprites/colorscripts/small/456-finneon.txt +10 -0
  319. package/sprites/colorscripts/small/457-lumineon.txt +13 -0
  320. package/sprites/colorscripts/small/458-mantyke.txt +10 -0
  321. package/sprites/colorscripts/small/459-snover.txt +11 -0
  322. package/sprites/colorscripts/small/460-abomasnow.txt +16 -0
  323. package/sprites/colorscripts/small/461-weavile.txt +19 -0
  324. package/sprites/colorscripts/small/462-magnezone.txt +17 -0
  325. package/sprites/colorscripts/small/463-lickilicky.txt +17 -0
  326. package/sprites/colorscripts/small/464-rhyperior.txt +17 -0
  327. package/sprites/colorscripts/small/465-tangrowth.txt +15 -0
  328. package/sprites/colorscripts/small/466-electivire.txt +17 -0
  329. package/sprites/colorscripts/small/467-magmortar.txt +17 -0
  330. package/sprites/colorscripts/small/468-togekiss.txt +14 -0
  331. package/sprites/colorscripts/small/469-yanmega.txt +12 -0
  332. package/sprites/colorscripts/small/470-leafeon.txt +17 -0
  333. package/sprites/colorscripts/small/471-glaceon.txt +16 -0
  334. package/sprites/colorscripts/small/472-gliscor.txt +12 -0
  335. package/sprites/colorscripts/small/473-mamoswine.txt +15 -0
  336. package/sprites/colorscripts/small/474-porygon-z.txt +19 -0
  337. package/sprites/colorscripts/small/475-gallade.txt +18 -0
  338. package/sprites/colorscripts/small/476-probopass.txt +13 -0
  339. package/sprites/colorscripts/small/477-dusknoir.txt +18 -0
  340. package/sprites/colorscripts/small/478-froslass.txt +17 -0
  341. package/sprites/colorscripts/small/479-rotom.txt +15 -0
  342. package/sprites/colorscripts/small/480-uxie.txt +16 -0
  343. package/sprites/colorscripts/small/481-mesprit.txt +15 -0
  344. package/sprites/colorscripts/small/482-azelf.txt +16 -0
  345. package/sprites/colorscripts/small/483-dialga.txt +23 -0
  346. package/sprites/colorscripts/small/484-palkia.txt +20 -0
  347. package/sprites/colorscripts/small/485-heatran.txt +15 -0
  348. package/sprites/colorscripts/small/486-regigigas.txt +16 -0
  349. package/sprites/colorscripts/small/487-giratina-altered.txt +18 -0
  350. package/sprites/colorscripts/small/488-cresselia.txt +18 -0
  351. package/sprites/colorscripts/small/489-phione.txt +10 -0
  352. package/sprites/colorscripts/small/490-manaphy.txt +11 -0
  353. package/sprites/colorscripts/small/491-darkrai.txt +15 -0
  354. package/sprites/colorscripts/small/492-shaymin-land.txt +9 -0
  355. package/sprites/colorscripts/small/493-arceus.txt +15 -0
  356. package/sprites/colorscripts/small/494-victini.txt +16 -0
  357. package/sprites/colorscripts/small/495-snivy.txt +10 -0
  358. package/sprites/colorscripts/small/496-servine.txt +11 -0
  359. package/sprites/colorscripts/small/497-serperior.txt +12 -0
  360. package/sprites/colorscripts/small/498-tepig.txt +10 -0
  361. package/sprites/colorscripts/small/499-pignite.txt +12 -0
  362. package/sprites/colorscripts/small/500-emboar.txt +14 -0
  363. package/sprites/colorscripts/small/501-oshawott.txt +10 -0
  364. package/sprites/colorscripts/small/502-dewott.txt +13 -0
  365. package/sprites/colorscripts/small/503-samurott.txt +13 -0
  366. package/sprites/colorscripts/small/504-patrat.txt +10 -0
  367. package/sprites/colorscripts/small/505-watchog.txt +12 -0
  368. package/sprites/colorscripts/small/506-lillipup.txt +10 -0
  369. package/sprites/colorscripts/small/507-herdier.txt +12 -0
  370. package/sprites/colorscripts/small/508-stoutland.txt +16 -0
  371. package/sprites/colorscripts/small/509-purrloin.txt +12 -0
  372. package/sprites/colorscripts/small/510-liepard.txt +19 -0
  373. package/sprites/colorscripts/small/511-pansage.txt +12 -0
  374. package/sprites/colorscripts/small/512-simisage.txt +14 -0
  375. package/sprites/colorscripts/small/513-pansear.txt +11 -0
  376. package/sprites/colorscripts/small/514-simisear.txt +12 -0
  377. package/sprites/colorscripts/small/515-panpour.txt +12 -0
  378. package/sprites/colorscripts/small/516-simipour.txt +12 -0
  379. package/sprites/colorscripts/small/517-munna.txt +8 -0
  380. package/sprites/colorscripts/small/518-musharna.txt +15 -0
  381. package/sprites/colorscripts/small/519-pidove.txt +9 -0
  382. package/sprites/colorscripts/small/520-tranquill.txt +11 -0
  383. package/sprites/colorscripts/small/521-unfezant.txt +17 -0
  384. package/sprites/colorscripts/small/522-blitzle.txt +12 -0
  385. package/sprites/colorscripts/small/523-zebstrika.txt +13 -0
  386. package/sprites/colorscripts/small/524-roggenrola.txt +10 -0
  387. package/sprites/colorscripts/small/525-boldore.txt +12 -0
  388. package/sprites/colorscripts/small/526-gigalith.txt +18 -0
  389. package/sprites/colorscripts/small/527-woobat.txt +9 -0
  390. package/sprites/colorscripts/small/528-swoobat.txt +15 -0
  391. package/sprites/colorscripts/small/529-drilbur.txt +10 -0
  392. package/sprites/colorscripts/small/530-excadrill.txt +16 -0
  393. package/sprites/colorscripts/small/531-audino.txt +16 -0
  394. package/sprites/colorscripts/small/532-timburr.txt +11 -0
  395. package/sprites/colorscripts/small/533-gurdurr.txt +13 -0
  396. package/sprites/colorscripts/small/534-conkeldurr.txt +17 -0
  397. package/sprites/colorscripts/small/535-tympole.txt +8 -0
  398. package/sprites/colorscripts/small/536-palpitoad.txt +10 -0
  399. package/sprites/colorscripts/small/537-seismitoad.txt +15 -0
  400. package/sprites/colorscripts/small/538-throh.txt +17 -0
  401. package/sprites/colorscripts/small/539-sawk.txt +17 -0
  402. package/sprites/colorscripts/small/540-sewaddle.txt +10 -0
  403. package/sprites/colorscripts/small/541-swadloon.txt +9 -0
  404. package/sprites/colorscripts/small/542-leavanny.txt +12 -0
  405. package/sprites/colorscripts/small/543-venipede.txt +8 -0
  406. package/sprites/colorscripts/small/544-whirlipede.txt +9 -0
  407. package/sprites/colorscripts/small/545-scolipede.txt +19 -0
  408. package/sprites/colorscripts/small/546-cottonee.txt +8 -0
  409. package/sprites/colorscripts/small/547-whimsicott.txt +17 -0
  410. package/sprites/colorscripts/small/548-petilil.txt +10 -0
  411. package/sprites/colorscripts/small/549-lilligant.txt +18 -0
  412. package/sprites/colorscripts/small/550-basculin-red-striped.txt +13 -0
  413. package/sprites/colorscripts/small/551-sandile.txt +9 -0
  414. package/sprites/colorscripts/small/552-krokorok.txt +12 -0
  415. package/sprites/colorscripts/small/553-krookodile.txt +16 -0
  416. package/sprites/colorscripts/small/554-darumaka.txt +9 -0
  417. package/sprites/colorscripts/small/555-darmanitan-standard.txt +18 -0
  418. package/sprites/colorscripts/small/556-maractus.txt +18 -0
  419. package/sprites/colorscripts/small/557-dwebble.txt +10 -0
  420. package/sprites/colorscripts/small/558-crustle.txt +16 -0
  421. package/sprites/colorscripts/small/559-scraggy.txt +9 -0
  422. package/sprites/colorscripts/small/560-scrafty.txt +18 -0
  423. package/sprites/colorscripts/small/561-sigilyph.txt +20 -0
  424. package/sprites/colorscripts/small/562-yamask.txt +9 -0
  425. package/sprites/colorscripts/small/563-cofagrigus.txt +18 -0
  426. package/sprites/colorscripts/small/564-tirtouga.txt +9 -0
  427. package/sprites/colorscripts/small/565-carracosta.txt +17 -0
  428. package/sprites/colorscripts/small/566-archen.txt +9 -0
  429. package/sprites/colorscripts/small/567-archeops.txt +20 -0
  430. package/sprites/colorscripts/small/568-trubbish.txt +10 -0
  431. package/sprites/colorscripts/small/569-garbodor.txt +16 -0
  432. package/sprites/colorscripts/small/570-zorua.txt +10 -0
  433. package/sprites/colorscripts/small/571-zoroark.txt +18 -0
  434. package/sprites/colorscripts/small/572-minccino.txt +11 -0
  435. package/sprites/colorscripts/small/573-cinccino.txt +16 -0
  436. package/sprites/colorscripts/small/574-gothita.txt +10 -0
  437. package/sprites/colorscripts/small/575-gothorita.txt +11 -0
  438. package/sprites/colorscripts/small/576-gothitelle.txt +17 -0
  439. package/sprites/colorscripts/small/577-solosis.txt +8 -0
  440. package/sprites/colorscripts/small/578-duosion.txt +11 -0
  441. package/sprites/colorscripts/small/579-reuniclus.txt +15 -0
  442. package/sprites/colorscripts/small/580-ducklett.txt +11 -0
  443. package/sprites/colorscripts/small/581-swanna.txt +12 -0
  444. package/sprites/colorscripts/small/582-vanillite.txt +9 -0
  445. package/sprites/colorscripts/small/583-vanillish.txt +12 -0
  446. package/sprites/colorscripts/small/584-vanilluxe.txt +17 -0
  447. package/sprites/colorscripts/small/585-deerling.txt +12 -0
  448. package/sprites/colorscripts/small/586-sawsbuck.txt +13 -0
  449. package/sprites/colorscripts/small/587-emolga.txt +14 -0
  450. package/sprites/colorscripts/small/588-karrablast.txt +10 -0
  451. package/sprites/colorscripts/small/589-escavalier.txt +19 -0
  452. package/sprites/colorscripts/small/590-foongus.txt +10 -0
  453. package/sprites/colorscripts/small/591-amoonguss.txt +14 -0
  454. package/sprites/colorscripts/small/592-frillish-male.txt +11 -0
  455. package/sprites/colorscripts/small/593-jellicent-male.txt +17 -0
  456. package/sprites/colorscripts/small/594-alomomola.txt +12 -0
  457. package/sprites/colorscripts/small/595-joltik.txt +9 -0
  458. package/sprites/colorscripts/small/596-galvantula.txt +15 -0
  459. package/sprites/colorscripts/small/597-ferroseed.txt +9 -0
  460. package/sprites/colorscripts/small/598-ferrothorn.txt +14 -0
  461. package/sprites/colorscripts/small/599-klink.txt +9 -0
  462. package/sprites/colorscripts/small/600-klang.txt +11 -0
  463. package/sprites/colorscripts/small/601-klinklang.txt +17 -0
  464. package/sprites/colorscripts/small/602-tynamo.txt +7 -0
  465. package/sprites/colorscripts/small/603-eelektrik.txt +11 -0
  466. package/sprites/colorscripts/small/604-eelektross.txt +12 -0
  467. package/sprites/colorscripts/small/605-elgyem.txt +11 -0
  468. package/sprites/colorscripts/small/606-beheeyem.txt +18 -0
  469. package/sprites/colorscripts/small/607-litwick.txt +10 -0
  470. package/sprites/colorscripts/small/608-lampent.txt +10 -0
  471. package/sprites/colorscripts/small/609-chandelure.txt +18 -0
  472. package/sprites/colorscripts/small/610-axew.txt +11 -0
  473. package/sprites/colorscripts/small/611-fraxure.txt +12 -0
  474. package/sprites/colorscripts/small/612-haxorus.txt +18 -0
  475. package/sprites/colorscripts/small/613-cubchoo.txt +10 -0
  476. package/sprites/colorscripts/small/614-beartic.txt +17 -0
  477. package/sprites/colorscripts/small/615-cryogonal.txt +16 -0
  478. package/sprites/colorscripts/small/616-shelmet.txt +9 -0
  479. package/sprites/colorscripts/small/617-accelgor.txt +16 -0
  480. package/sprites/colorscripts/small/618-stunfisk.txt +12 -0
  481. package/sprites/colorscripts/small/619-mienfoo.txt +11 -0
  482. package/sprites/colorscripts/small/620-mienshao.txt +18 -0
  483. package/sprites/colorscripts/small/621-druddigon.txt +19 -0
  484. package/sprites/colorscripts/small/622-golett.txt +10 -0
  485. package/sprites/colorscripts/small/623-golurk.txt +16 -0
  486. package/sprites/colorscripts/small/624-pawniard.txt +11 -0
  487. package/sprites/colorscripts/small/625-bisharp.txt +17 -0
  488. package/sprites/colorscripts/small/626-bouffalant.txt +16 -0
  489. package/sprites/colorscripts/small/627-rufflet.txt +12 -0
  490. package/sprites/colorscripts/small/628-braviary.txt +20 -0
  491. package/sprites/colorscripts/small/629-vullaby.txt +11 -0
  492. package/sprites/colorscripts/small/630-mandibuzz.txt +18 -0
  493. package/sprites/colorscripts/small/631-heatmor.txt +14 -0
  494. package/sprites/colorscripts/small/632-durant.txt +12 -0
  495. package/sprites/colorscripts/small/633-deino.txt +11 -0
  496. package/sprites/colorscripts/small/634-zweilous.txt +12 -0
  497. package/sprites/colorscripts/small/635-hydreigon.txt +16 -0
  498. package/sprites/colorscripts/small/636-larvesta.txt +11 -0
  499. package/sprites/colorscripts/small/637-volcarona.txt +16 -0
  500. package/sprites/colorscripts/small/638-cobalion.txt +20 -0
  501. package/sprites/colorscripts/small/639-terrakion.txt +16 -0
  502. package/sprites/colorscripts/small/640-virizion.txt +19 -0
  503. package/sprites/colorscripts/small/641-tornadus-incarnate.txt +19 -0
  504. package/sprites/colorscripts/small/642-thundurus-incarnate.txt +20 -0
  505. package/sprites/colorscripts/small/643-reshiram.txt +22 -0
  506. package/sprites/colorscripts/small/644-zekrom.txt +21 -0
  507. package/sprites/colorscripts/small/645-landorus-incarnate.txt +19 -0
  508. package/sprites/colorscripts/small/646-kyurem.txt +17 -0
  509. package/sprites/colorscripts/small/647-keldeo-ordinary.txt +19 -0
  510. package/sprites/colorscripts/small/648-meloetta-aria.txt +12 -0
  511. package/sprites/colorscripts/small/649-genesect.txt +18 -0
  512. package/sprites/colorscripts/small/650-chespin.txt +12 -0
  513. package/sprites/colorscripts/small/651-quilladin.txt +12 -0
  514. package/sprites/colorscripts/small/652-chesnaught.txt +13 -0
  515. package/sprites/colorscripts/small/653-fennekin.txt +11 -0
  516. package/sprites/colorscripts/small/654-braixen.txt +12 -0
  517. package/sprites/colorscripts/small/655-delphox.txt +13 -0
  518. package/sprites/colorscripts/small/656-froakie.txt +11 -0
  519. package/sprites/colorscripts/small/657-frogadier.txt +12 -0
  520. package/sprites/colorscripts/small/658-greninja.txt +12 -0
  521. package/sprites/colorscripts/small/659-bunnelby.txt +14 -0
  522. package/sprites/colorscripts/small/660-diggersby.txt +16 -0
  523. package/sprites/colorscripts/small/661-fletchling.txt +9 -0
  524. package/sprites/colorscripts/small/662-fletchinder.txt +11 -0
  525. package/sprites/colorscripts/small/663-talonflame.txt +15 -0
  526. package/sprites/colorscripts/small/664-scatterbug.txt +12 -0
  527. package/sprites/colorscripts/small/665-spewpa.txt +10 -0
  528. package/sprites/colorscripts/small/666-vivillon.txt +14 -0
  529. package/sprites/colorscripts/small/667-litleo.txt +11 -0
  530. package/sprites/colorscripts/small/668-pyroar-male.txt +14 -0
  531. package/sprites/colorscripts/small/669-flabebe.txt +10 -0
  532. package/sprites/colorscripts/small/670-floette.txt +12 -0
  533. package/sprites/colorscripts/small/671-florges.txt +15 -0
  534. package/sprites/colorscripts/small/672-skiddo.txt +10 -0
  535. package/sprites/colorscripts/small/673-gogoat.txt +12 -0
  536. package/sprites/colorscripts/small/674-pancham.txt +11 -0
  537. package/sprites/colorscripts/small/675-pangoro.txt +18 -0
  538. package/sprites/colorscripts/small/676-furfrou.txt +15 -0
  539. package/sprites/colorscripts/small/677-espurr.txt +10 -0
  540. package/sprites/colorscripts/small/678-meowstic-male.txt +16 -0
  541. package/sprites/colorscripts/small/679-honedge.txt +13 -0
  542. package/sprites/colorscripts/small/680-doublade.txt +13 -0
  543. package/sprites/colorscripts/small/681-aegislash-shield.txt +19 -0
  544. package/sprites/colorscripts/small/682-spritzee.txt +9 -0
  545. package/sprites/colorscripts/small/683-aromatisse.txt +16 -0
  546. package/sprites/colorscripts/small/684-swirlix.txt +9 -0
  547. package/sprites/colorscripts/small/685-slurpuff.txt +16 -0
  548. package/sprites/colorscripts/small/686-inkay.txt +11 -0
  549. package/sprites/colorscripts/small/687-malamar.txt +18 -0
  550. package/sprites/colorscripts/small/688-binacle.txt +13 -0
  551. package/sprites/colorscripts/small/689-barbaracle.txt +17 -0
  552. package/sprites/colorscripts/small/690-skrelp.txt +12 -0
  553. package/sprites/colorscripts/small/691-dragalge.txt +17 -0
  554. package/sprites/colorscripts/small/692-clauncher.txt +10 -0
  555. package/sprites/colorscripts/small/693-clawitzer.txt +15 -0
  556. package/sprites/colorscripts/small/694-helioptile.txt +10 -0
  557. package/sprites/colorscripts/small/695-heliolisk.txt +16 -0
  558. package/sprites/colorscripts/small/696-tyrunt.txt +10 -0
  559. package/sprites/colorscripts/small/697-tyrantrum.txt +18 -0
  560. package/sprites/colorscripts/small/698-amaura.txt +13 -0
  561. package/sprites/colorscripts/small/699-aurorus.txt +19 -0
  562. package/sprites/colorscripts/small/700-sylveon.txt +17 -0
  563. package/sprites/colorscripts/small/701-hawlucha.txt +16 -0
  564. package/sprites/colorscripts/small/702-dedenne.txt +15 -0
  565. package/sprites/colorscripts/small/703-carbink.txt +8 -0
  566. package/sprites/colorscripts/small/704-goomy.txt +8 -0
  567. package/sprites/colorscripts/small/705-sliggoo.txt +12 -0
  568. package/sprites/colorscripts/small/706-goodra.txt +16 -0
  569. package/sprites/colorscripts/small/707-klefki.txt +17 -0
  570. package/sprites/colorscripts/small/708-phantump.txt +12 -0
  571. package/sprites/colorscripts/small/709-trevenant.txt +17 -0
  572. package/sprites/colorscripts/small/710-pumpkaboo-average.txt +11 -0
  573. package/sprites/colorscripts/small/711-gourgeist-average.txt +17 -0
  574. package/sprites/colorscripts/small/712-bergmite.txt +10 -0
  575. package/sprites/colorscripts/small/713-avalugg.txt +14 -0
  576. package/sprites/colorscripts/small/714-noibat.txt +11 -0
  577. package/sprites/colorscripts/small/715-noivern.txt +16 -0
  578. package/sprites/colorscripts/small/716-xerneas.txt +24 -0
  579. package/sprites/colorscripts/small/717-yveltal.txt +23 -0
  580. package/sprites/colorscripts/small/718-zygarde-50.txt +24 -0
  581. package/sprites/colorscripts/small/719-diancie.txt +21 -0
  582. package/sprites/colorscripts/small/720-hoopa.txt +11 -0
  583. package/sprites/colorscripts/small/721-volcanion.txt +22 -0
  584. package/sprites/colorscripts/small/722-rowlet.txt +10 -0
  585. package/sprites/colorscripts/small/723-dartrix.txt +12 -0
  586. package/sprites/colorscripts/small/724-decidueye.txt +20 -0
  587. package/sprites/colorscripts/small/725-litten.txt +12 -0
  588. package/sprites/colorscripts/small/726-torracat.txt +13 -0
  589. package/sprites/colorscripts/small/727-incineroar.txt +17 -0
  590. package/sprites/colorscripts/small/728-popplio.txt +11 -0
  591. package/sprites/colorscripts/small/729-brionne.txt +13 -0
  592. package/sprites/colorscripts/small/730-primarina.txt +19 -0
  593. package/sprites/colorscripts/small/731-pikipek.txt +12 -0
  594. package/sprites/colorscripts/small/732-trumbeak.txt +12 -0
  595. package/sprites/colorscripts/small/733-toucannon.txt +12 -0
  596. package/sprites/colorscripts/small/734-yungoos.txt +9 -0
  597. package/sprites/colorscripts/small/735-gumshoos.txt +13 -0
  598. package/sprites/colorscripts/small/736-grubbin.txt +8 -0
  599. package/sprites/colorscripts/small/737-charjabug.txt +11 -0
  600. package/sprites/colorscripts/small/738-vikavolt.txt +17 -0
  601. package/sprites/colorscripts/small/739-crabrawler.txt +12 -0
  602. package/sprites/colorscripts/small/740-crabominable.txt +13 -0
  603. package/sprites/colorscripts/small/741-oricorio-baile.txt +11 -0
  604. package/sprites/colorscripts/small/742-cutiefly.txt +11 -0
  605. package/sprites/colorscripts/small/743-ribombee.txt +15 -0
  606. package/sprites/colorscripts/small/744-rockruff.txt +12 -0
  607. package/sprites/colorscripts/small/745-lycanroc-midday.txt +15 -0
  608. package/sprites/colorscripts/small/746-wishiwashi-solo.txt +8 -0
  609. package/sprites/colorscripts/small/747-mareanie.txt +11 -0
  610. package/sprites/colorscripts/small/748-toxapex.txt +17 -0
  611. package/sprites/colorscripts/small/749-mudbray.txt +13 -0
  612. package/sprites/colorscripts/small/750-mudsdale.txt +16 -0
  613. package/sprites/colorscripts/small/751-dewpider.txt +11 -0
  614. package/sprites/colorscripts/small/752-araquanid.txt +14 -0
  615. package/sprites/colorscripts/small/753-fomantis.txt +11 -0
  616. package/sprites/colorscripts/small/754-lurantis.txt +18 -0
  617. package/sprites/colorscripts/small/755-morelull.txt +13 -0
  618. package/sprites/colorscripts/small/756-shiinotic.txt +15 -0
  619. package/sprites/colorscripts/small/757-salandit.txt +10 -0
  620. package/sprites/colorscripts/small/758-salazzle.txt +17 -0
  621. package/sprites/colorscripts/small/759-stufful.txt +11 -0
  622. package/sprites/colorscripts/small/760-bewear.txt +17 -0
  623. package/sprites/colorscripts/small/761-bounsweet.txt +11 -0
  624. package/sprites/colorscripts/small/762-steenee.txt +13 -0
  625. package/sprites/colorscripts/small/763-tsareena.txt +17 -0
  626. package/sprites/colorscripts/small/764-comfey.txt +18 -0
  627. package/sprites/colorscripts/small/765-oranguru.txt +16 -0
  628. package/sprites/colorscripts/small/766-passimian.txt +17 -0
  629. package/sprites/colorscripts/small/767-wimpod.txt +8 -0
  630. package/sprites/colorscripts/small/768-golisopod.txt +18 -0
  631. package/sprites/colorscripts/small/769-sandygast.txt +12 -0
  632. package/sprites/colorscripts/small/770-palossand.txt +17 -0
  633. package/sprites/colorscripts/small/771-pyukumuku.txt +11 -0
  634. package/sprites/colorscripts/small/772-type-null.txt +19 -0
  635. package/sprites/colorscripts/small/773-silvally.txt +22 -0
  636. package/sprites/colorscripts/small/774-minior-red-meteor.txt +10 -0
  637. package/sprites/colorscripts/small/775-komala.txt +11 -0
  638. package/sprites/colorscripts/small/776-turtonator.txt +17 -0
  639. package/sprites/colorscripts/small/777-togedemaru.txt +15 -0
  640. package/sprites/colorscripts/small/778-mimikyu-disguised.txt +16 -0
  641. package/sprites/colorscripts/small/779-bruxish.txt +11 -0
  642. package/sprites/colorscripts/small/780-drampa.txt +14 -0
  643. package/sprites/colorscripts/small/781-dhelmise.txt +19 -0
  644. package/sprites/colorscripts/small/782-jangmo-o.txt +13 -0
  645. package/sprites/colorscripts/small/783-hakamo-o.txt +15 -0
  646. package/sprites/colorscripts/small/784-kommo-o.txt +18 -0
  647. package/sprites/colorscripts/small/785-tapu-koko.txt +20 -0
  648. package/sprites/colorscripts/small/786-tapu-lele.txt +20 -0
  649. package/sprites/colorscripts/small/787-tapu-bulu.txt +20 -0
  650. package/sprites/colorscripts/small/788-tapu-fini.txt +20 -0
  651. package/sprites/colorscripts/small/789-cosmog.txt +11 -0
  652. package/sprites/colorscripts/small/790-cosmoem.txt +11 -0
  653. package/sprites/colorscripts/small/791-solgaleo.txt +21 -0
  654. package/sprites/colorscripts/small/792-lunala.txt +20 -0
  655. package/sprites/colorscripts/small/793-nihilego.txt +17 -0
  656. package/sprites/colorscripts/small/794-buzzwole.txt +21 -0
  657. package/sprites/colorscripts/small/795-pheromosa.txt +21 -0
  658. package/sprites/colorscripts/small/796-xurkitree.txt +19 -0
  659. package/sprites/colorscripts/small/797-celesteela.txt +21 -0
  660. package/sprites/colorscripts/small/798-kartana.txt +20 -0
  661. package/sprites/colorscripts/small/799-guzzlord.txt +20 -0
  662. package/sprites/colorscripts/small/800-necrozma.txt +19 -0
  663. package/sprites/colorscripts/small/801-magearna.txt +21 -0
  664. package/sprites/colorscripts/small/802-marshadow.txt +18 -0
  665. package/sprites/colorscripts/small/803-poipole.txt +14 -0
  666. package/sprites/colorscripts/small/804-naganadel.txt +22 -0
  667. package/sprites/colorscripts/small/805-stakataka.txt +20 -0
  668. package/sprites/colorscripts/small/806-blacephalon.txt +18 -0
  669. package/sprites/colorscripts/small/807-zeraora.txt +17 -0
  670. package/sprites/colorscripts/small/808-meltan.txt +10 -0
  671. package/sprites/colorscripts/small/809-melmetal.txt +16 -0
  672. package/sprites/colorscripts/small/810-grookey.txt +13 -0
  673. package/sprites/colorscripts/small/811-thwackey.txt +14 -0
  674. package/sprites/colorscripts/small/812-rillaboom.txt +18 -0
  675. package/sprites/colorscripts/small/813-scorbunny.txt +15 -0
  676. package/sprites/colorscripts/small/814-raboot.txt +16 -0
  677. package/sprites/colorscripts/small/815-cinderace.txt +22 -0
  678. package/sprites/colorscripts/small/816-sobble.txt +14 -0
  679. package/sprites/colorscripts/small/817-drizzile.txt +15 -0
  680. package/sprites/colorscripts/small/818-inteleon.txt +24 -0
  681. package/sprites/colorscripts/small/819-skwovet.txt +12 -0
  682. package/sprites/colorscripts/small/820-greedent.txt +17 -0
  683. package/sprites/colorscripts/small/821-rookidee.txt +9 -0
  684. package/sprites/colorscripts/small/822-corvisquire.txt +11 -0
  685. package/sprites/colorscripts/small/823-corviknight.txt +17 -0
  686. package/sprites/colorscripts/small/824-blipbug.txt +15 -0
  687. package/sprites/colorscripts/small/825-dottler.txt +12 -0
  688. package/sprites/colorscripts/small/826-orbeetle.txt +18 -0
  689. package/sprites/colorscripts/small/827-nickit.txt +12 -0
  690. package/sprites/colorscripts/small/828-thievul.txt +17 -0
  691. package/sprites/colorscripts/small/829-gossifleur.txt +10 -0
  692. package/sprites/colorscripts/small/830-eldegoss.txt +16 -0
  693. package/sprites/colorscripts/small/831-wooloo.txt +11 -0
  694. package/sprites/colorscripts/small/832-dubwool.txt +16 -0
  695. package/sprites/colorscripts/small/833-chewtle.txt +13 -0
  696. package/sprites/colorscripts/small/834-drednaw.txt +15 -0
  697. package/sprites/colorscripts/small/835-yamper.txt +11 -0
  698. package/sprites/colorscripts/small/836-boltund.txt +16 -0
  699. package/sprites/colorscripts/small/837-rolycoly.txt +10 -0
  700. package/sprites/colorscripts/small/838-carkol.txt +13 -0
  701. package/sprites/colorscripts/small/839-coalossal.txt +22 -0
  702. package/sprites/colorscripts/small/840-applin.txt +10 -0
  703. package/sprites/colorscripts/small/841-flapple.txt +17 -0
  704. package/sprites/colorscripts/small/842-appletun.txt +17 -0
  705. package/sprites/colorscripts/small/843-silicobra.txt +11 -0
  706. package/sprites/colorscripts/small/844-sandaconda.txt +14 -0
  707. package/sprites/colorscripts/small/845-cramorant.txt +16 -0
  708. package/sprites/colorscripts/small/846-arrokuda.txt +9 -0
  709. package/sprites/colorscripts/small/847-barraskewda.txt +11 -0
  710. package/sprites/colorscripts/small/848-toxel.txt +12 -0
  711. package/sprites/colorscripts/small/849-toxtricity-amped.txt +21 -0
  712. package/sprites/colorscripts/small/850-sizzlipede.txt +6 -0
  713. package/sprites/colorscripts/small/851-centiskorch.txt +16 -0
  714. package/sprites/colorscripts/small/852-clobbopus.txt +10 -0
  715. package/sprites/colorscripts/small/853-grapploct.txt +15 -0
  716. package/sprites/colorscripts/small/854-sinistea.txt +8 -0
  717. package/sprites/colorscripts/small/855-polteageist.txt +16 -0
  718. package/sprites/colorscripts/small/856-hatenna.txt +13 -0
  719. package/sprites/colorscripts/small/857-hattrem.txt +12 -0
  720. package/sprites/colorscripts/small/858-hatterene.txt +18 -0
  721. package/sprites/colorscripts/small/859-impidimp.txt +11 -0
  722. package/sprites/colorscripts/small/860-morgrem.txt +13 -0
  723. package/sprites/colorscripts/small/861-grimmsnarl.txt +18 -0
  724. package/sprites/colorscripts/small/862-obstagoon.txt +17 -0
  725. package/sprites/colorscripts/small/863-perrserker.txt +17 -0
  726. package/sprites/colorscripts/small/864-cursola.txt +17 -0
  727. package/sprites/colorscripts/small/865-sirfetchd.txt +27 -0
  728. package/sprites/colorscripts/small/866-mr.-rime.txt +18 -0
  729. package/sprites/colorscripts/small/867-runerigus.txt +16 -0
  730. package/sprites/colorscripts/small/868-milcery.txt +10 -0
  731. package/sprites/colorscripts/small/869-alcremie.txt +16 -0
  732. package/sprites/colorscripts/small/870-falinks.txt +13 -0
  733. package/sprites/colorscripts/small/871-pincurchin.txt +10 -0
  734. package/sprites/colorscripts/small/872-snom.txt +8 -0
  735. package/sprites/colorscripts/small/873-frosmoth.txt +17 -0
  736. package/sprites/colorscripts/small/874-stonjourner.txt +18 -0
  737. package/sprites/colorscripts/small/875-eiscue-ice.txt +19 -0
  738. package/sprites/colorscripts/small/876-indeedee-male.txt +15 -0
  739. package/sprites/colorscripts/small/877-morpeko-full-belly.txt +12 -0
  740. package/sprites/colorscripts/small/878-cufant.txt +12 -0
  741. package/sprites/colorscripts/small/879-copperajah.txt +16 -0
  742. package/sprites/colorscripts/small/880-dracozolt.txt +18 -0
  743. package/sprites/colorscripts/small/881-arctozolt.txt +19 -0
  744. package/sprites/colorscripts/small/882-dracovish.txt +17 -0
  745. package/sprites/colorscripts/small/883-arctovish.txt +15 -0
  746. package/sprites/colorscripts/small/884-duraludon.txt +19 -0
  747. package/sprites/colorscripts/small/885-dreepy.txt +10 -0
  748. package/sprites/colorscripts/small/886-drakloak.txt +13 -0
  749. package/sprites/colorscripts/small/887-dragapult.txt +21 -0
  750. package/sprites/colorscripts/small/888-zacian.txt +19 -0
  751. package/sprites/colorscripts/small/889-zamazenta.txt +20 -0
  752. package/sprites/colorscripts/small/890-eternatus.txt +26 -0
  753. package/sprites/colorscripts/small/891-kubfu.txt +12 -0
  754. package/sprites/colorscripts/small/892-urshifu-single-strike.txt +18 -0
  755. package/sprites/colorscripts/small/893-zarude.txt +16 -0
  756. package/sprites/colorscripts/small/894-regieleki.txt +16 -0
  757. package/sprites/colorscripts/small/895-regidrago.txt +20 -0
  758. package/sprites/colorscripts/small/896-glastrier.txt +20 -0
  759. package/sprites/colorscripts/small/897-spectrier.txt +18 -0
  760. package/sprites/colorscripts/small/898-calyrex.txt +19 -0
  761. package/sprites/colorscripts/small/899-wyrdeer.txt +23 -0
  762. package/sprites/colorscripts/small/900-kleavor.txt +20 -0
  763. package/sprites/colorscripts/small/901-ursaluna.txt +16 -0
  764. package/sprites/colorscripts/small/902-basculegion-male.txt +15 -0
  765. package/sprites/colorscripts/small/903-sneasler.txt +20 -0
  766. package/sprites/colorscripts/small/904-overqwil.txt +21 -0
  767. package/sprites/colorscripts/small/905-enamorus-incarnate.txt +21 -0
  768. package/src/engine/constants.ts +1 -1
  769. package/src/engine/encounters.ts +8 -5
  770. package/src/engine/evolution-data.ts +1193 -0
  771. package/src/engine/pokemon-data.ts +8659 -509
  772. package/src/engine/reactions.ts +156 -0
  773. package/src/engine/starter-pool.ts +134 -1
  774. package/src/engine/types.ts +3 -0
  775. package/src/gamification/achievements.ts +2 -2
  776. package/src/server/tools/catch.ts +4 -2
  777. package/src/server/tools/feed.ts +3 -0
  778. package/src/server/tools/pet.ts +3 -0
  779. package/src/server/tools/play.ts +5 -2
  780. package/src/server/tools/pokedex.ts +4 -4
  781. package/src/state/schemas.ts +2 -2
@@ -0,0 +1,433 @@
1
+ /**
2
+ * Generate pokemon-data.ts and evolution-data.ts from PokeAPI.
3
+ * One-time script to expand from 151 to 1025 Pokemon.
4
+ *
5
+ * Usage: bun run scripts/generate-pokemon-data.ts
6
+ *
7
+ * Fetches from PokeAPI:
8
+ * - Pokemon species data (name, types, base stats, exp group, catch rate)
9
+ * - Evolution chain data
10
+ *
11
+ * Outputs to stdout a JSON that can be transformed into TypeScript.
12
+ */
13
+
14
+ const TOTAL = 1025;
15
+ const API_BASE = "https://pokeapi.co/api/v2";
16
+
17
+ // ── Type Mapping ──────────────────────────────────────────
18
+ // PokeAPI uses lowercase types, we need Title Case
19
+ const TYPE_MAP: Record<string, string> = {
20
+ normal: "Normal",
21
+ fire: "Fire",
22
+ water: "Water",
23
+ electric: "Electric",
24
+ grass: "Grass",
25
+ ice: "Ice",
26
+ fighting: "Fighting",
27
+ poison: "Poison",
28
+ ground: "Ground",
29
+ flying: "Flying",
30
+ psychic: "Psychic",
31
+ bug: "Bug",
32
+ rock: "Rock",
33
+ ghost: "Ghost",
34
+ dragon: "Dragon",
35
+ steel: "Steel",
36
+ dark: "Dark",
37
+ fairy: "Fairy",
38
+ };
39
+
40
+ // ── Exp Group Mapping ─────────────────────────────────────
41
+ const EXP_GROUP_MAP: Record<string, string> = {
42
+ fast: "fast",
43
+ "medium-fast": "medium_fast",
44
+ medium: "medium_fast",
45
+ "medium-slow": "medium_slow",
46
+ slow: "slow",
47
+ "slow-then-very-fast": "fast",
48
+ "fast-then-very-slow": "slow",
49
+ erratic: "fast",
50
+ fluctuating: "medium_slow",
51
+ };
52
+
53
+ // ── Rarity from catch rate ────────────────────────────────
54
+ function getRarity(catchRate: number, isLegendary: boolean, isMythical: boolean): string {
55
+ if (isMythical) return "mythical";
56
+ if (isLegendary) return "legendary";
57
+ if (catchRate >= 150) return "common";
58
+ if (catchRate >= 60) return "uncommon";
59
+ return "rare";
60
+ }
61
+
62
+ // ── Gen 1 uses "special" stat; Gen 2+ split into sp_atk and sp_def ──
63
+ // We use max(sp_atk, sp_def) as the "special" stat for consistency
64
+ function getSpecialStat(stats: { name: string; base_stat: number }[]): number {
65
+ const spAtk = stats.find((s: { name: string }) => s.name === "special-attack")?.base_stat ?? 0;
66
+ const spDef = stats.find((s: { name: string }) => s.name === "special-defense")?.base_stat ?? 0;
67
+ return Math.max(spAtk, spDef);
68
+ }
69
+
70
+ // ── Coding-themed descriptions by type ────────────────────
71
+ const TYPE_DESCRIPTIONS: Record<string, string[]> = {
72
+ Normal: [
73
+ "Writes clean, readable code that just works.",
74
+ "A reliable teammate in any codebase.",
75
+ "Keeps things simple and maintainable.",
76
+ "The everyday workhorse of any development team.",
77
+ "Solid fundamentals, no unnecessary complexity.",
78
+ ],
79
+ Fire: [
80
+ "Burns through bugs with blazing speed.",
81
+ "Compiles so fast the CPU starts sweating.",
82
+ "Hotfixes deployed before you finish your coffee.",
83
+ "Its CI pipeline is always on fire — in a good way.",
84
+ "Rewrites legacy code with explosive energy.",
85
+ ],
86
+ Water: [
87
+ "Flows through complex data pipelines with ease.",
88
+ "Streams data like a well-configured message queue.",
89
+ "Cools down heated production incidents.",
90
+ "Its code flows naturally from function to function.",
91
+ "Handles backpressure like a pro.",
92
+ ],
93
+ Electric: [
94
+ "Lightning-fast response times in production.",
95
+ "Sparks innovation with every commit.",
96
+ "Powers through async operations effortlessly.",
97
+ "Charges up the team with electrifying demos.",
98
+ "Its event loop never blocks.",
99
+ ],
100
+ Grass: [
101
+ "Grows features organically from a solid foundation.",
102
+ "Its codebase flourishes with careful nurturing.",
103
+ "Plants the seeds for sustainable architecture.",
104
+ "Branches out into new features with natural ease.",
105
+ "Photosynthesizes coffee into clean code.",
106
+ ],
107
+ Ice: [
108
+ "Freezes bugs in their tracks before production.",
109
+ "Keeps cool under tight deployment deadlines.",
110
+ "Its test suite is ice-cold — nothing gets through.",
111
+ "Crystallizes complex requirements into clear specs.",
112
+ "Preserves backward compatibility like a glacier.",
113
+ ],
114
+ Fighting: [
115
+ "Fights through technical debt with determination.",
116
+ "Never backs down from a complex refactor.",
117
+ "Punches through blockers in code review.",
118
+ "Trains hard on algorithmic challenges daily.",
119
+ "Its PR reviews pack a punch.",
120
+ ],
121
+ Poison: [
122
+ "Finds toxic code patterns and eliminates them.",
123
+ "Injects helpful logging into legacy systems.",
124
+ "Its code reviews are sharp but constructive.",
125
+ "Detoxifies spaghetti code into clean modules.",
126
+ "Knows every anti-pattern by heart.",
127
+ ],
128
+ Ground: [
129
+ "Builds rock-solid foundations for any project.",
130
+ "Grounded in best practices and design patterns.",
131
+ "Digs deep into root cause analysis.",
132
+ "Lays the groundwork for scalable systems.",
133
+ "Stable as the earth beneath your server rack.",
134
+ ],
135
+ Flying: [
136
+ "Deploys to the cloud with soaring confidence.",
137
+ "Zooms through code reviews at altitude.",
138
+ "Its abstractions reach impressive heights.",
139
+ "Migrates databases without breaking a wing.",
140
+ "Floats above complexity with elegant solutions.",
141
+ ],
142
+ Psychic: [
143
+ "Predicts bugs before they even appear in code.",
144
+ "Reads stack traces like reading minds.",
145
+ "Mentally models complex distributed systems.",
146
+ "Its architecture decisions are eerily prescient.",
147
+ "Debugs production issues through pure intuition.",
148
+ ],
149
+ Bug: [
150
+ "Finds bugs nobody else can spot.",
151
+ "Crawls through every edge case methodically.",
152
+ "Its test coverage is thorough and persistent.",
153
+ "Metamorphoses codebases through careful refactoring.",
154
+ "Surprisingly powerful despite its small size.",
155
+ ],
156
+ Rock: [
157
+ "Builds unbreakable infrastructure that lasts.",
158
+ "Solid as a load-bearing wall in the architecture.",
159
+ "Withstands the heaviest traffic spikes.",
160
+ "Its code is hardened against every attack vector.",
161
+ "Dependable like bedrock under your deployment.",
162
+ ],
163
+ Ghost: [
164
+ "Haunts legacy codebases seeking forgotten bugs.",
165
+ "Phases through firewalls during security audits.",
166
+ "Its code is invisible until you need it most.",
167
+ "Debugs phantom issues in production at 3 AM.",
168
+ "Appears silently in git blame for critical fixes.",
169
+ ],
170
+ Dragon: [
171
+ "Commands massive distributed systems with authority.",
172
+ "Its codebases are legendary in scale and power.",
173
+ "Breathes fire into stale, unmaintained projects.",
174
+ "A rare sight, but unstoppable when deployed.",
175
+ "Hoards knowledge of ancient APIs and protocols.",
176
+ ],
177
+ Steel: [
178
+ "Forges bulletproof APIs that never break.",
179
+ "Its type system is as rigid as steel.",
180
+ "Hardens every endpoint against injection attacks.",
181
+ "Builds infrastructure that withstands any load.",
182
+ "Tempered by years of production hardening.",
183
+ ],
184
+ Dark: [
185
+ "Thrives in late-night debugging sessions.",
186
+ "Masters the dark arts of regex and bitwise ops.",
187
+ "Finds vulnerabilities hidden in the shadows.",
188
+ "Its code works in ways few can understand.",
189
+ "Operates best when everyone else has logged off.",
190
+ ],
191
+ Fairy: [
192
+ "Makes complex code look magically simple.",
193
+ "Enchants users with delightful UX polish.",
194
+ "Sprinkles syntactic sugar that actually helps.",
195
+ "Transforms ugly hacks into elegant solutions.",
196
+ "Its code reviews leave everyone feeling enchanted.",
197
+ ],
198
+ };
199
+
200
+ function getDescription(types: string[]): string {
201
+ const primaryType = types[0] ?? "Normal";
202
+ const descriptions = TYPE_DESCRIPTIONS[primaryType] ?? TYPE_DESCRIPTIONS["Normal"]!;
203
+ return descriptions[Math.floor(Math.random() * descriptions.length)]!;
204
+ }
205
+
206
+ // ── Fetch with retry ──────────────────────────────────────
207
+ async function fetchJSON(url: string, retries = 3): Promise<unknown> {
208
+ for (let i = 0; i < retries; i++) {
209
+ try {
210
+ const res = await fetch(url);
211
+ if (res.status === 404) return null;
212
+ if (!res.ok) throw new Error(`HTTP ${res.status}`);
213
+ return await res.json();
214
+ } catch (err) {
215
+ if (i === retries - 1) throw err;
216
+ await new Promise((r) => setTimeout(r, 1000 * (i + 1)));
217
+ }
218
+ }
219
+ return null;
220
+ }
221
+
222
+ // ── Main ──────────────────────────────────────────────────
223
+ interface PokemonEntry {
224
+ id: number;
225
+ name: string;
226
+ types: string[];
227
+ baseStats: { hp: number; attack: number; defense: number; speed: number; special: number };
228
+ expGroup: string;
229
+ evolutionChainId: number;
230
+ rarity: string;
231
+ catchRate: number;
232
+ description: string;
233
+ }
234
+
235
+ interface EvolutionEntry {
236
+ id: number;
237
+ links: { from: number; to: number; method: { type: string; level?: number } }[];
238
+ }
239
+
240
+ async function main() {
241
+ console.error("Fetching Pokemon data from PokeAPI...");
242
+
243
+ const pokemon: PokemonEntry[] = [];
244
+ const evolutionChains: Map<number, EvolutionEntry> = new Map();
245
+ const speciesChainMap: Map<number, number> = new Map(); // pokemonId -> chainId
246
+
247
+ // Fetch in batches of 50
248
+ for (let batch = 0; batch < TOTAL; batch += 50) {
249
+ const end = Math.min(batch + 50, TOTAL);
250
+ console.error(` Fetching Pokemon ${batch + 1}-${end}...`);
251
+
252
+ const promises = [];
253
+ for (let id = batch + 1; id <= end; id++) {
254
+ promises.push(
255
+ (async () => {
256
+ // Fetch pokemon data (types, stats)
257
+ const pData = (await fetchJSON(`${API_BASE}/pokemon/${id}`)) as {
258
+ id: number;
259
+ name: string;
260
+ types: { type: { name: string } }[];
261
+ stats: { stat: { name: string }; base_stat: number }[];
262
+ } | null;
263
+ if (!pData) {
264
+ console.error(` Skipping #${id} (not found)`);
265
+ return;
266
+ }
267
+
268
+ // Fetch species data (catch rate, growth rate, evolution chain, legendary/mythical)
269
+ const sData = (await fetchJSON(`${API_BASE}/pokemon-species/${id}`)) as {
270
+ capture_rate: number;
271
+ growth_rate: { name: string };
272
+ evolution_chain: { url: string };
273
+ is_legendary: boolean;
274
+ is_mythical: boolean;
275
+ } | null;
276
+ if (!sData) {
277
+ console.error(` Skipping species #${id}`);
278
+ return;
279
+ }
280
+
281
+ // Extract evolution chain ID from URL
282
+ const chainUrl = sData.evolution_chain?.url ?? "";
283
+ const chainIdMatch = chainUrl.match(/\/evolution-chain\/(\d+)/);
284
+ const chainId = chainIdMatch ? parseInt(chainIdMatch[1]!, 10) : 0;
285
+
286
+ speciesChainMap.set(id, chainId);
287
+
288
+ // Map types
289
+ const types = pData.types
290
+ .sort(
291
+ (
292
+ a: { type: { name: string }; slot?: number },
293
+ b: { type: { name: string }; slot?: number },
294
+ ) => ((a as { slot?: number }).slot ?? 0) - ((b as { slot?: number }).slot ?? 0),
295
+ )
296
+ .map((t: { type: { name: string } }) => TYPE_MAP[t.type.name] ?? "Normal")
297
+ .filter((t): t is string => !!t);
298
+
299
+ // Map stats
300
+ const statMap: Record<string, number> = {};
301
+ for (const s of pData.stats) {
302
+ statMap[(s as { stat: { name: string } }).stat.name] = (
303
+ s as { base_stat: number }
304
+ ).base_stat;
305
+ }
306
+
307
+ // Capitalize name
308
+ const name = pData.name
309
+ .split("-")
310
+ .map((w: string) => w.charAt(0).toUpperCase() + w.slice(1))
311
+ .join("-");
312
+ // Special name fixes
313
+ const fixedName = name
314
+ .replace(/^Ho-Oh$/i, "Ho-Oh")
315
+ .replace(/^Mr-Mime$/i, "Mr. Mime")
316
+ .replace(/^Mr-Rime$/i, "Mr. Rime")
317
+ .replace(/^Mime-Jr$/i, "Mime Jr.")
318
+ .replace(/^Type-Null$/i, "Type: Null")
319
+ .replace(/^Nidoran-F$/i, "Nidoran\u2640")
320
+ .replace(/^Nidoran-M$/i, "Nidoran\u2642")
321
+ .replace(/^Farfetchd$/i, "Farfetch'd")
322
+ .replace(/^Sirfetchd$/i, "Sirfetch'd");
323
+
324
+ const entry: PokemonEntry = {
325
+ id,
326
+ name: fixedName,
327
+ types: types.slice(0, 2),
328
+ baseStats: {
329
+ hp: statMap["hp"] ?? 50,
330
+ attack: statMap["attack"] ?? 50,
331
+ defense: statMap["defense"] ?? 50,
332
+ speed: statMap["speed"] ?? 50,
333
+ special: getSpecialStat(
334
+ pData.stats.map((s: { stat: { name: string }; base_stat: number }) => ({
335
+ name: s.stat.name,
336
+ base_stat: s.base_stat,
337
+ })),
338
+ ),
339
+ },
340
+ expGroup: EXP_GROUP_MAP[sData.growth_rate?.name ?? "medium-fast"] ?? "medium_fast",
341
+ evolutionChainId: chainId,
342
+ rarity: getRarity(sData.capture_rate, sData.is_legendary, sData.is_mythical),
343
+ catchRate: Math.min(255, Math.max(1, sData.capture_rate)),
344
+ description: getDescription(types),
345
+ };
346
+
347
+ pokemon.push(entry);
348
+ })(),
349
+ );
350
+ }
351
+
352
+ await Promise.all(promises);
353
+ }
354
+
355
+ // Sort by ID
356
+ pokemon.sort((a, b) => a.id - b.id);
357
+ console.error(` Got ${pokemon.length} Pokemon.`);
358
+
359
+ // Fetch evolution chains
360
+ const chainIds = new Set(speciesChainMap.values());
361
+ console.error(` Fetching ${chainIds.size} evolution chains...`);
362
+
363
+ const chainArray = Array.from(chainIds).filter((id) => id > 0);
364
+ for (let batch = 0; batch < chainArray.length; batch += 50) {
365
+ const end = Math.min(batch + 50, chainArray.length);
366
+ console.error(` Fetching chains ${batch + 1}-${end}...`);
367
+
368
+ const promises = chainArray.slice(batch, end).map(async (chainId) => {
369
+ const data = (await fetchJSON(`${API_BASE}/evolution-chain/${chainId}`)) as {
370
+ id: number;
371
+ chain: EvolutionNode;
372
+ } | null;
373
+ if (!data) return;
374
+
375
+ const links: { from: number; to: number; method: { type: string; level?: number } }[] = [];
376
+
377
+ interface EvolutionNode {
378
+ species: { name: string; url: string };
379
+ evolves_to: EvolutionNode[];
380
+ evolution_details: { min_level: number | null; trigger: { name: string } }[];
381
+ }
382
+
383
+ function getIdFromUrl(url: string): number {
384
+ const match = url.match(/\/pokemon-species\/(\d+)/);
385
+ return match ? parseInt(match[1]!, 10) : 0;
386
+ }
387
+
388
+ function walkChain(node: EvolutionNode) {
389
+ const fromId = getIdFromUrl(node.species.url);
390
+ for (const evo of node.evolves_to) {
391
+ const toId = getIdFromUrl(evo.species.url);
392
+ if (fromId && toId && fromId <= TOTAL && toId <= TOTAL) {
393
+ const detail = evo.evolution_details[0];
394
+ const minLevel = detail?.min_level;
395
+ if (minLevel) {
396
+ links.push({ from: fromId, to: toId, method: { type: "level", level: minLevel } });
397
+ } else {
398
+ // Non-level evolutions default to level 30
399
+ links.push({ from: fromId, to: toId, method: { type: "level", level: 30 } });
400
+ }
401
+ }
402
+ walkChain(evo);
403
+ }
404
+ }
405
+
406
+ walkChain(data.chain);
407
+
408
+ if (links.length > 0) {
409
+ evolutionChains.set(chainId, { id: chainId, links });
410
+ }
411
+ });
412
+
413
+ await Promise.all(promises);
414
+ }
415
+
416
+ console.error(` Got ${evolutionChains.size} evolution chains.`);
417
+
418
+ // Write output as JSON
419
+ const output = {
420
+ pokemon,
421
+ evolutionChains: Array.from(evolutionChains.values()).sort((a, b) => a.id - b.id),
422
+ };
423
+
424
+ console.log(JSON.stringify(output, null, 2));
425
+ console.error(
426
+ "Done! Pipe to a file: bun run scripts/generate-pokemon-data.ts > /tmp/pokemon-data.json",
427
+ );
428
+ }
429
+
430
+ main().catch((err) => {
431
+ console.error("Fatal:", err);
432
+ process.exit(1);
433
+ });
@@ -0,0 +1,167 @@
1
+ /**
2
+ * Transform the PokeAPI JSON into TypeScript source files.
3
+ * Reads /tmp/pokemon-data.json and writes pokemon-data.ts and evolution-data.ts.
4
+ *
5
+ * Usage: bun run scripts/transform-pokemon-data.ts
6
+ */
7
+
8
+ import { readFileSync, writeFileSync } from "node:fs";
9
+ import { join, dirname } from "node:path";
10
+ import { fileURLToPath } from "node:url";
11
+
12
+ const __filename = fileURLToPath(import.meta.url);
13
+ const __dirname = dirname(__filename);
14
+ const SRC_DIR = join(__dirname, "../src/engine");
15
+
16
+ const raw = JSON.parse(readFileSync("/tmp/pokemon-data.json", "utf-8"));
17
+
18
+ interface RawPokemon {
19
+ id: number;
20
+ name: string;
21
+ types: string[];
22
+ baseStats: { hp: number; attack: number; defense: number; speed: number; special: number };
23
+ expGroup: string;
24
+ evolutionChainId: number;
25
+ rarity: string;
26
+ catchRate: number;
27
+ description: string;
28
+ }
29
+
30
+ interface RawEvolution {
31
+ id: number;
32
+ links: { from: number; to: number; method: { type: string; level?: number } }[];
33
+ }
34
+
35
+ // ── Generate pokemon-data.ts ──────────────────────────────
36
+
37
+ function generatePokemonData(pokemon: RawPokemon[]): string {
38
+ const lines: string[] = [];
39
+
40
+ lines.push("/**");
41
+ lines.push(" * Complete Pokedex — all 1025 Pokemon with actual base stats,");
42
+ lines.push(" * catch rates, and coding-themed descriptions.");
43
+ lines.push(" * Auto-generated from PokeAPI data.");
44
+ lines.push(" */");
45
+ lines.push("");
46
+ lines.push('import type { Pokemon } from "./types.js";');
47
+ lines.push("");
48
+ lines.push("export const POKEDEX: readonly Pokemon[] = [");
49
+
50
+ // Group by generation for readability
51
+ const GEN_RANGES = [
52
+ { name: "Gen 1 — Kanto", start: 1, end: 151 },
53
+ { name: "Gen 2 — Johto", start: 152, end: 251 },
54
+ { name: "Gen 3 — Hoenn", start: 252, end: 386 },
55
+ { name: "Gen 4 — Sinnoh", start: 387, end: 493 },
56
+ { name: "Gen 5 — Unova", start: 494, end: 649 },
57
+ { name: "Gen 6 — Kalos", start: 650, end: 721 },
58
+ { name: "Gen 7 — Alola", start: 722, end: 809 },
59
+ { name: "Gen 8 — Galar", start: 810, end: 905 },
60
+ { name: "Gen 9 — Paldea", start: 906, end: 1025 },
61
+ ];
62
+
63
+ for (const gen of GEN_RANGES) {
64
+ lines.push("");
65
+ lines.push(
66
+ ` // ── ${gen.name} (#${String(gen.start).padStart(3, "0")}–#${String(gen.end).padStart(3, "0")}) ──`,
67
+ );
68
+
69
+ const genPokemon = pokemon.filter((p) => p.id >= gen.start && p.id <= gen.end);
70
+
71
+ for (const p of genPokemon) {
72
+ const typesStr =
73
+ p.types.length === 2 ? `["${p.types[0]}", "${p.types[1]}"]` : `["${p.types[0]}"]`;
74
+
75
+ // Escape description quotes
76
+ const desc = p.description.replace(/"/g, '\\"');
77
+
78
+ lines.push(" {");
79
+ lines.push(` id: ${p.id},`);
80
+ lines.push(` name: "${p.name}",`);
81
+ lines.push(` types: ${typesStr},`);
82
+ lines.push(
83
+ ` baseStats: { hp: ${p.baseStats.hp}, attack: ${p.baseStats.attack}, defense: ${p.baseStats.defense}, speed: ${p.baseStats.speed}, special: ${p.baseStats.special} },`,
84
+ );
85
+ lines.push(` expGroup: "${p.expGroup}",`);
86
+ lines.push(` evolutionChainId: ${p.evolutionChainId},`);
87
+ lines.push(` rarity: "${p.rarity}",`);
88
+ lines.push(` catchRate: ${p.catchRate},`);
89
+ lines.push(` description: "${desc}",`);
90
+ lines.push(" },");
91
+ }
92
+ }
93
+
94
+ lines.push("] as const satisfies readonly Pokemon[];");
95
+ lines.push("");
96
+ lines.push("/** Lookup map: Pokemon ID → Pokemon data. Built once at module load. */");
97
+ lines.push("export const POKEMON_BY_ID: ReadonlyMap<number, Pokemon> = new Map(");
98
+ lines.push(" POKEDEX.map((p) => [p.id, p]),");
99
+ lines.push(");");
100
+ lines.push("");
101
+
102
+ return lines.join("\n");
103
+ }
104
+
105
+ // ── Generate evolution-data.ts ────────────────────────────
106
+
107
+ function generateEvolutionData(chains: RawEvolution[]): string {
108
+ const lines: string[] = [];
109
+
110
+ lines.push("/**");
111
+ lines.push(" * Evolution chain data for all Pokemon.");
112
+ lines.push(" * Auto-generated from PokeAPI data.");
113
+ lines.push(" */");
114
+ lines.push("");
115
+ lines.push('import type { EvolutionChain } from "./types.js";');
116
+ lines.push("");
117
+ lines.push("export const EVOLUTION_CHAINS: readonly EvolutionChain[] = [");
118
+
119
+ for (const chain of chains) {
120
+ const linksStr = chain.links
121
+ .map((link) => {
122
+ if (link.method.type === "level" && link.method.level) {
123
+ return ` { from: ${link.from}, to: ${link.to}, method: { type: "level", level: ${link.method.level} } }`;
124
+ }
125
+ return ` { from: ${link.from}, to: ${link.to}, method: { type: "level", level: 30 } }`;
126
+ })
127
+ .join(",\n");
128
+
129
+ lines.push(" {");
130
+ lines.push(` id: ${chain.id},`);
131
+ lines.push(" links: [");
132
+ lines.push(linksStr + ",");
133
+ lines.push(" ],");
134
+ lines.push(" },");
135
+ }
136
+
137
+ lines.push("] as const satisfies readonly EvolutionChain[];");
138
+ lines.push("");
139
+ lines.push("/** Get evolution links from a given Pokemon ID. */");
140
+ lines.push("export function getEvolutionLinks(pokemonId: number) {");
141
+ lines.push(" const results = [];");
142
+ lines.push(" for (const chain of EVOLUTION_CHAINS) {");
143
+ lines.push(" for (const link of chain.links) {");
144
+ lines.push(" if (link.from === pokemonId) {");
145
+ lines.push(" results.push(link);");
146
+ lines.push(" }");
147
+ lines.push(" }");
148
+ lines.push(" }");
149
+ lines.push(" return results;");
150
+ lines.push("}");
151
+ lines.push("");
152
+
153
+ return lines.join("\n");
154
+ }
155
+
156
+ // ── Write files ───────────────────────────────────────────
157
+
158
+ const pokemonTs = generatePokemonData(raw.pokemon as RawPokemon[]);
159
+ const evolutionTs = generateEvolutionData(raw.evolutionChains as RawEvolution[]);
160
+
161
+ writeFileSync(join(SRC_DIR, "pokemon-data.ts"), pokemonTs);
162
+ writeFileSync(join(SRC_DIR, "evolution-data.ts"), evolutionTs);
163
+
164
+ console.log(`Written: ${(raw.pokemon as RawPokemon[]).length} Pokemon to pokemon-data.ts`);
165
+ console.log(
166
+ `Written: ${(raw.evolutionChains as RawEvolution[]).length} evolution chains to evolution-data.ts`,
167
+ );
@@ -0,0 +1,11 @@
1
+ ▄▄▀▀▀▀▄▄
2
+ ▄▀▀▀▀▀▀▀▀▀▀
3
+ ▄▀▀▀▀▀▀▀▀
4
+ ▄▀▀▀▀▀▀▀▀▀
5
+ ▀▀▀▀▀▀▀▀▀▀▀
6
+ ▀▀▀▀▀▀▀▀▀▀▀▀▀▄
7
+ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀
8
+ ▀▀▀▀▀▀▀▀▀▀▀▀▀
9
+ ▀▀▀▀▀▀▀▀▀▀▀
10
+ ▀▀
11
+ 
@@ -0,0 +1,13 @@
1
+ ▄▄▄▀▀▀▀▄▄
2
+ ▄▄▀▀▀▀▀▀▀▀▀▀▀▀▀▄
3
+ ▄▀▀▀▀▀▀▀▀▀ ▄▀▀▀▀▀
4
+ ▀▀▀▀▀▀▀▀▀▀ ▀▀
5
+ ▀▀▀▀▀▀▀▀▀▀▀
6
+ ▀▀▀▀▀▀▀▀▀▀▀▀▄ ▄
7
+ ▀▀▀▀▀▀▀▀▀▀▀▀▄▄▀▀▀
8
+ ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
9
+ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
10
+ ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀
11
+ ▀▀▀▀▀▀▀▀ ▀▀
12
+ ▀▀▀
13
+ 
@@ -0,0 +1,15 @@
1
+ ▄▀▀▄ ▄▄
2
+ ▀▀▀▀▄▀▀▀▀
3
+ ▀▀▀▄▀▀▀▄
4
+ ▀▀▀▀▀▀▀▀▀▄ ▄▄
5
+ ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄
6
+ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄▄▀▀▀
7
+ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
8
+ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
9
+ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄
10
+ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
11
+ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
12
+ ▄▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀
13
+ ▀▀▀ ▀▀▀▀▀
14
+ ▀▀▀
15
+