@firestone-hs/simulate-bgs-battle 1.1.565 → 1.1.567

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 (468) hide show
  1. package/dist/bgs-player-entity.d.ts +2 -0
  2. package/dist/bgs-player-entity.js.map +1 -1
  3. package/dist/cards/card.interface.d.ts +32 -6
  4. package/dist/cards/card.interface.js +13 -1
  5. package/dist/cards/card.interface.js.map +1 -1
  6. package/dist/cards/cards-data.d.ts +1 -0
  7. package/dist/cards/cards-data.js +8 -0
  8. package/dist/cards/cards-data.js.map +1 -1
  9. package/dist/cards/impl/_card-mappings.js +124 -0
  10. package/dist/cards/impl/_card-mappings.js.map +1 -1
  11. package/dist/cards/impl/bg-spell/sharing-is-caring.js +1 -1
  12. package/dist/cards/impl/bg-spell/sharing-is-caring.js.map +1 -1
  13. package/dist/cards/impl/hero-power/all-will-burn.js +2 -4
  14. package/dist/cards/impl/hero-power/all-will-burn.js.map +1 -1
  15. package/dist/cards/impl/hero-power/fragrant-phylactery.js +1 -2
  16. package/dist/cards/impl/hero-power/fragrant-phylactery.js.map +1 -1
  17. package/dist/cards/impl/hero-power/wax-warband.d.ts +3 -0
  18. package/dist/cards/impl/hero-power/wax-warband.js +4 -4
  19. package/dist/cards/impl/hero-power/wax-warband.js.map +1 -1
  20. package/dist/cards/impl/minion/admiral-eliza-goreblade.js +1 -2
  21. package/dist/cards/impl/minion/admiral-eliza-goreblade.js.map +1 -1
  22. package/dist/cards/impl/minion/alleycat.d.ts +2 -0
  23. package/dist/cards/impl/minion/alleycat.js +24 -0
  24. package/dist/cards/impl/minion/alleycat.js.map +1 -0
  25. package/dist/cards/impl/minion/amber-guardian.js +1 -2
  26. package/dist/cards/impl/minion/amber-guardian.js.map +1 -1
  27. package/dist/cards/impl/minion/amplifying-lightspawn.d.ts +2 -0
  28. package/dist/cards/impl/minion/amplifying-lightspawn.js +13 -0
  29. package/dist/cards/impl/minion/amplifying-lightspawn.js.map +1 -0
  30. package/dist/cards/impl/minion/apprentice-of-sefin.d.ts +6 -0
  31. package/dist/cards/impl/minion/apprentice-of-sefin.js +78 -0
  32. package/dist/cards/impl/minion/apprentice-of-sefin.js.map +1 -0
  33. package/dist/cards/impl/minion/ashen-corruptor.d.ts +2 -0
  34. package/dist/cards/impl/minion/ashen-corruptor.js +10 -0
  35. package/dist/cards/impl/minion/ashen-corruptor.js.map +1 -0
  36. package/dist/cards/impl/minion/assistant-guard.js +2 -1
  37. package/dist/cards/impl/minion/assistant-guard.js.map +1 -1
  38. package/dist/cards/impl/minion/auto-assembler-enchantment.d.ts +2 -0
  39. package/dist/cards/impl/minion/auto-assembler-enchantment.js +17 -0
  40. package/dist/cards/impl/minion/auto-assembler-enchantment.js.map +1 -0
  41. package/dist/cards/impl/minion/auto-assembler.d.ts +2 -0
  42. package/dist/cards/impl/minion/auto-assembler.js +14 -0
  43. package/dist/cards/impl/minion/auto-assembler.js.map +1 -0
  44. package/dist/cards/impl/minion/battlecruiser.js +2 -3
  45. package/dist/cards/impl/minion/battlecruiser.js.map +1 -1
  46. package/dist/cards/impl/minion/beetle.js +1 -1
  47. package/dist/cards/impl/minion/beetle.js.map +1 -1
  48. package/dist/cards/impl/minion/bellowing-tyrant.js +2 -2
  49. package/dist/cards/impl/minion/bellowing-tyrant.js.map +1 -1
  50. package/dist/cards/impl/minion/blazing-skyfin.js +1 -1
  51. package/dist/cards/impl/minion/blazing-skyfin.js.map +1 -1
  52. package/dist/cards/impl/minion/bonker.d.ts +2 -0
  53. package/dist/cards/impl/minion/bonker.js +18 -0
  54. package/dist/cards/impl/minion/bonker.js.map +1 -0
  55. package/dist/cards/impl/minion/bronze-steward.d.ts +2 -0
  56. package/dist/cards/impl/minion/bronze-steward.js +29 -0
  57. package/dist/cards/impl/minion/bronze-steward.js.map +1 -0
  58. package/dist/cards/impl/minion/bubble-gunner.js +3 -34
  59. package/dist/cards/impl/minion/bubble-gunner.js.map +1 -1
  60. package/dist/cards/impl/minion/carrier.js +1 -1
  61. package/dist/cards/impl/minion/carrier.js.map +1 -1
  62. package/dist/cards/impl/minion/choral-mrrrglr.js +1 -2
  63. package/dist/cards/impl/minion/choral-mrrrglr.js.map +1 -1
  64. package/dist/cards/impl/minion/clunker-junker.js +2 -1
  65. package/dist/cards/impl/minion/clunker-junker.js.map +1 -1
  66. package/dist/cards/impl/minion/coilskar-sapper.d.ts +2 -0
  67. package/dist/cards/impl/minion/coilskar-sapper.js +13 -0
  68. package/dist/cards/impl/minion/coilskar-sapper.js.map +1 -0
  69. package/dist/cards/impl/minion/corrupted-bristler.d.ts +2 -0
  70. package/dist/cards/impl/minion/corrupted-bristler.js +32 -0
  71. package/dist/cards/impl/minion/corrupted-bristler.js.map +1 -0
  72. package/dist/cards/impl/minion/corrupted-myrmidon.js +1 -2
  73. package/dist/cards/impl/minion/corrupted-myrmidon.js.map +1 -1
  74. package/dist/cards/impl/minion/crabby.js +1 -2
  75. package/dist/cards/impl/minion/crabby.js.map +1 -1
  76. package/dist/cards/impl/minion/dastardly-drust.d.ts +2 -0
  77. package/dist/cards/impl/minion/dastardly-drust.js +20 -0
  78. package/dist/cards/impl/minion/dastardly-drust.js.map +1 -0
  79. package/dist/cards/impl/minion/deadstomper.js +1 -2
  80. package/dist/cards/impl/minion/deadstomper.js.map +1 -1
  81. package/dist/cards/impl/minion/deflecto-bot.js +1 -2
  82. package/dist/cards/impl/minion/deflecto-bot.js.map +1 -1
  83. package/dist/cards/impl/minion/diremuck-forager.js +1 -2
  84. package/dist/cards/impl/minion/diremuck-forager.js.map +1 -1
  85. package/dist/cards/impl/minion/dreaming-thornweaver.d.ts +2 -0
  86. package/dist/cards/impl/minion/dreaming-thornweaver.js +17 -0
  87. package/dist/cards/impl/minion/dreaming-thornweaver.js.map +1 -0
  88. package/dist/cards/impl/minion/drustfallen-butcher.d.ts +2 -0
  89. package/dist/cards/impl/minion/drustfallen-butcher.js +14 -0
  90. package/dist/cards/impl/minion/drustfallen-butcher.js.map +1 -0
  91. package/dist/cards/impl/minion/echoing-roar.js +1 -2
  92. package/dist/cards/impl/minion/echoing-roar.js.map +1 -1
  93. package/dist/cards/impl/minion/efficient-engineer.js +6 -1
  94. package/dist/cards/impl/minion/efficient-engineer.js.map +1 -1
  95. package/dist/cards/impl/minion/elder-taggawag.js +1 -2
  96. package/dist/cards/impl/minion/elder-taggawag.js.map +1 -1
  97. package/dist/cards/impl/minion/electric-synthesizer.js +3 -2
  98. package/dist/cards/impl/minion/electric-synthesizer.js.map +1 -1
  99. package/dist/cards/impl/minion/elite-navigator.d.ts +2 -0
  100. package/dist/cards/impl/minion/elite-navigator.js +24 -0
  101. package/dist/cards/impl/minion/elite-navigator.js.map +1 -0
  102. package/dist/cards/impl/minion/fauna-whisperer.d.ts +2 -0
  103. package/dist/cards/impl/minion/fauna-whisperer.js +29 -0
  104. package/dist/cards/impl/minion/fauna-whisperer.js.map +1 -0
  105. package/dist/cards/impl/minion/fire-forged-evoker.d.ts +2 -0
  106. package/dist/cards/impl/minion/fire-forged-evoker.js +14 -0
  107. package/dist/cards/impl/minion/fire-forged-evoker.js.map +1 -0
  108. package/dist/cards/impl/minion/firescale-hoarder.d.ts +2 -0
  109. package/dist/cards/impl/minion/firescale-hoarder.js +19 -0
  110. package/dist/cards/impl/minion/firescale-hoarder.js.map +1 -0
  111. package/dist/cards/impl/minion/flighty-scout.d.ts +2 -0
  112. package/dist/cards/impl/minion/flighty-scout.js +24 -0
  113. package/dist/cards/impl/minion/flighty-scout.js.map +1 -0
  114. package/dist/cards/impl/minion/forest-rover.js +2 -1
  115. package/dist/cards/impl/minion/forest-rover.js.map +1 -1
  116. package/dist/cards/impl/minion/fountain-chiller.js +2 -2
  117. package/dist/cards/impl/minion/fountain-chiller.js.map +1 -1
  118. package/dist/cards/impl/minion/gem-smuggler.js +1 -0
  119. package/dist/cards/impl/minion/gem-smuggler.js.map +1 -1
  120. package/dist/cards/impl/minion/general-drakkisath.js +1 -0
  121. package/dist/cards/impl/minion/general-drakkisath.js.map +1 -1
  122. package/dist/cards/impl/minion/gentle-djinni.js +1 -0
  123. package/dist/cards/impl/minion/gentle-djinni.js.map +1 -1
  124. package/dist/cards/impl/minion/gentle-stag.js +7 -3
  125. package/dist/cards/impl/minion/gentle-stag.js.map +1 -1
  126. package/dist/cards/impl/minion/glowgullet-warlord.d.ts +2 -0
  127. package/dist/cards/impl/minion/glowgullet-warlord.js +15 -0
  128. package/dist/cards/impl/minion/glowgullet-warlord.js.map +1 -0
  129. package/dist/cards/impl/minion/glowing-cinder.d.ts +2 -0
  130. package/dist/cards/impl/minion/glowing-cinder.js +11 -0
  131. package/dist/cards/impl/minion/glowing-cinder.js.map +1 -0
  132. package/dist/cards/impl/minion/goldgrubber.d.ts +2 -0
  133. package/dist/cards/impl/minion/goldgrubber.js +16 -0
  134. package/dist/cards/impl/minion/goldgrubber.js.map +1 -0
  135. package/dist/cards/impl/minion/gormling-gourmet.d.ts +2 -0
  136. package/dist/cards/impl/minion/gormling-gourmet.js +19 -0
  137. package/dist/cards/impl/minion/gormling-gourmet.js.map +1 -0
  138. package/dist/cards/impl/minion/grease-bot.js +1 -2
  139. package/dist/cards/impl/minion/grease-bot.js.map +1 -1
  140. package/dist/cards/impl/minion/greenskeeper.d.ts +2 -0
  141. package/dist/cards/impl/minion/greenskeeper.js +18 -0
  142. package/dist/cards/impl/minion/greenskeeper.js.map +1 -0
  143. package/dist/cards/impl/minion/grimscale-elegist.d.ts +2 -0
  144. package/dist/cards/impl/minion/grimscale-elegist.js +20 -0
  145. package/dist/cards/impl/minion/grimscale-elegist.js.map +1 -0
  146. package/dist/cards/impl/minion/gritty-headhunter.js +1 -0
  147. package/dist/cards/impl/minion/gritty-headhunter.js.map +1 -1
  148. package/dist/cards/impl/minion/hackerfin.js +3 -2
  149. package/dist/cards/impl/minion/hackerfin.js.map +1 -1
  150. package/dist/cards/impl/minion/hawkstrider-herald.js +1 -1
  151. package/dist/cards/impl/minion/hawkstrider-herald.js.map +1 -1
  152. package/dist/cards/impl/minion/hoarding-hatespawn.js +1 -1
  153. package/dist/cards/impl/minion/hoarding-hatespawn.js.map +1 -1
  154. package/dist/cards/impl/minion/hungry-snapjaw.js +1 -1
  155. package/dist/cards/impl/minion/hungry-snapjaw.js.map +1 -1
  156. package/dist/cards/impl/minion/hydralisk.js +1 -1
  157. package/dist/cards/impl/minion/hydralisk.js.map +1 -1
  158. package/dist/cards/impl/minion/ignition-specialist.d.ts +2 -0
  159. package/dist/cards/impl/minion/ignition-specialist.js +16 -0
  160. package/dist/cards/impl/minion/ignition-specialist.js.map +1 -0
  161. package/dist/cards/impl/minion/immortal.js +1 -2
  162. package/dist/cards/impl/minion/immortal.js.map +1 -1
  163. package/dist/cards/impl/minion/implant-subject.js +1 -1
  164. package/dist/cards/impl/minion/implant-subject.js.map +1 -1
  165. package/dist/cards/impl/minion/imposing-percussionist.js +1 -0
  166. package/dist/cards/impl/minion/imposing-percussionist.js.map +1 -1
  167. package/dist/cards/impl/minion/impulsive-trickster.js +13 -1
  168. package/dist/cards/impl/minion/impulsive-trickster.js.map +1 -1
  169. package/dist/cards/impl/minion/inspiring-underdog.js +2 -2
  170. package/dist/cards/impl/minion/inspiring-underdog.js.map +1 -1
  171. package/dist/cards/impl/minion/irate-rooster.js +1 -1
  172. package/dist/cards/impl/minion/irate-rooster.js.map +1 -1
  173. package/dist/cards/impl/minion/king-bagurgle.js +4 -3
  174. package/dist/cards/impl/minion/king-bagurgle.js.map +1 -1
  175. package/dist/cards/impl/minion/lightfang-enforcer.js +1 -1
  176. package/dist/cards/impl/minion/lightfang-enforcer.js.map +1 -1
  177. package/dist/cards/impl/minion/lokholar-frostforger.d.ts +2 -0
  178. package/dist/cards/impl/minion/lokholar-frostforger.js +17 -0
  179. package/dist/cards/impl/minion/lokholar-frostforger.js.map +1 -0
  180. package/dist/cards/impl/minion/lovesick-balladist.js +6 -3
  181. package/dist/cards/impl/minion/lovesick-balladist.js.map +1 -1
  182. package/dist/cards/impl/minion/low-flier.js +1 -1
  183. package/dist/cards/impl/minion/low-flier.js.map +1 -1
  184. package/dist/cards/impl/minion/lurker.js +1 -1
  185. package/dist/cards/impl/minion/lurker.js.map +1 -1
  186. package/dist/cards/impl/minion/mantid-queen.js +1 -1
  187. package/dist/cards/impl/minion/mantid-queen.js.map +1 -1
  188. package/dist/cards/impl/minion/maw-caster.d.ts +2 -0
  189. package/dist/cards/impl/minion/maw-caster.js +25 -0
  190. package/dist/cards/impl/minion/maw-caster.js.map +1 -0
  191. package/dist/cards/impl/minion/mecha-jaraxxus.js +1 -0
  192. package/dist/cards/impl/minion/mecha-jaraxxus.js.map +1 -1
  193. package/dist/cards/impl/minion/mechagnome-interpreter.d.ts +2 -0
  194. package/dist/cards/impl/minion/mechagnome-interpreter.js +12 -0
  195. package/dist/cards/impl/minion/mechagnome-interpreter.js.map +1 -0
  196. package/dist/cards/impl/minion/menagerie-jug.js +1 -0
  197. package/dist/cards/impl/minion/menagerie-jug.js.map +1 -1
  198. package/dist/cards/impl/minion/metallic-hunter.d.ts +2 -0
  199. package/dist/cards/impl/minion/metallic-hunter.js +13 -0
  200. package/dist/cards/impl/minion/metallic-hunter.js.map +1 -0
  201. package/dist/cards/impl/minion/misfit-dragonling.js +1 -2
  202. package/dist/cards/impl/minion/misfit-dragonling.js.map +1 -1
  203. package/dist/cards/impl/minion/monstrous-macaw.d.ts +2 -0
  204. package/dist/cards/impl/minion/monstrous-macaw.js +36 -0
  205. package/dist/cards/impl/minion/monstrous-macaw.js.map +1 -0
  206. package/dist/cards/impl/minion/murkbrine-expeditioner.d.ts +2 -0
  207. package/dist/cards/impl/minion/murkbrine-expeditioner.js +18 -0
  208. package/dist/cards/impl/minion/murkbrine-expeditioner.js.map +1 -0
  209. package/dist/cards/impl/minion/murky.js +3 -2
  210. package/dist/cards/impl/minion/murky.js.map +1 -1
  211. package/dist/cards/impl/minion/mutalisk.js +1 -1
  212. package/dist/cards/impl/minion/mutalisk.js.map +1 -1
  213. package/dist/cards/impl/minion/mutated-lasher.js +1 -2
  214. package/dist/cards/impl/minion/mutated-lasher.js.map +1 -1
  215. package/dist/cards/impl/minion/mythrax.js +1 -2
  216. package/dist/cards/impl/minion/mythrax.js.map +1 -1
  217. package/dist/cards/impl/minion/nerubian-deathswarmer.js +1 -0
  218. package/dist/cards/impl/minion/nerubian-deathswarmer.js.map +1 -1
  219. package/dist/cards/impl/minion/nightmare-par-tea-guest.d.ts +2 -0
  220. package/dist/cards/impl/minion/nightmare-par-tea-guest.js +19 -0
  221. package/dist/cards/impl/minion/nightmare-par-tea-guest.js.map +1 -0
  222. package/dist/cards/impl/minion/noisul-of-the-many-faces.d.ts +2 -0
  223. package/dist/cards/impl/minion/noisul-of-the-many-faces.js +22 -0
  224. package/dist/cards/impl/minion/noisul-of-the-many-faces.js.map +1 -0
  225. package/dist/cards/impl/minion/oozeling-gladiator.js +1 -0
  226. package/dist/cards/impl/minion/oozeling-gladiator.js.map +1 -1
  227. package/dist/cards/impl/minion/parched-wanderer.js +2 -1
  228. package/dist/cards/impl/minion/parched-wanderer.js.map +1 -1
  229. package/dist/cards/impl/minion/peggy-sturdybone.js +1 -2
  230. package/dist/cards/impl/minion/peggy-sturdybone.js.map +1 -1
  231. package/dist/cards/impl/minion/primalfin-lookout.js +1 -0
  232. package/dist/cards/impl/minion/primalfin-lookout.js.map +1 -1
  233. package/dist/cards/impl/minion/prized-promo-drake.js +1 -2
  234. package/dist/cards/impl/minion/prized-promo-drake.js.map +1 -1
  235. package/dist/cards/impl/minion/razorfen-geomancer.js +1 -0
  236. package/dist/cards/impl/minion/razorfen-geomancer.js.map +1 -1
  237. package/dist/cards/impl/minion/razorgore-the-untamed.js +1 -2
  238. package/dist/cards/impl/minion/razorgore-the-untamed.js.map +1 -1
  239. package/dist/cards/impl/minion/rickety-repairbot.d.ts +2 -0
  240. package/dist/cards/impl/minion/rickety-repairbot.js +16 -0
  241. package/dist/cards/impl/minion/rickety-repairbot.js.map +1 -0
  242. package/dist/cards/impl/minion/ripsnarl-captain.js +1 -2
  243. package/dist/cards/impl/minion/ripsnarl-captain.js.map +1 -1
  244. package/dist/cards/impl/minion/roach.js +1 -1
  245. package/dist/cards/impl/minion/roach.js.map +1 -1
  246. package/dist/cards/impl/minion/rodeo-performer.js +1 -0
  247. package/dist/cards/impl/minion/rodeo-performer.js.map +1 -1
  248. package/dist/cards/impl/minion/runed-progenitor.js +1 -1
  249. package/dist/cards/impl/minion/runed-progenitor.js.map +1 -1
  250. package/dist/cards/impl/minion/salty-hog.js +1 -2
  251. package/dist/cards/impl/minion/salty-hog.js.map +1 -1
  252. package/dist/cards/impl/minion/sanctum-rester.js +1 -2
  253. package/dist/cards/impl/minion/sanctum-rester.js.map +1 -1
  254. package/dist/cards/impl/minion/sand-swirler.d.ts +2 -0
  255. package/dist/cards/impl/minion/sand-swirler.js +12 -0
  256. package/dist/cards/impl/minion/sand-swirler.js.map +1 -0
  257. package/dist/cards/impl/minion/sanlayn-scribe.js +2 -2
  258. package/dist/cards/impl/minion/sanlayn-scribe.js.map +1 -1
  259. package/dist/cards/impl/minion/selfless-hero.d.ts +2 -0
  260. package/dist/cards/impl/minion/selfless-hero.js +25 -0
  261. package/dist/cards/impl/minion/selfless-hero.js.map +1 -0
  262. package/dist/cards/impl/minion/shadowdancer.d.ts +2 -0
  263. package/dist/cards/impl/minion/shadowdancer.js +13 -0
  264. package/dist/cards/impl/minion/shadowdancer.js.map +1 -0
  265. package/dist/cards/impl/minion/sharptooth-snapper.d.ts +2 -0
  266. package/dist/cards/impl/minion/sharptooth-snapper.js +8 -0
  267. package/dist/cards/impl/minion/sharptooth-snapper.js.map +1 -0
  268. package/dist/cards/impl/minion/shell-collector.js +1 -0
  269. package/dist/cards/impl/minion/shell-collector.js.map +1 -1
  270. package/dist/cards/impl/minion/silithid-burrower.d.ts +2 -0
  271. package/dist/cards/impl/minion/silithid-burrower.js +18 -0
  272. package/dist/cards/impl/minion/silithid-burrower.js.map +1 -0
  273. package/dist/cards/impl/minion/silky-shimmermoth.d.ts +2 -0
  274. package/dist/cards/impl/minion/silky-shimmermoth.js +20 -0
  275. package/dist/cards/impl/minion/silky-shimmermoth.js.map +1 -0
  276. package/dist/cards/impl/minion/silver-handed-recruit.js +2 -1
  277. package/dist/cards/impl/minion/silver-handed-recruit.js.map +1 -1
  278. package/dist/cards/impl/minion/skulking-bristlemane.d.ts +2 -0
  279. package/dist/cards/impl/minion/skulking-bristlemane.js +17 -0
  280. package/dist/cards/impl/minion/skulking-bristlemane.js.map +1 -0
  281. package/dist/cards/impl/minion/slumber-sorcerer.d.ts +2 -0
  282. package/dist/cards/impl/minion/slumber-sorcerer.js +13 -0
  283. package/dist/cards/impl/minion/slumber-sorcerer.js.map +1 -0
  284. package/dist/cards/impl/minion/smolderwing.js +2 -1
  285. package/dist/cards/impl/minion/smolderwing.js.map +1 -1
  286. package/dist/cards/impl/minion/soul-rewinder.js +5 -1
  287. package/dist/cards/impl/minion/soul-rewinder.js.map +1 -1
  288. package/dist/cards/impl/minion/spacefarer.js +1 -1
  289. package/dist/cards/impl/minion/spacefarer.js.map +1 -1
  290. package/dist/cards/impl/minion/spirited-whimsydrake.d.ts +2 -0
  291. package/dist/cards/impl/minion/spirited-whimsydrake.js +19 -0
  292. package/dist/cards/impl/minion/spirited-whimsydrake.js.map +1 -0
  293. package/dist/cards/impl/minion/springy-spriggan.d.ts +2 -0
  294. package/dist/cards/impl/minion/springy-spriggan.js +21 -0
  295. package/dist/cards/impl/minion/springy-spriggan.js.map +1 -0
  296. package/dist/cards/impl/minion/surfing-slyvar.d.ts +2 -0
  297. package/dist/cards/impl/minion/surfing-slyvar.js +18 -0
  298. package/dist/cards/impl/minion/surfing-slyvar.js.map +1 -0
  299. package/dist/cards/impl/minion/swampstriker.js +1 -1
  300. package/dist/cards/impl/minion/swampstriker.js.map +1 -1
  301. package/dist/cards/impl/minion/thorncaller.d.ts +2 -0
  302. package/dist/cards/impl/minion/thorncaller.js +19 -0
  303. package/dist/cards/impl/minion/thorncaller.js.map +1 -0
  304. package/dist/cards/impl/minion/thousandth-paper-drake.js +1 -2
  305. package/dist/cards/impl/minion/thousandth-paper-drake.js.map +1 -1
  306. package/dist/cards/impl/minion/thundering-abomination.js +1 -2
  307. package/dist/cards/impl/minion/thundering-abomination.js.map +1 -1
  308. package/dist/cards/impl/minion/turquoise-skitterer.js +1 -1
  309. package/dist/cards/impl/minion/turquoise-skitterer.js.map +1 -1
  310. package/dist/cards/impl/minion/twilight-primordium.js +2 -2
  311. package/dist/cards/impl/minion/twilight-primordium.js.map +1 -1
  312. package/dist/cards/impl/minion/ultralisk.js +1 -2
  313. package/dist/cards/impl/minion/ultralisk.js.map +1 -1
  314. package/dist/cards/impl/minion/ultraviolet-ascendant.js +1 -1
  315. package/dist/cards/impl/minion/ultraviolet-ascendant.js.map +1 -1
  316. package/dist/cards/impl/minion/vaelastrasz.js +1 -2
  317. package/dist/cards/impl/minion/vaelastrasz.js.map +1 -1
  318. package/dist/cards/impl/minion/valiant-tiger.d.ts +2 -0
  319. package/dist/cards/impl/minion/valiant-tiger.js +18 -0
  320. package/dist/cards/impl/minion/valiant-tiger.js.map +1 -0
  321. package/dist/cards/impl/minion/void-ray.js +2 -2
  322. package/dist/cards/impl/minion/void-ray.js.map +1 -1
  323. package/dist/cards/impl/minion/vorkai-guardian.d.ts +2 -0
  324. package/dist/cards/impl/minion/vorkai-guardian.js +19 -0
  325. package/dist/cards/impl/minion/vorkai-guardian.js.map +1 -0
  326. package/dist/cards/impl/minion/wandering-wight.js +1 -2
  327. package/dist/cards/impl/minion/wandering-wight.js.map +1 -1
  328. package/dist/cards/impl/minion/whelp-smuggler.js +1 -2
  329. package/dist/cards/impl/minion/whelp-smuggler.js.map +1 -1
  330. package/dist/cards/impl/minion/wisp-in-the-shell.js +2 -1
  331. package/dist/cards/impl/minion/wisp-in-the-shell.js.map +1 -1
  332. package/dist/cards/impl/quest-reward/staff-of-origination.js +1 -2
  333. package/dist/cards/impl/quest-reward/staff-of-origination.js.map +1 -1
  334. package/dist/cards/impl/trinket/all-purpose-kibble.d.ts +2 -0
  335. package/dist/cards/impl/trinket/all-purpose-kibble.js +14 -0
  336. package/dist/cards/impl/trinket/all-purpose-kibble.js.map +1 -0
  337. package/dist/cards/impl/trinket/arm-of-the-empire.js +1 -2
  338. package/dist/cards/impl/trinket/arm-of-the-empire.js.map +1 -1
  339. package/dist/cards/impl/trinket/baleful-incense.d.ts +2 -0
  340. package/dist/cards/impl/trinket/baleful-incense.js +22 -0
  341. package/dist/cards/impl/trinket/baleful-incense.js.map +1 -0
  342. package/dist/cards/impl/trinket/bassgill-portrait.d.ts +2 -0
  343. package/dist/cards/impl/trinket/bassgill-portrait.js +16 -0
  344. package/dist/cards/impl/trinket/bassgill-portrait.js.map +1 -0
  345. package/dist/cards/impl/trinket/battle-horn.d.ts +2 -0
  346. package/dist/cards/impl/trinket/battle-horn.js +20 -0
  347. package/dist/cards/impl/trinket/battle-horn.js.map +1 -0
  348. package/dist/cards/impl/trinket/beetle-band.d.ts +2 -0
  349. package/dist/cards/impl/trinket/beetle-band.js +18 -0
  350. package/dist/cards/impl/trinket/beetle-band.js.map +1 -0
  351. package/dist/cards/impl/trinket/bird-feeder.d.ts +2 -0
  352. package/dist/cards/impl/trinket/bird-feeder.js +13 -0
  353. package/dist/cards/impl/trinket/bird-feeder.js.map +1 -0
  354. package/dist/cards/impl/trinket/bronze-timepiece.js +1 -3
  355. package/dist/cards/impl/trinket/bronze-timepiece.js.map +1 -1
  356. package/dist/cards/impl/trinket/crocheted-sungill.d.ts +2 -0
  357. package/dist/cards/impl/trinket/crocheted-sungill.js +31 -0
  358. package/dist/cards/impl/trinket/crocheted-sungill.js.map +1 -0
  359. package/dist/cards/impl/trinket/divine-signet.d.ts +2 -0
  360. package/dist/cards/impl/trinket/divine-signet.js +14 -0
  361. package/dist/cards/impl/trinket/divine-signet.js.map +1 -0
  362. package/dist/cards/impl/trinket/eclectic-shrine.d.ts +2 -0
  363. package/dist/cards/impl/trinket/eclectic-shrine.js +36 -0
  364. package/dist/cards/impl/trinket/eclectic-shrine.js.map +1 -0
  365. package/dist/cards/impl/trinket/faerie-dragon-scale.d.ts +2 -0
  366. package/dist/cards/impl/trinket/faerie-dragon-scale.js +20 -0
  367. package/dist/cards/impl/trinket/faerie-dragon-scale.js.map +1 -0
  368. package/dist/cards/impl/trinket/herald-sticker.d.ts +2 -0
  369. package/dist/cards/impl/trinket/herald-sticker.js +21 -0
  370. package/dist/cards/impl/trinket/herald-sticker.js.map +1 -0
  371. package/dist/cards/impl/trinket/hogwash-basin.d.ts +2 -0
  372. package/dist/cards/impl/trinket/hogwash-basin.js +14 -0
  373. package/dist/cards/impl/trinket/hogwash-basin.js.map +1 -0
  374. package/dist/cards/impl/trinket/rivendare-portrait.js +1 -2
  375. package/dist/cards/impl/trinket/rivendare-portrait.js.map +1 -1
  376. package/dist/cards/impl/trinket/sthara-sticker.d.ts +2 -0
  377. package/dist/cards/impl/trinket/sthara-sticker.js +32 -0
  378. package/dist/cards/impl/trinket/sthara-sticker.js.map +1 -0
  379. package/dist/cards/impl/trinket/tinyfin-onesie.js +1 -1
  380. package/dist/cards/impl/trinket/tinyfin-onesie.js.map +1 -1
  381. package/dist/cards/impl/trinket/unholy-sanctum.d.ts +2 -0
  382. package/dist/cards/impl/trinket/unholy-sanctum.js +15 -0
  383. package/dist/cards/impl/trinket/unholy-sanctum.js.map +1 -0
  384. package/dist/cards/impl/trinket/vashjir-anemone.d.ts +2 -0
  385. package/dist/cards/impl/trinket/vashjir-anemone.js +13 -0
  386. package/dist/cards/impl/trinket/vashjir-anemone.js.map +1 -0
  387. package/dist/cards/impl/trinket/yulon-sticker.d.ts +2 -0
  388. package/dist/cards/impl/trinket/yulon-sticker.js +20 -0
  389. package/dist/cards/impl/trinket/yulon-sticker.js.map +1 -0
  390. package/dist/keywords/divine-shield.js +19 -6
  391. package/dist/keywords/divine-shield.js.map +1 -1
  392. package/dist/keywords/venomous.js +1 -1
  393. package/dist/keywords/venomous.js.map +1 -1
  394. package/dist/services/utils.d.ts +3 -0
  395. package/dist/services/utils.js.map +1 -1
  396. package/dist/simulate-bgs-battle.js +2 -0
  397. package/dist/simulate-bgs-battle.js.map +1 -1
  398. package/dist/simulation/add-minion-to-board.js +48 -29
  399. package/dist/simulation/add-minion-to-board.js.map +1 -1
  400. package/dist/simulation/after-attack.d.ts +11 -1
  401. package/dist/simulation/after-attack.js +20 -25
  402. package/dist/simulation/after-attack.js.map +1 -1
  403. package/dist/simulation/attack.d.ts +8 -0
  404. package/dist/simulation/attack.js +16 -3
  405. package/dist/simulation/attack.js.map +1 -1
  406. package/dist/simulation/auras.js +14 -12
  407. package/dist/simulation/auras.js.map +1 -1
  408. package/dist/simulation/avenge.js +12 -13
  409. package/dist/simulation/avenge.js.map +1 -1
  410. package/dist/simulation/battlecries.d.ts +1 -0
  411. package/dist/simulation/battlecries.js +28 -36
  412. package/dist/simulation/battlecries.js.map +1 -1
  413. package/dist/simulation/blood-gems.js +8 -3
  414. package/dist/simulation/blood-gems.js.map +1 -1
  415. package/dist/simulation/cards-in-hand.js +1 -2
  416. package/dist/simulation/cards-in-hand.js.map +1 -1
  417. package/dist/simulation/damage-effects.js +4 -8
  418. package/dist/simulation/damage-effects.js.map +1 -1
  419. package/dist/simulation/death-effects.js +1 -2
  420. package/dist/simulation/death-effects.js.map +1 -1
  421. package/dist/simulation/deathrattle-effects.js +25 -55
  422. package/dist/simulation/deathrattle-effects.js.map +1 -1
  423. package/dist/simulation/deathrattle-on-trigger.js +16 -2
  424. package/dist/simulation/deathrattle-on-trigger.js.map +1 -1
  425. package/dist/simulation/deathrattle-spawns.d.ts +1 -0
  426. package/dist/simulation/deathrattle-spawns.js +7 -1
  427. package/dist/simulation/deathrattle-spawns.js.map +1 -1
  428. package/dist/simulation/deathrattle-utils.d.ts +2 -1
  429. package/dist/simulation/deathrattle-utils.js +7 -3
  430. package/dist/simulation/deathrattle-utils.js.map +1 -1
  431. package/dist/simulation/discover.js +1 -1
  432. package/dist/simulation/discover.js.map +1 -1
  433. package/dist/simulation/magnetize.d.ts +9 -1
  434. package/dist/simulation/magnetize.js +17 -3
  435. package/dist/simulation/magnetize.js.map +1 -1
  436. package/dist/simulation/minion-death.js +1 -2
  437. package/dist/simulation/minion-death.js.map +1 -1
  438. package/dist/simulation/minion-kill.js +3 -3
  439. package/dist/simulation/minion-kill.js.map +1 -1
  440. package/dist/simulation/on-attack.js +24 -9
  441. package/dist/simulation/on-attack.js.map +1 -1
  442. package/dist/simulation/on-being-attacked.js +5 -10
  443. package/dist/simulation/on-being-attacked.js.map +1 -1
  444. package/dist/simulation/reborn.js +2 -4
  445. package/dist/simulation/reborn.js.map +1 -1
  446. package/dist/simulation/spawn-fail.js +1 -1
  447. package/dist/simulation/spawn-fail.js.map +1 -1
  448. package/dist/simulation/start-of-combat/soc-action-processor.js +0 -4
  449. package/dist/simulation/start-of-combat/soc-action-processor.js.map +1 -1
  450. package/dist/simulation/start-of-combat/soc-illidan-hero-power.js +2 -4
  451. package/dist/simulation/start-of-combat/soc-illidan-hero-power.js.map +1 -1
  452. package/dist/simulation/start-of-combat/soc-minion.js +10 -2
  453. package/dist/simulation/start-of-combat/soc-minion.js.map +1 -1
  454. package/dist/simulation/start-of-combat/start-of-combat.js +23 -17
  455. package/dist/simulation/start-of-combat/start-of-combat.js.map +1 -1
  456. package/dist/simulation/stats.d.ts +3 -3
  457. package/dist/simulation/stats.js +13 -3
  458. package/dist/simulation/stats.js.map +1 -1
  459. package/dist/simulation/summon-when-space.js +13 -0
  460. package/dist/simulation/summon-when-space.js.map +1 -1
  461. package/dist/simulation/utils/golden.js +1 -1
  462. package/dist/simulation/utils/golden.js.map +1 -1
  463. package/dist/utils.js +11 -16
  464. package/dist/utils.js.map +1 -1
  465. package/package.json +2 -2
  466. package/dist/cards/impl/trinket/artisanal-urn.d.ts +0 -5
  467. package/dist/cards/impl/trinket/artisanal-urn.js +0 -13
  468. package/dist/cards/impl/trinket/artisanal-urn.js.map +0 -1
@@ -3,6 +3,7 @@ import { BoardEntity } from '../board-entity';
3
3
  import { DeathrattleTriggeredInput } from './deathrattle-on-trigger';
4
4
  import { FullGameState } from './internal-game-state';
5
5
  export declare const simplifiedSpawnEntities: (cardId: string, quantity: number, input: DeathrattleTriggeredInput, boardEntityToSpawn?: BoardEntity) => readonly BoardEntity[];
6
+ export declare const simplifiedSpawnEntitiesWithAddToBoard: (cardId: string, quantity: number, input: DeathrattleTriggeredInput, source: BoardEntity, indexFromRight: number, boardEntityToSpawn?: BoardEntity) => void;
6
7
  export declare const spawnEntities: (cardId: string, quantity: number, boardToSpawnInto: BoardEntity[], boardToSpawnIntoHero: BgsPlayerEntity, otherBoard: BoardEntity[], otherHero: BgsPlayerEntity, gameState: FullGameState, friendly: boolean, limitSpawns: boolean, spawnReborn?: boolean, useKhadgar?: boolean, boardEntityToSpawn?: BoardEntity, originalEntity?: BoardEntity) => readonly BoardEntity[];
7
8
  export declare const spawnEntitiesFromDeathrattle: (deadEntity: BoardEntity, boardWithDeadEntity: BoardEntity[], boardWithDeadEntityHero: BgsPlayerEntity, otherBoard: BoardEntity[], otherBoardHero: BgsPlayerEntity, entitiesDeadThisAttack: readonly BoardEntity[], gameState: FullGameState) => readonly BoardEntity[];
8
9
  export declare const spawnEntitiesFromEnchantments: (deadEntity: BoardEntity, boardWithDeadEntity: BoardEntity[], boardWithDeadEntityHero: BgsPlayerEntity, otherBoard: BoardEntity[], otherBoardHero: BgsPlayerEntity, gameState: FullGameState) => readonly BoardEntity[];
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.spawnEntitiesFromEnchantments = exports.spawnEntitiesFromDeathrattle = exports.spawnEntities = exports.simplifiedSpawnEntities = void 0;
3
+ exports.spawnEntitiesFromEnchantments = exports.spawnEntitiesFromDeathrattle = exports.spawnEntities = exports.simplifiedSpawnEntitiesWithAddToBoard = exports.simplifiedSpawnEntities = void 0;
4
4
  const reference_data_1 = require("@firestone-hs/reference-data");
5
5
  const card_interface_1 = require("../cards/card.interface");
6
6
  const _card_mappings_1 = require("../cards/impl/_card-mappings");
@@ -9,10 +9,16 @@ const utils_2 = require("../utils");
9
9
  const cards_in_hand_1 = require("./cards-in-hand");
10
10
  const deathrattle_effects_1 = require("./deathrattle-effects");
11
11
  const deathrattle_on_trigger_1 = require("./deathrattle-on-trigger");
12
+ const spawns_1 = require("./spawns");
12
13
  const simplifiedSpawnEntities = (cardId, quantity, input, boardEntityToSpawn = null) => {
13
14
  return (0, exports.spawnEntities)(cardId, quantity, input.boardWithDeadEntity, input.boardWithDeadEntityHero, input.otherBoard, input.otherBoardHero, input.gameState, input.deadEntity.friendly, false, false, false, boardEntityToSpawn);
14
15
  };
15
16
  exports.simplifiedSpawnEntities = simplifiedSpawnEntities;
17
+ const simplifiedSpawnEntitiesWithAddToBoard = (cardId, quantity, input, source, indexFromRight, boardEntityToSpawn = null) => {
18
+ const spawns = (0, exports.spawnEntities)(cardId, quantity, input.boardWithDeadEntity, input.boardWithDeadEntityHero, input.otherBoard, input.otherBoardHero, input.gameState, input.deadEntity.friendly, false, false, false, boardEntityToSpawn);
19
+ (0, spawns_1.performEntitySpawns)(spawns, input.boardWithDeadEntity, input.boardWithDeadEntityHero, source, indexFromRight, input.otherBoard, input.otherBoardHero, input.gameState);
20
+ };
21
+ exports.simplifiedSpawnEntitiesWithAddToBoard = simplifiedSpawnEntitiesWithAddToBoard;
16
22
  const spawnEntities = (cardId, quantity, boardToSpawnInto, boardToSpawnIntoHero, otherBoard, otherHero, gameState, friendly, limitSpawns, spawnReborn = false, useKhadgar = true, boardEntityToSpawn = null, originalEntity = null) => {
17
23
  var _a;
18
24
  if (!cardId) {
@@ -1 +1 @@
1
- {"version":3,"file":"deathrattle-spawns.js","sourceRoot":"","sources":["../../src/simulation/deathrattle-spawns.ts"],"names":[],"mappings":"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","sourcesContent":["import { CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BgsPlayerEntity } from '../bgs-player-entity';\r\nimport { BoardEntity } from '../board-entity';\r\nimport { hasDeathrattleSpawn, hasDeathrattleSpawnEnchantment } from '../cards/card.interface';\r\nimport { cardMappings } from '../cards/impl/_card-mappings';\r\nimport { pickRandom } from '../services/utils';\r\nimport {\r\n\taddStatsToBoard,\r\n\tbuildRandomUndeadCreation,\r\n\tbuildSingleBoardEntity,\r\n\tgetTeammateInitialState,\r\n\thasCorrectTribe,\r\n\tstringifySimple,\r\n} from '../utils';\r\nimport { addCardsInHand } from './cards-in-hand';\r\nimport { computeDeathrattleMultiplier } from './deathrattle-effects';\r\nimport { DeathrattleTriggeredInput, onDeathrattleTriggered } from './deathrattle-on-trigger';\r\nimport { FullGameState } from './internal-game-state';\r\n\r\nexport const simplifiedSpawnEntities = (\r\n\tcardId: string,\r\n\tquantity: number,\r\n\tinput: DeathrattleTriggeredInput,\r\n\tboardEntityToSpawn: BoardEntity = null,\r\n): readonly BoardEntity[] => {\r\n\treturn spawnEntities(\r\n\t\tcardId,\r\n\t\tquantity,\r\n\t\tinput.boardWithDeadEntity,\r\n\t\tinput.boardWithDeadEntityHero,\r\n\t\tinput.otherBoard,\r\n\t\tinput.otherBoardHero,\r\n\t\tinput.gameState,\r\n\t\tinput.deadEntity.friendly,\r\n\t\tfalse,\r\n\t\tfalse,\r\n\t\tfalse,\r\n\t\tboardEntityToSpawn,\r\n\t);\r\n};\r\n\r\nexport const spawnEntities = (\r\n\tcardId: string,\r\n\tquantity: number,\r\n\tboardToSpawnInto: BoardEntity[],\r\n\tboardToSpawnIntoHero: BgsPlayerEntity,\r\n\totherBoard: BoardEntity[],\r\n\totherHero: BgsPlayerEntity,\r\n\tgameState: FullGameState,\r\n\tfriendly: boolean,\r\n\t// In most cases the business of knowing the number of minions to handle is left to the caller\r\n\t// Bascially, use limitSpawns = true only if the source does not trigger if there is not enough room,\r\n\t// e.g. Toxic Tumbleweed. Otherwise, it will prevent the \"spawn failed\" event.\r\n\tlimitSpawns: boolean,\r\n\tspawnReborn = false,\r\n\tuseKhadgar = true,\r\n\tboardEntityToSpawn: BoardEntity = null,\r\n\toriginalEntity: BoardEntity = null,\r\n): readonly BoardEntity[] => {\r\n\tif (!cardId) {\r\n\t\tconsole.error(\r\n\t\t\t'Cannot spawn a minion without any cardId defined',\r\n\t\t\tstringifySimple(boardToSpawnInto, gameState.allCards),\r\n\t\t\tnew Error().stack,\r\n\t\t);\r\n\t}\r\n\tif (gameState.anomalies?.includes(CardIds.TheGoldenArena_BG27_Anomaly_801)) {\r\n\t\tif (!gameState.allCards.getCard(cardId).premium) {\r\n\t\t\tconst premiumDbfId = gameState.allCards.getCard(cardId).battlegroundsPremiumDbfId;\r\n\t\t\tcardId = gameState.allCards.getCard(premiumDbfId).id;\r\n\t\t}\r\n\t}\r\n\tconst spawnMultiplier = useKhadgar\r\n\t\t? 2 * boardToSpawnInto.filter((entity) => entity.cardId === CardIds.Khadgar_BG_DAL_575).length || 1\r\n\t\t: 1;\r\n\tconst spawnMultiplierGolden = useKhadgar\r\n\t\t? 3 * boardToSpawnInto.filter((entity) => entity.cardId === CardIds.Khadgar_TB_BaconUps_034).length || 1\r\n\t\t: 1;\r\n\tconst minionsToSpawn = limitSpawns\r\n\t\t? Math.min(quantity * spawnMultiplier * spawnMultiplierGolden, 7 - boardToSpawnInto.length)\r\n\t\t: quantity * spawnMultiplier * spawnMultiplierGolden;\r\n\tconst result: BoardEntity[] = [];\r\n\tfor (let i = 0; i < minionsToSpawn; i++) {\r\n\t\tconst newMinion = buildSingleBoardEntity(\r\n\t\t\tcardId,\r\n\t\t\tboardToSpawnIntoHero,\r\n\t\t\tboardToSpawnInto,\r\n\t\t\tgameState.allCards,\r\n\t\t\tfriendly,\r\n\t\t\tgameState.sharedState.currentEntityId++,\r\n\t\t\tspawnReborn,\r\n\t\t\tgameState.cardsData,\r\n\t\t\tgameState.sharedState,\r\n\t\t\tboardEntityToSpawn,\r\n\t\t\toriginalEntity,\r\n\t\t);\r\n\t\tif (!newMinion.cardId) {\r\n\t\t\tconsole.warn('Invalid spawn', newMinion, cardId);\r\n\t\t}\r\n\t\tresult.push(newMinion);\r\n\t}\r\n\r\n\treturn result;\r\n};\r\n\r\nexport const spawnEntitiesFromDeathrattle = (\r\n\tdeadEntity: BoardEntity,\r\n\tboardWithDeadEntity: BoardEntity[],\r\n\tboardWithDeadEntityHero: BgsPlayerEntity,\r\n\totherBoard: BoardEntity[],\r\n\totherBoardHero: BgsPlayerEntity,\r\n\tentitiesDeadThisAttack: readonly BoardEntity[],\r\n\tgameState: FullGameState,\r\n): readonly BoardEntity[] => {\r\n\t// Because if the baron dies because of a cleave, it still applies its effect to the other entities that died this turn\r\n\t// TOOD: I need a replay for this\r\n\t// If the Titus dies, its effect doesn't apply to the other deathrattle effects that die at the same time\r\n\t// e.g. Tunnel Blaster + Omega Buster + Titus, if the titus dies, then the omega buster DR isn't applied multiple\r\n\t// times\r\n\t// http://replays.firestoneapp.com/?reviewId=fb739cc8-bf3b-4003-ab99-031ee1aa0ea1&turn=25&action=1\r\n\tconst multiplier = computeDeathrattleMultiplier(\r\n\t\t// [...boardWithDeadEntity, ...entitiesDeadThisAttack],\r\n\t\t[...boardWithDeadEntity],\r\n\t\tboardWithDeadEntityHero,\r\n\t\tdeadEntity,\r\n\t\tgameState.sharedState,\r\n\t);\r\n\r\n\tconst deathrattleTriggeredInput: DeathrattleTriggeredInput = {\r\n\t\tboardWithDeadEntity,\r\n\t\tboardWithDeadEntityHero,\r\n\t\tdeadEntity,\r\n\t\totherBoard,\r\n\t\totherBoardHero,\r\n\t\tgameState,\r\n\t};\r\n\r\n\tconst spawnedEntities: BoardEntity[] = [];\r\n\t// const otherBoardSpawnedEntities: BoardEntity[] = [];\r\n\tfor (let i = 0; i < multiplier; i++) {\r\n\t\tconst cardIds = [deadEntity.cardId, ...(deadEntity.additionalCards ?? [])];\r\n\t\t// console.debug(\r\n\t\t// \t'spawn triggers',\r\n\t\t// \tgameState.allCards.getCard(deadEntity.cardId).name,\r\n\t\t// \tcardIds.map((c) => gameState.allCards.getCard(c).name),\r\n\t\t// \tcardIds,\r\n\t\t// );\r\n\t\tfor (const deadEntityCardId of cardIds) {\r\n\t\t\tlet hasTriggered = true;\r\n\t\t\tconst spawnEntityImpl = cardMappings[deadEntityCardId];\r\n\t\t\tif (hasDeathrattleSpawn(spawnEntityImpl)) {\r\n\t\t\t\tconst spawned = spawnEntityImpl.deathrattleSpawn(deadEntity, deathrattleTriggeredInput);\r\n\t\t\t\tif (spawned?.length) {\r\n\t\t\t\t\tspawnedEntities.push(...spawned);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tswitch (deadEntityCardId) {\r\n\t\t\t\t\tcase CardIds.Mecharoo_BOT_445:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.Mecharoo_JoEBotToken_BOT_445t,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.Mecharoo_TB_BaconUps_002:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.Mecharoo_JoEBotToken_TB_BaconUps_002t,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.CordPuller_BG29_611:\r\n\t\t\t\t\tcase CardIds.CordPuller_BG29_611_G:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tdeadEntity.cardId === CardIds.CordPuller_BG29_611\r\n\t\t\t\t\t\t\t\t\t? CardIds.ReplicatingMenace_MicrobotToken_BG_BOT_312t\r\n\t\t\t\t\t\t\t\t\t: CardIds.ReplicatingMenace_MicrobotToken_TB_BaconUps_032t,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.PiggybackImp_BG_AV_309:\r\n\t\t\t\t\tcase CardIds.PiggybackImp_BG_AV_309_G:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tdeadEntityCardId === CardIds.PiggybackImp_BG_AV_309_G\r\n\t\t\t\t\t\t\t\t\t? CardIds.PiggybackImp_BackpiggyImpToken_BG_AV_309t\r\n\t\t\t\t\t\t\t\t\t: CardIds.PiggybackImp_BackpiggyImpToken_AV_309t,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.EternalSummoner_BG25_009:\r\n\t\t\t\t\tcase CardIds.EternalSummoner_BG25_009_G:\r\n\t\t\t\t\t\t// TODO\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tdeadEntityCardId === CardIds.EternalSummoner_BG25_009_G\r\n\t\t\t\t\t\t\t\t\t? CardIds.EternalKnight_BG25_008_G\r\n\t\t\t\t\t\t\t\t\t: CardIds.EternalKnight_BG25_008,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.IckyImp_BG21_029:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.ImpGangBoss_ImpToken_BRM_006t,\r\n\t\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.IckyImp_BG21_029_G:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.ImpGangBoss_ImpToken_TB_BaconUps_030t,\r\n\t\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.HarvestGolemLegacy_BG_EX1_556:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.DamagedGolemLegacy,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.HarvestGolemLegacy_TB_BaconUps_006:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.HarvestGolem_DamagedGolemLegacyToken_TB_BaconUps_006t,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.SewerRat_BG19_010:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.SewerRat_HalfShellToken_BG19_010t,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.SewerRat_BG19_010_G:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.SewerRat_HalfShellToken_BG19_010_Gt,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.MawswornSoulkeeper_TB_BaconShop_HERO_702_Buddy:\r\n\t\t\t\t\tcase CardIds.MawswornSoulkeeper_TB_BaconShop_HERO_702_Buddy_G:\r\n\t\t\t\t\t\tconst minionsToSpawnMawsworn =\r\n\t\t\t\t\t\t\tdeadEntityCardId === CardIds.MawswornSoulkeeper_TB_BaconShop_HERO_702_Buddy_G ? 6 : 3;\r\n\t\t\t\t\t\tfor (let i = 0; i < minionsToSpawnMawsworn; i++) {\r\n\t\t\t\t\t\t\tconst minionCardId = gameState.cardsData.getRandomMinionForTavernTier(1);\r\n\t\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\t\tminionCardId,\r\n\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.Festergut_BG25_HERO_100_Buddy:\r\n\t\t\t\t\tcase CardIds.Festergut_BG25_HERO_100_Buddy_G:\r\n\t\t\t\t\t\tconst minionsToSpawnFestergut =\r\n\t\t\t\t\t\t\tdeadEntityCardId === CardIds.Festergut_BG25_HERO_100_Buddy_G ? 2 : 1;\r\n\t\t\t\t\t\tfor (let i = 0; i < minionsToSpawnFestergut; i++) {\r\n\t\t\t\t\t\t\tconst randomUndeadCreation = buildRandomUndeadCreation(\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tgameState.allCards,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tgameState.cardsData,\r\n\t\t\t\t\t\t\t\tgameState.sharedState,\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\t\trandomUndeadCreation.cardId,\r\n\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t\ttrue,\r\n\t\t\t\t\t\t\t\t\trandomUndeadCreation,\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.KindlyGrandmother_BG_KAR_005:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.KindlyGrandmother_BigBadWolf_BG_KAR_005a,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.KindlyGrandmother_TB_BaconUps_004:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.KindlyGrandmother_BigBadWolfToken,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.RatPack_BG_CFM_316:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.RatPack_RatToken_BG_CFM_316t,\r\n\t\t\t\t\t\t\t\tMath.min(7, deadEntity.attack),\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.RatPack_TB_BaconUps_027:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.RatPack_RatToken_TB_BaconUps_027t,\r\n\t\t\t\t\t\t\t\tMath.min(7, deadEntity.attack),\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.Imprisoner_BGS_014:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.ImpGangBoss_ImpToken_BRM_006t,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.Imprisoner_TB_BaconUps_113:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.ImpGangBoss_ImpToken_TB_BaconUps_030t,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.InfestedWolf_OG_216:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.InfestedWolf_Spider,\r\n\t\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.InfestedWolf_TB_BaconUps_026:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.InfestedWolf_SpiderToken,\r\n\t\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.ReplicatingMenace_BG_BOT_312:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.ReplicatingMenace_MicrobotToken_BG_BOT_312t,\r\n\t\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.ReplicatingMenace_TB_BaconUps_032:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.ReplicatingMenace_MicrobotToken_TB_BaconUps_032t,\r\n\t\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.MechanoEgg_BOT_537:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.MechanoEgg_RobosaurToken_BOT_537t,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.MechanoEgg_TB_BaconUps_039:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.MechanoEgg_RobosaurToken_TB_BaconUps_039t,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.SavannahHighmaneLegacy_BG_EX1_534:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.SavannahHighmane_HyenaLegacyToken_BG_EX1_534t,\r\n\t\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.SavannahHighmaneLegacy_TB_BaconUps_049:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.SavannahHighmane_HyenaLegacyToken_TB_BaconUps_049t,\r\n\t\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.RingMatron_BG_DMF_533:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.RingMatron_FieryImpToken_BG_DMF_533t,\r\n\t\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.RingMatron_TB_BaconUps_309:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.RingMatron_FieryImpToken_TB_BaconUps_309t,\r\n\t\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.SatedThreshadon_UNG_010:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.PrimalfinTotem_PrimalfinToken,\r\n\t\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.SatedThreshadon_TB_BaconUps_052:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.SatedThreshadon_PrimalfinToken,\r\n\t\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.Ghastcoiler_BGS_008:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...[\r\n\t\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\t\tgameState.cardsData.ghastcoilerSpawns[\r\n\t\t\t\t\t\t\t\t\t\tMath.floor(Math.random() * gameState.cardsData.ghastcoilerSpawns.length)\r\n\t\t\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\t\tgameState.cardsData.ghastcoilerSpawns[\r\n\t\t\t\t\t\t\t\t\t\tMath.floor(Math.random() * gameState.cardsData.ghastcoilerSpawns.length)\r\n\t\t\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase CardIds.Kilrek_TB_BaconShop_HERO_37_Buddy:\r\n\t\t\t\t\tcase CardIds.Kilrek_TB_BaconShop_HERO_37_Buddy_G:\r\n\t\t\t\t\t\tconst kilrekCardsToAddQuantity =\r\n\t\t\t\t\t\t\tdeadEntity.cardId === CardIds.Kilrek_TB_BaconShop_HERO_37_Buddy_G ? 2 : 1;\r\n\t\t\t\t\t\tconst kilrekCardsToAdd = [];\r\n\t\t\t\t\t\tfor (let i = 0; i < kilrekCardsToAddQuantity; i++) {\r\n\t\t\t\t\t\t\tkilrekCardsToAdd.push(pickRandom(gameState.cardsData.demonSpawns));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\taddCardsInHand(boardWithDeadEntityHero, boardWithDeadEntity, kilrekCardsToAdd, gameState);\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase CardIds.BrannsEpicEgg_TB_BaconShop_HERO_43_Buddy:\r\n\t\t\t\t\tcase CardIds.BrannsEpicEgg_TB_BaconShop_HERO_43_Buddy_G:\r\n\t\t\t\t\t\tconst brannSpawns = [];\r\n\t\t\t\t\t\tconst brannToSpawnQuandtity =\r\n\t\t\t\t\t\t\tdeadEntity.cardId === CardIds.BrannsEpicEgg_TB_BaconShop_HERO_43_Buddy_G ? 2 : 1;\r\n\t\t\t\t\t\tfor (let i = 0; i < brannToSpawnQuandtity; i++) {\r\n\t\t\t\t\t\t\tbrannSpawns.push(pickRandom(gameState.cardsData.battlecryMinions));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tfor (const brannSpawn of brannSpawns) {\r\n\t\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\t\tbrannSpawn,\r\n\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\taddCardsInHand(boardWithDeadEntityHero, boardWithDeadEntity, brannSpawns, gameState);\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase CardIds.Ghastcoiler_TRLA_149:\r\n\t\t\t\t\tcase CardIds.Ghastcoiler_TB_BaconUps_057:\r\n\t\t\t\t\t\tconst ghastcoilerLoop = deadEntity.cardId === CardIds.Ghastcoiler_TB_BaconUps_057 ? 4 : 2;\r\n\t\t\t\t\t\tfor (let i = 0; i < ghastcoilerLoop; i++) {\r\n\t\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t\t...[\r\n\t\t\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\t\t\tgameState.cardsData.ghastcoilerSpawns[\r\n\t\t\t\t\t\t\t\t\t\t\tMath.floor(Math.random() * gameState.cardsData.ghastcoilerSpawns.length)\r\n\t\t\t\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.Voidlord_BG_LOOT_368:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.VoidwalkerLegacy_BG_CS2_065,\r\n\t\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.Voidlord_TB_BaconUps_059:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.Voidlord_VoidwalkerLegacyToken,\r\n\t\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.AnnoyOTroupe_BG26_ETC_321:\r\n\t\t\t\t\tcase CardIds.AnnoyOTroupe_BG26_ETC_321_G:\r\n\t\t\t\t\t\tconst annoyOTroupeSpawns =\r\n\t\t\t\t\t\t\tdeadEntity.cardId === CardIds.AnnoyOTroupe_BG26_ETC_321_G\r\n\t\t\t\t\t\t\t\t? CardIds.AnnoyOTron_BG_GVG_085_G\r\n\t\t\t\t\t\t\t\t: CardIds.AnnoyOTron_BG_GVG_085;\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tannoyOTroupeSpawns,\r\n\t\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.OmegaBuster_BG21_025:\r\n\t\t\t\t\tcase CardIds.OmegaBuster_BG21_025_G:\r\n\t\t\t\t\t\t// Here we have to truncate the spawned entities instead of letting the caller handle it,\r\n\t\t\t\t\t\t// because we need to know how many minions couldn't spawn so that we can apply the buff.\r\n\t\t\t\t\t\t// HOWEVER, this can cause an issue, if for instance a Scallywag token spawns, attacks right away,\r\n\t\t\t\t\t\t// and then Omega Buster spawns. In this case, it will not have yet processed the token's attack,\r\n\t\t\t\t\t\t// and will limit the spawns\r\n\t\t\t\t\t\tconst cardParam = 6;\r\n\t\t\t\t\t\tconst entitiesToSpawn = Math.max(\r\n\t\t\t\t\t\t\t0,\r\n\t\t\t\t\t\t\tMath.min(cardParam, 7 - boardWithDeadEntity.length - spawnedEntities.length),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tconst buffAmount =\r\n\t\t\t\t\t\t\t(deadEntityCardId === CardIds.OmegaBuster_BG21_025_G ? 2 : 1) *\r\n\t\t\t\t\t\t\t(cardParam - entitiesToSpawn);\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tdeadEntityCardId === CardIds.OmegaBuster_BG21_025_G\r\n\t\t\t\t\t\t\t\t\t? CardIds.ReplicatingMenace_MicrobotToken_TB_BaconUps_032t\r\n\t\t\t\t\t\t\t\t\t: CardIds.ReplicatingMenace_MicrobotToken_BG_BOT_312t,\r\n\t\t\t\t\t\t\t\tentitiesToSpawn,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\ttrue,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\taddStatsToBoard(\r\n\t\t\t\t\t\t\tdeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\tbuffAmount,\r\n\t\t\t\t\t\t\tbuffAmount,\r\n\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\tRace[Race.MECH],\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\t// when the buster triggers multiple times because of Baron for instance\r\n\t\t\t\t\t\taddStatsToBoard(\r\n\t\t\t\t\t\t\tdeadEntity,\r\n\t\t\t\t\t\t\tspawnedEntities,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\tbuffAmount,\r\n\t\t\t\t\t\t\tbuffAmount,\r\n\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\tRace[Race.MECH],\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.TheTideRazor_BGS_079:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...[\r\n\t\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\t\tgameState.cardsData.pirateSpawns[\r\n\t\t\t\t\t\t\t\t\t\tMath.floor(Math.random() * gameState.cardsData.pirateSpawns.length)\r\n\t\t\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\t\tgameState.cardsData.pirateSpawns[\r\n\t\t\t\t\t\t\t\t\t\tMath.floor(Math.random() * gameState.cardsData.pirateSpawns.length)\r\n\t\t\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\t\tgameState.cardsData.pirateSpawns[\r\n\t\t\t\t\t\t\t\t\t\tMath.floor(Math.random() * gameState.cardsData.pirateSpawns.length)\r\n\t\t\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.TheTideRazor_TB_BaconUps_137:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...[\r\n\t\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\t\tgameState.cardsData.pirateSpawns[\r\n\t\t\t\t\t\t\t\t\t\tMath.floor(Math.random() * gameState.cardsData.pirateSpawns.length)\r\n\t\t\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\t\tgameState.cardsData.pirateSpawns[\r\n\t\t\t\t\t\t\t\t\t\tMath.floor(Math.random() * gameState.cardsData.pirateSpawns.length)\r\n\t\t\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\t\tgameState.cardsData.pirateSpawns[\r\n\t\t\t\t\t\t\t\t\t\tMath.floor(Math.random() * gameState.cardsData.pirateSpawns.length)\r\n\t\t\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\t\tgameState.cardsData.pirateSpawns[\r\n\t\t\t\t\t\t\t\t\t\tMath.floor(Math.random() * gameState.cardsData.pirateSpawns.length)\r\n\t\t\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\t\tgameState.cardsData.pirateSpawns[\r\n\t\t\t\t\t\t\t\t\t\tMath.floor(Math.random() * gameState.cardsData.pirateSpawns.length)\r\n\t\t\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\t\tgameState.cardsData.pirateSpawns[\r\n\t\t\t\t\t\t\t\t\t\tMath.floor(Math.random() * gameState.cardsData.pirateSpawns.length)\r\n\t\t\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.OctosariWrapGod_BG26_804:\r\n\t\t\t\t\tcase CardIds.OctosariWrapGod_BG26_804_G:\r\n\t\t\t\t\t\t// For remembered deathrattles\r\n\t\t\t\t\t\tconst stats =\r\n\t\t\t\t\t\t\tdeadEntity.scriptDataNum1 ||\r\n\t\t\t\t\t\t\tgameState.sharedState.deaths.find(\r\n\t\t\t\t\t\t\t\t(e) => e.friendly === deadEntity.friendly && e.cardId === deadEntity.cardId,\r\n\t\t\t\t\t\t\t)?.scriptDataNum1 ||\r\n\t\t\t\t\t\t\t0;\r\n\t\t\t\t\t\tconst octosariSpawn =\r\n\t\t\t\t\t\t\tdeadEntity.cardId === CardIds.OctosariWrapGod_BG26_804_G\r\n\t\t\t\t\t\t\t\t? CardIds.TentacleOfOctosariToken_BG26_803_Gt\r\n\t\t\t\t\t\t\t\t: CardIds.TentacleOfOctosariToken_BG26_803t;\r\n\t\t\t\t\t\tconst octoSpawns = spawnEntities(\r\n\t\t\t\t\t\t\toctosariSpawn,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\toctoSpawns.forEach((b) => {\r\n\t\t\t\t\t\t\tb.attack = stats;\r\n\t\t\t\t\t\t\tb.health = stats;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tspawnedEntities.push(...octoSpawns);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.Bassgill_BG26_350:\r\n\t\t\t\t\tcase CardIds.Bassgill_BG26_350_G:\r\n\t\t\t\t\t\tconst bassgillIterations = deadEntity.cardId === CardIds.Bassgill_BG26_350_G ? 2 : 1;\r\n\t\t\t\t\t\tfor (let i = 0; i < bassgillIterations; i++) {\r\n\t\t\t\t\t\t\tconst hand =\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero.hand\r\n\t\t\t\t\t\t\t\t\t?.filter((e) =>\r\n\t\t\t\t\t\t\t\t\t\thasCorrectTribe(\r\n\t\t\t\t\t\t\t\t\t\t\te,\r\n\t\t\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\t\t\tRace.MURLOC,\r\n\t\t\t\t\t\t\t\t\t\t\tgameState.anomalies,\r\n\t\t\t\t\t\t\t\t\t\t\tgameState.allCards,\r\n\t\t\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t.filter((e) => !!e?.cardId)\r\n\t\t\t\t\t\t\t\t\t.filter((e) => !e.locked) ?? [];\r\n\t\t\t\t\t\t\tconst highestHealth = Math.max(...hand.filter((c) => c.health).map((c) => c.health));\r\n\t\t\t\t\t\t\tconst highestHealthMinions = highestHealth\r\n\t\t\t\t\t\t\t\t? hand.filter((c) => c.health === highestHealth)\r\n\t\t\t\t\t\t\t\t: null;\r\n\t\t\t\t\t\t\tconst spawn = !!highestHealthMinions?.length\r\n\t\t\t\t\t\t\t\t? pickRandom(highestHealthMinions)\r\n\t\t\t\t\t\t\t\t: hand.filter((c) => c.cardId).length\r\n\t\t\t\t\t\t\t\t? pickRandom(hand.filter((c) => c.cardId))\r\n\t\t\t\t\t\t\t\t: null;\r\n\t\t\t\t\t\t\tif (spawn) {\r\n\t\t\t\t\t\t\t\tspawn.locked = true;\r\n\t\t\t\t\t\t\t\t// Technically it should not be removed from hand, but rather flagged\r\n\t\t\t\t\t\t\t\t// Probably very low impact doing it like this\r\n\t\t\t\t\t\t\t\t// spawn.locked = true;\r\n\t\t\t\t\t\t\t\t// removeCardFromHand(boardWithDeadEntityHero, spawn);\r\n\t\t\t\t\t\t\t\tconst bassgillSpawns = spawnEntities(\r\n\t\t\t\t\t\t\t\t\tspawn.cardId,\r\n\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t\ttrue,\r\n\t\t\t\t\t\t\t\t\t{ ...spawn } as BoardEntity,\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\tfor (const s of bassgillSpawns) {\r\n\t\t\t\t\t\t\t\t\ts.onCanceledSummon = () => (spawn.locked = false);\r\n\t\t\t\t\t\t\t\t\t// s.backRef = spawn;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tspawnedEntities.push(...bassgillSpawns);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.CultistSthara_BG27_081:\r\n\t\t\t\t\tcase CardIds.CultistSthara_BG27_081_G:\r\n\t\t\t\t\t\tconst cultistStharaSpawnNumber = deadEntity.cardId === CardIds.CultistSthara_BG27_081_G ? 2 : 1;\r\n\t\t\t\t\t\tconst cultistStharaSpawnCandidates = gameState.sharedState.deaths\r\n\t\t\t\t\t\t\t.filter((entity) => entity.friendly === deadEntity.friendly)\r\n\t\t\t\t\t\t\t.filter((entity) =>\r\n\t\t\t\t\t\t\t\thasCorrectTribe(\r\n\t\t\t\t\t\t\t\t\tentity,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\tRace.DEMON,\r\n\t\t\t\t\t\t\t\t\tgameState.anomalies,\r\n\t\t\t\t\t\t\t\t\tgameState.allCards,\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t.slice(0, cultistStharaSpawnNumber);\r\n\t\t\t\t\t\tcultistStharaSpawnCandidates.forEach((candidate) => {\r\n\t\t\t\t\t\t\tconst spawns = spawnEntities(\r\n\t\t\t\t\t\t\t\tcandidate.cardId,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\ttrue,\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\tspawns.forEach((spawn) => {\r\n\t\t\t\t\t\t\t\tspawn.attack = candidate.maxAttack ?? candidate.attack;\r\n\t\t\t\t\t\t\t\tspawn.health = candidate.maxHealth ?? candidate.health;\r\n\t\t\t\t\t\t\t\tspawn.maxHealth = spawn.health;\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\tspawnedEntities.push(...spawns);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.Magnanimoose_BGDUO_105:\r\n\t\t\t\t\tcase CardIds.Magnanimoose_BGDUO_105_G:\r\n\t\t\t\t\t\tconst magnanimooseCopies = deadEntity.cardId === CardIds.Magnanimoose_BGDUO_105_G ? 2 : 1;\r\n\t\t\t\t\t\tfor (let i = 0; i < magnanimooseCopies; i++) {\r\n\t\t\t\t\t\t\tconst teammateState = getTeammateInitialState(gameState.gameState, boardWithDeadEntityHero);\r\n\t\t\t\t\t\t\tconst teammateBoard = teammateState?.board ?? [];\r\n\t\t\t\t\t\t\tconst copied: number[] = [];\r\n\t\t\t\t\t\t\tconst minionToCopy = pickRandom(teammateBoard.filter((e) => !copied.includes(e.entityId)));\r\n\t\t\t\t\t\t\tif (minionToCopy) {\r\n\t\t\t\t\t\t\t\tconst copy: BoardEntity = {\r\n\t\t\t\t\t\t\t\t\t...minionToCopy,\r\n\t\t\t\t\t\t\t\t\thealth: 1,\r\n\t\t\t\t\t\t\t\t\tmaxHealth: 1,\r\n\t\t\t\t\t\t\t\t\tenchantments: [...minionToCopy.enchantments],\r\n\t\t\t\t\t\t\t\t\tpendingAttackBuffs: [],\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\t\t\tcopy.cardId,\r\n\t\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t\t\ttrue,\r\n\t\t\t\t\t\t\t\t\t\tcopy,\r\n\t\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\tcopied.push(copy.entityId);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t// Putricide-only\r\n\t\t\t\t\tcase CardIds.FoulEgg_BG26_RLK_833:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.FoulEgg_FoulFowlToken,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\thasTriggered = false;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (hasTriggered) {\r\n\t\t\t\tonDeathrattleTriggered(deathrattleTriggeredInput);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn spawnedEntities;\r\n};\r\n\r\nexport const spawnEntitiesFromEnchantments = (\r\n\tdeadEntity: BoardEntity,\r\n\tboardWithDeadEntity: BoardEntity[],\r\n\tboardWithDeadEntityHero: BgsPlayerEntity,\r\n\totherBoard: BoardEntity[],\r\n\totherBoardHero: BgsPlayerEntity,\r\n\tgameState: FullGameState,\r\n): readonly BoardEntity[] => {\r\n\tconst multiplier = computeDeathrattleMultiplier(\r\n\t\tboardWithDeadEntity,\r\n\t\tboardWithDeadEntityHero,\r\n\t\tdeadEntity,\r\n\t\tgameState.sharedState,\r\n\t);\r\n\r\n\tconst deathrattleTriggeredInput: DeathrattleTriggeredInput = {\r\n\t\tboardWithDeadEntity,\r\n\t\tboardWithDeadEntityHero,\r\n\t\tdeadEntity,\r\n\t\totherBoard,\r\n\t\totherBoardHero,\r\n\t\tgameState,\r\n\t};\r\n\r\n\tconst spawnedEntities: BoardEntity[] = [];\r\n\tfor (const enchantment of deadEntity.enchantments || []) {\r\n\t\tconst deathrattleImpl = cardMappings[enchantment.cardId];\r\n\t\tif (hasDeathrattleSpawnEnchantment(deathrattleImpl)) {\r\n\t\t\tfor (let i = 0; i < multiplier; i++) {\r\n\t\t\t\tconst spawns = deathrattleImpl.deathrattleSpawnEnchantmentEffect(\r\n\t\t\t\t\tenchantment,\r\n\t\t\t\t\tdeathrattleTriggeredInput,\r\n\t\t\t\t);\r\n\t\t\t\tif (!!spawns?.length) {\r\n\t\t\t\t\tspawnedEntities.push(...spawns);\r\n\t\t\t\t}\r\n\t\t\t\tonDeathrattleTriggered(deathrattleTriggeredInput);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfor (let i = 0; i < multiplier; i++) {\r\n\t\t\tlet deathrattleTriggered = true;\r\n\t\t\tswitch (enchantment.cardId) {\r\n\t\t\t\tcase CardIds.RecurringNightmare_NightmareInsideEnchantment_BG26_055e:\r\n\t\t\t\tcase CardIds.RecurringNightmare_NightmareInsideEnchantment_BG26_055_Ge:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tenchantment.cardId === CardIds.RecurringNightmare_NightmareInsideEnchantment_BG26_055e\r\n\t\t\t\t\t\t\t\t? CardIds.RecurringNightmare_BG26_055\r\n\t\t\t\t\t\t\t\t: CardIds.RecurringNightmare_BG26_055_G,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t// Replicating Menace\r\n\t\t\t\tcase CardIds.ReplicatingMenace_ReplicatingMenaceEnchantment_BG_BOT_312e:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.ReplicatingMenace_MicrobotToken_BG_BOT_312t,\r\n\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.ReplicatingMenace_ReplicatingMenaceEnchantment_TB_BaconUps_032e:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.ReplicatingMenace_MicrobotToken_TB_BaconUps_032t,\r\n\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.LivingSpores_LivingSporesEnchantment:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.LivingSpores_PlantToken,\r\n\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.EarthInvocation_ElementEarthEnchantment:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.ElementEarth_StoneElementalToken,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.BoonOfBeetles_BeetleSwarmEnchantment_BG28_603e:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.BoonOfBeetles_BeetleToken_BG28_603t,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.TheUninvitedGuest_UninvitedEnchantment_BG29_875e:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.TheUninvitedGuest_ShadowToken_BG29_875t,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.TheUninvitedGuest_UninvitedEnchantment_BG29_875_Ge:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.TheUninvitedGuest_ShadowToken_BG29_875_Gt,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.SneedsReplicator_ReplicateEnchantment:\r\n\t\t\t\t\tconst tavernTier = deadEntity.tavernTier ?? gameState.cardsData.getTavernLevel(deadEntity.cardId);\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tgameState.cardsData.getRandomMinionForTavernTier(Math.max(1, tavernTier - 1)),\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.SurfNSurf_CrabRidingEnchantment_BG27_004e:\r\n\t\t\t\tcase CardIds.SurfNSurf_CrabRidingEnchantment_BG27_004_Ge:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tenchantment.cardId === CardIds.SurfNSurf_CrabRidingEnchantment_BG27_004_Ge\r\n\t\t\t\t\t\t\t\t? CardIds.SurfNSurf_CrabToken_BG27_004_Gt2\r\n\t\t\t\t\t\t\t\t: CardIds.SurfNSurf_CrabToken_BG27_004t2,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.JarredFrostling_FrostyGlobeEnchantment_BG30_MagicItem_952e:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.FlourishingFrostling_BG26_537,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tdeathrattleTriggered = false;\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tif (deathrattleTriggered) {\r\n\t\t\t\tonDeathrattleTriggered({\r\n\t\t\t\t\tboardWithDeadEntity: boardWithDeadEntity,\r\n\t\t\t\t\tboardWithDeadEntityHero: boardWithDeadEntityHero,\r\n\t\t\t\t\tdeadEntity: deadEntity,\r\n\t\t\t\t\totherBoard: otherBoard,\r\n\t\t\t\t\totherBoardHero: otherBoardHero,\r\n\t\t\t\t\tgameState: gameState,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn spawnedEntities;\r\n};\r\n"]}
1
+ {"version":3,"file":"deathrattle-spawns.js","sourceRoot":"","sources":["../../src/simulation/deathrattle-spawns.ts"],"names":[],"mappings":"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","sourcesContent":["import { CardIds, Race } from '@firestone-hs/reference-data';\r\nimport { BgsPlayerEntity } from '../bgs-player-entity';\r\nimport { BoardEntity } from '../board-entity';\r\nimport { hasDeathrattleSpawn, hasDeathrattleSpawnEnchantment } from '../cards/card.interface';\r\nimport { cardMappings } from '../cards/impl/_card-mappings';\r\nimport { pickRandom } from '../services/utils';\r\nimport {\r\n\taddStatsToBoard,\r\n\tbuildRandomUndeadCreation,\r\n\tbuildSingleBoardEntity,\r\n\tgetTeammateInitialState,\r\n\thasCorrectTribe,\r\n\tstringifySimple,\r\n} from '../utils';\r\nimport { addCardsInHand } from './cards-in-hand';\r\nimport { computeDeathrattleMultiplier } from './deathrattle-effects';\r\nimport { DeathrattleTriggeredInput, onDeathrattleTriggered } from './deathrattle-on-trigger';\r\nimport { FullGameState } from './internal-game-state';\r\nimport { performEntitySpawns } from './spawns';\r\n\r\nexport const simplifiedSpawnEntities = (\r\n\tcardId: string,\r\n\tquantity: number,\r\n\tinput: DeathrattleTriggeredInput,\r\n\tboardEntityToSpawn: BoardEntity = null,\r\n): readonly BoardEntity[] => {\r\n\treturn spawnEntities(\r\n\t\tcardId,\r\n\t\tquantity,\r\n\t\tinput.boardWithDeadEntity,\r\n\t\tinput.boardWithDeadEntityHero,\r\n\t\tinput.otherBoard,\r\n\t\tinput.otherBoardHero,\r\n\t\tinput.gameState,\r\n\t\tinput.deadEntity.friendly,\r\n\t\tfalse,\r\n\t\tfalse,\r\n\t\tfalse,\r\n\t\tboardEntityToSpawn,\r\n\t);\r\n};\r\n\r\nexport const simplifiedSpawnEntitiesWithAddToBoard = (\r\n\tcardId: string,\r\n\tquantity: number,\r\n\tinput: DeathrattleTriggeredInput,\r\n\tsource: BoardEntity,\r\n\tindexFromRight: number,\r\n\tboardEntityToSpawn: BoardEntity = null,\r\n): void => {\r\n\tconst spawns = spawnEntities(\r\n\t\tcardId,\r\n\t\tquantity,\r\n\t\tinput.boardWithDeadEntity,\r\n\t\tinput.boardWithDeadEntityHero,\r\n\t\tinput.otherBoard,\r\n\t\tinput.otherBoardHero,\r\n\t\tinput.gameState,\r\n\t\tinput.deadEntity.friendly,\r\n\t\tfalse,\r\n\t\tfalse,\r\n\t\tfalse,\r\n\t\tboardEntityToSpawn,\r\n\t);\r\n\tperformEntitySpawns(\r\n\t\tspawns,\r\n\t\tinput.boardWithDeadEntity,\r\n\t\tinput.boardWithDeadEntityHero,\r\n\t\tsource,\r\n\t\tindexFromRight,\r\n\t\tinput.otherBoard,\r\n\t\tinput.otherBoardHero,\r\n\t\tinput.gameState,\r\n\t);\r\n};\r\n\r\nexport const spawnEntities = (\r\n\tcardId: string,\r\n\tquantity: number,\r\n\tboardToSpawnInto: BoardEntity[],\r\n\tboardToSpawnIntoHero: BgsPlayerEntity,\r\n\totherBoard: BoardEntity[],\r\n\totherHero: BgsPlayerEntity,\r\n\tgameState: FullGameState,\r\n\tfriendly: boolean,\r\n\t// In most cases the business of knowing the number of minions to handle is left to the caller\r\n\t// Bascially, use limitSpawns = true only if the source does not trigger if there is not enough room,\r\n\t// e.g. Toxic Tumbleweed. Otherwise, it will prevent the \"spawn failed\" event.\r\n\tlimitSpawns: boolean,\r\n\tspawnReborn = false,\r\n\tuseKhadgar = true,\r\n\tboardEntityToSpawn: BoardEntity = null,\r\n\toriginalEntity: BoardEntity = null,\r\n): readonly BoardEntity[] => {\r\n\tif (!cardId) {\r\n\t\tconsole.error(\r\n\t\t\t'Cannot spawn a minion without any cardId defined',\r\n\t\t\tstringifySimple(boardToSpawnInto, gameState.allCards),\r\n\t\t\tnew Error().stack,\r\n\t\t);\r\n\t}\r\n\tif (gameState.anomalies?.includes(CardIds.TheGoldenArena_BG27_Anomaly_801)) {\r\n\t\tif (!gameState.allCards.getCard(cardId).premium) {\r\n\t\t\tconst premiumDbfId = gameState.allCards.getCard(cardId).battlegroundsPremiumDbfId;\r\n\t\t\tcardId = gameState.allCards.getCard(premiumDbfId).id;\r\n\t\t}\r\n\t}\r\n\tconst spawnMultiplier = useKhadgar\r\n\t\t? 2 * boardToSpawnInto.filter((entity) => entity.cardId === CardIds.Khadgar_BG_DAL_575).length || 1\r\n\t\t: 1;\r\n\tconst spawnMultiplierGolden = useKhadgar\r\n\t\t? 3 * boardToSpawnInto.filter((entity) => entity.cardId === CardIds.Khadgar_TB_BaconUps_034).length || 1\r\n\t\t: 1;\r\n\tconst minionsToSpawn = limitSpawns\r\n\t\t? Math.min(quantity * spawnMultiplier * spawnMultiplierGolden, 7 - boardToSpawnInto.length)\r\n\t\t: quantity * spawnMultiplier * spawnMultiplierGolden;\r\n\tconst result: BoardEntity[] = [];\r\n\tfor (let i = 0; i < minionsToSpawn; i++) {\r\n\t\tconst newMinion = buildSingleBoardEntity(\r\n\t\t\tcardId,\r\n\t\t\tboardToSpawnIntoHero,\r\n\t\t\tboardToSpawnInto,\r\n\t\t\tgameState.allCards,\r\n\t\t\tfriendly,\r\n\t\t\tgameState.sharedState.currentEntityId++,\r\n\t\t\tspawnReborn,\r\n\t\t\tgameState.cardsData,\r\n\t\t\tgameState.sharedState,\r\n\t\t\tboardEntityToSpawn,\r\n\t\t\toriginalEntity,\r\n\t\t);\r\n\t\tif (!newMinion.cardId) {\r\n\t\t\tconsole.warn('Invalid spawn', newMinion, cardId);\r\n\t\t}\r\n\t\tresult.push(newMinion);\r\n\t}\r\n\r\n\treturn result;\r\n};\r\n\r\nexport const spawnEntitiesFromDeathrattle = (\r\n\tdeadEntity: BoardEntity,\r\n\tboardWithDeadEntity: BoardEntity[],\r\n\tboardWithDeadEntityHero: BgsPlayerEntity,\r\n\totherBoard: BoardEntity[],\r\n\totherBoardHero: BgsPlayerEntity,\r\n\tentitiesDeadThisAttack: readonly BoardEntity[],\r\n\tgameState: FullGameState,\r\n): readonly BoardEntity[] => {\r\n\t// Because if the baron dies because of a cleave, it still applies its effect to the other entities that died this turn\r\n\t// TOOD: I need a replay for this\r\n\t// If the Titus dies, its effect doesn't apply to the other deathrattle effects that die at the same time\r\n\t// e.g. Tunnel Blaster + Omega Buster + Titus, if the titus dies, then the omega buster DR isn't applied multiple\r\n\t// times\r\n\t// http://replays.firestoneapp.com/?reviewId=fb739cc8-bf3b-4003-ab99-031ee1aa0ea1&turn=25&action=1\r\n\tconst multiplier = computeDeathrattleMultiplier(\r\n\t\t// [...boardWithDeadEntity, ...entitiesDeadThisAttack],\r\n\t\t[...boardWithDeadEntity],\r\n\t\tboardWithDeadEntityHero,\r\n\t\tdeadEntity,\r\n\t\tgameState.sharedState,\r\n\t);\r\n\r\n\tconst deathrattleTriggeredInput: DeathrattleTriggeredInput = {\r\n\t\tboardWithDeadEntity,\r\n\t\tboardWithDeadEntityHero,\r\n\t\tdeadEntity,\r\n\t\totherBoard,\r\n\t\totherBoardHero,\r\n\t\tgameState,\r\n\t};\r\n\r\n\tconst spawnedEntities: BoardEntity[] = [];\r\n\t// const otherBoardSpawnedEntities: BoardEntity[] = [];\r\n\tfor (let i = 0; i < multiplier; i++) {\r\n\t\tconst cardIds = [deadEntity.cardId, ...(deadEntity.additionalCards ?? [])];\r\n\t\t// console.debug(\r\n\t\t// \t'spawn triggers',\r\n\t\t// \tgameState.allCards.getCard(deadEntity.cardId).name,\r\n\t\t// \tcardIds.map((c) => gameState.allCards.getCard(c).name),\r\n\t\t// \tcardIds,\r\n\t\t// );\r\n\t\tfor (const deadEntityCardId of cardIds) {\r\n\t\t\tlet hasTriggered = true;\r\n\t\t\tconst spawnEntityImpl = cardMappings[deadEntityCardId];\r\n\t\t\tif (hasDeathrattleSpawn(spawnEntityImpl)) {\r\n\t\t\t\tconst spawned = spawnEntityImpl.deathrattleSpawn(deadEntity, deathrattleTriggeredInput);\r\n\t\t\t\tif (spawned?.length) {\r\n\t\t\t\t\tspawnedEntities.push(...spawned);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tswitch (deadEntityCardId) {\r\n\t\t\t\t\tcase CardIds.Mecharoo_BOT_445:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.Mecharoo_JoEBotToken_BOT_445t,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.Mecharoo_TB_BaconUps_002:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.Mecharoo_JoEBotToken_TB_BaconUps_002t,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.CordPuller_BG29_611:\r\n\t\t\t\t\tcase CardIds.CordPuller_BG29_611_G:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tdeadEntity.cardId === CardIds.CordPuller_BG29_611\r\n\t\t\t\t\t\t\t\t\t? CardIds.ReplicatingMenace_MicrobotToken_BG_BOT_312t\r\n\t\t\t\t\t\t\t\t\t: CardIds.ReplicatingMenace_MicrobotToken_TB_BaconUps_032t,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.PiggybackImp_BG_AV_309:\r\n\t\t\t\t\tcase CardIds.PiggybackImp_BG_AV_309_G:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tdeadEntityCardId === CardIds.PiggybackImp_BG_AV_309_G\r\n\t\t\t\t\t\t\t\t\t? CardIds.PiggybackImp_BackpiggyImpToken_BG_AV_309t\r\n\t\t\t\t\t\t\t\t\t: CardIds.PiggybackImp_BackpiggyImpToken_AV_309t,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.EternalSummoner_BG25_009:\r\n\t\t\t\t\tcase CardIds.EternalSummoner_BG25_009_G:\r\n\t\t\t\t\t\t// TODO\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tdeadEntityCardId === CardIds.EternalSummoner_BG25_009_G\r\n\t\t\t\t\t\t\t\t\t? CardIds.EternalKnight_BG25_008_G\r\n\t\t\t\t\t\t\t\t\t: CardIds.EternalKnight_BG25_008,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.IckyImp_BG21_029:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.ImpGangBoss_ImpToken_BRM_006t,\r\n\t\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.IckyImp_BG21_029_G:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.ImpGangBoss_ImpToken_TB_BaconUps_030t,\r\n\t\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.HarvestGolemLegacy_BG_EX1_556:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.DamagedGolemLegacy,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.HarvestGolemLegacy_TB_BaconUps_006:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.HarvestGolem_DamagedGolemLegacyToken_TB_BaconUps_006t,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.SewerRat_BG19_010:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.SewerRat_HalfShellToken_BG19_010t,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.SewerRat_BG19_010_G:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.SewerRat_HalfShellToken_BG19_010_Gt,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.MawswornSoulkeeper_TB_BaconShop_HERO_702_Buddy:\r\n\t\t\t\t\tcase CardIds.MawswornSoulkeeper_TB_BaconShop_HERO_702_Buddy_G:\r\n\t\t\t\t\t\tconst minionsToSpawnMawsworn =\r\n\t\t\t\t\t\t\tdeadEntityCardId === CardIds.MawswornSoulkeeper_TB_BaconShop_HERO_702_Buddy_G ? 6 : 3;\r\n\t\t\t\t\t\tfor (let i = 0; i < minionsToSpawnMawsworn; i++) {\r\n\t\t\t\t\t\t\tconst minionCardId = gameState.cardsData.getRandomMinionForTavernTier(1);\r\n\t\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\t\tminionCardId,\r\n\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.Festergut_BG25_HERO_100_Buddy:\r\n\t\t\t\t\tcase CardIds.Festergut_BG25_HERO_100_Buddy_G:\r\n\t\t\t\t\t\tconst minionsToSpawnFestergut =\r\n\t\t\t\t\t\t\tdeadEntityCardId === CardIds.Festergut_BG25_HERO_100_Buddy_G ? 2 : 1;\r\n\t\t\t\t\t\tfor (let i = 0; i < minionsToSpawnFestergut; i++) {\r\n\t\t\t\t\t\t\tconst randomUndeadCreation = buildRandomUndeadCreation(\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tgameState.allCards,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tgameState.cardsData,\r\n\t\t\t\t\t\t\t\tgameState.sharedState,\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\t\trandomUndeadCreation.cardId,\r\n\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t\ttrue,\r\n\t\t\t\t\t\t\t\t\trandomUndeadCreation,\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.KindlyGrandmother_BG_KAR_005:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.KindlyGrandmother_BigBadWolf_BG_KAR_005a,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.KindlyGrandmother_TB_BaconUps_004:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.KindlyGrandmother_BigBadWolfToken,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.RatPack_BG_CFM_316:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.RatPack_RatToken_BG_CFM_316t,\r\n\t\t\t\t\t\t\t\tMath.min(7, deadEntity.attack),\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.RatPack_TB_BaconUps_027:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.RatPack_RatToken_TB_BaconUps_027t,\r\n\t\t\t\t\t\t\t\tMath.min(7, deadEntity.attack),\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.Imprisoner_BGS_014:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.ImpGangBoss_ImpToken_BRM_006t,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.Imprisoner_TB_BaconUps_113:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.ImpGangBoss_ImpToken_TB_BaconUps_030t,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.InfestedWolf_OG_216:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.InfestedWolf_Spider,\r\n\t\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.InfestedWolf_TB_BaconUps_026:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.InfestedWolf_SpiderToken,\r\n\t\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.ReplicatingMenace_BG_BOT_312:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.ReplicatingMenace_MicrobotToken_BG_BOT_312t,\r\n\t\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.ReplicatingMenace_TB_BaconUps_032:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.ReplicatingMenace_MicrobotToken_TB_BaconUps_032t,\r\n\t\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.MechanoEgg_BOT_537:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.MechanoEgg_RobosaurToken_BOT_537t,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.MechanoEgg_TB_BaconUps_039:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.MechanoEgg_RobosaurToken_TB_BaconUps_039t,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.SavannahHighmaneLegacy_BG_EX1_534:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.SavannahHighmane_HyenaLegacyToken_BG_EX1_534t,\r\n\t\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.SavannahHighmaneLegacy_TB_BaconUps_049:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.SavannahHighmane_HyenaLegacyToken_TB_BaconUps_049t,\r\n\t\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.RingMatron_BG_DMF_533:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.RingMatron_FieryImpToken_BG_DMF_533t,\r\n\t\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.RingMatron_TB_BaconUps_309:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.RingMatron_FieryImpToken_TB_BaconUps_309t,\r\n\t\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.SatedThreshadon_UNG_010:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.PrimalfinTotem_PrimalfinToken,\r\n\t\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.SatedThreshadon_TB_BaconUps_052:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.SatedThreshadon_PrimalfinToken,\r\n\t\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.Ghastcoiler_BGS_008:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...[\r\n\t\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\t\tgameState.cardsData.ghastcoilerSpawns[\r\n\t\t\t\t\t\t\t\t\t\tMath.floor(Math.random() * gameState.cardsData.ghastcoilerSpawns.length)\r\n\t\t\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\t\tgameState.cardsData.ghastcoilerSpawns[\r\n\t\t\t\t\t\t\t\t\t\tMath.floor(Math.random() * gameState.cardsData.ghastcoilerSpawns.length)\r\n\t\t\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase CardIds.Kilrek_TB_BaconShop_HERO_37_Buddy:\r\n\t\t\t\t\tcase CardIds.Kilrek_TB_BaconShop_HERO_37_Buddy_G:\r\n\t\t\t\t\t\tconst kilrekCardsToAddQuantity =\r\n\t\t\t\t\t\t\tdeadEntity.cardId === CardIds.Kilrek_TB_BaconShop_HERO_37_Buddy_G ? 2 : 1;\r\n\t\t\t\t\t\tconst kilrekCardsToAdd = [];\r\n\t\t\t\t\t\tfor (let i = 0; i < kilrekCardsToAddQuantity; i++) {\r\n\t\t\t\t\t\t\tkilrekCardsToAdd.push(pickRandom(gameState.cardsData.demonSpawns));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\taddCardsInHand(boardWithDeadEntityHero, boardWithDeadEntity, kilrekCardsToAdd, gameState);\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase CardIds.BrannsEpicEgg_TB_BaconShop_HERO_43_Buddy:\r\n\t\t\t\t\tcase CardIds.BrannsEpicEgg_TB_BaconShop_HERO_43_Buddy_G:\r\n\t\t\t\t\t\tconst brannSpawns = [];\r\n\t\t\t\t\t\tconst brannToSpawnQuandtity =\r\n\t\t\t\t\t\t\tdeadEntity.cardId === CardIds.BrannsEpicEgg_TB_BaconShop_HERO_43_Buddy_G ? 2 : 1;\r\n\t\t\t\t\t\tfor (let i = 0; i < brannToSpawnQuandtity; i++) {\r\n\t\t\t\t\t\t\tbrannSpawns.push(pickRandom(gameState.cardsData.battlecryMinions));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tfor (const brannSpawn of brannSpawns) {\r\n\t\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\t\tbrannSpawn,\r\n\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\taddCardsInHand(boardWithDeadEntityHero, boardWithDeadEntity, brannSpawns, gameState);\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase CardIds.Ghastcoiler_TRLA_149:\r\n\t\t\t\t\tcase CardIds.Ghastcoiler_TB_BaconUps_057:\r\n\t\t\t\t\t\tconst ghastcoilerLoop = deadEntity.cardId === CardIds.Ghastcoiler_TB_BaconUps_057 ? 4 : 2;\r\n\t\t\t\t\t\tfor (let i = 0; i < ghastcoilerLoop; i++) {\r\n\t\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t\t...[\r\n\t\t\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\t\t\tgameState.cardsData.ghastcoilerSpawns[\r\n\t\t\t\t\t\t\t\t\t\t\tMath.floor(Math.random() * gameState.cardsData.ghastcoilerSpawns.length)\r\n\t\t\t\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.Voidlord_BG_LOOT_368:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.VoidwalkerLegacy_BG_CS2_065,\r\n\t\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.Voidlord_TB_BaconUps_059:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.Voidlord_VoidwalkerLegacyToken,\r\n\t\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.AnnoyOTroupe_BG26_ETC_321:\r\n\t\t\t\t\tcase CardIds.AnnoyOTroupe_BG26_ETC_321_G:\r\n\t\t\t\t\t\tconst annoyOTroupeSpawns =\r\n\t\t\t\t\t\t\tdeadEntity.cardId === CardIds.AnnoyOTroupe_BG26_ETC_321_G\r\n\t\t\t\t\t\t\t\t? CardIds.AnnoyOTron_BG_GVG_085_G\r\n\t\t\t\t\t\t\t\t: CardIds.AnnoyOTron_BG_GVG_085;\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tannoyOTroupeSpawns,\r\n\t\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.OmegaBuster_BG21_025:\r\n\t\t\t\t\tcase CardIds.OmegaBuster_BG21_025_G:\r\n\t\t\t\t\t\t// Here we have to truncate the spawned entities instead of letting the caller handle it,\r\n\t\t\t\t\t\t// because we need to know how many minions couldn't spawn so that we can apply the buff.\r\n\t\t\t\t\t\t// HOWEVER, this can cause an issue, if for instance a Scallywag token spawns, attacks right away,\r\n\t\t\t\t\t\t// and then Omega Buster spawns. In this case, it will not have yet processed the token's attack,\r\n\t\t\t\t\t\t// and will limit the spawns\r\n\t\t\t\t\t\tconst cardParam = 6;\r\n\t\t\t\t\t\tconst entitiesToSpawn = Math.max(\r\n\t\t\t\t\t\t\t0,\r\n\t\t\t\t\t\t\tMath.min(cardParam, 7 - boardWithDeadEntity.length - spawnedEntities.length),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tconst buffAmount =\r\n\t\t\t\t\t\t\t(deadEntityCardId === CardIds.OmegaBuster_BG21_025_G ? 2 : 1) *\r\n\t\t\t\t\t\t\t(cardParam - entitiesToSpawn);\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tdeadEntityCardId === CardIds.OmegaBuster_BG21_025_G\r\n\t\t\t\t\t\t\t\t\t? CardIds.ReplicatingMenace_MicrobotToken_TB_BaconUps_032t\r\n\t\t\t\t\t\t\t\t\t: CardIds.ReplicatingMenace_MicrobotToken_BG_BOT_312t,\r\n\t\t\t\t\t\t\t\tentitiesToSpawn,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\ttrue,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\taddStatsToBoard(\r\n\t\t\t\t\t\t\tdeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\tbuffAmount,\r\n\t\t\t\t\t\t\tbuffAmount,\r\n\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\tRace[Race.MECH],\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\t// when the buster triggers multiple times because of Baron for instance\r\n\t\t\t\t\t\taddStatsToBoard(\r\n\t\t\t\t\t\t\tdeadEntity,\r\n\t\t\t\t\t\t\tspawnedEntities,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\tbuffAmount,\r\n\t\t\t\t\t\t\tbuffAmount,\r\n\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\tRace[Race.MECH],\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.TheTideRazor_BGS_079:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...[\r\n\t\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\t\tgameState.cardsData.pirateSpawns[\r\n\t\t\t\t\t\t\t\t\t\tMath.floor(Math.random() * gameState.cardsData.pirateSpawns.length)\r\n\t\t\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\t\tgameState.cardsData.pirateSpawns[\r\n\t\t\t\t\t\t\t\t\t\tMath.floor(Math.random() * gameState.cardsData.pirateSpawns.length)\r\n\t\t\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\t\tgameState.cardsData.pirateSpawns[\r\n\t\t\t\t\t\t\t\t\t\tMath.floor(Math.random() * gameState.cardsData.pirateSpawns.length)\r\n\t\t\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.TheTideRazor_TB_BaconUps_137:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...[\r\n\t\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\t\tgameState.cardsData.pirateSpawns[\r\n\t\t\t\t\t\t\t\t\t\tMath.floor(Math.random() * gameState.cardsData.pirateSpawns.length)\r\n\t\t\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\t\tgameState.cardsData.pirateSpawns[\r\n\t\t\t\t\t\t\t\t\t\tMath.floor(Math.random() * gameState.cardsData.pirateSpawns.length)\r\n\t\t\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\t\tgameState.cardsData.pirateSpawns[\r\n\t\t\t\t\t\t\t\t\t\tMath.floor(Math.random() * gameState.cardsData.pirateSpawns.length)\r\n\t\t\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\t\tgameState.cardsData.pirateSpawns[\r\n\t\t\t\t\t\t\t\t\t\tMath.floor(Math.random() * gameState.cardsData.pirateSpawns.length)\r\n\t\t\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\t\tgameState.cardsData.pirateSpawns[\r\n\t\t\t\t\t\t\t\t\t\tMath.floor(Math.random() * gameState.cardsData.pirateSpawns.length)\r\n\t\t\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\t\tgameState.cardsData.pirateSpawns[\r\n\t\t\t\t\t\t\t\t\t\tMath.floor(Math.random() * gameState.cardsData.pirateSpawns.length)\r\n\t\t\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.OctosariWrapGod_BG26_804:\r\n\t\t\t\t\tcase CardIds.OctosariWrapGod_BG26_804_G:\r\n\t\t\t\t\t\t// For remembered deathrattles\r\n\t\t\t\t\t\tconst stats =\r\n\t\t\t\t\t\t\tdeadEntity.scriptDataNum1 ||\r\n\t\t\t\t\t\t\tgameState.sharedState.deaths.find(\r\n\t\t\t\t\t\t\t\t(e) => e.friendly === deadEntity.friendly && e.cardId === deadEntity.cardId,\r\n\t\t\t\t\t\t\t)?.scriptDataNum1 ||\r\n\t\t\t\t\t\t\t0;\r\n\t\t\t\t\t\tconst octosariSpawn =\r\n\t\t\t\t\t\t\tdeadEntity.cardId === CardIds.OctosariWrapGod_BG26_804_G\r\n\t\t\t\t\t\t\t\t? CardIds.TentacleOfOctosariToken_BG26_803_Gt\r\n\t\t\t\t\t\t\t\t: CardIds.TentacleOfOctosariToken_BG26_803t;\r\n\t\t\t\t\t\tconst octoSpawns = spawnEntities(\r\n\t\t\t\t\t\t\toctosariSpawn,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\toctoSpawns.forEach((b) => {\r\n\t\t\t\t\t\t\tb.attack = stats;\r\n\t\t\t\t\t\t\tb.health = stats;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tspawnedEntities.push(...octoSpawns);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.Bassgill_BG26_350:\r\n\t\t\t\t\tcase CardIds.Bassgill_BG26_350_G:\r\n\t\t\t\t\t\tconst bassgillIterations = deadEntity.cardId === CardIds.Bassgill_BG26_350_G ? 2 : 1;\r\n\t\t\t\t\t\tfor (let i = 0; i < bassgillIterations; i++) {\r\n\t\t\t\t\t\t\tconst hand =\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero.hand\r\n\t\t\t\t\t\t\t\t\t?.filter((e) =>\r\n\t\t\t\t\t\t\t\t\t\thasCorrectTribe(\r\n\t\t\t\t\t\t\t\t\t\t\te,\r\n\t\t\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\t\t\tRace.MURLOC,\r\n\t\t\t\t\t\t\t\t\t\t\tgameState.anomalies,\r\n\t\t\t\t\t\t\t\t\t\t\tgameState.allCards,\r\n\t\t\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t.filter((e) => !!e?.cardId)\r\n\t\t\t\t\t\t\t\t\t.filter((e) => !e.locked) ?? [];\r\n\t\t\t\t\t\t\tconst highestHealth = Math.max(...hand.filter((c) => c.health).map((c) => c.health));\r\n\t\t\t\t\t\t\tconst highestHealthMinions = highestHealth\r\n\t\t\t\t\t\t\t\t? hand.filter((c) => c.health === highestHealth)\r\n\t\t\t\t\t\t\t\t: null;\r\n\t\t\t\t\t\t\tconst spawn = !!highestHealthMinions?.length\r\n\t\t\t\t\t\t\t\t? pickRandom(highestHealthMinions)\r\n\t\t\t\t\t\t\t\t: hand.filter((c) => c.cardId).length\r\n\t\t\t\t\t\t\t\t? pickRandom(hand.filter((c) => c.cardId))\r\n\t\t\t\t\t\t\t\t: null;\r\n\t\t\t\t\t\t\tif (spawn) {\r\n\t\t\t\t\t\t\t\tspawn.locked = true;\r\n\t\t\t\t\t\t\t\t// Technically it should not be removed from hand, but rather flagged\r\n\t\t\t\t\t\t\t\t// Probably very low impact doing it like this\r\n\t\t\t\t\t\t\t\t// spawn.locked = true;\r\n\t\t\t\t\t\t\t\t// removeCardFromHand(boardWithDeadEntityHero, spawn);\r\n\t\t\t\t\t\t\t\tconst bassgillSpawns = spawnEntities(\r\n\t\t\t\t\t\t\t\t\tspawn.cardId,\r\n\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t\ttrue,\r\n\t\t\t\t\t\t\t\t\t{ ...spawn } as BoardEntity,\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\tfor (const s of bassgillSpawns) {\r\n\t\t\t\t\t\t\t\t\ts.onCanceledSummon = () => (spawn.locked = false);\r\n\t\t\t\t\t\t\t\t\t// s.backRef = spawn;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tspawnedEntities.push(...bassgillSpawns);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.CultistSthara_BG27_081:\r\n\t\t\t\t\tcase CardIds.CultistSthara_BG27_081_G:\r\n\t\t\t\t\t\tconst cultistStharaSpawnNumber = deadEntity.cardId === CardIds.CultistSthara_BG27_081_G ? 2 : 1;\r\n\t\t\t\t\t\tconst cultistStharaSpawnCandidates = gameState.sharedState.deaths\r\n\t\t\t\t\t\t\t.filter((entity) => entity.friendly === deadEntity.friendly)\r\n\t\t\t\t\t\t\t.filter((entity) =>\r\n\t\t\t\t\t\t\t\thasCorrectTribe(\r\n\t\t\t\t\t\t\t\t\tentity,\r\n\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\tRace.DEMON,\r\n\t\t\t\t\t\t\t\t\tgameState.anomalies,\r\n\t\t\t\t\t\t\t\t\tgameState.allCards,\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t.slice(0, cultistStharaSpawnNumber);\r\n\t\t\t\t\t\tcultistStharaSpawnCandidates.forEach((candidate) => {\r\n\t\t\t\t\t\t\tconst spawns = spawnEntities(\r\n\t\t\t\t\t\t\t\tcandidate.cardId,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\ttrue,\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\tspawns.forEach((spawn) => {\r\n\t\t\t\t\t\t\t\tspawn.attack = candidate.maxAttack ?? candidate.attack;\r\n\t\t\t\t\t\t\t\tspawn.health = candidate.maxHealth ?? candidate.health;\r\n\t\t\t\t\t\t\t\tspawn.maxHealth = spawn.health;\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\tspawnedEntities.push(...spawns);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase CardIds.Magnanimoose_BGDUO_105:\r\n\t\t\t\t\tcase CardIds.Magnanimoose_BGDUO_105_G:\r\n\t\t\t\t\t\tconst magnanimooseCopies = deadEntity.cardId === CardIds.Magnanimoose_BGDUO_105_G ? 2 : 1;\r\n\t\t\t\t\t\tfor (let i = 0; i < magnanimooseCopies; i++) {\r\n\t\t\t\t\t\t\tconst teammateState = getTeammateInitialState(gameState.gameState, boardWithDeadEntityHero);\r\n\t\t\t\t\t\t\tconst teammateBoard = teammateState?.board ?? [];\r\n\t\t\t\t\t\t\tconst copied: number[] = [];\r\n\t\t\t\t\t\t\tconst minionToCopy = pickRandom(teammateBoard.filter((e) => !copied.includes(e.entityId)));\r\n\t\t\t\t\t\t\tif (minionToCopy) {\r\n\t\t\t\t\t\t\t\tconst copy: BoardEntity = {\r\n\t\t\t\t\t\t\t\t\t...minionToCopy,\r\n\t\t\t\t\t\t\t\t\thealth: 1,\r\n\t\t\t\t\t\t\t\t\tmaxHealth: 1,\r\n\t\t\t\t\t\t\t\t\tenchantments: [...minionToCopy.enchantments],\r\n\t\t\t\t\t\t\t\t\tpendingAttackBuffs: [],\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\t\t\tcopy.cardId,\r\n\t\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\t\t\ttrue,\r\n\t\t\t\t\t\t\t\t\t\tcopy,\r\n\t\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\tcopied.push(copy.entityId);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t// Putricide-only\r\n\t\t\t\t\tcase CardIds.FoulEgg_BG26_RLK_833:\r\n\t\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\t\tCardIds.FoulEgg_FoulFowlToken,\r\n\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\thasTriggered = false;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (hasTriggered) {\r\n\t\t\t\tonDeathrattleTriggered(deathrattleTriggeredInput);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn spawnedEntities;\r\n};\r\n\r\nexport const spawnEntitiesFromEnchantments = (\r\n\tdeadEntity: BoardEntity,\r\n\tboardWithDeadEntity: BoardEntity[],\r\n\tboardWithDeadEntityHero: BgsPlayerEntity,\r\n\totherBoard: BoardEntity[],\r\n\totherBoardHero: BgsPlayerEntity,\r\n\tgameState: FullGameState,\r\n): readonly BoardEntity[] => {\r\n\tconst multiplier = computeDeathrattleMultiplier(\r\n\t\tboardWithDeadEntity,\r\n\t\tboardWithDeadEntityHero,\r\n\t\tdeadEntity,\r\n\t\tgameState.sharedState,\r\n\t);\r\n\r\n\tconst deathrattleTriggeredInput: DeathrattleTriggeredInput = {\r\n\t\tboardWithDeadEntity,\r\n\t\tboardWithDeadEntityHero,\r\n\t\tdeadEntity,\r\n\t\totherBoard,\r\n\t\totherBoardHero,\r\n\t\tgameState,\r\n\t};\r\n\r\n\tconst spawnedEntities: BoardEntity[] = [];\r\n\tfor (const enchantment of deadEntity.enchantments || []) {\r\n\t\tconst deathrattleImpl = cardMappings[enchantment.cardId];\r\n\t\tif (hasDeathrattleSpawnEnchantment(deathrattleImpl)) {\r\n\t\t\tfor (let i = 0; i < multiplier; i++) {\r\n\t\t\t\tconst spawns = deathrattleImpl.deathrattleSpawnEnchantmentEffect(\r\n\t\t\t\t\tenchantment,\r\n\t\t\t\t\tdeathrattleTriggeredInput,\r\n\t\t\t\t);\r\n\t\t\t\tif (!!spawns?.length) {\r\n\t\t\t\t\tspawnedEntities.push(...spawns);\r\n\t\t\t\t}\r\n\t\t\t\tonDeathrattleTriggered(deathrattleTriggeredInput);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfor (let i = 0; i < multiplier; i++) {\r\n\t\t\tlet deathrattleTriggered = true;\r\n\t\t\tswitch (enchantment.cardId) {\r\n\t\t\t\tcase CardIds.RecurringNightmare_NightmareInsideEnchantment_BG26_055e:\r\n\t\t\t\tcase CardIds.RecurringNightmare_NightmareInsideEnchantment_BG26_055_Ge:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tenchantment.cardId === CardIds.RecurringNightmare_NightmareInsideEnchantment_BG26_055e\r\n\t\t\t\t\t\t\t\t? CardIds.RecurringNightmare_BG26_055\r\n\t\t\t\t\t\t\t\t: CardIds.RecurringNightmare_BG26_055_G,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t// Replicating Menace\r\n\t\t\t\tcase CardIds.ReplicatingMenace_ReplicatingMenaceEnchantment_BG_BOT_312e:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.ReplicatingMenace_MicrobotToken_BG_BOT_312t,\r\n\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.ReplicatingMenace_ReplicatingMenaceEnchantment_TB_BaconUps_032e:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.ReplicatingMenace_MicrobotToken_TB_BaconUps_032t,\r\n\t\t\t\t\t\t\t3,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.LivingSpores_LivingSporesEnchantment:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.LivingSpores_PlantToken,\r\n\t\t\t\t\t\t\t2,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.EarthInvocation_ElementEarthEnchantment:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.ElementEarth_StoneElementalToken,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.BoonOfBeetles_BeetleSwarmEnchantment_BG28_603e:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.BoonOfBeetles_BeetleToken_BG28_603t,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.TheUninvitedGuest_UninvitedEnchantment_BG29_875e:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.TheUninvitedGuest_ShadowToken_BG29_875t,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.TheUninvitedGuest_UninvitedEnchantment_BG29_875_Ge:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.TheUninvitedGuest_ShadowToken_BG29_875_Gt,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.SneedsReplicator_ReplicateEnchantment:\r\n\t\t\t\t\tconst tavernTier = deadEntity.tavernTier ?? gameState.cardsData.getTavernLevel(deadEntity.cardId);\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tgameState.cardsData.getRandomMinionForTavernTier(Math.max(1, tavernTier - 1)),\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.SurfNSurf_CrabRidingEnchantment_BG27_004e:\r\n\t\t\t\tcase CardIds.SurfNSurf_CrabRidingEnchantment_BG27_004_Ge:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tenchantment.cardId === CardIds.SurfNSurf_CrabRidingEnchantment_BG27_004_Ge\r\n\t\t\t\t\t\t\t\t? CardIds.SurfNSurf_CrabToken_BG27_004_Gt2\r\n\t\t\t\t\t\t\t\t: CardIds.SurfNSurf_CrabToken_BG27_004t2,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase CardIds.JarredFrostling_FrostyGlobeEnchantment_BG30_MagicItem_952e:\r\n\t\t\t\t\tspawnedEntities.push(\r\n\t\t\t\t\t\t...spawnEntities(\r\n\t\t\t\t\t\t\tCardIds.FlourishingFrostling_BG26_537,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\tboardWithDeadEntity,\r\n\t\t\t\t\t\t\tboardWithDeadEntityHero,\r\n\t\t\t\t\t\t\totherBoard,\r\n\t\t\t\t\t\t\totherBoardHero,\r\n\t\t\t\t\t\t\tgameState,\r\n\t\t\t\t\t\t\tdeadEntity.friendly,\r\n\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tdeathrattleTriggered = false;\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tif (deathrattleTriggered) {\r\n\t\t\t\tonDeathrattleTriggered({\r\n\t\t\t\t\tboardWithDeadEntity: boardWithDeadEntity,\r\n\t\t\t\t\tboardWithDeadEntityHero: boardWithDeadEntityHero,\r\n\t\t\t\t\tdeadEntity: deadEntity,\r\n\t\t\t\t\totherBoard: otherBoard,\r\n\t\t\t\t\totherBoardHero: otherBoardHero,\r\n\t\t\t\t\tgameState: gameState,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn spawnedEntities;\r\n};\r\n"]}
@@ -1,3 +1,4 @@
1
+ import { BgsPlayerEntity } from '../bgs-player-entity';
1
2
  import { BoardEntity } from '../board-entity';
2
3
  import { FullGameState } from './internal-game-state';
3
- export declare const getValidDeathrattles: (board: BoardEntity[], gameState: FullGameState) => BoardEntity[];
4
+ export declare const getValidDeathrattles: (board: BoardEntity[], hero: BgsPlayerEntity, gameState: FullGameState) => BoardEntity[];
@@ -3,13 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getValidDeathrattles = void 0;
4
4
  const simulate_bgs_battle_1 = require("../simulate-bgs-battle");
5
5
  const utils_1 = require("../utils");
6
- const getValidDeathrattles = (board, gameState) => {
6
+ const getValidDeathrattles = (board, hero, gameState) => {
7
7
  return board.filter((entity) => {
8
- var _a;
8
+ var _a, _b;
9
9
  if ((0, utils_1.hasMechanic)(gameState.allCards.getCard(entity.cardId), 'DEATHRATTLE')) {
10
10
  return true;
11
11
  }
12
- if ((_a = entity.rememberedDeathrattles) === null || _a === void 0 ? void 0 : _a.length) {
12
+ if (((_a = hero.trinkets) === null || _a === void 0 ? void 0 : _a.some((t) => t.cardId === "BG32_MagicItem_830")) &&
13
+ (entity.cardId === "BG25_041" || entity.cardId === "BG25_041_G")) {
14
+ return true;
15
+ }
16
+ if ((_b = entity.rememberedDeathrattles) === null || _b === void 0 ? void 0 : _b.length) {
13
17
  return true;
14
18
  }
15
19
  if (entity.enchantments &&
@@ -1 +1 @@
1
- {"version":3,"file":"deathrattle-utils.js","sourceRoot":"","sources":["../../src/simulation/deathrattle-utils.ts"],"names":[],"mappings":";;;AACA,gEAAuE;AACvE,oCAAuC;AAGhC,MAAM,oBAAoB,GAAG,CAAC,KAAoB,EAAE,SAAwB,EAAiB,EAAE;IACrG,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;;QAC9B,IAAI,IAAA,mBAAW,EAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,EAAE;YAC1E,OAAO,IAAI,CAAC;SACZ;QACD,IAAI,MAAA,MAAM,CAAC,sBAAsB,0CAAE,MAAM,EAAE;YAC1C,OAAO,IAAI,CAAC;SACZ;QACD,IACC,MAAM,CAAC,YAAY;YACnB,MAAM,CAAC,YAAY;iBACjB,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC;iBACxC,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,IAAA,mDAA6B,EAAC,aAAa,CAAC,CAAC,EACtE;YACD,OAAO,IAAI,CAAC;SACZ;QACD,OAAO,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAlBW,QAAA,oBAAoB,wBAkB/B","sourcesContent":["import { BoardEntity } from '../board-entity';\r\nimport { isValidDeathrattleEnchantment } from '../simulate-bgs-battle';\r\nimport { hasMechanic } from '../utils';\r\nimport { FullGameState } from './internal-game-state';\r\n\r\nexport const getValidDeathrattles = (board: BoardEntity[], gameState: FullGameState): BoardEntity[] => {\r\n\treturn board.filter((entity) => {\r\n\t\tif (hasMechanic(gameState.allCards.getCard(entity.cardId), 'DEATHRATTLE')) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tif (entity.rememberedDeathrattles?.length) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tif (\r\n\t\t\tentity.enchantments &&\r\n\t\t\tentity.enchantments\r\n\t\t\t\t.map((enchantment) => enchantment.cardId)\r\n\t\t\t\t.some((enchantmentId) => isValidDeathrattleEnchantment(enchantmentId))\r\n\t\t) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t});\r\n};\r\n"]}
1
+ {"version":3,"file":"deathrattle-utils.js","sourceRoot":"","sources":["../../src/simulation/deathrattle-utils.ts"],"names":[],"mappings":";;;AAGA,gEAAuE;AACvE,oCAAuC;AAGhC,MAAM,oBAAoB,GAAG,CACnC,KAAoB,EACpB,IAAqB,EACrB,SAAwB,EACR,EAAE;IAClB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;;QAC9B,IAAI,IAAA,mBAAW,EAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,EAAE;YAC1E,OAAO,IAAI,CAAC;SACZ;QACD,IACC,CAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,yBAAkD,CAAC;YACtF,CAAC,MAAM,CAAC,MAAM,eAAgC,IAAI,MAAM,CAAC,MAAM,iBAAkC,CAAC,EACjG;YACD,OAAO,IAAI,CAAC;SACZ;QACD,IAAI,MAAA,MAAM,CAAC,sBAAsB,0CAAE,MAAM,EAAE;YAC1C,OAAO,IAAI,CAAC;SACZ;QACD,IACC,MAAM,CAAC,YAAY;YACnB,MAAM,CAAC,YAAY;iBACjB,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC;iBACxC,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,IAAA,mDAA6B,EAAC,aAAa,CAAC,CAAC,EACtE;YACD,OAAO,IAAI,CAAC;SACZ;QACD,OAAO,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AA5BW,QAAA,oBAAoB,wBA4B/B","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BgsPlayerEntity } from '../bgs-player-entity';\r\nimport { BoardEntity } from '../board-entity';\r\nimport { isValidDeathrattleEnchantment } from '../simulate-bgs-battle';\r\nimport { hasMechanic } from '../utils';\r\nimport { FullGameState } from './internal-game-state';\r\n\r\nexport const getValidDeathrattles = (\r\n\tboard: BoardEntity[],\r\n\thero: BgsPlayerEntity,\r\n\tgameState: FullGameState,\r\n): BoardEntity[] => {\r\n\treturn board.filter((entity) => {\r\n\t\tif (hasMechanic(gameState.allCards.getCard(entity.cardId), 'DEATHRATTLE')) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tif (\r\n\t\t\thero.trinkets?.some((t) => t.cardId === CardIds.FelementalPortrait_BG32_MagicItem_830) &&\r\n\t\t\t(entity.cardId === CardIds.Felemental_BG25_041 || entity.cardId === CardIds.Felemental_BG25_041_G)\r\n\t\t) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tif (entity.rememberedDeathrattles?.length) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tif (\r\n\t\t\tentity.enchantments &&\r\n\t\t\tentity.enchantments\r\n\t\t\t\t.map((enchantment) => enchantment.cardId)\r\n\t\t\t\t.some((enchantmentId) => isValidDeathrattleEnchantment(enchantmentId))\r\n\t\t) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t});\r\n};\r\n"]}
@@ -18,7 +18,7 @@ const afterDiscover = (hero, board, picked, ignored, gameState) => {
18
18
  const baseTotalHealth = ignored
19
19
  .map((cardId) => gameState.allCards.getCard(cardId).health)
20
20
  .reduce((a, b) => a + b, 0);
21
- (0, stats_1.modifyStats)(entity, baseTotalAttack * felfinMultiplier, baseTotalHealth * felfinMultiplier, board, hero, gameState);
21
+ (0, stats_1.modifyStats)(entity, entity, baseTotalAttack * felfinMultiplier, baseTotalHealth * felfinMultiplier, board, hero, gameState);
22
22
  break;
23
23
  }
24
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/simulation/discover.ts"],"names":[],"mappings":";;;AAGA,mDAAiD;AAEjD,mCAAsC;AAE/B,MAAM,aAAa,GAAG,CAC5B,IAAqB,EACrB,KAAoB,EACpB,MAAc,EACd,OAAiB,EACjB,SAAwB,EACvB,EAAE;IACH,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAA,EAAE;QACrB,OAAO;KACP;IAED,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE;QAC3B,QAAQ,MAAM,CAAC,MAAM,EAAE;YACtB,gBAAqC;YACrC;gBACC,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,eAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnF,MAAM,eAAe,GAAG,OAAO;qBAC7B,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;qBAC1D,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC7B,MAAM,eAAe,GAAG,OAAO;qBAC7B,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;qBAC1D,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC7B,IAAA,mBAAW,EACV,MAAM,EACN,eAAe,GAAG,gBAAgB,EAClC,eAAe,GAAG,gBAAgB,EAClC,KAAK,EACL,IAAI,EACJ,SAAS,CACT,CAAC;gBACF,MAAM;SACP;KACD;IAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAC9C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,yBAAiD,CAChE,CAAC,MAAM,CAAC;IACT,IAAI,CAAC,CAAC,kBAAkB,EAAE;QACzB,MAAM,UAAU,GAAG,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAA,8BAAc,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;KACnD;AACF,CAAC,CAAC;AAzCW,QAAA,aAAa,iBAyCxB","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BgsPlayerEntity } from '../bgs-player-entity';\r\nimport { BoardEntity } from '../board-entity';\r\nimport { addCardsInHand } from './cards-in-hand';\r\nimport { FullGameState } from './internal-game-state';\r\nimport { modifyStats } from './stats';\r\n\r\nexport const afterDiscover = (\r\n\thero: BgsPlayerEntity,\r\n\tboard: BoardEntity[],\r\n\tpicked: string,\r\n\tignored: string[],\r\n\tgameState: FullGameState,\r\n) => {\r\n\tif (!ignored?.length) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tfor (const entity of board) {\r\n\t\tswitch (entity.cardId) {\r\n\t\t\tcase CardIds.DepravedFelfin_BG30_115:\r\n\t\t\tcase CardIds.DepravedFelfin_BG30_115_G:\r\n\t\t\t\tconst felfinMultiplier = entity.cardId === CardIds.DepravedFelfin_BG30_115 ? 1 : 2;\r\n\t\t\t\tconst baseTotalAttack = ignored\r\n\t\t\t\t\t.map((cardId) => gameState.allCards.getCard(cardId).attack)\r\n\t\t\t\t\t.reduce((a, b) => a + b, 0);\r\n\t\t\t\tconst baseTotalHealth = ignored\r\n\t\t\t\t\t.map((cardId) => gameState.allCards.getCard(cardId).health)\r\n\t\t\t\t\t.reduce((a, b) => a + b, 0);\r\n\t\t\t\tmodifyStats(\r\n\t\t\t\t\tentity,\r\n\t\t\t\t\tbaseTotalAttack * felfinMultiplier,\r\n\t\t\t\t\tbaseTotalHealth * felfinMultiplier,\r\n\t\t\t\t\tboard,\r\n\t\t\t\t\thero,\r\n\t\t\t\t\tgameState,\r\n\t\t\t\t);\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\tconst primalfinPortraits = hero.trinkets.filter(\r\n\t\t(t) => t.cardId === CardIds.PrimalfinPortrait_BG30_MagicItem_702,\r\n\t).length;\r\n\tif (!!primalfinPortraits) {\r\n\t\tconst cardsToAdd = new Array(primalfinPortraits).fill(null);\r\n\t\taddCardsInHand(hero, board, cardsToAdd, gameState);\r\n\t}\r\n};\r\n"]}
1
+ {"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/simulation/discover.ts"],"names":[],"mappings":";;;AAGA,mDAAiD;AAEjD,mCAAsC;AAE/B,MAAM,aAAa,GAAG,CAC5B,IAAqB,EACrB,KAAoB,EACpB,MAAc,EACd,OAAiB,EACjB,SAAwB,EACvB,EAAE;IACH,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAA,EAAE;QACrB,OAAO;KACP;IAED,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE;QAC3B,QAAQ,MAAM,CAAC,MAAM,EAAE;YACtB,gBAAqC;YACrC;gBACC,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,eAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnF,MAAM,eAAe,GAAG,OAAO;qBAC7B,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;qBAC1D,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC7B,MAAM,eAAe,GAAG,OAAO;qBAC7B,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;qBAC1D,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC7B,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,eAAe,GAAG,gBAAgB,EAClC,eAAe,GAAG,gBAAgB,EAClC,KAAK,EACL,IAAI,EACJ,SAAS,CACT,CAAC;gBACF,MAAM;SACP;KACD;IAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAC9C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,yBAAiD,CAChE,CAAC,MAAM,CAAC;IACT,IAAI,CAAC,CAAC,kBAAkB,EAAE;QACzB,MAAM,UAAU,GAAG,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAA,8BAAc,EAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;KACnD;AACF,CAAC,CAAC;AA1CW,QAAA,aAAa,iBA0CxB","sourcesContent":["import { CardIds } from '@firestone-hs/reference-data';\r\nimport { BgsPlayerEntity } from '../bgs-player-entity';\r\nimport { BoardEntity } from '../board-entity';\r\nimport { addCardsInHand } from './cards-in-hand';\r\nimport { FullGameState } from './internal-game-state';\r\nimport { modifyStats } from './stats';\r\n\r\nexport const afterDiscover = (\r\n\thero: BgsPlayerEntity,\r\n\tboard: BoardEntity[],\r\n\tpicked: string,\r\n\tignored: string[],\r\n\tgameState: FullGameState,\r\n) => {\r\n\tif (!ignored?.length) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tfor (const entity of board) {\r\n\t\tswitch (entity.cardId) {\r\n\t\t\tcase CardIds.DepravedFelfin_BG30_115:\r\n\t\t\tcase CardIds.DepravedFelfin_BG30_115_G:\r\n\t\t\t\tconst felfinMultiplier = entity.cardId === CardIds.DepravedFelfin_BG30_115 ? 1 : 2;\r\n\t\t\t\tconst baseTotalAttack = ignored\r\n\t\t\t\t\t.map((cardId) => gameState.allCards.getCard(cardId).attack)\r\n\t\t\t\t\t.reduce((a, b) => a + b, 0);\r\n\t\t\t\tconst baseTotalHealth = ignored\r\n\t\t\t\t\t.map((cardId) => gameState.allCards.getCard(cardId).health)\r\n\t\t\t\t\t.reduce((a, b) => a + b, 0);\r\n\t\t\t\tmodifyStats(\r\n\t\t\t\t\tentity,\r\n\t\t\t\t\tentity,\r\n\t\t\t\t\tbaseTotalAttack * felfinMultiplier,\r\n\t\t\t\t\tbaseTotalHealth * felfinMultiplier,\r\n\t\t\t\t\tboard,\r\n\t\t\t\t\thero,\r\n\t\t\t\t\tgameState,\r\n\t\t\t\t);\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\tconst primalfinPortraits = hero.trinkets.filter(\r\n\t\t(t) => t.cardId === CardIds.PrimalfinPortrait_BG30_MagicItem_702,\r\n\t).length;\r\n\tif (!!primalfinPortraits) {\r\n\t\tconst cardsToAdd = new Array(primalfinPortraits).fill(null);\r\n\t\taddCardsInHand(hero, board, cardsToAdd, gameState);\r\n\t}\r\n};\r\n"]}
@@ -1,4 +1,12 @@
1
+ import { ReferenceCard } from '@firestone-hs/reference-data';
1
2
  import { BgsPlayerEntity } from '../bgs-player-entity';
2
3
  import { BoardEntity } from '../board-entity';
4
+ import { Mutable } from '../services/utils';
3
5
  import { FullGameState } from './internal-game-state';
4
- export declare const magnetizeToTarget: (target: BoardEntity, cardIdToMagnetize: string, board: BoardEntity[], hero: BgsPlayerEntity, gameState: FullGameState) => void;
6
+ export declare const magnetizeToTarget: (target: BoardEntity, source: BoardEntity, cardIdToMagnetize: string, board: BoardEntity[], hero: BgsPlayerEntity, gameState: FullGameState) => void;
7
+ export interface OnBeforeMagnetizeInput {
8
+ board: BoardEntity[];
9
+ hero: BgsPlayerEntity;
10
+ magnetizedCard: Mutable<ReferenceCard>;
11
+ gameState: FullGameState;
12
+ }
@@ -2,12 +2,26 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.magnetizeToTarget = void 0;
4
4
  const reference_data_1 = require("@firestone-hs/reference-data");
5
+ const card_interface_1 = require("../cards/card.interface");
6
+ const _card_mappings_1 = require("../cards/impl/_card-mappings");
5
7
  const stats_1 = require("./stats");
6
- const magnetizeToTarget = (target, cardIdToMagnetize, board, hero, gameState) => {
8
+ const magnetizeToTarget = (target, source, cardIdToMagnetize, board, hero, gameState) => {
7
9
  var _a, _b, _c, _d, _e, _f, _g;
8
10
  const electromagneticDevices = hero.trinkets.filter((t) => t.cardId === "BG30_MagicItem_709").length;
9
- const modularCard = gameState.allCards.getCard(cardIdToMagnetize);
10
- (0, stats_1.modifyStats)(target, modularCard.attack + 2 * electromagneticDevices, modularCard.health + 2 * electromagneticDevices, board, hero, gameState);
11
+ const greaterElecromagneticDevices = hero.trinkets.filter((t) => t.cardId === "BG30_MagicItem_709t").length;
12
+ const modularCard = { ...gameState.allCards.getCard(cardIdToMagnetize) };
13
+ for (const boardEntity of board) {
14
+ const onBeforeMagnetizeImpl = _card_mappings_1.cardMappings[boardEntity.cardId];
15
+ if ((0, card_interface_1.hasOnBeforeMagnetize)(onBeforeMagnetizeImpl)) {
16
+ onBeforeMagnetizeImpl.onBeforeMagnetize(boardEntity, {
17
+ board: board,
18
+ hero: hero,
19
+ magnetizedCard: modularCard,
20
+ gameState: gameState,
21
+ });
22
+ }
23
+ }
24
+ (0, stats_1.modifyStats)(target, source, modularCard.attack + 2 * electromagneticDevices + 4 * greaterElecromagneticDevices, modularCard.health + 2 * electromagneticDevices + 4 * greaterElecromagneticDevices, board, hero, gameState);
11
25
  target.taunt = target.taunt || ((_a = modularCard.mechanics) === null || _a === void 0 ? void 0 : _a.includes(reference_data_1.GameTag[reference_data_1.GameTag.TAUNT]));
12
26
  target.divineShield = target.divineShield || ((_b = modularCard.mechanics) === null || _b === void 0 ? void 0 : _b.includes(reference_data_1.GameTag[reference_data_1.GameTag.DIVINE_SHIELD]));
13
27
  target.poisonous = target.poisonous || ((_c = modularCard.mechanics) === null || _c === void 0 ? void 0 : _c.includes(reference_data_1.GameTag[reference_data_1.GameTag.POISONOUS]));
@@ -1 +1 @@
1
- {"version":3,"file":"magnetize.js","sourceRoot":"","sources":["../../src/simulation/magnetize.ts"],"names":[],"mappings":"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","sourcesContent":["import { CardIds, GameTag } from '@firestone-hs/reference-data';\r\nimport { BgsPlayerEntity } from '../bgs-player-entity';\r\nimport { BoardEntity } from '../board-entity';\r\nimport { FullGameState } from './internal-game-state';\r\nimport { modifyStats } from './stats';\r\n\r\nexport const magnetizeToTarget = (\r\n\ttarget: BoardEntity,\r\n\tcardIdToMagnetize: string,\r\n\tboard: BoardEntity[],\r\n\thero: BgsPlayerEntity,\r\n\tgameState: FullGameState,\r\n) => {\r\n\tconst electromagneticDevices = hero.trinkets.filter(\r\n\t\t(t) => t.cardId === CardIds.ElectromagneticDevice_BG30_MagicItem_709,\r\n\t).length;\r\n\tconst modularCard = gameState.allCards.getCard(cardIdToMagnetize);\r\n\tmodifyStats(\r\n\t\ttarget,\r\n\t\tmodularCard.attack + 2 * electromagneticDevices,\r\n\t\tmodularCard.health + 2 * electromagneticDevices,\r\n\t\tboard,\r\n\t\thero,\r\n\t\tgameState,\r\n\t);\r\n\ttarget.taunt = target.taunt || modularCard.mechanics?.includes(GameTag[GameTag.TAUNT]);\r\n\ttarget.divineShield = target.divineShield || modularCard.mechanics?.includes(GameTag[GameTag.DIVINE_SHIELD]);\r\n\ttarget.poisonous = target.poisonous || modularCard.mechanics?.includes(GameTag[GameTag.POISONOUS]);\r\n\ttarget.venomous = target.venomous || modularCard.mechanics?.includes(GameTag[GameTag.VENOMOUS]);\r\n\ttarget.windfury = target.windfury || modularCard.mechanics?.includes(GameTag[GameTag.WINDFURY]);\r\n\ttarget.reborn = target.reborn || modularCard.mechanics?.includes(GameTag[GameTag.REBORN]);\r\n\ttarget.stealth = target.stealth || modularCard.mechanics?.includes(GameTag[GameTag.STEALTH]);\r\n\r\n\tconst magneticEnchantment = modularCard.enchantmentDbfId;\r\n\tif (magneticEnchantment) {\r\n\t\tconst enchantment = gameState.allCards.getCard(magneticEnchantment).id;\r\n\t\ttarget.enchantments.push({\r\n\t\t\tcardId: enchantment,\r\n\t\t\toriginEntityId: modularCard.dbfId,\r\n\t\t\ttiming: gameState.sharedState.currentEntityId++,\r\n\t\t});\r\n\t}\r\n\tif ([CardIds.DrBoomsMonster_BG31_176, CardIds.DrBoomsMonster_BG31_176_G].includes(cardIdToMagnetize as CardIds)) {\r\n\t\tconst mult = cardIdToMagnetize === CardIds.DrBoomsMonster_BG31_176 ? 1 : 2;\r\n\t\ttarget.attack += 2 * hero.globalInfo.MagnetizedThisGame * mult;\r\n\t\ttarget.health += 2 * hero.globalInfo.MagnetizedThisGame * mult;\r\n\t}\r\n\r\n\t// Dr Boom's Monster?\r\n\thero.globalInfo.MagnetizedThisGame = hero.globalInfo.MagnetizedThisGame + 1;\r\n\tfor (const entity of board) {\r\n\t\tconst drBoomBases =\r\n\t\t\t(entity.cardId === CardIds.DrBoomsMonster_BG31_176 ? 1 : 0) +\r\n\t\t\tentity.enchantments.filter((e) => e.cardId === CardIds.DrBoomsMonster_DrBoomsMonsterEnchantment_BG31_176e)\r\n\t\t\t\t.length;\r\n\t\tconst drBoomGoldens =\r\n\t\t\t(entity.cardId === CardIds.DrBoomsMonster_BG31_176_G ? 1 : 0) +\r\n\t\t\tentity.enchantments.filter((e) => e.cardId === CardIds.DrBoomsMonster_DrBoomsMonsterEnchantment_BG31_176_Ge)\r\n\t\t\t\t.length;\r\n\t\tentity.attack += drBoomBases * 2 + drBoomGoldens * 4;\r\n\t\tentity.health += drBoomBases * 2 + drBoomGoldens * 4;\r\n\t}\r\n};\r\n"]}
1
+ {"version":3,"file":"magnetize.js","sourceRoot":"","sources":["../../src/simulation/magnetize.ts"],"names":[],"mappings":";;;AAAA,iEAA+E;AAG/E,4DAA+D;AAC/D,iEAA4D;AAG5D,mCAAsC;AAE/B,MAAM,iBAAiB,GAAG,CAChC,MAAmB,EACnB,MAAmB,EACnB,iBAAyB,EACzB,KAAoB,EACpB,IAAqB,EACrB,SAAwB,EACvB,EAAE;;IACH,MAAM,sBAAsB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAClD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,yBAAqD,CACpE,CAAC,MAAM,CAAC;IACT,MAAM,4BAA4B,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CACxD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,0BAAiF,CAChG,CAAC,MAAM,CAAC;IAET,MAAM,WAAW,GAAG,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;IACzE,KAAK,MAAM,WAAW,IAAI,KAAK,EAAE;QAChC,MAAM,qBAAqB,GAAG,6BAAY,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC/D,IAAI,IAAA,qCAAoB,EAAC,qBAAqB,CAAC,EAAE;YAChD,qBAAqB,CAAC,iBAAiB,CAAC,WAAW,EAAE;gBACpD,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,IAAI;gBACV,cAAc,EAAE,WAAW;gBAC3B,SAAS,EAAE,SAAS;aACpB,CAAC,CAAC;SACH;KACD;IAED,IAAA,mBAAW,EACV,MAAM,EACN,MAAM,EACN,WAAW,CAAC,MAAM,GAAG,CAAC,GAAG,sBAAsB,GAAG,CAAC,GAAG,4BAA4B,EAClF,WAAW,CAAC,MAAM,GAAG,CAAC,GAAG,sBAAsB,GAAG,CAAC,GAAG,4BAA4B,EAClF,KAAK,EACL,IAAI,EACJ,SAAS,CACT,CAAC;IACF,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,KAAI,MAAA,WAAW,CAAC,SAAS,0CAAE,QAAQ,CAAC,wBAAO,CAAC,wBAAO,CAAC,KAAK,CAAC,CAAC,CAAA,CAAC;IACvF,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,KAAI,MAAA,WAAW,CAAC,SAAS,0CAAE,QAAQ,CAAC,wBAAO,CAAC,wBAAO,CAAC,aAAa,CAAC,CAAC,CAAA,CAAC;IAC7G,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,KAAI,MAAA,WAAW,CAAC,SAAS,0CAAE,QAAQ,CAAC,wBAAO,CAAC,wBAAO,CAAC,SAAS,CAAC,CAAC,CAAA,CAAC;IACnG,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAI,MAAA,WAAW,CAAC,SAAS,0CAAE,QAAQ,CAAC,wBAAO,CAAC,wBAAO,CAAC,QAAQ,CAAC,CAAC,CAAA,CAAC;IAChG,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAI,MAAA,WAAW,CAAC,SAAS,0CAAE,QAAQ,CAAC,wBAAO,CAAC,wBAAO,CAAC,QAAQ,CAAC,CAAC,CAAA,CAAC;IAChG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,KAAI,MAAA,WAAW,CAAC,SAAS,0CAAE,QAAQ,CAAC,wBAAO,CAAC,wBAAO,CAAC,MAAM,CAAC,CAAC,CAAA,CAAC;IAC1F,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,KAAI,MAAA,WAAW,CAAC,SAAS,0CAAE,QAAQ,CAAC,wBAAO,CAAC,wBAAO,CAAC,OAAO,CAAC,CAAC,CAAA,CAAC;IAE7F,MAAM,mBAAmB,GAAG,WAAW,CAAC,gBAAgB,CAAC;IACzD,IAAI,mBAAmB,EAAE;QACxB,MAAM,WAAW,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC;QACvE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;YACxB,MAAM,EAAE,WAAW;YACnB,cAAc,EAAE,WAAW,CAAC,KAAK;YACjC,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,eAAe,EAAE;SAC/C,CAAC,CAAC;KACH;IACD,IAAI,0BAAoE,CAAC,QAAQ,CAAC,iBAA4B,CAAC,EAAE;QAChH,MAAM,IAAI,GAAG,iBAAiB,eAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/D,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,GAAG,IAAI,CAAC;KAC/D;IAGD,IAAI,CAAC,UAAU,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,GAAG,CAAC,CAAC;IAC5E,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE;QAC3B,MAAM,WAAW,GAChB,CAAC,MAAM,CAAC,MAAM,eAAoC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3D,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,gBAA+D,CAAC;iBACxG,MAAM,CAAC;QACV,MAAM,aAAa,GAClB,CAAC,MAAM,CAAC,MAAM,iBAAsC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7D,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,kBAAiE,CAAC;iBAC1G,MAAM,CAAC;QACV,MAAM,CAAC,MAAM,IAAI,WAAW,GAAG,CAAC,GAAG,aAAa,GAAG,CAAC,CAAC;QACrD,MAAM,CAAC,MAAM,IAAI,WAAW,GAAG,CAAC,GAAG,aAAa,GAAG,CAAC,CAAC;KACrD;AACF,CAAC,CAAC;AA1EW,QAAA,iBAAiB,qBA0E5B","sourcesContent":["import { CardIds, GameTag, ReferenceCard } from '@firestone-hs/reference-data';\r\nimport { BgsPlayerEntity } from '../bgs-player-entity';\r\nimport { BoardEntity } from '../board-entity';\r\nimport { hasOnBeforeMagnetize } from '../cards/card.interface';\r\nimport { cardMappings } from '../cards/impl/_card-mappings';\r\nimport { Mutable } from '../services/utils';\r\nimport { FullGameState } from './internal-game-state';\r\nimport { modifyStats } from './stats';\r\n\r\nexport const magnetizeToTarget = (\r\n\ttarget: BoardEntity,\r\n\tsource: BoardEntity,\r\n\tcardIdToMagnetize: string,\r\n\tboard: BoardEntity[],\r\n\thero: BgsPlayerEntity,\r\n\tgameState: FullGameState,\r\n) => {\r\n\tconst electromagneticDevices = hero.trinkets.filter(\r\n\t\t(t) => t.cardId === CardIds.ElectromagneticDevice_BG30_MagicItem_709,\r\n\t).length;\r\n\tconst greaterElecromagneticDevices = hero.trinkets.filter(\r\n\t\t(t) => t.cardId === CardIds.ElectromagneticDevice_ElectromagneticDeviceToken_BG30_MagicItem_709t,\r\n\t).length;\r\n\r\n\tconst modularCard = { ...gameState.allCards.getCard(cardIdToMagnetize) };\r\n\tfor (const boardEntity of board) {\r\n\t\tconst onBeforeMagnetizeImpl = cardMappings[boardEntity.cardId];\r\n\t\tif (hasOnBeforeMagnetize(onBeforeMagnetizeImpl)) {\r\n\t\t\tonBeforeMagnetizeImpl.onBeforeMagnetize(boardEntity, {\r\n\t\t\t\tboard: board,\r\n\t\t\t\thero: hero,\r\n\t\t\t\tmagnetizedCard: modularCard,\r\n\t\t\t\tgameState: gameState,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tmodifyStats(\r\n\t\ttarget,\r\n\t\tsource,\r\n\t\tmodularCard.attack + 2 * electromagneticDevices + 4 * greaterElecromagneticDevices,\r\n\t\tmodularCard.health + 2 * electromagneticDevices + 4 * greaterElecromagneticDevices,\r\n\t\tboard,\r\n\t\thero,\r\n\t\tgameState,\r\n\t);\r\n\ttarget.taunt = target.taunt || modularCard.mechanics?.includes(GameTag[GameTag.TAUNT]);\r\n\ttarget.divineShield = target.divineShield || modularCard.mechanics?.includes(GameTag[GameTag.DIVINE_SHIELD]);\r\n\ttarget.poisonous = target.poisonous || modularCard.mechanics?.includes(GameTag[GameTag.POISONOUS]);\r\n\ttarget.venomous = target.venomous || modularCard.mechanics?.includes(GameTag[GameTag.VENOMOUS]);\r\n\ttarget.windfury = target.windfury || modularCard.mechanics?.includes(GameTag[GameTag.WINDFURY]);\r\n\ttarget.reborn = target.reborn || modularCard.mechanics?.includes(GameTag[GameTag.REBORN]);\r\n\ttarget.stealth = target.stealth || modularCard.mechanics?.includes(GameTag[GameTag.STEALTH]);\r\n\r\n\tconst magneticEnchantment = modularCard.enchantmentDbfId;\r\n\tif (magneticEnchantment) {\r\n\t\tconst enchantment = gameState.allCards.getCard(magneticEnchantment).id;\r\n\t\ttarget.enchantments.push({\r\n\t\t\tcardId: enchantment,\r\n\t\t\toriginEntityId: modularCard.dbfId,\r\n\t\t\ttiming: gameState.sharedState.currentEntityId++,\r\n\t\t});\r\n\t}\r\n\tif ([CardIds.DrBoomsMonster_BG31_176, CardIds.DrBoomsMonster_BG31_176_G].includes(cardIdToMagnetize as CardIds)) {\r\n\t\tconst mult = cardIdToMagnetize === CardIds.DrBoomsMonster_BG31_176 ? 1 : 2;\r\n\t\ttarget.attack += 2 * hero.globalInfo.MagnetizedThisGame * mult;\r\n\t\ttarget.health += 2 * hero.globalInfo.MagnetizedThisGame * mult;\r\n\t}\r\n\r\n\t// Dr Boom's Monster?\r\n\thero.globalInfo.MagnetizedThisGame = hero.globalInfo.MagnetizedThisGame + 1;\r\n\tfor (const entity of board) {\r\n\t\tconst drBoomBases =\r\n\t\t\t(entity.cardId === CardIds.DrBoomsMonster_BG31_176 ? 1 : 0) +\r\n\t\t\tentity.enchantments.filter((e) => e.cardId === CardIds.DrBoomsMonster_DrBoomsMonsterEnchantment_BG31_176e)\r\n\t\t\t\t.length;\r\n\t\tconst drBoomGoldens =\r\n\t\t\t(entity.cardId === CardIds.DrBoomsMonster_BG31_176_G ? 1 : 0) +\r\n\t\t\tentity.enchantments.filter((e) => e.cardId === CardIds.DrBoomsMonster_DrBoomsMonsterEnchantment_BG31_176_Ge)\r\n\t\t\t\t.length;\r\n\t\tentity.attack += drBoomBases * 2 + drBoomGoldens * 4;\r\n\t\tentity.health += drBoomBases * 2 + drBoomGoldens * 4;\r\n\t}\r\n};\r\n\r\nexport interface OnBeforeMagnetizeInput {\r\n\tboard: BoardEntity[];\r\n\thero: BgsPlayerEntity;\r\n\tmagnetizedCard: Mutable<ReferenceCard>;\r\n\tgameState: FullGameState;\r\n}\r\n"]}
@@ -85,8 +85,7 @@ const onMinionDeadQuest = (deadEntity, indexFromRight, board, boardHero, otherBo
85
85
  const quantity = trinket.cardId === "BG30_MagicItem_433" ? 1 : 2;
86
86
  const targets = (0, utils_1.pickMultipleRandomAlive)(board, quantity);
87
87
  for (const target of targets) {
88
- (0, stats_1.modifyStats)(target, deadEntity.maxAttack, deadEntity.maxHealth, board, boardHero, gameState);
89
- gameState.spectator.registerPowerTarget(boardHero, target, board, boardHero, otherBoardHero);
88
+ (0, stats_1.modifyStats)(target, boardHero, deadEntity.maxAttack, deadEntity.maxHealth, board, boardHero, gameState);
90
89
  }
91
90
  trinket.scriptDataNum1--;
92
91
  }