@firestone-hs/simulate-bgs-battle 1.1.696 → 1.1.697

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 (339) hide show
  1. package/dist/src/bgs-player-entity.d.ts +4 -10
  2. package/dist/src/bgs-player-entity.js.map +1 -1
  3. package/dist/src/cards/card.interface.d.ts +21 -6
  4. package/dist/src/cards/card.interface.js +8 -1
  5. package/dist/src/cards/card.interface.js.map +1 -1
  6. package/dist/src/cards/cards-data.js +1 -12
  7. package/dist/src/cards/cards-data.js.map +1 -1
  8. package/dist/src/cards/impl/_card-mappings.js +152 -63
  9. package/dist/src/cards/impl/_card-mappings.js.map +1 -1
  10. package/dist/src/cards/impl/bg-spell/arcane-absorption-bg352.d.ts +2 -2
  11. package/dist/src/cards/impl/bg-spell/arcane-absorption-bg352.js +1 -8
  12. package/dist/src/cards/impl/bg-spell/arcane-absorption-bg352.js.map +1 -1
  13. package/dist/src/cards/impl/bg-spell/back-to-back.d.ts +2 -0
  14. package/dist/src/cards/impl/bg-spell/back-to-back.js +20 -0
  15. package/dist/src/cards/impl/bg-spell/back-to-back.js.map +1 -0
  16. package/dist/src/cards/impl/bg-spell/blood-gem-quilboar-divine-shield.js +2 -3
  17. package/dist/src/cards/impl/bg-spell/blood-gem-quilboar-divine-shield.js.map +1 -1
  18. package/dist/src/cards/impl/bg-spell/blood-gem-quilboar-reborn.js +2 -3
  19. package/dist/src/cards/impl/bg-spell/blood-gem-quilboar-reborn.js.map +1 -1
  20. package/dist/src/cards/impl/bg-spell/blood-gem-quilboar-taunt.js +2 -3
  21. package/dist/src/cards/impl/bg-spell/blood-gem-quilboar-taunt.js.map +1 -1
  22. package/dist/src/cards/impl/bg-spell/butchering.d.ts +2 -0
  23. package/dist/src/cards/impl/bg-spell/butchering.js +23 -0
  24. package/dist/src/cards/impl/bg-spell/butchering.js.map +1 -0
  25. package/dist/src/cards/impl/bg-spell/conflagration-bg352.js +7 -10
  26. package/dist/src/cards/impl/bg-spell/conflagration-bg352.js.map +1 -1
  27. package/dist/src/cards/impl/bg-spell/deepwater-clan.js +13 -9
  28. package/dist/src/cards/impl/bg-spell/deepwater-clan.js.map +1 -1
  29. package/dist/src/cards/impl/bg-spell/friendly-bounty.d.ts +2 -0
  30. package/dist/src/cards/impl/bg-spell/friendly-bounty.js +44 -0
  31. package/dist/src/cards/impl/bg-spell/friendly-bounty.js.map +1 -0
  32. package/dist/src/cards/impl/bg-spell/healthy-bounty.d.ts +2 -0
  33. package/dist/src/cards/impl/bg-spell/healthy-bounty.js +15 -0
  34. package/dist/src/cards/impl/bg-spell/healthy-bounty.js.map +1 -0
  35. package/dist/src/cards/impl/bg-spell/hostile-bounty.d.ts +2 -0
  36. package/dist/src/cards/impl/bg-spell/hostile-bounty.js +15 -0
  37. package/dist/src/cards/impl/bg-spell/hostile-bounty.js.map +1 -0
  38. package/dist/src/cards/impl/bg-spell/jailer-sticker-306.d.ts +2 -0
  39. package/dist/src/cards/impl/bg-spell/jailer-sticker-306.js +27 -0
  40. package/dist/src/cards/impl/bg-spell/jailer-sticker-306.js.map +1 -0
  41. package/dist/src/cards/impl/bg-spell/jailer-sticker-733.d.ts +2 -0
  42. package/dist/src/cards/impl/bg-spell/jailer-sticker-733.js +32 -0
  43. package/dist/src/cards/impl/bg-spell/jailer-sticker-733.js.map +1 -0
  44. package/dist/src/cards/impl/bg-spell/might-of-stormwind.d.ts +2 -0
  45. package/dist/src/cards/impl/bg-spell/might-of-stormwind.js +15 -0
  46. package/dist/src/cards/impl/bg-spell/might-of-stormwind.js.map +1 -0
  47. package/dist/src/cards/impl/bg-spell/natural-blessing.js +10 -0
  48. package/dist/src/cards/impl/bg-spell/natural-blessing.js.map +1 -1
  49. package/dist/src/cards/impl/bg-spell/ophidian-staff.d.ts +2 -0
  50. package/dist/src/cards/impl/bg-spell/ophidian-staff.js +20 -0
  51. package/dist/src/cards/impl/bg-spell/ophidian-staff.js.map +1 -0
  52. package/dist/src/cards/impl/bg-spell/queens-command.js +4 -4
  53. package/dist/src/cards/impl/bg-spell/queens-command.js.map +1 -1
  54. package/dist/src/cards/impl/bg-spell/selfish-bounty.d.ts +2 -0
  55. package/dist/src/cards/impl/bg-spell/selfish-bounty.js +14 -0
  56. package/dist/src/cards/impl/bg-spell/selfish-bounty.js.map +1 -0
  57. package/dist/src/cards/impl/minion/abyssal-bruiser.js +3 -4
  58. package/dist/src/cards/impl/minion/abyssal-bruiser.js.map +1 -1
  59. package/dist/src/cards/impl/minion/alert-alarmist.js +1 -2
  60. package/dist/src/cards/impl/minion/alert-alarmist.js.map +1 -1
  61. package/dist/src/cards/impl/minion/anubarak-nerubian-king.js +2 -4
  62. package/dist/src/cards/impl/minion/anubarak-nerubian-king.js.map +1 -1
  63. package/dist/src/cards/impl/minion/balinda-stonehearth.js +1 -2
  64. package/dist/src/cards/impl/minion/balinda-stonehearth.js.map +1 -1
  65. package/dist/src/cards/impl/minion/bg352-chromadrake-pool.js +5 -6
  66. package/dist/src/cards/impl/minion/bg352-chromadrake-pool.js.map +1 -1
  67. package/dist/src/cards/impl/minion/black-chromadrake.js +2 -3
  68. package/dist/src/cards/impl/minion/black-chromadrake.js.map +1 -1
  69. package/dist/src/cards/impl/minion/blue-chromadrake.js +2 -3
  70. package/dist/src/cards/impl/minion/blue-chromadrake.js.map +1 -1
  71. package/dist/src/cards/impl/minion/brazen-buccaneer.js +2 -3
  72. package/dist/src/cards/impl/minion/brazen-buccaneer.js.map +1 -1
  73. package/dist/src/cards/impl/minion/bristleback-bully.js +5 -6
  74. package/dist/src/cards/impl/minion/bristleback-bully.js.map +1 -1
  75. package/dist/src/cards/impl/minion/bronze-chromadrake.js +2 -3
  76. package/dist/src/cards/impl/minion/bronze-chromadrake.js.map +1 -1
  77. package/dist/src/cards/impl/minion/cataclysmic-harbinger.js +2 -3
  78. package/dist/src/cards/impl/minion/cataclysmic-harbinger.js.map +1 -1
  79. package/dist/src/cards/impl/minion/champion-of-the-primus.js +2 -4
  80. package/dist/src/cards/impl/minion/champion-of-the-primus.js.map +1 -1
  81. package/dist/src/cards/impl/minion/charging-czarina.js +4 -1
  82. package/dist/src/cards/impl/minion/charging-czarina.js.map +1 -1
  83. package/dist/src/cards/impl/minion/consummate-conqueror.js +1 -2
  84. package/dist/src/cards/impl/minion/consummate-conqueror.js.map +1 -1
  85. package/dist/src/cards/impl/minion/cousin-errgl.js +4 -5
  86. package/dist/src/cards/impl/minion/cousin-errgl.js.map +1 -1
  87. package/dist/src/cards/impl/minion/cruise-controller.js +3 -2
  88. package/dist/src/cards/impl/minion/cruise-controller.js.map +1 -1
  89. package/dist/src/cards/impl/minion/deepwater-chieftain.js +9 -10
  90. package/dist/src/cards/impl/minion/deepwater-chieftain.js.map +1 -1
  91. package/dist/src/cards/impl/minion/demon-fodder.js +1 -2
  92. package/dist/src/cards/impl/minion/demon-fodder.js.map +1 -1
  93. package/dist/src/cards/impl/minion/determined-defender.js +2 -3
  94. package/dist/src/cards/impl/minion/determined-defender.js.map +1 -1
  95. package/dist/src/cards/impl/minion/diremuck-forager.d.ts +2 -4
  96. package/dist/src/cards/impl/minion/diremuck-forager.js +3 -3
  97. package/dist/src/cards/impl/minion/diremuck-forager.js.map +1 -1
  98. package/dist/src/cards/impl/minion/draconic-warden.js +3 -4
  99. package/dist/src/cards/impl/minion/draconic-warden.js.map +1 -1
  100. package/dist/src/cards/impl/minion/dustbone-devastator.js +4 -6
  101. package/dist/src/cards/impl/minion/dustbone-devastator.js.map +1 -1
  102. package/dist/src/cards/impl/minion/earthsong-shaman.js +2 -3
  103. package/dist/src/cards/impl/minion/earthsong-shaman.js.map +1 -1
  104. package/dist/src/cards/impl/minion/egg-of-the-endtimes.js +1 -2
  105. package/dist/src/cards/impl/minion/egg-of-the-endtimes.js.map +1 -1
  106. package/dist/src/cards/impl/minion/enchanted-sentinel.js +2 -3
  107. package/dist/src/cards/impl/minion/enchanted-sentinel.js.map +1 -1
  108. package/dist/src/cards/impl/minion/falling-sky-golem.js +3 -4
  109. package/dist/src/cards/impl/minion/falling-sky-golem.js.map +1 -1
  110. package/dist/src/cards/impl/minion/firelands-fugitive.js +5 -6
  111. package/dist/src/cards/impl/minion/firelands-fugitive.js.map +1 -1
  112. package/dist/src/cards/impl/minion/forsaken-weaver.js +2 -1
  113. package/dist/src/cards/impl/minion/forsaken-weaver.js.map +1 -1
  114. package/dist/src/cards/impl/minion/gluttonous-trogg.js +1 -2
  115. package/dist/src/cards/impl/minion/gluttonous-trogg.js.map +1 -1
  116. package/dist/src/cards/impl/minion/goldrinn-the-great-wolf.js +2 -5
  117. package/dist/src/cards/impl/minion/goldrinn-the-great-wolf.js.map +1 -1
  118. package/dist/src/cards/impl/minion/green-chromadrake.js +2 -3
  119. package/dist/src/cards/impl/minion/green-chromadrake.js.map +1 -1
  120. package/dist/src/cards/impl/minion/hired-ritualist.js +1 -2
  121. package/dist/src/cards/impl/minion/hired-ritualist.js.map +1 -1
  122. package/dist/src/cards/impl/minion/hog-watcher.js +1 -2
  123. package/dist/src/cards/impl/minion/hog-watcher.js.map +1 -1
  124. package/dist/src/cards/impl/minion/humming-bird.js +2 -4
  125. package/dist/src/cards/impl/minion/humming-bird.js.map +1 -1
  126. package/dist/src/cards/impl/minion/incubation-researcher.js +2 -3
  127. package/dist/src/cards/impl/minion/incubation-researcher.js.map +1 -1
  128. package/dist/src/cards/impl/minion/laboratory-assistant.d.ts +2 -2
  129. package/dist/src/cards/impl/minion/laboratory-assistant.js +1 -5
  130. package/dist/src/cards/impl/minion/laboratory-assistant.js.map +1 -1
  131. package/dist/src/cards/impl/minion/leyline-surfacer.js +9 -10
  132. package/dist/src/cards/impl/minion/leyline-surfacer.js.map +1 -1
  133. package/dist/src/cards/impl/minion/living-azerite.d.ts +2 -2
  134. package/dist/src/cards/impl/minion/living-azerite.js +17 -0
  135. package/dist/src/cards/impl/minion/living-azerite.js.map +1 -1
  136. package/dist/src/cards/impl/minion/lurking-leviathan.js +2 -3
  137. package/dist/src/cards/impl/minion/lurking-leviathan.js.map +1 -1
  138. package/dist/src/cards/impl/minion/maelstrom-emergent.js +1 -2
  139. package/dist/src/cards/impl/minion/maelstrom-emergent.js.map +1 -1
  140. package/dist/src/cards/impl/minion/mama-mrrglton.js +2 -3
  141. package/dist/src/cards/impl/minion/mama-mrrglton.js.map +1 -1
  142. package/dist/src/cards/impl/minion/nalaa-the-redeemer.js +5 -1
  143. package/dist/src/cards/impl/minion/nalaa-the-redeemer.js.map +1 -1
  144. package/dist/src/cards/impl/minion/nerubian-deathswarmer.js +2 -6
  145. package/dist/src/cards/impl/minion/nerubian-deathswarmer.js.map +1 -1
  146. package/dist/src/cards/impl/minion/old-soul.js +1 -2
  147. package/dist/src/cards/impl/minion/old-soul.js.map +1 -1
  148. package/dist/src/cards/impl/minion/oranomonos-the-wilted.js +2 -4
  149. package/dist/src/cards/impl/minion/oranomonos-the-wilted.js.map +1 -1
  150. package/dist/src/cards/impl/minion/papa-mrrglton.js +2 -3
  151. package/dist/src/cards/impl/minion/papa-mrrglton.js.map +1 -1
  152. package/dist/src/cards/impl/minion/plaguerunner.js +4 -6
  153. package/dist/src/cards/impl/minion/plaguerunner.js.map +1 -1
  154. package/dist/src/cards/impl/minion/pufferquil.js +1 -2
  155. package/dist/src/cards/impl/minion/pufferquil.js.map +1 -1
  156. package/dist/src/cards/impl/minion/red-chromadrake.js +2 -3
  157. package/dist/src/cards/impl/minion/red-chromadrake.js.map +1 -1
  158. package/dist/src/cards/impl/minion/redtusk-thornraiser.js +5 -6
  159. package/dist/src/cards/impl/minion/redtusk-thornraiser.js.map +1 -1
  160. package/dist/src/cards/impl/minion/ring-bearer.js +2 -3
  161. package/dist/src/cards/impl/minion/ring-bearer.js.map +1 -1
  162. package/dist/src/cards/impl/minion/roving-sailor.js +2 -3
  163. package/dist/src/cards/impl/minion/roving-sailor.js.map +1 -1
  164. package/dist/src/cards/impl/minion/ruthless-queensguard.js +6 -7
  165. package/dist/src/cards/impl/minion/ruthless-queensguard.js.map +1 -1
  166. package/dist/src/cards/impl/minion/scarlet-survivor.js +1 -2
  167. package/dist/src/cards/impl/minion/scarlet-survivor.js.map +1 -1
  168. package/dist/src/cards/impl/minion/seafloor-recruiter.js +2 -3
  169. package/dist/src/cards/impl/minion/seafloor-recruiter.js.map +1 -1
  170. package/dist/src/cards/impl/minion/sewer-lord.js +2 -3
  171. package/dist/src/cards/impl/minion/sewer-lord.js.map +1 -1
  172. package/dist/src/cards/impl/minion/ship-jumper.js +2 -3
  173. package/dist/src/cards/impl/minion/ship-jumper.js.map +1 -1
  174. package/dist/src/cards/impl/minion/skeletal-strafer.js +3 -4
  175. package/dist/src/cards/impl/minion/skeletal-strafer.js.map +1 -1
  176. package/dist/src/cards/impl/minion/tide-raiser.js +2 -3
  177. package/dist/src/cards/impl/minion/tide-raiser.js.map +1 -1
  178. package/dist/src/cards/impl/minion/timewarped-caretaker.js +2 -4
  179. package/dist/src/cards/impl/minion/timewarped-caretaker.js.map +1 -1
  180. package/dist/src/cards/impl/minion/timewarped-deathswarmer.js +2 -5
  181. package/dist/src/cards/impl/minion/timewarped-deathswarmer.js.map +1 -1
  182. package/dist/src/cards/impl/minion/timewarped-goldrinn.js +3 -7
  183. package/dist/src/cards/impl/minion/timewarped-goldrinn.js.map +1 -1
  184. package/dist/src/cards/impl/minion/twisted-wrathguard.js +1 -2
  185. package/dist/src/cards/impl/minion/twisted-wrathguard.js.map +1 -1
  186. package/dist/src/cards/impl/minion/very-hungry-winterfinner.js +2 -3
  187. package/dist/src/cards/impl/minion/very-hungry-winterfinner.js.map +1 -1
  188. package/dist/src/cards/impl/minion/vinespeaker.js +2 -3
  189. package/dist/src/cards/impl/minion/vinespeaker.js.map +1 -1
  190. package/dist/src/cards/impl/minion/void-pup-trainer.js +1 -2
  191. package/dist/src/cards/impl/minion/void-pup-trainer.js.map +1 -1
  192. package/dist/src/cards/impl/minion/woodland-defiler.js +1 -2
  193. package/dist/src/cards/impl/minion/woodland-defiler.js.map +1 -1
  194. package/dist/src/cards/impl/minion/wyvern-outrider.js +1 -2
  195. package/dist/src/cards/impl/minion/wyvern-outrider.js.map +1 -1
  196. package/dist/src/cards/impl/trinket/archaic-scroll.d.ts +2 -0
  197. package/dist/src/cards/impl/trinket/archaic-scroll.js +21 -0
  198. package/dist/src/cards/impl/trinket/archaic-scroll.js.map +1 -0
  199. package/dist/src/cards/impl/trinket/artisanal-urn.js +2 -1
  200. package/dist/src/cards/impl/trinket/artisanal-urn.js.map +1 -1
  201. package/dist/src/cards/impl/trinket/bewitched-ribbon.d.ts +2 -0
  202. package/dist/src/cards/impl/trinket/bewitched-ribbon.js +15 -0
  203. package/dist/src/cards/impl/trinket/bewitched-ribbon.js.map +1 -0
  204. package/dist/src/cards/impl/trinket/blood-amulet.d.ts +2 -0
  205. package/dist/src/cards/impl/trinket/blood-amulet.js +15 -0
  206. package/dist/src/cards/impl/trinket/blood-amulet.js.map +1 -0
  207. package/dist/src/cards/impl/trinket/bloodbound-earrings.d.ts +2 -0
  208. package/dist/src/cards/impl/trinket/bloodbound-earrings.js +22 -0
  209. package/dist/src/cards/impl/trinket/bloodbound-earrings.js.map +1 -0
  210. package/dist/src/cards/impl/trinket/bluegill-flippers.d.ts +2 -0
  211. package/dist/src/cards/impl/trinket/bluegill-flippers.js +21 -0
  212. package/dist/src/cards/impl/trinket/bluegill-flippers.js.map +1 -0
  213. package/dist/src/cards/impl/trinket/bubble-crown.d.ts +2 -0
  214. package/dist/src/cards/impl/trinket/bubble-crown.js +18 -0
  215. package/dist/src/cards/impl/trinket/bubble-crown.js.map +1 -0
  216. package/dist/src/cards/impl/trinket/cloud-serpent-horn.d.ts +2 -0
  217. package/dist/src/cards/impl/trinket/cloud-serpent-horn.js +26 -0
  218. package/dist/src/cards/impl/trinket/cloud-serpent-horn.js.map +1 -0
  219. package/dist/src/cards/impl/trinket/comfy-coffin.d.ts +2 -0
  220. package/dist/src/cards/impl/trinket/comfy-coffin.js +12 -0
  221. package/dist/src/cards/impl/trinket/comfy-coffin.js.map +1 -0
  222. package/dist/src/cards/impl/trinket/copper-coil.d.ts +2 -0
  223. package/dist/src/cards/impl/trinket/copper-coil.js +15 -0
  224. package/dist/src/cards/impl/trinket/copper-coil.js.map +1 -0
  225. package/dist/src/cards/impl/trinket/coral-spear.d.ts +2 -0
  226. package/dist/src/cards/impl/trinket/coral-spear.js +22 -0
  227. package/dist/src/cards/impl/trinket/coral-spear.js.map +1 -0
  228. package/dist/src/cards/impl/trinket/dramaloc-sticker.d.ts +2 -0
  229. package/dist/src/cards/impl/trinket/dramaloc-sticker.js +36 -0
  230. package/dist/src/cards/impl/trinket/dramaloc-sticker.js.map +1 -0
  231. package/dist/src/cards/impl/trinket/fang-anklet.d.ts +2 -0
  232. package/dist/src/cards/impl/trinket/fang-anklet.js +30 -0
  233. package/dist/src/cards/impl/trinket/fang-anklet.js.map +1 -0
  234. package/dist/src/cards/impl/trinket/felburned-ledger.d.ts +2 -0
  235. package/dist/src/cards/impl/trinket/felburned-ledger.js +12 -0
  236. package/dist/src/cards/impl/trinket/felburned-ledger.js.map +1 -0
  237. package/dist/src/cards/impl/trinket/fridge-magnet.d.ts +2 -0
  238. package/dist/src/cards/impl/trinket/fridge-magnet.js +13 -0
  239. package/dist/src/cards/impl/trinket/fridge-magnet.js.map +1 -0
  240. package/dist/src/cards/impl/trinket/gilnean-thorned-rose.d.ts +2 -0
  241. package/dist/src/cards/impl/trinket/gilnean-thorned-rose.js +19 -0
  242. package/dist/src/cards/impl/trinket/gilnean-thorned-rose.js.map +1 -0
  243. package/dist/src/cards/impl/trinket/glowscale-portrait.d.ts +2 -0
  244. package/dist/src/cards/impl/trinket/glowscale-portrait.js +21 -0
  245. package/dist/src/cards/impl/trinket/glowscale-portrait.js.map +1 -0
  246. package/dist/src/cards/impl/trinket/heart-of-the-forest.d.ts +2 -0
  247. package/dist/src/cards/impl/trinket/heart-of-the-forest.js +17 -0
  248. package/dist/src/cards/impl/trinket/heart-of-the-forest.js.map +1 -0
  249. package/dist/src/cards/impl/trinket/jar-o-gems.d.ts +2 -0
  250. package/dist/src/cards/impl/trinket/jar-o-gems.js +23 -0
  251. package/dist/src/cards/impl/trinket/jar-o-gems.js.map +1 -0
  252. package/dist/src/cards/impl/trinket/lorewalker-scroll.d.ts +2 -0
  253. package/dist/src/cards/impl/trinket/lorewalker-scroll.js +22 -0
  254. package/dist/src/cards/impl/trinket/lorewalker-scroll.js.map +1 -0
  255. package/dist/src/cards/impl/trinket/miniature-ship.d.ts +2 -0
  256. package/dist/src/cards/impl/trinket/miniature-ship.js +19 -0
  257. package/dist/src/cards/impl/trinket/miniature-ship.js.map +1 -0
  258. package/dist/src/cards/impl/trinket/powder-keg-enchantment.d.ts +2 -0
  259. package/dist/src/cards/impl/trinket/powder-keg-enchantment.js +16 -0
  260. package/dist/src/cards/impl/trinket/powder-keg-enchantment.js.map +1 -0
  261. package/dist/src/cards/impl/trinket/powder-keg.d.ts +2 -0
  262. package/dist/src/cards/impl/trinket/powder-keg.js +23 -0
  263. package/dist/src/cards/impl/trinket/powder-keg.js.map +1 -0
  264. package/dist/src/cards/impl/trinket/protective-ring.d.ts +2 -0
  265. package/dist/src/cards/impl/trinket/protective-ring.js +19 -0
  266. package/dist/src/cards/impl/trinket/protective-ring.js.map +1 -0
  267. package/dist/src/cards/impl/trinket/quilligraphy-set.d.ts +3 -0
  268. package/dist/src/cards/impl/trinket/quilligraphy-set.js +19 -0
  269. package/dist/src/cards/impl/trinket/quilligraphy-set.js.map +1 -0
  270. package/dist/src/cards/impl/trinket/reinforced-shield.d.ts +2 -0
  271. package/dist/src/cards/impl/trinket/reinforced-shield.js +15 -0
  272. package/dist/src/cards/impl/trinket/reinforced-shield.js.map +1 -0
  273. package/dist/src/cards/impl/trinket/slamma-sticker.d.ts +2 -0
  274. package/dist/src/cards/impl/trinket/slamma-sticker.js +18 -0
  275. package/dist/src/cards/impl/trinket/slamma-sticker.js.map +1 -0
  276. package/dist/src/cards/impl/trinket/stegodon-portrait.d.ts +2 -0
  277. package/dist/src/cards/impl/trinket/stegodon-portrait.js +19 -0
  278. package/dist/src/cards/impl/trinket/stegodon-portrait.js.map +1 -0
  279. package/dist/src/cards/impl/trinket/tarecgosa-sticker.d.ts +2 -0
  280. package/dist/src/cards/impl/trinket/tarecgosa-sticker.js +7 -0
  281. package/dist/src/cards/impl/trinket/tarecgosa-sticker.js.map +1 -0
  282. package/dist/src/cards/impl/trinket/thornspike-pauldron.d.ts +2 -0
  283. package/dist/src/cards/impl/trinket/thornspike-pauldron.js +11 -0
  284. package/dist/src/cards/impl/trinket/thornspike-pauldron.js.map +1 -0
  285. package/dist/src/cards/impl/trinket/tide-raiser-portrait.d.ts +2 -0
  286. package/dist/src/cards/impl/trinket/tide-raiser-portrait.js +16 -0
  287. package/dist/src/cards/impl/trinket/tide-raiser-portrait.js.map +1 -0
  288. package/dist/src/cards/impl/trinket/tiger-carving-token.d.ts +2 -0
  289. package/dist/src/cards/impl/trinket/tiger-carving-token.js +16 -0
  290. package/dist/src/cards/impl/trinket/tiger-carving-token.js.map +1 -0
  291. package/dist/src/cards/impl/trinket/trusty-crowbar.d.ts +2 -0
  292. package/dist/src/cards/impl/trinket/trusty-crowbar.js +19 -0
  293. package/dist/src/cards/impl/trinket/trusty-crowbar.js.map +1 -0
  294. package/dist/src/cards/impl/trinket/unholy-sanctum.js +1 -1
  295. package/dist/src/cards/impl/trinket/unholy-sanctum.js.map +1 -1
  296. package/dist/src/cards/impl/trinket/wicked-tome.d.ts +2 -0
  297. package/dist/src/cards/impl/trinket/wicked-tome.js +13 -0
  298. package/dist/src/cards/impl/trinket/wicked-tome.js.map +1 -0
  299. package/dist/src/cards/impl/trinket/wildfeather-duster.d.ts +2 -0
  300. package/dist/src/cards/impl/trinket/wildfeather-duster.js +25 -0
  301. package/dist/src/cards/impl/trinket/wildfeather-duster.js.map +1 -0
  302. package/dist/src/mechanics/cast-tavern-spell.js +13 -0
  303. package/dist/src/mechanics/cast-tavern-spell.js.map +1 -1
  304. package/dist/src/mechanics/tavern-spell-repeat.js +4 -5
  305. package/dist/src/mechanics/tavern-spell-repeat.js.map +1 -1
  306. package/dist/src/services/card-ids.d.ts +724 -5
  307. package/dist/src/services/card-ids.js.map +1 -1
  308. package/dist/src/simulation/add-minion-to-board.d.ts +8 -0
  309. package/dist/src/simulation/add-minion-to-board.js +28 -18
  310. package/dist/src/simulation/add-minion-to-board.js.map +1 -1
  311. package/dist/src/simulation/after-attack.js +14 -14
  312. package/dist/src/simulation/after-attack.js.map +1 -1
  313. package/dist/src/simulation/auras.js +6 -1
  314. package/dist/src/simulation/auras.js.map +1 -1
  315. package/dist/src/simulation/avenge.js +0 -18
  316. package/dist/src/simulation/avenge.js.map +1 -1
  317. package/dist/src/simulation/blood-gems.d.ts +1 -0
  318. package/dist/src/simulation/blood-gems.js +11 -1
  319. package/dist/src/simulation/blood-gems.js.map +1 -1
  320. package/dist/src/simulation/cards-in-hand.js +14 -4
  321. package/dist/src/simulation/cards-in-hand.js.map +1 -1
  322. package/dist/src/simulation/damage-effects.d.ts +6 -0
  323. package/dist/src/simulation/damage-effects.js +11 -9
  324. package/dist/src/simulation/damage-effects.js.map +1 -1
  325. package/dist/src/simulation/damage-to-hero.js +12 -0
  326. package/dist/src/simulation/damage-to-hero.js.map +1 -1
  327. package/dist/src/simulation/death-effects.js +25 -2
  328. package/dist/src/simulation/death-effects.js.map +1 -1
  329. package/dist/src/simulation/global-info-helpers.d.ts +7 -0
  330. package/dist/src/simulation/global-info-helpers.js +25 -0
  331. package/dist/src/simulation/global-info-helpers.js.map +1 -0
  332. package/dist/src/simulation/magnetize.js +28 -1
  333. package/dist/src/simulation/magnetize.js.map +1 -1
  334. package/dist/src/simulation/start-of-combat/soc-action-processor.js +0 -4
  335. package/dist/src/simulation/start-of-combat/soc-action-processor.js.map +1 -1
  336. package/dist/src/temp-card-ids.d.ts +1 -118
  337. package/dist/src/temp-card-ids.js +1 -118
  338. package/dist/src/temp-card-ids.js.map +1 -1
  339. package/package.json +1 -1
@@ -0,0 +1,2 @@
1
+ import { DefaultScriptDataNumCard, OnFriendlyMinionSummonedTrinketCard } from '../../card.interface';
2
+ export declare const ReinforcedShield: OnFriendlyMinionSummonedTrinketCard & DefaultScriptDataNumCard;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReinforcedShield = void 0;
4
+ const divine_shield_1 = require("../../../keywords/divine-shield");
5
+ exports.ReinforcedShield = {
6
+ cardIds: ["BG30_MagicItem_886"],
7
+ defaultScriptDataNum: () => 5,
8
+ onFriendlyMinionSummoned: (trinket, input) => {
9
+ if (trinket.scriptDataNum1 > 0 && !input.spawned.divineShield) {
10
+ (0, divine_shield_1.updateDivineShield)(input.spawned, input.board, input.hero, input.otherHero, true, input.gameState);
11
+ trinket.scriptDataNum1--;
12
+ }
13
+ },
14
+ };
15
+ //# sourceMappingURL=reinforced-shield.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reinforced-shield.js","sourceRoot":"","sources":["../../../../../src/cards/impl/trinket/reinforced-shield.ts"],"names":[],"mappings":";;;AACA,mEAAqE;AAKxD,QAAA,gBAAgB,GAAmE;IAC/F,OAAO,EAAE,sBAA6C;IACtD,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7B,wBAAwB,EAAE,CAAC,OAAqB,EAAE,KAA2C,EAAE,EAAE;QAChG,IAAI,OAAO,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE;YAC9D,IAAA,kCAAkB,EAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YACnG,OAAO,CAAC,cAAc,EAAE,CAAC;SACzB;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { updateDivineShield } from '../../../keywords/divine-shield';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnFriendlyMinionSummonedTrinketInput } from '../../../simulation/add-minion-to-board';\r\nimport { DefaultScriptDataNumCard, OnFriendlyMinionSummonedTrinketCard } from '../../card.interface';\r\n\r\nexport const ReinforcedShield: OnFriendlyMinionSummonedTrinketCard & DefaultScriptDataNumCard = {\r\n\tcardIds: [CardIds.ReinforcedShield_BG30_MagicItem_886],\r\n\tdefaultScriptDataNum: () => 5,\r\n\tonFriendlyMinionSummoned: (trinket: BoardTrinket, input: OnFriendlyMinionSummonedTrinketInput) => {\r\n\t\tif (trinket.scriptDataNum1 > 0 && !input.spawned.divineShield) {\r\n\t\t\tupdateDivineShield(input.spawned, input.board, input.hero, input.otherHero, true, input.gameState);\r\n\t\t\ttrinket.scriptDataNum1--;\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import { AfterOtherSpawnedCard } from '../../card.interface';
2
+ export declare const SlammaSticker: AfterOtherSpawnedCard;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SlammaSticker = void 0;
4
+ const reference_data_1 = require("@firestone-hs/reference-data");
5
+ const stats_1 = require("../../../simulation/stats");
6
+ const utils_1 = require("../../../utils");
7
+ exports.SlammaSticker = {
8
+ cardIds: ["BG30_MagicItem_540"],
9
+ afterOtherSpawned: (_trinket, input) => {
10
+ const { spawned, board, hero, gameState } = input;
11
+ if (!(0, utils_1.hasCorrectTribe)(spawned, hero, reference_data_1.Race.BEAST, gameState.anomalies, gameState.allCards)) {
12
+ return;
13
+ }
14
+ (0, stats_1.setEntityStats)(spawned, spawned.attack * 2, spawned.health, board, hero, gameState);
15
+ gameState.spectator.registerPowerTarget(hero, spawned, board, null, null);
16
+ },
17
+ };
18
+ //# sourceMappingURL=slamma-sticker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slamma-sticker.js","sourceRoot":"","sources":["../../../../../src/cards/impl/trinket/slamma-sticker.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAIpD,qDAA2D;AAC3D,0CAAiD;AAGpC,QAAA,aAAa,GAA0B;IACnD,OAAO,EAAE,sBAA0C;IACnD,iBAAiB,EAAE,CAAC,QAAsB,EAAE,KAAwB,EAAE,EAAE;QACvE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAClD,IAAI,CAAC,IAAA,uBAAe,EAAC,OAAO,EAAE,IAAI,EAAE,qBAAI,CAAC,KAAK,EAAE,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE;YACzF,OAAO;SACP;QACD,IAAA,sBAAc,EAAC,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QACpF,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3E,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnOtherSpawnInput } from '../../../simulation/add-minion-to-board';\r\nimport { setEntityStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { AfterOtherSpawnedCard } from '../../card.interface';\r\n\r\nexport const SlammaSticker: AfterOtherSpawnedCard = {\r\n\tcardIds: [CardIds.SlammaSticker_BG30_MagicItem_540],\r\n\tafterOtherSpawned: (_trinket: BoardTrinket, input: OnOtherSpawnInput) => {\r\n\t\tconst { spawned, board, hero, gameState } = input;\r\n\t\tif (!hasCorrectTribe(spawned, hero, Race.BEAST, gameState.anomalies, gameState.allCards)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tsetEntityStats(spawned, spawned.attack * 2, spawned.health, board, hero, gameState);\r\n\t\tgameState.spectator.registerPowerTarget(hero, spawned, board, null, null);\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import { StartOfCombatCard } from '../../card.interface';
2
+ export declare const StegodonPortrait: StartOfCombatCard;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StegodonPortrait = void 0;
4
+ const reference_data_1 = require("@firestone-hs/reference-data");
5
+ const divine_shield_1 = require("../../../keywords/divine-shield");
6
+ const utils_1 = require("../../../utils");
7
+ exports.StegodonPortrait = {
8
+ cardIds: ["BG35_MagicItem_702"],
9
+ startOfCombat: (trinket, input) => {
10
+ const beasts = input.playerBoard.filter((e) => (0, utils_1.hasCorrectTribe)(e, input.playerEntity, reference_data_1.Race.BEAST, input.gameState.anomalies, input.gameState.allCards));
11
+ let triggered = false;
12
+ for (let i = 0; i < 2 && i < beasts.length; i++) {
13
+ (0, divine_shield_1.updateDivineShield)(beasts[i], input.playerBoard, input.playerEntity, input.opponentEntity, true, input.gameState);
14
+ triggered = true;
15
+ }
16
+ return { hasTriggered: triggered, shouldRecomputeCurrentAttacker: false };
17
+ },
18
+ };
19
+ //# sourceMappingURL=stegodon-portrait.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stegodon-portrait.js","sourceRoot":"","sources":["../../../../../src/cards/impl/trinket/stegodon-portrait.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAGpD,mEAAqE;AAErE,0CAAiD;AAGpC,QAAA,gBAAgB,GAAsB;IAClD,OAAO,EAAE,sBAA6C;IACtD,aAAa,EAAE,CAAC,OAAqB,EAAE,KAAe,EAAE,EAAE;QACzD,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CACtC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,uBAAe,EAAC,CAAC,EAAE,KAAK,CAAC,YAAY,EAAE,qBAAI,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAC9G,CAAC;QACF,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAChD,IAAA,kCAAkB,EAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAClH,SAAS,GAAG,IAAI,CAAC;SACjB;QACD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,8BAA8B,EAAE,KAAK,EAAE,CAAC;IAC3E,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { updateDivineShield } from '../../../keywords/divine-shield';\r\nimport { SoCInput } from '../../../simulation/start-of-combat/start-of-combat-input';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { StartOfCombatCard } from '../../card.interface';\r\n\r\nexport const StegodonPortrait: StartOfCombatCard = {\r\n\tcardIds: [CardIds.StegodonPortrait_BG35_MagicItem_702],\r\n\tstartOfCombat: (trinket: BoardTrinket, input: SoCInput) => {\r\n\t\tconst beasts = input.playerBoard.filter(\r\n\t\t\t(e) => hasCorrectTribe(e, input.playerEntity, Race.BEAST, input.gameState.anomalies, input.gameState.allCards),\r\n\t\t);\r\n\t\tlet triggered = false;\r\n\t\tfor (let i = 0; i < 2 && i < beasts.length; i++) {\r\n\t\t\tupdateDivineShield(beasts[i], input.playerBoard, input.playerEntity, input.opponentEntity, true, input.gameState);\r\n\t\t\ttriggered = true;\r\n\t\t}\r\n\t\treturn { hasTriggered: triggered, shouldRecomputeCurrentAttacker: false };\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import { Card } from '../../card.interface';
2
+ export declare const TarecgosaSticker: Card;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TarecgosaSticker = void 0;
4
+ exports.TarecgosaSticker = {
5
+ cardIds: ["BG32_MagicItem_417"],
6
+ };
7
+ //# sourceMappingURL=tarecgosa-sticker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tarecgosa-sticker.js","sourceRoot":"","sources":["../../../../../src/cards/impl/trinket/tarecgosa-sticker.ts"],"names":[],"mappings":";;;AAGa,QAAA,gBAAgB,GAAS;IACrC,OAAO,EAAE,sBAA6C;CACtD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { Card } from '../../card.interface';\r\n\r\nexport const TarecgosaSticker: Card = {\r\n\tcardIds: [CardIds.TarecgosaSticker_BG32_MagicItem_417],\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import { DeathrattleTriggeredCard } from '../../card.interface';
2
+ export declare const ThornspikePauldron: DeathrattleTriggeredCard;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ThornspikePauldron = void 0;
4
+ exports.ThornspikePauldron = {
5
+ cardIds: ["BG35_MagicItem_431t"],
6
+ onDeathrattleTriggered: (trinket, input) => {
7
+ input.boardWithDeadEntityHero.globalInfo.BloodGemAttackBonus += 2;
8
+ input.boardWithDeadEntityHero.globalInfo.BloodGemHealthBonus += 1;
9
+ },
10
+ };
11
+ //# sourceMappingURL=thornspike-pauldron.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thornspike-pauldron.js","sourceRoot":"","sources":["../../../../../src/cards/impl/trinket/thornspike-pauldron.ts"],"names":[],"mappings":";;;AAKa,QAAA,kBAAkB,GAA6B;IAC3D,OAAO,EAAE,uBAAqD;IAC9D,sBAAsB,EAAE,CAAC,OAAqB,EAAE,KAAgC,EAAE,EAAE;QACnF,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,mBAAmB,IAAI,CAAC,CAAC;QAClE,KAAK,CAAC,uBAAuB,CAAC,UAAU,CAAC,mBAAmB,IAAI,CAAC,CAAC;IACnE,CAAC;CACD,CAAC","sourcesContent":["import { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { DeathrattleTriggeredCard } from '../../card.interface';\r\n\r\nexport const ThornspikePauldron: DeathrattleTriggeredCard = {\r\n\tcardIds: [CardIds.ThornspikePauldronToken_BG35_MagicItem_431t],\r\n\tonDeathrattleTriggered: (trinket: BoardTrinket, input: DeathrattleTriggeredInput) => {\r\n\t\tinput.boardWithDeadEntityHero.globalInfo.BloodGemAttackBonus += 2;\r\n\t\tinput.boardWithDeadEntityHero.globalInfo.BloodGemHealthBonus += 1;\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import { AfterTavernSpellCastCard } from '../../card.interface';
2
+ export declare const TideRaiserPortrait: AfterTavernSpellCastCard;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TideRaiserPortrait = void 0;
4
+ const cards_in_hand_1 = require("../../../simulation/cards-in-hand");
5
+ exports.TideRaiserPortrait = {
6
+ cardIds: ["BG35_MagicItem_922"],
7
+ afterTavernSpellCast: (trinket, input) => {
8
+ var _a;
9
+ const remaining = (_a = trinket.scriptDataNum1) !== null && _a !== void 0 ? _a : 3;
10
+ if (remaining <= 0)
11
+ return;
12
+ trinket.scriptDataNum1 = remaining - 1;
13
+ (0, cards_in_hand_1.addCardsInHand)(input.hero, input.board, [input.spellCardId], input.gameState);
14
+ },
15
+ };
16
+ //# sourceMappingURL=tide-raiser-portrait.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tide-raiser-portrait.js","sourceRoot":"","sources":["../../../../../src/cards/impl/trinket/tide-raiser-portrait.ts"],"names":[],"mappings":";;;AAEA,qEAAmE;AAGtD,QAAA,kBAAkB,GAA6B;IAC3D,OAAO,EAAE,sBAA+C;IACxD,oBAAoB,EAAE,CAAC,OAAqB,EAAE,KAAqB,EAAE,EAAE;;QACtE,MAAM,SAAS,GAAG,MAAA,OAAO,CAAC,cAAc,mCAAI,CAAC,CAAC;QAC9C,IAAI,SAAS,IAAI,CAAC;YAAE,OAAO;QAC3B,OAAO,CAAC,cAAc,GAAG,SAAS,GAAG,CAAC,CAAC;QACvC,IAAA,8BAAc,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/E,CAAC;CACD,CAAC","sourcesContent":["import { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { AfterTavernSpellCastCard, CastSpellInput } from '../../card.interface';\r\n\r\nexport const TideRaiserPortrait: AfterTavernSpellCastCard = {\r\n\tcardIds: [CardIds.TideRaiserPortrait_BG35_MagicItem_922],\r\n\tafterTavernSpellCast: (trinket: BoardTrinket, input: CastSpellInput) => {\r\n\t\tconst remaining = trinket.scriptDataNum1 ?? 3;\r\n\t\tif (remaining <= 0) return;\r\n\t\ttrinket.scriptDataNum1 = remaining - 1;\r\n\t\taddCardsInHand(input.hero, input.board, [input.spellCardId], input.gameState);\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import { AfterFriendlyMinionDamagedTrinketCard } from '../../card.interface';
2
+ export declare const TigerCarving: AfterFriendlyMinionDamagedTrinketCard;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TigerCarving = void 0;
4
+ const utils_1 = require("../../../services/utils");
5
+ const stats_1 = require("../../../simulation/stats");
6
+ exports.TigerCarving = {
7
+ cardIds: ["BG30_MagicItem_427", "BG30_MagicItem_427t"],
8
+ afterFriendlyMinionDamaged: (trinket, input) => {
9
+ const target = (0, utils_1.pickRandomAlive)(input.board);
10
+ if (target) {
11
+ const buff = trinket.cardId === "BG30_MagicItem_427t" ? 4 : 2;
12
+ (0, stats_1.modifyStats)(target, trinket, buff, 0, input.board, input.hero, input.gameState);
13
+ }
14
+ },
15
+ };
16
+ //# sourceMappingURL=tiger-carving-token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tiger-carving-token.js","sourceRoot":"","sources":["../../../../../src/cards/impl/trinket/tiger-carving-token.ts"],"names":[],"mappings":";;;AAEA,mDAA0D;AAC1D,qDAAwD;AAG3C,QAAA,YAAY,GAA0C;IAClE,OAAO,EAAE,6CAAqG;IAC9G,0BAA0B,EAAE,CAAC,OAAqB,EAAE,KAAK,EAAE,EAAE;QAC5D,MAAM,MAAM,GAAG,IAAA,uBAAe,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,MAAM,EAAE;YACX,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,0BAA+D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnG,IAAA,mBAAW,EAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SAChF;IACF,CAAC;CACD,CAAC","sourcesContent":["import { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { pickRandomAlive } from '../../../services/utils';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { AfterFriendlyMinionDamagedTrinketCard } from '../../card.interface';\r\n\r\nexport const TigerCarving: AfterFriendlyMinionDamagedTrinketCard = {\r\n\tcardIds: [CardIds.TigerCarving_BG30_MagicItem_427, CardIds.TigerCarving_TigerCarvingToken_BG30_MagicItem_427t],\r\n\tafterFriendlyMinionDamaged: (trinket: BoardTrinket, input) => {\r\n\t\tconst target = pickRandomAlive(input.board);\r\n\t\tif (target) {\r\n\t\t\tconst buff = trinket.cardId === CardIds.TigerCarving_TigerCarvingToken_BG30_MagicItem_427t ? 4 : 2;\r\n\t\t\tmodifyStats(target, trinket, buff, 0, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import { OnCardAddedToHandCard } from '../../card.interface';
2
+ export declare const TrustyCrowbar: OnCardAddedToHandCard;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TrustyCrowbar = void 0;
4
+ const reference_data_1 = require("@firestone-hs/reference-data");
5
+ const stats_1 = require("../../../simulation/stats");
6
+ const utils_1 = require("../../../utils");
7
+ exports.TrustyCrowbar = {
8
+ cardIds: ["BG35_MagicItem_713"],
9
+ onCardAddedToHand: (trinket, input) => {
10
+ if (!(0, utils_1.hasCorrectTribe)(input.addedCard, input.hero, reference_data_1.Race.PIRATE, input.gameState.anomalies, input.gameState.allCards)) {
11
+ return;
12
+ }
13
+ const leftMost = input.board[0];
14
+ if (leftMost) {
15
+ (0, stats_1.modifyStats)(leftMost, trinket, 10, 10, input.board, input.hero, input.gameState);
16
+ }
17
+ },
18
+ };
19
+ //# sourceMappingURL=trusty-crowbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trusty-crowbar.js","sourceRoot":"","sources":["../../../../../src/cards/impl/trinket/trusty-crowbar.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAIpD,qDAAwD;AACxD,0CAAiD;AAGpC,QAAA,aAAa,GAA0B;IACnD,OAAO,EAAE,sBAA0C;IACnD,iBAAiB,EAAE,CAAC,OAAqB,EAAE,KAA6B,EAAE,EAAE;QAC3E,IACC,CAAC,IAAA,uBAAe,EACf,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,IAAI,EACV,qBAAI,CAAC,MAAM,EACX,KAAK,CAAC,SAAS,CAAC,SAAS,EACzB,KAAK,CAAC,SAAS,CAAC,QAAQ,CACxB,EACA;YACD,OAAO;SACP;QACD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,QAAQ,EAAE;YACb,IAAA,mBAAW,EAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;SACjF;IACF,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { OnCardAddedToHandInput } from '../../../simulation/cards-in-hand';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { OnCardAddedToHandCard } from '../../card.interface';\r\n\r\nexport const TrustyCrowbar: OnCardAddedToHandCard = {\r\n\tcardIds: [CardIds.TrustyCrowbar_BG35_MagicItem_713],\r\n\tonCardAddedToHand: (trinket: BoardTrinket, input: OnCardAddedToHandInput) => {\r\n\t\tif (\r\n\t\t\t!hasCorrectTribe(\r\n\t\t\t\tinput.addedCard,\r\n\t\t\t\tinput.hero,\r\n\t\t\t\tRace.PIRATE,\r\n\t\t\t\tinput.gameState.anomalies,\r\n\t\t\t\tinput.gameState.allCards,\r\n\t\t\t)\r\n\t\t) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst leftMost = input.board[0];\r\n\t\tif (leftMost) {\r\n\t\t\tmodifyStats(leftMost, trinket, 10, 10, input.board, input.hero, input.gameState);\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -7,7 +7,7 @@ exports.UnholySanctum = {
7
7
  onDeathrattleTriggered: (trinket, input) => {
8
8
  const target = input.boardWithDeadEntity[input.boardWithDeadEntity.length - 1];
9
9
  if (!!target) {
10
- (0, stats_1.modifyStats)(target, trinket, trinket.cardId === "BG32_MagicItem_862" ? 3 : 6, trinket.cardId === "BG32_MagicItem_862" ? 2 : 6, input.boardWithDeadEntity, input.boardWithDeadEntityHero, input.gameState);
10
+ (0, stats_1.modifyStats)(target, trinket, trinket.cardId === "BG32_MagicItem_862" ? 3 : 6, trinket.cardId === "BG32_MagicItem_862" ? 2 : 4, input.boardWithDeadEntity, input.boardWithDeadEntityHero, input.gameState);
11
11
  const afterMod = target.attack;
12
12
  if (afterMod > 10) {
13
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"unholy-sanctum.js","sourceRoot":"","sources":["../../../../../src/cards/impl/trinket/unholy-sanctum.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,aAAa,GAA6B;IACtD,OAAO,EAAE,6CAAwG;IACjH,sBAAsB,EAAE,CAAC,OAAqB,EAAE,KAAgC,EAAE,EAAE;QACnF,MAAM,MAAM,GAAG,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/E,IAAI,CAAC,CAAC,MAAM,EAAE;YACb,IAAA,mBAAW,EACV,MAAM,EACN,OAAO,EACP,OAAO,CAAC,MAAM,yBAA6C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACnE,OAAO,CAAC,MAAM,yBAA6C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACnE,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,SAAS,CACf,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;YAC/B,IAAI,QAAQ,GAAG,EAAE,EAAE;aAElB;SACD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { DeathrattleTriggeredCard } from '../../card.interface';\r\n\r\nexport const UnholySanctum: DeathrattleTriggeredCard = {\r\n\tcardIds: [CardIds.UnholySanctum_BG32_MagicItem_862, CardIds.UnholySanctum_UnholySanctumToken_BG32_MagicItem_862t],\r\n\tonDeathrattleTriggered: (trinket: BoardTrinket, input: DeathrattleTriggeredInput) => {\r\n\t\tconst target = input.boardWithDeadEntity[input.boardWithDeadEntity.length - 1];\r\n\t\tif (!!target) {\r\n\t\t\tmodifyStats(\r\n\t\t\t\ttarget,\r\n\t\t\t\ttrinket,\r\n\t\t\t\ttrinket.cardId === CardIds.UnholySanctum_BG32_MagicItem_862 ? 3 : 6,\r\n\t\t\t\ttrinket.cardId === CardIds.UnholySanctum_BG32_MagicItem_862 ? 2 : 6,\r\n\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t\tconst afterMod = target.attack;\r\n\t\t\tif (afterMod > 10) {\r\n\t\t\t\t// Nothing\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};\r\n"]}
1
+ {"version":3,"file":"unholy-sanctum.js","sourceRoot":"","sources":["../../../../../src/cards/impl/trinket/unholy-sanctum.ts"],"names":[],"mappings":";;;AAGA,qDAAwD;AAG3C,QAAA,aAAa,GAA6B;IACtD,OAAO,EAAE,6CAAwG;IACjH,sBAAsB,EAAE,CAAC,OAAqB,EAAE,KAAgC,EAAE,EAAE;QACnF,MAAM,MAAM,GAAG,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/E,IAAI,CAAC,CAAC,MAAM,EAAE;YACb,IAAA,mBAAW,EACV,MAAM,EACN,OAAO,EACP,OAAO,CAAC,MAAM,yBAA6C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACnE,OAAO,CAAC,MAAM,yBAA6C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACnE,KAAK,CAAC,mBAAmB,EACzB,KAAK,CAAC,uBAAuB,EAC7B,KAAK,CAAC,SAAS,CACf,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;YAC/B,IAAI,QAAQ,GAAG,EAAE,EAAE;aAElB;SACD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { CardIds } from '../../../services/card-ids';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { DeathrattleTriggeredInput } from '../../../simulation/deathrattle-on-trigger';\r\nimport { modifyStats } from '../../../simulation/stats';\r\nimport { DeathrattleTriggeredCard } from '../../card.interface';\r\n\r\nexport const UnholySanctum: DeathrattleTriggeredCard = {\r\n\tcardIds: [CardIds.UnholySanctum_BG32_MagicItem_862, CardIds.UnholySanctum_UnholySanctumToken_BG32_MagicItem_862t],\r\n\tonDeathrattleTriggered: (trinket: BoardTrinket, input: DeathrattleTriggeredInput) => {\r\n\t\tconst target = input.boardWithDeadEntity[input.boardWithDeadEntity.length - 1];\r\n\t\tif (!!target) {\r\n\t\t\tmodifyStats(\r\n\t\t\t\ttarget,\r\n\t\t\t\ttrinket,\r\n\t\t\t\ttrinket.cardId === CardIds.UnholySanctum_BG32_MagicItem_862 ? 3 : 6,\r\n\t\t\t\ttrinket.cardId === CardIds.UnholySanctum_BG32_MagicItem_862 ? 2 : 4,\r\n\t\t\t\tinput.boardWithDeadEntity,\r\n\t\t\t\tinput.boardWithDeadEntityHero,\r\n\t\t\t\tinput.gameState,\r\n\t\t\t);\r\n\t\t\tconst afterMod = target.attack;\r\n\t\t\tif (afterMod > 10) {\r\n\t\t\t\t// Nothing\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import { AvengeCard } from '../../card.interface';
2
+ export declare const WickedTome: AvengeCard;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WickedTome = void 0;
4
+ exports.WickedTome = {
5
+ cardIds: ["BG32_MagicItem_270t"],
6
+ baseAvengeValue: () => 4,
7
+ avenge: (_minion, input) => {
8
+ var _a, _b;
9
+ input.hero.globalInfo.TavernSpellAttackBuff = ((_a = input.hero.globalInfo.TavernSpellAttackBuff) !== null && _a !== void 0 ? _a : 0) + 1;
10
+ input.hero.globalInfo.TavernSpellHealthBuff = ((_b = input.hero.globalInfo.TavernSpellHealthBuff) !== null && _b !== void 0 ? _b : 0) + 1;
11
+ },
12
+ };
13
+ //# sourceMappingURL=wicked-tome.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wicked-tome.js","sourceRoot":"","sources":["../../../../../src/cards/impl/trinket/wicked-tome.ts"],"names":[],"mappings":";;;AAKa,QAAA,UAAU,GAAe;IACrC,OAAO,EAAE,uBAAwD;IACjE,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC;IACxB,MAAM,EAAE,CAAC,OAAoB,EAAE,KAAkB,EAAE,EAAE;;QACpD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,GAAG,CAAC,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACrG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,GAAG,CAAC,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACtG,CAAC;CACD,CAAC","sourcesContent":["import { BoardEntity } from '../../../board-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { AvengeInput } from '../../../simulation/avenge';\r\nimport { AvengeCard } from '../../card.interface';\r\n\r\nexport const WickedTome: AvengeCard = {\r\n\tcardIds: [CardIds.WickedTome_WickedTomeToken_BG32_MagicItem_270t],\r\n\tbaseAvengeValue: () => 4,\r\n\tavenge: (_minion: BoardEntity, input: AvengeInput) => {\r\n\t\tinput.hero.globalInfo.TavernSpellAttackBuff = (input.hero.globalInfo.TavernSpellAttackBuff ?? 0) + 1;\r\n\t\tinput.hero.globalInfo.TavernSpellHealthBuff = (input.hero.globalInfo.TavernSpellHealthBuff ?? 0) + 1;\r\n\t},\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import { AfterOtherSpawnedCard } from '../../card.interface';
2
+ export declare const WildfeatherDuster: AfterOtherSpawnedCard;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WildfeatherDuster = void 0;
4
+ const reference_data_1 = require("@firestone-hs/reference-data");
5
+ const cards_in_hand_1 = require("../../../simulation/cards-in-hand");
6
+ const utils_1 = require("../../../utils");
7
+ exports.WildfeatherDuster = {
8
+ cardIds: ["BG35_MagicItem_700"],
9
+ afterOtherSpawned: (trinket, input) => {
10
+ var _a;
11
+ if (!(0, utils_1.hasCorrectTribe)(input.spawned, input.hero, reference_data_1.Race.BEAST, input.gameState.anomalies, input.gameState.allCards)) {
12
+ return;
13
+ }
14
+ trinket.scriptDataNum1 = (trinket.scriptDataNum1 || 0) + 1;
15
+ if (trinket.scriptDataNum1 >= 6) {
16
+ trinket.scriptDataNum1 = 0;
17
+ const tier = (_a = input.hero.tavernTier) !== null && _a !== void 0 ? _a : 6;
18
+ const cardId = input.gameState.cardsData.getRandomMinionForTribe(reference_data_1.Race.BEAST, tier, []);
19
+ if (cardId) {
20
+ (0, cards_in_hand_1.addCardsInHand)(input.hero, input.board, [cardId], input.gameState);
21
+ }
22
+ }
23
+ },
24
+ };
25
+ //# sourceMappingURL=wildfeather-duster.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wildfeather-duster.js","sourceRoot":"","sources":["../../../../../src/cards/impl/trinket/wildfeather-duster.ts"],"names":[],"mappings":";;;AAAA,iEAAoD;AAGpD,qEAAmE;AAEnE,0CAAiD;AAGpC,QAAA,iBAAiB,GAA0B;IACvD,OAAO,EAAE,sBAA8C;IACvD,iBAAiB,EAAE,CAAC,OAAqB,EAAE,KAAwB,EAAE,EAAE;;QACtE,IAAI,CAAC,IAAA,uBAAe,EAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAI,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YACjH,OAAO;SACP;QACD,OAAO,CAAC,cAAc,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3D,IAAI,OAAO,CAAC,cAAc,IAAI,CAAC,EAAE;YAChC,OAAO,CAAC,cAAc,GAAG,CAAC,CAAC;YAC3B,MAAM,IAAI,GAAG,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,mCAAI,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,uBAAuB,CAAC,qBAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YACvF,IAAI,MAAM,EAAE;gBACX,IAAA,8BAAc,EAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;aACnE;SACD;IACF,CAAC;CACD,CAAC","sourcesContent":["import { Race } from '@firestone-hs/reference-data';\r\nimport { BoardTrinket } from '../../../bgs-player-entity';\r\nimport { CardIds } from '../../../services/card-ids';\r\nimport { addCardsInHand } from '../../../simulation/cards-in-hand';\r\nimport { OnOtherSpawnInput } from '../../../simulation/add-minion-to-board';\r\nimport { hasCorrectTribe } from '../../../utils';\r\nimport { AfterOtherSpawnedCard } from '../../card.interface';\r\n\r\nexport const WildfeatherDuster: AfterOtherSpawnedCard = {\r\n\tcardIds: [CardIds.WildfeatherDuster_BG35_MagicItem_700],\r\n\tafterOtherSpawned: (trinket: BoardTrinket, input: OnOtherSpawnInput) => {\r\n\t\tif (!hasCorrectTribe(input.spawned, input.hero, Race.BEAST, input.gameState.anomalies, input.gameState.allCards)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\ttrinket.scriptDataNum1 = (trinket.scriptDataNum1 || 0) + 1;\r\n\t\tif (trinket.scriptDataNum1 >= 6) {\r\n\t\t\ttrinket.scriptDataNum1 = 0;\r\n\t\t\tconst tier = input.hero.tavernTier ?? 6;\r\n\t\t\tconst cardId = input.gameState.cardsData.getRandomMinionForTribe(Race.BEAST, tier, []);\r\n\t\t\tif (cardId) {\r\n\t\t\t\taddCardsInHand(input.hero, input.board, [cardId], input.gameState);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n};\r\n"]}
@@ -24,6 +24,7 @@ const castTavernSpell = (spellCardId, input) => {
24
24
  };
25
25
  exports.castTavernSpell = castTavernSpell;
26
26
  const onTavernSpellCast = (spellCardId, input) => {
27
+ var _a, _b;
27
28
  if (input.source === input.hero) {
28
29
  for (const boardEntity of input.board) {
29
30
  const onSpellCastImpl = _card_mappings_1.cardMappings[boardEntity.cardId];
@@ -31,6 +32,12 @@ const onTavernSpellCast = (spellCardId, input) => {
31
32
  onSpellCastImpl.onTavernSpellCast(boardEntity, input);
32
33
  }
33
34
  }
35
+ for (const trinket of (_a = input.hero.trinkets) !== null && _a !== void 0 ? _a : []) {
36
+ const onSpellCastImpl = _card_mappings_1.cardMappings[trinket.cardId];
37
+ if ((0, card_interface_1.hasOnTavernSpellCast)(onSpellCastImpl)) {
38
+ onSpellCastImpl.onTavernSpellCast(trinket, input);
39
+ }
40
+ }
34
41
  }
35
42
  if (input.source === input.hero) {
36
43
  for (const boardEntity of input.board) {
@@ -39,6 +46,12 @@ const onTavernSpellCast = (spellCardId, input) => {
39
46
  afterSpellCastImpl.afterTavernSpellCast(boardEntity, input);
40
47
  }
41
48
  }
49
+ for (const trinket of (_b = input.hero.trinkets) !== null && _b !== void 0 ? _b : []) {
50
+ const afterSpellCastImpl = _card_mappings_1.cardMappings[trinket.cardId];
51
+ if ((0, card_interface_1.hasAfterTavernSpellCast)(afterSpellCastImpl)) {
52
+ afterSpellCastImpl.afterTavernSpellCast(trinket, input);
53
+ }
54
+ }
42
55
  }
43
56
  };
44
57
  exports.onTavernSpellCast = onTavernSpellCast;
@@ -1 +1 @@
1
- {"version":3,"file":"cast-tavern-spell.js","sourceRoot":"","sources":["../../../src/mechanics/cast-tavern-spell.ts"],"names":[],"mappings":";;;AAAA,4DAKiC;AACjC,iEAA4D;AAC5D,+DAAwE;AAEjE,MAAM,eAAe,GAAG,CAAC,WAAmB,EAAE,KAAqB,EAAE,EAAE;;IAC7E,MAAM,SAAS,GAAG,6BAAY,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,IAAA,qDAA+B,EAAC,KAAK,CAAC,CAAC;IAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;QACrC,IAAI,IAAA,mCAAkB,EAAC,SAAS,CAAC,EAAE;YAClC,SAAS,CAAC,eAAe,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;SAC9C;KACD;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,EAAE;QAChC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,CAAC,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACjG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,GAAG,CAAC,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3G,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,GAAG,CAAC,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3G,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,GAAG,WAAW,CAAC;KAC1D;IACD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC;IAE3C,IAAA,yBAAiB,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AACvC,CAAC,CAAC;AAlBW,QAAA,eAAe,mBAkB1B;AAEK,MAAM,iBAAiB,GAAG,CAAC,WAAmB,EAAE,KAAqB,EAAE,EAAE;IAI/E,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,EAAE;QAChC,KAAK,MAAM,WAAW,IAAI,KAAK,CAAC,KAAK,EAAE;YACtC,MAAM,eAAe,GAAG,6BAAY,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACzD,IAAI,IAAA,qCAAoB,EAAC,eAAe,CAAC,EAAE;gBAC1C,eAAe,CAAC,iBAAiB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;aACtD;SACD;KACD;IAGD,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,EAAE;QAChC,KAAK,MAAM,WAAW,IAAI,KAAK,CAAC,KAAK,EAAE;YACtC,MAAM,kBAAkB,GAAG,6BAAY,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC5D,IAAI,IAAA,wCAAuB,EAAC,kBAAkB,CAAC,EAAE;gBAChD,kBAAkB,CAAC,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;aAC5D;SACD;KACD;AACF,CAAC,CAAC;AAtBW,QAAA,iBAAiB,qBAsB5B","sourcesContent":["import {\r\n\tCastSpellInput,\r\n\thasAfterTavernSpellCast,\r\n\thasCastTavernSpell,\r\n\thasOnTavernSpellCast,\r\n} from '../cards/card.interface';\r\nimport { cardMappings } from '../cards/impl/_card-mappings';\r\nimport { getTavernSpellEffectRepeatCount } from './tavern-spell-repeat';\r\n\r\nexport const castTavernSpell = (spellCardId: string, input: CastSpellInput) => {\r\n\tconst spellImpl = cardMappings[spellCardId];\r\n\tconst repeatCount = getTavernSpellEffectRepeatCount(input);\r\n\tfor (let i = 0; i < repeatCount; i++) {\r\n\t\tif (hasCastTavernSpell(spellImpl)) {\r\n\t\t\tspellImpl.castTavernSpell(spellCardId, input);\r\n\t\t}\r\n\t}\r\n\r\n\tif (input.source === input.hero) {\r\n\t\tinput.hero.globalInfo.CardsPlayedThisTurn = (input.hero.globalInfo.CardsPlayedThisTurn ?? 0) + 1;\r\n\t\tinput.hero.globalInfo.TavernSpellsCastThisTurn = (input.hero.globalInfo.TavernSpellsCastThisTurn ?? 0) + 1;\r\n\t\tinput.hero.globalInfo.TavernSpellsCastThisGame = (input.hero.globalInfo.TavernSpellsCastThisGame ?? 0) + 1;\r\n\t\tinput.hero.globalInfo.LastTavernSpellCardId = spellCardId;\r\n\t}\r\n\tinput.hero.globalInfo.SpellsCastThisGame++;\r\n\r\n\tonTavernSpellCast(spellCardId, input);\r\n};\r\n\r\nexport const onTavernSpellCast = (spellCardId: string, input: CastSpellInput) => {\r\n\t// Added in case other minions react to spells being cast\r\n\t// I thought Charging Czarina would be in that case, but it specifically says \"whenever *you* cast\"\r\n\t// 2025-11-25: cards that simply says \"cast\" means \"you cast\". Otherwise, it will say \"this casts\".\r\n\tif (input.source === input.hero) {\r\n\t\tfor (const boardEntity of input.board) {\r\n\t\t\tconst onSpellCastImpl = cardMappings[boardEntity.cardId];\r\n\t\t\tif (hasOnTavernSpellCast(onSpellCastImpl)) {\r\n\t\t\t\tonSpellCastImpl.onTavernSpellCast(boardEntity, input);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Not sure about the timing of \"after spell cast\", but at least make sure they trigger after the \"whenever you cast\" effects\r\n\tif (input.source === input.hero) {\r\n\t\tfor (const boardEntity of input.board) {\r\n\t\t\tconst afterSpellCastImpl = cardMappings[boardEntity.cardId];\r\n\t\t\tif (hasAfterTavernSpellCast(afterSpellCastImpl)) {\r\n\t\t\t\tafterSpellCastImpl.afterTavernSpellCast(boardEntity, input);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\r\n"]}
1
+ {"version":3,"file":"cast-tavern-spell.js","sourceRoot":"","sources":["../../../src/mechanics/cast-tavern-spell.ts"],"names":[],"mappings":";;;AAAA,4DAKiC;AACjC,iEAA4D;AAC5D,+DAAwE;AAEjE,MAAM,eAAe,GAAG,CAAC,WAAmB,EAAE,KAAqB,EAAE,EAAE;;IAC7E,MAAM,SAAS,GAAG,6BAAY,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,IAAA,qDAA+B,EAAC,KAAK,CAAC,CAAC;IAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;QACrC,IAAI,IAAA,mCAAkB,EAAC,SAAS,CAAC,EAAE;YAClC,SAAS,CAAC,eAAe,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;SAC9C;KACD;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,EAAE;QAChC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,GAAG,CAAC,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACjG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,GAAG,CAAC,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3G,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,GAAG,CAAC,MAAA,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3G,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,GAAG,WAAW,CAAC;KAC1D;IACD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC;IAE3C,IAAA,yBAAiB,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AACvC,CAAC,CAAC;AAlBW,QAAA,eAAe,mBAkB1B;AAEK,MAAM,iBAAiB,GAAG,CAAC,WAAmB,EAAE,KAAqB,EAAE,EAAE;;IAI/E,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,EAAE;QAChC,KAAK,MAAM,WAAW,IAAI,KAAK,CAAC,KAAK,EAAE;YACtC,MAAM,eAAe,GAAG,6BAAY,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACzD,IAAI,IAAA,qCAAoB,EAAC,eAAe,CAAC,EAAE;gBAC1C,eAAe,CAAC,iBAAiB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;aACtD;SACD;QACD,KAAK,MAAM,OAAO,IAAI,MAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,mCAAI,EAAE,EAAE;YAChD,MAAM,eAAe,GAAG,6BAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACrD,IAAI,IAAA,qCAAoB,EAAC,eAAe,CAAC,EAAE;gBAC1C,eAAe,CAAC,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;aAClD;SACD;KACD;IAGD,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,EAAE;QAChC,KAAK,MAAM,WAAW,IAAI,KAAK,CAAC,KAAK,EAAE;YACtC,MAAM,kBAAkB,GAAG,6BAAY,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC5D,IAAI,IAAA,wCAAuB,EAAC,kBAAkB,CAAC,EAAE;gBAChD,kBAAkB,CAAC,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;aAC5D;SACD;QACD,KAAK,MAAM,OAAO,IAAI,MAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,mCAAI,EAAE,EAAE;YAChD,MAAM,kBAAkB,GAAG,6BAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACxD,IAAI,IAAA,wCAAuB,EAAC,kBAAkB,CAAC,EAAE;gBAChD,kBAAkB,CAAC,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;aACxD;SACD;KACD;AACF,CAAC,CAAC;AAlCW,QAAA,iBAAiB,qBAkC5B","sourcesContent":["import {\r\n\tCastSpellInput,\r\n\thasAfterTavernSpellCast,\r\n\thasCastTavernSpell,\r\n\thasOnTavernSpellCast,\r\n} from '../cards/card.interface';\r\nimport { cardMappings } from '../cards/impl/_card-mappings';\r\nimport { getTavernSpellEffectRepeatCount } from './tavern-spell-repeat';\r\n\r\nexport const castTavernSpell = (spellCardId: string, input: CastSpellInput) => {\r\n\tconst spellImpl = cardMappings[spellCardId];\r\n\tconst repeatCount = getTavernSpellEffectRepeatCount(input);\r\n\tfor (let i = 0; i < repeatCount; i++) {\r\n\t\tif (hasCastTavernSpell(spellImpl)) {\r\n\t\t\tspellImpl.castTavernSpell(spellCardId, input);\r\n\t\t}\r\n\t}\r\n\r\n\tif (input.source === input.hero) {\r\n\t\tinput.hero.globalInfo.CardsPlayedThisTurn = (input.hero.globalInfo.CardsPlayedThisTurn ?? 0) + 1;\r\n\t\tinput.hero.globalInfo.TavernSpellsCastThisTurn = (input.hero.globalInfo.TavernSpellsCastThisTurn ?? 0) + 1;\r\n\t\tinput.hero.globalInfo.TavernSpellsCastThisGame = (input.hero.globalInfo.TavernSpellsCastThisGame ?? 0) + 1;\r\n\t\tinput.hero.globalInfo.LastTavernSpellCardId = spellCardId;\r\n\t}\r\n\tinput.hero.globalInfo.SpellsCastThisGame++;\r\n\r\n\tonTavernSpellCast(spellCardId, input);\r\n};\r\n\r\nexport const onTavernSpellCast = (spellCardId: string, input: CastSpellInput) => {\r\n\t// Added in case other minions react to spells being cast\r\n\t// I thought Charging Czarina would be in that case, but it specifically says \"whenever *you* cast\"\r\n\t// 2025-11-25: cards that simply says \"cast\" means \"you cast\". Otherwise, it will say \"this casts\".\r\n\tif (input.source === input.hero) {\r\n\t\tfor (const boardEntity of input.board) {\r\n\t\t\tconst onSpellCastImpl = cardMappings[boardEntity.cardId];\r\n\t\t\tif (hasOnTavernSpellCast(onSpellCastImpl)) {\r\n\t\t\t\tonSpellCastImpl.onTavernSpellCast(boardEntity, input);\r\n\t\t\t}\r\n\t\t}\r\n\t\tfor (const trinket of input.hero.trinkets ?? []) {\r\n\t\t\tconst onSpellCastImpl = cardMappings[trinket.cardId];\r\n\t\t\tif (hasOnTavernSpellCast(onSpellCastImpl)) {\r\n\t\t\t\tonSpellCastImpl.onTavernSpellCast(trinket, input);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Not sure about the timing of \"after spell cast\", but at least make sure they trigger after the \"whenever you cast\" effects\r\n\tif (input.source === input.hero) {\r\n\t\tfor (const boardEntity of input.board) {\r\n\t\t\tconst afterSpellCastImpl = cardMappings[boardEntity.cardId];\r\n\t\t\tif (hasAfterTavernSpellCast(afterSpellCastImpl)) {\r\n\t\t\t\tafterSpellCastImpl.afterTavernSpellCast(boardEntity, input);\r\n\t\t\t}\r\n\t\t}\r\n\t\tfor (const trinket of input.hero.trinkets ?? []) {\r\n\t\t\tconst afterSpellCastImpl = cardMappings[trinket.cardId];\r\n\t\t\tif (hasAfterTavernSpellCast(afterSpellCastImpl)) {\r\n\t\t\t\tafterSpellCastImpl.afterTavernSpellCast(trinket, input);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\r\n"]}
@@ -1,22 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getTavernSpellEffectRepeatCount = void 0;
4
- const temp_card_ids_1 = require("../temp-card-ids");
5
4
  const getTavernSpellEffectRepeatCount = (input) => {
6
5
  var _a;
7
6
  if (input.source !== input.hero) {
8
7
  return 1;
9
8
  }
10
9
  let repeats = 1;
11
- const hasGoldenBalinda = input.board.some((e) => e.cardId === temp_card_ids_1.TempCardIds.BalindaStonehearth_G);
12
- const hasNormalBalinda = input.board.some((e) => e.cardId === temp_card_ids_1.TempCardIds.BalindaStonehearth);
10
+ const hasGoldenBalinda = input.board.some((e) => e.cardId === "BG35_883_G");
11
+ const hasNormalBalinda = input.board.some((e) => e.cardId === "BG35_883");
13
12
  if ((hasGoldenBalinda || hasNormalBalinda) &&
14
13
  input.target &&
15
14
  input.board.some((e) => e.entityId === input.target.entityId)) {
16
15
  repeats = hasGoldenBalinda ? 3 : 2;
17
16
  }
18
- const maelstromExtra = input.board.filter((e) => e.cardId === temp_card_ids_1.TempCardIds.MaelstromEmergent).length +
19
- 2 * input.board.filter((e) => e.cardId === temp_card_ids_1.TempCardIds.MaelstromEmergent_G).length;
17
+ const maelstromExtra = input.board.filter((e) => e.cardId === "BG34_922").length +
18
+ 2 * input.board.filter((e) => e.cardId === "BG34_922_G").length;
20
19
  repeats += maelstromExtra;
21
20
  const spellCard = input.gameState.allCards.getCard(input.spellCardId);
22
21
  const isBountySpell = (_a = spellCard === null || spellCard === void 0 ? void 0 : spellCard.mechanics) === null || _a === void 0 ? void 0 : _a.includes('BACON_BOUNTY');
@@ -1 +1 @@
1
- {"version":3,"file":"tavern-spell-repeat.js","sourceRoot":"","sources":["../../../src/mechanics/tavern-spell-repeat.ts"],"names":[],"mappings":";;;AAEA,oDAA+C;AAMxC,MAAM,+BAA+B,GAAG,CAAC,KAAqB,EAAU,EAAE;;IAChF,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,EAAE;QAChC,OAAO,CAAC,CAAC;KACT;IACD,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,MAAM,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,2BAAW,CAAC,oBAAoB,CAAC,CAAC;IAChG,MAAM,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,2BAAW,CAAC,kBAAkB,CAAC,CAAC;IAC9F,IACC,CAAC,gBAAgB,IAAI,gBAAgB,CAAC;QACtC,KAAK,CAAC,MAAM;QACZ,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAC5D;QACD,OAAO,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACnC;IACD,MAAM,cAAc,GACnB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,2BAAW,CAAC,iBAAiB,CAAC,CAAC,MAAM;QAC5E,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,2BAAW,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC;IACpF,OAAO,IAAI,cAAc,CAAC;IAE1B,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACtE,MAAM,aAAa,GAAG,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,SAAS,0CAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;IAErE,IAAI,aAAa,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,EAAE;QACjD,MAAM,mBAAmB,GACxB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,eAAoC,CAAC,CAAC,MAAM;YAC9E,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,iBAAsC,CAAC,CAAC,MAAM,CAAC;QACtF,OAAO,IAAI,mBAAmB,CAAC;KAC/B;IAED,OAAO,OAAO,CAAC;AAChB,CAAC,CAAC;AA9BW,QAAA,+BAA+B,mCA8B1C","sourcesContent":["import { CastSpellInput } from '../cards/card.interface';\r\nimport { CardIds } from '../services/card-ids';\r\nimport { TempCardIds } from '../temp-card-ids';\r\n\r\n/**\r\n * Balinda Stonehearth: extra spell effect resolutions for spells you cast that target a friendly board minion.\r\n * Maelstrom Emergent: each copy adds +1 extra resolution (golden +2) for tavern spells you cast; stacks additively with Balinda.\r\n */\r\nexport const getTavernSpellEffectRepeatCount = (input: CastSpellInput): number => {\r\n\tif (input.source !== input.hero) {\r\n\t\treturn 1;\r\n\t}\r\n\tlet repeats = 1;\r\n\tconst hasGoldenBalinda = input.board.some((e) => e.cardId === TempCardIds.BalindaStonehearth_G);\r\n\tconst hasNormalBalinda = input.board.some((e) => e.cardId === TempCardIds.BalindaStonehearth);\r\n\tif (\r\n\t\t(hasGoldenBalinda || hasNormalBalinda) &&\r\n\t\tinput.target &&\r\n\t\tinput.board.some((e) => e.entityId === input.target.entityId)\r\n\t) {\r\n\t\trepeats = hasGoldenBalinda ? 3 : 2;\r\n\t}\r\n\tconst maelstromExtra =\r\n\t\tinput.board.filter((e) => e.cardId === TempCardIds.MaelstromEmergent).length +\r\n\t\t2 * input.board.filter((e) => e.cardId === TempCardIds.MaelstromEmergent_G).length;\r\n\trepeats += maelstromExtra;\r\n\r\n\tconst spellCard = input.gameState.allCards.getCard(input.spellCardId);\r\n\tconst isBountySpell = spellCard?.mechanics?.includes('BACON_BOUNTY');\r\n\t// Proud Privateer only affects bounties *you* (the hero) cast — same as Balinda / onTavernSpellCast.\r\n\tif (isBountySpell && input.source === input.hero) {\r\n\t\tconst proudPrivateerExtra =\r\n\t\t\tinput.board.filter((e) => e.cardId === CardIds.ProudPrivateer_BG33_825).length +\r\n\t\t\t2 * input.board.filter((e) => e.cardId === CardIds.ProudPrivateer_BG33_825_G).length;\r\n\t\trepeats += proudPrivateerExtra;\r\n\t}\r\n\r\n\treturn repeats;\r\n};\r\n"]}
1
+ {"version":3,"file":"tavern-spell-repeat.js","sourceRoot":"","sources":["../../../src/mechanics/tavern-spell-repeat.ts"],"names":[],"mappings":";;;AAOO,MAAM,+BAA+B,GAAG,CAAC,KAAqB,EAAU,EAAE;;IAChF,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,EAAE;QAChC,OAAO,CAAC,CAAC;KACT;IACD,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,MAAM,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,iBAA0C,CAAC,CAAC;IACrG,MAAM,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,eAAwC,CAAC,CAAC;IACnG,IACC,CAAC,gBAAgB,IAAI,gBAAgB,CAAC;QACtC,KAAK,CAAC,MAAM;QACZ,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAC5D;QACD,OAAO,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACnC;IACD,MAAM,cAAc,GACnB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,eAAuC,CAAC,CAAC,MAAM;QACjF,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,iBAAyC,CAAC,CAAC,MAAM,CAAC;IACzF,OAAO,IAAI,cAAc,CAAC;IAE1B,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACtE,MAAM,aAAa,GAAG,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,SAAS,0CAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;IAErE,IAAI,aAAa,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,EAAE;QACjD,MAAM,mBAAmB,GACxB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,eAAoC,CAAC,CAAC,MAAM;YAC9E,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,iBAAsC,CAAC,CAAC,MAAM,CAAC;QACtF,OAAO,IAAI,mBAAmB,CAAC;KAC/B;IAED,OAAO,OAAO,CAAC;AAChB,CAAC,CAAC;AA9BW,QAAA,+BAA+B,mCA8B1C","sourcesContent":["import { CastSpellInput } from '../cards/card.interface';\r\nimport { CardIds } from '../services/card-ids';\r\n\r\n/**\r\n * Balinda Stonehearth: extra spell effect resolutions for spells you cast that target a friendly board minion.\r\n * Maelstrom Emergent: each copy adds +1 extra resolution (golden +2) for tavern spells you cast; stacks additively with Balinda.\r\n */\r\nexport const getTavernSpellEffectRepeatCount = (input: CastSpellInput): number => {\r\n\tif (input.source !== input.hero) {\r\n\t\treturn 1;\r\n\t}\r\n\tlet repeats = 1;\r\n\tconst hasGoldenBalinda = input.board.some((e) => e.cardId === CardIds.BalindaStonehearth_BG35_883_G);\r\n\tconst hasNormalBalinda = input.board.some((e) => e.cardId === CardIds.BalindaStonehearth_BG35_883);\r\n\tif (\r\n\t\t(hasGoldenBalinda || hasNormalBalinda) &&\r\n\t\tinput.target &&\r\n\t\tinput.board.some((e) => e.entityId === input.target.entityId)\r\n\t) {\r\n\t\trepeats = hasGoldenBalinda ? 3 : 2;\r\n\t}\r\n\tconst maelstromExtra =\r\n\t\tinput.board.filter((e) => e.cardId === CardIds.MaelstromEmergent_BG34_922).length +\r\n\t\t2 * input.board.filter((e) => e.cardId === CardIds.MaelstromEmergent_BG34_922_G).length;\r\n\trepeats += maelstromExtra;\r\n\r\n\tconst spellCard = input.gameState.allCards.getCard(input.spellCardId);\r\n\tconst isBountySpell = spellCard?.mechanics?.includes('BACON_BOUNTY');\r\n\t// Proud Privateer only affects bounties *you* (the hero) cast — same as Balinda / onTavernSpellCast.\r\n\tif (isBountySpell && input.source === input.hero) {\r\n\t\tconst proudPrivateerExtra =\r\n\t\t\tinput.board.filter((e) => e.cardId === CardIds.ProudPrivateer_BG33_825).length +\r\n\t\t\t2 * input.board.filter((e) => e.cardId === CardIds.ProudPrivateer_BG33_825_G).length;\r\n\t\trepeats += proudPrivateerExtra;\r\n\t}\r\n\r\n\treturn repeats;\r\n};\r\n"]}